Enriqueça Catálogos Magento Sem Quebrar o Indexador

Muitos usuários de Magento enfrentam o mesmo problema. Você tem milhares de produtos com atributos ausentes, descrições superficiais ou sem traduções.

Encontrar fontes de dados é fácil. A parte difícil é inserir esses dados no seu catálogo sem derrubar sua loja.

O erro comum é usar um loop simples para salvar produtos um por um.

Se você usar o método de salvamento do repositório de produtos em um loop, você acionará um ciclo de vida completo para cada item. Você executará validações, observers e gatilhos de reindexação milhares de vezes. Isso faz com que os scripts rodem por horas e deixa seu painel administrativo extremamente lento.

O caminho de salvamento foi construído para humanos editando um único produto. É a ferramenta errada para atualizações em massa.

Siga estes passos para atualizar seu catálogo com segurança:

  • Use atualizações de atributos em massa. Em vez de salvar o modelo de produto completo, use Magento\Catalog\Model\Product\Action. Use o método updateAttributes para escrever diretamente nas tabelas do banco de dados. Faça isso em lotes de 1.000 a 2.000 IDs por vez.

  • Altere as configurações do seu indexador. Defina seus indexadores para Update by Schedule antes de começar. Se você usar Update on Save, cada gravação acionará uma reindexação síncrona. No modo agendado, as gravações vão para um changelog e o cron job cuida do trabalho.

  • Gerencie as traduções corretamente. Uma tradução é um valor de atributo para uma visualização de loja (store view) específica. Passe o ID da loja correto para o método updateAttributes. Não sobrescreva seus valores padrão globais ao adicionar idiomas locais.

  • Lide com conteúdo de IA com cuidado. LLMs escrevem ótimos textos, mas frequentemente alucinam fatos. Eles podem dizer que uma camisa é de algodão quando é de poliéster. • Escreva o conteúdo de IA em um campo de staging ou em um escopo desativado primeiro. • Revise uma pequena amostra antes de colocar no ar. • Mantenha especificações técnicas, como dimensões e materiais, baseadas em dados verificados.

Summary for bulk enrichment:

  1. Defina os indexadores para o modo agendado.
  2. Use um campo de staging para novos dados.
  3. Aplique as atualizações em lotes de 1.000 a 2.000 IDs.
  4. Evite o caminho completo de salvamento de produto.
  5. Reindexe as alterações.
  6. Teste uma amostra de suas páginas de produto.

Fontes de dados são a parte fácil. Gerenciar um catálogo em produção exige uma abordagem diferente.

Fonte: https://dev.to/iamrobindhiman/enriching-a-large-magento-catalog-without-melting-the-indexer-3mk9