Внимание! Вышла версия API 4.8. Подробная информация приведена в истории изменений. Публикации, связанные с COVID-19, по-прежнему временно разрешены для торговых сетей.

Обновление блюд в меню

Благодаря объектам FoodMenu, указанным в данных о компании, клиенты могут ознакомиться с блюдами в меню вашего ресторана.

Чтобы обновить блюда, перечисленные в данных о компании, сначала необходимо вызвать accounts.locations.getFoodMenus. Ниже приведен пример запроса:

GET
https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/foodMenus

Ответ в формате JSON содержит текущий объект FoodMenus, используемый в данных о компании. Обновите объект FoodMenus и вызовите accounts.locations.updateFoodMenus. Подробная информация об этом доступна в разделе Как загрузить или заменить блюдо в меню.

Используйте Google My Business API, чтобы обновить следующие поля:

Поля
Название

Обязательно

Название блюда, например Hamburger.

Цена

Обязательно

Цена блюда.

Валюта цены

Обязательно

Валюта, в которой указана цена блюда, например U.S. dollar.

Описание блюда

Необязательно

Краткое описание блюда.

Разделы меню

Необязательно

Блюда, распределенные по группам, например Breakfast или Hamburger-Fries combo..

Данные о пищевой ценности

Необязательно, но рекомендовано

Сведения о питательности блюда, например Total Fat=3g.

Число человек, на которое рассчитано блюдо

Необязательно

Количество человек, на которое рассчитано блюдо.

Размер порции

Необязательно

Размер или объем порции. Например, 8-piece of nuggets.

Способы приготовления

Необязательно

Различные способы приготовления блюд.

Национальные кухни

Необязательно, но рекомендовано

Конкретная кухня, к которой принадлежит блюдо.

Острота и пряность блюда

Необязательно

Острота и пряность блюда, например none, mild, medium и hot.

Наличие аллергенов

Необязательно, но рекомендовано

Наличие в блюде таких продуктов-аллергенов, как dairy, egg, fish, peanut, shellfish, soy, tree nut и wheat.

Диетические ограничения

Необязательно, но рекомендовано

Диетические ограничения блюда, например halal, kosher, organic, vegan, vegetarian и gluten free.

Варианты блюда

Необязательно

Варианты блюда на выбор, например тайская лапша с курицей (chicken) или тайская лапша для вегетарианцев (veggie).

Фотография блюда

Необязательно

Фотография конкретного блюда.

Как загрузить или заменить блюдо в меню

Возможность загружать блюда доступна не для всех адресов.

Чтобы узнать, можете ли вы это сделать для своего адреса, вызовите accounts.locations.get и проверьте статус locationState. Если для canHaveFoodMenus указано значение true, вы можете загружать блюда.

Если для вашего адреса поддерживается эта возможность, отправьте вызов PATCH для accounts.locations.updateFoodMenus.

Ниже приведен пример запроса со всеми необязательными полями.

PATCH
https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/foodMenus

{
   "menus": [
       {
           "cuisines": [
                "AMERICAN"
            ],
           "labels": [
               {
                   "displayName": "Menu",
                   "description": "Main Menu of my Restaurant",
                   "languageCode": "en"
               }
           ],
           "sections": [
               {
                   "labels": {
                       "displayName": "Main Dishes",
                       "languageCode": "en"
                   },
                   "items": [
                       {
                           "labels": {
                               "displayName": "Dish1",
                               "description": "Dish1 - our original dish!",
                               "languageCode": "en"
                           },
                           "attributes": {
                               "price": {
                                   "currencyCode": "USD",
                                   "units": 20
                               },
                               "dietaryRestriction": "ORGANIC",
                               "nutritionFacts": {
                                   "calories": {
                                       "lowerAmount": 400,
                                       "upperAmount": 500,
                                       "unit": "CALORIE"
                                   },
                                   "totalFat": {
                                       "lowerAmount": 95,
                                       "upperAmount": 110,
                                       "unit": "GRAM"
                                   },
                                   "cholesterol": {
                                       "lowerAmount": 100,
                                       "upperAmount": 120,
                                       "unit": "MILLIGRAM"
                                   },
                                   "sodium": {
                                       "lowerAmount": 30,
                                       "upperAmount": 45,
                                       "unit": "MILLIGRAM"
                                   },
                                   "totalCarbohydrate": {
                                       "lowerAmount": 78,
                                       "upperAmount": 92,
                                       "unit": "MILLIGRAM"
                                   },
                                   "protein": {
                                       "lowerAmount": 25,
                                       "upperAmount": 35,
                                       "unit":"MILLIGRAM"
                                   }
                               },
                               "ingredients": [
                                   {
                                       "labels": [
                                           {
                                               "displayName": "Ingredient 1",
                                               "description": "Description for ingredient 1",
                                               "languageCode": "en"
                                           },
                                           {
                                               "displayName": "Ingredient 2",
                                               "languageCode": "en"
                                           }
                                       ]
                                   }
                               ],
                               "servesNumPeople": 1,
                               "preparationMethods": [
                                   "BAKED",
                                   "BOILED",
                                   "FRIED"
                               ],
                               "portionSize": {
                                   "quantity": 2,
                                   "unit": {
                                       "displayName": "Pieces",
                                       "languageCode": "en"
                                   }
                               },
                               "mediaKeys": [
                                   "AF1QipP_VOlJzXs2aOJ31234565cb2KPrvN"
                               ]
                           },
                           "options": [
                               {
                                   "labels":
                                       {
                                           "displayName": "Dish1 - spicy",
                                           "description": "Dish1 - a spicy version of our dish!",
                                           "languageCode": "en"
                                       },
                                   "attributes": {
                                       "price": {
                                           "currencyCode": "USD",
                                           "units": 20
                                       }
                                   }
                               },
                               {
                                   "labels":
                                       {
                                           "displayName": "Dish1 - mild",
                                           "description": "Dish1 - a mild spiciness version of our dish!",
                                           "languageCode": "en"
                                       },
                                   "attributes": {
                                       "price": {
                                           "currencyCode": "USD",
                                           "units": 20
                                       }
                                   }
                               }
                           ]
                       }
                   ]
               },
               {
                   "labels": {
                       "displayName": "Desserts",
                       "languageCode": "en"
                   },
                   "items": [
                       {
                           "labels": {
                               "displayName": "Ice Cream",
                               "description": "2 scoops of delicious ice cream!",
                               "languageCode": "en"
                           },
                           "attributes": {
                               "price": {
                                   "currencyCode": "USD",
                                   "units": 20
                               }
                           }
                       }
                   ]
               }
           ]
       }
   ]
}

Как связать фотографию с блюдом

Чтобы связать изображение с блюдом, сначала необходимо загрузить фотографию для адреса, указанного в Google Мой бизнес.

Чтобы извлечь фотографии, отправьте вызов accounts.locations.media.list. Ниже приведен пример запроса:

GET
https://mybusiness.googleapis.com/v4/accounts/{accountId}/locations/{locationId}/media/

В ответе содержится MediaKey для каждого изображения, загруженного в данные о компании, как показано в примере ниже:

{
 "mediaItems": [
   {
     "name": "accounts/{accountId}/locations/{locationId}/media/{mediaKey}",
     "mediaFormat": "PHOTO",
     "locationAssociation": {
       "category": "FOOD_AND_MENU"
     },
 …
}

Чтобы связать фотографию с блюдом, получите ее mediaKey и укажите этот параметр в объекте FoodMenuItemAttributes. Можно использовать несколько mediaKeys. Подробная информация об этом доступна в разделе Как загрузить или заменить блюдо в меню.