Magento Indexer ని దెబ్బతీయకుండా Magento Catalogs ని మెరుగుపరచండి
చాలా మంది Magento వినియోగదారులు ఒకే రకమైన సమస్యను ఎదుర్కొంటున్నారు. మీ వద్ద వేల సంఖ్యలో ఉత్పత్తులు ఉండవచ్చు, కానీ వాటికి అవసరమైన attributes లేకపోవడం, తక్కువ సమాచారం ఉన్న descriptions ఉండటం లేదా అనువాదాలు (translations) లేకపోవడం వంటి సమస్యలు ఉండవచ్చు.
డేటా మూలాలను (data sources) కనుగొనడం సులభం. కానీ మీ స్టోర్ క్రాష్ అవ్వకుండా ఆ డేటాను మీ క్యాటలాగ్లోకి చేర్చడమే అసలైన సవాలు.
ఉత్పత్తులను ఒక్కొక్కటిగా సేవ్ చేయడానికి ఒక సాధారణ loop ని ఉపయోగించడం అనేది చాలా మంది చేసే సాధారణ తప్పు.
మీరు ఒక loop లో product repository save method ని ఉపయోగిస్తే, ప్రతి ఐటెమ్ కోసం పూర్తి lifecycle ని ట్రిగ్గర్ చేస్తారు. దీనివల్ల వేల సార్లు validation, observers మరియు reindexing triggers రన్ అవుతాయి. ఇది స్క్రిప్ట్లు గంటల తరబడి నడవడానికి మరియు మీ admin panel ని చాలా నెమ్మదిగా చేయడానికి కారణమవుతుంది.
ఈ save path అనేది ఒక వ్యక్తి ఒక ఉత్పత్తిని ఎడిట్ చేయడానికి రూపొందించబడింది. బల్క్ అప్డేట్స్ (bulk updates) కోసం ఇది సరైన సాధనం కాదు.
మీ క్యాటలాగ్ను సురక్షితంగా అప్డేట్ చేయడానికి ఈ క్రింది దశలను అనుసరించండి:
mass attribute updates ని ఉపయోగించండి. మొత్తం product model ని సేవ్ చేసే బదులు,
Magento\Catalog\Model\Product\Actionని ఉపయోగించండి. డేటాబేస్ టేబుల్స్లోకి నేరుగా రాయడానికిupdateAttributesmethod ని ఉపయోగించండి. దీనిని ఒకేసారి 1,000 నుండి 2,000 IDs బ్యాచ్లుగా చేయండి.మీ indexer settings ని మార్చండి. మీరు ప్రారంభించే ముందు మీ indexers ని 'Update by Schedule' కి సెట్ చేయండి. మీరు 'Update on Save' ఉపయోగిస్తే, ప్రతి రైట్ ఆపరేషన్ ఒక synchronous reindex ని ట్రిగ్గర్ చేస్తుంది. 'On a schedule' లో, రైట్స్ changelog కి వెళ్తాయి మరియు cron job ఆ పనిని నిర్వహిస్తుంది.
అనువాదాలను (translations) సరిగ్గా నిర్వహించండి. ఒక అనువాదం అనేది ఒక నిర్దిష్ట store view కోసం ఉండే attribute value.
updateAttributesmethod కి సరైన store ID ని పంపండి. లోకల్ లాంగ్వేజెస్ జోడిస్తున్నప్పుడు మీ global default values ని ఓవర్రైట్ చేయకండి.AI కంటెంట్ను జాగ్రత్తగా నిర్వహించండి. LLMs అద్భుతమైన కాపీని రాస్తాయి కానీ తరచుగా వాస్తవాలను తప్పుగా చెప్పవచ్చు (hallucinate). ఉదాహరణకు, ఒక షర్ట్ పాలిస్టర్తో తయారైనప్పటికీ అది కాటన్ అని చెప్పవచ్చు. • AI కంటెంట్ను మొదట staging field లేదా disabled scope లో రాయండి. • లైవ్ లోకి వెళ్లే ముందు చిన్న శాంపిల్ను రివ్యూ చేయండి. • డైమెన్షన్స్ మరియు మెటీరియల్స్ వంటి సాంకేతిక వివరాలను (technical specs) ఎల్లప్పుడూ ధృవీకరించబడిన డేటా నుండి మాత్రమే తీసుకోండి.
బల్క్ ఎన్రిచ్మెంట్ (bulk enrichment) కోసం సారాంశం:
- indexers ని scheduled mode లో సెట్ చేయండి.
- కొత్త డేటా కోసం staging field ని ఉపయోగించండి.
- 1,000 నుండి 2,000 IDs బ్యాచ్లుగా అప్డేట్లను వర్తింపజేయండి.
- పూర్తి product save path ని నివారించండి.
- మార్పులను reindex చేయండి.
- మీ ప్రొడక్ట్ పేజీల యొక్క ఒక శాంపిల్ను పరీక్షించండి.
డేటా మూలాలను కనుగొనడం సులభం. కానీ లైవ్ క్యాటలాగ్ను నిర్వహించడానికి భిన్నమైన విధానం అవసరం.
Source: https://dev.to/iamrobindhiman/enriching-a-large-magento-catalog-without-melting-the-indexer-3mk9
