> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alana.shopping/llms.txt
> Use this file to discover all available pages before exploring further.

# Publicação no Marketplace

> Guia passo a passo para publicar um catálogo no Marketplace Hub — de configurações a analytics e gestão de conflitos.

## Visão geral

Este guia percorre o ciclo de vida completo de publicação de um catálogo no Marketplace Hub: configurar definições, definir precificação, ir ao ar, monitorar engajamento, gerenciar assinantes, lidar com conflitos de sincronização e despublicar.

***

## Pré-requisitos

Antes de publicar, certifique-se de que seu catálogo atende aos padrões mínimos de qualidade:

* [ ] Pelo menos o estágio **Silver** do pipeline concluído (dados normalizados)
* [ ] Catálogo tem **nome** e **descrição** descritivos
* [ ] Uma **categoria** está atribuída
* [ ] Pelo menos **10 produtos** (recomendado: 50+)
* [ ] Imagem de capa ou imagens representativas dos produtos presentes

<Tip>
  Catálogos com pontuações Gold acima de 70 convertem visitantes em assinantes a uma taxa 3× maior. Execute o lote Analisar antes de publicar.
</Tip>

***

## Passo 1 — Configurar definições do marketplace

1. Abra seu catálogo → aba **Configurações**
2. Role até a seção **Marketplace**
3. Preencha:
   * **Nome de exibição** — como o catálogo aparece no Hub (pode diferir do nome interno)
   * **Descrição curta** — 140 caracteres, exibida nos cards do catálogo
   * **Descrição longa** — descrição completa exibida na página de detalhe do catálogo
   * **Categoria** — categoria principal para navegação/filtro
   * **Tags** — até 10 tags para relevância de pesquisa
   * **Imagem de capa** — carregada ou selecionada automaticamente do produto principal

***

## Passo 2 — Definir precificação

Navegue até **Configurações** → **Marketplace** → **Precificação**.

### Catálogo gratuito

Defina a precificação como **Gratuito**. Qualquer pessoa com uma conta Alana pode clonar ou assinar sem custo.

### Catálogo pago

1. Selecione **Pago**
2. Escolha o modelo de precificação:
   * **Avulso** — pagamento único para acesso perpétuo
   * **Assinatura mensal** — taxa recorrente para acesso contínuo à sincronização
3. Insira o preço (USD)
4. Um produto e preço Stripe são criados automaticamente via integração Alana → Stripe
5. Consumidores verão um fluxo de Stripe Checkout antes de clonar ou assinar

<Note>
  Você precisa ter uma conta Stripe conectada no seu workspace para oferecer catálogos pagos. Vá para **Configurações** → **Integrações** → **Stripe** para conectar.
</Note>

***

## Passo 3 — Publicar o catálogo

1. Navegue até seu catálogo → aba **Marketplace**
2. Revise o preview — é assim que seu catálogo aparecerá no Hub
3. Clique em **Publicar no Hub**
4. O catálogo fica visível imediatamente no feed de navegação do Hub

