Jump to content
alkotronikk

Problém s variantami produktu.

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?

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More