Integração SAP Business One x Ecommerce usando a API ConectorGate

Por Rafael Ogeda em

A integração do ERP SAP Business One com plataformas de Ecommerce e Marketplace possui em geral um conjunto de fluxos de dados padrão, e a API ConectorGate está preparada para este fluxo de dados e para todos os desafios pertinentes aos cenários de vendas B2C e B2B.

Neste post iremos descrever como facilmente integrar o ERP SAP Business One em um cenário de Ecommerce utilizando a API ConectorGate (pacote SAP B1If 1.x).

A ideia é servir como um passo-a-passo para auxiliar Plataformas de iPaaS (ou outros desenvolvedores) a facilmente conectarem plataforma de Ecommerce ou Marketplace com o ERP SAP Business One.

Pontos de Atenção

Todo projeto tem suas característica únicas, que refletem as regras de negócio únicas de cada cliente. Estas características únicas se refletem na camada de robotização e automação, ou seja, no RPA.

Os dois principais pontos de atenção relacionados com as característica únicas de cada projeto envolvem: [1] Regras de Negócio, [2] Campos de Usuário.

Regras de Negócio

Cada cliente possui regras de negócio específicas de seu empreendimento, do mercado em que atua, de metodologias gerenciais ou de demandas de público.

Estas regras podem envolver alguns questionamentos, como: [1] em qual filial e em qual depósito os pedidos serão integrados?, [2] qual a utilização, condição de pagamento e vendedor dos pedidos integrados?, [3] quais tipos e grupos de produtos serão integrados?, [4] quais tabelas de preço serão integradas, etc

Estas regras de negócio específicas devem ser definidas no Setup da salesAPI ou definidas dentro do RPA implementado no iPaaS.

Todas as implementações de ERP possuem personalizações relacionadas com campos de usuário, seja em Dados Mestres (produto, parceiro de negócio) quanto em Documentos de Marketing (pedido de venda, nota saída).

Campos de Usuário

Estas personalizações específicas de cliente não são tratadas no padrão da salesAPI (by Intergate).

Portanto, além dos campos relacionados na documentação da salesAPI (by Intergate), cada integração deverá conhecer e utilizar os campos de usuário criados na base do cliente.

Estes campos podem ser obtidos no Portal Conectorgate, sessão “My Custom”, e devem ser utilizados em requests ou obtidos em responses da salesAPI (by Intergate).

Passo-a-Passo

O fluxo de dados padrão na integração de ERP com Ecommerce ou Marketplace geralmente envolve sete jobs (ou robôs) definidos no RPA:

  • Categorias*: carga + incremental (ERP > Ecommerce)
  • Produtos: carga + incremental (ERP > Ecommerce)
  • Preços: carga + incremental (ERP > Ecommerce)
  • Estoques: carga + incremental (ERP > Ecommerce)
  • Pedidos: incremental (Ecommerce > ERP)
  • Notas/Faturas: incremental (ERP > Ecommerce)
  • Status de Pedidos*: incremental (ERP > Ecommerce)

* Geralmente Categorais e Status de Pedidos dependem de campos de usuário (UDF) ou regras mais específicas.

Veja a seguir o passo-a-passo de como utilizar a API ConectorGate (pacote igt.salesAPI by Intergate) para facilmente conectar o ERP SAP Business One com qualquer plataforma de ecommerce ou marketplace.

[1] Categorias

Normalmente a estrutura de Categorias de itens no SAP Business One varia muito a cada projeto.

Apesar da salesAPI conter a consulta de Grupos de Itens do ERP, normalmente as categorias para Ecommerce/Marketplace são definidas em campos UDF no cadastro de itens. As vezes ainda envolve o uso de tabelas UDT.

As opções quando o Grupo de Itens não atenda, são: [1] construir um endpoint custom para uma eventual tabela UDF, OU [2] cadastrar as Categorias manualmente na plataforma de Ecommerce ou Marketplace (neste caso, não haveria job de Categorias).

A consulta de Grupos de Itens da API ConectorGate permite a consulta em lista ou consulta unitária (por erpKey), e não conta com recursos de consulta incremental nem de paginação.

