Magento आदेश संख्या जारी


9

मुझे Magento में ऑर्डर नंबर के साथ एक अजीब मुद्दा मिला है।

हाल ही में जब मेरी वेबसाइट पर एक ऑर्डर दिया गया था तो ऑर्डर नंबर आया था 100000350, आदर्श रूप में यह होना चाहिए था 100000370क्योंकि मेरे पिछले ऑर्डर नंबर थे 100000369और 100000367। मैंने इसके लिए नीचे स्क्रीनशॉट संलग्न किया है

क्रम संख्या स्क्रीनशॉट

इसके अलावा, मैंने त्रुटि लॉग के लिए जाँच की है, लेकिन इसकी कोई प्रविष्टि नहीं मिली है। हम इसके लिए भुगतान गेटवे के रूप में SagePay और PayPal का उपयोग कर रहे हैं।

क्या कोई इस पर मेरा मार्गदर्शन कर सकता है?


मैं स्पष्ट रूप से देख सकता हूं कि आपने
taht

ऑर्डर से संबंधित कोई मॉड्यूल नहीं है। केवल तीसरा पक्ष मॉड्यूल जिसका हम उपयोग कर रहे हैं, वे हैं Ebizmarts_SagePay, Mass_Product_Relater, TBT_Enhancegrid और Sphinix Search
Dexter

1
कोई बड़ा मुद्दा नहीं है, ग्राहक के खाते वाले किसी व्यक्ति ने भुगतान के लिए प्रस्तुत बिंदु पर एक ऑर्डर लगभग पूरा कर लिया है, उसे सेल्स ऑर्डर नंबर सौंपा गया और फिर समय की अवधि के लिए गाड़ी छोड़ दी गई। हर समय होता है ... आपको परित्याग के बजाय आदेश, बधाई, पूर्ण आदेश मिला।
फासको लैब्स

मुझे लगता है कि आपको मेरा सवाल नहीं आया
Dexter

1
@ हुज़ेफ़ाम - कृपया इसे मैगेंटो डिज़ाइन टीम के साथ ले लें, या अपना स्वयं का सीरियल ऑटोनम्बर कॉलम बनाएँ, जिसे आप अपने ईआरपी के लिए पूरी तरह से मैगनेटो एसओ पर बंद कर दें। हां, मैं ऑडिटिंग के नजरिए से समझता हूं कि अगर मिसिंग नंबरों की कमी है, तो हांकी-पक्की है। लगता है कि Magento ने यह मान लिया है कि सभी ऑर्डर मान्य नहीं हैं, इसलिए SO नंबर गायब होना कोई बड़ी बात नहीं है। मैं यह भी समझता हूं कि कुछ लेखा प्रणाली, सरकारी अधिकार क्षेत्र बिक्री आदेशों के बारे में उसी तरह महसूस करते हैं और एक ऑडिट ट्रेल की उम्मीद करते हैं जो एक पूर्ण धारावाहिक अनुक्रम में शून्य आदेश दिखाता है।
फासको लैब्स

जवाबों:


28

पहली बार जब मुझे अनुक्रम संख्या मिली, तो हमें आश्चर्य हुआ और जब तक मैं समझ नहीं पाया कि क्या हो रहा है। यह कैसे Magento बिक्री आदेश संख्या आवंटित करता है के साथ क्या करना है।

यह पूरी तरह से सामान्य है कि इस तरह के अनुक्रम में से एक हो, वर्तमान आवंटित संख्या और एक महीने या उससे अधिक पुरानी हो। इसका रहस्य यह है कि यह ग्राहक में एक लॉग था जो एक निश्चित महत्वपूर्ण चरण के बाद ऑर्डर को पूरा नहीं करता था, वापस आया, लॉग इन किया और आखिरकार खरीदने का फैसला किया।

आबंटित विक्रय आदेश संख्या वाला उद्धरण विक्रय क्रम संख्या के लिए उस संख्या का उपयोग करता है।

अब स्पष्टीकरण के लिए।

Magento के ऑर्डर की प्रक्रिया पहली बार एक कार्ट में कुछ जोड़ने पर एक उद्धरण बनाती है।

  • अतिथि ग्राहकों के लिए, यह उद्धरण तब तक रहता है जब तक उनका सत्र समाप्त नहीं हो जाता है, जिस समय यह डेटाबेस में मौजूद होता है, लेकिन अतिथि ग्राहक द्वारा पुनर्प्राप्त करने योग्य नहीं होता है।
  • जब कोई पंजीकृत ग्राहक लॉग इन करता है, तो कार्ट उद्धरण उनके ग्राहक आईडी को सौंपा जाता है ताकि कार्ट तब तक चले जब तक ग्राहक इसे खाली न करे और पंजीकृत ग्राहक द्वारा उनके खाते में लॉग इन करके पुनर्प्राप्ति योग्य हो।

