Deeplinks são links especiais que permitem abrir páginas ou seções específicas dentro do app. Eles seguem um formato padrão e podem incluir informações como qual página abrir e quais detalhes exibir.

Eitri App Shopping vem com uma solução integrada para resolver os deeplinks mais comuns utilizados nos principais sistemas de ecommerce de mercado permitindo ainda personalizar com suas próprias regras, rotas e caminhos.

Existem 2 tipos de deeplinks que serão descritos nesta documentação:

  • Deeplinks tradicionais
  • Universal links (iOS) ou App Links (Android)

Requerimentos

Para usar deeplinks com Eitri você vai precisar:

  • Um deeplink resolver addon configurado em seu App Eitri.
  • Se você estiver usando o deeplink resolver padrão, você deverá ter solicitado a ativação à equipe Eitri.
  • Se você pretende utilizar Universal Links (iOS) ou App Links (Android) você deve configurar os arquivos well-know conforme explicado nesta documentação.

Deeplinks tradicionais utilizam um protocolo específico para abrir o app no dispositivo do usuário.

Exemplo: myapp://category/female/jeans

Estrutura

A estrutura dos deeplinks pode variar de acordo com a finalidade, mas de maneira geral ela contem 3 partes:

prefixo://ação?params

Ações globais suportadas

Eitri App Shopping suporta as seguintes ações em deeplinks por padrão:

Abrir Produto

Abrir Produto

prefixo://product/id/product_id
or
prefixo://product/slug/product_slug

Onde:

prefixo = prefixo utilizado pelo seu app
product_id = id do produto à ser aberto (você deve usar o id do produto e não sku ou variação)
product_slug = slug do produto à ser aberto (você pode obter na url de seu site)

VTEX: A URL das páginas de produto em sites Vtex normalmente terminam com "/p". Você precisa remove-lo pois ele não faz parte do slug.

Exemplos:

  • myapp://product/id/348764
  • myapp://product/slug/altra-lone-peak-9-trail-running-shoe-mens-10595101
Abrir Vitrine (PLP) (Categorias Vtex / Hotsites Wake)

Abrir Vitrine (PLP)

prefixo://category/caminho_da_categoria?filter=filtros&order=ordenação

Onde:

prefixo = prefixo utilizado pelo seu app
caminho_da_categoria = caminho completo para a categirua (exemplo: female/jeans)
filtros (opcional) = filtros para considerar na exibição da vitrine
ordenação (opcional) = ordem para exibição dos itens

Opções de ordenação:

OrderByPriceDESC: Preço mais ALTO primeiro
OrderByPriceASC: Preço mais BAIXO primeiro
OrderByTopSaleDESC: Mais vendidos primeiro
OrderByReviewRateDESC: Melhores avaliações primeiro
OrderByNameDESC: Ordem alfabética de Z-A
OrderByNameASC: Ordem alfabética de A-Z
OrderByReleaseDateDESC: Mais recentes primeiro
OrderByBestDiscountDESC: Melhores descontos primeiro
OrderByScoreDESC: Melhor pontuação primeiro

ATENÇÃO: Recomendamos que você faça um uri encode nos filtros para garantir que os caracteres especiais e espaços serão lidos corretamente. Exemplo: "{"cor": "preta"}" deve ser enviado como "%7B%22cor%22%3A%20%22preta%22%7D". Para encodar conteúdos você pode utilizar uma biblioteca ou website como o urlencoder.org

INFO: Em apps usando Wake Commerce você pode copiar e colar os filtros de seu website. Examplo: prefix://category/blusas?filtro=FiltroCor__AZUL&filtro=Tamanho__P

Exemplos:

  • myapp://category/male
  • myapp://category/female/jeans
  • myapp://category/kids/clothes/pants?filters=%7B%22cor%22%3A%20%22preta%22%7D&order=OrderByNameASC
  • myapp://category/blusas?filtro=FiltroCor__AZUL&filtro=Tamanho__P (Wake Commerce)
Abrir Busca

Abrir Busca

prefixo://search/termo_buscado?filter=filtros&order=ordenação

Onde:

prefixo = prefixo utilizado pelo seu app
termo_buscado = termo(s) que será buscado(s)
filtros (opcional) = filtros para considerar na exibição da vitrine
ordenação (opcional) = ordem para exibição dos itens

Opções de ordenação:

OrderByPriceDESC: Preço mais ALTO primeiro
OrderByPriceASC: Preço mais BAIXO primeiro
OrderByTopSaleDESC: Mais vendidos primeiro
OrderByReviewRateDESC: Melhores avaliações primeiro
OrderByNameDESC: Ordem alfabética de Z-A
OrderByNameASC: Ordem alfabética de A-Z
OrderByReleaseDateDESC: Mais recentes primeiro
OrderByBestDiscountDESC: Melhores descontos primeiro
OrderByScoreDESC: Melhor pontuação primeiro

ATENÇÃO: Recomendamos que você faça um uri encode nos termos buscados e nos filtros para garantir que os caracteres especiais e espaços serão lidos corretamente. Exemplo: "jeans masculino" deve ser enviado como "jeans%20masculino". Para encodar conteúdos você pode utilizar uma biblioteca ou website como o urlencoder.org

INFO: Em apps usando Wake Commerce você pode copiar e colar os filtros de seu website. Examplo: prefix://category/blusas?filtro=FiltroCor__AZUL&filtro=Tamanho__P

Exemplos:

  • myapp://search/shirts
  • myapp://search/leather%20jackets
  • myapp://search/kids%eletronic%20toys?filter=%7B%22age%22%3A%20%2210-12%22%7D&order=OrderByReleaseDateDESC
Abrir Carrinho

Abrir Carrinho

prefixo://cart/cart_id

Onde:

