Переход на новую версию Почты России
Переход на новую версию Почты России, описанный ниже, нужен магазинам, где уже стоит версия 1.x. Но если вы подключаете Почту России впервые, начните с полной инструкции по настройке плагина Почты России.
Плагин «Почта России для WooCommerce» версии 2.0 написан заново. Поэтому при обновлении с версии 1.x он сам переносит настройки, способы доставки в зонах и данные старых заказов. Переход на новую версию Почты России запускается при первом открытии админки после обновления, а старые заказы плагин переносит в фоне, пока магазин работает как обычно. Часть настроек перенести нельзя, и лучше знать о них заранее.
Лицензия сохраняется при обновлении: ключ и привязка к сайту не меняются, вводить их заново не нужно. Но без действующей лицензии Woodev плагин работает с ограниченными возможностями: он не показывает способы доставки покупателям и блокирует новые операции с Почтой России, то есть выгрузку и отмену заказа и получение документов. Поэтому перед обновлением проверьте, что ключ на месте.
Что изменилось в новой версии #
- Заказы теперь выгружаются только через личный кабинет «Отправки» (otpravka.pochta.ru). Кабинет «Виджет» из версии 1.x больше не поддерживается. Для «Отправки» нужны договор с Почтой России и три ключа: токен приложения, логин и пароль.
- Статусы доставки обновляются по токену отслеживания, а не по логину и паролю отслеживания, как в версии 1.x.
- Способов доставки четыре: «Почта России — курьер», «Почта России — отделение», «Почта России — постамат» и «Почта России — за границу». Один способ в зоне предлагает один тариф.
- Настройки лежат на странице «Woodev → Настройки», на вкладке «Почта России».
- Карта отделений и постаматов работает сразу. Мы рекомендуем указать свой ключ API Яндекс Карт, чтобы в окне выбора пункта работали подсказки при вводе адреса.
- Минимальные требования: WordPress 6.4, WooCommerce 8.5.1 и PHP 7.4 или новее.
Подробности обо всех возможностях лежат в статье «Настройка плагина Почты России».
Что сделать до обновления #
Сделайте резервную копию #
Сохраните файлы сайта и базу данных. Если вы не знаете, как это сделать, посмотрите в панели хостинга или попросите хостинг-провайдера. Сделайте резервную копию перед обновлением: у плагина нет кнопки возврата на прошлую версию.
В плагине нет кнопки автоматического отката. Вернуться к состоянию до обновления можно только с резервной копии базы данных и файлов, сделанной заранее. Поэтому сделайте копию до того, как нажмёте «Обновить».
Проверьте версию плагина #
Версию вы видите в списке плагинов WordPress. Плагин умеет переносить данные только версий 1.2.0.0 и новее. Если у вас более старая версия, плагин ничего не меняет, а экран переноса просит настроить плагин заново по статье «Настройка плагина Почты России».
Проверьте требования и лицензию #
Новой версии нужны WordPress 6.4 или новее, WooCommerce 8.5.1 или новее и PHP 7.4 или новее. Если у вас версии ниже, сначала обновите сайт. Делайте это отдельно от плагина, чтобы понимать, что именно изменилось.
Ключ Woodev лежит в вашем личном кабинете. Страница «Woodev → Лицензии» показывает, активен ли он.
Подготовьте ключи #
Токен приложения, логин и пароль сохраняются в тех же полях и переносятся сами. Но если вы выгружали заказы через кабинет «Виджет», ключей «Отправки» у вас может не быть. Для доступа к «Отправке» нужны договор с Почтой России и ключи. По подсказке самого плагина, доступ предусмотрен для юридических лиц, ИП и самозанятых, а частным лицам он недоступен.
Логин и пароль отслеживания из версии 1.x не переносятся: новая версия работает по токену. Его выдаёт личный кабинет юридического лица на tracking.pochta.ru. Без токена заказы выгружаются, но статусы доставки не обновляются.
Лимит запросов к «Отправке» можно увеличить через персонального менеджера Почты России.
Обновите вместе с другими плагинами #
Старые версии плагинов Woodev не работают вместе с новыми. Если на сайте стоят СДЭК или Яндекс Доставка новой версии, Почта России версии 1.x не запустится, а в админке появится красное сообщение «Следующие плагины устарели и поэтому не были запущены: Russian Post EMS integration with Woocommerce. Обновите их до последней версии.» Обновляйте плагины вместе, порядок описан в статье «Как обновить плагины WooDev на новую версию».
Запишите, как всё устроено сейчас #
Откройте «WooCommerce → Настройки → Доставка» и сохраните снимки экрана своих зон. Затем запишите, какие способы Почты России стоят в каких зонах. Кроме того, отметьте названия, ограничения сумм, пороги бесплатной доставки и классы доставки. По этим записям после обновления намного проще сверить результат.
Что происходит при обновлении #
Перенос запускается сам, когда вы в первый раз открываете админку после обновления. Нажимать ничего не нужно. Однако откройте админку сразу после обновления, не откладывая: до этого плагин ничего не переносит.
Перенос идёт в два этапа, и ни на одном из них плагин не обращается к Почте России.
- Настройки и способы доставки переносятся сразу, за один заход.
- Старые заказы переносятся в фоне, небольшими порциями. Магазин при этом работает как обычно.
Если первый этап прервётся, в админке появится красное сообщение «Почта России: перенос настроек не завершён и повторится при следующем открытии админки. Если сообщение не исчезает, обратитесь в поддержку.» Оно не пропадёт, пока перенос не закончится. Повторный запуск уже перенесённого ничего не меняет.
Что переносится сразу #
- Способы доставки в зонах. Зона и номер способа остаются прежними, меняется только тип. Курьерский способ из версии 1.x становится «Почта России — курьер», а способ доставки в отделение становится «Почта России — отделение».
- Настройки каждого способа: заголовок, порог бесплатной доставки, купон на бесплатную доставку, показ срока доставки, класс доставки, способы оплаты и описание. Прежние минимальная и максимальная цена превращаются в «Минимальную сумму заказа» и «Максимальную сумму заказа». Это границы суммы корзины, а не цены доставки. Если в заголовке стоял шаблон %parcel_type%, он заменяется названием нового тарифа.
- Тариф. Прежний тип отправления подбирается к тарифу того же вида. Если способ был настроен на «любой» тариф или тариф больше не поддерживается, плагин предлагает тариф сам, и вы подтверждаете его вручную. О том, как это сделать, ниже.
- Ограничения способов оплаты. Для способов оплаты, которые были привязаны к способам доставки (например, оплата при получении), плагин переписывает список на новые способы.
- Общие настройки. Вес и габариты по умолчанию из прежних минимальных значений, если в новых полях пусто. Ключ DaData. Переключатель «Логирование». Индекс отделения отправки: если в новых настройках он пуст, плагин берёт его из сохранённых данных версии 1.x, когда там шесть цифр.
- Автовыгрузка. Она включается, только если есть три ключа «Отправки», выгрузка шла не через «Виджет», список статусов не пуст и в версии 1.x автовыгрузка была включена. Иначе она остаётся выключенной.
- Статусы заказа. Прежние статусы «заказ доставлен» и «заказ отменён» переносятся в поля «Статус доставленного заказа» и «Статус отменённого заказа».
- Ключи и лицензия остаются на месте.
- Письмо с трек-номером. У письма тот же идентификатор и то же поле текста, поэтому ваш изменённый текст и шаблон в теме продолжают работать.
- Данные заказов: трек-номер, история, статус, способ выгрузки и отметка об отправленном письме остаются. Письмо повторно никому не уходит.
- Поле «Код ТН ВЭД» в карточках товаров остаётся и используется для международных отправлений.
Если новое поле общих настроек уже было заполнено, плагин оставляет его как есть, а значения из версии 1.x поверх не записывает.
Старые заказы #
- Если старых заказов меньше 500, перенос стартует сам. Первая порция запускается через час после первого открытия админки, а дальше порции идут с интервалом в 30 секунд. Порция — до 200 записей или 10 секунд работы. Если заказов 500 или больше, перенос не запускается, пока вы не нажмёте кнопку на экране переноса.
- Заказ можно открыть раньше очереди. Заказ переносится сразу, когда вы открываете его в админке, выгружаете или отменяете.
- В каждом заказе способ доставки получает новый идентификатор. Прежний сохраняется в служебной записи заказа. Способ доставки в отделение превращается в «Почта России — отделение», в «Почта России — постамат» (если выбранная точка была постаматом) или в «Почта России — за границу» (если страна доставки не Россия).
- Сохранённые цены и точки в строках заказов приводятся к новому виду. Если у строки не было сохранённой цены, плагин её не придумывает.
Если в этот момент идёт перенос заказа, вы увидите «Идёт перенос заказов Почты России. Повторите действие через минуту.» Если конвертировать заказ не удалось, действие остановится с сообщением «Не удалось перенести заказ Почты России. Действие остановлено; повторите позже или обратитесь в поддержку.»
Экран переноса #
Откройте «Перенос данных из версии 1.x» одним из способов: на вкладке «Почта России» в «Woodev → Настройки», в разделе «Перенос с версии 1.x», по ссылке «Открыть экран переноса» в сообщении над админкой или через шаг «Переход с версии 1.x» в мастере настройки. Страница обновляется сама раз в полминуты, пока идёт перенос.
На экране есть таблица с тремя строками: «Способы доставки в заказах», «Сохранённые тарифы и пункты выдачи в заказах» и «Последние пункты, выбранные покупателями». Её столбцы: «Перенесено», «Всего», «Не удалось» и «Состояние». Таблица считает записи в базе, а не заказы: один заказ обычно даёт несколько записей. Над таблицей одна из строк состояния:
- «Перенос заказов ещё не начинался.»
- «Перенос заказов не запущен. В магазине много заказов, поэтому он стартует только по вашей кнопке.»
- «Перенос идёт. Страница обновляется сама раз в полминуты.»
- «Перенос приостановлен. Нажмите «Продолжить», когда будете готовы.»
- «Перенос закончился, но часть записей перенести не удалось. Нажмите «Повторить».»
- «Перенос заказов завершён. Больше ничего делать не нужно.»
Кнопки на экране:
- «Начать перенос заказов» — запускает перенос сразу. Нужна, если заказов 500 и больше.
- «Приостановить» — останавливает порции, уже перенесённое сохраняется.
- «Продолжить» — продолжает с того места, где остановились.
- «Повторить» — ещё раз проходит по записям, которые перенести не удалось.
Если кнопка отвечает, что перенос занят другим действием или не закончен перенос настроек, подождите минуту и нажмите ещё раз.
Что не перенеслось само #
Ниже таблицы экран выводит список «Что не перенеслось само». Если вручную ничего делать не нужно, там написано «Всё нужное перенесено, вручную ничего делать не требуется.» В остальных случаях в списке будут пункты из раздела ниже.
Что не переносится и что настроить заново #
- Кабинет «Виджет». Как способ выгрузки он больше не поддерживается. Если вы выгружали через него, автовыгрузка остаётся выключенной, а для выгрузки нужны ключи «Отправки». Заказы, выгруженные через «Виджет», остаются в базе: их данные сохранены, статус по трек-номеру обновляется. Но отменить такой заказ, получить его этикетку или обновить его в «Отправке» нельзя. Попытка показывает «Заказ выгружен через кабинет «Виджет» — управляйте им там.»
- Логин и пароль отслеживания. Они не переносятся. Если вам нужны статусы доставки, укажите токен отслеживания в «Woodev → Настройки», вкладка «Почта России», раздел «Отслеживание». Токен необязателен: без него заказы выгружаются и письмо с трек-номером уходит, но статусы доставки и связанные с ними письма не обновляются.
- Тарифы, которые плагин предложил сам. Для таких способов в админке виден запрос «Почта России: после переноса выберите и сохраните тариф для способов доставки № …». Откройте каждый способ в «WooCommerce → Настройки → Доставка», выберите тариф и сохраните. Если предложенный тариф вас устраивает, нажмите «Оставить предложенный тариф (№ …)» прямо в сообщении. Кнопка нужна потому, что WooCommerce не даёт сохранить способ, пока вы ничего не изменили.
- Класс доставки. В версии 1.x он не учитывался, в новой версии учитывается. Проверьте, что способы показываются там, где нужно.
- Постаматы. В версии 1.x покупатель мог выбрать постамат в способе доставки в отделение. Теперь для этого нужен отдельный способ «Почта России — постамат». Если он нужен, добавьте его в зоны («WooCommerce → Настройки → Доставка → нужная зона → Добавить способ доставки»). Если способ нужен, но его нет ни в одной зоне, экран переноса напомнит об этом и даст ссылку «Открыть зоны доставки».
- Способ «за границу». В версии 1.x для него не было отдельного способа в зонах. Добавьте «Почта России — за границу» в зоны, куда вы отправляете посылки.
- Статус «в пути» из версии 1.x. Прежнее значение сохранено, но новая версия его не использует.
- Настройки карты и подсказок: скрытие полей, расположение кнопки карты, автозакрытие карты, подсказки региона, города и адреса, заполнение индекса по адресу. Эти настройки теперь общие, они лежат на вкладке «Доставка» в «Woodev → Настройки», разделы «Форма заказа» и «Карта». Проверьте их.
- Ключ API Яндекс Карт. Карта работает и без него. Мы рекомендуем указать свой ключ в разделе «Карта» на вкладке «Доставка», чтобы в окне выбора пункта работали подсказки при вводе адреса.
- Ставка НДС из старых настроек сохраняется, но новая версия пока её не использует.
- Общие значения, которые уже были заданы. Если в новых общих настройках уже стоял ключ DaData или вес и размеры по умолчанию, плагин оставил их без изменений, а на экране переноса написано об этом.
- Заказы, оставшиеся «новыми» или с ошибкой выгрузки. Плагин их не менял. Проверьте их и выгрузите заново, если нужно.
- Прежние правки кода. Если вы писали свой код на хуках версии 1.x, он может потребовать доработки. Список для разработчика в конце статьи.
Мастер настройки #
Если в магазине нашлись данные версии 1.x, в мастере настройки первым идёт шаг «Переход с версии 1.x». Он объясняет, что кабинет «Виджет» больше не нужен, что на следующем шаге нужны ключи «Отправки», и сообщает прежние значения веса и размеров по умолчанию как справку. Эти значения в новые настройки переносятся отдельно и на шаге «Вес и габариты» ничего не затираются. Подробнее про шаги мастера написано в разделе «Мастер настройки» инструкции по настройке, а общий порядок описан в статье «Мастер переноса настроек».
Что проверить после обновления #
- Откройте любую страницу админки. Красного сообщения «Почта России: перенос настроек не завершён…» быть не должно. Если оно есть, обновите страницу. Если оно не исчезает, напишите в поддержку.
- Откройте экран переноса. Если заказов меньше 500, статус дойдёт до «Перенос заказов завершён. Больше ничего делать не нужно.» примерно через час после первого открытия админки. Если заказов 500 и больше, нажмите «Начать перенос заказов». Если в строке написано «есть записи, которые не удалось перенести», нажмите «Повторить».
- Прочитайте список «Что не перенеслось само» и выполните его пункты.
- Откройте «Woodev → Настройки», вкладку «Почта России», раздел «Подключение» и нажмите «Проверить подключение». Ключи сохранились, а кнопка подтвердит, что Почта России их принимает.
- Откройте раздел «Выгрузка заказов», карточка «Отправитель». Убедитесь, что выбрано отделение отправки. Если список пуст, нажмите «Обновить список». Если не задано ни одно действующее отделение отправки, выгрузка остановится.
- Если нужны статусы доставки, вставьте токен отслеживания в разделе «Отслеживание». Этот токен выдаётся в другом кабинете, не в «Отправке».
- Откройте «WooCommerce → Настройки → Доставка» и проверьте каждую зону. Каждый прежний способ превращается в «Почта России — курьер» или «Почта России — отделение», и у каждого способа выбран тариф.
- Проверьте «Способы оплаты» и оплату при получении. Плагин переписал список способов доставки у оплаты, привязанной к методам доставки, поэтому убедитесь, что она показывается у перенесённых способов.
- Если выгрузка шла через «Виджет» или ключей не было, автовыгрузка выключена. Включите её после ввода ключей: «Включить автоэкспорт» в разделе «Выгрузка заказов».
- Мы рекомендуем указать свой ключ API Яндекс Карт на вкладке «Доставка», в разделе «Карта»: тогда в окне выбора пункта работают подсказки при вводе адреса.
- Откройте старый заказ. В строке доставки должно быть новое название способа, а ниже трек-номер и пункт выдачи.
- В конце сделайте пробный заказ с каждым способом. Выберите отделение на карте, проверьте цену и выгрузите заказ кнопкой «Экспорт».
Если на экране переноса было сказано, что в магазине есть заказы, выгруженные через «Виджет», или заказы со статусом «новый», проверьте их отдельно в личном кабинете.
Возврат на версию 1.x #
В плагине нет кнопки автоматического отката. Вернуться на версию 1.x можно только с резервной копии базы данных и файлов, сделанной до обновления, поэтому сделайте резервную копию перед обновлением. Журнал переноса сохраняет часть исходных настроек, но сам плагин не выполняет их автоматическое восстановление.
Настройки прежних способов доставки остаются в базе, как и основной набор настроек с ключами, а в строках заказов запоминается исходный способ доставки. Плагин также очищает устаревшие временные данные и очередь старой версии. Если резервной копии нет, напишите в поддержку и приложите версию плагина и снимок экрана переноса.
При удалении плагина заказы, настройки способов доставки в зонах и основной набор настроек остаются в базе. Удаляются принадлежащие плагину настройки и служебные данные, включая журнал переноса и состояние лицензии.
Не удаляйте плагин и данные магазина, пока не проверили, что новая версия работает. Без резервной копии вернуться на версию 1.x не получится.
Для разработчиков #
Короткий список изменений, которые могут сломать свой код.
- Идентификаторы способов доставки сменились:
wc_russian_post_courierсталrussian_post_courier,wc_russian_post_postal—russian_post_pickup. Для постамата и международных отправлений добавленыrussian_post_postamatиrussian_post_international. Код, который проверяет прежние идентификаторы, перестанет срабатывать. - Из публичных хуков версии 1.x сохранены 5, удалены 31. Хуки смены статуса заказа сохранили прежние имена:
wc_russian_post_order_status_changedи производные от него. - Удалены AJAX-действия версии 1.x, адреса
wc-api(russian_post_barcode,russian_post_status, они отвечают 410) и переопределение проверки российского индекса. - Настройка суточного лимита запросов отслеживания убрана. Лимит по умолчанию 100 в сутки, менять его можно фильтром
woodev_wc_russian_post_tracking_daily_cap(от 1 до 5 000). - Шаблон письма с трек-номером по-прежнему переопределяется в теме:
woocommerce/emails/tracking-number.phpиwoocommerce/emails/plain/tracking-number.php. - Мета-поля заказов с префиксом
_wc_russian_post_остаются, в строках заказов появляется_wc_russian_post_v1_method_idс прежним идентификатором способа.
Если что-то пошло не так #
Напишите в поддержку, если красное сообщение о незавершённом переносе не исчезает после нескольких открытий админки или если способ Почты России пропал с оформления заказа, а причину вы не нашли. Сначала откройте «Woodev → Настройки», вкладка «Почта России», раздел «Дополнительно», включите «Логирование» и посмотрите причину в строке «Скрыт: …» на оформлении заказа. Если сами не разберётесь, пришлите версию плагина, фрагмент журнала и снимок экрана. Не забудьте выключить «Логирование», когда закончите.