Introdução

A função findOrdersByTrackingNumber permite localizar pedidos associados ao número de rastreio informado. Quando executada no bloco Executar JavaScript, ela verifica a existência de pedidos no sistema e, se encontrados, retorna como resposta um array com detalhes completos sobre os pedidos associados ao número de rastreio, incluindo informações do cliente, informações de rastreio, itens adquiridos e status de pagamento.

Como utilizar

  1. Primeiramente será necessário utilizar as configurações avançadas das nossas mensagens de WhatsApp para solicitar ao cliente o número de rastreio, salvando a resposta informada pelo cliente em uma variável, que nesse caso será payload.tracking.

Observação: Para conhecer mais sobre as configurações avançadas das nossas mensagens de WhatsApp, acesse nosso artigo na central de ajuda: Entendendo as Ações de Lógico, Tempo, Chat e Avançado das Automações ➾ Ações de Avançado

  1. Em seguida, assim que o cliente informar o número de rastreio, na estrutura da automação, utilizaremos o bloco Executar JavaScript para executar a função findOrdersByTrackingNumber e realizar a busca dos pedidos associados ao número de rastreio informado.

  2. No Executar JavaScript utilizamos o código payload.orders = await findOrdersByTrackingNumber(payload.tracking) para buscar pedidos associados ao número de rastreio informado pelo cliente. Dessa forma, número de rastreio salvo na variável payload.tracking é utilizado pela função findOrdersByTrackingNumber para buscar pedidos associados ao número de rastreio, o resultado é armazenado em payload.orders, em forma de array contendo os pedidos.

  3. A resposta da busca poderá retornar, nas próximas mensagens, informações sobre os pedidos encontrados.

Observação: No código exemplo, caso não seja encontrado nenhum pedido associado ao número de rastreio informado, a mensagem “Nenhum pedido encontrado será exibida”.

Para estruturar a mensagem de resposta contendo os dados do pedido nesse exemplo, utilizamos a linguagem de template Reportana® Script, que permite o uso das estruturas for e if/else. Esses comandos possibilitam a formatação detalhada e condicional das informações exibidas. Para aprofundar o conhecimento sobre o uso da Reportana® Script e explorar mais exemplos, consulte a documentação completa: Reportana® Script - Documentação.

Retorno da função findOrdersByTrackingNumber

{
  "orders": [
    {
      "reference_id": 1234,
      "reference_type": "ORDER",
      "customer_id": 1234,
      "name": "João Teste",
      "first_name": "João",
      "last_name": "Teste",
      "email": "teste@gmail.com",
      "phone": "55999999999",
      "shop": {
        "id": 1234,
        "name": "Loja Teste",
        "currency_code": "BRL",
        "billing_address_formatted": "Rua Florianópolis 123, Centro, São José, MG, 36490-008, BR"
      },
      "customer": {
        "id": 104657184,
        "name": "João Teste",
        "email": "teste@gmail.com",
        "phone": "55999999999",
        "birth_date": null,
        "metadata": []
      },
      "order": {
        "admin_url": "https://….png",
        "customer_name": "João Teste",
        "customer_email": "teste@gmail.com",
        "customer_phone": "55999999999",
        "customer_document": "12345678900",
        "billing_address": {
          "name": "João Teste",
          "first_name": "João",
          "last_name": "Teste",
          "company": null,
          "phone": "55999999999",
          "address1": "Rua Flores 456, Apto 31",
          "address2": "Centro",
          "city": "Florianópolis",
          "province": "Santa Catarina",
          "province_code": "SC",
          "country": "Brazil",
          "country_code": "BR",
          "zip": "06970000",
          "latitude": null,
          "longitude": null
        },
        "shipping_address": {
          "name": "João Teste",
          "first_name": "João",
          "last_name": "Teste",
          "company": null,
          "phone": "55999999999",
          "address1": "Rua Flores 456, Apto 31",
          "address2": "Centro",
          "city": "Florianópolis",
          "province": "Santa Catarina",
          "province_code": "SC",
          "country": "Brazil",
          "country_code": "BR",
          "zip": "06970000",
          "latitude": null,
          "longitude": null
        },
        "number": "1234",
        "currency": "BRL",
        "total_price": "99.90",
        "total_price_formatted": "R$99,90",
        "subtotal_price": "0.00",
        "subtotal_price_formatted": "R$0,00",
        "line_items": [
          {
            "title": "Meu Robô",
            "variant_title": "Azul",
            "quantity": 1,
            "price": 210.27,
            "path": "https://….png",
            "image_url": "https://….png",
            "tracking_number": null
          }
        ],
        "payment_status": "PAID",
        "payment_method": "BOLETO",
        "billet_url": "https://boleto.pl/1234abcd",
        "billet_line": "00000000000000000000000000000000000000000000000",
        "billet_expired_at": "2024-04-30 00:00:00",
        "billet_expired_at_formatted": "30/04/2024",
        "original_created_at": "2024-04-27 08:30:06",
        "billing_address_formatted": "Rua Flores 456, Apto 31, Centro, Florianópolis, SC, 06970000",
        "shipping_address_formatted": "Rua Flores 456, Apto 31, Centro, Florianópolis, SC, 06970000",
        "line_items_formatted": "Meu Robô",
        "line_items_formatted_with_variant": "Meu Robô - Azul",
        "tracking_numbers_formatted": "1234ABCD",
        "tracking_numbers_url": "https://boleto.pl/1234ABCD",
        "tracking_numbers": [
          {
            "code": "NL0000000000BR",
            "new_code": "NL0000000123BR",
            "full_status": "DELIVERED",
            "elapsed_time": 30,
            "tax_at": "2024-11-30 11:46:45",
            "delivered_at": "2024-12-14 11:46:45",
            "returning_to_sender_at": "2024-11-30 11:46:45",
            "returned_to_sender_at": "2024-11-30 11:46:45",
            "first_update_at": "2024-11-14 11:46:45",
            "last_update_at": "2024-12-14 11:46:45",
            "last_request_at": "2024-12-14 11:46:45",
            "events": [
              {
                "type": "CORREIOS",
                "date": "2024-12-14 11:46:45",
                "label": "Entregue",
                "location": "São Paulo - SP",
                "description": "Sua encomenda foi entregue"
              },
              {
                "type": "CORREIOS",
                "date": "2024-11-14 11:46:45",
                "label": "Postado",
                "location": "São Paulo - SP",
                "description": "Aceito pela transportadora"
              }
            ]
          }
        ]
      }
    }
  ]
}

Dados retornados na resposta

A busca retorna diversas informações detalhadas sobre os pedidos, incluindo:

  • Dados do Cliente: Nome, telefone, e-mail utilizados para realizar o pedido, etc;
  • Informações do Pedido: ID do pedido, status de pagamento (ex.: pago, pendente), método de pagamento (ex.: boleto, cartão), data de criação do pedido, etc;
  • Dados de Endereço: Endereço de cobrança e endereço de entrega, incluindo cidade, estado, CEP, etc;
  • Itens do Pedido: Nome do produto, variante (ex.: cor), quantidade, preço unitário, link para imagem do produto, etc;
  • Informações de Pagamento: URL do boleto, linha digitável do boleto, data de vencimento, Pix cópia e cola, valor total do pedido, etc;
  • URLs Úteis: Link para rastreamento do pedido e qualquer outras URLs relevantes.

Esses dados permitem compor mensagens personalizadas para informar o cliente sobre os detalhes do pedido associado ao número de rastreio informado na busca.