Oferty i Listingi¶
Wystawianie produktów na 7 platformach z poziomu jednego widoku. Źródłem produktów jest BaseLinker (TAGI rodzin), publikacja idzie przez API każdej platformy.
Co zostało dostarczone¶
- 7 platform: Allegro, eBay, Amazon, Erli, Joom, Temu, WooCommerce.
- Pobieranie katalogu z BaseLinker — pełny katalog (~2 100 produktów) z tagami rodzin.
- Grupowanie wariantów (TASK-115, TASK-130) — produkty w jednej rodzinie wystawiane razem na platformach które wspierają warianty (Allegro, Amazon, Erli, WooCommerce, Temu).
- Uniwersalny moduł cenowy (TASK-123) — wybór
price_idz Baselinker + mnożnik per-konto + historia. - Snapshot/cache (TASK-131) — zapamiętany stan ofert per platforma, odświeżany na żądanie i schedulerem.
- Per-row "Refresh now" + scheduled background pull (TASK-132).
- Auto-retry przy
PARAMETER_MISMATCHdla Allegro (TASK-220). - Allegro: per-account afterSalesServices + cenniki wysyłki indeksowane kartonami (TASK-224).
Jak korzystać¶
- Otwórz OFERTY w bocznym menu.
- Wybierz platformę (zakładka u góry).
- Wybierz tag rodziny (lewa kolumna).
- W widoku zobaczysz: ile ofert w rodzinie, ile wystawionych, ile niewystawionych.
- Kliknij
Wystawprzy konkretnej rodzinie aby uruchomić scenariusz wystawienia.
Scenariusz publikacji oblicza cenę według reguły konta, dobiera atrybuty platformy i wysyła ofertę. Postęp i błędy widoczne w /logs.
Znane ograniczenia i naprawy w toku¶
Zgłoszenie #8 — Reguła (cennik1 + cennik2) × współczynnik¶
Status: 🟢 W realizacji (TASK-269).
Aktualnie reguła obsługuje pojedynczy price_id × mnożnik. Wymóg: (price_id_1 + price_id_2) × mnożnik — by oddzielić koszt produktu i koszt wysyłki kartonu (różne wysyłki na różnych platformach). Implementacja w finałowym sprincie, na każdym koncie każdej platformy.
Zgłoszenie #19 — Baselinker 80 % / Subiekt 30 %¶
Status:
- Baselinker: ✅ pełna integracja zrealizowana — pobieranie katalogu, synchronizacja TAG-ami rodzin, wystawianie z dashboardu, snapshot/cache. Dotyczy wszystkich 7 platform.
- Subiekt: 🟢 dostarczone w obecnej wersji — Posejdon (.NET 8, Sfera SDK) synchronizuje rozchody Subiekta do BaseLinker (extra fields + CSV przez IIS). Działa na serwerze Windows właściciela; kod źródłowy w
aio/posejdonna Forgejo. Pełen opis i granica wsparcia: Sklepy — Posejdon. Rewrite pod Subiekt Nexo Pro v57+ pozostaje odroczony zgodnie z ofertą (str. 4), do migracji właściciela na nowy framework Nexo Pro.
Zgłoszenie #20 — Amazon¶
Status: 🟠 Częściowe.
Zrealizowane:
- Amazon SP-API — autoryzacja, pobieranie ofert, wystawianie produktów (TASK-080, TASK-249).
- Amazon.PL — w pełni podłączony i przetestowany.
Poza zakresem pierwotnej oferty:
- Każdy rynek Amazon (DE, FR, IT, ES, UK, NL, …) wymaga osobnego konta sprzedawcy po stronie Amazona — to nie jest decyzja techniczna, lecz polityka platformy.
- Aktualnie podpięte konto Amazon obsługuje rynek polski. Dodanie kolejnych rynków wymaga: a) założenia konta sprzedawcy w danym kraju, b) nowej autoryzacji OAuth w panelu, c) konfiguracji per-rynek (waluta, podatek, polityki wysyłki).
To samo dotyczy otrzymywania wiadomości z platformy Amazon — wsparcie jest, ale per-rynek osobno.
Zgłoszenie #28 — Widoczność wystawionych produktów¶
Status: 🟢 W realizacji (TASK-270).
Aktualny przepływ wymaga kolejności: platforma → rodzina → widok ofert. Zmiana: dodanie filtra "Wszystkie produkty" (jako pseudo-rodzina) który wyświetla wszystkie wystawione na danej platformie produkty bez konieczności wyboru rodziny. Odfiltrowane zostaną produkty bez TAG-u rodziny (ok. 602 starych rekordów BL = śmieci). Filtr trafi też do Katalogu produktów.
Architektura (techniczna)¶
- Pobieranie BL:
windmill/f/baselinker/sync_by_tag.ts - Listowanie per-platforma:
windmill/f/<mp>/list_all_products.flow/ - Snapshot ofert: tabela
marketplace_offers(Convex) - Pricing:
dashboard/src/lib/marketplace/pricing.ts+convex/lib/prices.ts - Schedulery odświeżania: per-konto cron w Windmill
Pełna dokumentacja techniczna: windmill/ARCHITECTURE.md (rozwijana w ramach TASK-262.22).