Verrijk Magento-catalogi zonder de indexer te overbelasten

Veel Magento-gebruikers kampen met hetzelfde probleem. Je hebt duizenden producten met ontbrekende attributen, magere beschrijvingen of geen vertalingen.

Het vinden van databronnen is eenvoudig. Het lastige deel is het invoeren van die gegevens in je catalogus zonder je webshop te laten crashen.

De veelgemaakte fout is het gebruik van een eenvoudige loop om producten één voor één op te slaan.

Als je de product repository save-methode in een loop gebruikt, activeer je voor elk item een volledige lifecycle. Je voert duizenden keren validaties, observers en re-indexing triggers uit. Hierdoor draaien scripts urenlang en wordt je adminpaneel extreem traag.

Het opslagpad is ontworpen voor mensen die één product bewerken. Het is het verkeerde hulpmiddel voor bulkupdates.

Volg deze stappen om je catalogus veilig bij te werken:

  • Gebruik massale attribuut-updates. In plaats van het volledige productmodel op te slaan, gebruik je Magento\Catalog\Model\Product\Action. Gebruik de updateAttributes-methode om rechtstreeks naar de database-tabellen te schrijven. Doe dit in batches van 1.000 tot 2.000 ID's tegelijk.

  • Pas je indexer-instellingen aan. Zet je indexers op Update by Schedule voordat je begint. Als je Update on Save gebruikt, activeert elke schrijfactie een synchrone re-indexering. Bij een schema worden schrijfacties naar een changelog gestuurd en handelt de cronjob het werk af.

  • Beheer vertalingen correct. Een vertaling is een attribuutwaarde voor een specifieke store view. Geef de juiste store ID door aan de updateAttributes-methode. Overschrijf je globale standaardwaarden niet wanneer je lokale talen toevoegt.

  • Ga voorzichtig om met AI-content. LLM's schrijven geweldige teksten, maar hallucineren vaak feiten. Ze kunnen bijvoorbeeld zeggen dat een shirt van katoen is terwijl het van polyester is. • Schrijf AI-content eerst naar een staging-veld of een uitgeschakelde scope. • Controleer een kleine steekproef voordat je live gaat. • Zorg dat technische specificaties zoals afmetingen en materialen afkomstig zijn uit geverifieerde gegevens.

Samenvatting voor bulkverrijking:

  1. Zet indexers op de 'scheduled' modus.
  2. Gebruik een staging-veld voor nieuwe gegevens.
  3. Pas updates toe in batches van 1.000 tot 2.000 ID's.
  4. Vermijd het volledige product-savepad.
  5. Re-index de wijzigingen.
  6. Test een steekproef van je productpagina's.

Databronnen zijn het makkelijke deel. Het beheren van een live catalogus vereist een andere aanpak.

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