Entrega de Lockers

Visão Geral

Que tal disponibilizar lockers para aumentar a quantidade de pontos de retirada da sua loja? O Linx OMS está pronto para isso!

O presente documento tem como objetivo a apresentação de como o OMS irá disponibilizar essa nova modalidade.

Algumas definições:

  • Lockers: armários inteligentes ou “Smart Lockers” equipados com tecnologia que permite a abertura automática das portas, muito parecido com um guarda-volumes. O sistema de travas é monitorado remotamente e liberado com senhas únicas.

  • Clique Retire: É uma empresa que disponibiliza lockers para que o consumidor compre online e escolha um ponto fixo mais perto de casa para retirar o pedido. Dependendo da empresa, pode ser uma loja da rede ou um locker. Varejo de roupas, eletroeletrônico, construção, decoração, farmácias, joalheria e até supermercados já utilizam este serviço.

🚧

Atenção

Esta nova funcionalidade só será disponibilizada após o cliente realizar acordo comercial com a Clique Retire. Para isso, se faz necessário que este preencha os dados da Landing Page https://info.cliqueretire.com.br/linx.

Benefícios

A funcionalidade apresenta alguns benefícios:

  • Possibilidade de processos de retirada de produtos fora das lojas;
  • A retirada nos lockers é mais eficiente. O consumidor só precisa se identificar no painel, por meio de dados como CPF e QR Code da compra. Com isso, se evita congestionamento em lojas;
  • Área de recebimento totalmente acessível e com localização estratégica. Com isso, acaba o problema com a impossibilidade de receber encomendas em casa/apto;
  • A encomenda fica disponível no armário poucas horas após a aprovação do pedido. A concentração das entregas em um mesmo ponto, garante um custo mais baixo e maior efetividade. Melhora o rastreamento, atrasos e custo de frete com entregas espalhadas.

Há grandes possibilidades de aumento de clientes e pedidos para o seu negócio.

Configurações de Produto

A funcionalidade necessita de ajuste de configuração.

Editar/Criar Filiais

1.Filiais → 2.Cadastro de filiais → 3.Envio para locker (marcar esta opção significa que a loja participará das cotações de frete e poderá receber pedidos a serem enviados para lockers).

Editar/Criar de Modalidades

1.Envio pela Loja → 2.Modalidades de Frete → 3.Tornar modalidade exclusiva para 'lockers' (ao habilitar o campo, a modalidade se torna exclusiva para cotações usando lockers.)

🚧

Atenção

Após habilitado, não será possível editar ou desfazer essa configuração.

No cadastro da modalidade, é necessário informar se ela é exclusiva para lockers para ser possível retornar na cotação. Além disso, o nome da modalidade deve ser exatamente igual ao nome do company que fornecerá o locker como retirada.

Exemplo: Se a company na tabela de lockers for igual a cliqueretire, o nome da modalidade deverá ser cliqueretire, também.

Cadastrar Transportadora

  1. Envio pela Loja → 2.Transportadoras (informar os dados da transportadora)

Cadastrar Tabela de Frete

  1. Envio pela Loja → 2.Tabela de Frete (informar os dados da tabela de frete)

No cadastro da tabela de frete associe a transportadora cadastrada com a modalidade, defina o ID do contrato e vincule as filiais que realizarão o ship to locker.
Obs.: Para possibilitar o retorno de lockers com os preços e prazos, se faz subir uma tabela de frete.

Configurações de API

A nova funcionalidade disponibiliza via API o retorno de lockers com preço, prazo e a referência que cada locker pode atender.

POST /v1/clients/{clientId}/channels/{channelId}/freights
Endpoint responsável por retornar todos os armários (E-Boxes) sempre que alguma location do mesmo estado dos lockers possibilitar uma entrega de shipment e o cliente possuir uma tabela de frete cadastrada para a Clique Retire.

Request/Response

