This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
private:koding:hostcms:modules:shop:cart:markup [23.01.17 в 16:14] maximzasorin_gmail.com |
private:koding:hostcms:modules:shop:cart:markup [29.06.17 в 15:42] (current) Артем Куц ↷ Операцией перемещения обновлены ссылки |
||
---|---|---|---|
Line 7: | Line 7: | ||
Для реализации подобного механизма можно использовать данное решение. | Для реализации подобного механизма можно использовать данное решение. | ||
- | Стандартного механизма для хранения наценки по каждому товару в корзине и заказе не предусмотрено, поэтому необходимо придумать механизм хранения этой информации. Изначально, когда заказ еще не создан будем хранить информацию о наценках в сессии, когда пользователь оформит заказ эта информация запишется в доп. свойство заказа и с помощью наблюдателей будет прикреплятся к товарам заказа. Цена товаров, для которых будет выбрана наценка, будет подменятся с помощью наблюдателя при выводе корзины, будут учитываться данные сессии или данные из доп. свойства заказа. | + | Стандартного механизма для хранения наценки по каждому товару в корзине и заказе не предусмотрено, поэтому необходимо придумать механизм хранения этой информации. Изначально, когда заказ еще не создан будем хранить информацию о наценках в сессии, когда пользователь оформит заказ эта информация запишется в доп. свойство заказа и с помощью наблюдателей будет прикрепляться к товарам заказа. Цена товаров, для которых будет выбрана наценка, будет подменятся с помощью наблюдателя при выводе корзины, будут учитываться данные сессии или данные из доп. свойства заказа. |
===== Константы ===== | ===== Константы ===== | ||
Line 32: | 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 56: | Line 56: | ||
==== Настройки страницы ==== | ==== Настройки страницы ==== | ||
- | - Код вывода краткой корзины обопрачиваем в наблюдатель:<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')); |