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 %} <![CDATA[{{ product.name }}]]> {% 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