Кастомное ajax-событие корзины Minishop

Добрый день. Ранее на сайте срабатывало кастомное событие, позволяющее изменить в корзине выбранную опцию товара. Обновил Minishop и этот функционал полетел к чертям. Увидел, что из плагина Minishop пропало условие по моему событию, как и условия по другим событиям. Очевидно они перекочевали в код. Как теперь правильно восстановить кастомное событие?


Выглядело это на фронте так:
if(isCartPage())
	{
		jQuery(".basic").fancySelect().on('change.fs', function () {
    		
			var key = jQuery(this).parents("tr.cart_item").attr("id");
			var size = this.value;
			var ms2_action = 'cart/change_size';
			var ctx = 'web';
			var data = {key:key, size:size,ms2_action:ms2_action, ctx:ctx};
			jQuery.ajax({type: 'POST',
  						 url: '/assets/components/minishop2/action.php',
					     data: data,
					     dataType: 'json',
  					     success: function(data)
  					     {
    					     //data = jQuery.parseJSON(data);
    					     console.log(data);
    					     if(data.success)
    					     {
    					     	miniShop2.Message.success(data.message);
    					     }
    					     else
    					     {
    					     	miniShop2.Message.error(data.message);
    					     }
    					     console.log(data);
  					     }
			});

		});
	}
и на бэке

<?php

class msMyCartHandler extends msCartHandler{
	public function change_size($key, $size)
	{
		
		if (array_key_exists($key, $this->cart)) 
		{
			$cart = $this->get();
			$productInCart = $cart[$key];

			$product = $this->modx->getObject('msProduct',$productInCart['id']);

			$properties = json_decode($product->properties,true);

			$remains = $properties['msproductremains'];


			if(isset($remains[$size]) &&  intval($remains[$size]) >= $productInCart['count'])
			{
				
				$productInCart['options']['size'] = $size;
				$cart[$key] = $productInCart;
				$this->set($cart);
				return $this->success('Размер товара в корзине успешно изменен: «'.$size.'»', array('size'=>$size));
			}
			else
			{
				return $this->error('Товара выбранного размера нет в наличии в указанном количестве.', $this->status(array()));
			}
		}
		else 
		{
			return $this->error('ms2_cart_change_error', $this->status(array()));
		}
	}


}
Алексей
20 января 2017, 11:19
modx.pro
1 438
0

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

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0