क्यों Magento उत्पाद यूआरएल डुप्लिकेट


10

मैं उपयोग कर रहा हूं magento 1.7। मैं अजीब समस्या का सामना कर रहा हूँ। magentoगलत यूआरएल कुंजी के साथ यादृच्छिक संख्या के साथ डुप्लिकेट उत्पाद यूआरएल बनाने के लिए कृपया मेरे संलग्न स्क्रीनशॉट

मैं खाली टेबल rewrite_urlsऔर रेनडेक्स भी पेश करता हूं लेकिन फिर भी मुझे गलत यूआरएल मिल रहे हैं। इस समस्या को हल करने में कृपया मेरी मदद करें। यदि आप प्रश्न में छवियों को देखने में असमर्थ हैं, तो कृपया लिंक पैनल उत्पाद डुप्लिकेट और उत्पाद व्यवस्थापक पैनल में क्लिक करें

डुप्लिकेट उत्पाद urls,वास्तविक उत्पाद

मुझे उदाहरण के साथ यू समझने दो

जैसे मेरे पास "उदाहरण" नाम का एक उत्पाद है और url कुंजी "उदाहरण" है Url होगा

www.example.com/example

और अब मैंने नया उत्पाद बनाया है "xyz और url key है" xyz "और url होना चाहिए

www.example.com/xyz

लेकिन Magento के url जनरेट कर रहा है

www.example.com/example-123

आप मेज मतलब है core_url_rewrite?
फेबियन ब्लेस्चमिड

हां मेरा मतलब है core_url_rewrite

ऐसा इसलिए होता है क्योंकि आपके पास एक ही यूआरएल कुंजी के साथ 2 उत्पाद हैं / हैं। ट्रंकट core_url_rewriteटेबल पेट रन url rewrites अनुक्रमणिका फिर से प्रयास करें।
Dmytro Zavalkin

नहीं, मैंने जाँच की है कि मेरे पास अद्वितीय url कुंजियाँ हैं और मैंने पहले ही यह विकल्प आज़मा लिया है "ट्रायनेट कोर_उर्ल_ब्राइट टेबल रन रन url rewrites indexer फिर से

जवाबों:


6

यह 1.7 में एक बग लगता है। यदि आपके पास एक ही यूआरएल कुंजी के साथ कई सरल उत्पाद हैं जैसे कि कॉन्फ़िगर करने योग्य उत्पाद (जैसे सभी नाम समान हैं), तो मैग्नेटो की तुलना में हमेशा हर सूचकांक प्रक्रिया पर एक नया यूआरएल फिर से लिखना होता है। उदाहरण:

पहला सूचकांक:

  • myproducturl (कॉन्फ़िगर उत्पाद)
  • myproducturl-id (अपनी आईडी के साथ सरल उत्पाद, अब तक अच्छा है)

दूसरा सूचकांक:

  • myproducturl (कॉन्फ़िगर उत्पाद)
  • myproducturl-randomnumber (यादृच्छिक संख्या, बीएडी के साथ सरल उत्पाद)
  • myproducturl-id -> myproducturl-randomnumber (नए यूआरएल में फिर से लिखना)

और हर नई सूचकांक प्रक्रिया पर अंतिम चरण दोहराया जाएगा, इसलिए हमेशा एक नई यादृच्छिक यूआरएल कुंजी उत्पन्न होती है। अगर Magento जाँच करेगा, कि उस उत्पाद के लिए आईडी के साथ एक url कुंजी पहले से मौजूद है, तो यह कोई समस्या नहीं होनी चाहिए।

कुछ महीनों के बाद, आपके पास वास्तव में बड़ी url_rewrite तालिका होगी, क्योंकि कुछ भी नहीं हटाया जाएगा और प्रत्येक रन पर, उसी url कुंजी के साथ प्रत्येक उत्पाद के लिए कम से कम 1 रिकॉर्ड बनाया जाएगा।


इससे हमारे लिए बड़ी मुश्किलें खड़ी हो गई हैं। हमारे पास 20 रंग विविधताओं और प्रत्येक के 8 आकारों के साथ 1 उत्पाद है, इस प्रकार हमारे पास बहुत सारे सरल उत्पाद हैं जो समान नाम के साथ आयात किए जाते हैं। चूंकि url कुंजी एक नाम है यदि कोई निर्दिष्ट नहीं है, तो हम कई डुप्लिकेट के साथ समाप्त होते हैं। कष्टप्रद बात यह है कि हमारे पास व्यक्तिगत रूप से उपलब्ध होने वाले सिम्पल भी नहीं हैं (जो उन्हें पहली जगह में इंडेक्स प्राप्त करने का मज़ाक बनाता है)। हम इसके नाम के भाग के रूप में सिंपल स्कू का आयात करके इसे एक हद तक प्राप्त कर चुके हैं, क्योंकि यह सामने के छोर पर दिखाई नहीं देता है क्योंकि हम इससे दूर हो जाते हैं।
पीटर ओ'कालाघन

