CLI

Dokumentacja komend

Wszystkie komendy Zanfia CLI pogrupowane według zasobów: produkty, oferty, bumpy, kursy, media, społeczności, strony, klienci, zamówienia, statystyki i rabaty.

10 min czytaniaOstatnia aktualizacja: 9 lip 2026

Wszystkie komendy obsługują --json dla wyjścia czytelnego maszynowo (flagi globalne podaje się przed podkomendą). Kwoty są w jednostkach podrzędnych (minor units) (1999 = 19,99). Każda komenda odpowiada ścieżce Workspace API, więc wszystko, co tu znajdziesz, działa też jako zwykłe zapytanie HTTP.

Uwierzytelnianie

KomendaZastosowanie
zanfia loginLogowanie przez przeglądarkę; zapisuje token ważny 90 dni
zanfia logoutWyczyść zapisane dane logowania
zanfia registerUtwórz nowe konto twórcy z terminala (kod wysyłany e-mailem)
zanfia auth statusPokaż tożsamość, źródło poświadczeń, termin ważności i docelowe środowisko
zanfia auth set-key <key>Zapisz klucz API jako poświadczenie
zanfia auth whoamiWorkspace i tożsamość stojące za bieżącym poświadczeniem

Produkty

KomendaZastosowanie
products list / products get <id>Przeglądaj produkty
products create / products update <id>Utwórz / edytuj
products publish <id> / products draft <id> / products archive <id>Cykl życia
products prices list <id> / products prices create <id>Zarządzanie cenami (z synchronizacją bramki płatności po stronie serwera)
products appointment get|set <id>Ustawienia rezerwacji
products after-purchase get|set <id>Ustawienia po zakupie
products images set <id>Zastąp zdjęcia produktu

Oferty (checkouty) i order bumpy

Oferta to checkout produktu; <cid> pochodzi z offers list.

KomendaZastosowanie
offers list [--product <pid>] / offers get <cid>Przeglądaj oferty wraz z cenami i dołączonymi bumpami
offers create --product <pid> [--free] [--name <n>]Nowa oferta (oferty darmowe nie mają cen)
offers update <cid> [--name] [--slug] [--title] [--description] [--success-url]Edytuj pola wyświetlania
offers publish <cid> / offers unpublish <cid>Aktywuj / wstrzymaj (płatne oferty wymagają podłączonej bramki płatności)
offers duplicate <cid> [--with-prices] / offers set-default <cid>Skopiuj; ustaw jako domyślny checkout
offers price add <cid> --type one_time|recurring|installments --amount <minor> --currency pln|usd|eur|gbp [--interval] [--trial-days] [--label] [--hidden] [--sale-ends-at] [--quantity-limit] [--compare-at] …Dodaj wariant ceny
offers price update <cid> <priceId> --operation activate|deactivate|hide|unhide|change-amount [--amount]Zmień cenę
offers price delete <cid> <priceId> [--remove]Archiwizuj (domyślnie) lub usuń całkowicie
offers price reorder <cid> --order id1,id2,…Kolejność wyświetlania — podaj wszystkie id cen
bumps list / bumps create --product <pid> --price <priceId> --name <n>Order bumpy (cena musi należeć do domyślnej oferty produktu)
bumps update <bumpId> / bumps delete <bumpId>Edytuj / usuń
bumps attach <cid> <bumpId> [--prices id,id] / bumps detach <cid> <bumpId>Pokaż bump w ofercie (bez --prices = wszystkie ceny)

Kursy

Wszystko adresujesz id produktu (z products list). Statusy: draft, public, hidden, locked; nowe moduły i lekcje zaczynają jako draft. Treść lekcji to Markdown, a aktualizacja zastępuje całe ciało treści — dla dłuższych tekstów używaj --content-file.

KomendaZastosowanie
courses get <pid>Pełna struktura modułów/lekcji ze statusami
courses lesson get <pid> <lid> [--content]Szczegóły lekcji; --content wypisuje sam Markdown
courses lesson add <pid> --module <mid> --title <t> [--type article|video|externalVideo|task|quiz] [--video-media <mediaId>]Nowa lekcja w statusie draft
courses lesson update <pid> <lid> [--title] [--description] [--status] [--content | --content-file]Edytuj lekcję
courses lesson set-video <pid> <lid> --video-media <mediaId>Podepnij przesłane wideo
courses lesson delete <pid> <lid>Trwałe — aby zamiast tego ukryć lekcję, ustaw --status hidden
courses module add <pid> --name <n> / courses module update <pid> <mid>Moduły
courses module delete <pid> <mid>Trwałe, kaskadowo usuwa wszystkie lekcje modułu
courses quiz list <pid> <lid>Pytania i ustawienia lekcji typu quiz
courses quiz add <pid> <lid> [--type single|multi|truefalse] [--question] [--options] [--correct] [--points] | [--json <file>]Dodaj pytanie
courses quiz update <pid> <lid> <qid> … / courses quiz delete <pid> <lid> <qid>Zastąp / usuń pytanie
courses quiz reorder <pid> <lid> --order id,id,…Podaj każde id pytania
courses quiz settings <pid> <lid> [--passing-score] [--max-attempts] [--time-limit] [--shuffle-questions on|off] [--require-pass on|off] …Ocenianie, liczba podejść, losowa kolejność, blokady postępu
courses publish <pid> --lessons id,id [--status public]Zbiorcza zmiana statusu lekcji
courses publish <pid> --module <mid>Opublikuj moduł i wszystkie jego lekcje
courses reorder modules <pid> --order id1,id2,…Ścisła permutacja — każde id modułu
courses reorder lessons <pid> --module <mid> --order id1,id2,…Ścisła permutacja — każde id lekcji w module

