Ordering Stack od początku był tworzony jako platforma umożliwiająca łatwą integrację z praktycznie każdym systemem POS/EPOS (włączając system Oracle Micros dla sieci restaucji). System posiada elastyczny model produktu, który jest w stanie obsłużyć większość złożonych produktów takich jak zestawy, pizze, pizze pół na pół, półburgery z wieloma dodatkami itp. Model idealnie nadaję się do zamapowania na modele produktu z systemu POS z jakim chcemy się zintegrować. Ten dokument opisuje jak taka integracja może wyglądać oraz w jaki sposób przepływają dane opisujace menu, detale produktów, ceny i zamówienia. Mechanizmy integracji dla innych obszarów takich jak promocje czy systemy lojalnościowe zostaną opisane w innym dokumencie.
W typowym przypadku integracji mamy 3 obszary wymiany danych:
Naszym zdaniem nalepiej stworzyć do tego dwa niezależne komponenty: Menu Importer and Local Agent.
Poniższy diagram prezentuje przepływ danych:
Moduł Importer Menu jest odpowiedzialny za pobieranie definicji całego menu i przekazaniu jej do platformy Ordering Stack. Moduł ten powinien być uruchomiony w lokalizacji mającej dostęp do API (lub bazy danych) z których można pobrac dane produktów, ich cen i innych właściwosci. Wszystkie pobrane dane są transformowane do dokumentów JSON i wysyłane do Ordering Stack Menu API. Moduł importera jest uruchamiany wg zaplanowanego harmonogramu lub na żądanie. Wszystkie aktywności są rejestrowane na potrzeby na wypadek konieczności sprawdzenia jaki był status importu.
Gdy moduł importu menu zakończy swoją prace, jest możliwość aby wprowadzić dodatkowe informacje o produkcie w sposób manualny. Jest to jakby dodatkowa warstwa opisu produktu, nadpisująca dane pobrane ze źródłowego systemu POS. Mogą być w niej dodatkowe informacje, których brakuje w POS np. zdjęcia lub filmy prezentujące produkt, informacja o alergenach czy przypisanie produktu do kategorii. Co jest istotne, wykonanie kolejnego importu danych z POS nie nadpisuje tych dodatkowych, wprowadzonych manualnie informacji o produktach.
W poniższym opisie zakładamy scenariusz, w którym restauracja korzysta z zaintalowanego lokalnie systemu POS. Platforma Ordering Stack korzysta z POS API aby przekazać do POS nowo dodane zamówienie. Wymaga to zainstalowania lokalnego modułu (Local Agent) na komputerze w lokalnej sieci restauracji, mającego dostęp do POS API. Local Agent nawiązuje połączenie do serwerów Ordering Stack.
Ordering Stack Local Agent regularnie odpytuje o status dodanych wcześniej zamówień. Jeśli któreś z zamówień zmieniło status, Local Agent wysyła nowy status do serwera Ordering Stack.
Ordering Stack może współdziałać z restauracjami, w których zainstalowano lokalnie system (Micros RES 3700. Działa to dokładnie tak jak jest opisane wyżej w tekście. Jeżeli sieć restauracji korzysta z Micros Enterprise Manager (EM), wówczas moduł Menu Importer musi być zainstalowany tak, aby miał dostęp (tylko do odczytu) do bazy danych EM. Jeżeli EM nie jest wykorzystywany, to rolę źródła danych menu pełni jedna z baz danych w wybranej restauracji. W przypadku Micros 3700 użytkownik musi dodatkowo manualnie “wzbogacić” zaimportowane dane o produktach o dodatkowe atrybuty takie jak obrazki, opisy, tagi i przypisać je do odpowiednich kategorii menu. Te dane nie będą nadpisane przy kolejnych importach. Wgrywanie zamówień z centralnego Ordering Stack do lokalnej instancji Micros 3700 wymaga zainstalowanego Oracle Micros Transacional Services dla Micros (Res POS API) i modułu Ordering Stack Local Agent zainstalowanego w każdej restauracji. Local Agent nawiązuje połączenie z lokalnej sieci restauracji do serwerów Ordering Stack i odbiera wszystkie nowe zamówienia a następnie poprzez Res POS API dodaje je do lokalnej instancji Micros. Jeżeli lokalny status zamówienia zmienił się, Local Agent wysyłą ten nowy status do centrali.
Zaprezentowana konfiguracja pozwala na prace ze wszystkimi źródłami zamówień w tym orderingowa aplikacja webowa, mobilna czy kiosk. Zamówienie z każdego z tych kanałów jest wgrywane do lokalnego POSa w restauracji, tak samo jak gdyby było dodane na samym terminalu POS. Wszystko to z zapewnieniem spójności menu oraz zgodności cen z danymi ustawionymi w systemie POS restauracji. Integracja Ordering Stack z Micros jest pokazana na poniższym diagramie: