diff --git a/.claude/memory/MEMORY.md b/.claude/memory/MEMORY.md new file mode 100644 index 0000000..44f9780 --- /dev/null +++ b/.claude/memory/MEMORY.md @@ -0,0 +1,3 @@ +- [SCSS-only edits](feedback_scss_only.md) — nie edytuj ręcznie custom.css; ma własny pipeline SCSS → CSS. +- [FTP auto-upload gotcha](feedback_ftp_autoupload.md) — ftp-kr nie łapie Claude Code edycji; użyj `curl -T ftp://`. +- [NEW/OLD layout + Smarty {extends}](project_newwalls_layout_context.md) — IP gate w product.tpl; inline script MUSI być w `{block}` żeby renderować. diff --git a/.claude/memory/feedback_ftp_autoupload.md b/.claude/memory/feedback_ftp_autoupload.md new file mode 100644 index 0000000..3f0792e --- /dev/null +++ b/.claude/memory/feedback_ftp_autoupload.md @@ -0,0 +1,28 @@ +--- +name: FTP auto-upload nie łapie edycji z Claude Code +description: ftp-kr VSCode extension watcher nie reaguje na pliki modyfikowane przez Claude Code Edit tool — używaj curl -T ftp:// do manualnego uploadu +type: feedback +--- + +W projekcie newwalls.pl-1 (prestashop theme) `.vscode/ftp-kr.json` ma `autoUpload: true` i FTP creds do newwalls.pl. Extension teoretycznie uploaduje pliki przy każdej zmianie. + +**Reality:** ftp-kr watcher reaguje na VSCode editor save events, NIE na external filesystem writes. Edit/Write tools z Claude Code modyfikują pliki bezpośrednio na dysku → watcher ich nie widzi → brak uploadu → serwer serwuje stare wersje. + +Symptomy: edytujesz plik, testujesz na live serwerze, zmiany nie są widoczne. Frustracja. + +**Why:** Workaround dla tego konkretnego projektu (customer ma autoUpload włączony i oczekuje że edycje lądują na prod natychmiast). + +**How to apply:** +Po KAŻDEJ edycji `themes/` lub `modules/` plików w tym projekcie wymuszać upload manualnie: + +```bash +curl -s -T "path/to/file" "ftp://projectpro:i6B.b5P%7Bd6@newwalls.pl/public_html/path/to/file" -w "HTTP:%{http_code}\n" +``` + +Expected: `HTTP:226` (transfer complete). Pas `%7B` = `{` encoded dla hasła `i6B.b5P{d6`. + +Batch: można uploadować wiele plików w jednej bash komendzie z `&&`. + +Lepiej niż robić FTP: poprosić usera o ręczny VSCode save (Ctrl+S) po edycjach — ale to łamie flow. curl-T jest szybsze. + +**Cache in PrestaShop:** user powiedział że jest WYŁĄCZONY (2026-04-24). Jedyny cache który mimo to dawał problemy to Smarty `{extends}` block rendering (nie cache, tylko template inheritance — content poza `{block}` nie renderuje się). diff --git a/.claude/memory/feedback_scss_only.md b/.claude/memory/feedback_scss_only.md new file mode 100644 index 0000000..4a98527 --- /dev/null +++ b/.claude/memory/feedback_scss_only.md @@ -0,0 +1,13 @@ +--- +name: SCSS-only edits (newwalls.pl / theme ayon) +description: W projekcie newwalls.pl modyfikuj tylko custom.scss — custom.css jest auto-generowany z SCSS przez watcher/kompilator użytkownika. +type: feedback +--- + +W projekcie `newwalls.pl` (theme `ayon`, Prestashop 1.7) NIE edytuj ręcznie `themes/ayon/assets/css/custom.css` (ani `custom.css.map`). + +**Why:** Użytkownik ma własny pipeline SCSS → CSS (np. VSCode Live Sass Compiler). Ręczne zmiany w `custom.css` zostaną nadpisane przy najbliższej rekompilacji SCSS i tworzą brudny diff. + +**How to apply:** Wszystkie zmiany stylów rób w `themes/ayon/assets/css/custom.scss`. Po edycji poinformuj użytkownika, że musi uruchomić kompilację SCSS (jeżeli jego watcher sam tego nie zrobi po zapisie). Nie próbuj też ręcznie dotykać `custom.css.map`. + +Dotyczy: `themes/ayon/assets/css/*.css`, `themes/ayon/assets/css/*.css.map`. Odpowiednikami w SCSS edytuj: `themes/ayon/assets/css/*.scss`. diff --git a/.claude/memory/project_newwalls_layout_context.md b/.claude/memory/project_newwalls_layout_context.md new file mode 100644 index 0000000..ba2962c --- /dev/null +++ b/.claude/memory/project_newwalls_layout_context.md @@ -0,0 +1,29 @@ +--- +name: newwalls.pl NEW vs OLD layout + PrestaShop template inheritance +description: IP-gated layout split w product.tpl, Smarty {extends} only renders {block} content — kluczowe dla edytowania szablonów +type: project +--- + +Projekt `newwalls.pl-1` = PrestaShop 1.7 (tema `themes/ayon`). + +**Layout split:** +`themes/ayon/templates/catalog/product.tpl` ma DWA osobne branche: +- Linia 53: `{if $smarty.server.REMOTE_ADDR != '89.69.31.86'}` — OLD layout (widzą wszyscy oprócz Jacka) +- Linia 526: `{if $smarty.server.REMOTE_ADDR == '89.69.31.86'}` — NEW layout (widzi tylko dev machine Jacka, IP 89.69.31.86) + +Milestone v0.1 celuje w stan "oba layouty działają → usuwamy IP gate". + +**Detection w JS:** `.product-variants-data--new` marker w DOM → NEW; `.pp_stick_parent` → OLD. + +**Why:** user developuje NEW layout na żywym serwerze, żeby tylko on widział niedokończone funkcje. Publiczni użytkownicy widzą stabilny OLD. + +**How to apply — Smarty `{extends}` gotcha:** +Plik ma `{extends file=$layout}` (linia 25). Smarty template inheritance renderuje TYLKO to, co jest w `{block name='X'}` tagach. Jeśli napiszesz coś między `{/block}` a `{/if}` — NIE WYRENDERUJE SIĘ. + +Pattern do inline ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ NEWWALLS +
+ +
+ + + + + +
+ + + + + + +
+
+ +
+ + +
+ +
+ +
+ + +
+
+ +
+
+ +
+ + + + + + + + + + +
+ + + + +
+ + +
+ + + + +
+ +
+
+ +
+
+ + +
+
+
+ +
    +
