लक्ष्य नियम अपशगुन


9

मैं Magento के लक्ष्य के साथ एक अजीब मुद्दा है नियम बेचता है।

परिदृश्य: Magento EE 1.12। एक ही Magento उदाहरण पर 30 + स्टोर विचार। 30k + उत्पादों। अधिकांश उत्पादों की दुकान के सभी विचारों पर समान सेटिंग्स हैं। मैंने निम्नानुसार अपशेल्ट दिखाने के लिए एक नियम बनाया है। "उसी उत्पाद से उत्पाद दिखाएं जिसकी कीमत 100% या उससे अधिक है जो वर्तमान उत्पाद है"। अपडाउन दिखाने के लिए सेटिंग्स: 'रूल बेस्ड ओनली' (अंक 'नियम आधारित और चयनित' के लिए पुन: पेश होता है)। मैंने नियम बचा लिया है। सब कुछ reindexed। ठीक दिखने के लिए सब कुछ, नियम के अनुसार परिभाषित किए गए उत्पाद (जैसे मेरे द्वारा परीक्षण किए गए) के लिए दिखाई देते हैं, लेकिन ... एक ही उत्पाद के लिए कुछ समय के बाद एक बार अपस्ट्रीम दिखाई देते हैं और अन्य स्टोर दृश्य पर वे दिखाई नहीं देते हैं। उत्पाद की दुकान के सभी विचारों पर समान सेटिंग्स हैं। (और इसमें एक ही उतार-चढ़ाव होना चाहिए।)

यदि मैं नियम में कुछ संशोधन करता हूं और इसे फिर से सहेजता हूं तो सभी स्टोर व्यूज पर उतार-चढ़ाव दिखाई देने लगते हैं, लेकिन कुछ समय बाद यह समस्या फिर से शुरू हो जाती है।

कोड में खुदाई करने के बाद मुझे पता चला कि लक्ष्य नियम द्वारा उत्पन्न अपस्ट्रीम को टेबल एंटरप्राइज़_टार्गेट्रूले_इंडेक्स_अपसेल में रखा जाता है ताकि हर बार सभी नियमों को पार्स किया जा सके। यहाँ दिया गया है कि यह कैसे काम करता है। (किसी नियम को सहेजते समय तालिका को छोटा कर दिया जाता है) यदि मेरे द्वारा उल्लेखित तालिका में कोई 'लक्ष्य नियम' अपशेल हैं तो वे पुनः प्राप्त कर लिए जाते हैं। यदि वे नहीं हैं तो नियमों को पार्स किया जाता है और परिणाम सूचकांक तालिका में डाल दिया जाता है। किसी विशिष्ट उत्पाद के लिए उस तालिका के कुछ रिकॉर्ड यहां दिए गए हैं।

+-----------+----------+-------------------+---------------------------------------------------------------------+---------------------+
| entity_id | store_id | customer_group_id | product_ids                                                         | customer_segment_id |
+-----------+----------+-------------------+---------------------------------------------------------------------+---------------------+
|     17372 |        2 |                 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 |                   0 |
|     17372 |        5 |                 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 |                   0 |
|     17372 |       17 |                 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 |                   0 |
|     17372 |       18 |                 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 |                   0 |
|     17372 |       19 |                 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 |                   0 |
|     17372 |       20 |                 0 |                                                                     |                   0 |
|     17372 |       21 |                 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 |                   0 |
|     17372 |       22 |                 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 |                   0 |
|     17372 |       23 |                 0 | 17373,350,583,487,17664,29737,14719,443,445,29502,17666,17667,17668 |                   0 |

जैसा कि आप देख सकते हैं कि उत्पाद के लिए अप आईडी 17372 आईडी के साथ सभी स्टोर व्यू पर समान हैं। स्टोर 20 को छोड़कर जो कि रिक्त है। स्टोर 20 के बारे में कुछ खास नहीं है। यहां शामिल सभी उत्पाद सभी दुकानों पर उपलब्ध हैं।

कोई उपाय?

धन्यवाद। मारिअस।


1
क्या आपका cronविन्यास ठीक से है IIRC नियम रात में फिर से बनाए गए हैं और एक सक्रिय बिना cronअजीब व्यवहार का उत्पादन करेंगे
बेन लेसानी - सोनासी

क्रोन सक्रिय है और हर सुबह बिना मुद्दों के चलता है।
मेरियस