### Via API

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST "https://app.alana.shopping/api/hub/catalogs" \
    -H "Authorization: Bearer SUA_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "catalogId": "CATALOG_ID",
      "displayName": "Roupas Primavera 2026",
      "description": "Mais de 500 SKUs de roupas de primavera curadas das melhores marcas europeias.",
      "category": "apparel",
      "tags": ["primavera", "2026", "europeu", "moda"],
      "pricing": { "model": "free" }
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://app.alana.shopping/api/hub/catalogs', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${apiKey}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      catalogId,
      displayName: 'Roupas Primavera 2026',
      description: 'Mais de 500 SKUs de roupas de primavera curadas das melhores marcas europeias.',
      category: 'apparel',
      tags: ['primavera', '2026', 'europeu', 'moda'],
      pricing: { model: 'free' },
    }),
  });
  const { hubCatalogId } = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://app.alana.shopping/api/hub/catalogs",
      headers={"Authorization": f"Bearer {api_key}"},
      json={
          "catalogId": catalog_id,
          "displayName": "Roupas Primavera 2026",
          "description": "Mais de 500 SKUs de roupas de primavera curadas das melhores marcas europeias.",
          "category": "apparel",
          "tags": ["primavera", "2026", "europeu", "moda"],
          "pricing": {"model": "free"},
      }
  )
  hub_catalog = response.json()
  ```
</CodeGroup>

***

## Passo 4 — Monitorar analytics

Acompanhe o desempenho do catálogo em **Marketplace** → **Analytics**.

| Métrica                  | Descrição                                          |
| ------------------------ | -------------------------------------------------- |
| **Visualizações**        | Total de aberturas de preview (únicas + repetidas) |
| **Clones**               | Cópias únicas realizadas                           |
| **Assinantes ativos**    | Workspaces com assinaturas ativas                  |
| **Receita**              | Total coletado (somente catálogos pagos)           |
| **Histórico de versões** | Cada versão publicada com contagens de alterações  |

### Via API

<CodeGroup>
  ```bash curl theme={null}
  curl "https://app.alana.shopping/api/hub/catalogs/CATALOG_ID/analytics" \
    -H "Authorization: Bearer SUA_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    `https://app.alana.shopping/api/hub/catalogs/${catalogId}/analytics`,
    { headers: { 'Authorization': `Bearer ${apiKey}` } }
  );
  const analytics = await response.json();
  console.log(`${analytics.activeSubscribers} assinantes ativos`);
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      f"https://app.alana.shopping/api/hub/catalogs/{catalog_id}/analytics",
      headers={"Authorization": f"Bearer {api_key}"}
  )
  analytics = response.json()
  print(f"{analytics['activeSubscribers']} assinantes ativos")
  ```
</CodeGroup>

***

## Passo 5 — Gerenciar assinantes

Veja todos os assinantes em **Marketplace** → aba **Assinantes**.

Para cada assinante você pode ver:

* Nome e ID do workspace
* Versão atual em uso
* Estratégia de sincronização (auto/manual)
* Timestamp da última sincronização
* Status da assinatura (ativo/pausado/cancelado)

<Note>
  Você não pode forçar atualizações nos assinantes. Eles controlam quando as sincronizações acontecem com base na estratégia escolhida.
</Note>

***

## Passo 6 — Lidar com conflitos de sincronização

Quando assinantes têm resolução de conflito `manual_review`, os conflitos aparecem na fila deles. Como publicador, você pode ver quais campos são mais comumente contestados via analytics.

Se quiser comunicar mudanças significativas (por exemplo, renomear SKUs ou reestruturar categorias), use o campo **Changelog** ao publicar uma nova versão:

1. Faça suas alterações no catálogo
2. Antes de publicar a nova versão, adicione uma mensagem de **Changelog da versão**
3. Assinantes recebem esta mensagem com a notificação de versão

***

## Passo 7 — Despublicar (retirar do ar)

Para remover seu catálogo do Hub:

1. Navegue até o catálogo → aba **Marketplace**
2. Clique em **Despublicar**
3. Confirme a ação

**O que acontece com os assinantes:**

* O catálogo desaparece do feed de navegação do Hub imediatamente
* Assinantes existentes mantêm seus dados locais
* Sincronizações pendentes são canceladas
* Novos clones e assinaturas são bloqueados
* Assinantes pagos recebem uma notificação

### Via API

<CodeGroup>
  ```bash curl theme={null}
  curl -X DELETE "https://app.alana.shopping/api/hub/catalogs/CATALOG_ID" \
    -H "Authorization: Bearer SUA_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  await fetch(`https://app.alana.shopping/api/hub/catalogs/${catalogId}`, {
    method: 'DELETE',
    headers: { 'Authorization': `Bearer ${apiKey}` },
  });
  ```

  ```python Python theme={null}
  import requests

  requests.delete(
      f"https://app.alana.shopping/api/hub/catalogs/{catalog_id}",
      headers={"Authorization": f"Bearer {api_key}"}
  )
  ```
</CodeGroup>

***

## Checklist de publicação

* [ ] Pipeline Silver concluído em todos os produtos
* [ ] Pontuações Gold acima de 65 para produtos-chave (recomendado)
* [ ] Nome de exibição e descrição preenchidos
* [ ] Categoria e tags configuradas
* [ ] Modelo de precificação selecionado e Stripe conectado (se pago)
* [ ] Imagem de capa carregada
* [ ] Preview revisado — aparece corretamente no card do Hub
* [ ] Publicado e visível no feed de navegação do Hub
* [ ] Aba Analytics acessível e exibindo dados
