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 Estoque entre o Winthor e PDVSYNC.

Pré-Requisitos e Restrições

  • Necessário a instalação dos  serviços:
    winthor-integracao-2650
    winthor-integracao-config
    winthor-pedido-venda
  • Rotas de lotes de origem configuradas (PDVSYNC - LOTE DE ORIGEM)

Rotas de serviços

Para integração de Estoque necessário cadastrar as seguintes rotas e serviços na rotina 2650:


Totvs custom tabs box
tabsRota de busca do Preço , Rota de envio do Preço ao PDVSYNC
idsrota1,rota2
Totvs custom tabs box items
defaultyes
referenciarota1

Dados:

CAMPOVALORDESCRIÇÃO
ID Empresa
Código do Winthor cadastrado em empresa na rotina 2650
StatusATIVO
AutenticadorNÃO
ArquiteturaJSON

Ordem Execução

4


Tipo de Processo

1-BUSCAR
ID Rota Serviço 
Código da rota de envio dos Estoque ao PDVSYNC
Bloco de código
languagejs
themeEclipse
firstline1
titleLayout de comunicação
{
    "name": "WTA - Buscar Estoque - Ecommerce",
    "request": {
        "method": "GET",
        "header": [
            {
                "key": "Authorization",
                "value": "Bearer {{TOKEN}}"
            },
            {
                "key": "Accept",
                "value": "*/*"
            }
        ],
        "url": {
            "raw": "{{URL_BASE}}/api/stock-vtex/v1/available/list",
            "query": [
                {
                    "key": "branchId",
                    "value": "{{FILIAL}}"
                } ,
                {
                    "key": "lastChange",
                    "value": "{{LAST_CHANGE}}"
                }
            ]
        }
    },
    "response": []
}
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
[
    {
      "operation": "modify-overwrite-beta",
      "spec": {
        "items": {
          "*": {
            "idExterno": "=concat('pdvsync-estoque-', @(1,productId),'-',@(1,warehouseBranchId),'-', @(1,lastChange))",
            "id_retaguarda": "=concat(@(1,productId),'-', @(1,warehouseBranchId))",
            "situacao": 0,
            "skuId__": "=split('-', @(1,productId))",
            "skuID_": "=lastElement(@(1,skuId__))"
          }
        }
      }
      },
    {
      "operation": "shift",
      "spec": {
        "items": {
          "*": {
            "idExterno": "idExterno[&1]",
            "id_retaguarda": "items[&1].[0].idRetaguarda",
            "quantity": "items[&1].[0].saldo",
            "skuID_": "items[&1].[0].codigoProduto",
            "productId": "items[&1].[0].idRetaguardaProduto"
          }
        }
      }
      },
    {
      "operation": "default",
      "spec": {
        "_attr_access": "items",
        "items[]": {
          "*[]": {
            "*": {
              "idInquilino": "{{ID_INQUILINO}}",
              "idProprietario": "{{FILIAL_ID_PROPRIETARIO}}",
              "loteOrigem": "{{LOTE_ORIGEM}}",
              "situacao": 0,
              "sequencial": 0
            }
          }
        }
      }
  }]

Parametros: 

CHAVEVALORTIPO DE VALOR
{{LAST_CHANGE}}

    SELECT
    TO_CHAR(
        NVL((SELECT MAX(DATACRIACAO) FROM PCINTEGRACAOCORE WHERE IDROTASERVICO = :IDROTASERVICO AND STATUS=2), TO_DATE('01/01/1900')) -1,
        'RRRR-MM-DD"T"HH24:MI:SS'
    ) DT
FROM DUAL

SELECT

Totvs custom tabs box items
defaultno
referenciarota2


Dados: 

CAMPOVALORDESCRIÇÃO
ID Empresa
Código do Winthor cadastrado em empresa na rotina 2650
StatusATIVO
AutenticadorNÃO
ArquiteturaJSON

Ordem Execução

1

Tipo de Processo

3-PROCESSAR
Bloco de código
languagejs
themeEclipse
firstline1
titleLayout de comunicação
{
	"name": "PDV-SYNC Enviar Estoque Disponível",
	"request": {
		"method": "POST",
		"header": [
			{
				"key": "Accept",
				"value": "*/*"
			},
			{
				"key": "Content-Type",
				"value": "application/json"
			}
		],
		"url": {
			"raw": "{{URL_ENVIAR_ESTOQUE_DISPONIVEL}}",
			"query": []
		},
		"bodyraw": {{CLIENT_JSON}}
	},
	"response": []
}
Bloco de código
languagejs
themeEclipse
titleLayout de transformação
[
	{
		"operation": "default",
		"spec": {
			"status": 2
		}
	}
]


Parâmetros: 

CHAVEVALORTIPO DE VALOR
{{FILIAL_ID_PROPRIETARIO}}
STRING
{{ID_INQUILINO}}
STRING
{{CLIENT_JSON}}:PCINTEGRACAOCORE.DADOSTRANSFORMADOSSTRING
{{URL_ENVIAR_ESTOQUE_DISPONIVEL}}https://pdvsync-core-estoque-qa-aadivv24nq-ue.a.run.app/api/retaguarda/estoquesSTRING