Histórico da Página
Objetivo
Este documento tem como objetivo explicar o funcionamento da integração do Pedido de Venda.
Pré-Requisitos e Restrições
- Necessário a instalação do serviço winthor-pedido-venda.
- Definir o "Caso o atributo "seller" não seja enviado na requisição, a API consultará o RCA definido no parâmetro "4012 - Código do RCA para cadastro de clientes na Ciashop" na opção 4012-CODRCACIASHOP da rotina 132- Parâmetros da Presidência.
- A região padrão de preço deverá ser informada na opção 4257-CODREGIAOPRECOCIASHOP da rotina 132- Parâmetros da Presidência.
- A precificação deverá ser realizada por Filial no parâmetro 2277 - Tipo de precificação selecionando o tipo de precificação conforme necessidade.
- A tabela PCLOGPEDIDOAPI, é responsável por guardar os retornos dos pedidos importados via integração, sendo Operação (I - inclusão, A - alteração, C - cancelamento) e Status (A - Aceito, R - Rejeitado, P - Processando).
- Através da lista de pedidos é possível pesquisar por Filial ou Multifiliais (separado por vírgula) para obter os dados.
- Os dados de Razão social do intermediador e CNPJ do intermediador serão representados pelos campos, "intermediaryCompanyName" e "idIntermediaryEmployer" respectivamente.
- Considera-se na totalização do pedido frete e outras despesas.
- Ao inserir um pedido através da API, o campo "PCPEDI.PBASERCA" gravará de acordo com o campo “PCPEDI.PTABELA”, não é necessário enviá-lo pela API.
- Será persistidos os dados de cartão que a operadora do cartão retorna como o NSU e DTNSU (data de aprovação do cartão).
- No envio do JSON deve-se enviar no campo productSKUERPReferenceKey o código auxiliar seguido do código do produto. Exemplo: 100-1
- Ao inserir um pedido, deverá enviar a informação do atributo acceptOrderWithoutTax. As figuras tributárias consideradas são referente a rotina 271 ou rotina 514 em caso de tributação por estado (parâmetro 1092 - Usar tributação por estado (UF), rotina 132) para o item. Caso não tenha a informação da figura tributária em alguma das rotinas e o atributo "acceptOrderWithoutTax" esteja sendo enviado com "false" , o pedido será rejeitado, do contrário se o parâmetro não for enviado, ou for enviado como "true", mesmo que não haja tributação vinculada o pedido será registrado, porém com o valor "0" na coluna PCPEDI.CODST e demais colunas de imposto.
- Caso o processo de desconto por item seja utilizado, o valor do desconto deve ser informado no campo listOfOrderItem.discountValue no body do json de envio do pedido. O campo sellPrice deve conter o valor correspondente ao valor tabela - valor do desconto. O preço tabela corresponderá ao preço de venda + o valor do desconto, e o percentual do desconto será calculado automaticamente. É necessário que haja uma política de desconto cadastrada na Rotina 561 para o conjunto de dados que serão enviados, de forma a controlar o percentual de desconto aplicado. Caso não haja política cadastrada, o pedido será integrado com a posição "Bloqueado".
- Ainda sobre o processo de desconto por item, a API está validando o parâmetro 1463 - % Máximo de desconto Médio nos Orçamentos e Pedidos de Venda da Rotina 132, de forma que mesmo havendo política de desconto que permita o percentual informado, o pedido não será integrado se o percentual for superior ao informado no parâmetro. Caso o parâmetro esteja com o valor "0", essa validação será desconsiderada .
Integração
- e o pedido será integrado bloqueado.
- Ao enviar os atributos "deductionsCmv": {"discountsCofins": 0,"discountsIcms": 0,"discountsPis": 0} no corpo da requisição, será reduzido o valor do CMV considerando os descontos de: PIS, COFINS e ISENÇÃO de ICMS (Rotina 514- Figura triutária) os valores enviados serão apenas gravados. Esses mesmos dados serão retornados na API de consulta de pedido.
- Sugestão do time de produto modificar o parâmetro(4591) para não permitir alterar o Código Auxiliar ver Link DDRET-6481 DT Criar Parâmetro para Edição de CODAUXILIAR
- Para o processo de múltiplas cobranças, o mesmo só poderá ser utilizado caso o parâmetro 3968 - Permite incluir multiplas cobranças? da Rotina 132 esteja marcado como "Sim". Para cobranças do tipo cartão, o envio do campo "nsu" é obrigatório.
- Ao enviar um item no pedido que seja bonificado/brinde o campo "gift" precisa está como "true", além disso o parâmetro 3045 da rotina 132 deve esta liberado (marcado igual a Sim).
- Ao inserir um pedido, é possível passar o parâmetro booleano "acceptSearchAutomaticFreightType" para permitir ou não a definição automática do tipo de frete baseado no que foi cadastrado para o fornecedor daquela venda. Caso você não informe o tipo de frete (parâmetro "freightDispatch"), e você informe o campo do fornecedor (parâmetro "carrierId"), ele consulte qual o tipo de envio é o padrão para aquele fornecedor, e faça a definição da venda com o mesmo tipo.
- Para validar se o pedido já existe, a api utiliza os campos orderIdHube e orderIdMktplace da requisição (correspondente aos campos pcpedc.numpedhube e pcpedc.numpedmktplace do banco). É utilizada a combinação dos dois campos para validar se o pedido já existe, portanto só serão integrados os pedidos se os dois campos forem distintos de algum registro já existente no banco.
Sobre o preenchimento do campo de percentual de IPI, esse valor é preenchido quando o método da API busca as informações do produto, com valores cadastrados na rotina 271.
A partir da versão 1.2.14.4, ao passar pela rotina de cálculo de IPI, será verificado o valor do parâmetro 4753 - Define o valor do percentual do IPI configurado no produto (BUSCAVALORPERCENTUALIPIAPIPEDIDO) , que tem o valor padrão "Sim". Se mantido como "Sim", o sistema continuará definindo o valor preenchido para o percentual de IPI na rotina 271. Caso seja definido como "Não", o sistema atribuirá o valor do percentual de IPI como 0.- Para recalculo do valor do IPI o parâmetro 4681 - Habilita cálculo reverso para impostos dos itens de valor agregado no pedido de venda deve está marcado igual a sim, o valor de IPI será calculado caso o campo sellPriceIPI não seja informado.
Importante:
- Para que seja calculado o valor do IPI, é necessário as seguintes condições:
- Não tenha valor de IPI já calculado ou enviado no JSON pelo campo sellPriceIPI.
- Tenha percentual de IPI Venda, isso é cadastrado na rotina 271.
- Tenha preço de venda.
- O parâmetro 4681 - Habilita cálculo reverso para impostos dos itens de valor agregado no pedido de venda (FIL_CALCREVERSOPEDIDOVENDA) esteja com valor "Sim".
- Se for enviado valor de IPI pelo campo sellPriceIPI na API, esse valor será gravado na tabela normalmente.
- Para que seja calculado o valor do IPI, é necessário as seguintes condições:
- Observação sobre a utilização do processo de múltiplas cobranças:
- Mesmo enviando a lista de múltiplas cobranças (listPayment) faz-se necessário o envio dos atributos chargingId e paymentPlanId no cabeçalho do pedido. Essas informações serão gravadas na tabela PCPEDC, mas no momento de faturar o pedido serão desconsideradas, pois será considerado o que está gravado na tabela PCFORMAPGTOPEDIDO.
- Será inserido a data atual no campo PCPEDC.DTCALCFRETE sempre que o valor de frete PCPEDC.VLFRETE referente ao campo do JSON "valueFreight" for maior que zero.
Integração
Totvs custom tabs box | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A integração consiste em receber e enviar dados do pedido que serão utilizados no E-Commerce. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Totvs custom tabs box | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A integração consiste em receber e enviar dados do pedido que serão utilizados no E-Commerce. Totvs custom tabs box items | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
API | PCPEDC | PCPEDI | Descrição | Tipo | Obrigatório | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
createData | pcpedc.data | pcpedi.data | Data de criação do pedido | Data | Não | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
id | pcpedc.codcli | pcpedi.codcli | Identificador do Cliente | Numérico | Sim | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
orderId | pcpedc.numped | pcpedi.numped | Identificador do pedido | Numérico | Não | orderStatus | pcpedc.posicao | Estado do pedido | Texto | Não | chargingId | pcpedc.codcob | Identificador de cobrança | Texto | Não | TotalPrice | pcpedc.vltotal | Preço total do pedido | Numérico | Não | paymentPlanId | pcpedc.codplpag | Identificador do plano de pagamento | Texto | Sim | saleType | pcpedc.condvenda | Tipo de venda | Numérico | Sim | branchId | pcpedc.codfilial | Código da Filial | Texto | Sim | saleOrigin | pcpedc.origemped | Origem do pedido | Texto | Não | productSKUERPReferenceKey | pcpedi.codprod | Embalagem do produto | Texto | Sim | sellPrice | pcpedi.pvenda | Preço do produto | Numérico | Sim | quantity | pcpedi.qt | Quantidade do produto | Numérico | Sim | realCost | pcpedi.vlcustoreal | Custo Real | Numérico | Não | warehouseBranchId | pcpedi.codfilialretira | Código de praça | Texto | Sim | position | pcpedi.numseq | Sequência do pedido | Numérico | Não | taxFigureId | pcpedi.codst | Figura tributária da rotina 514 | Numérico | Não | discountValue | pcpedi.perdesc | Percentual de desconto aplicado no item | Numérico | Não | valueFreight | pcpedc.vlfrete | Valor de frete | Numérico | Não | intermediaryCompanyName | pcpedc.descintermediador | Razão Social do Intermediador marketplace ou e-commerce | Texto | Não | idIntermediaryEmployer | pcpedc.cnpjintermediador | CNPJ do Intermediador marketplace ou e-commerce | Texto | Não | carrierId | pcpedc.codfornecfrete | Identificado da transportadora | Numérico | Não | lastChange | pcpedc.dtfat (prioridade 1) | Data de faturamento do pedido | Data | Não | lastChange | pcpedc.data (prioridade 2) | Data de emissão do pedido | Data | Não | orderIdHube | pcpedc.numpedhube | Número do pedido realizado via hube ou conector | Texto | Não | orderIdMktplace | pcpedc.numpedmktplace | Número do pedido realizado via marketplace | Texto | Não | freightDispatch | pcpedc.fretedespacho | Utiliza despacho de frete (freteiros) | Texto | Não | uniqueSequentialNumber | pcpedc.nsu | NSUTEF | Texto | Não | dateUniqueSequentialNumber | pcpedc.dtnsu | Data do número sequencial único do cartão de crédito | Data | Não
Totvs custom tabs box items | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Os dados integrados são:
|
Totvs custom tabs box items | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||
Exemplo do envio da requisição:
|
Totvs custom tabs box items | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
As consultas referente aos pedido, apresentam o JSON na resposta da requisição:
| |||||||||||||||||||||
Totvs custom tabs box items | |||||||||||||||||||||
| |||||||||||||||||||||
As consultas referente aos pedido, apresentam o JSON na resposta da requisição:
|
Totvs custom tabs box items | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
As requisições de Cancelamento referente aos pedido, apresentam o JSON na resposta da requisição:
|
Observação: Os pedidos com itens do tipomerc = CB (CESTA BASICA) terão os itens da cesta gravados na tabela PCPEDICESTA no campo CODPRODMP.