Files
shopPRO/.paul/docs/TECH_CHANGELOG.md
Jacek Pyziak fba215b372 fix: linki produktow z permutacja atrybutow w feedzie Google (v0.350)
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>
2026-04-30 01:58:29 +02:00

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-val w URL zmieniony z / na _. Stary format /slug/20-170/21-175 nie matchowal sie w pp_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 (z seo_link i fallback p-id-name).
  • Helpers::htacces: regex routingu produktow z permutacja rozszerzony do /([0-9_-]+)$ w obu wariantach.
  • LayoutEngine.php (// PRODUKT): konwersja _ -> | przed wywolaniem ProductRepository::findCached — format DB pozostaje bez zmian (attr-val|attr-val).
  • templates/shop-product/_partial/product-attribute.php: preselekcja wartosci atrybutu na podstawie permutation_hash z URL ($forced_value_id); wartosc is_default uzywana tylko gdy URL nie wymusza wyboru. Dotyczy checked na inpucie i emisji bloku fradio_label_click(...).
  • Dodano 7 testow jednostkowych: HelpersRoutingTest (4 testy regex + assercje na zawartosci pliku) i ProductFeedLinkTest (3 testy appendCombinationToXml via ReflectionMethod z mockiem TransportRepository). Suita: 841 testow / 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.

v0.349 (2026-04-20)

  • Naprawiono wyswietlanie kosztu transportu na /koszyk-podsumowanie: transporty z delivery_free=1 pokazuja teraz rzeczywisty koszt ponizej progu settings.free_delivery, a 0,00 zl dopiero po osiagnieciu progu (spojnie z lista na /koszyk).
  • Dodano chroniona metode ShopBasketController::calculateTransportCostForSummary() wyliczajaca transport_cost_effective + free_delivery_applies — logika widokowa przeniesiona z szablonu do kontrolera.
  • Szablon templates/shop-basket/summary-view.php uzywa nowych kluczy zamiast sprawdzania surowej flagi delivery_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ść.