{
    "destinationZipcode": "05550900",
    "clientId": "qa",
    "channelId": "site",
    "groups": {
        "light": {
            "items": {
                "TesteLocker": {
                    "quantity": 1,
                    "price": 54.99,
                    "weight": 1,
                    "height": 100,
                    "width": 100,
                    "length": 100,
                    "stockType": "PHYSICAL"
                }
            }
        }
    }
}
{
    "quoteId": "56ec578a-cae5-496f-b147-d4a0e308528f",
    "groups": {
        "light": {
            "pickup": {},
            "pickupExceptions": {},
            "shipment": {},
            "shipmentExceptions": {},
            "locker": {
                "CR0177": {
                    "method": "PICKUP",
                    "methodId": "cliqueretire",
                    "allowReservation": false,
                    "allowPrePaidPickup": false,
                    "latitude": -23.4827802,
                    "longitude": -46.6448071,
                    "fulfillments": {
                        "F1": {
                            "id": "F1",
                            "locationId": "CR0177",
                            "locationType": "locker",
                            "type": "PICKUP",
                            "freightCosts": {
                                "deliveryEstimatedDate": "2022-04-15",
                                "handlingPrice": 0,
                                "extraDeadlineTime": 0,
                                "handlingTime": 0,
                                "recessDays": 0,
                                "totalPrice": 15,
                                "stockArrivalTime": 0,
                                "totalTime": 4
                            },
                            "items": {
                                "testelocker": {
                                    "sku": "testelocker",
                                    "lotId": null,
                                    "quantity": 1,
                                    "deliveryDate": null,
                                    "daysToDelivery": 0,
                                    "salesStartsAt": null,
                                    "salesEndsAt": null,
                                    "billingStartsAt": null
                                }
                            },
                            "stockTypes": {
                                "testelocker": {
                                    "PHYSICAL": 1
                                }
                            }
                        }
                    },
                    "price": 15,
                    "time": 4,
                    "reserveDeadline": 0,
                    "pickupDeadline": 0,
                    "deliveryEstimatedDate": "2022-04-15"
                },
                "CR0304": {
                    "method": "PICKUP",
                    "methodId": "cliqueretire",
                    "allowReservation": false,
                    "allowPrePaidPickup": false,
                    "latitude": -23.6184873,
                    "longitude": -46.6821143,
                    "fulfillments": {
                        "F1": {
                            "id": "F1",
                            "locationId": "CR0304",
                            "locationType": "locker",
                            "type": "PICKUP",
                            "freightCosts": {
                                "deliveryEstimatedDate": "2022-04-15",
                                "handlingPrice": 0,
                                "extraDeadlineTime": 0,
                                "handlingTime": 0,
                                "recessDays": 0,
                                "totalPrice": 15,
                                "stockArrivalTime": 0,
                                "totalTime": 4
                            },
                            "items": {
                                "testelocker": {
                                    "sku": "testelocker",
                                    "lotId": null,
                                    "quantity": 1,
                                    "deliveryDate": null,
                                    "daysToDelivery": 0,
                                    "salesStartsAt": null,
                                    "salesEndsAt": null,
                                    "billingStartsAt": null
                                }
                            },
                            "stockTypes": {
                                "testelocker": {
                                    "PHYSICAL": 1
                                }
                            }
                        }
                    },
                    "price": 15,
                    "time": 4,
                    "reserveDeadline": 0,
                    "pickupDeadline": 0,
                    "deliveryEstimatedDate": "2022-04-15"
                }
            },
            "lockerExceptions": {}
        }
    }
}

POST /v1/clients/{clientId}/channels/{channelId}/freights/{locationId}/pickup
Endpoint responsável por realizar shipto dos itens da filial para o locker e sfor do mesmo estado deste, caso o cliente possua uma tabela de frete cadastrada para a Clique Retire.

Request/Response

