Оптовые цены свыше 10 000руб.
Добрый день, необходимо реализовать функционал, когда товаров в корзине на сумму больше 10 000руб., начинаются учитываться оптовые цены товаров. В PHP не силён, нашёл такой пример, там есть вариант плагина, пробовал его адаптировать под себя, не получилось:
Кто подскажет, что делаю не так?
И хотелось бы динамическое обновление цен, в данном случае должно обновляться с перезагрузкой.
<?php
switch ($modx->event->name) {
case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart':
$miniShop2 = $modx->getService('minishop2','miniShop2',
MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties);
if (!($miniShop2 instanceof miniShop2)) return '';
// Инициализируем класс в текущий контекст
$miniShop2->initialize($modx->context->key, $scriptProperties);
$total_cost = $miniShop2->cart->status()['total_cost'];
$tmp = $miniShop2->cart->get();
if ($total_cost > 10000) { // если 10000руб и более – оптовые цены, в интернет-магазине оптовые цены забиваются в поле old_price
foreach ($tmp as $key1 => $value) {
if ($product = $modx->getObject('msProduct', $value['id'])) {
$realPrice = $product->get('price');
$optPrice = $product->get('old_price'); // вместо old_price можно указать любое другое поле товара
$tmp[$key1]['price'] = $optPrice;
}
}
}
else {
foreach ($tmp as $key1 => $value) {
if ($product = $modx->getObject('msProduct', $value['id'])) {
$realPrice = $product->get('price');
$tmp[$key1]['price'] = $realPrice;
}
}
}
$miniShop2->cart->set($tmp);
break;
}
Кто подскажет, что делаю не так?
И хотелось бы динамическое обновление цен, в данном случае должно обновляться с перезагрузкой.
Комментарии: 1
Хотелось бы хотя бы понять, куда копать) По количеству есть решения, а вот по сумме в корзине…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.