Objetivo
Este documento tem como objetivo explicar o funcionamento da integração da Embalagem.
Pré-Requisitos e Restrições
- Necessário a instalação do serviço winthor-compras-produto. Para realizar a instalação desse serviço, segue link com as devidas explicações:
Comece por aqui -> Parametrizações WTA
- A embalagem deve possuir o código EAN parametrizado no cadastro do produto (Rotina 203), campo CODAUXILIAR.
- Os valores dos campos ("realHeight", "realLength", "realWeightKg", "realWidth") são correspondentes as rotinas 292 ou 2014.
Rotina 292: Cadastrar embalagens
Os campos em destaque representam os campos descritos acima da rotina 292
Caso tenha dúvidas de como utilizar a rotina 292, segue link abaixo para apoio:
Como parametrizar o processo de inclusão de embalagem na rotina 292?
Rotina 2014: Cadastro de embalagens
Os campos em destaque representam os campos descritos acima da rotina 2014
Caso tenha dúvidas de como utilizar a rotina 2014, segue link abaixo para apoio:
Como realizar o cadastro de embalagem por meio da rotina 2014?
- Os valores dos campos ("Height", "Length", "WeightKg", "Width", "Volume") são correspondentes as rotinas 203 ou 282.
Caso tenha dúvidas de como utilizar a rotina 203, segue link abaixo para apoio:
Como realizar cadastros nas rotinas 202, 203, 302?
Caso tenha dúvidas de como utilizar a rotina 282, segue link abaixo para apoio:
Como realizar o cadastro de Produto Armazenagem na rotina 282?
Importante
Quando não houver preenchimento do campo DATA, exemplo (data de cadastro, data de alteração), nossas APIs retornará por padrão a informação "1900-01-01T00:00:00".
Caso necessário, realizar o ajuste nos cadastros para que a API apresente a data desejada.
Recomendamos marcar como não o parâmetro 4591 - Permite editar o do código auxiliar do cadastro de embalagem da rotina 2014 (PERMTEDITCODAUX2014) na rotina 132 para não editar o CodAuxiliar do produto.
Desta forma não incorre o risco de alterar um produto e perder a referencia no Ecommerce e não receber pedidos por exemplo.
Neste cenário deverá ser criado uma nova embalagem e nova associação de produto além de desabilitar o produto\sku antigo no Sistema de ecommerce.
Quando enviar o parâmetro na useAllPackages="Y" (Parâmetro não obrigatório) na URL e o parâmetro da rotina 132 FIL_UTILIZAVENDAPOREMBALAGEM= Sim a API retornará todas as embalagens do produto que estiverem com o campo "Envia" marcados das rotina 292/2014.
A API também retornará o campo active=true/false conforme o campo ativo desta rotina.
Integração
A integração consiste em enviar todas as embalagens que serão utilizados no E-Commerce.
Os dados integrados são:
SKU | PCEMBALAGEM |
---|---|
Retorno API | Campos Banco Winthor |
id | pcembalagem.codauxiliar |
lastChange | pcembalagem.dtultalt |
createDate | pcprodut.dtcadastro |
brandId | pcprodut.codmarca |
categoryId | pcprodut.codcategoria |
webDepartmentId | pcprodut.coddeptoweb |
webSectionId | pcprodut.codsecaoweb |
webCategoryId | pcprodut.codcategoriaweb |
webSubcategoryId | pcprodut.codsubcategoriaweb |
description2 | pcprodut.descricao2 |
description3 | pcprodut.descricao3 |
description4 | pcprodut.descricao4 |
description5 | pcprodut.descricao5 |
description6 | pcprodut.descricao6 |
description7 | pcprodut.descricao7 |
departmentId | pcprodut.codepto |
isActive | pcembalagem.enviaecommerce |
isAvaiable | pcembalagem.excluido |
isKit | |
listOfEAN | pcembalagem.codauxiliar |
name | pcembalagem.embalagem |
nameproduct | pcprodut.descricao |
price | pcembalagem.pvenda |
productRootId | pcembalagem.codprod |
productSKUId | pcembalagem.codauxiliar + pcembalagem.codprod |
productOriginalSKUId | pcembalagem.codauxiliaranterior + pcembalagem.codprod Obs. Caso o codauxiliaranterior não esteja preenchido, será retornado o codauxiliar; Obs 2. O codauxiliaranterior é o campo destinado a armazenar o valor original do código auxiliar da embalagem, em caso de alteração do mesmo. |
realWidth | pcembalagem.largura |
realWeightKg | pcembalagem.pesobruto |
realLength | pcembalagem.comprimento |
realHeight | pcembalagem.altura |
sectionId | |
merchandiseType | pcprodut.tipomerc |
unitMultiplier | pcembalagem.qtunit |
width | pcprodut.largura |
weightKg | pcprodut.pesobruto |
length | pcprodut.comprimento |
height | pcprodut.altura |
volume | pcprodut.volume |
rawMaterialBasicBasketProductId | pcformprod.codprodacab |
rawMaterialBasicBasketQuantity | pcformprod.qtprodmp |
branchId | pcformprod.codfilial |
Exemplo do envio da requisição:
method: 'GET', url: '/api/purchases/v1/skus/' -> retorno da lista, inserindo os parâmetros conforme abaixo. OU url: '/api/purchases/v1/skus/id/{código auxiliar}/branchId/{código da filial}' -> retorno da embalagem informada na própria requisição. OU url: '/api/purchases/v1/skus/id/{código auxiliar}/branchId/{código da filial}/useAllPackages/{Y/N}{Retornar todas as embalagens}' -> retorno da embalagem informada na própria requisição.
Quando o parâmetro 2291 FIL_UTILIZAVENDAPOREMBALAGEM da rotina 132 estiver como Sim e passar na URL o parâmetro useAllPackages=Y a API irá retornar todas as embalagens do produto cadastradas na rotinas de cadastro de embalagens 292 e 2014
Obs: o parâmetro useAllPackages não é obrigatório.
companyId : 1 - campo requerido lastChange : 1900-01-01T00:00:00 - Informar data da última alteração page : 1 - Informar número de página pageSize : 10 - Informar quantidade por página branchId : 1 - Informar o código da filial useAllPackages : N - retorna embalagens do produto cadastradas e ativas (Y= Sim N= Não)
Exemplo JSON da resposta:
{ "active": false, "avaiable": false, "kit": false, "brandId": 0, "categoryId": 0, "webDepartmentId": 0, "webSectionId": 0, "webCategoryId": 0, "webSubcategoryId ": 0, "createDate": "2012-01-01T00:00:00", "departmentId": 0, "description2": "string", "description3": "string", "description4": "string", "description6": "string", "description7": "string", "height": 0, "id": 0, "isActive": false, "isAvaiable": false, "isKit": false, "lastChange": "2021-07-23T15:25:19", "length": 0, "listOfEAN": [ 0 ], "name": "string", "nameProduct": "string", "price": 0, "productRootId": 0, "productSKUId": "000-0", "productOriginalSKUId": "000-0", "realHeight": 0, "realLength": 0, "realWeightKg": 0, "realWidth": 0, "sectionId": 0, "merchandiseType": "string", "unitMultiplier": 0, "volume": 0, "weightKg": 0, "width": 0 }
Para que seja realizada uma nova integração atualizando um registro já integrado, o sistema verifica a data de última atualização do registro. Portanto, ao realizar alguma alteração no registro, ele será encaminhado novamente para a view para manter a integridade dos dados do ERP com o E-commerce.