Skip to main content

Criar Cardápio em Lote para Rede#

Como funciona?#

  • Esta chamada serve para criar cardápio em lote para lojas em uma determinada Rede.

Ambientes:#

Homologação:

https://graphql.staging.onyo.com/graphql

Produção:

https://graphql.onyo.com/graphql

Endpoint mutation:#

  • URL: /graphql
  • Método: POST
  • Headers:
    • Content-Type: application/json
    • Authorization: Bearer accessToken
  • Payload (formato JSON):
mutation {  createMenuBatch(    brandId: "Int",     companiesIds: ["Int"],     menu: [      {        productName: "String",         productPosName: "String",         productPosReference: "String",         productOperator: "String",         productSequence: "Int",         productShortDescription: "String",         productFullDescription: "String",         productCategoryId: "Int",        productCategoryName: "String",         productCompanyPrice: "Float",         productCompanyPosPrice: "Float",         choosables: [          {            productMinimumChoices: "Int",             productMaximumChoices: "Int",             productName: "String",             productPosName: "String",             productPosReference: "String",             productOperator: "String",             productSequence: "Int",             productCompanyPrice: "Int",             productCompanyPosPrice: "Int"            simples: [              {                productMinimumChoices: "Int",                 productMaximumChoices: "Int",                 productName: "String",                 productPosName: "String",                 productPosReference: "String",                 productOperator: "String",                 productSequence: "Int",                 productCompanyPrice: "Int",                 productCompanyPosPrice: "Int"              }            ]          },        ]      },          ]) {    menuItems {      numericalId      product {        numericalId        subproducts {          numericalId          productType          productCompany {            edges {              node {                numericalId              }            }          }          subproducts {            numericalId            productType          }        }      }    }  }}
CampoTipoRequeridoExemplo
productNameStringSPão de Cenoura
productPosNameStringNPão de Cenoura
productPosReferenceStringNprodutoABC
productOperatorString (sum, and, xor, or)Ssum
productShortDescriptionStringNPão de Cenoura ralada delicioso
productFullDescriptionStringNPão de Cenoura ralada delicioso e coberto com chocolate
productCategoryIdIntN1
productCategoryNameStringN* (Se não conter um productCategoryId esse campo será obrigatório. Se for usado junto ao campo productCategoryId este campo será atualizado)Padaria
productCompanyPriceFloatS2.52
productCompanyPosPriceFloatN2.52
productMinimumChoicesIntS* (Deve ser usado apenas dentro de uma lista de choosables ou simples)0
productMaximumChoicesIntS* (Deve ser usado apenas dentro de uma lista de choosables ou simples)1
choosablesListNchoosables: [{...}]
simplesListSchoosables: [{..., simples: [{...}]}]

Exemplo (curl):#

