Jump to content
Sign in to follow this  
Antanel

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

Recommended Posts

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

нет, тут только зомби шатаются.

и те - редко.

начинай курение с "system/library/cart.php"

Share this post


Link to post
Share on other sites

Спасибо, 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 для этого случая.

Edited by Antanel

Share this post


Link to post
Share on other sites

Сорри, в процессе в тему ушел черновик.

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.