private:koding:hostcms:modules:shop:elements:regionprices

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:elements:regionprices [20.11.15 в 17:22]
maximzasorin_gmail.com
private:koding:hostcms:modules:shop:elements:regionprices [27.06.17 в 15:51] (current)
maximzasorin_gmail.com ↷ Страница перемещена из private:koding:modules:hostcms:shop:elements:regionprices в private:koding:hostcms:modules:shop:elements:regionprices
Line 1: Line 1:
 ====== Разные цены товаров для разных складов ====== ====== Разные цены товаров для разных складов ======
  
-Хотим выводить разные цены для разных ​регионов. Дейлаем следующее:​+Хотим выводить разные цены для разных ​складов. Делаем следующее:​
  
-  * Создаем цены с названиями складов. Цены создаются в справочниках интернет-магазина (при создании цены устанавливаем флажок «Установить для всех товаров»). +  * Создаем цены с такими же названиями, какие заданы для ​складов. Цены создаются в справочниках интернет-магазина (при создании цены устанавливаем флажок «Установить для всех товаров»). 
-  * Добавляем наблюдатель:<​code php><?​php+  * Добавляем наблюдатель ​для методов класса ''​Shop_Item_Controller'',​ в котором определеяется цена товара. Наблюдатель будет заменять цену товара в зависимости от выбранного основного склада. Для этого в файле ''​bootstrap.php''​ добавляем код:<​code php><?​php 
 +// ID интернет-магазина 
 +define('​REGION_PRICES_SHOP_ID',​ 4); 
 + 
 +// KAD: Подменяем цену товара в зависимости от текущего склада 
 +Core_Event::​attach('​Shop_Item_Controller.onBeforeCalculatePrice',​ array('​Kad_Shop_Item_Observers_Regionprices',​ '​onBeforeCalculatePrice'​));​ 
 +Core_Event::​attach('​Shop_Item_Controller.onBeforeCalculatePriceInItemCurrency',​ array('​Kad_Shop_Item_Observers_Regionprices',​ '​onBeforeCalculatePrice'​));​ 
 +</​code>​Константа ''​REGION_PRICES_SHOP_ID''​ задает идентификатор интернет-магазина,​ для которого производится подмена. 
 +  * В каталоге ''/​modules/​kad/​shop/​item/​observers/''​ создаем файл ''​regionprices.php''​ с таким содержимым:<code php><?​php
  
 /* /*
Line 12: Line 20:
 * В bootstrap.php:​ * В bootstrap.php:​
 * *
-// ID интернет-магазина 
-define('​REGION_PRICES_SHOP_ID',​ 4); 
- 
 // KAD: Подменяем цену товара в зависимости от текущего склада // KAD: Подменяем цену товара в зависимости от текущего склада
 Core_Event::​attach('​Shop_Item_Controller.onBeforeCalculatePrice',​ array('​Kad_Shop_Item_Observers_Regionprices',​ '​onBeforeCalculatePrice'​));​ Core_Event::​attach('​Shop_Item_Controller.onBeforeCalculatePrice',​ array('​Kad_Shop_Item_Observers_Regionprices',​ '​onBeforeCalculatePrice'​));​
Line 29: Line 34:
  static public function onBeforeCalculatePrice($object,​ $args)  static public function onBeforeCalculatePrice($object,​ $args)
  {  {
- if (defined('​REGION_PRICES_SHOP_ID'​))+ if ( 
 + defined('​REGION_PRICES_SHOP_ID'​) 
 + &&​ 
 + REGION_PRICES_SHOP_ID == $args[0]->​shop_id 
 + )
  {  {
  // Товар  // Товар
Line 94: Line 103:
  }  }
  }  }
-}</​code>​+} 
 +</​code>​
private/koding/hostcms/modules/shop/elements/regionprices.1448029321.txt.gz · Last modified: 20.11.15 в 17:22 by maximzasorin_gmail.com