मुझे एक और चीज मिली। नियम को सहेजने के बाद, तालिका 'एंटरप्राइज़_टार्गेट्रेल_प्रोडक्ट' में सभी उत्पाद शामिल हैं, लेकिन कुछ समय बाद उनमें से एक को छोड़कर सभी चले जाते हैं, हमेशा एक ही नहीं। जब तक उत्पाद आईडी ऊपर तालिका में हैं, तब तक सब कुछ काम करता है।
मेरियस

1
किसी उत्पाद को सहेजते समय लक्ष्य नियमों को उस उत्पाद के लिए अनुक्रमित किया जाता है और यह समाप्त होता है: -> quotInto ($ निकायInfo ['rule_id_field']। 'IN (?) और', $ ruleIds)। $ अनुकूलक-> quotInto ($ unitInfo ['unit_id_field']]। 'NOT IN?'), $ unitIds)। यह प्रभावित उत्पाद सूची से सभी अन्य उत्पादों को हटा देता है मैं 'मैनुअल' मुद्दे पर targetrule सूचकांक के लिए मोड सेट प्रजनन नहीं कर रहा है लेकिन इस यह समाधान नहीं करता है यह सिर्फ यह छुपाता है।।।।
मेरियस

किसी के लिए यह नीचा दिखाने का कोई कारण?
फ्लोरिनसेलइस

जवाबों:


7

ईई 1.13 में, यह बग तय हो गया है (लेकिन ईई 1.13 चला गया है)

में Enterprise_TargetRule_Model_Resource_Index::saveProductIndex, समस्या के साथ लाइन (: 4 परम "गलत" संकेत) के साथ बदल दिया गया था

$targetRule->bindRuleToEntity($ruleId, $productId, 'product', false);

और, में Mage_Rule_Model_Resource_Abstract, फ़ंक्शन bindRuleToEntityको बदल दिया गया था:

public function bindRuleToEntity($ruleIds, $entityIds, $entityType, $deleteOldResults = true)

और लाइन $adapter->delete(...)में लपेटा गया था

if ($deleteOldResults) {
    $adapter->delete($this->getTable($entityInfo['associations_table']),
           $adapter->quoteInto($entityInfo['rule_id_field']   . ' IN (?) AND ', $ruleIds) .
           $adapter->quoteInto($entityInfo['entity_id_field'] . ' NOT IN (?)',  $entityIds)
    );
 }

एक और बग, शैल / indexer.php --reindex targetrule कुछ भी नहीं करता है, इसलिए, आप क्रॉन / कंसोल के माध्यम से रींडेक्स नहीं कर सकते, इसमें जोड़कर ठीक करें Enterprise_TargetRule_Model_Index:

public function reindexAll() {
    return $this->_getResource()->cleanIndex();
}

LATER: इस पैच को देखें https://github.com/magendooro/targetrulefix


मैं १.१३.१ पर हूं और मुझे एक Integrity constraint violation:for key '5B1C775075460366570ABDA2839BC68A'-> यह कुंजी आती है enterprise_targetrule_index_related... क्या आपके पास कोई विचार है अगर यह उल्लेखित परिवर्तनों से संबंधित है?
फ्रा

1

मैंने जो मुझे उत्तर के रूप में मिला, उसे जोड़ने का फैसला किया, इसलिए इस प्रश्न को अनुत्तरित नहीं माना जाएगा।

किसी उत्पाद को सहेजते समय लक्ष्य नियमों को उस उत्पाद के लिए अनुक्रमित किया जाता है और यह समाप्त होता है :( Mage_Rule_Model_Resource_Abstract::bindRuleToEntity())

$adapter->delete($this->getTable($entityInfo['associations_table']), $adapter->quoteInto($entityInfo['rule_id_field'] . ' IN (?) AND ', $ruleIds) . $adapter->quoteInto($entityInfo['entity_id_field'] . ' NOT IN (?)', $entityIds); 

यह प्रभावित उत्पाद सूची से अन्य सभी उत्पादों को हटा देता है। यदि मैंने लक्ष्य पुस्तिका के लिए मोड को 'मैनुअल' में सेट किया है तो समस्या पुन: उत्पन्न नहीं हो रही है। लेकिन इससे इसका हल नहीं निकलता है। यह सिर्फ इसे छुपाता है।

मेरे दृष्टिकोण से यह एक गंभीर मैगनेटो ईई बग है।


क्या स्वीकृत उत्तर से आपकी समस्या हल हो गई? मैं EE 1.11.1.0 में इसी मुद्दे पर चल रहा हूं
dchayka

यह मेरे लिए किया था ..
मेरियस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.