Володя

Володя

С нами с 18 декабря 2012; Место в рейтинге пользователей: #4
Володя
16 марта 2017, 14:42
1
+1
расчет цены продукта указать параметр pointId 1
[[!AjaxSnippet?
      &snippet=`msPointsIssue.product.cost`
      &delivery=`68`
      &pointId=`1`
      &as_target=`.mspointsissue-product-cost`
]]
корзина указать параметр pointLocation
[[!msPointsIssue.Order?
&elements=`msOrder`
&tpl=`msAll.order`
&pointLocation=`1`
]]
Володя
15 марта 2017, 14:13
+1
1. Это надо делать в этом файле?
не стоит, при обновлении затрется.
2. Это повесить на событие msOnChangeOrderStatus, то что установлен статус оплачен? но возможно ли там получать куку?

попробуйте, думаю рабочий вариант.
Володя
15 марта 2017, 07:17
0
1. Возможно вести учет остатков при условии, что у товара нет модификаций и опций?
нет, контролируются только остатки модификаций
2. В случае отмены заказа товар возвращается на склад?
да
3. К какому событию / процессу / статусу заказа привязана операция уменьшения остатков?
msOnCreateOrder
4. Есть опция запрета покупки или уведомления пользователя в случае покупки количества товара, которое превышает остатки?
да, отслеживается ко-во товара в корзине, если нет доступного кол-во выводится предупреждение — товар не добавляется.
Володя
13 марта 2017, 18:43
+1
просто. Надо читать документацию и быть внимательным.
ошибки:

— пробел
"msOrderProducts "
— неверное название github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/model/schema/minishop2.mysql.schema.xml#L366
"msOrderProducts "
— неверный синтаксис
"on": " msOrder.id = msOrderProducts.order_id "}
Володя
13 марта 2017, 18:40
+1
подгрузить лексиконы в чанке корзины
{$_modx->lexicon->load('minishop2:product')}
Володя
13 марта 2017, 14:52
+1
привет. надо приджойнить таблицу заказов и отсортировать
[[!pdoUsers?
	&limit=`0`
	&tpl=`@INLINE [[+id]] - [[+username]] - [[+sum]]
`
	&leftJoin=`{
        "msOrder": {
            "class": "msOrder",
            "on": "modUser.id = msOrder.user_id"
        }
    }`
    &select=`{
        "modUser": "*",
        "msOrder": "SUM(msOrder.cost) as sum"
    }`
    &sortby=`sum`
    &sortdir=`DESC`
]]
Володя
13 марта 2017, 11:24
0
Добрый день.
Не совсем понял зачем вам msOptionsPrice2.
Вопрос состоит в том как вывести у разных видов товаров разные свойства, я правильно понимаю?
Так можно в шаблоне / чанке проверять если такое свойство у продукта и если нет соответственно не выводить его вовсе. В чем сложность*?
Володя
13 марта 2017, 10:38
2
+1
решение на скорую руку


s6200.h3.modhost.pro/katalog/11991.html
$(document).on('msoptionsprice_product_action', function (e, action, form, r) {

	if (action == 'modification/get' && r.success && r.data) {
        var m = r.data.modification || {};
    	var o = r.data.options || {};
    	
    	if (m.id) {
    	    return;
    	}
    	
    	var set = false;
    	
    	$('.msoptionsprice-modifications').find('.ms2_product').each(function () {
    	
    	    var hidden = true;
    	    var w = $(this);
    	    var f = w.find('form');
    	    
    	    for (key in o) {
				if (f.find('input[name="options['+key+']"][value="' + o[key] + '"]').length) {
    	            hidden = false;
    	        }
			}
			
			if (hidden) {
			    w.hide(); 
			}
			else {
			    w.show(); 
			}
			
			w.removeClass('active');
			
		}).each(function () {
		    var w = $(this);
    	    var f = w.find('form');
    	     
			if (!set && w.is(":visible")) {
		        set = true;
		        
		        w.addClass('active');
		        msOptionsPrice.Product.action('modification/get', f[0]);
		    }
		   
		});
	
    }
});

$(document).on('click', '.msoptionsprice-modifications div.ms2_product', function () {
  
    var w = $(this);
    var f = w.find('form');
    	    
    w.parent().find('.ms2_product.active').removeClass('active');
   
    w.addClass('active'); 
    msOptionsPrice.Product.action('modification/get', f[0]);
    
});

</script>

<style>
.msoptionsprice-modifications .ms2_product {
    cursor: pointer;
}

.msoptionsprice-modifications .ms2_product.active {
    border: 3px solid #559ed1;
}
</style>
Володя
12 марта 2017, 16:27
0
добрый.
Поддерживает, но нет английского языка.
Если устроит могу через гуглтранслейт добавить.
Володя
10 марта 2017, 18:51
+1
попробуй указать
[[~5?&scheme=`full`]]
Володя
10 марта 2017, 14:40
0
цена изменяется плагином, значения новой цены со скидкой в базе нет а сортировка у вас идет по тому значению что есть в базе.
Как это можно исправить?
даже не знаю…
Володя
10 марта 2017, 14:36
0
Какое событие использовать чтобы модифицировать цену?
событий несколько, смотря что вам нужно и для какой цели.
if ($modx->event->name = 'msopOnGetFullCost') {

    $rid = $modx->getOption('rid', $scriptProperties);
    $cost = $modx->getOption('cost', $scriptProperties);
    $options = $modx->getOption('options', $scriptProperties);
  
    
    $values = $modx->Event->returnedValues;

    if (true) {
        $values['cost'] = $cost /2;
    }

    $modx->event->returnedValues = $values;
    
    return;
}
Что означает cost? Как его отлавливать на фронте?
это и есть стоимость продукта, дефолтный скрипт его обрабатывает.
Володя
10 марта 2017, 11:52
0
письмо от вас получил, ответил.
Володя
10 марта 2017, 11:05
0
Добрый день.
Напишите в ТП с указанием доступов к админке сайта — посмотрю в чем дело.
Спасибо!
Володя
10 марта 2017, 09:16
0
Доброе утро.
В компоненте нет никаких скидок и он не влияет на корзину… Естественно никакого функционала по выводу стоимости заказа со скидкой и без нет.
Володя
09 марта 2017, 12:44
+1
создайте метод оплаты с аналогичным классом и задайте поле properties как
{"type":""}
должно срабоатть