maclen2007 24 октября 2015 0 3
Здравствуйте!
С помощью статьи на вашем сайте «Дополнительные параметры товаров» реализовал в интернет-магазине данный функционал и настроил зависимость цены от выбора того или иного параметра. С этим всё понятно. Но возникла проблема. Если я покупаю один и тот же товар, но при этом выставляю для него разные параметры, то у меня в корзине просто идёт обновление одного и того же товара, а именно — меняется просто его количество, при этом цена добавляется точно такая же, какая осталась от предыдущего параметра. Вот к примеру, есть икона, у неё есть параметр размер, допустим 10 x 20 — цена 200 рублей, 30 x 40 — цена 500 рублей. Если я добавляю в корзину товар с параметром 10 x 20, а затем добавляю тот же товар, но с параметром 30 x 40, то в корзине отображается один и тот же товар, при это цена суммируется не правильно. В зависимости от количества прибавляется — 200 рублей, или 500 рублей. Смотря какое значение было добавлено первым. А хотелось бы, чтобы в корзине это отображалось как два разных товара. В связи с чем вопрос — в какую сторону двигаться, чтобы реализовать данный функционал? Или же так быть не должно и с моей стороны была допущена какая-то ошибка ранее?
3 комментария
Fi1osof1
Fi1osof 24 октября 2015г в 21:44 #
Хотя в статье той был описан, но все же вы явно упустили из вида метод findExistingObject. При добавлении товара в корзину скрипт смотрит, есть ли этот товар в корзине или нет. Если товар найден, то его количество увеличивается на указанную цифру. По умолчанию поиск идет по id заказа и id товара. Вот вам надо дописать туда в условие еще и свой параметр, тогда все и заработает. А цены не меняются, потому что при добавлении только количество меняется, а не цена. Если товар в заказе уже есть, то цена просто так не изменится.
m
maclen2007 24 октября 2015г в 22:21 #
Да, действительно. Был невнимателен. Спасибо за информацию, всё заработало как надо.
Fi1osof1
Fi1osof 24 октября 2015г в 22:32 #
Не за что.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.