Вход в аккаунт

Войдите в свой аккаунт WooDev

или

Войти через сервис

Корзина

Корзина пуста

Перейти в каталог
Гайды

Почему WooCommerce не показывает способы доставки на checkout

Если на checkout пропала доставка, это не означает, что WooCommerce или перевозчик обязательно сломались. Чаще проблема в том, что магазин смешивает базовые правила зон доставки с логикой API-методов, а потом ищет ошибку не в том месте: то в настройках СДЭК, то в шаблоне checkout, то в кэше.

Краткий ответ

Сначала нужно понять, какие именно методы не показываются. Если пропали встроенные методы WooCommerce вроде Фиксированной ставки, Бесплатной доставки или Самовывоза, в большинстве случаев проблема в базовой конфигурации магазина: зона доставки, порядок зон, класс доставки, условия метода или адрес покупателя. Эти методы не зависят от внешних сервисов и не ходят в API перевозчика за расчётом.

Если же встроенные методы видны, а СДЭК, Почта России или Яндекс Доставка нет, логика уже другая. Такие способы доставки зависят не только от WooCommerce, но и от входных данных заказа: адреса, индекса, веса, габаритов, состава корзины, иногда способа оплаты и настроек самого API-подключения. Поэтому диагностику лучше делить на две ветки, а не искать одну “волшебную” причину на всё сразу.

Тип метода Примеры От чего зависит показ
Статический Фиксированная ставка, Бесплатная доставка, Самовывоз Зона доставки, порядок зон, shipping class, условия метода, настройки WooCommerce
Динамический СДЭК, Почта России, Яндекс Доставка, distance-based rate Зона доставки плюс адрес, индекс, вес, габариты, API-ключи, ответ внешнего сервиса

Сначала поймите, какой именно метод пропал

Это главный разворот всей диагностики. Встроенные методы WooCommerce работают по внутренним правилам самого магазина. WooCommerce Core прямо пишет, что Flat Rate, Free Shipping и Local Pickup опираются на зоны доставки и классы доставки, а вес и габариты сами по себе на их доступность не влияют. Эти данные особенно важны уже для live rates и API-расчёта перевозчиков.

С динамическими методами всё жёстче. В официальном troubleshooting-гайде WooCommerce для API-методов отдельно вынесены четыре проверки: включить debug/logging в самом плагине, убедиться в наличии веса и габаритов, проверить API-учётные данные и убедиться, что в настройках задан корректный адрес отправителя. То есть у таких методов может быть идеально настроена зона доставки, но сам способ всё равно не покажется, если перевозчик не может посчитать ставку по текущему заказу.

У WooCommerce есть встроенный Shipping Debug Mode для core-методов доставки. Его можно включить в WooCommerce → Settings → Shipping → Shipping settings, чтобы увидеть, какая зона доставки вообще матчится к текущему адресу покупателя. Для проблемы “почему не показывается Фиксированная ставка или Самовывоз” это один из самых быстрых тестов.

Почему зоны доставки ломают показ даже без API

Очень частая ошибка в реальных магазинах выглядит так: владелец создаёт несколько зон с одной и той же страной, например три зоны с Россией, и в каждую кладёт разные методы доставки. Потом он ожидает, что на checkout покупатель увидит методы из всех этих зон. Но логика WooCommerce устроена иначе: покупатель попадает только в одну зону, и система берёт первую подходящую зону сверху. Это прямо указано в официальной документации WooCommerce по shipping zones.

Из-за этого возникает ложное ощущение, что “СДЭК не показывается” или “Самовывоз пропал”, хотя проблема не в конкретном методе. Просто первая зона уже совпала с адресом покупателя и дальше WooCommerce даже не доходит до второй и третьей зоны с той же страной. На практике это одна из самых частых причин, почему в корзине показывается только один способ доставки, а остальные как будто исчезли.

Именно поэтому я бы в статье отдельно сослался на вашу инструкцию Как настроить зоны доставки. Она правильно объясняет базовый принцип: у одного покупателя доступна только одна зона доставки, а дублировать одинаковые страны по нескольким зонам бессмысленно. В troubleshooting-статье эта ссылка будет работать как “разбор базы”, а не как дубль по содержанию.

Если в магазине создано несколько зон с одной и той же страной, сначала проверьте их порядок. Пока первая зона для этого адреса может отдать хотя бы один доступный метод, WooCommerce не пойдёт проверять следующую зону с тем же регионом.

Почему не показываются встроенные методы WooCommerce

Если не видны Фиксированная ставка, Бесплатная доставка или Самовывоз, я бы шёл по такому порядку.

  1. Проверьте, в какую зону попадает адрес. Если зона не совпала, методы из неё не покажутся вообще. Особенно часто это ломается на индексах, на неверном порядке зон и на ситуации “Россия” против “Россия + Беларусь”.
  2. Убедитесь, что метод добавлен именно в эту зону и включён. Наличие метода где-то в настройках доставки не означает, что он активен для текущей зоны.
  3. Проверьте условия метода. У бесплатной доставки это может быть минимальная сумма заказа, купон или комбинация условий. У flat rate часто всплывают ошибки в настройке shipping class costs и calculation type.
  4. Проверьте shipping classes у товаров. WooCommerce отдельно указывает, что неверный shipping class или пустая стоимость по class cost легко ломают расчёт или делают ставку неожиданно нулевой.
  5. Убедитесь, что товар не виртуальный. В core-документации это вынесено отдельно: virtual product не запускает shipping calculation и не показывает shipping fields как физический товар.

