Dokumentacja - historia cen - dyrektywa omnibus dla PrestaShop

Instrukcja instalacji i obs艂ugi modu艂u historia cen na stronie produktu dla PrestaShop od X13.pl
8.X  1.7.X  1.6.X 
1.4.1 / 2023-11-14
zobacz changelog

Przed instalacj膮 i konfiguracj膮 modu艂u zapraszamy do zapoznania si臋 z instrukcj膮.

Wymagania instalacyjne

Modu艂 wymaga kilku podstawowych us艂ug na serwerze, kt贸re w wi臋kszo艣ci przypadk贸w s膮 aktywne.
Gdyby kt贸ra艣 z wymienionych opcji nie by艂a dost臋pna - nale偶y j膮 w艂膮czy膰 w panelu serwera lub napisa膰 do administratora.

  1. PHP: 5.6 - 8.1
  2. ionCube: tak

Instalacja

Modu艂 mo偶esz znale藕膰 na li艣cie jako

  1. Nazwa: Historia ceny na karcie produktu - dyrektywa Omnibus
  2. Autor: x13.pl
  3. Kategoria: Funkcjonalno艣膰 sklepu
  4. Filtruj po: Zainstalowane i niezainstalowane / Aktywne i nieaktywne

Po zainstalowaniu modu艂u musisz zadecydowa膰 czy korzystasz z produkt贸w z atrybutami, kt贸re zmieniaj膮 cen臋 czy nie

Przyk艂ad:

  • je艣li sprzedajesz koszulki w r贸偶nych rozmiarach, wszystkie maj膮 tak膮 sam膮 cen臋 i nie tworzysz promocji na wybran膮 kombinacj臋, wybierz Indeksuj g艂贸wn膮 cen臋 produktu
  • je艣li nie sprzedajesz produkt贸w z kombinacjami wybierz Indeksuj g艂贸wn膮 cen臋 produktu
  • w przypadku gdy sprzedajesz materace, w r贸偶nych rozmiarach i ka偶dy rozmiar to inna kombinacja z inn膮 cen膮, lub sprzedajesz koszulki, w kt贸rych robisz przecen臋 na najwi臋kszy rozmiar, kliknij Indeksuj wszystkie ceny produktu

Modu艂 domy艣lnie wykorzystuje hook after_price, kt贸ry powinien by膰 domy艣lnie dost臋pny w szablonie Twojego sklepu.

{hook h='displayProductPriceBlock' product=$product type="after_price"}
Je艣li w swoim szablonie nie posiadasz takiego hooka lub chcesz umie艣ci膰 modu艂 w innym miejscu, musisz doda膰 nasz autorski hook w szablonie

Zmiana w plikach szablonu - w przypadku customowego hooka

艁膮czymy si臋 przez FTP z naszym sklepem, i wchodzimy w odpowiednie folderu, oraz edytujemy pliki:

Dla PrestaShop 8.X i 1.7

Wybieramy folder themes/nazwa/templates/catalog/_partials/product-prices.tpl - edytujemy plik

i dodajemy w wybranym przez nas miejscu
{hook h="displayProductPriceHistory" product=$product}

Dla PrestaShop 1.6

Wybieramy folder themes/nazwa-tematu/product.tpl - edytujemy plik

i dodajemy w wybranym przez nas miejscu
{hook h="displayProductPriceHistory" product=$product}

Sprawdzenie kompilacji

Sprawdzamy czy mamy ustawione wymuszanie zmian w szablonie lub czy艣cimy cache.
Wchodzimy w Parametry zaawansowane -> Wydajno艣膰
Klikamy po prawej Wyczy艣膰 pami臋膰 podr臋czn膮

Konfiguracja

Ustawienia CRON - automatyczne indeksowanie cen

W module zalecamy dodanie zadania CRON, kt贸re b臋dzie sprawdza艂o ceny produkt贸w i poprawnie indeksowa艂o je w bazie danych.

