Elektroniczne kanały sprzedaży¶
Powiązane artykuły¶
Obiekty w projekcie “ECOM”:¶
ECOMADAPTERCOMMON – abstrakcyjny adapter, który posiada prototypy metod. Po tym adapterze dziedziczy każdy kolejny adapter,
ECOMADAPTERIAI – adapter generuje zapytania, które przesyłą do drivera oraz obsługuje odpowiedzi z API. Obiekt dziedziczy po ECOMADAPTERCOMMON,
ECOMSTDMETHODS – obiekt z metodami do synchronizacji, strukturami klas pośrednich, metody standardowe do naliczania danych do klas pośrednich, naliczania statusu zamówień, wprowadzania i aktualizowania danych do bazy,
ECOMACCOUNTS – dane kont użytkowników kanałów sprzedaży,
ECOMCHANNELCONVERT – słownik konwersji,
ECOMCHANNELS – kanały sprzedaży,
ECOMCHANNELSTATES – statusy zamówień,
ECOMCHANNELSTOCK – magazyny wirtualne,
ECOMINVENTORIES – towary,
ECOMINVENTORYPRICES – ceny towarów,
ECOMINVENTORYSTOCKS – stany magazynowe,
ECOMORDERS – zamówienia,
ECOMCHECKORDERS – weryfikacja spójności zamówień,
ECOMCHECKPRICES – weryfikacja cen,
ECOMCHECKSTOCKS – weryfikacja stanów magazynowych,
ECOMCHANNELSDASHBOARD – dashboard wyświetlający widgety odnośnie statystyk kanałów sprzedaży,
ECOMCHANNELSWIDGET – widgety z danymi wybranego kanału sprzedaży,
GETALLECOMCHANNELSSTATS – widgety z danymi na temat wszystkich kanałów sprzedaży,
GLOBALACTIONS – akcje, które widoczne są na wstążce.
Budowa drivera dla nowej platformy sprzedaży¶
Driver dla witryny kanału sprzedaży to plugin Neosa. Driver zawiera:
- klasy z informacjami, które będą wysyłane na witrynę np. dane wysyłanych towarów, dane do odfiltrowania jakie zamówienia powinny zostać pobrane z witryny itp. Klasy mogą być generowane automatycznie np. na podstawie dostarczonego przez wystawiającego API WSDLa lub napisane ręcznie np. przy komunikacji z bramką RESTową,
- metody do przesyłania danych zawartych w ww. klasach. Każda metoda otrzymuje wypełnioną danymi klasę np. klasę zawierającą listę towarów do wysłania na stronę, wywołuje odpowiednią metodę z API wystawionego przez właściciela witryny i zwraca odpowiedź otrzymaną z API.
Budowa adaptera dla nowej platformy sprzedaży¶
Każdy adapter do obsługi nowej platformy dziedziczy po adapterze standardowym, czyli ECOMADAPTERCOMMON. W nowym adapterze nadpisujemy metody przygotowane w adapterze standardowym. Handlery pochodzące z ECOMADAPTERCOMMON wywołują metody zaczynających się od „Do” (np. DoExportInventory), które przygotowują zapytania do bramki. Następnie wywołują napisaną specjalnie dla nowego adaptera komendę, której handler dostaje przygotowane zapytanie, pobiera dane logowania do bramki z bazy danych i wysyła wszystko do drivera. Driver wykona komunikację z API i zwróci odpowiedź. Po otrzymaniu odpowiedzi z bramki wywołana zostaje kolejna komenda, której handler przetwarza otrzymaną odpowiedź. Jeśli jest to wymagane wywołuje metodę, która zapisuje odpowiedź do struktur pośrednich (które znajdują się w ECOMSTDMETHODS) i mapuje dane tak, aby można było wprowadzić je do bazy danych Teneum.
Procesu importu zamówień¶
W przypadku, gdy nie możemy skorzystać z obiektu standardowego z metodami synchronizacji (ECOMSTDMETHODS) należy utworzyć nowy obiekt, który dziedziczy po ECOMSTDMETHODS. Następnie nadpisać strukturę danych zamówień (EcomOrderInfo). Od tej struktury zależy jakie dane trafią do bazy Teneum.
Każdy kanał sprzedaży ma ustawiony w konfiguracji obiekt z metodami do synchronizacji z którego korzysta.
Do importu zamówień używana jest komenda „ImportOrdersRequestCommand”. Przyjmuje ona opcje pobierania zamówień „importMode” (dostępne opcje: wszystkie, o podanym ID zamówienia, od ostatniej aktualizacji, wybrane, z zakresu dat). ImportMode jest typem wyliczeniowym, jeśli chcielibyśmy dodać nową opcję pobrania zamówień to tam trzeba ją uwzględnić.
Handler i komenda „ImportOrdersRequestCommand” zaimplementowane są w adapterze standardowym (ECOMADAPTERCOMMON). Handler tej komendy wywołuje metodę „DoImportOrdersReqest”, która jest nadpisana w adapterze przeznaczonym dla wybranego kanału sprzedaży (w tym przypadku ECOMADAPTERIAI).
Metoda „DoImportOrdersReqest” przygotowuje zapytanie do API w zależności od wybranej opcji pobrania zamówienia, a następnie wywołuje komendę „GetOrdersRequestCommand”. Handler tej komendy wysyła dane do drivera, który wykonuje komunikację z API i zwraca odpowiedź do Neosa. Następnie wywoływana jest kolejna komenda „GetOrdersResponseCommand”, której handler dzieli otrzymaną listę zamówień na pojedyncze zamówienia. Każde z nich wpisuje do wcześniej zaimplementowanej struktury „EcomOrderInfo”, a następnie dla każdego zamówienia wysyła komendę „ImportOrderCommand”, której handler wykona import pojedynczego zamówienia.
Metoda „IAIOrderToEcomOrderInfo” przypisuje otrzymane dane z API do zmiennych zdefiniowanych w strukturze „EcomOrderInfo”.
Metoda „ProcessImportOrder” dodaje lub aktualizuje dane zamówienia do bazy danych Teneum.
Proces szykowania danych o towarze¶
Każdy kanał sprzedaży w konfiguracji ma ustawione atrybuty towaru, które eksportowane są podczas pierwszej wysyłki towaru oraz podczas aktualizacji (opisane w sekcji „konfiguracja kanału sprzedaży w aplikacji”). Lista atrybutów generowana jest z struktury danych „EcomInventoryInfo”.
W przypadku, gdy chcemy zmienić atrybuty wysyłane na witrynę należy utworzyć nowy obiekt z metodami do synchronizacji, który dziedziczy po „ECOMSTDMETHODS”. Nadpisać strukturę „EcomInventoryInfo”, w której zostaną zaimplementowane nowe atrybuty. Nadpisać metody: „GetProductForInventoryInfo”, „GetUnitsForInventoryInfo”, „GetImagesForInventoryInfo” tak, aby obsługiwały nowe atrybuty.
Stworzyć nowy adapter dla kanału sprzedaży i nadpisać metodę „DoExportInventory”. W tej metodzie generowane jest zapytanie, które później przekazane jest do drivera.
W konfiguracji kanału sprzedaży ustawić obiekt z metodami do synchronizacji.
Proces generowania informacji o statusie zamówienia¶
Do wyliczenia statusu służy obiekt ECOMCHANNELSTATES, obiekt powstał na podstawie tabeli o takiej samej nazwie.
CalcOrderStateInChannel - metoda do wyliczania zmiany statusu na podstawie NAGZAMQUERY,
CheckOrderStateUpdate - metoda sprawdza czy status zamówienia jest aktualny uruchamiając metodę wyliczania sumy kontrolnej statusu dla zamówienia. Jeśli jest nieaktualny to zaznacza, że status zamówienia w kanale sprzedaży jest nieaktualny,
GetOrderStateCheckSum - metoda serializuje dane statusu zamówienia do pliku JSON i wylicza string z ich sumą kontrolną za pomocą algorytmu MD5.
W obiekcie z metodami do synchronizacji „ECOMSTDMETHODS” znajduje się metoda „GetOrderStatusInfo”, która zwraca klasę „EcomOrderStatusInfo” zawierającą informacje o aktualnym statusie zamówienia wyliczone na podstawie przekazanych danych o zamówieniu lub na podstawie danych z bazy.