Отдельный нюанс с Самовывозом: в classic checkout и в Checkout Block он может работать по-разному. WooCommerce прямо предупреждает, что block-based Local Pickup не нужно дублировать через старый legacy-метод в зоне доставки. Иначе на checkout можно увидеть двойной pickup или, наоборот, запутаться, какой именно pickup вы сейчас тестируете.

Почему пропадают СДЭК, Почта России и Яндекс Доставка

Если статические методы на месте, а перевозчики нет, смотрите уже не только на WooCommerce, но и на входные данные самого заказа. Для магазинов WooDev эта ветка особенно знакома, потому что СДЭК, Почта России, Яндекс Доставка и расчёт по расстоянию гораздо чувствительнее к качеству данных, чем встроенная Фиксированная ставка.

  1. Адрес покупателя. Неполный город, неверный индекс, нераспознанный населённый пункт или пустая улица часто приводят к тому, что API не может вернуть тарифы или доступные ПВЗ.
  2. Вес и габариты. Для live rate extensions WooCommerce отдельно рекомендует убедиться, что у товаров заполнены weight and dimensions. Без этого часть плагинов не может упаковать заказ и не возвращает стоимость вообще.
  3. Адрес отправителя и настройки склада. Если origin ZIP code или точка отправки настроены неверно, расчёт может не вернуться, даже когда адрес покупателя выглядит нормальным.
  4. API-ключи и авторизация. В official troubleshooting WooCommerce это вынесено отдельным пунктом: невалидные credentials часто ломают показ тарифов ещё до того, как покупатель увидит хоть один метод доставки.
  5. Ограничения самого метода. Некоторые сценарии зависят от состава корзины, суммы заказа, наложенного платежа, конкретного способа оплаты или от того, нужен ли ПВЗ, курьер или только доставка до двери.

На практике это выглядит так: владелец магазина видит, что Фиксированная ставка доступна, значит зона настроена правильно. Но СДЭК и Яндекс не появляются. В такой ситуации я бы почти никогда не начинал с шаблона checkout или с “переустановить плагин”. Намного полезнее сразу посмотреть, хватает ли заказу данных для API-расчёта: полный ли адрес, есть ли вес, нет ли нулевых габаритов, корректен ли выбранный город и совпадает ли логика доставки с текущим методом оплаты.

Что проверить до обращения в поддержку

Лучший вариант для первой диагностики — не писать “доставка не работает”, а собрать короткий воспроизводимый кейс. Это экономит время и вам, и поддержке.

  1. Зафиксируйте адрес теста. Страна, регион, город, индекс, формат адреса, где метод должен показываться.
  2. Проверьте, какой тип метода исчез. Только API-методы или даже встроенные core-методы.
  3. Сделайте скрин зоны доставки и её порядка. Для проблем с WooCommerce Core это часто важнее, чем скрин самого checkout.
  4. Проверьте товар. Не virtual ли он, назначен ли shipping class, заполнены ли вес и размеры.
  5. Включите debug mode или логирование. Для core-методов полезен shipping debug mode, для перевозчиков — debug/logging внутри самого плагина.
  6. Проверьте страницу без кэша и на дефолтном checkout. WooCommerce отдельно советует исключить конфликт theme builder, кастомного cart/checkout-модуля или серверного кэша.

Если после этого остаётся понятный сценарий вида “для Москвы при весе 2 кг и индексе 101000 видна Фиксированная ставка, но не возвращается СДЭК”, поддержка уже сможет разбираться по существу. А вот сообщение “у меня не показывается доставка” почти всегда растягивает переписку на несколько лишних писем.

Что делать дальше

Если у вас пропадают встроенные методы доставки, начните с базовой механики WooCommerce: зона, порядок зон, shipping class и условия конкретного метода. Если core-методы на месте, а перевозчики нет, переходите к данным заказа и логам API. Для магазинов на WooCommerce это почти всегда самый короткий путь к реальной причине, а не к гаданию по симптомам.

Если нужно, дальше можно идти двумя дорожками: сначала разобрать базовую конфигурацию через инструкцию по зонам доставки, а затем подобрать или проверить рабочий модуль доставки под ваш сценарий магазина.

Плагины для WooCommerce

Читайте также

Гайды

Как обновить WooCommerce

Обновление WooCommerce нельзя сводить к нажатию одной кнопки в админке. Для магазина в РФ и СНГ оно почти всегда затрагивает оплату, доставку, email-письма, checkout, базу данных и кастомные плагины. Поэтому…

Гайды

Как найти конфликт плагинов и темы в WordPress

Конфликт плагинов WordPress часто возникает только в одном месте: перестаёт работать форма, пропадает способ оплаты или ломается оформление заказа. Отключать все расширения на рабочем сайте рискованно. Health Check & Troubleshooting…