Дублирование записей транзакций на setCurrentOrderState в prestashop 1.6.1.18

Дублирование записей транзакций на setCurrentOrderState в prestashop 1.6.1.18

21.02.2018 04:24:16 Просмотров 10 Источник

У меня есть последняя версия 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

user703551

19.09.2018 01:00:34

У меня такая же проблема. Чтобы избежать дублирования платежа измените:

$history->changeIdOrderState($stateId, $order->id);

к

$history->changeIdOrderState($stateId, $order->id, true);

Третий параметр "true" означает использование существующего платежа. Потеряли полдня с этой проблемой, затем просто попробуйте покопаться в источнике prestashop github и нашли этот третий параметр.