/usr/bin/wget -q -F -O - "https://domena.pl/pl/module/x13pricehistory/cron?token=001a111a11aaa1a1a11a1aa11a1a1111&action=index" 

Zamiast 001a111a11aaa1a1a11a1aa11a1a1111 wpisujemy poprawny indywidualny token, ca艂y poprawny link znajdziemy w na samej g贸rze w konfiguracji modu艂u, ka偶dy link posiada sw贸j indywidualny token w celu zablokowania niepoprawnego uruchomienia indeksacji przez osoby trzecie


Jak doda膰 zadanie CRON na serwerze ?
Powy偶sze przyk艂ady dodania zada艅 CRON s膮 dla serwer贸w z systemem DirectAdmin, szczeg贸艂ow膮 instrukcj臋, jak i przyk艂ady dla innych serwer贸w znajd膮 Pa艅stwo tutaj

Z jak膮 cz臋stotliwo艣ci膮 ustawi膰 zadanie CRON?

Tutaj nie mamy jednoznacznej odpowiedzi, cz臋stotliwo艣膰 nale偶y dostosowa膰 do wielko艣ci katalogu, ilo艣ci kombinacji, grup klient贸w/walut i kraj贸w - je艣li te opcje zosta艂y w艂膮czone podczas indeksacji.

Dla wi臋kszo艣ci sklep贸w do 10 000 produkt贸w odpowiednim ustawieniem b臋dzie uruchamianie zadania co 3 godziny.
Zalecamy, aby pierwsz膮 indeksacj臋 wykona膰 r臋cznie, poprzez skopiowanie linku do przegl膮darki - na tej podstawie sprawdzenie ile razy nale偶y uruchomi膰 link aby zosta艂y pobrane ceny dla 100% produkt贸w.

Modu艂 przystosowany jest do indeksowania produkt贸w w partiach, wi臋c je艣li podczas jednego zapytania nie uda mu si臋 zapisa膰 wszystkich danych, kolejne informacje b臋d膮 zbierane od ostatniego poprawnie zapisanego produktu.

Zadanie CRON r贸wnie偶 usunie historyczne dane, kt贸re nie b臋d膮 ju偶 wykorzystywane przez modu艂 - ceny starsze ni偶 30 dni (o ile nie s膮 zapisane jako najni偶sze ceny przed promocj膮).

W jaki spos贸b modu艂 zbiera informacje o cenie

W naszym rozwi膮zaniu wdro偶yli 2 opcje zbierania cen, jedna wymagana przez dyrektyw臋 omnibus - wy艣wietlenie najni偶szej ceny sprzed 30 dni przed wdro偶eniem promocji. Druga opcja to wy艣wietlanie historii cen w formie wykresu, tabeli lub tekstu.

Pobieranie ceny 30 dni przed aktualn膮 promocj膮

Informuj膮cy o najni偶szej cenie produktu w okresie 30 dni przed aktualn膮 promocj膮, jest najwa偶niejsz膮 funkcjonalno艣ci膮 modu艂u - kt贸ra umo偶liwia spe艂nienie wymaga艅 dyrektywny Omnibus.
Dlatego postanowili艣my lepiej opisa膰 jak dzia艂a ta opcja oraz jakie warunki musz膮 by膰 spe艂nione, 偶eby zosta艂a wy艣wietlona.

Jakie warunki musz膮 by膰 spe艂nione, aby modu艂 wy艣wietla informacj臋 o najni偶szej cenie przed promocj膮:

  • produkt musi by膰 aktualnie w promocji (a sama promocja musia艂a by膰 dodana lub edytowana po instalacji modu艂u)
  • produkt musi posiada膰 przynajmniej jeden wpis historyczny w naszym module, z cen膮 r贸偶n膮 od obecnej
  • musisz mie膰 domy艣lny hook after_price lub nasz autorski hook dodany w swoim szablonie

Historia cen produktu