curl --request POST \--url https://graphql.staging.onyo.com/graphql \--header 'Authorization: Bearer ...' \--header 'Content-Type: application/json' \--data '{"query":"mutation {\n  createMenuBatch(brandId: 1, companiesIds: [1, 2, 3], \n    menu: [\n      {\n        productName: \"lorem\", \n        productPosName: \"lorem\", \n        productPosReference: \"lorem\", \n        productOperator: \"sum\", \n        productSequence: 1, \n        productShortDescription: \"lorem\", \n        productFullDescription: \"lorem\", \n        productCategoryId: 8388,\n        productCategoryName: \"lorem ddsdsd\", \n        productCompanyPrice: 25.5, \n        productCompanyPosPrice: 25.5, \n        choosables: [\n          {\n            productMinimumChoices: 0, \n            productMaximumChoices: 1, \n            productName: \"lorem\", \n            productPosName: \"lorem\", \n            productPosReference: \"lorem\", \n            productOperator: \"sum\", \n            productSequence: 1, \n            productCompanyPrice: 0, \n            productCompanyPosPrice: 0\n            simples: [\n              {\n                productMinimumChoices: 0, \n                productMaximumChoices: 1, \n                productName: \"lorem\", \n                productPosName: \"lorem\", \n                productPosReference: \"lorem\", \n                productOperator: \"sum\", \n                productSequence: 1, \n                productCompanyPrice: 0, \n                productCompanyPosPrice: 0\n              },\n              {\n                productMinimumChoices: 0, \n                productMaximumChoices: 1, \n                productName: \"lorem\", \n                productPosName: \"lorem\", \n                productPosReference: \"lorem\", \n                productOperator: \"sum\", \n                productSequence: 1, \n                productCompanyPrice: 0, \n                productCompanyPosPrice: 0\n              },\n              {\n                productMinimumChoices: 0, \n                productMaximumChoices: 1, \n                productName: \"lorem\", \n                productPosName: \"lorem\", \n                productPosReference: \"lorem\", \n                productOperator: \"sum\", \n                productSequence: 1, \n                productCompanyPrice: 0, \n                productCompanyPosPrice: 0\n              }\n            ]\n          },\n        ]\n      },\n    ]) \n  {\n    menuItems {\n      numericalId\n      product {\n        numericalId\n        subproducts {\n          numericalId\n          productType\n          productCompany {\n            edges {\n              node {\n                numericalId\n              }\n            }\n          }\n          subproducts {\n            numericalId\n            productType\n          }\n        }\n      }\n    }\n  }\n}\n\n"}'

Retornos da chamada:#

Sucesso:#

{  "data": {    "createMenuBatch": {      "menuItems": [        {          "numericalId": 919791,          "product": {            "numericalId": 273862,            "subproducts": [              {                "numericalId": 273863,                "productType": "CHOOSABLE",                "productCompany": {                  "edges": [                    {                      "node": {                        "numericalId": 919796                      }                    },                    {                      "node": {                        "numericalId": 919795                      }                    },                    {                      "node": {                        "numericalId": 919794                      }                    }                  ]                },                "subproducts": [                  {                    "numericalId": 273866,                    "productType": "SIMPLE"                  },                  {                    "numericalId": 273865,                    "productType": "SIMPLE"                  },                  {                    "numericalId": 273864,                    "productType": "SIMPLE"                  }                ]              }            ]          }        },        {          "numericalId": 919792,          "product": {            "numericalId": 273862,            "subproducts": [              {                "numericalId": 273863,                "productType": "CHOOSABLE",                "productCompany": {                  "edges": [                    {                      "node": {                        "numericalId": 919796                      }                    },                    {                      "node": {                        "numericalId": 919795                      }                    },                    {                      "node": {                        "numericalId": 919794                      }                    }                  ]                },                "subproducts": [                  {                    "numericalId": 273866,                    "productType": "SIMPLE"                  },                  {                    "numericalId": 273865,                    "productType": "SIMPLE"                  },                  {                    "numericalId": 273864,                    "productType": "SIMPLE"                  }                ]              }            ]          }        },        {          "numericalId": 919793,          "product": {            "numericalId": 273862,            "subproducts": [              {                "numericalId": 273863,                "productType": "CHOOSABLE",                "productCompany": {                  "edges": [                    {                      "node": {                        "numericalId": 919796                      }                    },                    {                      "node": {                        "numericalId": 919795                      }                    },                    {                      "node": {                        "numericalId": 919794                      }                    }                  ]                },                "subproducts": [                  {                    "numericalId": 273866,                    "productType": "SIMPLE"                  },                  {                    "numericalId": 273865,                    "productType": "SIMPLE"                  },                  {                    "numericalId": 273864,                    "productType": "SIMPLE"                  }                ]              }            ]          }        }      ]    }  }}

Unauthorized#

Quando não autorizado o accessToken pode ocorrer os seguintes erros:

erromotivo
onyo_graphql.unauthorizedquando o usuário não tem acesso a brand (ou marca)
onyo_graphql.batch_service_company_unauthorizedquando a CompanyId não é autorizada.

Exemplo:#

{  "errors": [    {      "message": "onyo_graphql.unauthorized",      ...    }  ],  "data": {    "createMenuBatch": null  }}