This shows you the differences between two versions of the page.
| 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> | ||