У меня магазин на 4.9.2 версии CS-Cart.
Выбираем способ доставки - Почта России,
Расчёт тарифа - в режиме реального времени
Во вкладке “Настроить”, вид отправления - любое международное отправление
Нажимаем “Тест” расчёта стоимости доставки, выдаёт ошибку в случае если индекс не шестизначный (шестизначный рассчитывает). При оформление заказа пользователем тоже не рассчитывает. Заграничные индексы не все шестизначные, даже у ближайших стран Казахстан, Украина встречаются пятизначные. Попробовал на http://demo.cs-cart.ru, разные адреса Украины и Казахстана, там то же самое.
Ошибка при тесте: Индекс места назначения (to): значение “to=72773” не может быть менее 100000 (1130)
В журнале событий ошибка:
URL: http://tariff.russianpost.ru/tariff/v1/calculate
Запрос: ‘json=&errorcode=1&closed=1&object=3001&date=20190201&from=101000&to=72773&country=398&weight=1000&sumoc=10000&sumnp=0&isavia=2&service=&countinpack=’
Ответ: {“caption”:“Ошибки тарификации”,“version”:“1.9.14.297”,“data”:{“id”:3001,“typ”:3,“cat”:0,“dir”:1,“name”:“Бандероль простая”,“seq”:3001,“date”:20190201,“date-first”:20190101,“transfer”:true},“error”:[“Индекс места назначения (to): значение “to=72773” не может быть менее 100000 (1130)”],“errors”:[{“msg”:“Индекс места назначения (to): значение “to=72773” не может быть менее 100000”,“code”:1130}]}
Это запрос к калькулятору Почты России и ответ самого калькулятора. Вы можете уточнить в поддержке почты почему сервис отдает ошибку при расчете стоимости доставки для адреса пятизначным индексом.
Судя по документации запрос правильный (код 3001 это международная бандероль)
Ответ “Почты России”: Для международных отправлений не используется параметр to
Попробовал без параметра to, расчёт работает.
В файле /app/addons/rus_russianpost/Tygh/Shippings/Services/RussianPostPochta.php
нашёл строчку $data_post[‘to’] = $location[‘zipcode’];
Какое условие для неё правильно написать? Для того чтобы исключить параметр для международной доставки.
Пока сделал так:
if ($location[‘country’] == ‘RU’) {
$data_post[‘to’] = $location[‘zipcode’];
}