Buscar na documentação
ctrl+4K
Módulos
Authentication
Merchant
Catalog
Order
Events
Logistics
Shipping
Review
Financial
Soluções

Utilizando a API

O primeiro passo nas APIs de catálogo é a listagem de catálogos, através da API GET /merchants/{merchantId}/catalogs. Atualmente possuímos os catálogos DEFAULT e INDOOR, indicando que esse catálogo é de EntregaRequisição:
curl --location --request GET 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/6b487a27-c4fc-4f26-b05e-3967c2331882/catalogs' \
--header 'Authorization: Bearer TOKEN
Resposta
[
  {
    "catalogId": "10e0fbbe-7279-4ee3-9a2f-caf1f93f7b8e",
    "context": ["DEFAULT"],
    "status": "AVAILABLE",
    "modifiedAt": 1597350642.71608
  }
]
Com o id do catálogo em mãos, é possível listar todas as categorias e itens de um catálogo através da API GET /merchants/{merchantId}/catalogs/{catalogId}/categories.Requisição:
curl --location --request GET 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/6b487a27-c4fc-4f26-b05e-3967c2331882/catalogs/10e0fbbe-7279-4ee3-9a2f-caf1f93f7b8e/categories?include_items=true \
--header 'Authorization: Bearer TOKEN
Resposta:
[]
Como ainda não adicionamos nada no nosso catálogo, ele voltará uma lista vazia! Seguindo os próximos passos você aprenderá como montar seu catálogoAqui temos um exemplo do retorno desse endpoint com um item já criado
[
  {
    "id": "a8533d43-aec8-467c-adf6-8a24791829a0",
    "name": "Lanches",
    "status": "AVAILABLE",
    "sequence": 0,
    "index": 0,
    "template": "DEFAULT",
    "items": [
      {
        "id": "16ae5fc9-7e34-4623-8a0c-722d12fd49e9",
        "name": "X-Burguer",
        "description": "Pão, carne, queijo e salada",
        "externalCode": "xburguer_wl",
        "status": "AVAILABLE",
        "sequence": 0,
        "index": 0,
        "productId": "fdb50f52-7b62-46f7-a574-f3bc00c3f673",
        "imagePath": "",
        "price": {
          "value": 10,
          "originalValue": 15
        },
        "shifts": [
          {
            "startTime": "00:00",
            "endTime": "20:59",
            "monday": true,
            "tuesday": true,
            "wednesday": true,
            "thursday": true,
            "friday": true,
            "saturday": true,
            "sunday": true
          }
        ],
        "serving": "SERVES_2",
        "dietaryRestrictions": [
          
        ],
        "optionGroups": [
          {
            "id": "13736a09-ac48-4f8f-bcb1-56d6a5dcdf33",
            "name": "Acompanhamentos",
            "min": 0,
            "max": 1,
            "sequence": 0,
            "index": 0,
            "status": "AVAILABLE",
            "options": [
              {
                "id": "105f9323-0afb-41a1-b8af-13851424c603",
                "name": "Batata Frita",
                "description": "200 g",
                "externalCode": "option_fritas_wl",
                "productId": "38cea6cb-19d5-42b4-87b9-f46c90e7bc1d",
                "status": "UNAVAILABLE",
                "sequence": 0,
                "index": 0,
                "price": {
                  "value": 20
                }
              },
              {
                "id": "78490bf7-a924-4eb2-94a3-4489eadd4f3c",
                "name": "Onion Rings",
                "description": "200 g",
                "externalCode": "option_onion_ring_wl",
                "productId": "0f309165-3c72-468c-bdf5-637b272bc09c",
                "status": "AVAILABLE",
                "sequence": 1,
                "index": 1,
                "price": {
                  "value": 3
                }
              }
            ]
          }
        ],
        "hasOptionGroups": true,
        "contextModifiers": [
            {
                "catalogContext": "WHITELABEL",
                "itemContextId": "83cd029d-d833-42dd-bbd6-017c12312968"
            },
            {
                "catalogContext": "DEFAULT",
                "itemContextId": "d2e6820e-cc5c-42e3-99db-c180c2bcf4ad"
            }
        ]
      }
    ]
  }
]
Como explicado anteriormente, a categoria é um agrupador de itens. Então vamos criar nossa primeira categoria. Para isto, vamos utilizar a API POST /merchants/{merchantId}/catalogs/{catalogId}/categories.Requisição
curl --location --request POST 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/6b487a27-c4fc-4f26-b05e-3967c2331882/catalogs/10e0fbbe-7279-4ee3-9a2f-caf1f93f7b8e/categories' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
   "name": "Lanches",
   "status": "AVAILABLE",
   "template": "DEFAULT",
   "sequence": 0
}'
Resposta:
{
  "id": "4e6d3f79-f003-4992-8d4f-4c48d7ac5284",
  "name": "Lanches",
  "sequence": 0,
  "status": "AVAILABLE",
  "template": "DEFAULT"
}
O endpoint PUT item é válido para todos os tipos de itens, incluindo pizza. Cria-se o item com todas as dependências que o compõem: produtos, grupos de complementos e complementos. Se os ids informados já existirem na base, as entidades serão atualizadas.Note que, se informados, os valores dentro do contextModifiers terão precedência sobre os valores do item ou do complemento, por exemplo, se for informado um price na context modifier, o preço do item será sobrescrito naquele contexto.Para criar um item com imagem veja o tópico upload de imagem.Requisição:
curl --location --request PUT 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/21131c93-0398-4818-aad3-762cab309a26/items' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "item": {
    "id": "cff648d8-fc31-41b0-b80e-81fc3651ca7a",
    "type": "DEFAULT",
    "categoryId": "beab216d-33dc-4ce4-8b35-5372e135093d",
    "status": "AVAILABLE",
    "price": {
      "value": 11.00,
      "originalValue": 12.50
    },
    "externalCode": "public_item",
    "index": 0,
    "productId": "62133b9f-5542-401d-8743-49ec7da8c847",
    "shifts": null,
    "tags": null,
    "contextModifiers": [
      {
        "catalogContext": "WHITELABEL",
        "status": "AVAILABLE",
        "price": {
          "value": 13,
          "originalValue": 16
        },
        "externalCode": "whitelabel_ec2"
      },
      {
        "catalogContext": "INDOOR",
        "status": "AVAILABLE",
        "price": {
          "value": 13,
          "originalValue": 17
        },
        "externalCode": "indoor_ec"
      }
    ]
  },
  "products": [
    {
      "id": "62133b9f-5542-401d-8743-49ec7da8c847",
      "externalCode": "item_product_ec2",
      "name": "X-Burguer",
      "description": "Pão, carne, queijo e salada",
      "additionalInformation": "some additional Information",
      "imagePath": "7a27e4ac-c370-4adb-b395-397f503386cc/202311161149_3y9mdsnr8a9.png",
      "ean": "EAN112233414",
      "serving": "SERVES_2",
      "dietaryRestrictions": null,
      "quantity": null,
      "optionGroups": [
        {
            "id":"1e5e5eb5-84c7-4eca-b0c1-921860434f70",
            "min": 0,
            "max": 1
        }
      ]
    },
    {
      "id": "713713e7-641e-44fd-bd92-13ba43daf6a8",
      "externalCode": "option_product_ec2",
      "name": "Batata Frita",
      "description": "200 g",
      "additionalInformation": "some additional Information",
      "image": null,
      "ean": "EAN112253553344",
      "serving": "SERVES_1",
      "dietaryRestrictions": null,
      "quantity": null,
      "optionGroups": null
    }
  ],
  "optionGroups": [
    {
      "id": "1e5e5eb5-84c7-4eca-b0c1-921860434f70",
      "name": "Acompanhamentos",
      "externalCode": "option_group_ec2",
      "status": "AVAILABLE",
      "index": 0,
      "optionGroupType": "DEFAULT",
      "optionIds": [
        "d3e31829-a215-47e3-9576-3fddec9417ec"
      ]
    }
  ],
  "options": [
    {
      "id": "d3e31829-a215-47e3-9576-3fddec9417ec",
      "status": "AVAILABLE",
      "index": 0,
      "productId": "713713e7-641e-44fd-bd92-13ba43daf6a8",
      "price": {
        "value": 4,
        "originalValue": 7
      },
      "contextModifiers": [
        {
          "parentOptionId": null,
          "catalogContext": "WHITELABEL",
          "status": "AVAILABLE",
          "price": {
            "value": 5,
            "originalValue": 6
          },
          "externalCode": "op_whitelabel_ec"
        }
      ],
    "fractions": null,
    "externalCode": "option_ec"
    }
  ]
}'
Através do endpoint GET Items, informando o id de uma categoria existente, serão listados todos os itens, produtos, grupos de complementos e complementos disponíveis na mesma. O formato do json retornado é similar ao utilizado na criação de item completo.
curl --location --request GET 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/21131c93-0398-4818-aad3-762cab309a26/categories/beab216d-33dc-4ce4-8b35-5372e135093d/items' \
--header 'Authorization: Bearer TOKEN'
Resposta:
{
   "categoryId": "beab216d-33dc-4ce4-8b35-5372e135093d",
   "items":[
      {
         "id":"cff648d8-fc31-41b0-b80e-81fc3651ca7a",
         "type":"DEFAULT",
         "categoryId":"beab216d-33dc-4ce4-8b35-5372e135093d",
         "status":"AVAILABLE",
         "price":{
            "value":11.00,
            "originalValue":12.50
         },
         "externalCode":"public_item",
         "index":0,
         "productId":"62133b9f-5542-401d-8743-49ec7da8c847",
         "shifts":null,
         "tags":null,
         "contextModifiers":[
            {
              "itemContextId": "600308db-437f-4ec5-84de-aef08d7729d2",
               "catalogContext":"WHITELABEL",
               "status":"AVAILABLE",
               "price":{
                  "value":13,
                  "originalValue":16
               },
               "externalCode":"whitelabel_ec2"
            },
            {
              "itemContextId": "bb4be583-c4d0-4091-bb6b-6e4a552993bf",
               "catalogContext":"INDOOR",
               "status":"AVAILABLE",
               "price":{
                  "value":13,
                  "originalValue":17
               },
               "externalCode":"indoor_ec"
            }
         ]
      }
   ],
   "products":[
      {
         "id":"62133b9f-5542-401d-8743-49ec7da8c847",
         "externalCode":"item_product_ec2",
         "name":"X-Burguer",
         "description":"Pão, carne, queijo e salada",
         "additionalInformation":"some additional Information",
         "image":null,
         "ean":"EAN112233414",
         "serving":"SERVES_2",
         "dietaryRestrictions":null,
         "quantity":null,
         "optionGroups":[
           {
             "id":"1e5e5eb5-84c7-4eca-b0c1-921860434f70",
             "min": 0,
             "max": 1
           }
         ]
      },
      {
         "id":"713713e7-641e-44fd-bd92-13ba43daf6a8",
         "externalCode":"option_product_ec2",
         "name":"Batata Frita",
         "description":"200 g",
         "additionalInformation":"some additional Information",
         "image":null,
         "ean":"EAN112253553344",
         "serving":"SERVES_1",
         "dietaryRestrictions":null,
         "quantity":null,
         "optionGroups":null
      }
   ],
   "optionGroups":[
      {
         "id":"1e5e5eb5-84c7-4eca-b0c1-921860434f70",
         "name":"Acompanhamentos",
         "externalCode":"option_group_ec2",
         "status":"AVAILABLE",
         "index":0,
         "optionGroupType":"DEFAULT",
         "optionIds":[
            "d3e31829-a215-47e3-9576-3fddec9417ec"
         ]
      }
   ],
   "options":[
      {
         "id":"d3e31829-a215-47e3-9576-3fddec9417ec",
         "status":"AVAILABLE",
         "index":0,
         "productId":"713713e7-641e-44fd-bd92-13ba43daf6a8",
         "price":{
            "value":4,
            "originalValue":7
         },
         "contextModifiers":[
            {
               "parentOptionId":null,
               "catalogContext":"WHITELABEL",
               "status":"AVAILABLE",
               "price":{
                  "value":5,
                  "originalValue":6
               },
               "externalCode":"op_whitelabel_ec"
            }
         ],
         "fractions":null,
         "externalCode":"option_ec"
      }
   ]
}
Semelhante ao endpoint acima, é possível listar os recursos que compõem um único item através de seu id com o GET Item flat. O formato do json retornado é o mesmo utilizado na criação de item completo.
curl --location --request GET 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/21131c93-0398-4818-aad3-762cab309a26/items/af983271-3981-46fa-94eb-46cb81c439e2/flat' \
--header 'Authorization: Bearer TOKEN'
Resposta:
{
    "item": {
        "id": "af983271-3981-46fa-94eb-46cb81c439e2",
        "type": "DEFAULT",
        "categoryId": "ea2c31a9-472f-443b-ae8f-72331153915c",
        "status": "AVAILABLE",
        "price": {
            "value": 11,
            "originalValue": 12.5
        },
        "externalCode": "public_item_code",
        "index": 0,
        "productId": "f40ac7e7-da05-4800-90b2-2ee85f486d75",
        "shifts": [
            {
                "startTime": "00:00",
                "endTime": "23:59",
                "monday": true,
                "tuesday": true,
                "wednesday": true,
                "thursday": true,
                "friday": true,
                "saturday": true,
                "sunday": true
            }
        ],
        "contextModifiers": [
            {
                "catalogContext": "WHITELABEL",
                "externalCode": "item_code_for_whitelabel",
                "price": {
                    "value": 13,
                    "originalValue": 16
                },
                "status": "AVAILABLE",
                "itemContextId": "12798f58-ce7b-4195-b719-7ae49d1b2f34"
            },
            {
                "catalogContext": "DEFAULT",
                "status": "AVAILABLE",
                "itemContextId": "78a6faea-1628-4f66-896b-627bc91251bc"
            }
        ]
    },
    "optionGroups": [
        {
            "id": "d65789c8-cc81-47bc-b741-6847d0390fc6",
            "name": "Option Group Name",
            "status": "AVAILABLE",
            "optionGroupType": "DEFAULT",
            "optionIds": [
                "0e1a8e32-0a49-4c15-8b96-d8b7c5c4dc78",
                "b7da158f-4e05-4e2c-9e22-e042baea2a49"
            ]
        },
        {
            "id": "d7955b3a-3cc8-4cd3-983c-31954cee8cff",
            "name": "Option Group Name3",
            "status": "AVAILABLE",
            "optionGroupType": "DEFAULT",
            "optionIds": [
                "d8957077-36d0-476f-8766-81bac38a69cc"
            ]
        },
        {
            "id": "17532d15-2a2e-4e19-8fc7-3c7cec8bc30c",
            "name": "Option Group Name 2",
            "status": "AVAILABLE",
            "optionGroupType": "DEFAULT",
            "optionIds": [
                "abecc2d8-f91a-4cc7-b66f-59d406748ffb",
                "4034fa88-8804-46c9-8dec-92c8244ec932"
            ]
        }
    ],
    "options": [
        {
            "id": "0e1a8e32-0a49-4c15-8b96-d8b7c5c4dc78",
            "status": "AVAILABLE",
            "index": 0,
            "productId": "220f1d53-3eef-44b1-9f6d-ba2e48d26fd4",
            "price": {
                "value": 4,
                "originalValue": 7
            },
            "externalCode": "option_code",
            "contextModifiers": [
                {
                    "catalogContext": "WHITELABEL",
                    "externalCode": "option_code_for_whitelabel",
                    "price": {
                        "value": 5,
                        "originalValue": 6
                    },
                    "status": "AVAILABLE"
                },
                {
                    "catalogContext": "DEFAULT",
                    "status": "AVAILABLE"
                }
            ]
        },
        {
            "id": "b7da158f-4e05-4e2c-9e22-e042baea2a49",
            "status": "AVAILABLE",
            "index": 0,
            "productId": "abed1844-7220-40b2-abda-fbf86e331209",
            "price": {
                "value": 4,
                "originalValue": 7
            },
            "externalCode": "option_code2",
            "contextModifiers": [
                {
                    "catalogContext": "WHITELABEL",
                    "externalCode": "option_code_for_whitelabel2",
                    "price": {
                        "value": 5,
                        "originalValue": 6
                    },
                    "status": "AVAILABLE"
                },
                {
                    "catalogContext": "DEFAULT",
                    "status": "AVAILABLE"
                }
            ]
        },
        {
            "id": "d8957077-36d0-476f-8766-81bac38a69cc",
            "status": "AVAILABLE",
            "index": 0,
            "productId": "eec65205-110d-43aa-9729-e4ebcf9f8106",
            "price": {
                "value": 4,
                "originalValue": 7
            },
            "externalCode": "option_code5",
            "contextModifiers": [
                {
                    "catalogContext": "WHITELABEL",
                    "externalCode": "option_code_for_whitelabel5",
                    "price": {
                        "value": 5,
                        "originalValue": 6
                    },
                    "status": "AVAILABLE"
                },
                {
                    "catalogContext": "DEFAULT",
                    "status": "AVAILABLE"
                }
            ]
        },
        {
            "id": "abecc2d8-f91a-4cc7-b66f-59d406748ffb",
            "status": "AVAILABLE",
            "index": 0,
            "productId": "2b9da9a4-e4f4-46cb-8d29-687fbd3a7f6f",
            "price": {
                "value": 4,
                "originalValue": 7
            },
            "externalCode": "option_code3",
            "contextModifiers": [
                {
                    "catalogContext": "WHITELABEL",
                    "externalCode": "option_code_for_whitelabel3",
                    "price": {
                        "value": 5,
                        "originalValue": 6
                    },
                    "status": "AVAILABLE"
                },
                {
                    "catalogContext": "DEFAULT",
                    "status": "AVAILABLE"
                }
            ]
        },
        {
            "id": "4034fa88-8804-46c9-8dec-92c8244ec932",
            "status": "AVAILABLE",
            "index": 0,
            "productId": "7c878419-e240-417d-a322-5c32f06f47c6",
            "price": {
                "value": 4,
                "originalValue": 7
            },
            "externalCode": "option_code4",
            "contextModifiers": [
                {
                    "catalogContext": "WHITELABEL",
                    "externalCode": "option_code_for_whitelabel4",
                    "price": {
                        "value": 5,
                        "originalValue": 6
                    },
                    "status": "AVAILABLE"
                },
                {
                    "catalogContext": "DEFAULT",
                    "status": "AVAILABLE"
                }
            ]
        }
    ],
    "products": [
        {
            "id": "f40ac7e7-da05-4800-90b2-2ee85f486d75",
            "name": "Default name",
            "description": "Default description",
            "ean": "EAN112233414",
            "serving": "SERVES_2",
            "dietaryRestrictions": [],
            "optionGroups": [
                {
                    "id":"d65789c8-cc81-47bc-b741-6847d0390fc6",
                    "min": 0,
                    "max": 1
                },
                {
                    "id":"d7955b3a-3cc8-4cd3-983c-31954cee8cff",
                    "min": 1,
                    "max": 1
                },
                {
                    "id":"17532d15-2a2e-4e19-8fc7-3c7cec8bc30c",
                    "min": 0,
                    "max": 1
                }
            ]
        },
        {
            "id": "220f1d53-3eef-44b1-9f6d-ba2e48d26fd4",
            "name": "Option name",
            "externalCode": "option_product_code",
            "description": "Default description",
            "ean": "EAN112253553344",
            "serving": "SERVES_1",
            "dietaryRestrictions": [],
            "optionGroups": []
        },
        {
            "id": "abed1844-7220-40b2-abda-fbf86e331209",
            "name": "Option name2",
            "externalCode": "option_product_code2",
            "description": "Default description",
            "ean": "EAN112253553344",
            "serving": "SERVES_1",
            "dietaryRestrictions": [],
            "optionGroups": []
        },
        {
            "id": "eec65205-110d-43aa-9729-e4ebcf9f8106",
            "name": "Option name5",
            "externalCode": "option_product_code5",
            "description": "Default description",
            "ean": "EAN112253553344",
            "serving": "SERVES_1",
            "dietaryRestrictions": [],
            "optionGroups": []
        },
        {
            "id": "2b9da9a4-e4f4-46cb-8d29-687fbd3a7f6f",
            "name": "Option name3",
            "externalCode": "option_product_code3",
            "description": "Default description",
            "ean": "EAN112253553344",
            "serving": "SERVES_1",
            "dietaryRestrictions": [],
            "optionGroups": []
        },
        {
            "id": "7c878419-e240-417d-a322-5c32f06f47c6",
            "name": "Option name4",
            "externalCode": "option_product_code4",
            "description": "Default description",
            "ean": "EAN112253553344",
            "serving": "SERVES_1",
            "dietaryRestrictions": [],
            "optionGroups": []
        }
    ]
}
Esse endpoint retorna todos os itens que não estão a venda no cardápio com o motivo da restrição: GET /merchants/{merchantId}/catalogs/{catalogId}/unsellableItems
curl --location --request https://merchant-api.ifood.com.br/catalog/v2.0/merchants/1cdfa2d0-6c89-4ca8-a544-3b39009fe03c/catalogs/1cdfa2d0-6c89-4ca8-a544-3b39009fe03c/unsellableItems --header 'Authorization: Bearer TOKEN
Resposta:
{
  "categories": [
    {
      "id": "ccf719e9-8fc3-4264-8dff-832ae9e901a8",
      "status": "AVAILABLE",
      "template": "DEFAULT",
      "restrictions": [],
      "unsellableItems": [
        {
          "id": "32545e4b-6664-411f-83c3-524771750fbd",
          "productId": "400c9fc5-f1bb-4538-a2b5-a6d4a98d1a01",
          "restrictions": [
            "ITEM_PAUSED"
          ]
        },
        {
          "id": "fb3cc740-d1ff-43cf-87ef-22491fe2381b",
          "productId": "a22f334e-90c8-4474-8dfe-48ff3a4affe3",
          "restrictions": [
            "ITEM_PAUSED"
          ]
        },
        {
          "id": "7cb6cc89-bebe-489d-9866-7ff4689b2771",
          "productId": "16744979-0280-473b-ae2b-b671de7ffe9c",
          "restrictions": [
            "ITEM_PAUSED"
          ]
        }
      ]
    },
    {
      "id": "86cbba43-51f7-439c-a3c6-ecd0a7c9f402",
      "status": "UNAVAILABLE",
      "template": "DEFAULT",
      "restrictions": [
        "CATEGORY_PAUSED"
      ],
      "unsellableItems": [
        {
          "id": "a6a608e4-6548-442c-8b9f-9fcb6bcb9ef3",
          "productId": "3a9d9df9-18c7-48d0-b0c6-92fc4b5b2a19",
          "restrictions": [
            "CATEGORY_PAUSED",
            "ITEM_PAUSED"
          ]
        },
        {
          "id": "044abde5-dba4-44f0-b039-0da51ddde2a1",
          "productId": "4b31bae7-e415-42f1-b023-dad5083c1cb2",
          "restrictions": [
            "CATEGORY_PAUSED",
            "ITEM_PAUSED"
          ]
        }
      ]
    }
  ]
}
As restrições possíveis são:
RestriçãoMotivo
CATEGORY_HAS_VIOLATIONFoi detectado algum tipo violação de regras do iFood na categoria
CATEGORY_PAUSEDCategoria pausada
ITEM_PAUSEDItem pausado
ITEM_HAS_VIOLATIONFoi detectado algum tipo violação de regras do iFood no item
ITEM_PRICE_MISSINGItem sem preço
ITEM_AND_OPTIONS_PRICES_MISSINGO valor do item com seus complementos obrigatórios pode ser zero
ITEM_OUT_OF_STOCKItem fora de estoque
INVALID_OPTION_GROUP_MAX_QUANTITYValor máximo de complementos do grupo é menor ou igual a zero
OPTION_GROUP_WITHOUT_AVAILABLE_OPTIONSGrupo de complemento sem complementos vendíveis
OPTION_GROUP_MAX_SMALLER_THAN_MINValor máximo de complementos do grupo é menor que o mínimo
OPTION_GROUP_PAUSEDGrupo de complementos pausado
OPTION_PAUSEDComplemento pausado
OPTION_OUT_OF_STOCKComplemento fora de estoque
curl -X POST "https://merchant-api.ifood.com.br/catalog/v2.0/merchants/6b487a27-c4fc-4f26-b05e-3967c2331882/inventory"
-H "accept: application/json" -H "Content-Type: application/json"
-d "{\"productId\":\"ec16fb62-7bdd-43e4-940c-10b5a2845f13\",\"amount\":10}"
curl -X GET "https://merchant-api.ifood.com.br/catalog/v2.0/merchants/6b487a27-c4fc-4f26-b05e-3967c2331882/inventory/ec16fb62-7bdd-43e4-940c-10b5a2845f13"
-H "accept: application/json""
curl -X POST "https://merchant-api.ifood.com.br/catalog/v2.0/merchants/6b487a27-c4fc-4f26-b05e-3967c2331882/inventory/batchDelete"
-H "accept: */*" -H "Content-Type: application/json"
-d "{\"productIds\":[\"ec16fb62-7bdd-43e4-940c-10b5a2845f13\"]}"
É possível editar o preço em batch pelo productId ou pelo externalCode. O exemplo abaixo utiliza o externalCode, mas caso deseje utilizar o productId basta substituir o campo "externalCode":"burguerX43" por "productId":"058dd32f-3b26-41e9-aa39-30a64d3f2b81". Caso sejam informados o externalCode e productId, a alteração será efetuada apenas considerando o externalCode. Existe o parâmetro opcional catalogContext para informar em qual contexto a alteração será realizada. Caso o parâmetro não seja informado, a alteração será efetivada em todos os contextos que correspondam ao productId ou externalCode informado.Requisição
    curl --location --request PATCH 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/411347fb-adc5-456f-95be-03cf10a5b8b5/products/price' \
    --header 'accept: application/json' \
    --header 'Content-Type: application/json' \
    --data-raw '[{
      "externalCode":"burguerX43",
      "price": {
        "value":25,
        "originalValue":30
      },
      "resources":["ITEM", "OPTION"]
    }]'
  • Para atualizar apenas ITEM, o campo de resources deve ser igual a "resources":["ITEM"]. O mesmo vale para a OPTIONS.
