Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Нулевая цена товара при добавлении в корзину


Recommended Posts

Один и тот-же товар продается в различных по массе/объему фасовках. Для этого заведен один товар и в качестве опций указаны его разновидности. Цена у товара установлена в 0,00. У опций цена представляется как прибавка к нулевой стоимости "основного" товара. При добавлении товара в корзину не учитывается поправка опции. В результате этого получаем нулевую стоимость товара в корзине.
Для понимания происходящего, цена "основного" продукта ставилась отличной от нулевой. В таком случае в корзине указывается эта цена без поправки на опцию.
Принимаются практические советы как добиться правильного формирования корректной цены для отображения в корзине.

PS: сильно не пинайте, с опенкартом столкнулся впервые.

Надіслати
Поділитися на інших сайтах


ну если совсем не понимаете ничего в коде, можно начать с замены файлов движка, отвечающих за добавление товара в корзину, на дефолтные

Надіслати
Поділитися на інших сайтах

ну если совсем не понимаете ничего в коде, можно начать с замены файлов движка, отвечающих за добавление товара в корзину, на дефолтные

Пожалуй, если посидеть, то разобраться в коде и можно. Вот только кода малость дофига посему и пытаюсь уточнить у более знающих людей куда смотреть в первую очередь. Тем более, что я уже довольно узко и точно очертил саму проблему. Очень похоже на то, что при нажатии кнопки добавления в корзину получается не product_id опции товара, но самого товара.

Отправка с формы делается через json посредством jquery.

Сам механизм работает, но где-то косяки с определением идентификатора опции.

PS: прежде создания этой темы я отсеял уже с десяток проблем, приводящих к нулевой цене товара в корзине посредством "ОК, Гугл".

Надіслати
Поділитися на інших сайтах


Этот форум жив?
to freelancer: файлы, отвечающие за добавление товара в корзину дефолтные. Тем не менее при вместо цены опции товара устанавливается цена основного лота.

Как такое лечить? OpenCart 1.5.6

Надіслати
Поділитися на інших сайтах


Спасибо, afwollis.

На входе функция $this->cart->add(product_id, quantity, option, profile_id) получает

2015-07-03 23:05:35 - product_id = 139

2015-07-03 23:05:35 - quantity = 1

2015-07-03 23:05:35 - option: Array ([594] => 1059)

2015-07-03 23:05:35 - (int) profile_id = 0

Как я понимаю, это функция ядра и туда лучше не вмешиваться - потому как это "череповато" проблемами с функционалом при обновлении.

После ее работы в корзине (представлена часть данных, имеющих отношение к вопросу)

2015-07-03 23:05:35 - cart: Array [

139:YToxOntpOjU5NDtzOjQ6IjEwNTkiO30=:] => Array (

[key] => 139:YToxOntpOjU5NDtzOjQ6IjEwNTkiO30=:

[product_id] => 139

[option] => Array()

[quantity] => 1

[profile_id] => 0

)

В процессе работы функции add() значение option "потерялось" и этим я могу объяснить получение цены не опции, а основного лота.

Для наблюдения за динамикой процесса использую $this->log->write() в system/logs/error.txt, но этот способ по понятным причинам не катит в определениях классов ядра.

Подскажите способ gebug/watch для этого случая.

Змінено користувачем Antanel
Надіслати
Поділитися на інших сайтах


Проблема решена.

При формировании вывода информации на страницу шаблон product.tpl смотрит на параметр option['type'].

Код ядра cart.php несколько разнится в зависимости от этого самого параметра и обработка происходит по разным веткам (см. getProducts()).

В итоге, нашлось несоответствие между реализацией вывода информации о ценах опций на страницу и типом этих самых опций в таблице option, что повлияло на сценарий обработки результатов отосланных с клиента данных.

После устранения разницы все заработало.

Всем спасибо. Вопрос закрыт.

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.