Segue exemplo para consultar o cadastro de Grupos de Itens do ERP pela API ConectorGate:

GET {{endpoint}}/itemGroups (full)
{
    "package": "salesAPI",
    "process": "ItemGroups",
    "system": "sapBusinessOne",
    "target": "itemGroups",
    "user": "Intergate",
    "host": "177.74.250.130",
    "effectiveTimestamp": "2021-01-06T12:57:12",
    "code": "200",
    "success": true,
    "count": 1,
    "values": [
        {
            "erpKey": "100",
            "itemGroup": "100-AGITADORES",
            "materialType": "4-Produto Acabado",
            "materialGroup": "",
            "createdAt": null,
            "updatedAt": "2020-10-20T00:00:00",
            "canceledAt": null
        }
    ]
}

[2] Produtos

Normalmente o cadastro de Produtos em plataformas de Ecommerce ou Marketplace podem envolver até quatro (4) tipos de configuração:

  • Simples
  • Configurável (ou Com Variações)
  • Kit (ou Bundle)
  • Downloadable

A API ConectorGate possui recursos plug-in-play para atender plenamente qualquer uma das quatro configurações. Exemplos:

[1] mediante parâmetro no Setup da API se define se a consulta de itens irá ser no formato “partnumber”+”sku” ou apenas “sku”;

[2] a consulta dos componentes do kit (item com treeType=S) é realizada pelo serviço /billOfMaterials.

A integração de produtos do ERP para a plataforma de Ecommerce ou Marketplace pode envolver uma ou mais das configurações de produto descritas acima.

Pode também ser necessário o mapping (de/para) entre as categorias do ERP e as categorias do Ecommerce.

A consulta de produtos da API ConectorGate permite consulta full e consulta incremental, consulta em lista ou consulta unitária (por erpKey ou codeBars), e conta com recurso de paginação.

E permite ainda filtrar a listagem de produtos por itemType, itemGroup e/ou brand.

Segue exemplo para consultar o cadastro de Itens do ERP pela API ConectorGate (full – itemType=4 + brand=2):

GET {{endpoint}}/products?itemType=4&brand=2

Segue exemplo para consultar o cadastro de Itens do ERP pela API ConectorGate (incremental após 2021-03-01T00:00:00 – itemType=4 + brand=2):

GET {{endpoint}}/products?itemType=4&brand=2&updatedAt=2021-03-01T00:00:00
{
    "package": "salesAPI",
    "process": "Products",
    "system": "sapBusinessOne",
    "target": "products",
    "user": "intergate",
    "host": "177.200.192.186",
    "effectiveTimestamp": "2021-03-03T18:31:32",
    "itemType": "4",
    "code": "200",
    "success": true,
    "pageSize": 100,
    "pageNum": 1,
    "pageTotal": 1,
    "hasNext": false,
    "useCustom": true,
    "usePartnumber": false,
    "dimensionUnit": "cm",
    "weightUnit": "kg",
    "priceList": "2",
    "priceListPromo": "1",
    "count": 1,
    "values": [
        {
            "erpKey": "FL00119",
            "codeBars": "",
            "brand": "2-DENGO",
            "itemType": "4-Produto Acabado",
            "itemGroup": "104-PRODUTOS ACABADOS",
            "materialGroup": "",
            "description": "ARGONAY",
            "longDescription": "",
            "measureUnit": "UN",
            "swidth": 0.000,
            "slength": 0.000,
            "sheight": 0.000,
            "sweight": 0.000,
            "price": 19.00,
            "pricePromo": 18.10,
            "stock": 117.0000,
            "stockValue": 1287.00,
            "availableStock": 117.0000,
            "treeType": "N",
            "category": "4",    => CAMPO UDF
            "subcategory": "42",    => CAMPO UDF
            "createdAt": "2020-10-20T16:32:48",
            "updatedAt": "2021-03-02T12:25:31",
            "canceledAt": null
        }
    ]
}

[3] Preços

A integração de preços do ERP para a plataforma de Ecommerce ou Marketplace pode envolver uma única tabela de preços, ou mais de uma tabela de preços.

Também pode ser necessário o mapping (de/para) entre as tabelas de preço do ERP e as tabelas de preço do Ecommerce.

