ऑर्डर आईडी के साथ भ्रम, ऑर्डर इंक्रीमेंट आईडी और मुझे 20001201 के रूप में ऑर्डर आईडी नहीं मिल रहा है


28

मैं ऑर्डर आईडी और ऑर्डर इंक्रीमेंट आईडी से थोड़ा भ्रमित हूं , तो क्या कोई मुझे इन दोनों के बीच के अंतर को समझने में मदद कर सकता है?

मेरे पास sales_order_place_a के लिए एक पर्यवेक्षक है जहां मैं एक कस्टम तालिका में बिक्री विवरण संग्रहीत करता हूं।

लेकिन इसके साथ

$orderId = $observer->getEvent()->getOrder()->getId();

मुझे ऑर्डर आईडी मिलते हैं जैसे कि सामान्य आईडी जैसे कि 112 या 113 या 110 आदि, 20001201 की तरह नहीं

तो असली ऑर्डर आईडी, 20001201 या 112 क्या है?

मुझे इस आदेश आईडी के आधार पर डेटा ऑर्डर करने की आवश्यकता है, मैं 112, 113 आदि का उपयोग करता हूं और यह काम करता है, लेकिन मुझे इसे स्पष्ट करने की आवश्यकता है।

जवाबों:


23

अंतर यह है:

  • ऑर्डर_ड आंतरिक मैगनेटो ऑर्डर आईडी है
  • ऑर्डर इंक्रीमेंट आईडी वह आईडी है जिसे आप अपने ग्राहक से संवाद करते हैं

आप आंतरिक order_id का उपयोग करके आसानी से ऑर्डर लोड कर सकते हैं:

Mage::getModel('sales/order')->load($orderId);

पुनश्च: यदि आपको इसकी आवश्यकता है, तो आप भारित क्रम से आसानी से वेतन वृद्धि आईडी प्राप्त कर सकते हैं:

$order->getIncrementId();

1
आपका मतलब है कि डेवलपर आंतरिक आईडी और ग्राहकों और अन्य उपयोग Increment_id का उपयोग करें?
चार्ली

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

26

id= sales_flat_orderतालिका प्राथमिक कुंजी मान। यह आपकी दुकान में मिलने वाले प्रत्येक ऑर्डर के लिए स्वत: निर्धारित है। यह आमतौर पर 1 से शुरू होता है और ऊपर जाता है।

increment id= एक "उपयोगकर्ता के अनुकूल" क्रम रखने से पहले उत्पन्न संख्या। यह अद्वितीय होना चाहिए और इसे ऑनलाइन भुगतान विधियों द्वारा संदर्भ के रूप में उपयोग किया जाता है (लेकिन न केवल)।
डिफ़ॉल्ट रूप से वेतन वृद्धि आईडी इस प्रकार है।

                  100000104
                  ||   || |
 store view id ---||   || |
                   |---||-|
                     |   |----- an increment number kept in the table eav_entity_store
    a lot of zeros --|

शून्य की संख्या परिवर्तनशील है। इसका उपयोग करके जोड़ा जाता है str_padताकि स्टोर आईडी के बिना वेतन वृद्धि की लंबाई हो 8


मेरे नए प्रश्न पर ध्यान दें, लेकिन EAV तालिका से 1 उपसर्ग मान नहीं है और store_view_id नहीं है?
someGuyOnTheWeb

4
@someGuyOnTheWeb। अच्छा ... हाँ नहीं। तकनीकी रूप से उपसर्ग (सिर्फ पहली बाइट नहीं ... मैंने उन परियोजनाओं पर काम किया है जिनमें 2 अंकों का उपसर्ग था) तालिका से आता है eav_entity_store। लेकिन पहले आदेश के लिए उस तालिका में कोई रिकॉर्ड नहीं है। तो एक निर्मित है। जब इसे बनाया जाता है तो स्टोर आईडी के रूप में संग्रहीत किया जाता है increment_prefix। देखें कि यह विधि में कैसे काम करता है Mage_Eav_Model_Entity_Type::fetchNewIncrementId। लाइन के साथ शुरू: if (!$entityStoreConfig->getId()) {
मेरियस

5

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

Mage::getModel("sales/order")->load($enityId);

और द्वारा प्राप्त करें

$order->getId(); या $order->getEntityId();

Increment_id आम तौर पर एक अधिक अनुकूल संख्या है जो अक्सर वेबसाइट / स्टोर विशिष्ट होती है अर्थात 20001201 2 सामने का अर्थ अक्सर यह होगा कि यह आपके दूसरे स्टोर / वेबसाइट (जो याद है) से एक आदेश है। इसे अक्सर वास्तविक ऑर्डर आईडी के रूप में संदर्भित किया जाता है। आप इस increment_id का उपयोग करके एक ऑर्डर इकाई लोड कर सकते हैं

Mage::getModel("sales/order")->loadByIncrementId($incrementId);

और द्वारा प्राप्त करें

$order->getRealOrderId(); or $order->getIncrementId();

0

order_idहै, जो मेरा मानना है कि रूप में ही है entity_id, sales_order सभी EAV टेबल एक साथ शामिल करने के लिए इस्तेमाल तालिका में प्राथमिक कुंजी है। इसका उपयोग आंतरिक रूप से Magento में किया जाता है।

order_increment_id ग्राहक को प्रदर्शित करने के लिए उपयोग किया जाता है

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