Дублирование записей транзакций на setCurrentOrderState в prestashop 1.6.1.18
У меня есть последняя версия 1.6 (1.6.1.18).
Проблема. 1. Заказ создан 2. Платежный модуль перенаправляет пользователя 3. При успешном выполнении состояние заказа изменяется
Эти строки вызывают проблемы
echo $order->getOrderPaymentCollection()->count(); // returns 1
$history = new OrderHistory();
$history->id_order = $order->id;
$history->changeIdOrderState($stateId, $order->id);
echo $order->getOrderPaymentCollection()->count(); // returns 2
Другой метод
echo $order->getOrderPaymentCollection()->count(); // returns 1
$order->setCurrentState($orderId);
echo $order->getOrderPaymentCollection()->count(); // returns 2
Вот аналогичная проблема, но с другим модулем https://github.com/ICEPAY/Prestashop/issues/1
setCurrentState
создал повторяющиеся записи для транзакций.
Как этого избежать?
Могу ли я изменить состояние и обновить историю транзакций сразу без повторяющихся записей?
После установки никакие настройки магазина не были изменены.
Ответы - Дублирование записей транзакций на setCurrentOrderState в prestashop 1.6.1.18 / Duplicate transaction entries on setCurrentOrderState in prestashop 1.6.1.18

19.09.2018 01:00:34
У меня такая же проблема. Чтобы избежать дублирования платежа измените:
$history->changeIdOrderState($stateId, $order->id);
к
$history->changeIdOrderState($stateId, $order->id, true);
Третий параметр "true" означает использование существующего платежа. Потеряли полдня с этой проблемой, затем просто попробуйте покопаться в источнике prestashop github и нашли этот третий параметр.