WooCommerce Table Rate Shipping - Плагин WordPress
Продвинутая, гибкая доставка. Определите несколько тарифов на доставку в зависимости от местоположения, цены, веса, класса доставки или количества товаров. Модуль доставки по тарифам таблицы расширяет параметры доставки WooCommerce по умолчанию, предоставляя вам настраиваемые параметры доставки.

Особенности плагина
Плагин предоставляет гибкие варианты доставки на основе различных условий, что делает его универсальным решением для эффективного управления стоимостью доставки. Устанавливая правила для тарифов доставки, продавцы могут настраивать ценообразование в соответствии с конкретными критериями, улучшая опыт покупок для клиентов. Благодаря интуитивному интерфейсу и возможностям настройки, он оптимизирует процесс доставки для пользователей WooCommerce, способствуя бесперебойной работе онлайн-магазина.
Плагин предлагает широкий спектр функций, таких как установка тарифов на основе веса, цены или определенных атрибутов продукта, что позволяет легко настраивать сложные сценарии доставки. Плагин позволяет владельцам магазинов создавать несколько методов доставки с различными структурами ценообразования, обеспечивая точные расчеты стоимости доставки для разнообразных каталогов продуктов. Автоматизируя процесс расчета стоимости доставки, он минимизирует ошибки и обеспечивает прозрачность в расходах на доставку как для бизнеса, так и для его клиентов.
Одним из его ключевых преимуществ является возможность создания зон доставки, обеспечивающих тщательный контроль над тем, где и как применяются тарифы доставки. Этот уровень настройки критически важен для интернет-магазинов, ориентированных на различные географические регионы, каждый из которых имеет уникальные требования к доставке. Более того, плагин поддерживает создание классов доставки, что позволяет категоризировать продукты для точного расчета тарифов, дополнительно оптимизируя процесс доставки для онлайн-ритейлеров.
Функция динамического ценообразования плагина позволяет применять скидки или наценки на основе определенных условий, предлагая гибкий подход к стратегиям ценообразования. Эта возможность дает владельцам магазинов возможность внедрять стратегические правила ценообразования, соответствующие их бизнес-целям и потребностям клиентов. Используя динамическое ценообразование, компании могут повысить удовлетворенность клиентов и увеличить продажи, предлагая конкурентоспособные тарифы доставки, адаптированные к индивидуальным покупательским поведениям.
Кроме того, WooCommerce Table Rate Shipping легко интегрируется с WooCommerce, обеспечивая совместимость и плавную работу в рамках платформы электронной коммерции. Эта взаимодействоваемость улучшает общий опыт покупок, предоставляя цельное решение по доставке, которое гармонично работает с другими функциями магазина. Благодаря регулярным обновлениям и постоянной поддержке, плагин остается надежным инструментом для эффективного управления логистикой доставки, адаптируясь к изменяющимся потребностям онлайн-бизнесов в конкурентной среде электронной коммерции.
Спецификации:
| Дата выхода: | 12-07-2019 | |
| Дата обновления: | 20-05-2026 | |
| Тип расширения: | Платный | |
| Лицензия: | GPL | |
| Тематика: | Интернет-коммерция Специфические для WooCommerce | |
| Совместимость: | W5.x | |
| Включает в себя: | Плагин | |
| Языковые пакеты: |
|
|
| Разработчик: | WooCommerce Plugins | |
| Рейтинг: | ||
Скачивание по подписке!
Вам необходимо авторизоваться на сайте и приобрести клубную подписку!
Поделись с друзьями!
Руководство по настройке WooCommerce Table Rate Shipping для гибкой доставки
WooCommerce Table Rate Shipping нужен не для красивой витрины, а для точного расчёта доставки в корзине и на оформлении заказа. В этом руководстве разберём, как подготовить зоны и классы доставки, как выбрать тип расчёта, как заполнить таблицу ставок, как проверить результат на тестовой корзине и что делать, если покупатель видит неправильную стоимость.
Материал рассчитан на магазин, где обычной фиксированной доставки уже недостаточно: товары отличаются весом, количеством, классом, регионом доставки или стоимостью заказа. Вместо рекламного пересказа возможностей здесь будет практическая схема работы: входные данные товара, логика таблицы, результат в корзине, проверка и диагностика.
Сразу отделим важное: плагин не заменяет службу доставки, не печатает этикетки и не получает живые тарифы перевозчика. Он помогает создать собственные правила расчёта стоимости доставки внутри WooCommerce. Если тарифы перевозчика меняются, их нужно поддерживать в таблицах или импортировать через CSV.
Как работает табличная доставка в WooCommerce
Табличная доставка строится вокруг простой идеи: WooCommerce определяет адрес покупателя, находит подходящую зону доставки, затем внутри этой зоны запускает доступные методы доставки. WooCommerce Table Rate Shipping добавляет в зону метод Table Rate, а уже внутри него администратор задаёт строки с условиями и стоимостью.
В каждой строке таблицы есть условие, диапазон и цена. Условием может быть цена товаров, вес, количество товаров, количество товаров одного класса или отсутствие отдельного условия. Цена может складываться из базовой стоимости строки, стоимости за товар, стоимости за единицу веса и процентной части. Поэтому один и тот же метод может покрывать простую ставку "до 5 кг", ступенчатую доставку по количеству, отдельные ставки для тяжёлых товаров и бесплатную доставку в определённой строке.
Ключевой момент - плагин не угадывает бизнес-логику сам. Он последовательно сравнивает корзину с таблицей, учитывает выбранный тип расчёта и применяет строки, которые соответствуют корзине. Если таблица составлена неоднозначно, результат тоже будет неоднозначным: покупатель может увидеть не ту ставку, несколько похожих вариантов или сообщение о недоступной доставке.
Работу плагина удобно понимать как цепочку Input - Product logic - Output - Verification. На входе находятся адрес покупателя, товары, вес, цены, количество и классы доставки. Внутри плагина выбираются зона, метод, тип расчёта и строки таблицы. На выходе WooCommerce показывает одну или несколько ставок доставки. Проверка результата проходит через тестовую корзину, разные адреса и разные комбинации товаров.
Какие данные реально влияют на расчёт
Перед настройкой важно отличать данные, которые участвуют в расчёте, от данных, которые просто описывают товар. Для табличной доставки обычно важны вес, цена, количество, класс доставки и адрес. Если вы хотите считать по весу, у товаров должен быть заполнен вес в единицах, заданных в настройках WooCommerce. Если хотите разделять маленькие и крупные товары, сначала создайте классы доставки и назначьте их товарам или вариациям.
Если товару не назначен класс, он не исчезает из расчёта, но попадает в сценарий "без класса" или "любой класс" в зависимости от строки таблицы. Это часто становится причиной неожиданных результатов: администратор настроил ставки только для класса Heavy, а часть товаров осталась без класса и не попадает в ожидаемую строку.
Чем Table Rate отличается от обычного Flat Rate
Стандартный Flat Rate хорош, когда нужна фиксированная ставка, простая формула или базовая привязка к классу доставки. Table Rate нужен, когда условий становится больше: разные диапазоны веса, разные ставки по количеству, несколько строк для одного класса, комбинация зоны и класса, ограничение верхней стоимости или необходимость остановить расчёт на первой подходящей строке.
Если магазин продаёт один тип товара с одним тарифом, Table Rate может быть лишним усложнением. Но если стоимость доставки зависит от диапазонов и исключений, таблица даёт более прозрачную модель: каждая строка объясняет, почему покупатель получил именно эту ставку.
Кому плагин подходит, а кому лучше выбрать другой подход
WooCommerce Table Rate Shipping хорошо подходит магазинам, где доставка должна быть предсказуемой, но не одинаковой для всех заказов. Типичные случаи: косметика с лёгкими и тяжёлыми наборами, зоотовары с кормами и аксессуарами, книги и сувениры, B2B-заказы с оптовыми количествами, магазины с региональными тарифами, товары с отдельными классами доставки.
Плагин особенно полезен, когда тарифы можно заранее представить в виде таблицы. Например: до определённого веса одна цена, после неё другая; до определённой суммы платная доставка, выше порога бесплатная; для крупногабаритного класса отдельная ставка; для небольшой посылки ставка ниже, но если в корзину попал тяжёлый товар, нужно брать более высокий тариф.
Не стоит начинать с Table Rate, если вам нужны live rates от конкретного перевозчика, автоматический подбор коробок, печать этикеток, трекинг или расчёт по расстоянию через внешний API. Для таких задач нужен carrier-плагин, box packing или отдельное расширение. Table Rate может стоять рядом с ними, но его роль другая - создать собственные статические правила, которые WooCommerce покажет в корзине.
Практическое правило: если тариф можно объяснить строками "условие - диапазон - стоимость", Table Rate подходит. Если тариф каждый раз нужно запрашивать у перевозчика, измерять объём упаковки или рассчитывать маршрут, одного Table Rate обычно мало.
Когда плагин будет удачным выбором
- У магазина уже есть таблица тарифов от службы доставки, которую можно перенести в правила WooCommerce.
- Товары делятся на понятные классы: лёгкие, тяжёлые, хрупкие, крупные, цифровые без доставки.
- Нужно показывать разные ставки для разных зон доставки и не смешивать их между собой.
- Стоимость должна зависеть от веса, цены заказа, количества товаров или класса доставки.
- Администратор готов тестировать несколько корзин после каждой правки правил.
Когда стоит быть осторожнее
Плагин требует дисциплины. Чем больше строк, тем важнее порядок, диапазоны и понятные названия ставок. Если магазин часто меняет ассортимент, если вес товаров заполняется нерегулярно, если менеджеры не ведут таблицу тарифов, то даже сильный плагин быстро превращается в набор загадочных правил.
Ещё одна зона осторожности - совместимость со сторонними расширениями, которые тоже вмешиваются в доставку, оплату, классы товаров или итог корзины. В отзывах к продукту встречаются жалобы на сложность настройки и отдельные конфликты с другими расширениями. Это не значит, что плагин ненадёжен, но означает, что тестовый стенд и проверка checkout обязательны.
Что подготовить перед установкой
Самая частая ошибка при настройке табличной доставки - начинать с таблицы ставок, когда ещё не готовы зоны, классы и товарные данные. В результате таблица вроде заполнена, но WooCommerce не может сопоставить её с реальной корзиной. Лучше потратить время на подготовку и только потом добавлять метод Table Rate в зоны.
Зоны доставки и порядок зон
В WooCommerce покупатель попадает только в одну зону доставки - первую подходящую по адресу. Поэтому порядок зон имеет прямое влияние на результат. Узкая зона с конкретными индексами или регионом должна стоять выше широкой зоны страны. Если зона города стоит ниже зоны страны, покупатель из города может получить общий тариф вместо локального.
Путь для проверки: WooCommerce - Settings - Shipping - Shipping zones. Убедитесь, что регионы заданы без пересечений, узкие зоны выше широких, а зона Rest of the world настроена осознанно. Если вы не доставляете в часть регионов, лучше явно создать зону без методов доставки, чем случайно отдавать её общему правилу.
Классы доставки товаров
Классы доставки в WooCommerce группируют товары по логике доставки, а не по каталогу. Это не категории магазина и не теги. Один товар может иметь только один класс доставки, а у вариативного товара класс можно назначить на уровень родительского товара или отдельной вариации. Для Table Rate классы особенно важны, потому что по ним можно делать отдельные строки и управлять приоритетом.
Перед настройкой создайте минимальный набор классов. Не нужно заводить класс для каждого товара. Достаточно групп, которые реально меняют стоимость: Small, Medium, Heavy, Oversized, Free shipping. Затем проверьте 10-20 товаров из разных категорий и убедитесь, что класс назначен там, где он нужен.
Вес, цена и тестовые товары
Если ставки зависят от веса, вес должен быть заполнен у товаров в тех единицах, которые заданы в WooCommerce - Settings - Products. Если ставки зависят от цены, продумайте, должны ли скидки менять попадание в диапазон. В официальной документации есть настройка и фильтр для сценария, когда сравнение диапазонов цены должно учитывать скидки, но такую правку нужно включать только после теста.
Создайте несколько тестовых товаров: один маленький, один средний, один тяжёлый, один без класса и один вариативный. Они помогут быстро проверить, как Table Rate ведёт себя с обычной корзиной, смешанной корзиной и крайним диапазоном.
Установка и первая проверка метода Table Rate
После установки плагина не ищите отдельную страницу настроек в случайном разделе админ-панели. Метод добавляется в конкретную shipping zone. Это логично: разные регионы могут иметь разные таблицы, и одна таблица не обязана действовать на весь магазин.
Общий путь такой: откройте WooCommerce - Settings - Shipping - Shipping zones, выберите нужную зону, нажмите Add shipping method, выберите Table Rate и перейдите к настройкам метода. Название метода, налоговый статус, handling fee и предел максимальной стоимости задаются на уровне экземпляра метода.
Что проверить сразу после активации
Первая проверка не должна быть сложной. Добавьте одну простую строку, которая точно должна сработать для тестового товара, сохраните метод и откройте корзину в режиме покупателя. Укажите адрес, который попадает в нужную зону. Если доставка появилась, базовая связка "зона - метод - таблица - checkout" работает.
Если ставки не видно, не добавляйте сразу ещё десять строк. Сначала проверьте зону, адрес, включённость метода, наличие физического товара в корзине, вес и класс товара. Табличная доставка не исправит ошибку в зоне или товарных данных.
Название метода и прозрачность для покупателя
Поле названия метода видно покупателю. Не называйте метод внутренним языком вроде TRS zone 1 heavy. Для checkout лучше подходят понятные названия: Standard shipping, Courier delivery, Heavy item delivery. Если в строках таблицы используются labels для отдельных ставок, они должны объяснять отличие ставки, а не повторять техническое условие.
Для бесплатной доставки в Table Rate документация рекомендует не оставлять покупателя в догадках: если ставка равна нулю, label должен объяснять, что это бесплатная доставка. В русской версии магазина это может быть "Бесплатная доставка" или "Доставка включена в заказ", если такая формулировка соответствует вашей политике.
Подробная настройка таблицы ставок
Настройка Table Rate начинается не с цифр, а с выбора типа расчёта. Этот выбор определяет, как плагин будет читать строки: для всего заказа, для каждого товара, для каждой строки корзины или для каждого класса доставки. Ошибка на этом уровне меняет весь результат, даже если диапазоны и цены заполнены правильно.
Calculation Type: четыре режима, которые нельзя путать
Per order считает доставку для заказа целиком. Если в корзине разные классы, используется логика приоритетов классов. Этот режим удобен, когда вы хотите показать одну итоговую ставку и не суммировать стоимость по каждой позиции.
Calculated rates per item проверяет каждый товар в корзине против таблицы. Такой режим полезен, когда стоимость должна масштабироваться по количеству отдельных товаров, но он может быстро увеличить итог, если вы случайно задали и row cost, и item cost без понимания итоговой формулы.
Calculated rates per line смотрит на строку корзины. Если покупатель берёт несколько одинаковых товаров, они остаются одной строкой. Этот режим удобен, когда одна позиция с количеством 5 должна считаться иначе, чем пять разных товаров.
Calculated rates per shipping class группирует товары по классу доставки и рассчитывает итог по классам. Это один из самых полезных режимов для магазинов с маленькими, средними и тяжёлыми товарами, потому что он позволяет задавать разные правила для разных групп.
Condition и диапазоны Min/Max
Столбец Condition сообщает плагину, какой параметр сравнивать: цену, вес, количество товара, количество товаров одного класса или ничего. Диапазоны Min и Max должны закрывать реальное поведение покупателей. Если вы продаёте партии до 200 товаров, а последняя строка заканчивается на 50, часть заказов может остаться без ожидаемой ставки.
Для диапазонов важно избегать дыр и непонятных пересечений. Если одна строка весом от 0 до 5, следующая должна начинаться там, где заканчивается первая, с учётом логики интерфейса и теста. Не полагайтесь на память: после заполнения таблицы выпишите контрольные значения и проверьте корзину на границах диапазона.
Стоимость строки, товара, веса и процента
Row Cost - базовая стоимость строки. Её удобно использовать для упаковки или минимальной цены доставки. Item Cost добавляется за товар. Cost per kg зависит от веса, а % Cost берёт процент от стоимости товаров. Комбинировать эти поля можно, но только если вы заранее понимаете итоговую формулу.
Для типового магазина лучше начинать с одного-двух компонентов стоимости. Например: row cost как базовая доставка и item cost как доплата за каждую единицу. Процентную стоимость добавляйте только там, где доставка действительно зависит от цены заказа, например для страхования или обработки дорогих товаров.
Minimum, maximum и handling fee
Минимальная стоимость защищает от слишком низкой доставки, максимальная - от чрезмерного роста в больших корзинах. Handling fee добавляет фиксированную надбавку на уровне метода или расчётной единицы. Эти параметры полезны, но их легко забыть при диагностике. Если итоговая доставка выше или ниже ожидаемой, проверьте не только строки таблицы, но и minimum, maximum, handling fee и налоговый статус.
Проверка после сохранения: не тестируйте только одну корзину. Проверьте минимальный заказ, заказ на границе диапазона, смешанную корзину из двух классов и заказ с адресом другой зоны.
Break, Abort и приоритеты классов: где чаще всего меняется итог
Индивидуальная сила WooCommerce Table Rate Shipping раскрывается в строках, где порядок и флаги важнее самих цифр. Именно здесь магазин может объединять доставку, останавливаться на первой подходящей строке или отключать ставку при опасной комбинации товаров.
Как работает Break
Break говорит плагину остановить дальнейший расчёт, когда строка подошла. Это особенно важно при объединении доставки. Представьте корзину с книгой и закладкой: закладка маленькая, книга средняя, но отправляются они одной посылкой. Если строка для средней доставки стоит выше строки маленькой доставки и включён Break, покупатель получает одну ставку для более значимой посылки. Если Break не включён, плагин может продолжить расчёт и сложить ставки.
Практический подход: строки с более дорогим, тяжёлым или ограничивающим сценарием ставьте выше строк с лёгкими товарами, а затем тестируйте смешанную корзину. Не используйте Break автоматически в каждой строке. Он нужен там, где первая подходящая строка должна завершить расчёт.
Когда нужен Abort
Abort используется, когда совпавшая строка должна отключить все ставки или текущий метод доставки. Это не обычная скидка и не замена label. Такой флаг нужен для запретительных сценариев: товар нельзя отправлять в выбранную зону, класс товара требует отдельной доставки, комбинация не должна проходить через этот метод.
После включения Abort обязательно проверьте текст причины, если он используется, и поведение checkout. Покупатель должен понимать, что проблема в адресе или составе корзины, а не в поломке сайта.
Приоритеты классов в режиме Per order
Если выбран Per order и в корзине товары разных классов, плагин использует class priorities. Чем выше приоритет, тем сильнее класс влияет на итог. В интерфейсной логике документации меньший номер означает более высокий приоритет. Это позволяет сказать: если в корзине есть крупный товар, рассчитываем заказ как крупный, даже если вместе с ним лежат маленькие аксессуары.
Не назначайте приоритеты наугад. Сначала определите, какой класс должен "побеждать" в смешанной корзине: тяжёлый, хрупкий, крупногабаритный, температурный. Затем соберите корзину с двумя классами и проверьте, что итог соответствует политике доставки.
Импорт и экспорт CSV без хаоса в правилах
Для маленького магазина таблицу можно вести руками. Но если зон много, тарифы обновляются регулярно или агентство переносит настройки между тестовым и рабочим сайтом, CSV import/export становится полезным рабочим инструментом. По документации, экспорт содержит данные таблицы ставок, но не заменяет все настройки экземпляра метода. Это значит, что после импорта нужно отдельно проверить calculation type, handling fee, tax settings, minimum и maximum.
Экспорт удобен как резервная копия перед массовой правкой. Сначала настройте ставки в интерфейсе, сохраните, экспортируйте CSV и только потом редактируйте файл. Не меняйте имена колонок, не переставляйте структуру и не вставляйте валютные символы в числовые поля. Для дробных чисел безопаснее использовать точку, если ваш импорт ожидает такой формат.
Когда CSV действительно нужен
- Нужно перенести ставки из тестовой зоны в рабочую зону без ручного копирования каждой строки.
- Перевозчик прислал обновлённую таблицу тарифов, и изменения проще внести в табличном редакторе.
- Магазин обслуживает несколько регионов с похожей логикой и разными числами.
- Перед экспериментом с условиями нужно сохранить откат к текущим рабочим ставкам.
Как проверять импорт
После импорта не считайте работу завершённой. Проверьте число строк, порядок строк, флаги Break и Abort, shipping class IDs и привязку к instance ID метода. Затем сохраните настройки метода и выполните тестовые корзины. Если импорт заменял существующие строки, убедитесь, что старые строки не остались рядом с новыми и не создают двойной расчёт.
Практический пример: доставка футболок, худи и тяжёлого набора
Разберём реалистичный сценарий. Магазин продаёт футболки, худи и тяжёлые подарочные наборы. Футболки лёгкие и могут отправляться несколькими штуками с небольшой доплатой. Худи требуют отдельной средней ставки. Подарочный набор тяжёлый: если он есть в корзине, доставка должна считаться по более высокому классу и не суммироваться с лёгкими товарами как две отдельные посылки.
Цель
Нужно получить три понятных результата: для одной футболки низкая ставка, для нескольких футболок ставка растёт по количеству, для корзины с тяжёлым набором применяется высокая доставка и не добавляется лишняя ставка за футболку.
Подготовка
- Создайте классы доставки
Small,MediumиHeavy. - Назначьте футболкам класс
Small, худи -Medium, подарочным наборам -Heavy. - Проверьте вес товаров, если часть ставок будет зависеть от веса.
- Создайте или выберите shipping zone, в которой действует доставка по этой логике.
- Добавьте метод
Table Rateи задайте понятное название для checkout.
Настройка строк
Для такого сценария удобен режим Calculated rates per shipping class, потому что товары группируются по классу. В таблице разместите тяжёлый класс выше, средний ниже, маленький внизу. Для строки Heavy включите Break, если бизнес-логика требует остановиться на тяжёлой доставке и не добавлять лёгкие товары. Для Small используйте condition Item Count (same class), чтобы ставка росла с количеством футболок.
Примерная логика строк без привязки к валюте: для Heavy row cost равен высокой ставке, item cost пустой или минимальный; для Medium row cost средний; для Small row cost небольшой, item cost добавляет плату за каждую дополнительную единицу. Числа берите из реальных тарифов перевозчика, а не из примера.
Проверка
Проверьте четыре корзины: одна футболка, три футболки, один худи, тяжёлый набор плюс футболка. Затем измените адрес на другую зону и убедитесь, что метод не протекает туда, где его не должно быть. Если в тяжёлой корзине ставка суммируется лишний раз, проверьте порядок строк и Break. Если футболки не считаются по количеству, проверьте class assignment и condition Item Count (same class).
Нюанс со скидками и ценовыми диапазонами
Если таблица использует condition Price, заранее решите, должна ли скидка влиять на попадание в диапазон. В настройках есть опция для discounted prices in Min-Max, а в документации также показан официальный фильтр для сравнения после скидок. Код добавляйте только через дочернюю тему или безопасный менеджер сниппетов, после резервной копии и теста.
add_filter( 'woocommerce_table_rate_compare_price_limits_after_discounts', '__return_true' );
Проверка простая: создайте купон, соберите корзину около порога ценового диапазона, примените скидку и посмотрите, изменилось ли попадание в строку так, как вы ожидали. Если результат стал непредсказуемым для менеджеров, отключите snippet и оставьте стандартное поведение.
Как проверить результат в корзине и на оформлении заказа
Проверка доставки должна имитировать реальные действия покупателя. Недостаточно посмотреть таблицу в админ-панели. WooCommerce рассчитывает shipping rates в контексте адреса, состава корзины, зоны, налогов, купонов и включённых методов. Поэтому итоговый тест проходит в корзине и на странице оформления заказа.
Минимальный набор тестовых корзин
- Один товар без класса доставки, если такие товары есть в каталоге.
- Один товар каждого основного класса доставки.
- Несколько одинаковых товаров, чтобы проверить item count и line count.
- Смешанная корзина из маленького и тяжёлого класса.
- Корзина на границе ценового или весового диапазона.
- Корзина с купоном, если скидки участвуют в условиях.
Адреса и зоны
Для каждой важной зоны подготовьте тестовый адрес. Если зона использует индексы с wildcard, проверьте адрес внутри диапазона и адрес рядом с ним. Если ставка должна быть недоступна для определённого региона, убедитесь, что WooCommerce показывает корректное сообщение, а не случайную ставку из широкой зоны.
Проверка вместе с кешем и checkout blocks
Доставка зависит от динамических данных корзины, поэтому агрессивный кеш страниц checkout и cart может мешать тестированию. Не кешируйте оформление заказа и корзину как статические страницы. Если магазин использует Cart and Checkout blocks, проверьте поведение именно на используемом checkout, а не только в старом шаблоне темы.
После правок ставок полезно очистить кеш сайта, обновить корзину, сменить адрес и изменить количество товара. Эти действия заставляют WooCommerce пересчитать shipping rates и помогают отличить ошибку настроек от устаревшего состояния корзины.
Частые проблемы и диагностика Table Rate Shipping
Проблемы с табличной доставкой редко решаются одной универсальной кнопкой. Нужно определить, на каком участке цепочки возник сбой: зона не выбрана, метод не добавлен, строка не совпала, класс товара пустой, порядок строк неверный, другой плагин меняет shipping rates или checkout показывает устаревший расчёт.
Ставка доставки не появляется
Симптом: в корзине нет метода доставки, хотя таблица заполнена. Возможные причины: покупатель не попал в нужную shipping zone, метод выключен, товар виртуальный, таблица не покрывает диапазон, класс товара не совпадает со строкой, зона без методов стоит выше нужной зоны.
Проверьте адрес, порядок зон, включённость метода и состав корзины. Затем добавьте временную простую строку с condition None, которая должна сработать для любого физического товара. Если она появилась, проблема в условиях таблицы. Если не появилась, проблема выше - в зоне, методе или корзине.
Покупатель видит ставку другой страны или региона
Симптом: адрес в одной стране, а ставка похожа на другую зону. Чаще всего виноват порядок shipping zones или слишком широкие регионы. WooCommerce выбирает первую подходящую зону, поэтому более конкретная зона должна стоять выше общей.
Откройте список зон и перетащите узкие зоны вверх. Проверьте индексы, wildcard и диапазоны. Если используется Rest of the world, убедитесь, что он не даёт доставку туда, куда магазин не отправляет товары.
Стоимость суммируется, хотя нужна одна ставка
Симптом: маленький товар и тяжёлый товар дают сумму двух доставок, хотя должны отправляться одной посылкой. Проверьте calculation type, порядок строк и Break. Для объединения доставки строки с более сильным классом обычно ставят выше, а Break останавливает дальнейший расчёт.
Если после включения Break ставка стала слишком низкой, вероятно, более дешёвая строка стоит выше дорогой. Переставьте строки и повторите тест смешанной корзины.
Товары без класса ломают ожидаемую логику
Симптом: часть товаров получает неожиданный тариф или не получает доставку. Проверьте, есть ли у них shipping class. Вариативные товары особенно легко пропустить: класс может быть задан на родителе, но отдельная вариация может вести себя иначе в зависимости от настроек товара.
Исправление: назначьте класс массовым редактированием или добавьте отдельную строку для товаров без класса, если это допустимый сценарий. Не оставляйте "без класса" как случайное состояние.
Импорт CSV создал странные результаты
Симптом: после импорта строки есть, но ставки не совпадают с ожиданием. Возможные причины: изменены заголовки колонок, перепутаны class IDs, импорт добавил строки вместо замены, числовые поля содержат символ валюты, не проверены настройки метода вне таблицы.
Откатитесь к экспортированной копии, если она есть. Затем импортируйте небольшой набор строк и проверьте одну зону. Для массового обновления сначала тестируйте на копии сайта или на отдельной зоне, чтобы не сломать рабочий checkout.
После купона меняется не та ставка
Симптом: покупатель применяет скидку, а доставка остаётся в старом ценовом диапазоне или наоборот переходит в другой диапазон неожиданно. Проверьте настройки discounted prices in Min-Max и наличие кастомного фильтра. Для менеджеров магазина должно быть ясно, сравниваются исходные цены или сумма после скидки.
Если логика скидок вызывает споры, лучше зафиксировать её в правилах магазина и тестовых сценариях. Не добавляйте snippet без документации для команды, иначе следующая правка таблицы снова создаст путаницу.
Конфликт с другим shipping-плагином
Симптом: ставки исчезают, дублируются или меняют порядок после включения другого расширения. Отключите на тестовом стенде другие плагины доставки по одному и проверьте, возвращается ли ожидаемый результат. Не делайте это на рабочем сайте в часы продаж.
Если конфликт воспроизводится только с конкретным расширением, проверьте документацию обоих продуктов и поддержку разработчика. Иногда правильное решение - разделить роли: один плагин создаёт ставки, другой ограничивает методы, третий отвечает за live rates. Но смешивать их без теста нельзя.
FAQ по настройке WooCommerce Table Rate Shipping
Можно ли настроить бесплатную доставку через Table Rate?
Да, если строка таблицы должна давать бесплатную доставку, стоимость можно установить равной нулю и добавить понятный label. Но если бесплатная доставка зависит только от суммы заказа или купона, сравните этот вариант со стандартным методом Free Shipping. Иногда встроенный метод проще и прозрачнее.
Почему в корзине показывается не та зона?
WooCommerce выбирает первую подходящую зону по адресу. Проверьте порядок зон, конкретные регионы, wildcard в индексах и наличие широкой зоны выше узкой. Для локальных зон порядок особенно важен.
Что выбрать: per order, per item, per line или per class?
Если нужна одна ставка за заказ, начните с Per order. Если ставка должна считаться по каждому товару, используйте Calculated rates per item. Если важна строка корзины, выбирайте Calculated rates per line. Если товары делятся на классы доставки, чаще всего полезен Calculated rates per shipping class.
Можно ли переносить правила между зонами?
Да, через CSV import/export можно переносить и массово обновлять строки таблицы. Но экспорт не заменяет все настройки метода, поэтому после импорта проверьте calculation type, tax status, handling fee, minimum, maximum и порядок строк.
Плагин подходит для live rates от перевозчика?
Нет, его основная задача - собственные табличные правила. Для живых тарифов от перевозчика обычно нужен carrier-плагин. Table Rate можно использовать рядом с такими методами, но не как замену API перевозчика.
Нужно ли добавлять код для скидок?
Не обязательно. Сначала проверьте доступные настройки discounted prices in Min-Max. Официальный фильтр имеет смысл только если бизнес-логика требует сравнивать диапазоны после скидок и команда понимает последствия.
Что делать, если доставка пропала после обновления?
Проверьте включённость метода, зоны, классы товаров, кеш checkout, конфликт с другими shipping-плагинами и последние изменения таблицы. Если проблема началась после обновления плагина или WooCommerce, воспроизведите её на тестовом стенде и обратитесь в поддержку с конкретной корзиной, адресом и настройками строки.
Когда WooCommerce Table Rate Shipping будет удачным выбором
Этот плагин стоит использовать, когда магазин уже понимает свою политику доставки и хочет перенести её в управляемые правила WooCommerce. Он особенно силён там, где тариф зависит от зоны, веса, цены, количества и классов доставки, а итог нужно объяснить и проверить без написания собственного shipping method.
Перед внедрением подготовьте зоны, классы, тестовые товары и таблицу тарифов. Затем настройте один метод в одной зоне, проверьте несколько корзин и только после этого переносите логику на остальные регионы. Такой порядок снижает риск сломать checkout и помогает менеджерам понять, почему доставка считается именно так.
Если после прочтения вы видите, что ваши тарифы действительно укладываются в таблицу условий, можно перейти к блоку загрузки и загрузить архив с WooCommerce Table Rate Shipping для тестовой установки. Начинайте с копии сайта или staging-среды, а на рабочем магазине включайте новые ставки только после проверки реальных корзин.


