Separator URL miedzy parami attr-val zmieniony z "/" na "_" w generatorze feedu (ProductRepository::appendCombinationToXml). Wzorzec routingu pp_routes rozszerzony do [0-9_-]+ w Helpers::htacces (oba warianty: seo_link i fallback p-id-name). LayoutEngine konwertuje "_" -> "|" przed wywolaniem ProductRepository::findCached — format DB pozostaje "|". Partial product-attribute.php preselectuje wartosc z permutation_hash URL (forced_value_id), co poprawia UX wejscia z linka feedu. Suita: 834 -> 841 testow (+7), 2330 assertions. Wymagane akcje na produkcji po deployu: regeneracja pp_routes (Helpers::htacces), wyczyszczenie klucza pp_routes:all w Redis, regeneracja google-feed.xml, resubmit feedu w GMC. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
TECH_CHANGELOG
Chronologiczny log zmian technicznych — co i dlaczego.
v0.350 (2026-04-30)
- Naprawiono linki produktow z permutacja atrybutow w feedzie Google: separator par
attr-valw URL zmieniony z/na_. Stary format/slug/20-170/21-175nie matchowal sie wpp_routes(regex[0-9-]+nie obejmuje/), wiec klienci z GMC ladowali na strone glowna zamiast na produkt. ProductRepository::appendCombinationToXml:str_replace('|', '/', ...)->str_replace('|', '_', ...)w obu galeziach (zseo_linki fallbackp-id-name).Helpers::htacces: regex routingu produktow z permutacja rozszerzony do/([0-9_-]+)$w obu wariantach.LayoutEngine.php(// PRODUKT): konwersja_->|przed wywolaniemProductRepository::findCached— format DB pozostaje bez zmian (attr-val|attr-val).templates/shop-product/_partial/product-attribute.php: preselekcja wartosci atrybutu na podstawiepermutation_hashz URL ($forced_value_id); wartoscis_defaultuzywana tylko gdy URL nie wymusza wyboru. Dotyczycheckedna inpucie i emisji blokufradio_label_click(...).- Dodano 7 testow jednostkowych:
HelpersRoutingTest(4 testy regex + assercje na zawartosci pliku) iProductFeedLinkTest(3 testyappendCombinationToXmlviaReflectionMethodz mockiemTransportRepository). Suita: 841 testow / 2330 assertions. - Wymagane akcje na produkcji po deployu: regeneracja
pp_routes(Helpers::htacces()), wyczyszczenie kluczapp_routes:allw Redis, regeneracjagoogle-feed.xml, resubmit feedu w GMC.
v0.349 (2026-04-20)
- Naprawiono wyswietlanie kosztu transportu na /koszyk-podsumowanie: transporty z
delivery_free=1pokazuja teraz rzeczywisty koszt ponizej progusettings.free_delivery, a 0,00 zl dopiero po osiagnieciu progu (spojnie z lista na /koszyk). - Dodano chroniona metode
ShopBasketController::calculateTransportCostForSummary()wyliczajacatransport_cost_effective+free_delivery_applies— logika widokowa przeniesiona z szablonu do kontrolera. - Szablon
templates/shop-basket/summary-view.phpuzywa nowych kluczy zamiast sprawdzania surowej flagidelivery_free. - Dodano 6 testow jednostkowych (
ShopBasketControllerSummaryViewTest) pokrywajacych AC + edge cases (prog rowny, prog 0, transport null). Suita: 834 testy / 2318 assertions.
v0.348 (2026-04-19)
- Dodano przełącznik widoczności etykiet niestandardowych na liście produktów w panelu admina, z zapisem stanu w sesji.
- Po włączeniu opcji renderowane jest 5 pól custom_label_0..4 bezpośrednio pod sekcją zdjęcie/nazwa produktu.
- Dodano zapisywanie wartości etykiet niestandardowych do bazy oraz walidację dozwolonych typów etykiet po stronie kontrolera.
- Wprowadzono podpowiedzi istniejących wartości jako wybieralne sugestie z możliwością wpisania własnej wartości.
- Rozszerzono testy jednostkowe dla ShopProductController i ProductRepository pod nową funkcjonalność.