Produtos fracionáveis
Listar
GET /api/v1/fractionable_products
Filtros
Os parâmetros abaixo podem ser passados como uma query string. Mais de um filtro pode ser passado na mesma consulta.
barcode: código de barras do produto. * Também serão incluídos os produtos que possuem o código de barras informado como código adicional.
include_deleted: indica se deseja incluir no retorno os produtos excluídos. (true/false) * Se não for informado, será considerado false como padrão.
Retorno
status |
descrição |
|---|---|
200 |
OK |
Exemplo:
[
{
"id": 163,
"created_at": "2014-10-17T14:50:15.000-03:00",
"updated_at": "2014-10-17T14:50:15.000-03:00",
"type": "Product",
"manufacturer_id": 56,
"category_id": 23,
"name": "Iscas de frango",
"upc_code": "00001",
"barcode": "20000001",
"external_id": null,
"weight": null,
"tags": ["tag1", "tag2"],
"cost_price": 1.23,
"additional_barcodes": [],
"unit": {
"id": 2,
"fractionable": true,
"name": "gram",
"conversion_factor": 1000
},
"ncm_code": "21069090",
"cest_code": "1234567",
"tax_operation": {
"id": 78,
"name": "CFOP: 5102; CSOSN: 102"
},
"url": "http://localhost:4000/api/v1/fractionable_products/163"
},
{
"id": 164,
"created_at": "2014-10-17T14:50:50.000-03:00",
"updated_at": "2014-10-17T14:50:50.000-03:00",
"type": "Product",
"manufacturer_id": 56,
"category_id": 23,
"name": "Carne moída",
"upc_code": "100",
"barcode": "2000100",
"external_id": null,
"weight": null,
"tags": ["tag2", "tag3"],
"cost_price": null,
"additional_barcodes": [
{ "id": 123, "value": "2000101" },
{ "id": 321, "value": "2000102" }
],
"unit": {
"id": 2,
"fractionable": true,
"name": "gram",
"conversion_factor": 1000
},
"url": "http://localhost:4000/api/v1/fractionable_products/164"
},
{
"id": 165,
"created_at": "2014-10-17T14:51:30.000-03:00",
"updated_at": "2014-10-17T14:51:30.000-03:00",
"type": "Product",
"manufacturer_id": 56,
"category_id": 23,
"name": "Picanha premium",
"upc_code": "00003",
"barcode": 20000003,
"external_id": null,
"weight": null,
"tags": ["tag1", "tag3"],
"cost_price": null,
"additional_barcodes": [],
"unit": {
"id": 2,
"fractionable": true,
"name": "gram",
"conversion_factor": 1000
},
"ncm_code": "21069090",
"cest_code": "1234567",
"tax_operation": {
"id": 78,
"name": "CFOP: 5102; CSOSN: 102"
},
"url": "http://localhost:4000/api/v1/fractionable_products/165"
}
]
Ver
GET /api/v1/fractionable_products/[id]
Parâmetros de URL:
parâmetro |
descrição |
obrigatório |
|---|---|---|
id |
id do produto |
sim |
Retorno
status |
descrição |
|---|---|
200 |
OK |
Exemplo:
{
"id": 163,
"created_at": "2014-10-17T14:50:15.000-03:00",
"updated_at": "2014-10-17T14:50:15.000-03:00",
"type": "Product",
"manufacturer_id": 56,
"category_id": 23,
"name": "Iscas de frango",
"upc_code": "00001",
"barcode": "20000001",
"external_id": null,
"weight": null,
"cost_price": 1.23,
"tags": ["tag1", "tag2"],
"additional_barcodes": [],
"unit": {
"id": 2,
"fractionable": true,
"name": "gram",
"conversion_factor": 1000
},
"ncm_code": "21069090",
"cest_code": "1234567",
"tax_operation": {
"id": 78,
"name": "CFOP: 5102; CSOSN: 102"
},
"url": "http://localhost:4000/api/v1/fractionable_products/163"
}
Erros
status |
descrição |
response body |
|---|---|---|
404 |
produto não encontrado |
{ “status”: “404”, “error”: “Not Found” } |
Criar
POST /api/v1/fractionable_products
Request:
{
"product": {
"type": "Product",
"name": "Coxão mole",
"manufacturer_id": 56,
"category_id": 21,
"unit_id": 2,
"upc_code": 00005,
"barcode": "20000005",
"external_id": "123qwe",
"weight": 123,
"ncm_code": "21069090",
"cest_code": "1234567",
"tax_operation_id": 78,
"cost_price": 1.23,
"tags": ["tag1", "tag2"],
"additional_barcodes_attributes": [
{ "value": "20000006" },
{ "value": "20000007" }
]
}
}
Campos
Obrigatórios
product
name: nome do produto.
manufacturer_id: id do fabricante.
category_id: id da categoria.
unit_id: id da unidade de medida.
Opcionais
product
upc_code: código do produto.
barcode: código de barras do produto, a ser utilizado no micro market.
external_id: identificador externo do produto.
weight: peso do produto (em gramas)
tags: array com tags.
cost_price: preço de custo
additional_barcodes_attributes: Array com códigos de barras adicionais.
value: o código de barras.
ncm_code: código ncm do produto.
cest_code: código cest do produto.
tax_operation_id: id da operação fiscal.
Retorno
Retorno
status |
descrição |
|---|---|
201 |
Criado com sucesso |
Exemplo:
{
"id": 2830,
"created_at": "2016-02-16T10:20:11.018-02:00",
"updated_at": "2016-02-16T10:20:11.018-02:00",
"type": "Product",
"manufacturer_id": 56,
"category_id": 21,
"name": "Coxão mole",
"upc_code": "00005",
"barcode": "20000005",
"external_id": "123qwe",
"weight": 123,
"tags": ["tag1", "tag2"],
"ncm_code": "21069090",
"cest_code": "1234567",
"tax_operation": {
"id": 78,
"name": "CFOP: 5102; CSOSN: 102"
},
"cost_price": 1.23,
"additional_barcodes": [
{ "id": 123, "value": "20000006" },
{ "id": 321, "value": "20000007" }
],
"unit": {
"id": 2,
"fractionable": true,
"name": "gram",
"conversion_factor": 1000
},
"url": "http://localhost:4000/api/v1/fractionable_products/2830"
}
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": [
"já está em uso"
]
}
{
"unit": [
"não é fracionável"
]
}
Atualizar
PATCH /api/v1/fractionable_products/[id]
Parâmetros de URL:
parâmetro |
descrição |
obrigatório |
|---|---|---|
id |
id do produto |
sim |
Request:
{
"product": {
"name": "Carne moída"
}
}
Campos
Ao menos um campo interno a product deve ser passado.
Caso se deseje remover um additional_barcode, deve-se adicionar o atributo _destroy com valor true à chamada como no exemplo abaixo:
{
"product": {
"name": "Carne moída",
"tags": ["tag1", "tag2"],
"additional_barcodes_attributes": [
{
"id": 123,
"_destroy": true
}
]
}
}
Retorno
status |
descrição |
|---|---|
200 |
Atualizado com sucesso |
Exemplo:
{
"id": 2830,
"created_at": "2016-02-16T10:20:11.018-02:00",
"updated_at": "2016-02-16T10:20:11.018-02:00",
"type": "Product",
"manufacturer_id": 56,
"category_id": 21,
"name": "Carne moída",
"upc_code": "00005",
"barcode": "20000005",
"external_id": "123qwe",
"weight": 123,
"tags": ["tag1", "tag2"],
"ncm_code": "21069090",
"cest_code": "1234567",
"tax_operation": {
"id": 78,
"name": "CFOP: 5102; CSOSN: 102"
},
"cost_price": 1.23,
"additional_barcodes": [
{ "id": 321, "value": "20000007" }
],
"unit": {
"id": 2,
"fractionable": true,
"name": "gram",
"conversion_factor": 1000
},
"url": "http://localhost:4000/api/v1/fractionable_products/2830"
}
Erros
status |
descrição |
response body |
|---|---|---|
400 |
parâmetros faltando |
{ “status”: “400”, “error”: “Bad Request” } |
401 |
não autorizado |
(vazio) |
404 |
produto não encontrado |
{ “status”: “404”, “error”: “Not Found” } |
422 |
erro ao atualizar |
ver exemplo abaixo |
422 - erro ao atualizar
{
"name": [
"não pode ficar em branco"
]
}
Excluir
DELETE /api/v1/fractionable_products/[id]
Parâmetros de URL:
parâmetro |
descrição |
obrigatório |
|---|---|---|
id |
id do produto |
sim |
Retorno
status |
descrição |
response body |
|---|---|---|
204 |
Excluído com sucesso |
(vazio) |
Erros
status |
descrição |
response body |
|---|---|---|
404 |
produto não encontrado |
{ “status”: “404”, “error”: “Not Found” } |
Reativar
PATCH /api/v1/products/[id]/reactivate
Parâmetros de URL:
parâmetro |
descrição |
obrigatório |
|---|---|---|
id |
id do produto |
sim |
Retorno
status |
descrição |
|---|---|
200 |
Reativado com sucesso |
Exemplo:
{
"id": 5978,
"created_at": "2020-07-08T01:47:46.000Z",
"updated_at": "2023-12-12T18:15:04.000Z",
"type": "Product",
"manufacturer_id": 6,
"category_id": 2,
"name": "Picanha",
"upc_code": "123",
"barcode": "2001234",
"external_id": null,
"weight": 0,
"cost_price": null,
"vendible_balance": 0.0,
"tags": [],
"additional_barcodes": [],
"unit": {
"id": 2,
"fractionable": true,
"name": "gram",
"conversion_factor": 1000
},
"ncm_code": "",
"cest_code": "",
"url": "http://localhost:3001/api/v1/fractionable_products/5978",
"inventories": [
{
"distribution_center_id": 1,
"total_quantity": 10000.0,
"committed_quantity": 0.0
},
{
"distribution_center_id": 116,
"total_quantity": 10000.0,
"committed_quantity": 0.0
},
{
"distribution_center_id": 124,
"total_quantity": 10000.0,
"committed_quantity": 0.0
}
]
}
Erros
status |
descrição |
response body |
|---|---|---|
404 |
produto não encontrado |
{ “status”: “404”, “error”: “Not Found” } |
422 |
erro ao criar |
ver exemplo abaixo |
{
"barcode": [
"já está em uso"
]
}