A consulta de preços da API ConectorGate permite consulta full e consulta incremental, consulta em lista ou consulta unitária (por erpKey ou codeBars), e conta com recurso de paginação.

E permite ainda filtrar a listagem de preços por itemType, itemGroup, brand e/ou pricelistKey.

Segue exemplo para consultar o cadastro de Preços da tabela de preços 1 do ERP pela API ConectorGate (full – itemType=4 + brand=2):

GET {{endpoint}}/prices?itemType=4&brand=2&priceListKey=1

Segue exemplo para consultar o cadastro de Preços da tabela de preços 1 do ERP pela API ConectorGate (incremental após 2021-03-01T00:00:00 – itemType=4 + brand=2):

GET {{endpoint}}/prices?itemType=4&brand=2&priceListKey=1&updatedAt=2021-03-01T00:00:00
{
    "package": "salesAPI",
    "process": "Prices",
    "system": "sapBusinessOne",
    "target": "prices",
    "user": "intergate",
    "host": "177.200.192.186",
    "effectiveTimestamp": "2021-03-03T18:35:20",
    "priceListKey": "1",
    "code": "200",
    "success": true,
    "pageSize": 200,
    "pageNum": 1,
    "pageTotal": 1,
    "hasNext": false,
    "count": 1,
    "values": [
        {
            "productKey": "FL00119",
            "codeBars": "",
            "itemType": "4-Produto Acabado",
            "itemGroup": "104-PRODUTOS ACABADOS",
            "priceListKey": "1",
            "priceListName": "E-COMMERCE",
            "currency": "R$",
            "price": 18.095200,
            "createdAt": "2020-10-20T16:32:48",
            "updatedAt": "2021-03-02T12:25:31",
            "canceledAt": null
        }
    ]
}
Nota: a consulta de produtos (/products) já fornece no response dois (2) preços em cada item (price e promotionalPrice), conforme tabelas de preço definidas no Setup da API).

[4] Estoques

A integração de estoques do ERP para a plataforma de Ecommerce ou Marketplace pode envolver um único depósito, ou mais de um depósito.

Também pode ser necessário o mapping (de/para) entre os depósitos do ERP e os wareHouses/shipPoints do Ecommerce.

A consulta de estoques da API ConectorGate permite consulta full e consulta incremental, consulta em lista ou consulta unitária (por erpKey ou codeBars), e conta com recurso de paginação.

E permite ainda filtrar a listagem de estoques por itemType, itemGroup, brand e/ou whsCode. Permite ainda exibir os saldos por lote/validade (urlParam showBatchNumbers=true).

Segue exemplo para consultar o Estoque do Depósito 01 no ERP pela API ConectorGate(full – itemType=4 + brand=2):

GET {{endpoint}}/stocks?itemType=4&brand=2&whsCode=01

Segue exemplo para consultar o Estoque do Depósito 01 no ERP pela API ConectorGate (incremental após 2021-03-01T00:00:00 – itemType=4 + brand=2):

GET {{endpoint}}/stocks?itemType=4&brand=2&whsCode=01&updatedAt=2021-03-01T00:00:00
{
    "package": "salesAPI",
    "process": "Stocks",
    "system": "sapBusinessOne",
    "target": "stocks",
    "user": "intergate",
    "host": "177.200.192.186",
    "effectiveTimestamp": "2021-03-03T18:46:15",
    "whsCode": "01",
    "brand": "2",
    "useBin": "false",
    "code": "200",
    "success": true,
    "pageSize": 200,
    "pageNum": 1,
    "pageTotal": 1,
    "hasNext": false,
    "count": 1,
    "values": [
        {
            "erpKey": "PA00159",
            "codeBars": "7898963034452",
            "itemType": "4-Produto Acabado",
            "itemGroup": "104-PRODUTOS ACABADOS",
            "whsCode": "01",
            "stock": 94.0000,
            "stockValue": 0.00,
            "availableStock": 94.0000,
            "createdAt": "2020-01-07T18:02:00",
            "updatedAt": "2021-03-02T17:37:00",
            "canceledAt": null
        }
    ]
}

[5] Envio de Pedidos de Venda