Biblioteka mediów

KomendaZastosowanie
media upload --file <path> [--name] [--folder]Prześlij plik; wypisuje id mediów i publiczny URL
media upload-video --file <path> [--title] [--wait]Prześlij wideo do lekcji; transkodowanie rusza po przesłaniu
media list [--folder <name>] / media get <id>Przeglądaj; get pokazuje uploadStatus
media delete <id> [--force]Usuń (--force, jeśli plik jest jeszcze gdzieś używany)
media folder list|create|delete <name>Foldery — usunięcie folderu tylko odpina pliki, nigdy ich nie kasuje

Wideo wymaga transkodowania

media upload-video bez --wait kończy się, gdy wideo wciąż się przetwarza. Odpytuj media get <id>, aż uploadStatus będzie mieć wartość ready, a następnie podepnij plik komendą courses lesson set-video.

Społeczności

Adresujesz id społeczności (z communities list). Działasz we własnym imieniu — dostęp do kanałów i uprawnienia moderacyjne są rozstrzygane per zapytanie. Posty i komentarze żyją w kanałach typu feed; treść to Markdown. Pisanie wymaga profilu członka w społeczności — także dla członków zespołu workspace'u.

KomendaZastosowanie
communities listTwoje społeczności (z id powiązanego produktu)
communities channels <cid>Kanały, które widzisz, wraz z Twoim poziomem dostępu
communities posts <cid> <chid> [--limit] [--cursor]Posty, od najnowszych
communities post get|create|update|delete …CRUD postów (--content / --content-file)
communities post pin|unpin <cid> <postId>Przypinanie postów
communities comments <cid> <postId>Komentarze, od najstarszych; odpowiedzi wskazują rodzica
communities comment create <cid> <postId> --content <md> [--reply-to <commentId>]Komentarz lub odpowiedź w wątku
communities comment update|delete <cid> <commentId>Edytuj / usuń
communities chat messages|send|edit|delete …Kanały czatu i wątki
communities support queue|mine|show|create|reply|status …Zgłoszenia do supportu
communities channel create <cid> --name <n> [--type feed|chat|link] [--group] [--readonly]Nowy kanał (--readonly = tryb ogłoszeń)
communities channel update|delete <cid> <chid>Edytuj / usuń kanał
communities group create|update|delete <cid> …Sekcje paska bocznego
communities move <cid> (--channel <chid> | --group <gid>) (--into-group <gid> | --to-root | --before <id> | --after <id>)Zmień kolejność / położenie w pasku bocznym

Strony

Własne hostowane strony HTML, serwowane w domenie Twojego sklepu. Statusy: draft, published.

KomendaZastosowanie
pages list / pages get <id>Przeglądaj (szczegóły zawierają ciało HTML)
pages create --slug <s> --title <t> (--file <path> | --html <h>) [--publish]Nowa strona, draft, chyba że podasz --publish
pages update <id> [--slug] [--title] [--file | --html]Edytuj
pages publish <id> / pages unpublish <id>Przełącz opublikowana ↔ draft
pages delete <id>Usuń stronę i jej HTML
pages set-main <id> / pages unset-mainUżyj opublikowanej strony jako strony głównej sklepu / wróć do siatki produktów

Klienci

KomendaZastosowanie
clients list / clients get <id>Przeglądaj klientów
clients addUtwórz wyłącznie kontakt — dostęp do produktu nadaje się osobno
clients update <id> / clients change-email <id> --email <e>Edytuj
clients grant <productId> --email <e> [--price <priceId>] [--until <date>] [--welcome-email]Nadaj dostęp do produktu (darmowy zapis pod istniejącą ceną, opcjonalnie ograniczony w czasie)
clients revoke <productId> --email <e>Odbierz dostęp — nigdy nie zwraca pieniędzy i odmawia przy aktywnych płatnych subskrypcjach
clients change-period <productId> …Zmień okres dostępu

Zamówienia, statystyki, rabaty

KomendaZastosowanie
orders list [--product] [--status] [--from/--to] [--search] [--limit/--cursor] / orders get <id>Historia zamówień
stats overview|sales|recurring|mrr-history|funnel|traffic|sessionsAnalityka workspace'u — zakres przez --period 7d lub --from/--to, dodatkowo --currency
stats product <id>Statystyki produktu
discounts list|create|update|archive|deleteZarządzanie rabatami

Czy ten artykuł był pomocny?

Powiązane artykuły

Coś się nie zgadza? Napisz do nas na support@zanfia.com.