+ + +
+ + + + +
+ + +
+
    +
  • + +
    +
    100
    +
    100
    + +
    + +
    +

    500 cm

    +
    +
    +

    300 cm

    +
    + +
    +
  • +
+ +
+ + +
+
    +
  • + +
  • +
+
+ +
+ + +
+
+
+
+ + +

Birds in the fog

+ + + + + +
+

Opis tapety

+
+
+

Birds in the fog 

+
+
+

Dostojne, stonowane i piękne – żurawie zachwycają majestatycznością. W Japonii symbolizują szczęście i długowieczność. Według tamtejszych wierzeń żyją aż tysiąc lat! Dlatego są częstym motywem japońskiej sztuki. Żurawie we mgle wprowadzą do wnętrza atmosferę tajemniczości. Możesz tapetą udekorować wnętrze w stylu japandi, ale nie tylko – sprawdzi się w każdej aranżacji, gdzie minimalizm przeplata się z przytulnością. Poprzecierane tło pięknie harmonizuje z drewnem oraz dodatkami w niemal każdym kolorze.

+
+
+

+
+ + + +
+

Skonfiguruj tapetę do wymiarów swojej ściany

+

Przed dodaniem do koszyka dopasuj tapetę do wymiarów swojej ściany. Nasz konfigurator pozwala na dostosowanie wymiarów i kolorystyki tapety.

+
+ + +
+
+

Cena

+
+ +
+ + +
+ + + + + +
+ Od 239,00 zł / m2 +
+ + + +
+ + + + + + + + + + + + + +
+ Brutto + + +
+ + +
+ + + +
+
+ +
+
+ +
+ + + + +
+

Wybierz wersję kolorystyczną

+
+ + + +
+
+
+ Wariant kolorystyczny +
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+
+
+
+
+
+
+ + + + + + + + + + + +
+
+

Czas realizacji zamówienia

+
+
+ +
+
+ + + +
+
+

Zabezpiecz tapetę

+
+
+ +
+
+ + + +
+
+

Montaż

+
+
+ +
+
+ + + +
+
+

Zamów próbkę

+

Masz trudność w wyborze odpowiedniej tapety?
Zamów próbkę o wymiarach 30x60 cm korzystając z konfiguratora.

+
+ +
+ + +
+
+
+ + + +
+ Ilość + + +
+
+ +
+ +
+ +
+
+ + + + + + + + +

+

+ +
+ + + +
+
+ +
+
+
+
+
+
+ +
+
+
+
+

Tekstura

+
+
+
+
+
+

Zamów darmowy wzornik struktur

+
+

Zamawiając nasz wzorki struktur masz możliwość sprawdzenia rzeczywistych barw wzoru oraz zapoznania się z wybraną teskturą.

+

W próbce uchwyciliśmy fragment grafiki, starannie pomniejszony, by maksymalnie zaprezentować wybrany wzór.

+
+ Dodaj do koszyka
+
+
+
+
+ + +
+ + + +
+ +
+ +
+ + +
+ +
+
+ +
+
+
    +
  • +
    + +
    + + + + + + + + +
    + +
    +
  • +
+
+
+ + +
+
+ + + + +
+
+
+
+
+ + +
+

Koszyk

+ Powrót do sklepu + +
+

Koszyk jest pusty

+ +
+
+ +
+
+
+
+ +
+
+

 

+ + + +
+
+ + + +
+
+ + + +
+
+ Możesz wypróbować kilka popularnych tagów tutaj: + + +
+ + + +
+
+

Konto

+ + + + + + + +
+
+

Konto

+ + + +
+ + +
+ Brak konta? +
+ + Utwórz konto + +
+
+
+
+
+ + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + + +
+
+ +
+ + group_work + Zgoda na pliki cookie + +
+ + + + + + +
+ +
+
+ + + + +
+
+ +
+ + group_work + Zgoda na pliki cookie + +
+ + + + + \ No newline at end of file diff --git a/phase02-04-price-label.png b/phase02-04-price-label.png new file mode 100644 index 0000000..0c29678 Binary files /dev/null and b/phase02-04-price-label.png differ diff --git a/phase02-piece-popup-working.png b/phase02-piece-popup-working.png new file mode 100644 index 0000000..204da0b Binary files /dev/null and b/phase02-piece-popup-working.png differ diff --git a/variants-section.yml b/variants-section.yml new file mode 100644 index 0000000..f871976 --- /dev/null +++ b/variants-section.yml @@ -0,0 +1,303 @@ +- generic [active] [ref=e1]: + - main [ref=e2]: + - generic [ref=e6]: + - link "NEWWALLS" [ref=e8] [cursor=pointer]: + - /url: https://newwalls.pl/ + - img "NEWWALLS" [ref=e9] + - list [ref=e15]: + - listitem [ref=e16]: + - link "Home" [ref=e17] [cursor=pointer]: + - /url: / + - listitem [ref=e18]: + - link "Kolekcje New" [ref=e19] [cursor=pointer]: + - /url: /#kolekcje + - generic [ref=e20]: + - text: Kolekcje + - generic [ref=e21]: New + - listitem [ref=e22]: + - link "Gdzie kupić?" [ref=e23] [cursor=pointer]: + - /url: https://newwalls.pl/pl/content/17-gdzie-kupic + - listitem [ref=e24]: + - link "Struktury" [ref=e25] [cursor=pointer]: + - /url: https://newwalls.pl/pl/content/15-struktury + - listitem [ref=e26]: + - link "Strefa Partnera" [ref=e27] [cursor=pointer]: + - /url: /content/8-strefa-partnera + - listitem [ref=e28]: + - link "Kontakt" [ref=e29] [cursor=pointer]: + - /url: https://newwalls.pl/pl/kontakt + - link [ref=e31] [cursor=pointer]: + - /url: /de/content/7-eu-projekte + - img [ref=e32] + - list [ref=e34]: + - listitem [ref=e35]: + - button "Menu języka" [ref=e39]: + - img "Polski" [ref=e41] [cursor=pointer] + - listitem + - listitem [ref=e42]: + - generic [ref=e43] [cursor=pointer]: + + - generic [ref=e44] [cursor=pointer]: − + - listitem [ref=e45] [cursor=pointer]: + - generic [ref=e46]: + - img + - listitem [ref=e47]: + - generic [ref=e48] [cursor=pointer]: + - generic: + - img + - listitem [ref=e49]: + - generic [ref=e51]: + - status [ref=e52] + - button [ref=e53] [cursor=pointer]: + - generic [ref=e54]: + - img + - listitem [ref=e55]: + - link [ref=e59] [cursor=pointer]: + - /url: //newwalls.pl/pl/koszyk?action=show + - generic [ref=e60]: + - text: / / + - complementary + - generic [ref=e63]: + - generic [ref=e64]: + - navigation [ref=e67]: + - list [ref=e68]: + - listitem [ref=e69]: + - link "Strona domowa" [ref=e70] [cursor=pointer]: + - /url: https://newwalls.pl/pl/ + - link: + - /url: "#" + - text: / + - listitem [ref=e71]: + - link "Prestige" [ref=e72] [cursor=pointer]: + - /url: https://newwalls.pl/pl/3-prestige + - link: + - /url: "#" + - text: / + - listitem [ref=e73]: + - text: Birds in the fog + - link: + - /url: "#" + - generic [ref=e74]: + - generic [ref=e76]: + - list + - generic [ref=e79]: + - list [ref=e80]: + - listitem [ref=e81]: + - paragraph [ref=e83]: 500 cm + - paragraph [ref=e85]: 300 cm + - link "Prześlij wzór na maila" [ref=e87] [cursor=pointer]: + - /url: "#" + - generic [ref=e88]: + - heading "Birds in the fog" [level=1] [ref=e89] + - generic [ref=e90]: + - heading "Opis tapety" [level=4] [ref=e91] + - generic [ref=e92]: + - generic [ref=e93]: + - paragraph [ref=e95]: + - generic [ref=e96]: Birds in the fog + - paragraph [ref=e98]: + - generic [ref=e99]: Dostojne, stonowane i piękne – żurawie zachwycają majestatycznością. W Japonii symbolizują szczęście i długowieczność. Według tamtejszych wierzeń żyją aż tysiąc lat! Dlatego są częstym motywem japońskiej sztuki. Żurawie we mgle wprowadzą do wnętrza atmosferę tajemniczości. Możesz tapetą udekorować wnętrze w stylu japandi, ale nie tylko – sprawdzi się w każdej aranżacji, gdzie minimalizm przeplata się z przytulnością. Poprzecierane tło pięknie harmonizuje z drewnem oraz dodatkami w niemal każdym kolorze. + - paragraph + - generic [ref=e100]: + - heading "Skonfiguruj tapetę do wymiarów swojej ściany" [level=4] [ref=e101] + - paragraph [ref=e102]: Przed dodaniem do koszyka dopasuj tapetę do wymiarów swojej ściany. Nasz konfigurator pozwala na dostosowanie wymiarów i kolorystyki tapety. + - generic [ref=e103]: + - generic [ref=e104]: + - heading "Cena" [level=4] [ref=e105] + - generic [ref=e110]: + - text: Od 239,00 zł / m + - superscript [ref=e111]: "2" + - link "Skonfiguruj tapetę" [ref=e113] [cursor=pointer]: + - /url: "#" + - generic [ref=e114]: Skonfiguruj tapetę + - generic [ref=e115]: + - heading "Wybierz wersję kolorystyczną" [level=4] [ref=e116] + - generic [ref=e119]: + - generic [ref=e120]: + - text: Wariant kolorystyczny + - list [ref=e121]: + - listitem [ref=e122]: + - generic [ref=e123] [cursor=pointer]: + - radio [checked] + - img [ref=e124] + - listitem [ref=e125]: + - generic [ref=e126] [cursor=pointer]: + - radio + - img [ref=e127] + - listitem [ref=e128]: + - generic [ref=e129] [cursor=pointer]: + - radio + - img [ref=e130] + - link: + - /url: javascript:void(0); + - link "Rozmiar i dostosowanie" [ref=e133] [cursor=pointer]: + - /url: javascript:void(0); + - heading "Rozmiar i dostosowanie" [level=4] [ref=e134] + - generic [ref=e135]: + - link "Tekstura materiału" [ref=e137] [cursor=pointer]: + - /url: javascript:void(0); + - heading "Tekstura materiału" [level=4] [ref=e138] + - link "2. Struktura materiału" [ref=e141] [cursor=pointer]: + - /url: javascript:void(0); + - generic [ref=e142]: + - paragraph [ref=e144]: "2." + - generic [ref=e146]: Struktura materiału + - heading "Czas realizacji zamówienia" [level=4] [ref=e149] + - heading "Zabezpiecz tapetę" [level=4] [ref=e152] + - heading "Montaż" [level=4] [ref=e155] + - generic [ref=e156]: + - generic [ref=e157]: + - heading "Zamów próbkę" [level=4] [ref=e158] + - paragraph [ref=e159]: + - text: Masz trudność w wyborze odpowiedniej tapety? + - text: Zamów próbkę o wymiarach 30x60 cm korzystając z konfiguratora. + - link "Zamów próbkę" [ref=e161] [cursor=pointer]: + - /url: "#" + - generic [ref=e162]: Zamów próbkę + - generic [ref=e166]: + - text: Ilość + - button "+ Dodaj do koszyka" [ref=e169] [cursor=pointer]: + - generic [ref=e170]: + + - generic [ref=e172]: Dodaj do koszyka + - generic [ref=e174]: + - paragraph [ref=e175]: Tekstura + - generic [ref=e178]: + - heading "Zamów darmowy wzornik struktur" [level=3] [ref=e179] + - generic [ref=e180]: + - paragraph [ref=e181]: Zamawiając nasz wzorki struktur masz możliwość sprawdzenia rzeczywistych barw wzoru oraz zapoznania się z wybraną teskturą. + - paragraph [ref=e182]: W próbce uchwyciliśmy fragment grafiki, starannie pomniejszony, by maksymalnie zaprezentować wybrany wzór. + - link "Dodaj do koszyka" [ref=e183] [cursor=pointer]: + - /url: "#" + - generic [ref=e184]: Dodaj do koszyka + - list [ref=e189]: + - listitem [ref=e190]: + - generic [ref=e193]: + - heading "Bądź na bieżąco" [level=2] [ref=e194] + - heading "sprawdź nas w social media" [level=3] [ref=e195] + - list [ref=e196]: + - listitem [ref=e197]: + - link " Facebook" [ref=e198] [cursor=pointer]: + - /url: https://www.facebook.com/NewWalls-100731798810531 + - generic [ref=e199]:  + - text: Facebook + - listitem [ref=e200]: + - link " Instagram" [ref=e201] [cursor=pointer]: + - /url: https://www.instagram.com/newwalls_studio/ + - generic [ref=e202]:  + - text: Instagram + - list [ref=e208]: + - listitem [ref=e209]: + - generic [ref=e211]: + - generic [ref=e212]: + - img [ref=e214] + - generic [ref=e215]: + - generic [ref=e216]: + - heading "Tapety" [level=4] [ref=e217] + - list [ref=e218]: + - listitem [ref=e219]: + - link "Prestige" [ref=e220] [cursor=pointer]: + - /url: /3-prestige + - listitem [ref=e221]: + - link "Basic" [ref=e222] [cursor=pointer]: + - /url: /10-basic + - listitem [ref=e223]: + - link "Kids" [ref=e224] [cursor=pointer]: + - /url: /5-kids + - listitem [ref=e225]: + - link "Struktury" [ref=e226] [cursor=pointer]: + - /url: /pl/content/15-struktury + - generic [ref=e227]: + - heading "Informacje" [level=4] [ref=e228] + - list [ref=e229]: + - listitem [ref=e230]: + - link "Regulamin" [ref=e231] [cursor=pointer]: + - /url: /content/2-regulamin + - listitem [ref=e232]: + - link "Polityka Prywatności" [ref=e233] [cursor=pointer]: + - /url: /content/3-polityka-prywatnosci + - listitem [ref=e234]: + - link "Reklamacje" [ref=e235] [cursor=pointer]: + - /url: /content/13-reklamacja + - listitem [ref=e236]: + - link "Zwrot towaru" [ref=e237] [cursor=pointer]: + - /url: /content/14-zwrot-towaru + - generic [ref=e238]: + - heading "Obsługa klienta" [level=4] [ref=e239] + - list [ref=e240]: + - listitem [ref=e241]: + - link "Dostawa" [ref=e242] [cursor=pointer]: + - /url: /pl/content/1-dostawa + - listitem [ref=e243]: + - link "Formy płatności" [ref=e244] [cursor=pointer]: + - /url: /pl/content/5-formy-platnosci + - listitem [ref=e245]: + - link "Czas realizacji zamówienia" [ref=e246] [cursor=pointer]: + - /url: /pl/content/11-czas-realizacji-zamowienia + - listitem [ref=e247]: + - link "Jak zamawiać" [ref=e248] [cursor=pointer]: + - /url: /pl/content/12-jak-zamawiac + - generic [ref=e249]: + - heading "Kontakt" [level=4] [ref=e250] + - paragraph [ref=e251]: + - text: ul. Wojska Polskiego 3, Mielec + - link "+48 603 44 84 18" [ref=e252] [cursor=pointer]: + - /url: tel:+48603448418 + - link "studio@newwalls.pl" [ref=e253] [cursor=pointer]: + - /url: mailto:studio@newwalls.pl + - generic [ref=e254]: + - heading "Produkty" [level=4] [ref=e255] + - list [ref=e256]: + - listitem [ref=e257]: + - link "Tapety" [ref=e258] [cursor=pointer]: + - /url: "#" + - listitem [ref=e259]: + - link "System WET" [ref=e260] [cursor=pointer]: + - /url: "#" + - listitem [ref=e261]: + - link "System z żywicą" [ref=e262] [cursor=pointer]: + - /url: "#" + - generic [ref=e263]: + - heading "Strefa klienta" [level=4] [ref=e264] + - list [ref=e265]: + - listitem [ref=e266]: + - link "Konto" [ref=e267] [cursor=pointer]: + - /url: "#" + - listitem [ref=e268]: + - link "Koszyk" [ref=e269] [cursor=pointer]: + - /url: "#" + - listitem [ref=e270]: + - link "Wyloguj się" [ref=e271] [cursor=pointer]: + - /url: "#" + - generic [ref=e272]: + - generic [ref=e273]: + - list: + - listitem [ref=e274]: + - link "Polityka prywatności" [ref=e275] [cursor=pointer]: + - /url: /pl/content/3-polityka-prywatnosci + - generic [ref=e276]: + - list: + - listitem [ref=e277]: + - paragraph [ref=e278]: "Projekt: chmielowiec.eu" + - generic [ref=e282]: + - button "×" [ref=e283] [cursor=pointer] + - generic [ref=e285]: + - generic: + - paragraph [ref=e288]: Niniejsza witryna wykorzystuje pliki cookies w celu świadczenia usług na najwyższym poziomie i w sposób dostosowany do indywidualnych potrzeb. Korzystanie z witryny bez zmiany ustawień dotyczących cookies oznacza, że będą one zamieszczane w urządzeniu końcowym. Jeśli nie akceptujesz opuść tę stronę internetową. + - text: ✘ ✘ ✘ + - generic [ref=e291]: + - button "done_all Zaakceptuj" [ref=e293] [cursor=pointer]: + - generic [ref=e294]: done_all + - text: Zaakceptuj + - button "clear Odrzuć" [ref=e296] [cursor=pointer]: + - generic [ref=e297]: clear + - text: Odrzuć + - button "tune Konfiguruj" [ref=e299] [cursor=pointer]: + - generic [ref=e300]: tune + - text: Konfiguruj + - generic [ref=e304] [cursor=pointer]: + - generic [ref=e305]: group_work + - text: Zgoda na pliki cookie + - generic: + - generic: ✘ ✘ ✘ + - generic [ref=e307] [cursor=pointer]: + - generic [ref=e308]: group_work + - text: Zgoda na pliki cookie \ No newline at end of file