Magento 2 - डिफ़ॉल्ट ऑर्डर आईडी बदलने का सही तरीका क्या है?


29

Magento 2. नई स्थापना के बाद नई ऑर्डर आईडी 100000001, 100000002 और इसी तरह होगी।

उस इंक्रीमेंट आईडी को बदलने का सही तरीका क्या है, इसलिए यह एक उच्च संख्या होगी? उदाहरण के लिए 155555552, 155555553 इत्यादि। जब बदल जाएगा तो यह बहुत अच्छा लगेगा।

Magento 1.9 में आदेश, चालान या शिपमेंट के लिए डिफ़ॉल्ट आईडी को संपादित करने के लिए हमें बस "eav_entity_store" डेटाबेस में मान बदलना पड़ा।

Magento 2 इतना अलग दिखता है ...

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


कृपया यहां मेरा प्रश्न देखें: magento.stackexchange.com/questions/279454/… शिपवर्क्स (और अन्य) का उपयोग नहीं किया जा सकता है increment_idजैसे वे करने वाले हैं।
क्रिस के

जवाबों:


31
  1. अपना PHP व्यवस्थापक डेटाबेस खोलें (मैंने php 7 पर परीक्षण किया है)
  2. खोजें और क्लिक की गई तालिका पर क्लिक करें: अनुक्रम_ऑर्डर_1 (यह डेटाबेस में ही स्थित है सूचना_केम में नहीं)
  3. वांछित संचालन संख्या में "संचालन" टैब पर और "AUTO_INCREMENT" संपादित करें पर क्लिक करें।

मैंने AUTO_INCREMENT के क्षेत्र में 100500400 नंबर डाला, "जारी रखें" पर क्लिक करें। फिर मैंने एक परीक्षण खरीदारी की, लेकिन ऑर्डर आईडी अभी भी 000000013, 00000014 ...
लुइस गार्सिया

1
मुझे अनुक्रम_ऑर्डर 1 मिला और ऑपरेशन टैब में Auto_increment मान 5 है, तो सही मूल्य क्या है?
अहमद दरविश

1) कोई भी बदलाव करने से पहले अपने डेटाबेस का बैकअप लें। 2) 5 के बजाय आप अपने ऑर्डर आईडी के लिए इच्छित मान सेट करें, उदाहरण के लिए 1035327500। आपका अगला ऑर्डर 1035327501 होना चाहिए
मार्क

हम किस Magento के संस्करण के बारे में बात कर रहे हैं?
फेलिक्स

@ फेलिक्स यह मैगनेटो 2 के लिए है
किशन पटादिया

25

अपने डेटाबेस से phpmyadmin पर जाएं,

यहाँ _1 का उपयोग टैबलेन के बाद स्टोर आईडी के लिए किया जाता है।

Default Frontend store id is 1.यदि आपके पास मल्टी स्टोर है तो आपको सीक्वेंस_ऑर्डर 2 तक के सीक्वेंस_ऑर्डर_ऑर्डर_ * के साथ प्रत्येक स्टोर के लिए क्वेरी सेट करनी होगी

तालिका अनुक्रम के लिए नीचे क्वेरी दर्ज करें_ऑर्डर 1 का उपयोग डिफ़ॉल्ट स्टोर के लिए किया जाता है। यदि आपके पास एक से अधिक स्टोर हैं, तो आपको क्वेरी के नीचे स्टोर आईडी के अनुसार टैबलेनम सेट करना होगा।

यह केवल फ्रंटएंड से रखे गए ऑर्डर के लिए उपयोग किया जाता है।

mag_2 में क्रम आईडी प्रबंधन के लिए अनुक्रम_ऑर्डर_1 का उपयोग किया जाता है।

ALTER TABLE sequence_order_1 AUTO_INCREMENT=155555551;

अगला ऑर्डर आईडी 155555551 से शुरू होता है।

नीचे क्वेरी चालान के लिए परिभाषित की गई है , यदि आप चालान आईडी बदलना चाहते हैं

ALTER TABLE sequence_invoice_1 AUTO_INCREMENT=155555551;

लदान के लिए ALTER TABLE sequence_shipment_1 AUTO_INCREMENT=155555551;


इससे मेरा काम नहीं बनता। कुछ परीक्षण करने के बाद, ऑर्डर आईडी अभी भी 000000013, 00000014 ...
लुइस गार्सिया

शानदार जवाब!
हुजैफाम

यह मदद कर सकता है - magento.stackexchange.com/questions/156075/… -
sandip

क्या आप Magento के संस्करण को बता सकते हैं जिसके लिए यह सही है?
फेलिक्स