Resposta
{
  "batchId": "311afcf1-541a-41af-a9a5-4651d676731e",
  "url": "/v2.0/merchants/411347fb-adc5-456f-95be-03cf10a5b8b5/batch/311afcf1-541a-41af-a9a54651d676731e"
}
É possível editar o status em batch pelo productId ou pelo externalCode. O exemplo abaixo utiliza o externalCode, mas caso deseje utilizar o productId basta substituir o campo "externalCode":"burguerX43" por "productId":"058dd32f-3b26-41e9-aa39-30a64d3f2b81". Caso sejam informados o externalCode e productId, a alteração será efetuada apenas considerando o externalCode. Existe o parâmetro opcional catalogContext para informar em qual contexto a alteração será realizada. Caso o parâmetro não seja informado, a alteração será efetivada em todos os contextos que correspondam ao productId ou externalCode informado.Requisição
    curl --location --request PATCH 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/411347fb-adc5-456f-95be-03cf10a5b8b5/products/status' \
    --header 'accept: application/json' \
    --header 'Content-Type: application/json' \
    --data-raw '[{
      "externalCode":"burguerX43",
      "status": "UNAVAILABLE",
      "resources":["ITEM", "OPTION"]
    }]'
  • Para atualizar apenas ITEM, o campo de resources deve ser igual a "resources":["ITEM"]. O mesmo vale para a OPTIONS.
