Mettre à jour les menus

Lorsque vous ajoutez des menus à votre fiche, les clients peuvent découvrir les choix disponibles dans votre restaurant, et obtenir des informations supplémentaires sur les boissons et plats proposés.

Pour mettre à jour les menus d'une fiche, commencez par appeler accounts.locations.getFoodMenus. Voici un exemple de requête :

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

La réponse contient une représentation JSON de l'objet FoodMenus actuel de la fiche. Modifiez l'objet FoodMenus selon vos besoins et appelez accounts.locations.updateFoodMenus. Pour en savoir plus, consultez Mettre en ligne ou remplacer des menus.

Vous pouvez utiliser l'API Google My Business pour modifier les champs suivants :

Champs
Nom

Obligatoire

Nom du plat (par exemple, Hamburger)

Prix

Obligatoire

Prix du plat

Devise du prix

Obligatoire

Devise du prix du plat (par exemple, U.S. dollar)

Description du plat

Facultatif

Brève description du plat

Sections de menu

Facultatif

Groupes logiques de plats (par exemple, Breakfast ou Hamburger-Fries combo.)

Valeurs nutritionnelles

Facultatif (recommandé)

Valeurs nutritionnelles (Total Fat=3g, par exemple).

Nombre de parts

Facultatif

Nombre de personnes pouvant consommer le plat

Taille de la portion

Facultatif

Mesure quantitative du plat (8-piece of nuggets, par exemple)

Méthodes de préparation

Facultatif

Méthodes spécifiques selon lesquelles le plat peut être préparé

Types de cuisine

Facultatif (recommandé)

Type de cuisine spécifique du plat

Caractère épicé

Facultatif

Caractère épicé du plat (par exemple, none, mild, medium ou hot)

Allergènes

Facultatif (recommandé)

Allergènes alimentaires dans le plat (par exemple, dairy, egg, fish, peanut, shellfish, soy, tree nut et wheat)

Régime alimentaire

Facultatif (recommandé)

Restrictions alimentaires du plat (par exemple, halal, kosher, organic, vegan, vegetarian et gluten free)

Options

Facultatif

Options proposées pour un plat spécifique (par exemple, "pad thai chicken" et "pad thai veggie")

Photo du plat

Facultatif

Photo du plat

Mettre en ligne ou remplacer des menus

Les établissements ne peuvent pas tous mettre des menus en ligne.

Pour déterminer si un établissement est éligible, appelez locations.get afin de vérifier les Metadata. Si canHaveFoodMenus est défini sur true, vous pouvez mettre des menus en ligne.

Si votre établissement est éligible, effectuez un appel PATCH à accounts.locations.updateFoodMenus.

Voici un exemple de requête qui comprend tous les champs facultatifs :

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
                               }
                           }
                       }
                   ]
               }
           ]
       }
   ]
}

Associer des photos à un plat

Pour associer une photo à un plat, vous devez d'abord mettre en ligne la photo sur la fiche de votre établissement.

Pour récupérer les photos, appelez accounts.locations.media.list. Voici un exemple de requête :

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

La réponse contient la MediaKey de chaque image de la fiche, comme dans l'exemple suivant :

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

Pour associer une photo à un plat, récupérez la mediaKey de la photo et fournissez-la dans l'objet FoodMenuItemAttributes. Vous pouvez fournir plusieurs mediaKeys. Pour en savoir plus, consultez Mettre en ligne ou remplacer des menus.