Minishop2 - смена цены через ajax

Всем привет!
Подскажите, как можно менять цену с которой товар уходит в корзину через ajax?
На сайте надо сделать так чтобы цена товара складывалась из цент других(дочерних) товаров. С помощью связей в minishop2 и плагина это удалось решить.
Теперь стоит задача сделать так, чтобы при клике на "+" или "-" у дочерних товаров, цена у основного убавлялась или прибавлялась.
Как я понял, надо поменять значение цены основного товара в сессии, но как туда залезть не знаю. Хочу чтобы это дело работало через ajax. Что должно быть в обработчике?
Николай Загумённов
25 ноября 2015, 22:31
modx.pro
2
2 538
0
Поблагодарить автора Отправить деньги

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

Николай Загумённов
27 ноября 2015, 21:47
+1
Вроде разобрался.
Основная проблема это мое не знание minishop2 да и вообще много каких моментов.
Оказывается цену можно легко менять, с помощью вызова события методом:
$response = $minishop2->invokeEvent('msOnGetProductPrice', $params);
Пользователь кликает на "+" или "-", посылая ajax запрос на обработчик, который вызывает событие.
Теперь нужно чтобы по вызову события происходили какие-то действия, в моем случае изменение цены.
Добавляем плагин на это событие:
<?php
if ($modx->event->name = 'msOnGetProductPrice') {
	if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
		
	    $values = & $modx->event->returnedValues;
	    	$values['price'] =  $_SESSION['new_price'];
	    
	} else {
		// тут действия которые должны происходить не через ajax
}
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1