Warunki, przy jakich modu艂 zapisuje poprawnie cen臋 historyczn膮

  • produkt musi by膰 aktywny
  • produkt musi posiada膰 cen臋 wi臋ksz膮 ni偶 0z艂
  • cena musi by膰 zaindeksowana za pomoc膮 hooka lub polecenia CRON (zalecamy zawsze dodanie zadanie CRON)
W celu poprawnego

Historia cen produktu - wy艣wietlanie na sklepie

Warunki, przy jakich zostanie wy艣wietlona historyczna cena na stronie produktu

  • w module w polu Wy艣wietl cen臋 historyczn膮 dla musi by膰 w艂膮czona opcja tylko dla produkt贸w z aktualn膮 promocj膮 lub wszystkich produkt贸w
  • produkt musi posiada膰 przynajmniej jeden wpis w historii cen
  • musisz mie膰 domy艣lny hook after_price lub nasz autorski hook dodany w swoim szablonie

Dodatkowo przy historii cen mo偶esz wy艣wietli膰 tekst Tekst dla produkt贸w z obecnie najni偶sz膮 cen - kt贸ry wy艣wietli si臋 w przypadku je艣li produkt posiada najni偶sz膮 cen臋 w ci膮gu ostatnich 30 dni - nie licz膮c ceny przed dodaniem promocji, je艣li jest to cena starsza ni偶 30 dni.

Przyk艂ady wy艣wietlania cen

1. Produkt:

  • by艂 dodany przed instalacj膮 modu艂u
  • produkt nie posiada艂 promocji
  • modu艂 zosta艂 zainstalowany 2 stycznia
DataCena w PrestaShopCena przed promocj膮 (modu艂)Historia cen (modu艂)Produkt z najni偶sz膮 cen膮 (modu艂)
1/1/2023200 z艂---
2/1/2023instalacja modu艂u + indeksacja
2/1/2023200 z艂-TAK200 z艂
4/1/2023Dodanie promocji - 50z艂
4/1/2023200 z艂 150z艂Najni偶sza cena w ci膮gu 30 dni przed aktualn膮 promocj膮:200 z艂TAKNajni偶sza cena w ci膮gu ostatnich 30 dni: 150 z艂
14/2/2023200 z艂 150z艂Najni偶sza cena w ci膮gu 30 dni przed aktualn膮 promocj膮:200 z艂TAKNajni偶sza cena w ci膮gu ostatnich 30 dni: 150 z艂
2. kolejny przyk艂ad
DataCena w PrestaShopCena przed promocj膮 (modu艂)Historia cen (modu艂)Produkt z najni偶sz膮 cen膮 (modu艂)
1/1/2023200 z艂---
2/1/2023instalacja modu艂u + indeksacja
2/1/2023200 z艂-TAK200 z艂
4/1/2023Dodanie promocji - 50 z艂 brutto
4/1/2023200 z艂 150 z艂Najni偶sza cena w ci膮gu 30 dni przed aktualn膮 promocj膮: 200 z艂TAKNajni偶sza cena w ci膮gu ostatnich 30 dni: 150 z艂
14/2/2023Zmiana promocji - 100 z艂
14/2/2023200 z艂 100 z艂Najni偶sza cena w ci膮gu 30 dni przed aktualn膮 promocj膮: 150 z艂TAKNajni偶sza cena w ci膮gu ostatnich 30 dni: 100 z艂
2. kolejny przyk艂ad
DataCena w PrestaShopCena przed promocj膮 (modu艂)Historia cen (modu艂)Produkt z najni偶sz膮 cen膮 (modu艂)
1/1/20231500 z艂 1000 z艂---
2/1/2023instalacja modu艂u + indeksacja
2/1/20231500 z艂 1000 z艂-TAKNajni偶sza cena w ci膮gu ostatnich 30 dni: 1000 z艂
4/1/20231500 z艂 1000 z艂-TAKNajni偶sza cena w ci膮gu ostatnich 30 dni: 1000 z艂
14/2/2023Zmiana ceny podstawowej na 1200 z艂
14/2/20231200 z艂 700 z艂Najni偶sza cena w ci膮gu 30 dni przed aktualn膮 promocj膮: 1000 z艂TAKNajni偶sza cena w ci膮gu ostatnich 30 dni: 700 z艂
20/2/2023Zmiana promocji na - 800 z艂
28/2/20231200 z艂 400 z艂Najni偶sza cena w ci膮gu 30 dni przed aktualn膮 promocj膮: 700 z艂TAKNajni偶sza cena w ci膮gu ostatnich 30 dni: 400 z艂
28/2/2023Usuni臋cie promocji
3/3/20231200 z艂-TAKNajni偶sza cena w ci膮gu ostatnich 30 dni: 400 z艂
29/3/20231200 z艂-TAKNajni偶sza cena w ci膮gu ostatnich 30 dni: 1200 z艂