नए ऑर्डर आईडी का पहला अंक कैसे बदलना है
तीर्थ पटेल

16

क्या पहले से में किया गया था eav_entity_storeअब में शामिल है sales_sequence_profileऔर sales_sequence_metasequence_order_1आदेश दिए जाने पर तालिका आबाद हो जाती है।


क्या आप मोटे तौर पर Magento संस्करण संख्या बता सकते हैं जिसके लिए यह सही है और काम करता है?
फेलिक्स

मुझे इस पर व्यवहार में कोई बदलाव नहीं आया है, मुझे लगता है कि यह 2.0.0 से वर्तमान रिलीज तक लागू होता है 2.2.1
क्रिस्टोफ़ फ़ॉमान में

2.2.4 पर अभी भी वही है, बस इसका परीक्षण किया।
फ्रैंक Groot

7

नए ऑर्डर आईडी के लिए प्रारूप डिफ़ॉल्ट रूप से निरंतर में परिभाषित किया गया है

Magento \ SalesSequence \ Model \ Sequence:

const DEFAULT_PATTERN = "% s% '; 09%% s";

यह स्प्रिंटफ () फ़ंक्शन के लिए पैटर्न है जो नई आईडी बनाता है। अग्रणी शून्य को निकालने के लिए आपको अपने पैटर्न को इस तरह से पास करना होगा:

<type name="Magento\SalesSequence\Model\Sequence">
    <arguments>
        <argument name="pattern" xsi:type="string">%s%s%s</argument>
    </arguments>
</type>

या अनुक्रम वर्ग का विस्तार और आप की जरूरत के रूप में बदल जाते हैं


6

यद्यपि उपरोक्त सभी उत्तर पूरी तरह से / आंशिक रूप से सही हैं, फिर भी मैंने उत्तर को लिखने के लिए सोचा क्योंकि यह भविष्य के पाठकों के लिए उपयोगी होगा। यह उत्तर दो प्रश्नों को संबोधित करेगा:

1) ऑर्डर अनुक्रम संख्या कैसे बदलें?

2) ऑर्डर संख्या में उपसर्ग या प्रत्यय कैसे जोड़ें?

डेटाबेस में कोई भी अंधा परिवर्तन करने से पहले, आपको यह समझना चाहिए कि कौन सी अनुक्रम तालिका किस से संबंधित है। आप इसे टेबल से देख सकते हैंsales_sequence_meta

क्वेरी चलाएँ select * from sales_sequence_meta; प्रत्येक स्टोर में उस स्टोर से जुड़ी अनुक्रम तालिका होगी। तालिका का नाम नोट करें: ऑर्डर, इनवॉइस, क्रेडिटमेमो या शिपमेंट।

एक बार जब यह हो जाता है, तो उदाहरण के लिए तालिका पर जाएं यदि आप ऑर्डर नंबर गोटो टेबल को संपादित करना चाहते sequence_order_1हैं और AUTO_INCREMENTमूल्य को बदलते हैं

alter table sequence_order_1 AUTO_INCREMENT=617;

यह वह सब है जो क्रम क्रम को कूदने के लिए आवश्यक है।

अब, यदि आप अधिक खोदते हैं और आगे बढ़ते हैं, तो एक आवश्यकता है जहां आप नीचे दिए गए चरणों का पालन करने के लिए उपसर्ग / प्रत्यय जोड़ना चाहते हैं:

गोटो टेबल sales_sequence_profileऔर डेटा की जाँच करें

select * from sales_sequence_profile;

आप कॉलम prefixऔर 'प्रत्यय' का अवलोकन करेंगे । शुरू में यह होगा NULL। आप प्रासंगिक के लिए उपसर्ग और प्रत्यय में मूल्य जोड़ सकते हैं meta_idजिसे आप तालिका से मैप कर सकते हैंsales_sequence_meta

यह सभी आदेशों के लिए ऑर्डर उपसर्ग / प्रत्यय बदल देगा।

आशा है कि यह सब मदद करता है !! चियर्स !!


4

ताजा स्थापित करें:
यदि आपका Magento 2.2.0+ पर है और आपके द्वारा बहु-स्टोर सक्षम (यह डिफ़ॉल्ट रूप से सक्षम है) के साथ एक ताजा इंस्टॉल चल रहा है, तो आप साइट के माध्यम से कोई भी आदेश देने से पहले बस निम्नलिखित क्वेरी चला सकते हैं :

ALTER TABLE `sequence_creditmemo_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_creditmemo_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_invoice_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_invoice_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_order_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_order_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_shipment_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_shipment_1` AUTO_INCREMENT=303;

