Цена в зависимости от условий — различия между версиями
Velross (обсуждение | вклад) |
Vitaliks (обсуждение | вклад) |
||
(не показано 6 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
− | == Задача | + | '''Актуально для версии 20''' |
− | + | ||
+ | == Задача == | ||
+ | |||
В интернет-магазине цена должна быть в зависимости от каких-то условий. | В интернет-магазине цена должна быть в зависимости от каких-то условий. | ||
− | == Решение | + | == Решение == |
− | |||
− | |||
− | |||
+ | 1. Нужно написать обработчик события. Более подробную информацию о событиях вы можете прочитать здесь http://api.umi-cms.ru/events.html | ||
+ | Вам необходимо создать в файл classes/components/catalog/custom_events.php. В нём прописать следующий код: | ||
+ | <source lang="php"> | ||
<?php | <?php | ||
new umiEventListener("umiObjectProperty_loadPriceValue", "catalog", "onLoadPriceHandler"); | new umiEventListener("umiObjectProperty_loadPriceValue", "catalog", "onLoadPriceHandler"); | ||
Строка 14: | Строка 16: | ||
Это событие будет вызывать кастомный макрос определяющий цену. | Это событие будет вызывать кастомный макрос определяющий цену. | ||
− | 2. Написать кастомный макрос. Для этого в файле classes/ | + | 2. Написать кастомный макрос. Для этого в файле classes/components/catalog/customMacros.php Описать следующую функцию: |
<source lang="php"> | <source lang="php"> | ||
− | |||
− | |||
public function onLoadPriceHandler(iUmiEventPoint $oEventPoint) { | public function onLoadPriceHandler(iUmiEventPoint $oEventPoint) { | ||
// get plain price relation | // get plain price relation | ||
Строка 28: | Строка 28: | ||
$price = 6436; | $price = 6436; | ||
} | } | ||
− | |||
?> | ?> | ||
</source> | </source> | ||
Строка 35: | Строка 34: | ||
Мы привели Вам примерный текст макроса. | Мы привели Вам примерный текст макроса. | ||
Теперь необходимо описать соответствующие условия и присвоить переменной $price необходимую вариацию цены. | Теперь необходимо описать соответствующие условия и присвоить переменной $price необходимую вариацию цены. | ||
+ | |||
+ | <br/>Также смотрите статью с примером реализации описанной логики: [[Использование нескольких Цен для одного товара]] | ||
[[Категория:Написание кастомных макросов]][[Категория:Модуль Каталог]][[Категория:Модуль Интернет магазин]] | [[Категория:Написание кастомных макросов]][[Категория:Модуль Каталог]][[Категория:Модуль Интернет магазин]] |
Текущая версия на 08:53, 28 мая 2019
Актуально для версии 20
Задача
В интернет-магазине цена должна быть в зависимости от каких-то условий.
Решение
1. Нужно написать обработчик события. Более подробную информацию о событиях вы можете прочитать здесь http://api.umi-cms.ru/events.html Вам необходимо создать в файл classes/components/catalog/custom_events.php. В нём прописать следующий код:
<?php
new umiEventListener("umiObjectProperty_loadPriceValue", "catalog", "onLoadPriceHandler");
?>
Это событие будет вызывать кастомный макрос определяющий цену.
2. Написать кастомный макрос. Для этого в файле classes/components/catalog/customMacros.php Описать следующую функцию:
public function onLoadPriceHandler(iUmiEventPoint $oEventPoint) {
// get plain price relation
$price = &$oEventPoint->getRef('price');
// get object id
$object_id = $oEventPoint->getParam('object_id');
// TODO: write your custom logic here
// ....
// and set new $price value
$price = 6436;
}
?>
Итог
Мы привели Вам примерный текст макроса. Теперь необходимо описать соответствующие условия и присвоить переменной $price необходимую вариацию цены.
Также смотрите статью с примером реализации описанной логики: Использование нескольких Цен для одного товара