2013-02-26 29 views
5

एक पृष्ठ चेकआउट एक सप्ताह पहले ठीक से काम कर रहा था और अब यह नहीं। मुझे गलती पर कोई संदेह नहीं है, क्योंकि मुझे अभी भी व्यवस्थापक बैकएंड से संबंधित कोई समस्या है, और मैंने शायद इस पर काम करने की प्रक्रिया में इसे किसी भी तरह से फॉलो किया।Magento एक पेज चेकआउट- TypeError प्राप्त करना: चेकआउट अपरिभाषित (opcheckout.js में)

किसी भी मामले में, क्या होता है कि जब एक (लॉग इन, पंजीकृत) उपयोगकर्ता एक पृष्ठ चेकआउट के बिलिंग सूचना चरण में "जारी रखें" बटन पर क्लिक करता है, जैसे कि बटन क्लिक नहीं किया गया था। यह अगले चरण में आगे नहीं बढ़ता है। और त्रुटि कंसोल (फ़ायरफ़ॉक्स में) रिपोर्ट करता है "टाइप एरर: चेकआउट अपरिभाषित है", और यह opcheckout.js में लाइन 303 दिखाता है।

यह समस्या another one posted on SO के समान ही है लेकिन (ए) कि वास्तव में उत्तर नहीं दिया गया है और (बी) मेरे पास टिप्पणी करने के लिए पर्याप्त स्कोर नहीं है (या वहां प्रश्न में जोड़ें)।

हालांकि एक समाधान अद्भुत होगा, मैं भी यह सीखने की कोशिश कर रहा हूं कि इसे स्वयं कैसे डिबग करें। मैंने पहले से ही कई Magento समाधान लागू किए हैं जो मुझे गुगलिंग (अन्य समस्याओं के लिए) द्वारा मिला है और, हालांकि वे काम करते हैं और यह मुख्य बात है, मैं अपनी समस्याओं को हल करने में सक्षम होना चाहता हूं। और हो सकता है कि अंततः दूसरों की मदद करने में भी सक्षम हो ...

तो, इस मामले में, "अपरिभाषित चेकआउट" दिया गया है, मुझे यह कैसे पता चलेगा कि इसे कहां परिभाषित किया जाना चाहिए?

+0

जब मैं डिफ़ॉल्ट थीम पर स्विच करता हूं, तो यह समस्या समाप्त हो जाती है। –

+0

लेकिन इसका मतलब यह नहीं है कि मेरी समस्या हल हो गई है, यह बस इसे थोड़ा सा नीचे बताती है: यदि मूल पैकेज का उपयोग किया जाता है तो चीजें काम करती हैं। लेकिन निश्चित रूप से मैं अपने अनुकूलित पैकेज को काम करना चाहता हूं (जैसा कि यह उपयोग किया जाता था)। –

+0

'/ skin/frontend/base/default/js/opcheckout.js' और'/skin/frontend/[yourpackage]/[yourtheme]/js/opcheckout.js' फ़ाइलों पर एक diff करने का प्रयास करें (यदि उत्तरार्द्ध मौजूद)। – pspahn

उत्तर

0

यहाँ समाधान

onepage.phtml में
  1. सही दो बुरा श्रेणी संदर्भ के लिए था, और
  2. क्या शेयर Magento चेकआउट कोड चाहता है मिलान करने के लिए कुछ सीएसएस वर्गों का नाम बदलें।

विशिष्ट सीएसएस जरूरत वर्गों थे:

  • सौतेली शीर्षक
  • कदम
  • संख्या

यहाँ की फ़ाइल onepage.html को सही एक अंश:

<ol id="checkoutSteps" class="one-page-checkout">`<?php $i=0; foreach($this->getSteps() as $_stepId => $_stepInfo): ?> 
<?php if (!$this->getChild($_stepId) || !$this->getChild($_stepId)->isShow()): continue; endif; $i++ ?> 
    <li id="opc-<?php echo $_stepId ?>" class="section <?php echo !empty($_stepInfo['allow'])?'allow':'' ?> <?php echo !empty($_stepInfo['complete'])?'saved':'' ?>"> 
     <div class="step-title"> 
      <h3><span class="step-count"><?php echo $i ?></span> &nbsp;<?php echo $_stepInfo['label'] ?></h3><a href="#"><?php echo $this->__('Edit') ?></a> 
     </div> 
     <div id="checkout-step-<?php echo $_stepId ?>" class="step <?php if($_stepId=='shipping_method'): ?>-no-padding<?php endif; ?> a-item" style="display:none;"> 
      <?php echo $this->getChildHtml($_stepId) ?> 
     </div> 
    </li> 
<?php endforeach ?> 
</ol> 

और यहाँ नई आवश्यक लोगों से एक के लिए में से एक अपने मौजूदा सीएसएस वर्गों को कॉपी का एक उदाहरण (फ़ाइल boxes.css से) है:

.one-page-checkout .box { border:1px solid #bbb6a5; border-top:0; padding:15px 20px; background:#faf7ee; } 
.one-page-checkout .step { border:1px solid #bbb6a5; border-top:0; padding:15px 20px; background:#faf7ee; } 

मैं इस "बॉक्स" का आह्वान किया था, लेकिन यह जहां तक ​​Magento का संबंध है "कदम" होना चाहिए। चूंकि आपके सीएसएस कक्षाएं अलग-अलग होने की संभावना है, इसलिए आपको

कॉपी करने की आवश्यकता होगी, मुझे उम्मीद है कि इससे किसी की सहायता मिल जाएगी।

वैसे, यहाँ है कि कैसे मैं इस पता लगा: पुष्टि करें कि काम करता है

  • मेरे विषय में वापस जाएं, और फ़ाइलों को अक्षम:

    1. मेरे विषय
    2. शेयर विषय के साथ टेस्ट के साथ समस्या को ध्यान से देखें चुनिंदा रूप से यह पता लगाने के लिए कि कौन से अंतर हैं,
    3. इसे एक फ़ाइल में संक्षिप्त करें: वनपृष्ठ।phtml, यह ध्यान से जांच
    4. मिले सीएसएस वर्ग के नाम है कि मेरे विषय नहीं था
    5. उन्हें जोड़ें, डिबग

    यह लंबे और थकाऊ है शेयर की तुलना, लेकिन यह काम करने के लिए लगता है।

  • 2

    मेरे मामले में, /skin/frontend/base/default/js/opcheckout.js फ़ाइल /skin/frontend/[yourpackage]/[yourtheme]/js/opcheckout.js में किसी से मेल नहीं खाती क्योंकि pspahn ने सुझाव दिया था। मेरी थीम में .js फ़ाइल पूरी तरह खाली थी। निश्चित सब कुछ ऊपर सामग्री की प्रतिलिपि बनाएँ। उन लोगों के लिए दृश्यता के लिए यहां टिप्पणी कर रहे हैं जो खोज सकते हैं।

    संबंधित मुद्दे