Módulo de Feed Avançado - XML, CSV e TXT
O módulo de Feed Avançado permite criar e gerenciar feeds de produtos para diversos canais de marketing como Google Shopping, Facebook/Meta, Instagram, Pinterest, TikTok e dezenas de outros marketplaces e plataformas de comparação de preços.
Com ele, você pode gerar arquivos XML, CSV ou TXT contendo os dados dos seus produtos no formato exigido por cada plataforma, agendar a geração automática e acompanhar a performance dos seus feeds.
Onde encontrar o módulo no painel
O módulo fica disponível no menu do Magento em:
Catálogo → Feed Avançado (Advanced Product Feeds)
Dentro desse menu, você encontra as seguintes seções:
Seção
Função
Feeds
Lista e gerenciamento dos feeds criados
Filtros
Regras para selecionar quais produtos entram no feed
Mapeamento de Categorias
Vincular suas categorias às categorias da plataforma destino (ex: Google Shopping)
Atributos Dinâmicos
Atributos calculados com base em condições (ex: status de estoque personalizado)
Variáveis Dinâmicas
Variáveis avançadas via PHP para cálculos especiais (ex: parcelamento, GTIN)
Templates
Modelos pré-configurados para diversas plataformas
Relatórios
Acompanhamento de cliques, pedidos e receita gerados pelos feeds
Importar/Exportar
Migração de configurações entre ambientes
Criando um novo feed — Passo a passo
1. Acesse a seção de Feeds
Vá em Catálogo → Feed Avançado → Feeds e clique em Adicionar Feed.
2. Escolha um template ou crie do zero
Ao clicar em Adicionar Feed, você verá uma lista de templates pré-instalados. Os mais utilizados são:
Google Shopping — formato XML, usado para o Google Merchant Center
Storefront Social Facebook — formato CSV, usado para catálogo do Facebook/Instagram
Google Shopping Review — formato XML, para exportar avaliações de produtos
Custom CSV / Custom XML — para criar um feed totalmente personalizado
Selecione o template desejado. Se preferir controle total, escolha "Criar feed personalizado" e defina o formato (CSV, TXT ou XML).
3. Configure as informações básicas
Após selecionar o template, preencha:
Nome: um nome descritivo para identificar o feed (ex: "Google Shopping - Principal")
Nome do arquivo (Filename): o nome do arquivo que será gerado. Não inclua a extensão — ela é adicionada automaticamente com base no tipo. Se o nome tiver mais de uma palavra, use hífen ou underline (ex: google-shopping-principal)
Visão da Loja (Store View): selecione qual loja/idioma será utilizado para gerar os dados
Ativo (Is Active): marque como "Sim" para que o feed funcione
Importante: Sempre lembre de ativar o feed após salvar. Feeds desativados não serão gerados automaticamente.
4. Salve e gere o feed
Clique em Salvar e Continuar Editando. Após salvar, dois botões ficam disponíveis no canto superior direito:
Gerar (Generate): processa e gera o arquivo do feed
Validar (Validate): verifica se o feed atende às regras de validação da plataforma destino
Após a primeira geração, o sistema exibe:
URL de acesso ao feed — este é o link que você vai enviar para a plataforma (Google Merchant, Facebook, etc.)
Contagem de produtos — quantidade de produtos incluídos no feed
Última geração — data/hora da última vez que o feed foi gerado
Tempo de geração — quanto tempo levou para processar
Dica: Na primeira configuração, sempre gere o feed, copie a URL e teste abrindo no navegador para verificar se o conteúdo está correto antes de enviar para a plataforma.
Entendendo o conteúdo do feed
Feed CSV/TXT
No feed CSV, a aba Configurações de Conteúdo (Content Settings) apresenta uma tabela de mapeamento de campos. Cada linha representa uma coluna no arquivo final.
Para cada coluna, você define:
Nome da coluna: o cabeçalho que aparecerá no CSV (ex: id, title, price)
Tipo de valor:
Padrão (Pattern): permite inserir um valor fixo ou usar padrões dinâmicos como {{ product.sku }}
Atributo (Attribute): seleciona diretamente um atributo da loja (SKU, nome, preço, etc.)
Produto Pai (Parent Product): puxa a informação do produto pai (configurável). Se o produto simples não tiver a informação, busca do pai. Recomendado para URL e imagens em produtos configuráveis
Somente Produto Pai (Only Parent Product): pega a informação exclusivamente do produto configurável
Para adicionar uma nova coluna, clique em Adicionar e configure os campos acima.
Configurações do arquivo CSV
Antes dos campos, configure:
Delimitador: caractere que separa as colunas (vírgula, tab, pipe, etc.)
Enclosure: aspas simples, duplas ou nenhuma para envolver os valores
Incluir cabeçalho: "Sim" para incluir a linha de cabeçalho com os nomes das colunas
Pré-visualização
Após salvar as configurações, use o botão de Pré-visualização para ver uma amostra do feed sem precisar gerar o arquivo completo. Isso é útil para validar rapidamente se os dados estão corretos.
Feed XML
No feed XML, a aba Configurações de Conteúdo contém o template XML completo que define a estrutura do arquivo.
Estrutura básica de um feed XML
{% for product in context.products %}
{% endfor %}
Elementos-chave:
{% for product in context.products %} ... {% endfor %} — loop que percorre todos os produtos do feed
{{ product.atributo }} — insere o valor dinâmico do atributo do produto
— bloco CDATA que protege caracteres especiais como < e & (obrigatório em XML)
Filtros como | price, | stripHtml, | truncatewords: 150 — transformam o valor antes de incluí-lo no feed
Lógica condicional no XML
Você pode usar condições {% if %} para controlar o que aparece no feed:
Exibir preço promocional apenas quando existir desconto:
{% if product.price > product.final_price %}
{% endif %}
Usar a URL do produto pai quando o produto não é visível individualmente:
{% if product.visibility == 'Not Visible Individually' %}
{% else %}
{% endif %}
Exibir informações diferentes para produtos configuráveis e simples:
{% if product.type_id == 'configurable' %}
{% else %}
{% endif %}
O que é item_group_id? Para produtos configuráveis (ex: uma camiseta com variações de cor/tamanho), o Google precisa saber que os produtos filhos pertencem ao mesmo grupo. Todos os filhos recebem o mesmo item_group_id (geralmente o SKU do produto pai), e cada um tem seu próprio g:id diferente. Assim o Google entende que são variações do mesmo produto.
Datas do preço promocional
Quando o Google Shopping exige as datas de vigência da promoção, o formato precisa incluir o fuso horário:
{% if product.special_price %}
{{ product.special_from_date | dateFormat: 'Y-m-d\T00:00:00-03:00' }}/{{ product.special_to_date | dateFormat: 'Y-m-d\T00:00:00-03:00' }}
{% endif %}
O -03:00 no final representa o fuso horário de Brasília (GMT-3). Sem essa informação, o Google pode rejeitar o feed.
Filtros — Controlando quais produtos entram no feed
Filtros permitem selecionar exatamente quais produtos serão incluídos no feed. Isso evita exportar produtos irrelevantes, sem estoque ou de categorias específicas.
Criando um filtro
Acesse Catálogo → Feed Avançado → Filtros e clique em Adicionar Filtro.
Dê um nome descritivo ao filtro (ex: "Apenas produtos ativos com estoque")
Selecione os feeds aos quais o filtro será aplicado (ou aplique depois na edição do feed)
Defina as regras na aba Regras
Exemplos práticos de filtros
Apenas produtos habilitados:
Status → é → Habilitado
Apenas produtos em estoque:
Disponibilidade de estoque → é → Em estoque
Apenas produtos com estoque acima de 5 unidades:
Quantidade → maior que → 5
Apenas produtos de uma categoria específica:
Categoria → é um de → (selecione as categorias desejadas no seletor de árvore)
Excluir uma categoria específica:
Categoria → não é um de → (selecione as categorias a excluir)
Apenas produtos com desconto (promoções):
Preço Especial → maior que → 0
Apenas determinado tipo de produto:
Tipo de produto → é um de → Produto Simples, Produto Configurável
Atenção com filtro de visibilidade: Se você trabalha com produtos configuráveis, evite filtrar por "Visibilidade: Catálogo" ou "Catálogo, Pesquisa", pois isso pode excluir os produtos simples filhos que são "Não Visível Individualmente". Esses produtos filhos geralmente precisam estar no feed para que as variações apareçam corretamente na plataforma.
Dica sobre filtro de categorias: Usar "CATEGORIA É 1,2,3" exige que o produto esteja em TODAS as categorias listadas simultaneamente. Se quer produtos que estejam em QUALQUER uma das categorias, use "CATEGORIA É UM DE".
Agendamento — Geração automática do feed
Na aba Tarefa Agendada (Scheduled Task) do feed:
Ativo: marque "Sim" para ativar a geração automática
Horário: selecione um ou mais horários do dia para gerar o feed (evite horários de pico de tráfego)
Dias da semana: selecione em quais dias o feed será gerado (pode ser todos os dias ou dias específicos)
O sistema exibe o horário atual do servidor e o status do cron para ajudar a alinhar a configuração.
Pré-requisito: O cron do Magento precisa estar configurado e rodando no servidor. Sem o cron ativo, a geração automática não funciona. Verifique o campo "Cron status" na aba.
Envio por FTP/SFTP
Se a plataforma destino exige que o feed seja enviado diretamente via FTP, configure na aba Configurações de FTP:
Habilitado: Sim
Protocolo: FTP ou SFTP (SFTP é mais seguro e recomendado)
Host: endereço do servidor (ex: ftp.marketplace.com.br)
Usuário e Senha: credenciais fornecidas pela plataforma
Caminho: diretório no servidor onde o arquivo deve ser enviado
Modo passivo: geralmente "Sim"
SSL: "Sim" quando disponível
Use o botão Testar Conexão antes de salvar para garantir que as credenciais estão corretas.
Google Analytics (UTM)
Na aba Google Analytics, você pode adicionar parâmetros UTM às URLs dos produtos no feed. Isso permite rastrear no Google Analytics de onde vêm os cliques.
utm_source: origem do tráfego (ex: google-shopping, facebook)
utm_medium: meio de marketing (ex: cpc, feed)
utm_campaign: nome da campanha (ex: verao-2026, liquidacao)
utm_term: (opcional) termo da palavra-chave
utm_content: (opcional) diferenciação de anúncios/variações
Exemplo de URL gerada:
https://sualoja.com.br/produto.html?utm_source=google-shopping&utm_medium=feed&utm_campaign=geral
Notificações por e-mail
Na aba Notificações por E-mail, configure alertas para:
Exportação bem-sucedida
Falha na exportação
Entrega (FTP) bem-sucedida
Falha na entrega
Insira um ou mais e-mails separados por vírgula.
Mapeamento de Categorias
Plataformas como Google Shopping exigem que seus produtos estejam categorizados de acordo com a taxonomia da própria plataforma. O mapeamento de categorias resolve isso.
Como criar
Acesse Catálogo → Feed Avançado → Mapeamento de Categorias
Clique em Adicionar Mapeamento
Para cada categoria da sua loja, digite a categoria equivalente da plataforma. O sistema sugere automaticamente categorias da taxonomia Google enquanto você digita
Categorias filhas que não forem mapeadas herdam o mapeamento da categoria pai
Como usar no feed
Feed CSV: selecione o atributo "Category mapping: Nome" no mapeamento de campos
Feed XML: use o padrão {{ product.mapping:ID }}, onde ID é o número do mapeamento criado (ex: {{ product.mapping:1 }})
Atributos Dinâmicos
Atributos dinâmicos permitem criar valores calculados com base em condições, sem precisar alterar o produto no catálogo.
Exemplo prático: Status de estoque personalizado
Nome: Status de estoque adicional
Código: stock_status
Condição: se a quantidade em estoque é maior que 0 → retorna "in stock"; senão → retorna "out of stock"
Como usar no feed
Feed XML: {{ product.dynamic:stock_status }}
Feed CSV: selecione o atributo dinâmico no dropdown
Variáveis Dinâmicas
Variáveis dinâmicas são scripts PHP customizados que permitem lógicas avançadas, como cálculos de parcelamento, formatação de GTIN ou somas de estoque multiorigem.
Importante: A criação e manutenção das variáveis dinâmicas é feita pela equipe técnica. Abaixo estão as informações para entender como elas funcionam e como referenciá-las no feed.
Onde ficam
As variáveis são criadas em Catálogo → Feed Avançado → Variáveis Dinâmicas. O nome e o código são definidos no painel, e o script PHP é criado no servidor no diretório var/mst_feed/.
Como usar no feed
No feed (XML ou CSV), utilize: {{ product.variable:codigo_da_variavel }}
Exemplo: Parcelamento (installment)
A variável de parcelamento é configurada pela equipe técnica para calcular automaticamente o número de parcelas e o valor de cada parcela. No feed, ela aparece como:
{{ product.variable:installment }}
Quando processada, ela gera automaticamente as informações de parcelamento (número de meses e valor da parcela) conforme configurado.
Pré-visualização
Na tela de edição da variável dinâmica, você pode inserir IDs de produtos para pré-visualizar os resultados e verificar se os valores estão corretos.
Filtros Liquid (Modificadores)
Os filtros liquid permitem transformar valores antes de incluí-los no feed. São aplicados com o caractere | (pipe) após o atributo.
Formato: {{ product.atributo | filtro }}
Filtros de texto mais usados
Filtro
Função
Exemplo
lowercase
Converte para minúsculas
{{ product.name | lowercase }}
uppercase
Converte para maiúsculas
{{ product.name | uppercase }}
replace: 'de', 'para'
Substitui texto
{{ product.name | replace: 'Antigo', 'Novo' }}
append: ' - texto'
Adiciona texto ao final
{{ product.name | append: ' - Loja' }}
prepend: 'texto - '
Adiciona texto no início
{{ product.name | prepend: 'Compre ' }}
stripHtml
Remove tags HTML
{{ product.description | stripHtml }}
truncate: 150
Limita a quantidade de caracteres
{{ product.name | truncate: 150 }}
truncatewords: 50
Limita a quantidade de palavras
{{ product.description | truncatewords: 50 }}
plain
Remove HTML e formatação
{{ product.description | plain }}
ifEmpty: 'valor'
Valor padrão quando vazio
{{ product.color | ifEmpty: 'Não informado' }}
trim
Remove espaços no início e fim
{{ product.name | trim }}
escape
Escapa caracteres HTML
{{ product.description | escape }}
strip_newlines
Remove quebras de linha
{{ product.description | strip_newlines }}
Filtros de preço e número
Filtro
Função
Exemplo
price
Formata como preço (2 decimais)
{{ product.price | price }}
convert: 'USD'
Converte moeda
{{ product.price | convert: 'USD' }}
inclTax
Inclui imposto
{{ product.price | inclTax | price }}
exclTax
Exclui imposto
{{ product.price | exclTax | price }}
round: 2
Arredonda decimais
{{ product.weight | round: 2 }}
numberFormat: '2', '.', ','
Formata número
{{ product.price | numberFormat: '2', '.', ',' }}
ceil
Arredonda para cima
{{ product.weight | ceil }}
floor
Arredonda para baixo
{{ product.weight | floor }}
plus: '10'
Soma
{{ product.price | plus: '10' }}
minus: '5'
Subtrai
{{ product.price | minus: '5' }}
times: '1.2'
Multiplica
{{ product.price | times: '1.2' }}
divided_by: '2'
Divide
{{ product.price | divided_by: '2' }}
Filtros de data
Filtro
Função
Exemplo
dateFormat: 'd/m/Y'
Formata data
{{ product.created_at | dateFormat: 'd/m/Y' }}
Filtros de URL e imagem
Filtro
Função
Exemplo
secure
Força HTTPS
{{ product.url | secure }}
resize: '300x300'
Redimensiona imagem
{{ product.image | resize: '300x300' }}
Encadeamento de filtros
Você pode aplicar múltiplos filtros em sequência:
{{ product.description | stripHtml | truncatewords: 100 | trim }}
Lista de atributos de produto disponíveis
Atributos principais
Padrão
Descrição
{{ product.entity_id }}
ID do produto
{{ product.sku }}
SKU do produto
{{ product.name }}
Nome do produto
{{ product.description }}
Descrição completa
{{ product.short_description }}
Descrição curta
{{ product.url }}
URL do produto
{{ product.url_key }}
Chave de URL
{{ product.type_id }}
Tipo (simple, configurable, etc.)
{{ product.status }}
Status (Habilitado/Desabilitado)
{{ product.visibility }}
Visibilidade
{{ product.attribute_set }}
Conjunto de atributos
Preços
Padrão
Descrição
{{ product.price }}
Preço regular
{{ product.final_price }}
Preço final (com descontos aplicados)
{{ product.special_price }}
Preço promocional
{{ product.cost }}
Custo do produto
{{ product.msrp }}
Preço sugerido pelo fabricante
Categorias
Padrão
Descrição
{{ product.category.path }}
Caminho da categoria (ex: Roupas > Camisetas > Masculino)
{{ product.category.entity_id }}
ID da categoria
{{ product.category_ids }}
IDs de todas as categorias atribuídas
Imagens
Padrão
Descrição
{{ product.image }}
URL da imagem principal
{{ product.images }}
URLs de todas as imagens da galeria (separadas por vírgula)
{{ product.thumbnail }}
URL da miniatura
{{ product.small_image }}
URL da imagem pequena
{{ product.gallery[0] }}
Primeira imagem da galeria (use [1], [2], etc. para as seguintes)
Estoque
Padrão
Descrição
{{ product.is_in_stock }}
Em estoque? (0 = não, 1 = sim)
{{ product.qty }}
Quantidade em estoque
{{ product.stock_status }}
Status textual (in stock / out of stock)
Produto pai (para variações)
Use o sufixo .parent para acessar dados do produto configurável (pai):
Padrão
Descrição
{{ product.parent.name }}
Nome do produto pai
{{ product.parent.url }}
URL do produto pai
{{ product.parent.price }}
Preço do produto pai
{{ product.parent.sku }}
SKU do produto pai
{{ product.parent.image }}
Imagem do produto pai
Quando usar .parent? Sempre que estiver exportando produtos simples que são "Não Visível Individualmente" — eles não têm URL própria, então você precisa usar a URL do pai. Também é útil para item_group_id, onde todos os filhos devem referenciar o SKU do configurável.
Validação do feed
O módulo possui validação integrada que verifica se o feed atende aos requisitos da plataforma destino.
Como validar
Gere o feed normalmente
Clique em Validar na tela de edição do feed
Revise os resultados na seção Controle de Qualidade
Níveis de severidade
Nível
Significado
Erro (Error)
Problema crítico que pode causar rejeição do feed
Aviso (Warning)
Pode afetar a qualidade ou causar rejeição parcial
Nota (Notice)
Informação ou problema menor de formatação
Melhoria (Improvement)
Recomendação opcional para melhorar a qualidade
Problemas comuns e soluções
Preço ausente ou incorreto: Adicione a moeda diretamente no feed, ex: {{ product.final_price }} BRL
Faltam GTIN, Marca ou MPN: Use lógica condicional para definir identifier_exists:
{% if product.gtin or product.brand or product.mpn %}yes{% else %}no{% endif %}
URL da imagem inválida: Verifique se as URLs das imagens começam com https://
Título excede o limite: Use o filtro truncate: 150 para limitar
Geração via linha de comando (CLI)
Para gerar feeds via terminal SSH (útil para feeds grandes ou automação avançada):
# Gerar todos os feeds ativos
php bin/magento mirasvit:feed:export
# Gerar apenas um feed específico (pelo ID)
php bin/magento mirasvit:feed:export --id=1
# Gerar com step maior (mais rápido, exige mais recursos do servidor)
php bin/magento mirasvit:feed:export --id=1 --step=100
# Entregar feeds via FTP
php bin/magento mirasvit:feed:delivery
# Entregar um feed específico
php bin/magento mirasvit:feed:delivery --id=1
Troubleshooting — Problemas comuns
Página em branco ao acessar Catálogo → Feeds
A biblioteca PHP zf1/zend-reflection está ausente. Solicite à equipe técnica a instalação:
composer require "zf1/zend-reflection"
Filtro de categoria aplicado, mas nenhum produto no feed
Provavelmente o filtro usa "CATEGORIA É" em vez de "CATEGORIA É UM DE". A primeira opção exige que o produto esteja em TODAS as categorias listadas. Mude para "é um de".
Exportação travada em determinado passo
Verifique se o servidor tem recursos suficientes (memória, CPU) e se as permissões do diretório de exportação estão corretas. Confira a aba "Histórico" para detalhes sobre o erro.
Feed gerado, mas sem produtos ou com produtos errados
Revise os filtros aplicados ao feed. Confira se não há filtros conflitantes ou muito restritivos. Use a funcionalidade de "Pré-visualização de produtos" no filtro para verificar quais produtos atendem às condições.
Checklist — Configuração completa de um novo feed
Use esta lista para garantir que nenhum passo ficou de fora:
Selecionar o template correto (Google Shopping XML, Facebook CSV, etc.)
Definir nome e nome do arquivo
Selecionar a visão de loja correta
Ativar o feed
Revisar/ajustar o conteúdo do feed (atributos, padrões, condições)
Criar e aplicar filtros necessários (status, estoque, categorias)
Configurar mapeamento de categorias (se exigido pela plataforma)
Salvar e gerar o feed pela primeira vez
Validar o feed
Testar a URL do feed no navegador
Configurar agendamento automático (dias e horários)
Configurar envio FTP se necessário
Configurar parâmetros UTM se desejado
Configurar notificações por e-mail
Enviar a URL do feed para a plataforma destino
Referência rápida — Templates mais usados
Plataforma
Formato
Template
Google Shopping
XML
Google Shopping
Google Shopping (Configuráveis)
XML
Google Shopping (configurable products)
Google Shopping CSV
CSV
Google Shopping CSV Feed
Google Shopping Reviews
XML
Google Shopping Review
Facebook / Instagram
CSV
Storefront Social Facebook
Facebook Dynamic Ads
XML
Facebook Dynamic Ads
Pinterest
CSV
Pinterest
TikTok
CSV
TikTok
Bing (Microsoft Ads)
XML
Bing Feed (Microsoft Advertising)
Criteo
CSV
Criteo