इस बिंदु पर, उद्धरण केवल एक संभावित बिक्री आदेश है । इसके पास कोई निर्दिष्ट संख्या नहीं है क्योंकि ग्राहक ने इसके लिए भुगतान करने के लिए प्रतिबद्ध नहीं किया है।

जैसे ही ग्राहक चेकआउट करने के लिए Proceed बटन पर क्लिक करता है , वे करेंगे:

  • या तो गाड़ी शुरू करने के लिए पिछले में लॉग इन किया जाए
  • या यदि लॉग इन नहीं है, तो उनसे पूछा जाए कि क्या वे एक अतिथि के रूप में पंजीकरण या जांच करना चाहते हैं।

निम्न प्रकार एक महत्वपूर्ण बिट है: जो ग्राहक कार्ट में पंजीकरण करना चुनते हैं, उन्हें ऑर्डर पूरा होने तक अतिथि ग्राहकों के रूप में माना जाता है और वे सफलता पृष्ठ पर पहुंचते हैं, जिस समय उनका खाता बनाया जाता है और वे लॉग इन होते हैं। यदि ऑर्डर पूरा नहीं हुआ है और एक सफल पृष्ठ प्रदर्शित किया गया है, तो कार्ट के सत्र के समय की हानि के साथ एक अतिथि ग्राहक उद्धरण बना हुआ है ।

क्रेडिट कार्ड ऑर्डर के साथ, प्लेस ऑर्डर बटन पर क्लिक करने पर निम्नलिखित होता है।

  • क्रेडिट कार्ड की जानकारी, बिलिंग पते की जानकारी, गाड़ी के योग और ऑर्डर की जानकारी इकट्ठी की जाती है
  • एक बिक्री आदेश संख्या असाइन किया गया है इस उद्धरण (के लिए sales_flat_quoteमें तालिका reserved_order_idस्तंभ)
  • ऑर्डर के लिए धनराशि जमा करने / जमा करने के लिए क्रेडिट कार्ड गेटवे में डेटा पैकेज जमा किया जाता है।
  • क्रेडिट कार्ट प्रोसेसर वापस आ जाता है:
    • रिकॉर्ड की जाने वाली उपयुक्त लेनदेन जानकारी के साथ या तो धनराशि का प्राधिकार / कब्जा
    • या उपयुक्त सूचना के साथ भुगतान की अस्वीकृति कि क्यों प्राधिकरण / कब्जा से इनकार किया गया था।
  • एक सफल प्राधिकरण / कैप्चर के साथ, उद्धरण बिक्री आदेश में बदल जाता है और यदि यह एक कार्ट रजिस्टर है, तो ग्राहक खाता बनाया जाता है।

यदि क्रेडिट कार्ड भुगतान गेटवे द्वारा किसी भी ग्राहक के लिए क्रेडिट कार्ड लेनदेन को अस्वीकार कर दिया जाता है, और अगला ग्राहक एक सफल ऑर्डर देता है, तो भुगतान आदेश अस्वीकृत होने के कारण बिक्री ऑर्डर संख्या अनुक्रम में एक छोड़ दिया जाएगा बिक्री आदेश एक आरक्षित बिक्री आदेश संख्या निर्दिष्ट किया जा रहा है और निम्नलिखित सफल बिक्री आदेश को अगली उपलब्ध संख्या सौंपी जा रही है।

अतिथि कार्ट (अतिथि ऑर्डर और कार्ट ग्राहकों में असफल रजिस्टर) के लिए जो सत्र के समय से अधिक है, यह सुरक्षित बिक्री आदेश संख्या तब समाप्त हो जाएगी जब सत्र समाप्त हो जाएगा, बिक्री आदेश अनुक्रम में अंतराल छोड़ देगा

प्रोसीड बटन पर क्लिक करने से पहले लॉग इन करने वाले ग्राहकों के लिए , उद्धरण को एक ग्राहक आईडी दिया जाता है, इसलिए यदि वे ऑर्डर देने का प्रयास करते हैं और पाते हैं कि यह अस्वीकृत हो गया है, तो वे वापस आ सकते हैं, लॉग इन कर सकते हैं, कार्ट ढूंढ सकते हैं और अभी भी सामग्री है। आदेश, कभी-कभी बहुत बाद में (सबसे लंबे समय तक चार महीने)। उद्धरण निर्दिष्ट आरक्षित विक्रय क्रम का उपयोग करेगा, जो आपके विक्रय आदेश प्रबंधन प्रदर्शन में विक्रय अनुक्रम संख्या को दिखाएगा।


