Produtos compostos

Listar

GET /api/v1/compound_products

Retorno

status

descrição

200

OK

Exemplo:

[
  {
    "id": 2928,
    "created_at": "2015-12-18T17:23:20.000-02:00",
    "updated_at": "2015-12-18T17:23:20.000-02:00",
    "type": "Combo",
    "category_id": 236,
    "name": "Nescau + Leite",
    "external_id": "qwe111",
    "cost_price": 1.23,
    "tags": ["tag1", "tag2"]
  },
  {
    "id": 3046,
    "created_at": "2016-01-20T16:28:18.000-02:00",
    "updated_at": "2016-01-20T16:28:18.000-02:00",
    "type": "Mixture",
    "category_id": 471,
    "name": "Capuccino brasileiro",
    "external_id": "qwe222",
    "cost_price": null,
    "tags": ["tag1", "tag3"]
  }
]

Ver

GET /api/v1/compound_products/[id]

Parâmetros de URL:

parâmetro

descrição

obrigatório

id

id do produto composto

sim

Retorno

status

descrição

200

OK

Exemplo:

{
  "id": 3046,
  "created_at": "2016-01-20T16:28:18.000-02:00",
  "updated_at": "2016-01-20T16:28:18.000-02:00",
  "type": "Mixture",
  "category_id": 471,
  "name": "Capuccino brasileiro",
  "external_id": "qwe222",
  "cost_price": 1.23,
  "tags": ["tag1", "tag2"]
}

Erros

status

descrição

response body

404

produto composto não encontrado

{ “status”: “404”, “error”: “Not Found” }

Criar

POST /api/v1/compound_products

Request:

{
  "compound_product": {
    "type": "Combo",
    "category_id": 12,
    "name": "Coca + Ruffles",
    "external_id": "qwe123",
    "cost_price": 1.23,
    "tags": ["tag1", "tag2"]
  }
}

Campos

Obrigatórios

  • compound_product

    • type: tipo do produto composto.

      • Valores permitidos: Combo (combos) e Mixture (bebidas quentes).

    • category_id: id da categoria.

    • name: Nome do produto composto.

Opcionais

  • compound_product

    • cost_price: preço de custo

    • external_id: identificador externo do produto composto.

    • tags: array com tags.

Retorno

status

descrição

201

Criado com sucesso

Exemplo:

{
  "id": 2831,
  "created_at": "2016-02-16T11:19:06.003-02:00",
  "updated_at": "2016-02-16T11:19:06.003-02:00",
  "type": "Combo",
  "category_id": 12,
  "name": "Coca + Ruffles",
  "external_id": "qwe123",
  "cost_price": 1.23,
  "tags": ["tag1", "tag2"]
}

Erros

status

descrição

response body

400

parâmetros faltando

{ “status”: “400”, “error”: “Bad Request” }

401

não autorizado

(vazio)

422

erro ao criar

ver exemplo abaixo

422 - erro ao criar

{
  "name": [
    "não pode ficar em branco"
  ]
}

Atualizar

PATCH /api/v1/compound_products/[id]

Parâmetros de URL:

parâmetro

descrição

obrigatório

id

id do produto composto

sim

Request:

{
  "compound_product": {
    "name": "Novo nome",
    "tags": ["tag1", "tag2"]
  }
}

Campos

Ao menos um campo interno a compound_product deve ser passado.

Caso o parâmetro type seja passado, o mesmo é desconsiderado.

Retorno

status

descrição

200

Atualizado com sucesso

Exemplo:

{
  "id": 2831,
  "created_at": "2016-02-16T11:19:06.000-02:00",
  "updated_at": "2016-02-16T11:25:01.944-02:00",
  "type": "Combo",
  "category_id": 12,
  "name": "Novo produto composto",
  "external_id": null,
  "cost_price": 1.23,
  "tags": ["tag1", "tag2"]
}

Erros

status

descrição

response body

400

parâmetros faltando

{ “status”: “400”, “error”: “Bad Request” }

401

não autorizado

(vazio)

404

produto composto não encontrado

{ “status”: “404”, “error”: “Not Found” }

422

erro ao atualizar

ver exemplo abaixo

422 - erro ao atualizar:

{
  "name": [
    "já está em uso"
  ]
}

Excluir

DELETE /api/v1/compound_products/[id]

Parâmetros de URL:

parâmetro

descrição

obrigatório

id

id do produto composto

sim

Retorno

status

descrição

response body

204

Excluído com sucesso

(vazio)

Erros

status

descrição

response body

404

produto composto não encontrado

{ “status”: “404”, “error”: “Not Found” }