Не работает сохранение корзины Prestashop

я имею дело с проблемой, мне нужно сменить перевозчика, если сумма корзины > 500, поэтому я подключаю actionCartSave и проверяю сумму, но, когда я это делаю

$cart->id_carrier=(int)$carrier_id;
$cart->update();

Ajax перестает отвечать, нужно перезагрузить страницу, чтобы увидеть, добавлен ли товар в корзину, но если я удалю $cart->update(), носитель не обновится. Как я могу это решить?


person lfelisiak    schedule 31.12.2017    source источник


Ответы (1)


Возможно, вы попадаете в петлю. когда вы вызываете update, хук actionCartSave вызывается снова.
Вам нужно избегать обновления корзины, если носитель корзины тот же, что и в вашем результате.

if ((int)$cart->id_carrier !== (int)$carrier_id) {
    $cart->id_carrier = (int)$carrier_id;
    $cart->update();
}

Таким образом, вы избежите бесконечного цикла
Другим (лучшим) решением будет использование $cart->save();, поскольку оно не вызывает actionCartSave

person unloco    schedule 05.01.2018