Páginas filhas
  • APIs Integrações - Pedido

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

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 "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 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


 Integração


Totvs custom tabs box
tabsDados integrados c/ Winthor, Gravação Pedido/Retorno, Consulta de Pedido
idspasso1,passo2,passo3

A integração consiste em receber e enviar dados do pedido que serão utilizados no E-Commerce.

Totvs custom tabs box items
defaultyes
referenciapasso1

Os dados integrados são: 

APIPCPEDCPCPEDIDescriçãoTipoObrigatório
createDatapcpedc.datapcpedi.dataData de criação do pedidoDataNão
idpcpedc.codclipcpedi.codcliIdentificador do ClienteNuméricoSim
orderIdpcpedc.numpedpcpedi.numpedIdentificador do pedidoNuméricoNão
orderStatuspcpedc.posicao
Estado do pedidoTextoNão
chargingIdpcpedc.codcob
Identificador de cobrançaTextoNão
TotalPricepcpedc.vltotal
Preço total do pedidoNuméricoNão
paymentPlanIdpcpedc.codplpag
Identificador do plano de pagamentoTextoSim
saleTypepcpedc.condvenda
Tipo de vendaNuméricoSim
branchIdpcpedc.codfilial
Código da FilialTextoSim
saleOriginpcpedc.origemped
Origem do pedidoTextoNão
productSKUERPReferenceKey
pcpedi.codprodEmbalagem do produtoTextoSim
sellPrice
pcpedi.pvendaPreço do produtoNuméricoSim
quantity
pcpedi.qtQuantidade do produtoNuméricoSim
realCost
pcpedi.vlcustorealCusto RealNuméricoNão
warehouseBranchId
pcpedi.codfilialretiraCódigo de praçaTextoSim
position
pcpedi.numseqSequência do pedidoNuméricoNão
taxFigureId
pcpedi.codstFigura tributária da rotina 514NuméricoNão
discountValue
pcpedi.perdescPercentual de desconto aplicado no itemNuméricoNão
valueFreightpcpedc.vlfrete
Valor de freteNuméricoNão
intermediaryCompanyNamepcpedc.descintermediador
Razão Social do Intermediador marketplace ou e-commerceTextoNão
idIntermediaryEmployerpcpedc.cnpjintermediador
CNPJ do Intermediador marketplace ou e-commerceTextoNão
carrierIdpcpedc.codfornecfrete
Identificado da transportadoraNuméricoNão
lastChangepcpedc.dtfat (prioridade 1)
Data de faturamento do pedidoDataNão
lastChangepcpedc.data (prioridade 2)
Data de emissão do pedidoDataNão
orderIdHubepcpedc.numpedhube
Número do pedido realizado via hube ou conectorTextoNão
orderIdMktplacepcpedc.numpedmktplace
Número do pedido realizado via marketplaceTextoNão
freightDispatchpcpedc.fretedespacho
Utiliza despacho de frete (freteiros)TextoNão
uniqueSequentialNumberpcpedc.nsu
NSUTEFTextoNão
dateUniqueSequentialNumberpcpedc.dtnsu
Data do número sequencial único do cartão de créditoDataNão
Totvs custom tabs box items
defaultno
referenciapasso2

Exemplo do envio da requisição:

Bloco de código
languagejs
titleURI
method: 'POST',
url: '/api/wholesale/v1/orders/'
Bloco de código
languagejs
titleBody Request
{
    "createData": "2020-03-23T13:24:36.955102+13:24",
    "orderIdHube": "string",
    "orderIdMktplace": "string",
    "orderStatus": "string",
    "chargingId": "string",
    "carrierId": 0,
    "paymentPlanId": 0,
    "saleType": 0,
	"freightDispatch": "string",
    "branchId": "string",
	"TotalPrice": 0,
    "saleOrigin": "W",
    "uniqueSequentialNumber": "string",
    "dateUniqueSequentialNumber": "string",
    "intermediaryCompanyName": "string",
    "idIntermediaryEmployer": "string",
    "valueFreight": 0,
	"CustomerVendorInternalId": "string",
	"position": 0,
    "otherExpenses": 0
    "customer": {
        "id": 0
    },
	"permissions": {
        "acceptOrderWithoutTax": true
    },
    "listOfOrderItem": [
        {
            "productSKUERPReferenceKey": "string",
            "sellPrice":0,
			"discountValue":0,
            "quantity": 0.0,
            "realCost": 0.0,
            "warehouseBranchId": "string",
            "gift": true,
            "giftPrice": 0,
            "taxFigureId": 0
        }
             "deductionsCmv": {
                "discountsCofins": 0,
                "discountsIcms":  0,
                "discountsPis": 0
            
     }    
   ]
}
Bloco de código
languagejs
titleBody Response
{
    "branchId": "string",
    "carrierId": 0,
    "chargingId": "string",
    "createData": "2021-08-06T15:40:00.000000+15:40",
    "customer": {
        "activityId": 0,
        "addressInfo": "",
        "billingAddress": "",
        "billingZipCode": "",
        "businessDistrict": "",
        "cityId": 0,
        "commercialAddress": "",
        "commercialZipCode": "",
        "corporate": false,
        "corporatePhone": "",
        "countryId": 0,
        "email": "",
        "finalCostumer": false,
        "id": 0,
        "paymentPlanId": 0,
        "sellerId": 0,
        "squareId": 0,
        "stateInscription": "",
        "tradeName": ""
    },
    "lastChange": "2021-08-06T15:40:00",
    "listOfOrderItem": [
        {
            "accountingCost": 0.0,
            "basePriceRCA": 0.0,
            "comissionPercent": 0,
			"discountPercentage": 0,             
			"fecp": 0,
            "financialCost": 0.0,
            "gift": false,
            "giftPrice": 0,
            "packingId": 0,
            "position": 0,
            "productId": 0,
            "productSKUERPReferenceKey": "00000-00",
            "quantity": 0.0,
            "realCost": 0.0,
            "replacementCost": 0.0,
            "resourceValueCMV": 0,
            "resourceValueCustumerCMV": 0,
            "sellPrice": 0.0,
            "sellPriceBaseST": 0,
            "sellPriceIPI": 0,
            "sellPriceST": 0,
            "stGNRE": 0,
            "tablePrice": 0.0,
            "tablePriceIPI": 0,
            "tablePriceST": 0,
            "taxFigureId": 0,
            "truncItem": false,
            "wantageQuantity": 0,
            "warehouseBranchId": "string"
        }
    ],
	"permissions": {
        "acceptOrderWithoutTax": true
    },
    "orderId": "string",
    "orderIdHube": "string",
	"orderIdMktplace: "string",
    "orderStatus": "string",
    "otherExpenses": 0,
    "paymentPlanId": 0,
    "saleOrigin": "W",
    "saleType": 0,
    "saleTypePayment": "string",
    "totalValue": "0.0"
}
Totvs custom tabs box items
defaultno
referenciapasso3

