Ta witryna używa Coookies! Przebywając na niej akceptujesz ten fakt. [ Zamknij to okno ]

8 Listopada 2023 20:13 - Historia pewnego chłodnego wieczoru

[08.11.2023]

Listopad, wcześnie się robi ciemno. Jest wieczór, dziecko położone spać. Kolacja zjedzona. Żona zajęła się swoimi sprawami... Co robić. Włączyć sobie jakaś grę? Nie nie, nie chce mi się w sumie. Nie ma nic ciekawego. Może popracować dla rozrywki. Ale czy brać się za coś dużego? Niee... porobię coś prostego. Pomyślmy... A no tak, nie miałem czasu odpowiedzieć na zgłoszenie, gdzie klient pytał, czy jak wyeksportować produkty z visibility=none.

Faktycznie, jest to w miarę powszechny problem... i znów ta sama odpowiedź i instrukcja. "Proszę zdefiniować metodę Category::getProducts_pw2 [...]".

Nie, dość! Napiszę stronę w dokumentacji, która wszystko wyjaśni. Poda przykłady.

To jedziemy, najpierw trzeba sprwadzić, jak duże są różnice w tej metodzie między thirtybees/1.6 a 8.0. Parametry są kompatybilne, ale jak z mechaniką. Ok, mamy to. Jest sporo różnic, ale mechanika podobna/taka sama. Ale nazwy zmiennych są inne.

W dokumentacji fajnie byłoby umieścić gotowiec, do wklejenia i ew. lekkiego przetestowania. Ojej... przeglądanie tylu wersji to będzie jakaś masakra... następne 2 dni to będę robił.

No dobrze... a jakie problemy są z obecnym systemem. Co jest źle. To po pierwsze: Nie może pobrać produktów wyłączonych, po drugie nie może pobrać produktów gdzie widoczność jest inna niż catalog,both. I trzeci, pobiera on stanowczo za dużo produktów, które są zbędne (dane pobierane są po category_products - to jest bez sensu)

Ok... zajrzę w kod. Zobaczymy co tam się dzieje... Hmmm.. hmmm... hmmm... no dobra... jakby wprowadzić nowy obiekt i 3-4 opcje, to możemy sprawić, że moduł będzie pobierał znacząco mniej danych. Będzie to też kompatybilne ze starszymi TB, starszymi i nowszymi PS.

Ale co będzie, jak wszystko popsuje się po wyjściu aktualizacji. Strasznie duże ryzyko. Hm hm hm... zróbmy to jako opcję. Dodajmy też informację, że to funkcja eksperymentalna, aby klienci mieli na uwadze, że może nie być ten system jeszce doskonały.

kodowanie, zmiany, refactoring... changes loading...

Ok. Mamy nowy system. Do włączenia opcjonalnie przez klienta. Nic się po aktualizacji nie popsuje, a klienci co mają problem, mogą sprawdzić, czy to im pomoże.

Wspaniały wieczór. Zamiast pisać 2 dni dokumentację, skazywać użytkowników na pisanie/modyfikowanie kodu, zrobiłem jedna funkcję, która jak teraz pomyślę, powinna być w tym module od lat...

Oczywiście miała być... nowy PriceWars v5 ma taką funkcję. Właściwie tylko na niej się opiera, i stary system zostanie wycofany.

Sprawdźmy czas generowania XML. Zaimportujemy 15000 produktów, każdy 4 kombinacje i przypisany do 10 kategorii. To testujemy.

Są wyniki. Stary system: 43s. Nowy system 21s. WOW. Jest nieźle. W Końcu puste kategorie nie będą miały kompletnie znaczenia dla generownia XML!

Ok, wszystko gotowe i przetestowane. Jest super. Nadany tej wersji numer 4.34.0. Mamy to, Nowa wersja poszła online!

A opcję można włączyć per XML: