Przejdź do głównej zawartości

Zlecenie na stronie ze sklepem

Na stronie ze sklepem zmiany katalogu też są częścią zlecenia, ale nie trafiają od razu do sklepu.

Wydanie zlecenia. Wszystko, co zmienisz w katalogu przez panel zlecenia, trafia do wydania zlecenia trzymanego obok żywego katalogu. Panel zlecenia pokazuje „produkcja + zmiany zlecenia”, a każdy zapis to nowa rewizja z autorem. Zmiany właściciela w innych polach widzisz od razu. Zmiana właściciela w polu, które ruszyłeś, wyjdzie przy odbiorze jako konflikt — nie zostanie nadpisana.

Zakres zlecenia. Właściciel wybiera go przy zakładaniu zlecenia; widzisz go na karcie zlecenia w portalu, przy sc take i w .sc-order.md (sekcja „Zakres w sklepie”):

  • Treści i zdjęcia (domyślny): nazwy, opisy, treści, zdjęcia i kategorie produktów — bez zmian cen, nowych produktów i usuwania,
  • Nowe produkty: to samo plus nowe produkty z wariantami i cenami — bez zmian cen istniejących produktów i bez usuwania,
  • Pełny katalog: także ceny i usuwanie.

Sklep odmawia tego, czego zakres nie obejmuje (403 order.scope_forbids_price / _create / _delete), a panel mówi to zdaniem z nazwą zakresu. Potrzebujesz zmienić cenę albo coś usunąć w węższym zakresie? Poproś właściciela o szerszy zakres. Usunięcie produktu albo kategorii, które sam utworzyłeś w zleceniu, jest zawsze dozwolone — cofa tylko Twoje utworzenie.

Co wolno w wydaniu (w granicach zakresu):

  • nowy produkt (istnieje tylko w wydaniu i nie jest na sprzedaż),
  • stan początkowy nowego wariantu (nowego produktu albo dodanego w zleceniu): pole stanu w panelu zlecenia albo initialStock w narzędziach — liczba całkowita od 0. Podgląd pokazuje „W sprzedaży od publikacji · N szt.”, właściciel potwierdza albo zmienia liczbę przy odbiorze, a wariant wchodzi liczony; bez liczby albo z 0 — „Po publikacji: niedostępny”, nigdy bez limitu. Sprzedaż bez liczenia stanu mówisz wprost: untracked: true (--untracked, w panelu „bez liczenia stanu”) — e-book, do którego plik właściciel dołączy po odbiorze, naklejki; nie razem z liczbą. Właściciel przełącza to przy odbiorze w obie strony. Plik do pobrania i karta podarunkowa zostają bez liczenia sztuk,
  • zdjęcia produktu, nowego i istniejącego: ekran zdjęć działa jak na żywym sklepie (dodanie, podmiana, usunięcie, kolejność, główne, opisy). Plik od razu trafia do magazynu strony, a galeria do wydania — na żywy produkt wchodzi przy odbiorze. Zmiana zdjęć przez właściciela w tym czasie to konflikt,
  • nowy adres produktu lub kategorii (po wejściu sam dostaje przekierowanie 301),
  • cena wariantu, opis, kategorie,
  • waga i wymiary wariantu (kg i cm, w każdym zakresie — od nich zależy wycena kuriera i paczkomatu; na żywy sklep wchodzą przy odbiorze),
  • producent wybrany z istniejących,
  • reguły sklepu.

Czego nie wolno — dostaniesz odmowę: promocje, nowi producenci, przywracanie wersji z żywego sklepu, stan wariantu, który jest w sprzedaży (order.release_stock), klienci, zamówienia, pieniądze, ustawienia. Dane osobowe kupujących są dla zlecenia niedostępne.

Własne pola produktu dopisujesz w settings/shop-product-schema.json. Sklep przyjmie je przy wejściu zlecenia, ale tylko jako dodanie — usunięcie albo zmiana typu pola zostanie odrzucona.

Podgląd i kopia sklepu.

  • Build podglądu nakłada zmiany zlecenia na katalog. Bez odpowiedzi o zmianach nie zbuduje podglądu wcale.
  • Panel mówi np. „zapis r18 jest w budowie #6”. Każda budowa podaje rewizję, na której stoi — także ta pominięta jako „ten sam stan już stoi”. Jeśli po zapisie żadna budowa nie ruszy (powiadomienie ze sklepu przepadło), panel sam ją zamówi przy następnym odczycie stanu.
  • Kopia sklepu (shop-<strona>-o<8 znaków>) powstaje dopiero przy pierwszej próbie zakupu na podglądzie. To produkcja bez ludzi i pieniędzy: bez danych osobowych, z płatnością testową, bez prawdziwej poczty i SMS-ów. Jest „gotowa” dopiero ze zmianami zlecenia na sobie — gdy zmian nie da się na niej położyć, kopia nie powstaje, a sc twin pokaże błąd (sc twin retry). Zasypia po godzinie bez użycia i budzi się w około minutę. Działa na tym samym silniku sklepu co produkcja: gdy produkcja dostanie nowszy, kopia powstaje od nowa. Znika kilka minut po zamknięciu zlecenia.
  • Na innych adresach podglądu sklep jest tylko do oglądania.