As consultas referente aos pedido, apresentam o JSON na resposta da requisição:  

Bloco de código
languagejs
titleURI
method: 'GET',
url: '/api/wholesale/v1/orders/'      -> Passar no Parms o campo orderId, para obter dados do pedido.

OU 

url: '/api/wholesale/v1/orders/list'  -> Passar na requisição os dados do Parms abaixo.
Bloco de código
languagejs
titleParams
branchId          : 0					- Código da Filial **requerido
daysOfSearch      : 0					- Dias de Pesquisa
orderId		      : 0					- Número Pedido
lastChange        : 2021-03-02T16:43:00	- Última alteração
viewDocument  	  : true/ false			- Dados da nota fiscal 
saleOrigin   	  : T					- Origem Venda (Todas existentes no 
order		 	  : lastChange			- Ordenação de busca 
orderStatus  	  : C					- Status do Pedido
page		 	  : 1					- Número Página
pageSize     	  : 10					- Tamanho da página
hasOrderIdHube	  : true/ false			- Pedidos que com id de Hube - Disponível a partir da versão 1.0.84.229(Winthor-pedido-venda) 
hasOrderIdMktplace: true/ false			- Pedidos que com id de Marketplace  - Disponível a partir da versão 1.0.84.229(Winthor-pedido-venda)   
Bloco de código
languagejs
titleBody Response
{
    "branchId": "string",
    "carrierId": 0,
    "chargingId": "string",
    "createData": "2021-08-06T15:40:00.000000+15:40",
    "customer": {
        "activityId": 0,
        "addressInfo": "",
        "billingAddress": "",
        "billingZipCode": "",
        "businessDistrict": "",
        "cityId": 0,
        "commercialAddress": "",
        "commercialZipCode": "",
        "corporate": false,
        "corporatePhone": "",
        "countryId": 0,
        "email": "",
        "finalCostumer": false,
        "id": 0,
        "paymentPlanId": 0,
        "sellerId": 0,
        "squareId": 0,
        "stateInscription": "",
        "tradeName": ""
    },
    "document": {
        "createData": "1900-01-01T00:00:00",
        "documentNumber": 0,
        "keyDocument": "",
        "lastChange": "1900-01-01T00:00:00"
    },
    "lastChange": "2021-08-06T15:40:00",
    "listOfOrderItem": [
        {
            "accountingCost": 0.0,
            "basePriceRCA": 0.0,
            "comissionPercent": 0,
			"discountPercentage": 0,
            "fecp": 0,
            "financialCost": 0.0,
            "gift": false,
            "giftPrice": 0,
            "packingId": 0,
            "position": 0,
            "productId": 0,
            "productSKUERPReferenceKey": "00000-00",
            "quantity": 0.0,
            "realCost": 0.0,
            "replacementCost": 0.0,
            "resourceValueCMV": 0,
            "resourceValueCustumerCMV": 0,
            "sellPrice": 0.0,
            "sellPriceBaseST": 0,
            "sellPriceIPI": 0,
            "sellPriceST": 0,
			"sellPriceIcmsPart": 0,
            "stGNRE": 0,
            "tablePrice": 0.0,
            "tablePriceIPI": 0,
            "tablePriceST": 0,
            "taxFigureId": 0,
            "truncItem": false,
            "wantageQuantity": 0,
            "warehouseBranchId": "string"
        }
            "deductionsCmv": {
                "discountsCofins": 0,
                "discountsIcms":  0,
                "discountsPis": 0
            }     
   ],
	"permissions": {
        "acceptOrderWithoutTax": true
    },
    "orderId": "string",
    "orderIdHube": "string",
	"orderIdMktplace: "string",
    "orderStatus": "string",
    "otherExpenses": 0,
    "paymentPlanId": 0,
    "saleOrigin": "W",
    "saleType": 0,
    "saleTypePayment": "string",
    "totalValue": "0.0"
}