{
    "clientId": "qa",
    "channelId": "site",
    "locationId": "CR0177",
    "groups": {
        "light": {
            "items": {
                "testelocker": {
                        "quantity": 1,
                    "price": 54.99,
                    "weight": 1,
                    "height": 100,
                    "width": 100,
                    "length": 100,
                    "stockType": "PHYSICAL"
                }
            }
        }
    }
}
{
    "quoteId": "37d0505e-ebfb-4027-8fee-abda2170477e",
    "groups": {
        "light": {
            "pickup": {
                "CR0177": {
                    "allowPrePaidPickup": false,
                    "allowReservation": false,
                    "fulfillments": {
                        "F1": {
                            "id": "F1",
                            "locationId": "L1",
                            "locationType": "Own Store",
                            "type": "SHIPMENT",
                            "freightCosts": {
                                "handlingPrice": 0,
                                "totalPrice": 15,
                                "handlingTime": 5,
                                "extraDeadlineTime": 0,
                                "recessDays": 0,
                                "totalTime": 9,
                                "deliveryEstimatedDate": "2022-04-19",
                                "transferPrice": 0,
                                "transferTime": 0,
                                "stockArrivalTime": 0,
                                "waitingTransferTime": 0
                            },
                            "shipment": {
                                "shippingPrice": 15,
                                "shippingTime": 4,
                                "carrierId": "621",
                                "carrierName": "Clique e retire",
                                "contractId": "1559",
                                "methodId": "cliqueretire",
                                "method": "cliqueretire",
                                "recessDays": 0,
                                "details": {
                                    "minWeight": 0,
                                    "maxWeight": 30000,
                                    "overweightFactor": 0,
                                    "dimensionalFactor": 0,
                                    "grisType": "",
                                    "grisValue": 0,
                                    "grisMinValue": 0,
                                    "adValorenType": "",
                                    "adValorenValue": 0,
                                    "adValorenMinValue": 0,
                                    "otherCharges": 0,
                                    "icmsCost": 0,
                                    "provider": {
                                        "id": "OMS",
                                        "type": "INTERNAL"
                                    }
                                }
                            },
                            "items": {
                                "testelocker": {
                                    "sku": "testelocker",
                                    "lotId": null,
                                    "quantity": 1,
                                    "deliveryDate": null,
                                    "daysToDelivery": 0,
                                    "salesStartsAt": null,
                                    "salesEndsAt": null,
                                    "billingStartsAt": null
                                }
                            },
                            "stockTypes": {
                                "testelocker": {
                                    "PHYSICAL": 1
                                }
                            },
                            "shipToStore": true
                        },
                        "F2": {
                            "id": "F2",
                            "locationId": "CR0177",
                            "locationType": "locker",
                            "type": "PICKUP",
                            "dependsOn": "F1",
                            "freightCosts": {
                                "handlingPrice": 0,
                                "handlingTime": 0,
                                "totalPrice": 0,
                                "stockArrivalTime": 0,
                                "totalTime": 9
                            },
                            "items": {
                                "testelocker": {
                                    "sku": "testelocker",
                                    "lotId": null,
                                    "quantity": 1,
                                    "deliveryDate": null,
                                    "daysToDelivery": 0,
                                    "salesStartsAt": null,
                                    "salesEndsAt": null,
                                    "billingStartsAt": null
                                }
                            },
                            "stockTypes": {
                                "testelocker": {
                                    "PHYSICAL": 1
                                }
                            }
                        }
                    },
                    "price": 15,
                    "time": 9
                }
            },
            "pickupExceptions": []
        }
    }
}

POST /v1/clients/{clientId}/channels/{channelId}/reservations
Endpoint responsável por criar as reservas dos itens que serão armazenado no lockers.

Request/Response

{
    "quoteId": "37d0505e-ebfb-4027-8fee-abda2170477e",
    "clientId": "qa",
    "channelId": "site",
    "orderId": "51917008",
    "freightQuotes": {
      "light": {
        "id": "L1",
        "type": "PICKUP"
      }
    }
  }
{
    "clientId": "qa",
    "channelId": "site",
    "orderId": "12313123131",
    "fulfillments": {
        "F1": {
            "id": "F1",
            "locationId": "L1",
            "locationType": "Own Store",
            "type": "SHIPMENT",
            "freightCosts": {
                "transferPrice": 0,
                "handlingPrice": 0,
                "totalPrice": 15,
                "transferTime": 0,
                "handlingTime": 5,
                "stockArrivalTime": 0,
                "waitingTransferTime": 0,
                "totalTime": 9,
                "recessDays": 0
            },
            "items": {
                "testelocker": {
                    "sku": "testelocker",
                    "lotId": null,
                    "quantity": 1,
                    "deliveryDate": null,
                    "daysToDelivery": 0,
                    "salesStartsAt": null,
                    "salesEndsAt": null,
                    "billingStartsAt": null,
                    "stockType": "PHYSICAL"
                }
            },
            "status": "PENDING",
            "shipToStore": true,
            "shipment": {
                "shippingPrice": 15,
                "shippingTime": 4,
                "carrierId": "621",
                "carrierName": "Clique e retire",
                "contractId": "1559",
                "recessDays": 0,
                "method": "cliqueretire",
                "methodId": "cliqueretire"
            }
        },
        "F2": {
            "id": "F2",
            "locationId": "CR0177",
            "locationType": "locker",
            "type": "PICKUP",
            "freightCosts": {
                "transferPrice": 0,
                "handlingPrice": 0,
                "totalPrice": 0,
                "transferTime": 0,
                "handlingTime": 0,
                "stockArrivalTime": 0,
                "waitingTransferTime": 0,
                "totalTime": 9,
                "recessDays": 0
            },
            "items": {
                "testelocker": {
                    "sku": "testelocker",
                    "lotId": null,
                    "quantity": 1,
                    "deliveryDate": null,
                    "daysToDelivery": 0,
                    "salesStartsAt": null,
                    "salesEndsAt": null,
                    "billingStartsAt": null,
                    "stockType": "PHYSICAL"
                }
            },
            "status": "PENDING",
            "pickup": {},
            "dependsOn": "F1"
        }
    }
}

