Przejdź do głównej zawartości

Syrve App Zewnętrzne Menu

W Syrve Live API v2 zaimplementowaliśmy metody, które pozwalają na bardziej elastyczną pracę z zewnętrznym menu. Zaletą nowych metod jest to, że przy żądaniu menu, zewnętrzny system otrzyma aktualne ceny i dostępność dań w restauracji w momencie żądania, nie ma potrzeby ręcznego synchronizowania zewnętrznego menu Syrve App z cenami restauracji.

Metody:

/api/2/menu - lista zewnętrznych menu i kategorii cen dostępnych dla ApiLogin

/api/2/menu/by_id - metoda uzyskiwania zewnętrznego menu (id menu jest przekazywane w żądaniu)

Praca z zewnętrznym menu Syrve App przez Syrve Live API jest dostępna tylko dla użytkowników wersji chmurowej.

 

Zewnętrzne menu nie współpracują z aktualizacjami cen.

 

Aby pracować z Syrve Loyalty, nadal musisz używać zewnętrznego menu utworzonego w Syrve Instance. Wystarczy po prostu zduplikować pozycje z zewnętrznego menu Syrve App, dodając te same dania do Syrve Instance bez dodatkowych ustawień struktury menu.

Przypadki użycia

1. Restauracja chce ustawić inny skład dań w zewnętrznym menu dla różnych typów zamówień. Na przykład, niektóre dania nie mogą być dostarczane przez usługi kurierskie, ale muszą być dostępne w zewnętrznym menu do odbioru. Mogą również istnieć różne ceny dla odbioru i dostawy.

2. Restauracja ma osobną aplikację do zamówień dostaw i osobną aplikację do zamówień przy stoliku. Menu jest takie samo, ale ceny lub zestaw restauracji, z którymi aplikacje współpracują, mogą się różnić.

3. Różne ceny dań i różna dostępność dań w różnych restauracjach sieci. Na przykład, w "Restauracji 1" sałatka kosztuje 10 USD, w "Restauracji 2" - 15 USD, a w "Restauracji 3" danie zostało wycofane ze sprzedaży.

4. Restauracja chce umieścić na swojej stronie internetowej informacje o alergenach obecnych w posiłku.

5. Restauracja używa rozmiarów dań i chce wyświetlać informacje o kaloriach i wadze w zależności od rozmiaru dania.

6. Restauracja używa rozmiarów dań i chce, aby zdjęcia dań na stronie różniły się w zależności od rozmiaru.

7. Menu restauracji (zestaw dań, ceny) jest inne dla różnych zewnętrznych usług.

8. Restauracja chce ograniczyć zewnętrzną usługę przed współpracą z siecią restauracji i zapewnić dostęp tylko do niektórych restauracji w sieci.

Algorytm pracy

Konfigurowanie kont do pracy z API

Aby pracować z zewnętrznymi menu przez API, musisz je powiązać z kontem Syrve Live API.

  • Zaloguj się do swojego konta osobistego Syrve App - Syrve Live API

  • Wybierz "API Clients" - Dodaj:

  • Ustaw nazwę konta i opcjonalnie określ źródło zamówienia:

"Źródło zamówienia" jest przeznaczone zarówno do oznaczania zamówień przychodzących przez API, jak i do ograniczania widoczności zamówień.

Jeśli "Źródło zamówienia" nie jest określone, to przez API można uzyskać informacje o wszystkich zamówieniach restauracji.

Jeśli "Źródło zamówienia" jest określone, to zamówienia utworzone przez API będą oznaczone jako "Źródło", a dostęp do zamówień będzie ograniczony przez filtr.

  • Wybierz zewnętrzne menu z rozwijanej listy (można wybrać wiele opcji):
  • Wybierz wartość dla pola Źródło Ceny. Ceny w zewnętrznym menu mogą pochodzić:

- z zewnętrznego menu (ceny dań są podstawiane z zewnętrznego menu utworzonego w Syrve App.)

- z wybranej kategorii cen (ceny są pobierane z konkretnej restauracji dla danej kategorii cen, zewnętrzne menu Syrve App określa tylko strukturę menu).

Jeśli w "Źródło ceny" wybrano "Kategoria cen", to z rozwijanej listy wybierz jedną lub kilka kategorii cen, z którymi będzie pracować zewnętrzny system:

  • Zapisz zmiany.

Praca z API

Aby uzyskać listę zewnętrznych menu, z którymi może pracować zewnętrzny system, musisz zażądać wszystkich dostępnych dla konta zewnętrznych menu, w przyszłości, aby uzyskać informacje o konkretnym menu, zostanie użyte pole id z odpowiedzi na żądanie. W tym celu użyj /api/2/menu.

Body jest puste, struktura wyjściowa to:

{
"externalMenus": [
{"id": 42, "name": "Menu 1"},
{"id": 43, "name": "Menu 2"}
],
"priceCategories": [ // null, jeśli w UI wybrałeś zewnętrzne menu jako Źródło Zamówienia
{"id": guid1, "name": "PC 1"},
{"id": guid2, "name": "PC 2"}
],
}

Następnie, używając uzyskanego ID zewnętrznego menu, zażądaj pozycji dla niego przez /api/2/menu/by_id z body:

{
"externalMenuId": 73,
"organizationIds": ["c0a959b8-7ba0-4763-a297-eda830672cca"],
"priceCategoryId": guid lub null
}


 

Null w tej metodzie można wysłać tylko, jeśli pobieranie cen jest skonfigurowane z zewnętrznego menu. W przypadku uzyskiwania cen z kategorii cen, konieczne jest wskazanie kategorii cen, nawet jeśli jest tylko jedna (bazowa).

W odpowiedzi przychodzi struktura zewnętrznego menu:

[+] Pokaż więcej
{
"i<span>i</span>erSchemaName": null

}

]

}

]
}

Uwagi

  • Przy żądaniu zewnętrznego menu dla kilku organizacji, informacje o cenach żądanych organizacji są zwracane w bloku cen. Jeśli cena = 0, to to danie jest dostępne do sprzedaży po zerowej cenie, jeśli cena = null, to to danie jest zabronione do sprzedaży w tej organizacji.

  • Modyfikatory mają minimalne i maksymalne wartości dla grupy i dla każdego modyfikatora z osobna. Jeśli minQuality > 0, to ta grupa modyfikatorów jest obowiązkowa. maxQuality odpowiada za maksymalną możliwą liczbę modyfikatorów dodanych do dania. Jeśli parametr childModifiersHaveMinMaxRestrictions = false, to ograniczenia liczby modyfikatorów są pobierane z wartości grupy modyfikatorów. Jeśli childModifiersHaveMinMaxRestrictions = true, to ograniczenia liczby modyfikatorów z każdego modyfikatora (elementów) są pobierane.

  • Jeśli itemGroupId = null, to modyfikatory w tej grupie są uważane za proste, pojedyncze.

  • Parametr size Code pokazuje nazwę rozmiaru dla kuchni.

  • Jeśli parametr itemSize zawiera jeden element, a wewnątrz tego elementu sizeId i sizeName = null, to to danie nie ma rozmiaru. Jeśli jest więcej niż 1 element, to to danie ma rozmiary, pola sizeName i sizeId pokazują nazwę i identyfikator rozmiaru.