Zum Hauptinhalt springen

Wprowadzenie

Wprowadzenie

Dokumentacja opisuje architekturę aplikacji do zarządzania sprzedażą wielokanałową (multi-marketplace).

System integruje się z różnymi platformami sprzedażowymi (np. Amazon, Mirakl, Kaufland), agreguje dane produktów i zamówień oraz umożliwia ich dalsze przetwarzanie (np. wysyłka, fakturowanie, eksport do Afterbuy).


Główne założenia

1. Multi-platform / Multi-marketplace

System rozróżnia:

  • Platform – dostawca API (np. Amazon, Mirakl)
  • Marketplace – konkretny rynek (np. Amazon DE)

Pozwala to obsługiwać:

  • wiele marketplace w ramach jednej platformy
  • różne modele API (single vs multi marketplace)

2. Centralny model danych

Aplikacja posiada własny, ustandaryzowany model danych:

  • Product Model – zarządzanie katalogiem produktów
  • Order Model – obsługa zamówień

➡️ Dane z platform są mapowane do jednego spójnego formatu


3. Single Source of Truth

  • Product jest źródłem prawdy dla danych produktowych
  • MarketplaceProduct jest źródłem prawdy dla stanu produktu na marketplace

4. Pipeline przetwarzania danych

Dane przechodzą przez jasno określone etapy:

External API → Normalizacja → Model lokalny → Pipeline → Synchronizacja


5. Asynchroniczność

System opiera się na:

  • jobach (kolejka)
  • schedulerze
  • przetwarzaniu zadań w tle

➡️ brak ciężkich operacji synchronicznych


Kluczowe komponenty

Integracje (Platform Services)

Każda platforma posiada własną implementację:

  • pobieranie produktów
  • pobieranie zamówień
  • synchronizacja danych

Modele domenowe

  • Product Model
  • Order Model
  • Marketplace / Platform

Pipeline

  • przetwarzanie cen
  • budowanie payloadów
  • synchronizacja z marketplace

Kontekst runtime

  • MarketplaceContext – aktualny marketplace w trakcie operacji
  • ActionContext – w momencie wykonywania Action

Przepływ danych (high-level)

Produkty

Product → MarketplaceProduct → Marketplace API


Zamówienia

Marketplace API → Order → Local App → Afterbuy


Cel architektury

  • skalowalność (wiele marketplace)
  • elastyczność (różne API)
  • spójność danych
  • łatwa rozbudowa o nowe integracje