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: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> |