A integração de pedidos de venda da plataforma de Ecommerce ou Marketplace para o ERP pode variar de plataforma para plataforma, mas em geral ou a plataforma oferece a opção de consulta incremental nos pedidos ou o consumo de um feed de status.

Geralmente também envolve a alteração de status do pedido na plataforma ou retirada do status do feed de status, após a integração ser bem sucedida no ERP.

Com os dados do pedido obtidos da plataforma, seja através de consulta incremental ou feed de status, basta formatar e enviar os dados obtidos para o endpoint PUT /orders da API ConectorGate.

Não é necessário enviar antes o cliente para outro endpoint; a API ConectorGate já possui orquestração para tratar a inclusão/alteração do clientes nas melhores práticas para o ERP SAP Business One (2 ou 3 endereços, consolidação, canais, vendedor, etc).

Para o envio dos dados obtidos no Ecommerce ou Marketplace para a API ConectorGate pode ser necessário o mapping (de/para) para filiais, para depósitos e para outros elementos entre Ecommerce e ERP .

Nota: a chave para o Parceiro de Negócios é o campo taxNumber (CRD1.TaxId0 ou CRD1.TaxId1), e a a chave para o Pedido de Venda é o campo orderNum (ORDR.NumAtCard).

Além da orquestração no tratamento para Parceiro de Negócio e Pedido de Venda no mesmo request, ainda pode ser gerado no mesmo request único (dependendo do Setup da API e/ou de urlParams específicos):

  • Picklist
  • Nota Saida + Contas Receber
  • Adiantamento de Cliente + Contas Receber
Nota: Independente de haver ou não processamentos adicionais após a inclusão do Pedido de Venda no ERP, a API ConectorGate grava os dados de pagamento enviados para a API em tabela UDT ConectorGate no banco de dados do SAP Business One. 
Isto permite que estes dados possam ser utilizados futuramente em algum processo de automatização das baixas.

Segue exemplo para incluir um novo Pedido no ERP pela API ConectorGate:

PUT {{endpoint}}/orders
{
    "branch": "3",
    "orderNum": "1000001002",
    "dueDate": "2021-01-10",
    "comments": "Teste Intergate",
    "customer": {
        "type": "C",
        "taxType": "P",
        "fullName": "Rafael Hernandes Ogeda",
        "aliasName": "Ogeda",
        "email": "rafael.ogeda@intergate.net.br",
        "phone": "+5547988493101",
        "taxNumber": "xxx.xxx.xxx-xx",
        "stateTaxNumber": "Isento",
        "priceListKey": "1",
        "groupCode": "102",
        "useB2B": "Não",     => CAMPO UDF
        "storeOrigin": "SAP",     => CAMPO UDF
        "financialBlock": "2",     => CAMPO UDF
        "billingAddress": {
            "streetType": "RUA",
            "address1": "LUIZ WALENDOWSKY",
            "exteriorNumber": "218",
            "address2": "",
            "community": "PEREQUE",
            "city": "PORTO BELO",
            "county*": "5344",
            "stateCode": "SC",
            "countryCode": "BR",
            "postalCode": "88210000"
        }
    },
    "items": [
        {
            "productKey": "I0011933",
            "productName": "ORIGEM LISTA DE PREÇO - M.P",
            "quantity": 1,
            "unit": "UN",
            "unitPrice": 301.11,
            "taxBasis": 301.11,
            "comments": "Teste Intergate"
        },
        {
            "productKey": "I0011934",
            "productName": "ORIGEM LISTA DE PREÇO - M.A.1",
            "quantity": 1,
            "unit": "UN",
            "unitPrice": 354.48,
            "taxBasis": 354.48,
            "comments": "Teste Intergate"
        }
    ],
    "shipment": {
        "shippingAddress": {
            "streetType": "RUA",
            "address1": "LUIZ WALENDOWSKY",
            "exteriorNumber": "218",
            "address2": "",
            "community": "PEREQUE",
            "city": "PORTO BELO",
            "county*": "5344",
            "stateCode": "SC",
            "countryCode": "BR",
            "postalCode": "88210000"
        }
    },
    "totals": {
        "orderTotal": {
            "netValue": 705.59,
            "grossValue": 705.59,
            "baseValue": 705.59,
            "taxValue": 0
        },
        "merchandizeTotal": {
            "netValue": 655.59,
            "grossValue": 655.59,
            "baseValue": 655.59,
            "taxValue": 0
        },
        "shippingTotal": {
            "netValue": 50,
            "grossValue": 50,
            "baseValue": 50,
            "taxValue": 0
        }
    },
    "payments": [
        {
            "paymentMethod": "cash",
            "installments": 1,
            "amount": 705.59
        }
    ]
}