Wydajno艣膰

Modu艂 zosta艂 tak przygotowany aby w jak najmniejszym stopniu wp艂ywa na pr臋dko艣膰 dzia艂ania sklepu, jednak musisz mie膰 na uwadz臋 aby zebra膰 poprawnie wszystkie informacje o cenach musimy zapisa膰 du偶o informacji do bazy danych dla ka偶dego produktu. Pomimo mocnej optymalizacji modu艂u, rozmiar bazy i pr臋dko艣膰 indeksacji zale偶na jest od w艂膮czonych opcji konfiguracyjnych.

Dlatego bardzo wa偶ne jest, aby艣 ustawi艂 opcj臋, kt贸re realnie potrzebujesz zapisywa膰 w swoim sklepie.
Opcja, kt贸ra mocno zwi臋ksza ilo艣膰 wpis贸w w bazie danych a w wi臋kszo艣ci sklep贸w nie jest wykorzystywana to ceny dla poszczeg贸lnych kraj贸w - je艣li nie stosujesz r贸偶nych cen oraz rabat贸w wed艂ug wybranego kraju nie w艂膮czaj tej opcji.

Je艣li wiesz, 偶e wszyscy klienci posiadaj膮 takiej same ceny produkt贸w oraz maj膮 takie same rabaty, nie w艂膮czaj opcji Indeksuj cen臋 dla niestandardowych grup klient贸w.

Pami臋taj, 偶e w momencie, w kt贸rym zmienisz ustawienia w swoim sklepie (np. zaczniesz sprzedawa膰 produkty z kombinacjami w r贸偶nych cenach) musisz zmieni膰 ustawienia w module.

Problemy

W jaki spos贸b wymusi膰 histori臋 cen przed promocj膮?

Niestety nie ma mo偶liwo艣ci wymuszenia cen przed promocj膮.
Modu艂 zbiera ceny od jego instalacji i poprawnej konfiguracji wraz z ustawieniem zadania CRON.
Oznacza to, 偶e je艣li wcze艣niej mia艂e艣 w swoim sklepie promocj臋 na produkt A, to modu艂 nie wy艣wietli informacji Najni偶sza cena w ci膮gu 30 dni przed aktualn膮 promocj膮: XX z艂, poniewa偶 nie ma w swojej historii r贸偶nej ceny od obecnej.

Modu艂 nie wy艣wietla ani 偶adnej dodatkowej ceny pomimo poprawnej konfiguracji?

Musisz w takim przypadku zacz膮膰 od sprawdzenia, czy podczas edycji produktu w zak艂adce modu艂y (na produkcie) oraz naszym module widzisz histori臋 cen lub najni偶sz膮 cen臋.
Je艣li tak, oznacza to, 偶e modu艂 poprawnie indeksuje ceny - 艣wietnie.
Prawdopodobnie problem w takim razie le偶y po stronie braku odpowiedniego hooka w szablonie - sprawd藕 tutaj jak powinien by膰 dodany.

Video