POST /v2/clients/{clientId}/locations/{id}
Endpoint responsável por atualizar as locations, é necessário habilitar a configuração canShipToLocker (true) para que seja possível realizar o shipto para Locker.

Request

{
  "id": "my-location-id",
  "clientId": "clientId",
  "tradingName": "trading name",
  "canShipToLocker": true,
  "address": {
    "zip": "00000012",
  }
}

GET /v2/lockers
Endpoint responsável por retornar as informações de locker filtrando através dos parâmetros company, ID, IDs, address.state.

Response

{
    "id": "CR0039",
    "name": "MetroRio Fazenda Botafogo",
    "company": "cliqueretire",
    "compartmentType": [
        {
            "type": "L",
            "depth": 47.2,
            "width": 34.2,
            "height": 39.1,
            "internalType": "L"
        },
        {
            "type": "M",
            "depth": 47.2,
            "width": 34.2,
            "height": 18.8,
            "internalType": "M"
        },
        {
            "type": "S",
            "depth": 47.2,
            "width": 34.2,
            "height": 7.8,
            "internalType": "S"
        }
    ],
    "address": {
        "address1": "Av. Pastor Martin Luther King Junior",
        "city": "Rio de Janeiro",
        "state": "RJ",
        "number": "S/N",
        "neighbourhood": "Acari",
        "description": "Área Paga, Plataforma: Central - Cabeceira Sul",
        "zip": "21531010"
    },
    "addressPoint": {
        "latitude": -43.3518906,
        "longitude": -22.8245123
    },
    "createdAt": {
        "date": "2022-04-10 21:55:01.000000",
        "timezone_type": 3,
        "timezone": "UTC"
    }
}

GET /v2/lockers/{id}
Endpoint responsável por retornar as informações de locker individualmente filtrando através dos parâmetros company, address.state.

Response

