Всем привет!
Есть страница: [URL=https://moscow-farmavita.ru/catalog/okrashivanie_volos/bez_ammiaka_kraska_b_life_color/b_life_color_stoykaya_krem_kraska_bez_ammiaka_100_ml/?clear_cache=Y]Ссылка[/URL]
На ней по-умолчанию почему то выбрано торговое предложение с цветом B.LIFE.COLOR. 2.0 Черный.
И если в списке выбрать какое-либо другое торговое предложение, а затем добавить товар в корзину, то в корзину всегда попадает не выбранное торговое предложение, а то, которое выбрано по-умолчанию.
Скажите, это как то лечится?
использую компонент bitrix:catalog.element, вот шаблон:
[CODE]<?php if (defined("B_PROLOG_INCLUDED") && B_PROLOG_INCLUDED === true) ?>
<?php
use Bitrix\Main\Localization\Loc;
use intec\core\bitrix\Component;
use intec\core\helpers\ArrayHelper;
use intec\core\helpers\Html;
use intec\core\helpers\Json;
/**
* @var array $arParams
* @var array $arResult
*/
$this->setFrameMode(true);
Loc::loadMessages(__FILE__);
$sTemplateId = Html::getUniqueId(null, Component::getUniqueId($this));
include(__DIR__.'/parts/data.php');
$arVisual = $arResult['VISUAL'];
$arSections = $arResult['SECTIONS'];
$arPrice = null;
if (!empty($arResult['ITEM_PRICES']))
$arPrice = ArrayHelper::getFirstValue($arResult['ITEM_PRICES']);
?>
<?= Html::beginTag('div', [
'id' => $sTemplateId,
'class' => [
'ns-bitrix',
'c-catalog-element',
'c-catalog-element-catalog-default-2'
],
'data' => [
'data' => Json::encode($arData, JSON_UNESCAPED_UNICODE | JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_APOS, true),
'properties' => Json::encode($arResult['SKU_PROPS'], JSON_UNESCAPED_UNICODE | JSON_HEX_QUOT | JSON_HEX_TAG | JSON_HEX_APOS, true),
'available' => $arData['available'] ? 'true' : 'false',
'wide' => $arVisual['WIDE'] ? 'true' : 'false'
]
]) ?>
<?php if ($arVisual['PANEL']['SHOW']) {
include(__DIR__.'/parts/panel.php');
} ?>
<?php if ($arVisual['WIDE']) { ?>
<div class="catalog-element-wrapper intec-content intec-content-visible">
<div class="catalog-element-wrapper-2 intec-content-wrapper">
<?php } ?>
<div class="catalog-element-information">
<?php if ($arVisual['GALLERY']['SHOW']) { ?>
<div class="catalog-element-information-left">
<?php if ($arVisual['MARKS']['SHOW']) { ?>
<?php include(__DIR__.'/parts/marks.php') ?>
<?php } ?>
<?php include(__DIR__.'/parts/buttons.php') ?>
<?php include(__DIR__.'/parts/gallery.php') ?>
</div>
<div class="catalog-element-information-right">
<?php } else { ?>
<?php if ($arVisual['MARKS']['SHOW']) { ?>
<div class="catalog-element-information-part">
<?php include(__DIR__.'/parts/marks.php') ?>
</div>
<?php } ?>
<?php } ?>
<div class="catalog-element-information-part intec-grid">
<div class="intec-grid-item">
<?php if ($arVisual['ARTICLE']['SHOW']) { ?>
<?php include(__DIR__.'/parts/article.php') ?>
<?php } ?>
</div>
<div class="intec-grid-item-auto">
<?php if ($arVisual['BRAND']['SHOW']) { ?>
<?php include(__DIR__.'/parts/brand.php') ?>
<?php } ?>
</div>
</div>
<div class="catalog-element-information-part">
<?php if ($arVisual['VOTE']['SHOW'] || $arVisual['QUANTITY']['SHOW']) { ?>
<div class="catalog-element-information-part-wrapper intec-grid intec-grid-i-h-10 intec-grid-a-v-center">
<?php if ($arVisual['VOTE']['SHOW']) { ?>
<div class="intec-grid-item-auto">
<?php include(__DIR__.'/parts/vote.php') ?>
</div>
<?php } ?>
<?php if ($arVisual['QUANTITY']['SHOW']) { ?>
<div class="intec-grid-item-auto">
<?php include(__DIR__.'/parts/quantity.php') ?>
</div>
<?php } ?>
</div>
<?php } ?>
</div>
<div class="catalog-element-information-part">
<?php include(__DIR__.'/parts/price.php') ?>
</div>
<?php if (!empty($arResult['SKU_PROPS']) && !empty($arResult['OFFERS'])) { ?>
<div class="catalog-element-information-part">
<?php include(__DIR__.'/parts/sku_.php') ?>
</div>
<?php } ?>
<?php if ($arVisual['SIZES']['SHOW']) { ?>
<div class="catalog-element-information-part">
<?php include(__DIR__.'/parts/sizes.php') ?>
</div>
<?php } ?>
<?php if ($arVisual['ADDITIONAL']['SHOW']) { ?>
<div class="catalog-element-information-part catalog-element-additional-products">
<?php include(__DIR__.'/parts/additional.php') ?>
</div>
<?php } ?>
<?php if ($arResult['ACTION'] !== 'none') { ?>
<?php include(__DIR__.'/parts/purchase.php') ?>
<?php } ?>
<?php if ($arVisual['DESCRIPTION']['PREVIEW']['SHOW']) { ?>
<div class="catalog-element-information-part">
<div class="catalog-element-description catalog-element-description-preview intec-ui-markup-text">
<?= $arResult['PREVIEW_TEXT'] ?>
</div>
</div>
<?php } ?>
<?php if ($arVisual['PROPERTIES']['PREVIEW']['SHOW']) { ?>
<div class="catalog-element-information-part">
<?php include(__DIR__.'/parts/properties.php') ?>
</div>
<?php } ?>
<?php if ($arVisual['INFORMATION']['PAYMENT']['SHOW'] || $arVisual['INFORMATION']['SHIPMENT']['SHOW']) { ?>
<div class="catalog-element-information-part">
<div class="catalog-element-other-information">
<?php include(__DIR__.'/parts/information.php') ?>
</div>
</div>
<?php } ?>
<?php if (!empty($arVisual['SECTIONS']) && $arVisual['VIEW']['VALUE'] === 'narrow') { ?>
<div class="catalog-element-information-part">
<?php include(__DIR__.'/parts/sections.narrow.php') ?>
</div>
<?php } ?>
<?php if ($arVisual['GALLERY']['SHOW']) { ?>
</div>
<?php } ?>
<div class="clearfix"></div>
</div>
<?php if ($arVisual['VIEW']['VALUE'] !== 'tabs') {
include(__DIR__.'/parts/sets.php');
} ?>
<?php if (!empty($arVisual['SECTIONS'])) {
if ($arVisual['VIEW']['VALUE'] === 'wide') {
include(__DIR__.'/parts/sections.wide.php');
} else if (
$arVisual['VIEW']['VALUE'] === 'tabs' &&
$arVisual['VIEW']['POSITION'] === 'top'
) {
include(__DIR__.'/parts/sections.tabs.php');
}
} ?>
<?php if ($arVisual['VIEW']['VALUE'] === 'tabs') {
include(__DIR__.'/parts/sets.php');
} ?>
<?php if ($arVisual['VIEW']['VALUE'] === 'narrow') { ?>
<?php if ($arVisual['STORES']['SHOW']) { ?>
<div class="catalog-element-sections catalog-element-sections-wide">
<div class="catalog-element-section">
<div class="catalog-element-section-name">
<?= Loc::getMessage('C_CATALOG_ELEMENT_CATALOG_DEFAULT_2_SECTIONS_STORES') ?>
</div>
<div class="catalog-element-section-content">
<?php include(__DIR__.'/parts/sections/stores.php'); ?>
</div>
</div>
</div>
<?php } ?>
<?php } ?>
<?php if ($arVisual['FORM']['SHOW']) { ?>
<div class="catalog-element-sections catalog-element-sections-wide">
<div class="catalog-element-section">
<div class="catalog-element-section-content">
<?php include(__DIR__.'/parts/form.php'); ?>
</div>
</div>
</div>
<?php } ?>
<?php if ($arVisual['ASSOCIATED']['SHOW'] || $arVisual['RECOMMENDED']['SHOW']) { ?>
<?php if ($arVisual['ASSOCIATED']['SHOW']) { ?>
<div class="catalog-element-sections catalog-element-sections-wide">
<div class="catalog-element-section">
<div class="catalog-element-section-name">
<?= Loc::getMessage('C_CATALOG_ELEMENT_CATALOG_DEFAULT_2_SECTIONS_ASSOCIATED') ?>
</div>
<div class="catalog-element-section-content">
<?php include(__DIR__.'/parts/associated.php') ?>
</div>
</div>
</div>
<?php } ?>
<?php if ($arVisual['RECOMMENDED']['SHOW']) { ?>
<div class="catalog-element-sections catalog-element-sections-wide">
<div class="catalog-element-section">
<div class="catalog-element-section-name">
<?= Loc::getMessage('C_CATALOG_ELEMENT_CATALOG_DEFAULT_2_SECTIONS_RECOMMENDED') ?>
</div>
<div class="catalog-element-section-content">
<?php include(__DIR__.'/parts/recommended.php') ?>
</div>
</div>
</div>
<?php } ?>
<?php } ?>
<?php if (!empty($arVisual['SECTIONS'])) {
if (
$arVisual['VIEW']['VALUE'] === 'tabs' &&
$arVisual['VIEW']['POSITION'] === 'bottom'
) include(__DIR__.'/parts/sections.tabs.php');
} ?>
<?php include(__DIR__.'/parts/script.php') ?>
<?php if ($arVisual['WIDE']) { ?>
</div>
</div>
<?php } ?>
<?php include(__DIR__.'/parts/microdata.php') ?>
<?= Html::endTag('div') ?>
[/CODE]
Вот файл sku_.php:
[CODE]<?php if (!defined('B_PROLOG_INCLUDED') && B_PROLOG_INCLUDED !== true) die();
use intec\core\helpers\Html;
/**
* @var array $arParams
* @var array $arResult
*/
?>
<?
//$test = COption::SETOptionString("eshop", "catalogDetailSku", "sel ect",false, s1);
$test = COption::SETOptionString("eshop", "catalogDetailSku",false, s1);
var_dump($test);
?>
<div class="catalog-element-offers-properties">
<?php foreach ($arResult['SKU_PROPS'] as $arProperty) { ?>
<?= Html::beginTag('div', [
'class' => 'catalog-element-offers-property',
'data' => [
'role' => 'property',
'property' => $arProperty['code'],
'type' => $arProperty['type']
]
]) ?>
<div class="catalog-element-offers-property-title">
<?= $arProperty['name'] ?>
</div>
<!-- <div class="catalog-element-offers-property-values"> -->
<sc ript>
$(document).ready(function(){
//console.log('test');
//console.log(<?=CUTil::PhpToJsObject($arProperty['values']);?>);
/*$('sel ect#test').find('option').each(function(i,val){
val.dataset.state = 'enabled';
console.log(val);
});*/
$('select#test').on('change', function(){
//console.log('this:', $(this).find(':selected')[0]);
// console.log('Выбранные элементы:');
// console.log($(this).find(':selected'));
// console.log('Дефолтный элемент до его правки:');
// $def_elem = $(this).find('[data-state="selected"]');
// console.log($def_elem);
// $def_elem[0].dataset.state = 'enabled';
// console.log('Дефолтный элемент после его правки:');
// console.log($def_elem);
// $(this).find(':selected')[0].dataset.state = 'selected';
//console.log('Не выбранные элементы:');
//$(this).find( ':not(:selected)' ).dataset.state = 'enabled';
//$(this).find( ':not(:selected)' ).each(function(index,element){
//element.dataset.state = 'enabled';
//});
//console.log($(this).find( ':not(:selected)' ));
//$(this).find(':selected').data('state','selected');
//console.log($(this).val());
});
});
</sc ript>
<select name="" id="test" style="width:100%; height: 22px;">
<?php foreach ($arProperty['values'] as $arValue) { ?>
<option value="<?= $arValue['name'] ?>" class="catalog-element-offers-property-value-content"
data-role="property.value" data-state="hidden" data-value=<?=$arValue['id']?>>
<?= $arValue['name'] ?>
</option>
<?/*= Html::beginTag('div', [
'class' => [
'catalog-element-offers-property-value',
'intec-cl-border-hover'
],
'data' => [
'role' => 'property.value',
'state' => 'hidden',
'value' => $arValue['id']
]
]) ?>
<?php if ($arProperty['type'] === 'picture' && !empty($arValue['picture'])) { ?>
<?= Html::beginTag('div', [
'class' => 'catalog-element-offers-property-value-content',
'style' => [
'background-image' => 'url('.$arValue['picture'].')'
]
]) ?>
<div class="intec-aligner"></div>
<i class="far fa-check"></i>
<?= Html::endTag('div') ?>
<?php } else { ?>
<div class="catalog-element-offers-property-value-content">
<?= $arValue['name'] ?>
</div>
<?php } ?>
<?= Html::endTag('div') */?>
<?php } ?>
</select>
<!-- </div> -->
<?= Html::endTag('div') ?>
<?php } ?>
</div>
[/CODE]
Я так понял, что обработка выбора торгового предложения там происходит на JS, поэтому вот файл script.php:[CODE]<?php if (!defined('B_PROLOG_INCLUDED') && B_PROLOG_INCLUDED !== true) die();
use Bitrix\Main\Localization\Loc;
use intec\core\helpers\JavaScript;
/**
* @var array $arParams
* @var array $arResult
* @var string $sTemplateId
* @var array $arVisual
* @var CBitrixComponent $component
* @var CBitrixComponentTemplate $this
*/
?>
<sc ript type="text/javascript">
(function ($, api) {
$(function () {
var root = $(<?= Jav * aScript::toObject('#'.$sTemplateId) ?>);
console.log('root=');
console.log(root);
var properties = root.data('properties');
var data = root.data('data');
console.log('data=',data);//это основной товар, НЕ торговое предложение
var entity = data;
root.offers = new universe.catalog.offers({
'properties': properties,
'list': data.offers
});
window.offers = root.offers;
root.gallery = $('[data-role="gallery"]', root);
root.article = $('[data-role="article"]', root);
root.article.value = $('[data-role="article.value"]', root.article);
root.counter = $('[data-role="counter"]', root);
root.price = $('[data-role="price"]', root);
root.price.base = $('[data-role="price.base"]', root.price);
root.price.discount = $('[data-role="price.discount"]', root.price);
root.price.percent = $('[data-role="price.percent"]', root.price);
root.price.difference = $('[data-role="price.difference"]', root.price);
root.price.title = $('[data-role="price.title"]', root.price);
root.quantity = api.controls.numeric({}, root.counter);
root.sections = $('[data-role="sections"]', root);
root.panel = $('[data-role="panel"]', root);
root.panel.picture = $('[data-role="panel.picture"]', root.panel);
root.panel.counter = $('[data-role="panel.counter"]', root.panel);
root.panel.quantity = api.controls.numeric({}, root.panel.counter);
root.upd ate = function () {
var article = entity.article;
var price = null;
var quantity = {
'bounds': {
'minimum': entity.quantity.ratio,
'maximum': entity.quantity.trace && !entity.quantity.zero ? entity.quantity.value : false
},
'step': entity.quantity.ratio
};
root.attr('data-available', entity.available ? 'true' : 'false');
if (article == null)
article = data.article;
root.article.attr('data-show', article == null ? 'false' : 'true');
root.article.value.text(article);
api.each(entity.prices, function (index, object) {
if (object.quantity.fr om === null || root.quantity.get() >= object.quantity.fr om)
price = object;
});
if (price !== null) {
root.price.attr('data-discount', price.discount.use ? 'true' : 'false');
root.price.attr('data-extended', price.extended ? 'true' : 'false');
root.price.base.html(price.base.display);
root.price.discount.html(price.discount.display);
root.price.percent.text('-' + price.discount.percent + '%');
root.price.difference.html(price.discount.difference);
root.price.title.text(price.title);
} else {
root.price.attr('data-discount', 'false');
root.price.attr('data-extended', 'false');
root.price.base.html(null);
root.price.discount.html(null);
root.price.percent.text(null);
root.price.difference.html(null);
root.price.title.text(null);
}
root.price.attr('data-show', price !== null ? 'true' : 'false');
root.quantity.configure(quantity);
root.panel.quantity.configure(quantity);
root.find('[data-offer]').css('display', '');
if (entity !== data) {
root.find('[data-offer=' + entity.id + ']').css('display', 'block');
root.find('[data-offer="false"]').css('display', 'none');
if (root.gallery.filter('[data-offer=' + entity.id + ']').length === 0)
root.gallery.filter('[data-offer="false"]').css('display', '');
if (root.panel.picture.filter('[data-offer=' + entity.id + ']').length === 0)
root.panel.picture.filter('[data-offer="false"]').css('display', '');
}
root.find('[data-basket-id]')
.data('basketQuantity', root.quantity.get())
.attr('data-basket-quantity', root.quantity.get());
};
root.upd ate();
(function () {
var upd ate = false;
root.quantity.on('change', function (event, value) {
if (!upd ate) {
upd ate = true;
root.panel.quantity.set(value);
root.upd ate();
upd ate = false;
}
});
root.panel.quantity.on('change', function (event, value) {
root.quantity.se t(value);
});
})();
if (!root.offers.isEmpty()) {
root.properties = $('[data-role="property"]', root);
root.properties.values = $('[data-role="property.value"]', root.properties);
root.properties.each(function () {
var self = $(this);
var property = self.data('property');
var values = self.find(root.properties.values);
values.each(function () {
var self = $(this);
var value = self.data('value');
self.on('click', function () {
console.log('test1');
root.offers.setCurrentByValue(property, value);
});
});
});
root.offers.on('change', function (event, offer, values) {
console.log('test12');
entity = offer;
console.log('entity=', entity);
api.each(values, function (state, values) {
api.each(values, function (property, values) {
property = root.properties.filter('[data-property="' + property + '"]');
api.each(values, function (index, value) {
value = property.find(root.properties.values).filter('[data-value="' + value + '"]');
value.attr('data-state', state);
});
});
});
root.update();
});
root.offers.setCurrentById(root.offers.getList()[0].id);
}
root.gallery.each(function () {
var gallery = $(this);
var pictures;
var panel;
var preview;
pictures = $('[data-role="gallery.pictures"]', gallery);
pictures.items = $('[data-role="gallery.picture"]', pictures);
preview = $('[data-role="gallery.preview"]', gallery);
preview.items = $('[data-role="gallery.preview.item"]', preview);
preview.popup = $('[data-role="gallery.preview.popup"]', preview);
panel = $('[data-role="gallery.panel"]', gallery);
panel.buttons = {
'popup': $('[data-role="gallery.popup"]', panel),
'previous': $('[data-role="gallery.previous"]', panel),
'next': $('[data-role="gallery.next"]', panel),
'play': $('[data-role="gallery.play"]', panel)
};
panel.current = $('[data-role="gallery.current"]', panel);
panel.current.se t = function (number) {
this.value = number;
this.text(number + '/' + pictures.items.length);
};
pictures.owlCarousel({
'items': 1,
'nav': false,
'dots': false
});
<?php if ($arVisual['GALLERY']['PREVIEW']) { ?>
preview.se t = function (number) {
preview.items.attr('data-active', 'false');
preview.items.eq(number).attr('data-active', 'true');
};
preview.items.on('click', function () {
console.log('test2');
var self = $(this);
pictures.trigger('to.owl.carousel', [self.index()]);
});
preview.popup.on('click', function () {
console.log('test3');
var control = pictures.data('lightGallery');
control.init();
control.index = panel.current.value - 1;
control.build(control.index);
});
preview.se t(0);
<?php } ?>
pictures.on('changed.owl.carousel', function (event) {
panel.current.se t(event.item.index + 1);
<?php if ($arVisual['GALLERY']['PREVIEW']) { ?>
preview.se t(event.item.index);
<?php } ?>
});
panel.buttons.previous.on('click', function () {
console.log('test4');
pictures.trigger('prev.owl.carousel');
});
panel.buttons.next.on('click', function () {
console.log('test5');
pictures.trigger('next.owl.carousel');
});
panel.current.se t(1);
<?php if ($arVisual['GALLERY']['POPUP']) { ?>
pictures.lightGallery({
'share': false,
'selector': '[data-role="gallery.picture"]'
});
panel.buttons.popup.on('click', function () {
console.log('test6');
var control = pictures.data('lightGallery');
control.init();
control.index = panel.current.value - 1;
control.build(control.index);
});
panel.buttons.play.on('click', function () {
console.log('test7');
var control = pictures.data('lightGallery');
control.init();
control.index = panel.current.value - 1;
control.build(control.index);
control.modules.autoplay.startlAuto();
});
<?php } ?>
<?php if ($arVisual['GALLERY']['ZOOM']) { ?>
pictures.items.each(function () {
var picture = $(this);
var source = picture.data('src');
picture.zoom({
'url': source,
'touch': false
});
});
<?php } ?>
});
root.sections.each(function () {
var self = $(this);
var sections = $('[data-role="section"]', sections);
sections.each(function () {
var section = $(this);
var toggle = $('[data-role="section.toggle"]', section);
var content = $('[data-role="section.content"]', section);
var state = section.data('expanded');
if (!api.isBoolean(state))
state = true;
section.open = function (animate) {
if (state)
return;
state = true;
section.attr('data-expanded', 'true');
if (animate) {
var height = {
'current': content.height(),
'new': content.css('height', '').height()
};
content.css('height', height.current);
content.stop().animate({'height': height.new}, 300, function () {
content.css('height', '');
});
} else {
content.css('height', '');
}
};
section.close = function (animate) {
if (!state)
return;
state = false;
if (animate) {
content.stop().animate({'height': 0}, 300, function () {
section.attr('data-expanded', 'false');
});
} else {
content.css('height', 0);
section.attr('data-expanded', 'false');
}
};
section.toggle = function (animate) {
if (state) {
section.close(animate);
} else {
section.open(animate);
}
};
state = !state;
section.toggle(false);
toggle.on('click', function () {
console.log('test8');
section.toggle(true);
});
})
});
<?php if ($arResult['FORM']['ORDER']['SHOW']) { ?>
root.order = $('[data-role="order"]', root);
root.order.on('click', function () {
console.log('test9');
var options = <?= Jav * aScript::toObject([
'id' => $arResult['FORM']['ORDER']['ID'],
'template' => $arResult['FORM']['ORDER']['TEMPLATE'],
'parameters' => [
'AJAX_OPTION_ADDITIONAL' => $sTemplateId.'-form',
'CONSENT_URL' => $arResult['URL']['CONSENT']
],
'settings' => [
'title' => Loc::getMessage('C_CATALOG_ELEMENT_CATALOG_DEFAULT_2_FORM_TITLE')
]
]) ?>;
options.fields = {};
<?php if (!empty($arResult['FORM']['ORDER']['PROPERTIES']['PRODUCT'])) { ?>
options.fields[<?= Jav * aScript::toObject($arResult['FORM']['ORDER']['PROPERTIES']['PRODUCT']) ?>] = data.name;
<?php } ?>
universe.forms.show(options);
});
<?php } ?>
<?php if ($arResult['ORDER_FAST']['USE']) { ?>
root.orderFast = $('[data-role="orderFast"]', root);
root.orderFast.on('click', function () {
console.log('test10');
var template = <?= Jav * aScript::toObject($arResult['ORDER_FAST']['TEMPLATE']) ?>;
var parameters = <?= Jav * aScript::toObject($arResult['ORDER_FAST']['PARAMETERS']) ?>;
parameters['PRODUCT'] = entity.id;
parameters['QUANTITY'] = root.quantity.get();
universe.components.show({
'component': 'intec.universe:sale.order.fast',
'template': template,
'parameters': parameters,
'settings': {
'parameters': {
'width': null
}
}
});
});
<?php } ?>
if (root.panel.length === 1) (function () {
var state = false;
var area = $(window);
var update;
var panel;
update = function () {
var bound = 0;
if (root.is(':visible')) {
bound += root.offset().top;
}
if (area.scrollTop() > bound) {
panel.show();
} else {
panel.hide();
}
};
panel = root.panel;
panel.css({
'top': -panel.height()
});
panel.show = function () {
if (state) return;
state = true;
panel.css({
'display': 'block'
});
panel.trigger('show');
panel.stop().animate({
'top': 0
}, 500)
};
panel.hide = function () {
if (!state) return;
state = false;
panel.stop().animate({
'top': -panel.height()
}, 500, function () {
panel.trigger('hide');
panel.css({
'display': 'none'
})
})
};
update();
area.on('scroll', update)
.on('resize', update);
})();
});
})(jQuery, intec);
</sc ript>
[/CODE]
Помогите пожалуйста, что я только не делал - а совсем убрать торговое предложение по-умолчанию не получается. И написать обработчик, для выбора торгового предложения также не получается.
Также оригинальный sku.php тоже прикладываю. Там используются элементы не select и option, а другие, и там работает. А вот с <select> ни в какую работать не хочет.
data-state="selected" назначить другому элементу получалось, но в корзину всё равно попадает дефолтное торговое предложение.
На всякий случай прикладываю оригинальный sku.php:
[CODE]<?php if (!defined('B_PROLOG_INCLUDED') && B_PROLOG_INCLUDED !== true) die();
use intec\core\helpers\Html;
/**
* @var array $arParams
* @var array $arResult
*/
?>
<?php COption::SETOptionString("eshop", "catalogDetailSku", "select",false, s1); ?>
<div class="catalog-element-offers-properties">
<?php foreach ($arResult['SKU_PROPS'] as $arProperty) { ?>
<?= Html::beginTag('div', [
'class' => 'catalog-element-offers-property',
'data' => [
'role' => 'property',
'property' => $arProperty['code'],
'type' => $arProperty['type']
]
]) ?>
<div class="catalog-element-offers-property-title">
<?= $arProperty['name'] ?>
</div>
<div class="catalog-element-offers-property-values">
<?php foreach ($arProperty['values'] as $arValue) { ?>
<?= Html::beginTag('div', [
'class' => [
'catalog-element-offers-property-value',
'intec-cl-border-hover'
],
'data' => [
'role' => 'property.value',
'state' => 'hidden',
'value' => $arValue['id']
]
]) ?>
<?php if ($arProperty['type'] === 'picture' && !empty($arValue['picture'])) { ?>
<?= Html::beginTag('div', [
'class' => 'catalog-element-offers-property-value-content',
'style' => [
'background-image' => 'url('.$arValue['picture'].')'
]
]) ?>
<div class="intec-aligner"></div>
<i class="far fa-check"></i>
<?= Html::endTag('div') ?>
<?php } else { ?>
<div class="catalog-element-offers-property-value-content">
<?= $arValue['name'] ?>
</div>
<?php } ?>
<?= Html::endTag('div') ?>
<?php } ?>
</div>
<?= Html::endTag('div') ?>
<?php } ?>
</div>
[/CODE]