कृपया ध्यान दें कि 303मैं सिर्फ अपनी साइट के लिए नंबर चुनता हूं क्योंकि हमारा पुराना प्लेटफॉर्म क्रम संख्या 300 पर छूट गया था और मुझे किसी तरह की निरंतरता चाहिए थी। यह भी ध्यान दें कि आपको किसी भी क्वेरी की आवश्यकता नहीं है जो कि _1आपके द्वारा एकल स्टोर मोड सक्षम करने पर समाप्त हो जाती है।

मौजूदा इंस्टॉल:
यदि आपका पहले से ही Magento 2.2.0+ का उपयोग कर रहा है (या इसे अपग्रेड किया गया है) और बस संख्याओं को टक्कर देना चाहता है, तो पैडिंग को बदलना या वर्ण जोड़ना नहीं है, बस निम्न तालिकाओं पर वर्तमान AUTO_INCREMENT मान जांचें (बहु-साइट मान ):

  • sequence_creditmemo_0
  • sequence_creditmemo_1
  • sequence_invoice_0
  • sequence_invoice_1
  • sequence_order_0
  • sequence_order_1
  • sequence_shipment_0
  • sequence_shipment_1

और ऊपर दिखाए गए परिवर्तन प्रश्नों का उपयोग करके उन्हें बदल दें, लेकिन सुनिश्चित करें कि आपके द्वारा उपयोग किया जाने वाला नया मूल्य आपके द्वारा वर्तमान AUTO_INCREMENT मान की जाँच करने से प्राप्त मूल्य से अधिक है।

यदि आप पैडिंग में गड़बड़ी करने जा रहे हैं या एक कस्टम पैटर्न जोड़ रहे हैं तो आपको यहां अन्य उत्तरों को देखने और निम्न तालिकाओं की समीक्षा करने की आवश्यकता है:

  • sales_sequence_meta
  • sales_sequence_profile

अपडेट: मल्टी-स्टोर्स?
मल्टी-स्टोर्स से परिचित नहीं लोगों के लिए यह एक ऐसी सुविधा है जो आपको एक ही मैगनेटो से पूरी तरह से अलग स्टोर चलाने की अनुमति देती है। ऐसा करने का एक सामान्य कारण अन्य भाषाओं का समर्थन करना है। बैक एंड में यही कारण है कि कॉन्फ़िगरेशन को अपडेट करते समय और उदाहरण के लिए अन्य चीजों को करते समय आप स्टोर को अपनी पसंद को देख सकते हैं (यदि मल्टी-स्टोर चालू है)।

इस कारण से Magento अलग-अलग स्टोर दृश्यों पर नज़र रखने के लिए कुछ तालिकाओं के अंत में एक अंडरस्कोर और एक संख्या जोड़ देगा। आप देखेंगे कि मेरे द्वारा प्रदान की गई क्वेरीज़ डुप्लिकेट टेबल की तरह लगती हैं लेकिन वे इस मामले में अलग-अलग संख्याओं, 0 या 1 के साथ समाप्त होती हैं। यदि आपके पास कई स्टोर / विचार हैं, तो ये संख्याएँ केवल वृद्धि, _2 या _3 उदाहरण के लिए रखेंगी। यह आपको प्रत्येक स्टोर की आईडी को अलग तरीके से प्रबंधित करने की अनुमति देता है। एक दृश्य (स्टोर) में आईडी सिस्टम में आपका परिवर्तन दूसरे में समान होने की आवश्यकता नहीं है।

यह इस पद के लिए गुंजाइश से बाहर है, लेकिन यह समान नंबरिंग सिस्टम डेटाबेस में अन्य तालिकाओं पर लागू होता है जो आपको सही तरीके से इलाज करने और प्रत्येक स्टोर को समान रूप से प्रभावित करने की अनुमति देता है। उदाहरण के लिए आपके पास प्रति स्टोर एक पूरी तरह से अलग विषय हो सकता है।


आप मल्टी स्टोर्स के बारे में क्यों जिक्र करते रहते हैं? यदि आपके पास एकल-स्टोर मोड सक्षम है तो क्या अलग होगा?
कंडक्टर

1
मैंने उत्तर दिया यह पद है: "... ध्यान दें कि आपको किसी भी प्रश्न की आवश्यकता नहीं है जो कि _1 के साथ समाप्त होता है यदि आपने एकल स्टोर मोड को सक्षम किया है।" ध्यान दें कि मैंने जिन प्रश्नों को कॉल किया था, वे इस मामले में डुप्लीकेट टेबल की तरह दिखते हैं, जिनमें नंबर, 0 या 1 होता है। यदि आपने मल्टी-स्टोर को निष्क्रिय कर दिया है तो आप केवल _1 को _1 या _2 या _3 के साथ और कुछ नहीं देखेंगे। मैंने इसे स्पष्ट करने के लिए एक अद्यतन जोड़ा।
ब्लिज़ार्डेंगल

