Оптовая цена в minishop2 в зависимости от общего количества товара в корзине
Добрый вечер. Подскажите пожалуйста, делаю у товара оптовую цену, которая будет применятся, после того как количество товара в корзине будет больше 10. Пока для этого использовал свойство old_price. Вот такой плагин:
<?php
switch ($modx->event->name) {
case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart':
$tmp = $cart->get();
foreach ($tmp as $key => $value) {
$count += $value['count'];
}
foreach ($tmp as $key => $value) {
if ($product = $modx->getObject('msProduct', $value['id'])) {
if ($count > 10 && $product->get('old_price') !=0) {
$tmp[$key]['price'] = $product->get('old_price');
}
else {
$realPrice = $product->get('price');
$tmp[$key]['price'] = $realPrice; // Устанавливаем новую цену для товара в корзине
}
}
}
$cart->set($tmp); //Записываем данные в корзину
break;
}При достижении в корзине количества товара больше 10, перезагружаешь страницу, цены меняются, а вот когда количество товара уменьшаешь, делаешь меньше 10, то цена остается прежней. Как это можно исправить? Комментарии: 12
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Потому что если подобным сниппетом просто на экран выводить, то цена обновляется и в ту и в другую сторону.
то обновление цены происходит, но если использую счетчик уменьшения кол-ва товара, то не работает. Видимо не срабатывает событие, хотя на увеличение срабатывает. Кнопки подключены так:
URL Запроса:
assets/components/minishop2/action.php
Метод Запроса:
POST
Код Статуса:
200
Без перезагрузки страницы сложно, тебе надо корзину перерисовывать и возвращать готовый html или всё корзину объектом. Это можно сделать только если ты расширишь обработчик корзины или напишешь свой коннектор на который будешь слать отдельный запрос на получение корзины после изменений в ней.