העשרת קטלוגי Magento מבלי לשבור את ה-Indexer שלו

משתמשי Magento רבים נתקלים באותה בעיה. יש לכם אלפי מוצרים עם מאפיינים (attributes) חסרים, תיאורים דלים או ללא תרגומים.

מציאת מקורות מידע היא קלה. החלק הקשה הוא הכנסת המידע הזה לקטלוג שלכם מבלי להפיל את החנות.

הטעות הנפוצה היא שימוש בלולאה פשוטה כדי לשמור מוצרים אחד אחד.

אם אתם משתמשים בשיטת השמירה של ה-product repository בתוך לולאה, אתם מפעילים מחזור חיים מלא עבור כל פריט ופריט. אתם מריצים אימות (validation), observers והפעלת reindexing אלפי פעמים. זה גורם לסקריפטים לרוץ במשך שעות ומאט את פאנל הניהול שלכם בצורה קיצונית.

נתיב השמירה (save path) בנוי עבור בני אדם שעורכים מוצר אחד. זהו הכלי הלא נכון לעדכונים בכמות גדולה (bulk updates).

בצעו את השלבים הבאים כדי לעדכן את הקטלוג שלכם בבטחה:

  • השתמשו בעדכוני מאפיינים המוניים (mass attribute updates). במקום לשמור את מודל המוצר כולו, השתמשו ב-Magento\Catalog\Model\Product\Action. השתמשו בשיטת updateAttributes כדי לכתוב ישירות לטבלאות בבסיס הנתונים. עשו זאת במנות (batches) של 1,000 עד 2,000 מזהים (IDs) בכל פעם.

  • שנו את הגדרות ה-indexer שלכם. הגדירו את ה-indexers שלכם ל-Update by Schedule לפני שאתם מתחילים. אם אתם משתמשים ב-Update on Save, כל כתיבה מפעילה reindex סינכרוני. במצב של לוח זמנים (schedule), הכתיבות עוברות ל-changelog ותהליך ה-cron מטפל בעבודה.

  • נהלו תרגומים בצורה נכונה. תרגום הוא ערך מאפיין עבור תצוגת חנות (store view) ספציפית. העבירו את ה-store ID הנכון לשיטת updateAttributes. אל תדרסו את ערכי ברירת המחדל הגלובליים שלכם בעת הוספת שפות מקומיות.

  • התייחסו לתוכן AI בזהירות. מודלי שפה (LLMs) כותבים טקסטים נהדרים אך לעיתים קרובות "הזיות" (hallucinate) עובדות. הם עלולים לומר שחולצה היא מכותנה כשהיא עשויה מפוליאסטר. • כתבו תוכן AI לשדה זמני (staging field) או לטווח (scope) מנוטרל תחילה. • בדקו מדגם קטן לפני שאתם עולים לאוויר. • שמרו על מפרטים טכניים כמו מידות וחומרים שמקורם בנתונים מאומתים.

סיכום להעשרה בכמות גדולה:

  1. הגדירו את ה-indexers למצב מתוזמן (scheduled mode).
  2. השתמשו בשדה זמני (staging field) עבור נתונים חדשים.
  3. החילו עדכונים במנות של 1,000 עד 2,000 מזהים.
  4. הימנעו מנתיב השמירה המלא של המוצר.
  5. בצעו reindex לשינויים.
  6. בדקו מדגם של דפי המוצרים שלכם.

מקורות מידע הם החלק הקל. ניהול קטלוג חי דורש גישה שונה.

מקור: https://dev.to/iamrobindhiman/enriching-a-large-magento-catalog-without-melting-the-indexer-3mk9