miniShop2
miniShop2 copied to clipboard
Добавление возможности изменять опции товара в корзине
Что оно делает?
Даёт возможность менять опции у товара который уже добавлен в корзину
Зачем это нужно?
Нужно для того, чтобы не приходилось сначала удалять товар из корзины, затем по новой его добавлять с новой опцией.
Добрый вечер. Я тут накатил этот PR, вроде ничего не сломалось, но осталось непонятно в каком виде это можно протестировать? Не могли бы вы дополнить описание примером чанка или хотя бы скриншотом как это всё должно выглядеть на фронте для пользователя?
Добрый вечер. Я тут накатил этот PR, вроде ничего не сломалось, но осталось непонятно в каком виде это можно протестировать? Не могли бы вы дополнить описание примером чанка или хотя бы скриншотом как это всё должно выглядеть на фронте для пользователя?
@tanzirev
https://modx.pro/components/21405#comment-126848
Кароч, протестировал, есть нюансы. Тест 1:
- Добавить товар с опцией в корзину
- В корзине меняем опцию. Опция меняется. Но если у вас где-то ещё идёт вывод опции, то она визуально изменится после обновления страницы. В заказ же падает изменённая опция
Тест 2 (на примере размеров - M,XL, XXL):
- Добавить товар с опцией в корзину - XL
- Изменить опцию в корзине - меняем на XXL
- Вернуться в товар, выбрать XXL и добавить в корзину - по итогу в корзине 2 товара с одинаковыми опциями.
- Вернуться в корзину, выбрать первую опцию - XL
- При добавлении в корзину получаем баг, изменяется количество товара из первого шага, который мы поменяли на XXL в шаге 2. (Кто запутался - перечитайте еще раз)
По итогу функционал сыроват, я бы не рекомендовал в таком виде принимать PR.
Почему такой баг?
А потому что ключ товара в корзине формируется исходя из значений опций.
$key = md5($id . $price . $weight . (json_encode($options)));