Для заказов, оплаченных через интернет, платёжная система может присылать в интернет-магазин специальные запросы, чтобы обновить статус заказа. В запросе платёжная система присылает сумму заказа, чтобы убедиться в том, что состав заказа в магазине не успел измениться к этому моменту.
Если сумма заказа изменилась, статус заказа не будет обновлён: видимо, с заказом выполняются какие-то нестандартные действия, в которые платёжной системе лучше не вмешиваться. В этом случае в истории обработки заказа появится запись вида
Сумма заказа изменилась: ожидалось ..., получено ... Валюта: ...
Как работает проверка суммы заказа
Сумма заказа в запросе платёжной системы может незначительно отличаться от фактической суммы заказа в интернет-магазине. Например, всего на 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, );
После сохранения файла очистите кеш в приложении «Настройки».