> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Устранение неполадок обновлений подписок

> Решения распространённых проблем с обновлениями подписок, включая оповещения о сбоях обновлений, проблемы с подключением провайдера и пустые списки планов продаж.

Решения самых распространённых проблем с обновлениями подписок. Если после этих шагов проблема не решена, обратитесь в поддержку, указав данные из раздела [Тестирование и проверка](/ru/aftersell/subscription-upgrades-testing#when-something-looks-wrong).

<div id="monitoring-upgrade-failures">
  ## Мониторинг сбоев обновлений
</div>

Aftersell отслеживает окончательные сбои обновлений в скользящем 7-дневном окне. Если количество сбоев превышает порог оповещения, на вашей главной странице появляется **предупреждающий баннер**, указывающий, сколько обновлений завершилось сбоем и за сколько дней. То же оповещение отображается на панели **Needs attention** [главной страницы](/ru/aftersell/home/needs-attention).

Оповещение содержит кнопку **Review orders**, которая ведёт напрямую в браузер заказов с фильтром по проблемам обновления подписок, чтобы вы могли увидеть затронутые заказы и конкретную причину каждого сбоя. Оповещение автоматически исчезает, как только количество сбоев в скользящем окне опускается ниже порога. Если вы видите это оповещение, откройте браузер заказов, проверьте причину, указанную для каждого затронутого заказа, а затем обратитесь к соответствующим шагам устранения неполадок ниже.

<AccordionGroup>
  <Accordion title="Я не могу пройти дальше шага 1: Подключение провайдера">
    Шаблон **Subscription Upgrade** никогда не скрывается — он всегда указан в списке **Add Funnel**, независимо от настройки вашего провайдера. Вас блокирует проверка подключения на шаге 1: кнопка **Continue** остаётся неактивной, пока **Test API key** не вернёт **API key verified** с зелёной галочкой.

    Два разных исхода отображаются одинаковым красным значком отмены, поэтому читайте сообщение рядом с ним:

    * **Ваш провайдер отклонил ключ.** У токена отсутствуют необходимые области доступа или он был отозван, и в сообщении указана конкретная проблема. Выпустите новый токен в панели провайдера с областями доступа, перечисленными в разделе [Настройка и конфигурация](/ru/aftersell/subscription-upgrades-setup), вставьте его и повторите проверку.
    * **Aftersell не смог связаться с вашим провайдером** — «Could not verify the API key. Please try again.» С токеном не обязательно что-то не так; сбой произошёл в самом вызове. Нажмите **Test API key** ещё раз.

    Изменение провайдера или токена сбрасывает предыдущий результат, поэтому после любого изменения проверяйте заново.
  </Accordion>

  <Accordion title="Мой клиент видит неожиданный товар в своём заказе">
    Это ожидаемое поведение. Этот товар — товар предложения, позиция-заполнитель, добавляемая в заказ Shopify как запись о принятом обновлении. Чтобы уменьшить путаницу, переименуйте товар предложения во что-то понятное и добавьте описание в Shopify Admin, объясняющее, что он собой представляет. См. [Что видит клиент](/ru/aftersell/subscription-upgrades#what-the-customer-sees).
  </Accordion>

  <Accordion title="Обновление было принято, но подписка не изменилась">
    Набор изменений Shopify и вызов API провайдера независимы. Если товар предложения был добавлен в заказ, но подписка не изменилась, наиболее частые причины:

    * Срок действия API-токена провайдера истёк или у него нет необходимых разрешений. Для Recharge токен должен иметь `read_orders`, `read_subscriptions`, `write_subscriptions` и `read_plans`. Перейдите к шагу **Step 1: Connect provider**, повторно проверьте ключ и посмотрите в сообщении об ошибке, каких именно областей доступа не хватает.
    * Подходящий товар в воронке не совпадает с тем, на что клиент фактически подписан.
    * Для Loop: целевой план продаж не существует в вашей панели Loop для настроенной частоты.
    * Процесс повторных попыток может ещё выполняться по своему расписанию: после неудачного вызова он повторяет попытку через +1 час, а затем через +24 часа. Это одинаково для всех провайдеров, включая Loop, чьи вызовы обновления синхронны и при успехе сразу отображаются в панели.

    Aftersell автоматически повторяет неудачные вызовы провайдера в фоновом процессе. Перед повторным запуском процесс проверяет текущее состояние у провайдера, поэтому успешное, но медленное обновление не применяется дважды.

    Если повторный запуск не может устранить причину, процесс либо **возвращает средства** — когда ни одно изменение у провайдера не удалось, а оплаченная позиция была заполнителем, — либо помечает обновление для **ручной сверки**, оставляя заказ без изменений. Совершенно новые подписки и обновления наборов никогда не возвращаются автоматически, поскольку покупатель получает реальные товары. Обратитесь в поддержку, указав данные из раздела [Тестирование и проверка](/ru/aftersell/subscription-upgrades-testing#when-something-looks-wrong).
  </Accordion>

  <Accordion title="Раскрывающийся список планов продаж пуст">
    Вариант «Use an existing selling plan» получает планы напрямую из Recharge, Skio или Loop. Если список пуст:

    * Убедитесь, что планы продаж настроены в панели вашего провайдера.
    * Убедитесь, что у вашего API-токена есть доступ на чтение к планам (Recharge: область доступа `read_plans`) или соответствующие области доступа (Skio, Loop).
    * Вернитесь к шагу **Step 1: Connect provider**, повторно проверьте API-ключ и продолжите.
  </Accordion>

  <Accordion title="Я использую Loop, и поля частоты списания нет">
    Это ожидаемо. В Loop поле **Billing frequency** вообще не отображается — только **Delivery frequency** с примечанием «Loop syncs billing to delivery — customers are charged on each renewal». Заданная вами частота доставки одновременно является частотой списания.

    Именно поэтому предоплаченные подписки — с частотой списания длиннее частоты доставки — не поддерживаются в Loop: интеграция сразу отклоняет их, вместо того чтобы предлагать поле, которое нельзя использовать. Остальные провайдеры показывают оба поля.
  </Accordion>

  <Accordion title="В браузере заказов отображается значок Subscription conflict">
    Товар предложения доступен только по подписке — либо сам товар, либо все его варианты, — а в оформлении заказа клиента уже была подписка. Shopify не позволяет вторую подписку в одном заказе, поэтому предложение было пропущено.

    Панель сведений о заказе уточняет, какой это был случай: «The customer's checkout already has a subscription, and the offer product is subscription-only» или «All variants of the offer product are subscriptions, and the customer's checkout already has one.» Обе ситуации исправляются одинаково — отредактируйте выбор товара в предложении и подставьте товар с разовой покупкой, либо используйте вариант **Create new** на шаге **Step 4: Offer product**, чтобы создать заполнитель.
  </Accordion>

  <Accordion title="Моё предложение об обновлении показывается клиентам, которые не являются подписчиками">
    * Убедитесь, что опция **Show this funnel for all customers** не включена. Она переопределяет все остальные триггеры.
    * Проверьте триггер **Variant on subscription**. Он показывает воронку только тогда, когда заказ содержит один из выбранных товаров, *купленных по подписке*. В воронке с предложением об обновлении подписки этим триггером управляет мастер, синхронизируя его с обновляемым товаром, поэтому он доступен только для чтения — на панели указано «Managed by this funnel's subscription upgrade offer.» Если он нацелен на неправильные товары, исправьте товар-триггер в предложении об обновлении, а не сам триггер.
    * Проверьте приоритет воронок. Воронка с более высоким приоритетом и более широкими триггерами может срабатывать первой.

    <Warning>
      Не пытайтесь воспроизвести это отдельным триггером по товару плюс триггером по подписке. Именно эту пару заменил **Variant on subscription**: два условия проверялись независимо, поэтому заказ, содержащий ваш товар-триггер как разовую покупку *и* не связанный товар по подписке, удовлетворял обоим, запускал воронку, а обновление затем завершалось сбоем. Один триггер, проверяющий товар и состояние подписки вместе, — это поддерживаемая настройка.
    </Warning>
  </Accordion>
</AccordionGroup>