O response fornecido pela API Conectorgate, em caso de transação bem sucedida terá “code”: “200” e “success”: true. No vetor values teremos os objetos incluidos/alterados no SAP Business One:

  • “object”: “2” (Parceiro de Negócios) => OCRD.CardCode = “C00000003” (new)
  • “object”: “17” (Pedido de Venda) => ORDR.DocEntry = “231” (new)
{
    "package": "salesAPI",
    "process": "Orders",
    "system": "sapBusinessOne",
    "target": "orders",
    "user": "Intergate",
    "host": "177.200.192.186",
    "effectiveTimestamp": "2021-01-07T11:57:37",
    "code": "200",
    "success": true,
    "useCustom": "true",
    "values": [
        {
            "object": "2",
            "table": "OCRD",
            "action": "Insert",
            "erpKey": "C00000003"
        },
        {
            "object": "17",
            "table": "ORDR",
            "action": "Insert",
            "erpKey": "231"
        }
    ]
}

[6] Notas de Saída/Entregas

A integração de notas de saída/entregas do ERP para a plataforma de Ecommerce ou Marketplace pode envolver uma únical filial ou diversas filiais, um único Documento de Marketing do ERP ou mais de um (exemplo:

Nota de Saida e Entrega). Também pode ser necessário o mapping (de/para) entre os depósitos do ERP e os wareHouses/shipPoints do Ecommerce.

A API ConectorGate disponiliza ambos os serviços /invoices e /deliveries, ambos com os mesmos recursos de filtros, paginação, consulta incremental e formato de response.

Como a maioria dos campos relacionados com a autorização de invoces/deliveries no Sefaz para o SAP Business One estão relacionados com campos UDF.

A API ConectorGate contempla no Setup da API a definição de três (3) campos UDF para: customNfeProtocol, customNfeAuthCode, customNfeKeyAccess

A consulta de notas de saída da API ConectorGate permite consulta full e consulta incremental, consulta em lista ou consulta unitária (por erpKey ou docNum ou orderNum ou nfeNum ou customNfeKeyAccess), e conta com recurso de paginação.

Permite ainda filtrar a listagem de notas de saída por branch, partnerKey, sellerKey, salesAgentKey, carrierKey, etc.

Segue exemplo para consultar Notas de Saída no ERP da filial 1 + criadas entre hoje e D-2 + do vendedor 22 + autorizadas no Sefaz pela API ConectorGate (full):

GET {{endpoint}}/invoices?createdFrom=2021-03-01&createdTo=2021-03-03&branch=1&sellerKey=22&customNfeAuthCode=100

Segue exemplo para consultar Notas de Saída no ERP da filial 1 + criadas entre hoje e D-2 + do vendedor 22 + autorizadas no Sefaz pela API ConectorGate (incremental após 2021-03-01T00:00:00):

