Vladyslav
Service
Опубликовано: 24 февраля 2021

Для заказов, оплаченных через интернет, платёжная система может присылать в интернет-магазин специальные запросы, чтобы обновить статус заказа. В запросе платёжная система присылает сумму заказа, чтобы убедиться в том, что состав заказа в магазине не успел измениться к этому моменту.

Если сумма заказа изменилась, статус заказа не будет обновлён: видимо, с заказом выполняются какие-то нестандартные действия, в которые платёжной системе лучше не вмешиваться. В этом случае в истории обработки заказа появится запись вида

Сумма заказа изменилась: ожидалось ..., получено ... Валюта: ...

Как работает проверка суммы заказа

Сумма заказа в запросе платёжной системы может незначительно отличаться от фактической суммы заказа в интернет-магазине. Например, всего на 1,1 копейки или меньше. Это может происходить, например, из-за погрешности округления или перевода суммы заказа в другую валюту. Такие небольшие погрешности намеренно игнорируются в Shop-Script.

Иногда эта разница может быть больше 1,1 копейки, но всё равно незначительной, например, 2 копейки. В этом случае статус заказа не обновится, а в истории обработки появится сообщение об изменившейся сумме заказа.

Как изменить логику проверки суммы

Если вы считаете, что разница в 2 копейки (но не больше 2 копеек) не слишком велика для автоматического обновления статуса заказа, можно увеличить порог срабатывания проверки суммы заказа. Для этого сохраните в файле wa-config/apps/shop/config.php значение параметра order_amount_tolerance, отличное от стандартного 0.011 (эквивалента суммы в 1,1 копейки, если валюта заказа — рубль, или 1,1 цента, если валюта — доллар или евро):

'order_amount_tolerance' => 0.02,
В пороговом значении вместо десятичной запятой нужно использовать точку. Неправильно: 0,02 Правильно: 0.02

Если такого параметра в файле нет, добавьте его по аналогии с другими записями в этом файле:

'products_per_page' => 50, '...' => ..., 'order_amount_tolerance' => 0.02,

Если этого файла у вас нет, создайте его с таким содержимым:

<?php  return array(    'order_amount_tolerance' => 0.02, );

После сохранения файла очистите кеш в приложении «Настройки».

Добавить комментарий

Чтобы добавить комментарий, зарегистрируйтесь или войдите