2

अनुक्रम बदलें क्रम संख्या पैडिंग संपादित करें अनुक्रम को बदलने के लिए। Php (मेरा मानना ​​है कि वहाँ एक बेहतर तरीका है एक di.xml के माध्यम से)

vendor/magento/module-sales-sequence/Model/Sequence.php

इस लाइन को संपादित करें

const DEFAULT_PATTERN  = "%s%'.09d%s";

"9" को वांछित गद्दी में बदलें

उदाहरण

const DEFAULT_PATTERN  = "%s%'.05d%s";

उपसर्ग बदलें

In admin > Stores > Sales > Order Number > 
Enter Desired prefix

सब कुछ आसान रखने के लिए फोमेन समान ऑर्डर चालान संख्या जोड़ें


1
कोर फ़ाइलों में पैडिंग पैटर्न को संपादित करना एक बुरा विचार है, आपको पैडिंग पैटर्न को बदलने के लिए मेरे प्रदर्शन नाम की विधि का उपयोग करना चाहिए।
टिमोन डी ग्रूट

1
यह कौन सा मैजेंटो है? (व्यवस्थापक> स्टोर> बिक्री> आदेश संख्या) मैं पत्रिका २.२.२ का उपयोग करता हूं, लेकिन मेनू क्रम बदला हुआ लगता है।
मोहम्मद जोरेद

1

क्रम वृद्धि क्रमांक बदलें

  1. अपने PHP व्यवस्थापक को खोलें
  2. ढूँढें और तालिका पर क्लिक करें: सीक्वेंस_ऑर्डर_1
  3. "ऑपरेशन" टैब पर क्लिक करें और "AUTO_INCREMENT" के तहत वांछित क्रम संख्या को संपादित करें।

एक और स्टोर के लिए एक ही चरण का पालन करें

  1. ढूँढें और तालिका पर क्लिक करें: अनुक्रम_ऑर्डर २
  2. "ऑपरेशन" टैब पर क्लिक करें और "AUTO_INCREMENT" के तहत वांछित क्रम संख्या को संपादित करें।

यह कई स्टोर्स के लिए ऑर्डर नंबर बदल देगा


0

चालान संख्या को समायोजित करने के लिए Via PHPMYADMIN

INSERT INTO sequence_order_1( sequence_value) वैल्यूज़ ('2000');

2000 नया स्टार्ट नंबर होगा


0

आप इस टिप द्वारा डेटाबेस Magento 2 में सीधे ऑर्डर संख्या में परिवर्तन कर सकते हैं

सबसे पहले, आपको अपना PHP व्यवस्थापक डेटाबेस खोलने की आवश्यकता है। फिर तालिका को ढूंढें और खोलें "sales_fterence_profile"।

उसके बाद, आप अपनी Magento 2 वेबसाइट में डिफ़ॉल्ट क्रम संख्या में परिवर्तन कर सकते हैं:

ए। आदेश वृद्धि आईडी बदलें

ख। क्रम संख्या उपसर्ग बदलें

सी। क्रम संख्या प्रत्यय बदलें

घ। क्रम संख्या प्रारंभ-मान बदलें

ई। पैड की लंबाई बदलें

मैं इस लेख में पूरा ट्यूटोरियल देखता हूं: Magento 2 में ऑर्डर संख्या बदलने के लिए संपूर्ण ट्यूटोरियल गाइड


तालिका का नाम गलत है। यह "sales_fterence_profile" होना चाहिए
डेनिस वैन

0

अतिरिक्त शून्य से छुटकारा पाने (या बदलने) के लिए आपको कोर फ़ाइलों को ओवरराइड नहीं करना चाहिए। अपने app/etc/di.xmlनिम्नलिखित में जोड़ें और "%s%'.09d%s"तदनुसार मूल्य बदलें (इस उदाहरण में दो 00 गद्देदार हैं):

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Framework\DB\Sequence\SequenceInterface">
        <arguments>
            <argument name="pattern" xsi:type="string">%s%'.02d%s</argument>
        </arguments>
    </type>
</config>

आदेश और चालान संख्या के लिए डेटाबेस संपादन राकेश जेसादिया के उत्तर में पूरी तरह से वर्णित है।

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