кому интересно, мое решение получилось таким:
[QUOTE]в шаблоне catalog.item/. ./card/template.php делаю небольшой json объект вида[/QUOTE]
этот объект немного подрос :)
Скрытый текст |
|---|
[CODE] var <?=$arResult['AREA_ID'].'mustache'?> = { AVAILABLE_QUANTITY: "0", BRAND: "", CHECK_MAX_QUANTITY: "N", COLUMN_LIST: { 0: { CODE: "WEIGHT", HIDE_MOBILE: true, IS_TEXT: true, NAME: "Вес", VALUE: '<?=$option['WEIGHT']?>', } }, CURRENCY: "RUB", DELAYED: false, DETAIL_PAGE_URL: "", DISCOUNT_PRICE: <?=$option['PRICE']?>, DISCOUNT_PRICE_FORMATED: '<?=$option['DISCOUNT_PRICE']?> руб.', DISCOUNT_PRICE_PERCENT: <?=$option['DISCOUNT']?>, DISCOUNT_PRICE_PERCENT_FORMATED: '<?=$option['DISCOUNT']?>%', FULL_PRICE: <?=$option['PRICE']?>, FULL_PRICE_FORMATED: '<?=$option['PRICE']?> руб.', HASH: '', IMAGE_URL: '<?=$item['PREVIEW_PICTURE']['SRC']?>', LABEL_VALUES: {}, MEASURE_RATIO: '1', MEASURE_TEXT: 'шт', MODULE: 'catalog', NAME: '<?=$item['NAME']?>', NOT_AVAILABLE: false, PRICE: <?=$option['PRICE']?>, PRICE_FORMATED: '<?=$option['PRICE']?> руб.', PRODUCT_ID: <?=$item['ID']?>, PRODUCT_PROVIDER_CLASS: 'CCatalogProductProvider', PROPS: {}, PROPS_ALL: {}, QUANTITY: 1, SHOW_DISCOUNT_PRICE: 'Y', SHOW_LABEL: false, SHOW_PRICE_FOR: true, SKU_BLOCK_LIST: {}, SORT: "100", SUM_DISCOUNT_PRICE: <?=$option['DISCOUNT']?>, SUM_DISCOUNT_PRICE_FORMATED: '<?=$option['DISCOUNT']?> руб.', SUM_FULL_PRICE: <?=$option['PRICE']?>, SUM_FULL_PRICE_FORMATED: '<?=$option['PRICE_FULL']?> руб.', SUM_PRICE: <?=$option['PRICE']?>, SUM_PRICE_FORMATED: '<?=$option['PRICE']?> руб.', WARNINGS: {}, //ID: //товара корзины !дописываем уже в js скрипте, как получим его после добавления товара в корзину }; [/CODE] |
[QUOTE]далее в скрипте обрабатывающий добавление товара в корзину уже после делаю ajax запрос[/QUOTE]
тут тоже есть изменения
Скрытый текст |
|---|
[CODE] BX.ajax({ url: '/personal/basket/?ajax=Y', method: 'GET', processData: true, timeout: 30, async: true, scriptsRunFirst: true, start: true, emulateOnload: true, onsuccess: function(_data) { mustache = t[id+'mustache']; mustache.ID = JSON.parse(data).id; //сюда приходит id товара корзины let html = Mustache.to_html($(_data)[0].innerHTML, mustache), cont = $('#basket-item-table'); cont.append(html); BX.Sale.BasketComponent.sendRequest('recalculateAjax', mustache); //переинициализация суммы после добавления BX.Sale.BasketComponent.bindBasketItemEvents(mustache); //переинициализация событий (+, -) и удаление } }) [/CODE] |
в скрипте sale.basket.basket/. ./js/component.js закомментил
[CODE]
bindQuantityEvents: function(node, data) {
//if (!node || !data || !this.isItemAvailable(data.ID))
//return;
.
.
.
}
[/CODE]
т.к. вываливалась ошибка Cannot read property 'NOT_AVAILABLE' of undefined