[
    {
        "id": "CR0039",
        "name": "MetroRio Fazenda Botafogo",
        "company": "cliqueretire",
        "compartmentType": [
            {
                "type": "L",
                "depth": 47.2,
                "width": 34.2,
                "height": 39.1,
                "internalType": "L"
            },
            {
                "type": "M",
                "depth": 47.2,
                "width": 34.2,
                "height": 18.8,
                "internalType": "M"
            },
            {
                "type": "S",
                "depth": 47.2,
                "width": 34.2,
                "height": 7.8,
                "internalType": "S"
            }
        ],
        "address": {
            "address1": "Av. Pastor Martin Luther King Junior",
            "city": "Rio de Janeiro",
            "state": "RJ",
            "number": "S/N",
            "neighbourhood": "Acari",
            "description": "Área Paga, Plataforma: Central - Cabeceira Sul",
            "zip": "21531010"
        },
        "addressPoint": {
            "latitude": -43.3518906,
            "longitude": -22.8245123
        },
        "createdAt": {
            "date": "2022-04-10 21:55:01.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        }
    },
    {
        "id": "CR0177",
        "name": "Posto Duque Zagottis",
        "company": "cliqueretire",
        "compartmentType": [
            {
                "type": "L",
                "depth": 47,
                "width": 34.2,
                "height": 40,
                "internalType": "L"
            },
            {
                "type": "M",
                "depth": 47,
                "width": 34.2,
                "height": 18.5,
                "internalType": "M"
            },
            {
                "type": "S",
                "depth": 47,
                "width": 34.2,
                "height": 8,
                "internalType": "S"
            }
        ],
        "address": {
            "address1": "AV ENGENHEIRO ALBERTO DE ZAGOTTIS",
            "city": "São Paulo",
            "state": "SP",
            "number": "567",
            "neighbourhood": "Jardim Taquaral",
            "description": "Ao lado da loja de conveniência e ao lado do freezer",
            "zip": "04675085"
        },
        "addressPoint": {
            "latitude": -46.6959666,
            "longitude": -23.6689842
        },
        "createdAt": {
            "date": "2022-04-10 21:55:01.000000",
            "timezone_type": 3,
            "timezone": "UTC"
        }
    }
}

/clients/{clientId}/channels/{channelId}/orders*
Endpoint responsável pela criação do pedido.

Response

{
    "id": "LOCKERBA009",
    "pointOfSaleId": "qa",
    "channelId": "site",
    "clientId": "qa",
    "status": "PROCESSING",
    "total": 164.97,
    "placedAt": "2021-05-06T10:00:00.000Z",
    "billingAddress": {
        "zip": "05427010",
        "city": "São Paulo",
        "state": "SP",
        "number": "110",
        "status": "ACTIVE",
        "country": "BR",
        "address1": "Rua Fernao Dias",
        "address2": "casa",
        "lastName": "Linx",
        "firstName": "Barbara",
        "telephone": {
            "type": "billing",
            "number": "48991141688"
        },
        "description": "Barbara Linx",
        "neighbourhood": "Pinheiros"
    },
    "customer": {
        "id": "1000000000000",
        "type": "INDIVIDUAL",
        "email": "[email protected]",
        "gender": "F",
        "fullName": "Barbara linx",
        "lastName": "Linx",
        "addresses": {
            "billing": {
                "zip": "05427010",
                "city": "São Paulo",
                "state": "SP",
                "number": "110",
                "status": "ACTIVE",
                "country": "BR",
                "address1": "Rua Fernao dias",
                "address2": "casa",
                "lastName": "Linx",
                "firstName": "Barbara",
                "telephone": {
                    "type": "billing",
                    "number": "48991141688"
                },
                "description": "Barbara Linx",
                "neighbourhood": "Pinheiros"
            }
        },
        "birthdate": "1991-10-01T02:00:00.000Z",
        "documents": [
            {
                "type": "rg",
                "number": "331739100"
            },
            {
                "type": "cpf",
                "number": "32344524827"
            }
        ],
        "firstName": "Barbara",
        "telephones": [
            {
                "type": "billing",
                "number": "48991141688"
            }
        ],
        "socialNumber": "32344524827"
    },
    "discount": 0,
    "items": [
        {
            "sku": "TesteLocker",
            "url": "",
            "gtin": "630509365814",
            "name": "",
            "gtins": {
                "630509365814": 0
            },
            "image": "",
            "price": 54.99,
            "width": 100,
            "height": 100,
            "length": 100,
            "weight": 10,
            "discount": 0,
            "quantity": 1,
            "basePrice": 54.99,
            "categories": [
                "738",
                "756",
                "826"
            ],
            "acquisitionType": "PURCHASE"
        },
        {
            "sku": "TesteLocker2",
            "url": "",
            "gtin": "630509365814",
            "name": "",
            "gtins": {
                "630509365814": 0
            },
            "image": "",
            "price": 54.99,
            "width": 100,
            "height": 100,
            "length": 100,
            "weight": 10,
            "discount": 0,
            "quantity": 2,
            "basePrice": 54.99,
            "categories": [
                "738",
                "756",
                "826"
            ],
            "acquisitionType": "PURCHASE"
        }
    ],
    "comments": [],
    "fulfillments": {
        "F1": {
            "id": "F1",
            "channelId": "site",
            "clientId": "qa",
            "locationId": "L1",
            "ownership": "oms",
            "shipment": {
                "address": {
                    "zip": "30130110", // CEP da LocationId do fulfillment dependent
                    "city": "São Paulo", // Cidade da LocationId do fulfillment dependent
                    "state": "SP", // Estado da LocationId do fulfillment dependent
                    "number": "CR0137", //lockerId
                    "country": "BR", // País da LocationId do fulfillment dependent
                    "address1": "Av seila", // Endereço principal da LocationId do fulfillment dependent
                    "address2": "APTO", // Complemento da LocationId do fulfillment dependent
                    "lastName": "Linx",
                    "firstName": "Barbara",
                    "telephone": {
                        "type": "SHIPMENT",
                        "number": "11999991111", // Número do Telefone da LocationId do fulfillment dependent
                        "countryCode": "+55"
                    },
                    "description": "comercial"
                },
                "method": "cliqueretire",
                "methodId": "cliqueretire",
                "carrierId": "cliqueretire",
                "contractId": "cliqueretire",
                "recessDays": 0,
                "carrierName": "Clique e retire",
                "shippingTime": 4,
                "shippingPrice": 15
            },
            "status": "WAITING",
            "type": "SHIPMENT",
            "createdAt": "2022-04-12T19:15:22.000Z",
            "updatedAt": "2022-04-12T19:15:23.000Z",
            "freightCosts": {
                "totalTime": 9,
                "recessDays": 0,
                "totalPrice": 15,
                "handlingTime": 5,
                "transferTime": 0,
                "handlingPrice": 0,
                "transferPrice": 0,
                "stockArrivalTime": 0,
                "waitingTransferTime": 0
            },
            "processedAt": "2022-04-12T19:15:22.000Z",
            "enablePrePicking": false,
            "prePickingFinished": false,
            "locationType": "Own Store",
            "allowDeliveryParcial": false,
            "items": {
                "TesteLocker": {
                    "sku": "TesteLocker",
                    "quantity": 1,
                    "stockType": "PHYSICAL",
                    "orderedQuantity": 1,
                    "returnedQuantity": 0,
                    "canceledQuantity": 0,
                    "daysToDelivery": 0,
                    "itemType": "OTHER",
                    "acquisitionType": "PURCHASE",
                    "presale": false,
                    "enablePicking": true
                },
                "TesteLocker2": {
                    "sku": "TesteLocker2",
                    "quantity": 2,
                    "stockType": "PHYSICAL",
                    "orderedQuantity": 2,
                    "returnedQuantity": 0,
                    "canceledQuantity": 0,
                    "daysToDelivery": 0,
                    "itemType": "OTHER",
                    "acquisitionType": "PURCHASE",
                    "presale": false,
                    "enablePicking": true
                }
            },
            "presale": false,
            "enablePicking": true,
            "enableShipping": true,
            "enableBilling": true,
            "invoices": [],
            "volumes": [],
            "exceptions": [],
            "treatments": [],
            "statusHistory": [
                {
                    "status": "WAITING",
                    "processedAt": "2022-04-12T19:15:22.000Z",
                    "createdAt": "2022-04-12T19:15:22.000Z",
                    "updatedAt": "2022-04-12T19:15:22.000Z",
                    "locationId": "L1",
                    "oldData": [],
                    "state": "WAITING"
                }
            ],
            "transportationHistory": [],
            "comments": []
        },
        "F2": {
            "id": "F2",
            "channelId": "site",
            "dependsOn": "F1", // LocationId que este fulfillment depende receber a mercadoria
            "clientId": "qa",
            "locationId": "L2", // LocartionId de retirada do pedido, neste caso, será considerado o lockerId que contém no FF relacionado no ""dependsOn" =  shipment.address.number
            "ownership": "oms",
            "status": "PENDING",
            "type": "PICKUP",
            "createdAt": "2022-04-12T19:15:22.000Z",
            "updatedAt": "2022-04-12T19:15:24.000Z",
            "freightCosts": {
                "totalTime": 9,
                "recessDays": 0,
                "totalPrice": 0,
                "handlingTime": 0,
                "transferTime": 0,
                "handlingPrice": 0,
                "transferPrice": 0,
                "stockArrivalTime": 0,
                "waitingTransferTime": 0
            },
            "pickup": {
                "token": "189d161e4ba4f2114c07410379f27ed6",
                "prepaid": true
            },
            "processedAt": "2022-04-12T19:15:22.000Z",
            "enablePrePicking": false,
            "prePickingFinished": false,
            "locationType": "locker",
            "allowDeliveryParcial": false,
            "items": {
                "TesteLocker": {
                    "sku": "TesteLocker",
                    "quantity": 1,
                    "stockType": "PHYSICAL",
                    "orderedQuantity": 1,
                    "returnedQuantity": 0,
                    "canceledQuantity": 0,
                    "daysToDelivery": 0,
                    "itemType": "OTHER",
                    "acquisitionType": "PURCHASE",
                    "presale": false,
                    "enablePicking": true
                },
                "TesteLocker2": {
                    "sku": "TesteLocker2",
                    "quantity": 2,
                    "stockType": "PHYSICAL",
                    "orderedQuantity": 2,
                    "returnedQuantity": 0,
                    "canceledQuantity": 0,
                    "daysToDelivery": 0,
                    "itemType": "OTHER",
                    "acquisitionType": "PURCHASE",
                    "presale": false,
                    "enablePicking": true
                }
            },
            "presale": false,
            "enablePicking": true,
            "enableShipping": true,
            "enableBilling": true,
            "invoices": [],
            "volumes": [],
            "exceptions": [],
            "treatments": [],
            "statusHistory": [
                {
                    "status": "PENDING",
                    "processedAt": "2022-04-12T19:15:22.000Z",
                    "createdAt": "2022-04-12T19:15:22.000Z",
                    "updatedAt": "2022-04-12T19:15:22.000Z",
                    "locationId": "CR0177",
                    "oldData": [],
                    "state": "PENDING"
                }
            ],
            "transportationHistory": [],
            "comments": []
        }
    }
}

Configurações de Integração

Essa nova funcionalidade tem o objetivo técnico de criar o caminho multitenant para o envio do pedido após a escolha na cotação, faturamento (Aprovação da NF-e) e retorno de status finalizadores.

Integração de pedidos (regras):

  • Ambiente que devemos criar essa primeira integração: QA (Ambiente do cliente EX: youcom).
  • Esse processo sempre irá iniciar após recebemos o faturamento dos sistemas responsáveis (INVOICED OU BILLED).
  • No campo trackingNumber inserir o número do pedido quando não receber informação no pedido.
  • Enviar as informações de volume que recebemos dos sistemas que faz o faturamento.
  • Quando receber os status de (INVOICED OU BILLED) andar com o status do pedido de SEND_READY até SHIPPING_READY.
  • Inserir o pedido no status de aguardando transportadora (SHIPPING_READY).
  • Quando receber 200 da postagem colocar o pedido automaticamente em SHIPPED (DESPACHADO).
  • Fazer a integração no fluxo somente para pedidos que contêm: "methodId": "cliqueretire".
  • Incluir um valor fixo "55" no campo cellphone do payload.

Payload

{
  "orderNumber": "ID0026", //fulfillments.orderId + fulfillments.id//
  "boxCode": "CB0001", // order.fulfillment.shipment.address.number//
  "urlCallback": "https://urlcallback.com.br", //Url Webhook de retorno de status//
  "endCustomer": {
    "cellphone": "+5521991467790", /55order.customer.addresses.billing.telephone//
    "documentNumber": "999.999.999-99", //order.customer.documents."type": "cpf"//
    "email": "[email protected]", //order.customer.email//
    "fullName": "Chermont Teste" //order.customer.fullName//
  },
  "volumes": [
    {
      "expressNumber": "WF0102031", //fulfillments.orderId + fulfillments.id//
      "invoice": [
        {
          "series": "999999", //invoice.series//
          "number": "999", //invoice.number//
          "key": "9999999" //invoice.nfe.eletronicKey//
        }
      ]
    }
  ]
}

Retorno de status (regras):

  • Criar Webhook para receber modelo padrão acordado com a transportadora;
  • Ler fluxo de recebimento do retorno de status do clique e retire;
  • Com o retorno da transportadora para os status (DELIVERY_FAILED, DELIVERED), criar o tratamento no pedido somente para itens com a quantidade >0;
  • Incluir todos os status que recebemos no WEBHOOK no transportationHistory do pedido;
  • fazer um de/para com a informação que recebemos no campo "message" com a informação que temos de clientID;
    Ex:
    Deixar essa config disponível no RemoteConfig
    Ambiente Linx = QA (Ambiente do cliente EX: youcom)

Payload

{
  "event": "{status}",
  "expressNumber": "{{expressNumber}}",
  "eventimeTime": "2021-03-25T17:38:15-03:00",
  "message": "{{message}}", --//campo que vai conter o nome do cliente//
  "orderId": "{{referenceNumber}}",
  "accessCode": "accessCode",
  "shortLink": "shortLink"
}

📘

Necessário entrar em contato com o time de Operação Linx OMS, para a conclusão e ativação da nova funcionalidade.


Did this page help you?