Jump to content

Problém s variantami produktu.


alkotronikk

Recommended Posts

Dobrý den,

zjistil jsem nepříjemnou věc v eshopu, kdy se mi při výběru varianty produktu přidají za # v URL adrese duplikátní atributy produktu, jednou správné a podruhé nesprávné. Do košíku se pak často přihodí nesprávná varianta produktu.

Příklad pro upřesnění:

Pokud mám produkt na adrese

https://eshop.cz/produkt/1-produkt

Který má atributy např. barva a velikost, tak po kliku na jakoukoliv barvu či velikost, se mi URL adresa změní na:

https://eshop.cz/produkt/1-produkt#/1-barva-zelena/2-barva-cervena/3-velikost-s/3-velikost-s

Přičemž do košíku se mi hodí jakoby duplicitní hodnota, v tomhle případě i když jsem kliknul na barvu 1 (zelená), tak se mi do košíku hodí barva 2 (červená). Správně předpokládám by mělo být pouze:

https://eshop.cz/produkt/1-produkt#/1-barva-zelena/3-velikost-s

 

 

Řešil jste to někdo?

Link to comment
Share on other sites

Dobrý den, děkuji za nabídnutou pomoc, již jsem si udělal ošklivý hack na opravu problému, který popíšu níže pro případ, že by to někdo někdy v budoucnosti řešil také. Problém jsem vysledoval až na tyto řádky (982-984) v souboru  /themes/default-bootstrap/js/product.js:

$('#attributes select, #attributes input[type=hidden], ' + radio_inputs).each(function(){
	tab_attributes.push($(this).val());
});

Což je samozřejmě divné, protože se jedná o obyčejný selektor DOMů, nicméně před uložením prvků do pole je proměnná tab_attributes prázdná a poté má duplicity. Výpisem hodnot jsem došel k závěru, že v první polovině pole jsou chybné hodnoty, v druhé pak ty správné. Například pokud má produkt tři atributy, tak první tři hodnoty jsou chybné, druhé tři jsou správné a pole má vždy dvojnásobnou velikost než je očekáváno. Můj workaround pak spočívá ve vymazání první poloviny pole řádkém kódu který následuje po předchozích řádcích:

tab_attributes = tab_attributes.slice(tab_attributes.length / 2);

Funguje to spolehlivě, ale nemyslím si, že by to bylo úplně korektní řešení problému, nedoporučuji ho a pokračuji v hledání příčiny.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...