Resposta
{
  "batchId": "6762714f-6d58-4eac-8f0f-9b878c8b6c30",
  "url": "/v2.0/merchants/411347fb-adc5-456f-95be-03cf10a5b8b5/batch/6762714f-6d58-4eac-8f0f-9b878c8b6c30"
}
Operações em batch podem ser feitas em situações como, por exemplo, atualização de muitos produtos. Para checar quais operações foram bem sucedidas ou não, e se todo o batch já foi processado, utilizamos a API de listagem de resultados das operações em batch GET /merchants/{merchantId}/batch/{batchId}
curl --location --request GET 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/6b487a27-c4fc-4f26-b05e-3967c2331882/batch/bca9a293-b121-4027-b3e3-bce675581fbd' \
--header 'Authorization: Bearer TOKEN'
Resultado:
{
  "batchStatus": "COMPLETED",
  "results": [
    {
      "resourceId": "fd1c993b-4882-44e7-8c21-aa7d637ccdf8",
      "result": "SUCCESS"
    },
    {
      "resourceId": "ec16fb62-7bdd-43e4-940c-10b5a2845f13",
      "result": "SUCCESS"
    }
  ]
}
Com o endpoint PATCH Option Price é possível editar globalmente o preço de um complemento ao passar o campo de price com o valor desejado, como também para alterá-lo em um cardápio específico, o campo priceByCatalog deve ser preenchido respectivamente com seus valores e o contexto do cardápio alterado.
curl --location --request PATCH 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/21131c93-0398-4818-aad3-762cab309a26/options/price' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "optionId": "d3e31829-a215-47e3-9576-3fddec9417ec",
  "price": {
    "value": 5,
    "originalValue": 7
  },
  "parentCustomizationOptionId": null,
  "priceByCatalog": [
    {
      "value": 5,
      "originalValue": 7,
      "catalogContext": "WHITELABEL"
    }
  ]
}'
Com comportamento semelhante à alteração de preço, é possível editar globalmente o status de um complemento com o PATCH Option Status ao passar o campo de status com a condição desejada, como também para alterá-lo em um cardápio específico, o campo statusByCatalog deve ser preenchido respectivamente com o estado e o contexto do cardápio alterado.
curl --location --request PATCH 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/21131c93-0398-4818-aad3-762cab309a26/options/status' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "optionId": "d3e31829-a215-47e3-9576-3fddec9417ec",
  "status": "AVAILABLE",
  "parentCustomizationOptionId": null,
  "statusByCatalog": [
    {
      "status": "UNAVAILABLE",
      "catalogContext": "WHITELABEL"
    }
  ]
}'
Através do PATCH Option External Code É possível editar globalmente o código externo de um complemento ao passar o campo externalCode com o código desejado, como também para alterá-lo em um cardápio específico, o campo externalCodeByCatalog deve ser preenchido respectivamente com o código e o contexto do cardápio alterado.
curl --location --request PATCH 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/21131c93-0398-4818-aad3-762cab309a26/options/externalCode' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "optionId": "d3e31829-a215-47e3-9576-3fddec9417ec",
  "externalCode": "tst-external-code",
  "parentCustomizationOptionId": null,
  "externalCodeByCatalog": [
    {
      "externalCode": "tst-external-code2",
      "catalogContext": "WHITELABEL"
    }
  ]
}'
Semelhante ao endpoint de complementos, é possível editar globalmente o preço de um item com o PATCH Item Price ao passar o campo de price com o valor desejado, como também para alterá-lo em um cardápio específico, o campo priceByCatalog deve ser preenchido respectivamente com seus valores e o contexto do cardápio alterado.
curl --location --request PATCH 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/21131c93-0398-4818-aad3-762cab309a26/items/price' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "itemId": "1621d43c-1ac0-4407-9d79-50e974bbcc90",
  "price": {
    "value": 25,
    "originalValue": 30
  },
  "priceByCatalog": [
    {
      "value": 23,
      "originalValue": 27,
      "catalogContext": "WHITELABEL"
    }
  ]
}'
Com comportamento semelhante à alteração de preço, é possível editar globalmente o status de um item através do PATCH Item Status ao passar o campo de status com a condição desejada, como também para alterá-lo em um cardápio específico, o campo statusByCatalog deve ser preenchido respectivamente com o estado e o contexto do cardápio alterado.
curl --location --request PATCH 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/21131c93-0398-4818-aad3-762cab309a26/items/status' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "itemId": "1621d43c-1ac0-4407-9d79-50e974bbcc90",
  "status": "AVAILABLE",
  "statusByCatalog": [
    {
      "status": "UNAVAILABLE",
      "catalogContext": "WHITELABEL"
    }
  ]
}'
Com o endpoint PATCH Item External Code é possível editar globalmente o código externo de um item ao passar o campo externalCode com o código desejado, como também para alterá-lo em um cardápio específico, o campo externalCodeByCatalog deve ser preenchido respectivamente com o código e o contexto do cardápio alterado.
curl --location --request PATCH 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/21131c93-0398-4818-aad3-762cab309a26/items/externalCode' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
  "itemId": "d3e31829-a215-47e3-9576-3fddec9417ec",
  "externalCode": "tst-external-code",
  "externalCodeByCatalog": [
    {
      "externalCode": "tst-external-code2",
      "catalogContext": "WHITELABEL"
    }
  ]
}'
Para adicionar imagens ao seu produto nos endpoints de POST ou PUT de produto e no endpoint de PUT de item é preciso enviar o campo imagePath do produto preenchido com o retorno do endpoint abaixo: Upload Image:
curl --location --request POST 'https://merchant-api.ifood.com.br/catalog/v2.0/merchants/21131c93-0398-4818-aad3-762cab309a26/image/upload/' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '{
    "image": "data:image/png;base64,imageBase64"
}'
Fazendo o upload da sua imagem por esse endpoint você conseguirá reaproveitar a mesma imagem em vários produtos.
O upload de imagens a partir do campo image com um base64 também continua funcionando para os endpoints de POST e PUT de produto.
Os formatos de imagem suportados são: 'jpg', 'jpeg' e 'png'.O tamanho limite de arquivos de imagem (independente do formato) é de 5MB. Requisições (tanto no endpoint de Upload de imagens quanto em outros endpoints) com um corpo de requisição maior que 5MB retornarão com status 413 (Entity Too Large).
Esta página foi útil?
Avalie sua experiência no novo Developer portal: