Esta documentação tem como objetivo descrever como funciona a integração de envio de Pedidos de Venda da plataforma de E-commerce Shopify para o ERP TOTVS Varejo Supermercados, utilizando a plataforma TOTVS iPaaS como middleware de comunicação.
O fluxo de integração via Ipass, contempla a seguinte estrutura, o Pedido de Venda vindo do Shopify é recepcionado no Ipass via webhook, para envio dos dados do pedido do ERP para o Hub, após inserção no mesmo, o Ipass seguirá no fluxo de montagem e validação do pedido, onde atenderá premissas como confirmação de pagamento, para que este siga o processo de integração, após este este passo, o Ipass seguirá para o recepcionamento do pedido no ERP onde este será feito via API SmPedidoVenda/api/v1/PedidoVenda, onde ao atender as regras de negócio do ERP, o pedido terá sua integração concluída.
Campos utilizados no fluxo de integração de pedidos do Shopify para o Hub.
Campo no Hub | Campo no Shopify |
eCommerceReferenceKey | order.id |
orderId | order.id |
sequenceId | order.id |
orderStatusECommerceReferenceKey | order.financial_status |
eCommerceCreateDate | order.created_at |
eCommerceLastChange | order.updated_at |
totalValue | order.total_price |
listOfTotal.Items.value | order.total_line_items_price |
listOfTotal.Discounts.value | order.current_total_discounts |
listOfTotal.Shipping.value | order.shipping_lines.price |
listOfTotal.Tax.value | order.current_total_tax |
totalValue | order.total_price |
listOfOrderPayment.paymentMethodECommerceReferenceKey | order.payment_gateway_names |
customer.eCommerceReferenceKey | order.customer.id |
customer.firstName | order.customer.first_name |
customer.lastName | order.customer.last_name |
customer.email | order.customer.email |
customer.phone | order.customer.phone |
customer.addressInfo.street | order.shipping_address.address1 |
customer.addressInfo.receiverName | order.shipping_address.name |
customer.addressInfo.postalCode | order.shipping_address.zip |
customer.addressInfo.city | order.shipping_address.city |
customer.addressInfo.state | order.shipping_address.province_code |
customer.addressInfo.country | order.shipping_address.country_code |
customer.addressInfo.complement | order.shipping_address.address2 |
listOfOrderItem.eCommerceReferenceKey | order.line_items.id |
listOfOrderItem.productSKUECommerceReferenceKey | order.line_items.variant_id |
listOfOrderItem.quantity | order.line_items.quantity |
listOfOrderItem.price | order.line_items.price |
listOfOrderItem.listPrice | order.line_items.listPrice |
listOfOrderItem.sellingPrice | order.line_items.sellingPrice |
listOfOrderItem.isGift | order.line_items.gift_card |
listOfOrderItem.discontValue | order.line_items.discount_allocations.amount |
salesChannel | order.order_status_url |
extraText1 | fulfillment.fulfillment_orders.delivery_method.min_delivery_date_time |
extraText2 | fulfillment.fulfillment_orders.delivery_method.max_delivery_date_time |
Campos utilizados no fluxo de integração de pedidos do Hub para o ERP, , através do endpoint GET SmPedidoVenda/api/v1/Cadastros/ProdutoSku, e suas respectivas referências no Hub e no ERP.
Campo | ERP (Linha Consinco) | Shopify |
productSKUId | Cadastros > Aba Produto > Produto > Aba Geral > Campo: Código (Código do Produto) concatenado com a quantidade da embalagem do produto (map_produto.seqproduto e map_famembalagem.qtdembalagem). Porém, terão as identificações P antes do SeqProduto, e E antes de QtdEmbalagem. | Hub: “erpReferenceKey” Shopify: sku |
createDate | Será um Default com a data 01-Jan-2000. | Hub: “createDate” Shopify: created_at |
lastChange | Última Data e Hora de alteração no Cadastro de produto (mrl_prodempseg.dtaalteracao), ou a última data e hora de alteração do preço da embalagem no Cadastro de família em Cadastro de família, em Cadastros > Aba Família > Família> Aba Embalagens > Campo: Data Alteração (map_famembalagem.dtahoraltembpreco), caso não tenha alterações, retornará como default a mesma data utilizada no campo createDate. | Hub: “lastChange” Shopify: updated_at |
name | Refere-se ao campo Nome Produto E-Commerce, localizado em Cadastros > Aba Produto > Produto > Aba E-Commerce > Campo: Nome Produto E-Commerce (prod.nomeprodutoecomm), ou então, caso este campo não esteja preenchido, pois, é opcional no cadastro do produto, é utilizado o campo Descrição Reduzida em Cadastros > Aba Produto > Produto > Aba Geral > Campo: Descrição Reduzida (map_produto.descreduzida). | Hub: “name” Shopify: title |
width | Largura da embalagem no Cadastro de família, em Cadastros > Aba Família > Família> Aba Embalagens > Campo: Largura (cm). | Hub: “width” Shopify: não existe |
realWidth | Largura da embalagem no Cadastro de família, em Cadastros > Aba Família > Família> Aba Embalagens > Campo: Largura (cm). | Hub: “realWidth” Shopify: não existe |
weightKg | Peso bruto da embalagem no Cadastro de família, em Cadastros > Aba Família > Família> Aba Embalagens > Campo: Peso Bruto (kg). | Hub: “weightKg” Shopify: weight |
RealWeightKg | Peso bruto da embalagem no Cadastro de família, em Cadastros > Aba Família > Família> Aba Embalagens > Campo: Peso Bruto (kg). | Hub: “RealWeightKg” Shopify: weight |
length | Profundidade da embalagem no Cadastro de família, em Cadastros > Aba Família > Família> Aba Embalagens > Campo: Profund. (cm). | Hub: “length” Shopify: não existe |
realLength | Profundidade da embalagem no Cadastro de família, em Cadastros > Aba Família > Família> Aba Embalagens > Campo: Profund. (cm). | Hub: “realLength” Shopify: não existe |
height | Altura da embalagem no Cadastro de família, em Cadastros > Aba Família > Família> Aba Embalagens > Campo: Altura (cm). | Hub: “height” Shopify: não existe |
realHeight | Altura da embalagem no Cadastro de família, em Cadastros > Aba Família > Família> Aba Embalagens > Campo: Altura (cm). | Hub: “realHeight” Shopify: não existe |
unitMultiplier | Caso no cadastro da família do produto, esta, esteja selecionada como pesável em Cadastros > Aba Família > Família > Aba Geral > Características > Campo: É pesável, será utilizado o campo Múltiplo de Venda localizado em Cadastros > Aba Produto > Produto > Aba E-Commerce > Campo: Múltiplo de Venda (map_produto.qtdmultiplovdaecommerce), ou caso não tenha valor atribuído para este campo, será utilizado o valor default 1.00, como unidade de multiplicação. | Hub: “unitMultiplier” Shopify: não existe |
measurementUnit | Embalagem no Cadastro de família, em Cadastros > Aba Família > Família> Aba Embalagens > Campo: Embalagem, concatenado com o campo Quantidade em Cadastro de família, em Cadastros > Aba Família > Família> Aba Embalagens > Campo: *Quantidade. | Hub: “measurementUnit” Shopify: weight_unit |
manufacturer | Referência do Fabricante(map_produto.reffabricante), localizado em Cadastros > Aba Produto > Produto > Aba Geral > Campo: Referência do Fabricante. | Hub: “manufacturer” Shopify: não existe |
productRootTitle | Refere-se ao campo Nome Produto E-Commerce, localizado em Cadastros > Aba Produto > Produto > Aba E-Commerce > Campo: Nome Produto E-Commerce (prod.nomeprodutoecomm), ou então, caso este campo não esteja preenchido, pois, é opcional no cadastro do produto, é utilizado o campo Descrição Reduzida em Cadastros > Aba Produto > Produto > Aba Geral > Campo: Descrição Reduzida (map_produto.descreduzida). | Hub: “productRootTitle” Shopify: option1 |
companyId | Será nulo, pois, no conceito de SKU para integração shopify, não será tratado com diferenciais por empresa, e sim no âmbito geral de integração, porém, caso houvesse, este campo seria responsável pelo campo nroempresa, localizado em Parâmetros > Parâmetros > Empresa> Aba Geral > Empresa (max_empresa.nroempresa). | Hub: “companyId” Shopify: não existe |
branchId | Será nulo, pois, no conceito de SKU para integração shopify, não será tratado com diferenciais por empresa, e sim no âmbito geral de integração, porém, caso houvesse, este campo seria responsável pelas empresas filiais, representado pelo campo nroempresa, localizado em Parâmetros > Parâmetros > Empresa> Aba Geral > Empresa (max_empresa.nroempresa). | Hub: “branchId” Shopify: não existe |
isAvaiable | Enviado como default true. | Hub: “isAvaiable” Shopify: não existe |
price | Este preço será o valor default caso não tenha tabela de preço para o produto. O preço é definido por produto, segmento e quantidade da embalagem. | Hub: “price” Shopify: price |
listPrice | Será enviado como default 0, pois não será enviada uma lista de preço pelo SKU. | Hub: “listPrice” Shopify: presentment_prices |
modalType | Será enviado como nulo, pois, não é utilizado tanto no HubEcommerce, quanto, no Shopify. | Hub: “modalType” Shopify: não mapeado |
modalId | Será enviado como 0, pois, não é utilizado tanto no HubEcommerce, quanto, no Shopify. | Hub: “modalId” Shopify: não existe |
cubicWeight | Será enviado como 0, pois, não é utilizado tanto no HubEcommerce, quanto, no Shopify. | Hub: “cubicWeight” Shopify: não existe |
commercialConditionId | Será enviado como 0, pois, não é utilizado tanto no HubEcommerce, quanto, no Shopify. | Hub: “commercialConditionId” Shopify: não existe |
groupCode | Será enviado como nulo, pois, não é utilizado tanto no HubEcommerce, quanto, no Shopify. | Hub: “groupCode” Shopify: não existe |
inventoryItemId | Será enviado como nulo, pois este campo é originado e populado pelo Shopify, após o retorno da integração. Refere-se ao número de identificação deste produto no inventário da plataforma Shopify. Após a integração do SKU no Shopify, o campo inventoryItemId do HubEcommerce é atualizado, recebendo o valor de inventory_item_id do Shopify. Observação: Este campo não deve ter valor retornado ao ERP; é apenas um controle entre o HubEcommerce e o Shopify. | Hub: “inventoryItemId” Shopify: inventory_item_id |
disableStock | Enviado como default false. | Hub: “disableStock” Shopify: não existe |
updateBrand | Enviado como default false. | Hub: “updateBrand” Shopify: não existe |
productRootId | Refere-se ao Código do Produto no ERP, localizado em Cadastros > Aba Produto > Produto > Aba Geral > Campo: Código (Código do Produto). | Hub: “productRootERPReferenceKey” Shopify: não existe |
rewardValue | Enviado como default 0, pois não é utilizado no processo de integração ao Shopify. | Hub: “rewardValue” Shopify: não existe |
isActive | Indica status de Ativo do SKU, variando entre ativo que é enviado como true e inativo que é enviado como false.
As informações estão detalhadas no tópico 3 - Regras de Utilização no ERP | Hub: “isActive” Shopify: não existe |
isKit | Refere-se à associação de produtos similares, caso exista, para o SKU à ser integrado. Retornando true caso exista, e false, caso não exista. | Hub: “isKit” Shopify: não existe |
listOfEAN | Refere-se ao campo Códigos, localizando em Cadastros > Aba Produto > Produto > Aba Códigos > Campo: Código, | Hub: “listOfBarCode” Shopify: barcode |
Painel de monitoramento: https://hubecommerce.totvs.app/product-sku
Link: Detalhamento do fluxo