Расширение функционала shopkeeper3 (градации цены)

Здравствуйте, стоит задача в интернет магазине, сделанном на SHK сделать возможность некоторым товарам добавлять «плавающую» цену. Эта плавающая цена будет зависеть либо от количества единиц этого товара, которое кладется в корзину, либо от общей суммы заказа (товары в магазине разные и соответственно для какого-то товара первое условие, а для какого-то второе). Сейчас, собственно, дошла до того, что, наверно, надо будет написать плагин на событие OnSHKcalcTotalPrice. Но вот сложность — плагины до этого писать не приходилось.
Вопрос такой: это верное решение насчет плагина или может можно сделать как-то более простым путем. И если все же надо плагин сделать, то не подскажете как в нем получить массив с информацией о товарах, которые лежат в корзине?

Буду благодарна за любые подсказки.
Darya E
19 августа 2022, 10:07
modx.pro
449
0

Комментарии: 2

vectorserver
19 августа 2022, 11:25
0
Нужно писать плагин, для события 'OnSHKcalcTotalPrice'
Вот пример плагина заготовки:
<?php

/** @var modX $modx */
$eventName = $modx->event->name;


switch ($eventName) {
    /* Рассчет полной цены товаров в корзине. $_SESSION['shk_order'], $price_total. */
    case 'OnSHKcalcTotalPrice':

        /** @var $scriptProperties */
        $price_total = (float)str_replace(array(' ', ','), array('', '.'), $modx->getOption('price_total', $scriptProperties, 0));
        $oldPrice = $price_total;


        /* @todo  тут всякие условия для $_SESSION['shk_order']*/


        $modx->event->output($price_total);

        break;
}
    Darya E
    19 августа 2022, 12:21
    0
    Спасибо, буду пробовать
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2