GET {{endpoint}}/invoices?createdFrom=2021-03-01&createdTo=2021-03-03&branch=1&sellerKey=22&nfeAuthCode=100&updatedAt=2021-03-01T00:00:00
{
    "package": "salesAPI",
    "process": "Invoices",
    "system": "sapBusinessOne",
    "target": "invoices",
    "user": "intergate",
    "host": "177.200.192.186",
    "effectiveTimestamp": "2021-03-03T19:06:25",
    "branch": "1",
    "createdFrom": "2021-03-01",
    "createdTo": "2021-03-03",
    "sellerKey": "22",
    "code": "200",
    "success": true,
    "pageSize": 100,
    "pageNum": 1,
    "pageTotal": 1,
    "hasNext": true,
    "count": 1,
    "values": [
        {
            "branch": "1",
            "branchName": "Dengo Chocolates SA",
            "branchTaxNumber": "xx.xxx.xxx/0001-xx",
            "sellerKey": "22",
            "erpKey": "391729",
            "docNum": "362802",
            "orderNum": "1114202812406-01",
            "docStatus": "O",
            "docDate": "2021-03-01",
            "docDueDate": "2021-03-01",
            "taxDate": "2021-03-01",
            "docValue": 198.000000,
            "nfeSeries": "1",
            "nfeNum": "41840",
            "nfeType": "NFe (55)",
            "nfeModel": "55",
            "nfeValue": 198.000000,
            "baseObject": "17",
            "baseKey": "447973",
            "comments": "De: Màe e Pai\nPara: Giuli\nMensagem:\nReceba muito Dengo, nosso Amor Eterno\nUm abraço apertado e um beijo demorado Based On Sales Orders 346794.",
            "customNfeKeyAccess": "35210323244006000100550010000418401443272806",
            "customNfeAuthCode": 100,
            "customNfeAuthProtocol": "135210222834964",
            "ecommDocNum": "1114202812406-01",     => CAMPO UDF
            "shippingMethod": "UELLO(SP/OSA/BAR/PAR/GUA/ABC/TAB/ITAP)",     => CAMPO UDF
            "ecommDueDate": "2021-03-03T17:00:00.0000000+00:00",     => CAMPO UDF
            "isGift": "N",     => CAMPO UDF
            "shippingType": "Normal",     => CAMPO UDF
            "createdAt": "2021-03-01T10:10:13",
            "updatedAt": "2021-03-01T11:46:41",
            "canceledAt": null,
            "customer": {
                "type": "C",
                "taxType": "P",
                "partnerKey": "C061747",
                "docEntry": "63754",
                "fullName": "Estefânia Galvan",
                "aliasName": "Estefânia",
                "email": "xxx@hotmail.com",
                "phone": "+5511xxxxxxxx",
                "phoneSecondary": "",
                "cellular": "",
                "taxNumber": "xxx.xxx.xxx-xx",
                "stateTaxNumber": "",
                "cityTaxNumber": "",
                "billingAddress": {
                    "address1": "Antonio Prado",
                    "address2": "apto 132",
                    "city": "São Paulo",
                    "county": "5344",
                    "postalCode": "xxxxx-xxx",
                    "stateCode": "SP",
                    "countryCode": "BR",
                    "community": "Pinheiros",
                    "exteriorNumber": "354",
                    "streetType": "Rua"
                },
                "shippingAddress": {
                    "address1": "Antonio Prado",
                    "address2": "apto 132",
                    "city": "São Paulo",
                    "county": "5344",
                    "postalCode": "xxxxx-xxx",
                    "stateCode": "SP",
                    "countryCode": "BR",
                    "community": "Pinheiros",
                    "exteriorNumber": "354",
                    "streetType": "Rua"
                }
            },
            "items": [
                {
                    "lineNum": "0",
                    "productKey": "PA00386",
                    "codeBars": "7898687310771",
                    "productName": "DENGO OVO QUEBRA-QUEBRA BIJU 260g",
                    "quantity": 1.000000,
                    "unit": "UN",
                    "unitPrice": 94.290000,
                    "taxBasis": 94.290000,
                    "usage": "9",
                    "cfop": "5101",
                    "discountRate": 0.000000,
                    "taxValue": 4.71,
                    "freightValue": 0.000000,
                    "grossValue": 124.700000,
                    "unitCost": 25.280000,
                    "comments": "",
                    "itemTaxes": [ ... ]
                },
                {
                    "lineNum": "1",
                    "productKey": "PA00388",
                    "codeBars": "7898687310764",
                    "productName": "DENGO OVO QUEBRA-QUEBRA BANANA 260g",
                    "quantity": 1.000000,
                    "unit": "UN",
                    "unitPrice": 94.290000,
                    "taxBasis": 94.290000,
                    "usage": "9",
                    "cfop": "5101",
                    "discountRate": 0.000000,
                    "taxValue": 4.71,
                    "freightValue": 0.000000,
                    "grossValue": 124.700000,
                    "unitCost": 36.620000,
                    "comments": "",
                    "itemTaxes": [ ... ]
                }
            ],
            "totals": {
                "invoiceTotal": {
                    "netValue": 188.58,
                    "grossValue": 198.000000,
                    "baseValue": 188.58,
                    "taxValue": 9.420000
                },
                "merchandizeTotal": {
                    "netValue": 188.58,
                    "grossValue": 198,
                    "baseValue": 188.58,
                    "taxValue": 9.42,
                    "priceAdjustValue": 0.00,
                    "priceAdjustType": "",
                    "priceAdjustPromotionId": "",
                    "priceAdjustCouponId": ""
                },
                "shippingTotal": {
                    "netValue": 0.00,
                    "grossValue": 0.00,
                    "baseValue": 0.00,
                    "taxValue": 0.00,
                    "shipAdjustValue": 0.00,
                    "shipAdjustType": "",
                    "shipAdjustPromotionId": "",
                    "shipAdjustCouponId": ""
                }
            },
            "taxes": [ ... ]
        }
    ]
}