Okno terminala
sc twin # stan kopii jednym zdaniem: czeka na pamięć / powstaje / gotowa / uśpiona / błąd
sc twin wake # obudź
sc twin reset # postaw od nowa
sc twin retry # ponów po błędzie
sc twin mail [<id>] # poczta, którą kopia „wysłałaby” kupującym
sc twin changes # zmiany sklepu w zleceniu (wejdą przy odbiorze)
sc twin pull # dociągnij zmiany właściciela do kopii (starsze zlecenia pracujące w kopii)

sc dev budzi kopię. Gdy kopia nie odpowiada, CLI powie, że koszyk lokalnie nie zadziała.

Przed odbiorem runner przechodzi drogę kupującego na podglądzie (do końca w kopii) i mierzy CSS oraz LCP. Gdy kopia dopiero startuje, bramka na nią czeka (do 8 minut). Czerwony zakup blokuje odbiór — powód (podsumowanie naszego sprawdzenia kontraktu i zakupu) masz w danych zlecenia (/info z kluczem, pole serverChecks), także po odesłaniu do poprawki. Pomiar ponad sufit strony wymaga od klienta świadomego „przyjmij mimo to”.

Po odbiorze zmiany sklepu wchodzą na żywy sklep przed budową produkcji, w bezpiecznej kolejności, bez ruszania stanów wariantów w sprzedaży (nowe warianty dostają liczbę potwierdzoną przez właściciela). Poprawka po odesłaniu to po prostu nowa rewizja wydania.

Na katalogu zlecenia pracujesz kluczem zlecenia — tym samym, którym pchasz kod. Nie potrzebujesz hasła ani logowania do panelu; nigdy nie proś właściciela o jego hasło. Twój Claude Code ma narzędzia sklepu w sc mcp (.mcp.json klonu już je włącza), a te same polecenia masz w terminalu:

Okno terminala
sc shop scope # zakres zlecenia po polsku: co wolno, czego nie
sc shop products # produkty (produkcja + zmiany zlecenia)
sc shop create-product --title "Kosz jesienny" --price 120 --stock 5 # --stock: stan na start (właściciel potwierdzi)
sc shop create-product --title "E-book" --price 29 --untracked # bez liczenia stanu (plik doda właściciel po odbiorze)
sc shop text <id> --description "…" --status published
sc shop variants <id> --json '[{"id":"variant_…","title":"Standard","price":45}]'
sc shop categories · sc shop create-category --name "Prezenty" · sc shop set-categories <id> <pcat_…>
sc shop photo <id> ./zdjecie.jpg --main --alt "Kosz jesienny" # zdjęcie z pliku, jako główne
sc shop state # wersja wydania i czy podgląd już ją ma
sc shop todo "Włączyć dostawę InPost" "Ustawić BLIK" # lista dla właściciela
sc panel --shop # panel zlecenia w przeglądarce, już zalogowany

Wszystko trafia do wydania zlecenia — tak samo jak z panelu: ten sam zakres, podgląd po przebudowie, wejście na żywy sklep przy odbiorze. Klucz działa przez całe zlecenie: krótką przepustkę narzędzie trzyma w .git/sc-shop-pass.json (tylko dla Ciebie, poza każdym commitem) i odnawia samo. Po zamknięciu zlecenia usłyszysz „zlecenie zamknięte” i nic nie zostanie wysłane. Klucz idzie tylko do platformy przez https — SC_OPS_URL z http:// dostanie odmowę. Link z sc panel --shop to hasło na 2 minuty: otwiera się w przeglądarce, a na ekran trafia tylko wtedy, gdy przeglądarki nie da się otworzyć — nie wklejaj go nikomu.

Ustawień sklepu nie zmienisz — dostaw, płatności, promocji i reguł, programu lojalnościowego, portfeli, producentów ani plików cyfrowych produktu. Sklep odmówi z powodem, a narzędzie powie, co zrobić: dopisz to sc shop todo (shop_owner_todo), a właściciel dostanie listę w wątku zlecenia.