У меня проблема с магазином Prestashop 1.6.1.23.
Я использую модуль, который добавляет кредиты. Таким образом, пользователи могут покупать, только если у них уже есть кредиты.
Допустим, на моем счету зачислено 10 €.
Затем я добавляю в корзину цифровой продукт (это купон), который стоит 10 €.
Все идет нормально. Я могу купить продукт и получить ключ продукта после завершения оплаты.
Если я перейду к последнему шагу заказа, прежде чем нажать (подтвердить заказ)
Затем откройте новую вкладку корзины. Обновите количество товара с 1 до 4, например.
Затем вернитесь к моей исходной вкладке, которая оставлена в (подтвердить заказ)
государство.
Нажмите для подтверждения заказа.
Платеж успешно отправлен и возвращает 4 ключа продукта вместо 1.
База данных обновляет таблицу ps_cart_product с правильным количеством.
Хотя, поскольку первая вкладка не обновляется после обновления количества, в корзине есть ложные данные.
Когда форма была опубликована, я обнаружил, что она получает данные от
$ cart = $ this-> context-> cart;
и $ cart-> getOrderTotal (true, Cart :: BOTH);
возвращает сумму (10) перед количествами, которые были обновлены на новой вкладке.
Таким образом, проверка того, что баланс выше или равен общему количеству проходов и завершает заказ.
Не было бы проблемы, если бы продукты были физическими, но, поскольку они являются цифровыми, а ключи продуктов отправляются сразу после завершения отправки.
Есть ли способ создать новый ключ сеанса для каждой новой вкладки, чтобы такой проблемы не было?
или есть другой способ получить правильные данные и сумму из $ this-> context-> cart?
Спасибо!