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

Differences

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

Link to this comparison view

Next revision
Previous revision
private:koding:hostcms:modules:shop:elements:regionprices [20.11.15 в 17:19]
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 11: 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 28: 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 93: Line 103:
  }  }
  }  }
-}</​code>​+} 
 +</​code>​
private/koding/hostcms/modules/shop/elements/regionprices.1448029158.txt.gz · Last modified: 20.11.15 в 17:19 by maximzasorin_gmail.com