PS 1.7.5 В product.tpl есть возможность добавить в корзину товар с его комбинациями. Внутри этой формы я использую аккордеон, чтобы показать и скрыть каждый шаг настройки (цвет, размер и другие настройки). Проблема в том, что все входы не остаются выбранными, есть мини-обновление, и оно становится пустым. Я нажимаю для, например. цвет и сразу после щелчка он не выбран, то же самое для остальных. Я должен отредактировать core.js, чтобы получить такой результат: для ввода внутри формы> без обновления входные данные остаются выбранными, но изображение продукта должно меняться в зависимости от комбинации, выбранной в форме. основная строка 233:
("body").on("change touchspin.on.startspin",".product-variants *[name]",function(e){i.default.emit("updateProduct",{eventType:"updatedProductCombination",event:e,resp:{},reason:{productUrl:i.default.urls.pages.product||""}})}),(0,r.default)("body").on("click",".product-refresh",function(e,t){e.preventDefault();var n="updatedProductCombination";void 0!==t&&t.eventType&&(n=t.eventType),i.default.emit("updateProduct",{eventType:n,event:e,resp:{},reason:{productUrl:i.default.urls.pages.product||""}})}),i.default.on("updateProduct",function(e){var t=e.eventType,n=e.event;(function(){var e=r.default.Deferred(),t=(0,r.default)(".product-actions"),n=(0,r.default)("#quantity_wanted");if(null!==i.default&&null!==i.default.urls&&null!==i.default.urls.pages&&""!==i.default.urls.pages.product&&null!==i.default.urls.pages.product)return e.resolve(i.default.urls.pages.product),e.promise();var o={};return(0,r.default)(t.find("form:first").serializeArray()).each(function(e,t){o[t.name]=t.value}),r.default.ajax({url:t.find("form:first").attr("action"),method:"POST",data:Object.assign({ajax:1,action:"productrefresh",quantity_wanted:n.val()},o),dataType:"json",success:function(t){var n=t.productUrl;i.default.page.canonical=n,e.resolve(n)},error:function(t,n,r){e.reject({jqXHR:t,textStatus:n,errorThrown:r})}}),e.promise()})().done(function(e){return l(n,t,e)}).fail(function(){0===(0,r.default)("section#main > .ajax-error").length&&d((0,r.default)("#product-availability"),"An error occurred while processing your request")})}),i.default.on("updatedProduct",function(e){if(e.product_url&&e.id_product_attribute&&!(0,r.default)
Если я удалил эту строку, вход останется выбранным, но изображение продукта не будет обновлено и, следовательно, не будет обновлено. Или есть решение сделать так, чтобы входные данные оставались выделенными даже при обновлении формы? Я должен изменить эту строку core.js или есть другие решения? data-product-attribute> action: "norefresh" или что-то в этом роде ...
Спасибо, кто мне поможет!