prefixo = prefixo utilizado pelo seu app
cart_id (opcional) = id de um carrinho específico. Quando utilizado, carrega um carrinho específico ao invés do carrinho atual do usuário.

ATENÇÃO: Ao usar um cart_id o carrinho atual do usuário poderá ser substituido pelo carrinho que será aberto SOBRESCREVENDO os itens anteriores.

Exemplos:

  • myapp://cart
  • myapp://cart/364265434904
Abrir Perfil

Abrir Perfil

prefixo://account

Onde:

prefixo = prefixo utilizado pelo seu app

Exemplos:

  • myapp://account
Abrir Home

Abrir Home

prefixo://home

Onde:

prefixo = prefixo utilizado pelo seu app

Exemplos:

  • myapp://home
Abrir Browser/URL

Abrir Browser/URL

prefixo://webview/inapp/url

Onde:

prefixo = prefixo utilizado pelo seu app
url = endereço a ser aberto
inapp (optional) = se utilizado, irá abrir a URL dentro da webview interna do app ao invés de chamar um browser externo

Recomandamos que você use encode uri na URL para garantir que caracteres especiais sejam lidos corretamente. Exemplo: "https://www.mywebsite.com.br/male/shirts" deve ser passado como "https%3A%2F%2Fwww.mywebsite.com.br%2Fmale%2Fshirts". Para encodar conteúdos você pode utilizar uma biblioteca ou website como o urlencoder.org

Exemplos:

  • myapp://webview/https%3A%2F%2Fwww.mywebsite.com.br%2terms
  • myapp://webview/inapp/https%3A%2F%2Fwww.mywebsite.com.br%2privacy
Abrir Favoritos

Abrir Favoritos

prefixo://account/favorites

Onde:

prefixo = prefixo usado pelo seu app

Examplos:

  • myapp://account/favorites
Abrir Meus Pedidos

Abrir Meus Pedidos

prefixo://account/orderlist

Onde:

prefixo = prefixo usado pelo seu app

Examplos:

  • myapp://account/orderlist
Abrir Páginas da Conta (Favoritos, Pedidos e outras)

As páginas do módulo de conta podem ser abertas usando os enums listados em seu módulo/eitri-app de account. Para saber a lista completa de enums disponíveis para seu app, consulte seu time de desenvolvimento.

Abrir Páginas da Conta

prefixo://account/page_enum

Onde:

prefixo = prefixo utilizado pelo seu app
page_enum = enum listado no seu módulo/eitri-app de account

Examplos:

  • myapp://account/about_us
  • myapp://account/our_stores
  • myapp://account/policies

Ações exclusivas Vtex

Abrir Coleção

Abrir Coleção

prefixo://collection?filters=id_da_coleção&order=ordenação

Onde:

prefixo = prefixo utilizado pelo seu app
id_da_coleção = id numérico da coleção
ordenação (opcional) = ordem para exibição dos itens

Opções de ordenação:

OrderByPriceDESC: Preço mais alto primeiro
OrderByPriceASC: Menor preço primeiro
OrderByTopSaleDESC: Mais vendidos primeiro
OrderByReviewRateDESC: Melhores avaliações primeiro
OrderByNameDESC: Ordem alfabética de Z-A
OrderByNameASC: Ordem alfabética de A-Z
OrderByReleaseDateDESC: Mais recentes primeiro
OrderByBestDiscountDESC: Melhores descontos primeiro
OrderByScoreDESC: Melhor pontuação primeiro

Exemplos:

  • myapp://collection?filter=55678&order=OrderByPriceASC
  • myapp://collection?filter=55739&order=OrderByBestDiscountDESC
Abrir Landing Page

Abrir Landing Page

prefixo://landingpage/landingpagename

Onde:

prefixo = prefixo utilizado pelo seu app
landingpagename = nome da landing page no cms da vtex (precisa ser o nome exato. Evite caracteres especiais nos nomes de landing page.)

Examplos:

  • myapp://landingpage/ofertasblackfriday

Precisam de uma configuração específica no seu website para ser vinculado ao seu domínio. Uma vez configurado, usuários que tem o aplicativo instalado no dispositivo serão redirecionados do website diretamente para o app na respectiva página.

Você precisará configurar seu website para ter 2 arquivos hospedados em caminhos específicos para Android e iOS. Estes arquivos serão fornecidos pela Eitri.

Na maioria dos casos você precisará abrir um ticket para seu sistema de e-commerce solicitando a criação/atualização destes arquivos.

Caminho do arquivo:

https://www.mywebsite.com/.well-known/assetlinks.json

Exemplo do arquivo:

[{
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target" : { 
        "namespace": "android_app", 
        "package_name": "app_bundle_id",
        "sha256_cert_fingerprints": ["app_bundle_fingerprint"] 
    }
}]

Onde:

app_bundle_id é o nome do bundle de seu app, utilizado na loja Google Play.

Exemplo: com.myapp.store

app_bundle_fingerprint é o fingerprint sha256 fornecido para seu app.

Exemplo: F8:57:A0:0C:AB:8B:B2:59:92:F7:3D:1D:38:6C:05:17:A8:3F:B1:19:B5:E7:05:5F:ED:B5:B8:27:EA:0C:E3:57

Caminho do arquivo: https://www.mywebsite.com/.well-known/apple-app-site-association

Exemplo do arquivo:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "app_bundle_id",
        "paths": [
          "*"
        ]
      }
    ]
  }
}

Onde:

app_bundle_id é o nome do bundle de seu app, utilizado na loja Apple App Store.

Exemplo: com.myapp.store

paths são os padrões de url que você deseja redirecionar para o app

Exemplo: "*/p" direciona todas as urls que terminem com "/p" para o app pois em geral são links de páginas de produto.