[7] Status de Pedido

A integração de status de pedido do ERP para a plataforma de Ecommerce ou Marketplace normalmente envolve a notificação de eventos de Despacho e Entrega do pedido (juntamente com o link de rastreio).

A consulta de status de pedido da API ConectorGate permite consulta full e consulta incremental, consulta em lista ou consulta unitária (por erpKey ou docNum ou orderNum), e conta com recurso de paginação.

Permite ainda filtrar a listagem de status de pedido por branch, partnerKey, sellerKey, salesAgentKey, carrierKey, etc.

Como a maioria dos campos relacionados com as etapas posteriores ao Faturamento do Pedido estão relacionados com campos UDF, a API ConectorGate contempla no Setup da API a definição de seis (6) campos UDF para:

customStatus, customStatusNotify, customShipMethod, customShipType, customTrackingKey e customTrackingUrl.

A API ConectorGate possui ainda o serviço /orderStatus/options para consulta das opções para o campo customStatus.

Segue exemplo para consultar o Status de Pedidos da filial 1 no ERP pela API ConectorGate (full):

GET {{endpoint}}/orderStatus?branch=1

Segue exemplo para consultar o Status de Pedidos da filial 1 no ERP pela API ConectorGate (incremental após 2021-03-01T00:00:00):

GET {{endpoint}}/orderStatus?branch=1&updatedAt=2021-03-01T00:00:00
{
    "package": "salesAPI",
    "process": "OrderStatus",
    "system": "sapBusinessOne",
    "target": "orderStatus",
    "user": "intergate",
    "host": "177.200.192.186",
    "effectiveTimestamp": "2021-03-03T18:55:45",
    "createdFrom": "2021-03-03",
    "createdTo": "2021-03-03",
    "code": "200",
    "success": true,
    "pageSize": 100,
    "pageNum": 1,
    "pageTotal": 1,
    "hasNext": true,
    "count": 1,
    "values": [
        {
            "branch": "1",
            "partnerKey": "C248636",
            "sellerKey": "22",
            "salesAgentKey": "",
            "carrierKey": "",
            "erpKey": "451080",
            "orderNum": "1114751755445-01",
            "docNum": "349624",
            "docStatus": "C",
            "docDate": "2021-03-03",
            "customStatus": "6",
            "customStatusNotify": "6",
            "customShipMethod": "UELLO(SP/OSA/BAR/PAR/GUA/ABC/TAB/ITAP)",
            "customShipType": "Normal",
            "customTrackingKey": "",
            "customTrackingUrl": "https://uello.co/1BD8qPPLqV123",
            "createdAt": "2021-03-03T08:30:36",
            "updatedAt": "2021-03-03T08:40:11",
            "canceledAt": null
        }
    ]
}

Assuntos relacionados que possam lhe interessar:
Nossa documentação no Postman
Case Vtex x Intergate
Desenvolva sua API com Postman
InterGATE e Flexy-SalesAPI
Integração entre sistemas e a evolução das APIs
Integração de SAP B1 e Totvs Protheus com e-commerce



0 comentários

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *