private:koding:hostcms:modules:shop:cart:markup

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
private:koding:hostcms:modules:shop:cart:markup [23.01.17 в 15:07]
maximzasorin_gmail.com
private:koding:hostcms:modules:shop:cart:markup [29.06.17 в 15:42] (current)
Артем Куц ↷ Операцией перемещения обновлены ссылки
Line 6: Line 6:
  
 Для реализации подобного механизма можно использовать данное решение. Для реализации подобного механизма можно использовать данное решение.
 +
 +Стандартного механизма для хранения наценки по каждому товару в корзине и заказе не предусмотрено,​ поэтому необходимо придумать механизм хранения этой информации. Изначально,​ когда заказ еще не создан будем хранить информацию о наценках в сессии,​ когда пользователь оформит заказ эта информация запишется в доп. свойство заказа и с помощью наблюдателей будет прикрепляться к товарам заказа. Цена товаров,​ для которых будет выбрана наценка,​ будет подменятся с помощью наблюдателя при выводе корзины,​ будут учитываться данные сессии или данные из доп. свойства заказа.
  
 ===== Константы ===== ===== Константы =====
Line 30: Line 32:
  
 ==== Наблюдатель для вывода наценки в заказе и ЦА (1) ==== ==== Наблюдатель для вывода наценки в заказе и ЦА (1) ====
-  * Загружаем файл: [[private:​koding:​hostcms:​shop:​cart:​markup:​additionalfields.php|/​modules/​shop/​order/​item/​observer/​additionalfields.php]]+  * Загружаем файл: [[private:​koding:​hostcms:modules:​shop:​cart:​markup:​additionalfields.php|/​modules/​shop/​order/​item/​observer/​additionalfields.php]]
   * Добавляем в bootstrap.php:<​code php>​Core_Event::​attach('​shop_order_item.onCallmarkup',​ array('​Shop_Order_Item_Observer_AdditionalFields',​ '​onCallmarkup'​));</​code>​   * Добавляем в bootstrap.php:<​code php>​Core_Event::​attach('​shop_order_item.onCallmarkup',​ array('​Shop_Order_Item_Observer_AdditionalFields',​ '​onCallmarkup'​));</​code>​
  
 ==== Наблюдатель для подмены цены товара (2) ==== ==== Наблюдатель для подмены цены товара (2) ====
  
-Загружаем файл: [[private:​koding:​hostcms:​shop:​cart:​markup:​addmarkuptoprice.php|/​modules/​shop/​item/​controller/​observer/​addmarkuptoprice.php]]+Загружаем файл: [[private:​koding:​hostcms:modules:​shop:​cart:​markup:​addmarkuptoprice.php|/​modules/​shop/​item/​controller/​observer/​addmarkuptoprice.php]]
  
 ==== Наблюдатель для прикрепления наценки к корзине (3) ==== ==== Наблюдатель для прикрепления наценки к корзине (3) ====
  
-Загружаем файл: [[private:​koding:​hostcms:​shop:​cart:​markup:​attachmarkup.php|/​modules/​shop/​cart/​controller/​show/​observer/​attachmarkup.php]]+Загружаем файл: [[private:​koding:​hostcms:modules:​shop:​cart:​markup:​attachmarkup.php|/​modules/​shop/​cart/​controller/​show/​observer/​attachmarkup.php]]
  
 ===== Формы центра администрирования ===== ===== Формы центра администрирования =====
Line 48: Line 50:
  
 {{:​private:​koding:​hostcms:​shop:​cart:​pasted:​20170123-150540.png}} {{:​private:​koding:​hostcms:​shop:​cart:​pasted:​20170123-150540.png}}
 +
 +* Необходимо обратить внимание,​ что стоимость товара здесь выводится с учетом наценки,​ а наценка выступает в качестве информационного поля. Для вывода цены без наценки можно использовать метод ''​Shop_Order_Item_Observer_AdditionalFields::​onCallprice_without_markup'',​ создав аналогично полю ''​markup''​ поле ''​price_without_markup'',​ а оригинальное поле с ценой из форм ЦА удалить. При этом в карточке товара в заказе все равно будет выводится цена товара с наценкой.
  
 ===== ТДС корзины ===== ===== ТДС корзины =====
  
 ==== Настройки страницы ==== ==== Настройки страницы ====
-  - Код вывода краткой корзины обопрачиваем в наблюдатель:<​code php>+  - Код вывода краткой корзины оборачиваем в наблюдатель:<​code php>
 Core_Event::​attach('​Shop_Item_Controller.onAfterCalculatePrice',​ array('​Shop_Item_Controller_Observer_AddMarkupToPrice',​ '​onAfterCalculatePrice'​));</​code>​После вывода:<​code php>​Core_Event::​detach('​Shop_Item_Controller.onAfterCalculatePrice',​ array('​ Core_Event::​attach('​Shop_Item_Controller.onAfterCalculatePrice',​ array('​Shop_Item_Controller_Observer_AddMarkupToPrice',​ '​onAfterCalculatePrice'​));</​code>​После вывода:<​code php>​Core_Event::​detach('​Shop_Item_Controller.onAfterCalculatePrice',​ array('​
 Shop_Item_Controller_Observer_AddMarkupToPrice',​ '​onAfterCalculatePrice'​));</​code>​Должно быть так:<​code php>​Core_Event::​attach('​Shop_Item_Controller.onAfterCalculatePrice',​ array('​Shop_Item_Controller_Observer_AddMarkupToPrice',​ '​onAfterCalculatePrice'​));​ Shop_Item_Controller_Observer_AddMarkupToPrice',​ '​onAfterCalculatePrice'​));</​code>​Должно быть так:<​code php>​Core_Event::​attach('​Shop_Item_Controller.onAfterCalculatePrice',​ array('​Shop_Item_Controller_Observer_AddMarkupToPrice',​ '​onAfterCalculatePrice'​));​
private/koding/hostcms/modules/shop/cart/markup.1485173267.txt.gz · Last modified: 23.01.17 в 15:07 by maximzasorin_gmail.com