चेकिंग उद्देश्य के लिए, मैंने भुगतान पद्धति का चयन न करके और अंत में ब्राउज़र को बंद कर दिया (पहले साइट + चेकआउट खोलने वाले कंप्यूटर पर) चेकआउट में फंसने का नाटक किया। और इस बीच दूसरा कंप्यूटर ऑर्डर समाप्त हो गया (जिसे अगली आईडी वेतन वृद्धि मिलनी चाहिए)। नतीजा यह है कि यह संख्या से अधिक नहीं कूदता है। अगर यह उस तरह से काम करता है, तो यह ऑर्डर 10 और ऑर्डर 11 के बीच एक अप्रयुक्त आईडी को जोड़ देगा, जो यह नहीं किया था। आपकी जानकारी के अनुसार, मैंने उस चीज़ को सत्यापित करने और करने की कोशिश की है जिसे आप निर्दिष्ट कर रहे हैं लेकिन यह आउटपुट नहीं दे रही है।
शिव

इसके बजाय यदि कोई ग्राहक पेमेंट गेटवे में विफल रहता है, तो यह लंबित भुगतान या रद्द के रूप में दिखाई देगा, और यदि चेकआउट के अंतिम भाग में यह आदेश विफल रहता है, तो यह बिल्कुल नहीं दिखाई देगा (और बस सही आईडी के साथ जारी रखें) अनुक्रम)। तो अब, मैं इस के साथ भ्रमित हूँ। कृपया मुझे यह समझने में मदद करें कि ऑर्डर संख्या अनियमित रूप से क्यों निकलती है। धन्यवाद
शिव

महान व्याख्या।
वोल्फैक

2

मैं एक ही मुद्दे का सामना कर रहा था, लेकिन यह केवल तभी था जब सर्वर को भारी मात्रा में लोड के साथ मारा गया था। यह समस्या इसलिए होती है क्योंकि उद्धरण को क्रम में परिवर्तित करते समय db लॉक अवस्था में चला जाता है। आगे निरीक्षण करने पर, मुझे पता चला कि मुद्दा यह था कि उसने sales_flat_order_grid_grid टेबल में लेन-देन के भीतर लिखने की कोशिश की, जिसके बाद उसे sales_flat_order टेबल में डाला गया। समवर्ती प्रश्नों के साथ यह लॉकिंग टकराव का कारण बना। वास्तविक समाधान लेन-देन से बाहर बिक्री_फ्लैट_ऑर्डर_ग्रिड के सामान को स्थानांतरित करना है।

लिंक ने मुझे इस मुद्दे को समझने में मदद की

पैच ने मेरे लिए समस्या हल कर दी।

आपको फ़ंक्शन _afterSave को Mage_Sales_Model_Abstract से निकालना और जोड़ना होगा

public function afterCommitCallback(){
    if (!$this->getForceUpdateGridRecords()) {
         $this->_getResource()->updateGridRecords($this->getId());
     }
    parent::afterCommitCallback();
}

मुझे पता है अगर यह तुम्हारे लिए समस्या हल करती है।


क्या किसी ने इस विधि को आजमाया है जैसा कि शैली ने कहा था ?
शिव

0

मुझे यकीन नहीं है, लेकिन इससे आपकी समस्या हल हो सकती है:

जहाँ तक मुझे लगता है, हो सकता है कि कुछ ने आपकी eav_entity_storeतालिका में गड़बड़ी की हो । इसमें अगले increment_id यानी order_id का उपयोग करने के बारे में जानकारी है। हो सकता है कि आपके मैगनेटो सिस्टम में कुछ मॉड्यूल या कोड हो सकता है।

इस तालिका को खोलें, और अपने अंतिम क्रम आईडी के साथ increment_last_id coloumn को अपडेट करें। सावधान रहें, यह सुनिश्चित हो, बस के लिए जाना वेतन वृद्धि आईडी अच्छी तरह से चालान, लदान आदि के रूप में इस तरह के रूप के अन्य लोगों के शामिल eav_entity_typesतालिका और देखो क्या है entity_type_idके लिए sales/order(स्तंभ entity_model)। मेरे Magento में, इसकी 5. तो अब eav_entity_storeटेबल पर जाएँ और पंक्ति के लिए increment_id को अपडेट करें जिसका entity_type_id5 है। आप इसे सीधे phpmyadmin के माध्यम से अपडेट कर सकते हैं या आप क्वेरी को चला सकते हैं, जैसे

update eav_entity_store set increment_last_id = 'your_last_order_id' where entity_type_id = 5; 

कृपया ध्यान दें 5 आदेश के लिए मेरे magento में Unit_type_id है

आपके मुद्दे के कई कारण हो सकते हैं, लेकिन मुझे लगता है कि इससे आपका मुद्दा हल हो सकता है।


धन्यवाद .. लेकिन पहले से ही मेज की जाँच की और इसमें सही वेतन वृद्धि आईडी है
Dexter

व्यवस्थापक विक्रय में आपका अधिकतम (नवीनतम नहीं) ऑर्डर आईडी क्या है -> ऑर्डर? उस मूल्य को मैंने मेज पर रखा था .. एक परीक्षण के आदेश के लिए और जाँच करें ..
प्रदीप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.