Jump to content

Strona produktu, szczegóły produku i szybki podgląd - problem


Recommended Posts

Witam,

Tłumaczę o co chodzi.

Na stronie produktu jest zakładka "Szczegóły produktu", wyświetlają się tam m.in. cechy produktu, logo producenta, indeks, itp. Mam też zainstalowane moduły typu "Produkty w tej samej kategorii" i "Sprzedaż łączona". Wybieram szybki podgląd jednego z produktów z w/w modułów.

1.thumb.webp.1f58cc50031e419a0ee41db40aa5790e.webp

 

Po zmianie ilości lub atrybut w oknie szybkiego podglądu otrzymuję taki efekt:

2.thumb.webp.2b1d9f408691a620e1670c8d072b2ae3.webp

Zawartość zakładki "Szczegóły produktu" została zmieniona, zastąpiona danymi z produktu z szybkiego podglądu.


Szablon to standardowy classic, presta bez żadnych modyfikacji. Zrzuty ekranu pochodzą z PS 1.7.8.7, w PS 8.1.6 jest to samo (w innych wersjach pewnie też).

Mam wrażenie, że nie jest to bezpośrednio zależne od templatki. Przeglądałem kilka innych, również komercyjnych szablonów i w każdym z nich był podobny efekt.


Ma ktoś z Was pomysł jak naprawić tego babola?

Pozdrawiam

Link to comment
Share on other sites

Testowałem problem na kilku szablonach podobnie jak ty i faktycznie problem występuje ale efekty na niektórych szablonach są różne. Niektóre zawieszają widok części strony produktu ale w znacznej większości efekt jest taki jak sam opisałeś. Nie zagłębiałem się bardziej ale na pierwszy rzut oka problem jest jednak w tym że kod js szablonu dla akcji updateProduct odpala się dla id="product-details" globalnie a nie w samym okienku. Idealnie by było jakby id="product-details" miało na końcu id produktu i po tym by aktualizowało. 

  • Like 1
Link to comment
Share on other sites

Dzięki @endriu107 za wskazówkę, problem rozwiązałem, zrobiłem zmiany w core.js.


Moje rozwiązanie problemu, może komuś się przyda.

W pliku /themes/_core/js/product.js (wersja developerska PS 8.1.6) w funkcji updateProduct około 250 wiersza było:

$(prestashop.selectors.product.details).replaceWith(
  data.product_details,
);

zamieniłem na:

const isQuickView = $('.modal.quickview.in').length;
if (!isQuickView) {
  $(prestashop.selectors.product.details).replaceWith(
    data.product_details,
  );
}

Po zmianach należy przebudować core.js za pomocą webpacka.

  • Like 1
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...