MS2: Как реализовать несколько цен с опциям?
Суть: есть товар «Пицца», у него два размера, и два способа приготовления — итого 4 цены
Подскажите, пожалуйста, каким образом можно реализовать на «странице товара» выпадающий список с 4мя вариантами выбора, чтобы при выборе из списка сразу менялась цена и при клике на заказать товар с указанными опциями попадал в заказ.
С первой частью я понимаю как сделать через tv + js, но при добавлении товара в заказ он туда попадает с дефолтной ценой… ((
Подскажите, пожалуйста, каким образом можно реализовать на «странице товара» выпадающий список с 4мя вариантами выбора, чтобы при выборе из списка сразу менялась цена и при клике на заказать товар с указанными опциями попадал в заказ.
С первой частью я понимаю как сделать через tv + js, но при добавлении товара в заказ он туда попадает с дефолтной ценой… ((
Комментарии: 9
Всё, что есть в первой части, есть и во второй.
Я имел ввиду первую часть вопроса, а не MS1
Подобная задача была на проекте с погонажём всяким, стоимость рассчитывалась исходя из кучи параметров. Использовали МС 2, в результате от МС2 ничего не осталось, всё переписали.
Зачем всё переписывать, если можно написать только свой класс корзины?
Ну вот у нас только корзина и осталась, да и то мы в тупую класс корзины переписали, не расширяя.
Вывод заказов в админке пришлось переделывать, ещё не закончили правда.
Вывод заказов в админке пришлось переделывать, ещё не закончили правда.
Документацию читал, но особо она мне не помогла.
2 варианта, попроще и посложнее.
Попроще: создавай 4 товара, и склеивай их через связи. Нужно будет написать простенький сниппет, который будет проверять, есть ли у товара нужные связи и выводить их в виде селектбокса.
При его переключении — перезагрузка на нужную страницу, или сразу добавление нужного id товара в корзину.
Посложнее: один товар, но у него создать специально поле (или использовать поле size). Туда писать варианты в формате «размер: цена», прямо из админки.
Другой простенький сниппет на сайте должен будет получать это поле, разбирать на варианты и выводить селектбокс с «размер — цена».
При его переключении ты меняешь цену на странице, скриптом, а при добавлении с корзину отправляешь размер на сервер, вместе с id.
А вот на сервере нужно получить поле со списком размеров и ценами, а потом выделить цену, соответствующую размеру. Тут либо кастомный класс корзины, либо используй системный параметр ms2_price_snippet — для указания сниппета, который будет это делать.
Таким образом, товар добавится в корзину с нужной ценой.
В общем, выбор за тобой.
Попроще: создавай 4 товара, и склеивай их через связи. Нужно будет написать простенький сниппет, который будет проверять, есть ли у товара нужные связи и выводить их в виде селектбокса.
При его переключении — перезагрузка на нужную страницу, или сразу добавление нужного id товара в корзину.
Посложнее: один товар, но у него создать специально поле (или использовать поле size). Туда писать варианты в формате «размер: цена», прямо из админки.
Другой простенький сниппет на сайте должен будет получать это поле, разбирать на варианты и выводить селектбокс с «размер — цена».
При его переключении ты меняешь цену на странице, скриптом, а при добавлении с корзину отправляешь размер на сервер, вместе с id.
А вот на сервере нужно получить поле со списком размеров и ценами, а потом выделить цену, соответствующую размеру. Тут либо кастомный класс корзины, либо используй системный параметр ms2_price_snippet — для указания сниппета, который будет это делать.
Таким образом, товар добавится в корзину с нужной ценой.
В общем, выбор за тобой.
Сделал ещё проще, хотя, с точки зрения использования функционала магазина, и не совсем правильно. Позицию товара завел как «категорию товара», а опции как вложенные в категорию товары. Дальше Wayfinder'ом строю селектбокс, выводя в атрибуты option: id и price товара. И по change селектбокса меняю значение data-id на кнопке и содержимое дива с ценой. В селектбокс название позиции беру из longtitle, в корзину же он попадает с pagetitle
Единственный «затык» — после нажатия кнопки отправки товара в заказ перестаёт работать onChange на селектбоксе и data-id не меняется. «Вылечил» убиванием модального окна со страницей товара (у меня так), но понимаю, что тоже не правильно…
Единственный «затык» — после нажатия кнопки отправки товара в заказ перестаёт работать onChange на селектбоксе и data-id не меняется. «Вылечил» убиванием модального окна со страницей товара (у меня так), но понимаю, что тоже не правильно…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.