मैं भी इस समस्या का सामना कर रहा हूं, और मेरा URL फिर से लिखना तालिका मात्र 4000 उत्पादों के लिए 80,000 से अधिक प्रविष्टियों पर है। अगर किसी को इस पर कोई और जानकारी है, तो कृपया मुझे बताएं।
औरज्व

एक एंटरप्राइज पैच है जो सीई के लिए इस समस्या को हल करता है।
ब्रेंटवेटर्सन

@brentwpeterson क्या आप उस पैच के लिए आईडी जानते हैं?
पॉल


7

हम इस बग के साथ भी हिट रहे हैं। हम हर दिन फिर से इंडेक्स करते हैं और लगभग 1000 उत्पादों के लिए कुछ ही दिनों में 24,000 यूआरएल प्राप्त करते हैं।

मुझे विश्वास है कि मुझे इसके लिए एक ठीक मिल गया होगा। मैंने इस फिक्स को हमारे प्रोडक्शन साइट पर डाल दिया है और यह देखेगा कि यह कैसे जाता है। यदि अन्य परीक्षण कर सकते हैं तो यह उपयोगी होगा।

  1. यदि चीजें गलत हो जाती हैं, तो core_url_rewrite टेबल और डेटा का बैकअप बनाएं

  2. ऐप / कोड / कोर / मैज / कैटलॉग / मॉडल / Url.php लाइन 809 में बदलाव

    if ($product->getUrlKey() == '' && !empty($requestPath)
            && strpos($existingRequestPath, $requestPath) === 0
        )

    सेवा

    if (!empty($requestPath)
            && strpos($existingRequestPath, $requestPath) === 0
        ) 
  3. क्रुण्ते (खाली) core_url_rewrite टेबल

  4. सिस्टम के तहत -> अनुक्रमणिका प्रबंधन कैटलॉग यूआरएल को फिर से अनुक्रमित करता है डेटा को फिर से लिखता है

अब आपको हजारों यादृच्छिक URL रीराइट किए बिना फिर से इंडेक्स करने में सक्षम होना चाहिए।

Jahnni और फिक्स के लिए स्नोबाउंट के लिए धन्यवाद - इसके बारे में और अधिक पढ़ें: http://www.magentocommerce.com/boards/viewthread/416476/

यहाँ बग रिपोर्ट: http://www.magentocommerce.com/bug-tracking/issue?issue=15048


इसने मेरे लिए काम किया। उपविभाजित
sulabh

मुझे नहीं लगता कि यह 1.9.x पर सही ढंग से काम करता है। एक काम तय करने के लिए यहां देखें: gist.github.com/edannenberg/5310008
BlueC

0

नया:

यह पागलपन है। एक कैशिंग समस्या की तरह लग रहा है !? अनुक्रमण प्रक्रिया में कुछ टूट गया है, लेकिन कोई विचार नहीं है, क्षमा करें।

पुराना:

मुझे नहीं पता, यह क्यों खुश है, लेकिन मैं अपने अनुभव और अपने विचारों को लिखता हूं:

  1. जब Magento को पहले से मौजूद पुनर्लेखन का पता चलता है, तो वह एक गिनती संख्या को जोड़ता है।

  2. जब आप पुनर्लेखन को बदलते हैं, तो Magento पुराने URL के लिए एक पुनर्लेखन बनाता है (यदि पाठ इनपुट फ़ील्ड के तहत चेकबॉक्स की जाँच की जाती है)।

  3. मुझे लगता है कि कस्टम url rewrites शायद कहीं और सहेजे गए हैं, इसलिए कस्टम rewrites पहले लागू होते हैं और बाद में इसे उत्पाद rewrites जोड़ने की कोशिश की जाती है और यदि यह संभव नहीं है, तो काउंटर जोड़ा जाता है?


कृपया मेरे प्रश्न को देखें मैंने इसे फिर से अपडेट किया है आपकी पोस्ट अभी मेरे लिए उपयोगी नहीं है

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