Magento 2 - วิธีที่ถูกต้องในการเปลี่ยนรหัสคำสั่งซื้อเริ่มต้นคืออะไร?


29

Magento 2. หลังจากติดตั้งใหม่รหัสการสั่งซื้อใหม่จะเป็น 10,0000001, 100000002 และอื่น ๆ

วิธีที่ถูกต้องในการเปลี่ยนรหัสเพิ่มนั้นจะเป็นตัวเลขที่สูงขึ้นได้อย่างไร ตัวอย่างเช่น 155555552, 155555553 และอื่น ๆ เมื่อเปลี่ยนแล้วมันจะดูดีขึ้นมาก

ใน Magento 1.9 ในการแก้ไขรหัสเริ่มต้นสำหรับคำสั่งซื้อใบแจ้งหนี้หรือการจัดส่งเราเพียงแค่เปลี่ยนค่าในฐานข้อมูลใน "eav_entity_store"

Magento 2 ดูแตกต่าง ...

ฉันรู้ว่ามีปลั๊กอินบางอย่างที่เสนอให้ทำเช่นนี้ แต่ฉันต้องการทราบวิธีการทำด้วยตนเอง


โปรดดูคำถามของฉันที่นี่: magento.stackexchange.com/questions/279454/ ...... ShipWorks (และอื่น ๆ ) อาจไม่ได้ใช้increment_idอย่างที่ควรจะเป็น
Chris K

คำตอบ:


31
  1. เปิดฐานข้อมูลผู้ดูแลระบบ PHP ของคุณ (ฉันทดสอบกับ PHP 7)
  2. ค้นหา & คลิกที่ตารางที่เรียกว่า: sequence_order_1 (อยู่ในฐานข้อมูลของตัวเองไม่ใช่ใน information_schema)
  3. คลิกที่แท็บ "การดำเนินการ" & ใต้ "AUTO_INCREMENT" แก้ไขหมายเลขการสั่งซื้อที่ต้องการ

ฉันใส่หมายเลข 100500400 ในฟิลด์ AUTO_INCREMENT คลิก "ดำเนินการต่อ" จากนั้นฉันทำการทดสอบการซื้อ แต่รหัสการสั่งซื้อยังคงเป็น 000000013, 00000014 ...
ลูอิสการ์เซีย

1
ฉันพบ sequence_order_1 และในแท็บการทำงานมี Auto_increment ค่าคือ 5 ดังนั้นค่าที่ถูกต้องคืออะไร
Ahmad Darwish

1) สำรองฐานข้อมูลของคุณก่อนทำการเปลี่ยนแปลงใด ๆ 2) แทนที่จะเป็น 5 คุณตั้งค่าที่คุณต้องการสำหรับรหัสคำสั่งซื้อของคุณตัวอย่างเช่น 1035327500 คำสั่งซื้อครั้งต่อไปของคุณควรเป็น 1035327501
Mark

เวอร์ชั่นไหนที่เราพูดถึง
เฟลิกซ์

@Felix สำหรับ Magento 2
Kishan Patadia

25

ไปที่ฐานข้อมูลของคุณจาก phpmyadmin

ที่นี่_1ใช้สำหรับรหัสร้านค้าหลัง tablename

Default Frontend store id is 1.หากคุณมีหลายร้านค้าคุณจะต้องตั้งค่าคิวรีสำหรับร้านค้าแต่ละแห่งที่มีชื่อตารางเช่นsequence_order_2ไม่เกินsequence_order _. *

ป้อนคำค้นหาด้านล่างสำหรับตารางsequence_order_1ใช้สำหรับร้านค้าเริ่มต้น หากคุณมีหลายร้านค้าคุณต้องตั้งค่า tablename ตามรหัสร้านค้าในแบบสอบถามด้านล่าง

ใช้สำหรับการสั่งซื้อจากส่วนหน้าเท่านั้น

sequence_order_1 ใช้สำหรับการจัดการรหัสคำสั่งใน magento 2

ALTER TABLE sequence_order_1 AUTO_INCREMENT=155555551;

รหัสคำสั่งถัดไปคือเริ่มต้นจาก 155555551

ด้านล่างแบบสอบถามจะถูกกำหนดไว้สำหรับINVOICEหากคุณต้องการเปลี่ยนรหัสใบแจ้งหนี้

ALTER TABLE sequence_invoice_1 AUTO_INCREMENT=155555551;

สำหรับการจัดส่ง ALTER TABLE sequence_shipment_1 AUTO_INCREMENT=155555551;


สิ่งนี้ใช้ไม่ได้กับฉัน หลังจากทำการทดสอบซื้อรหัสการสั่งซื้อของยังคงเป็น 000000013, 00000014 ...
ลูอิสการ์เซีย

คำตอบที่ยอดเยี่ยม!
huzefam

มันอาจช่วยได้ - magento.stackexchange.com/questions/156075/… -
sandip

คุณสามารถระบุเวอร์ชั่นวีโอไอพีที่ถูกต้องได้หรือไม่?
เฟลิกซ์

วิธีเปลี่ยนเลขตัวแรกของรหัสคำสั่งซื้อใหม่
Tirth Patel

16

อะไรคือสิ่งที่ก่อนหน้านี้ในeav_entity_storeขณะนี้ปกคลุมในและsales_sequence_profile sales_sequence_metaตารางsequence_order_1จะได้รับการบรรจุเมื่อมีคำสั่งซื้อ


คุณช่วยบอกหมายเลขเวอร์ชันของวีโอไอพีที่ประมาณว่าเป็นจริงและใช้งานได้หรือไม่
เฟลิกซ์

ฉันไม่ได้พบกับการเปลี่ยนแปลงใด ๆ ในพฤติกรรมนี้ฉันคิดว่าสิ่งนี้ใช้จาก 2.0.0 จนถึงรุ่นปัจจุบัน 2.2.1
Kristof ที่ Fooman

ยังคงเหมือนเดิมใน 2.2.4 เพียงทดสอบ
Frank Groot

7

รูปแบบสำหรับรหัสคำสั่งซื้อใหม่จะถูกกำหนดโดยค่าเริ่มต้นเป็นค่าคงที่

Magento \ SalesSequence \ Model \ Sequence:

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

มันเป็นรูปแบบของฟังก์ชั่น sprintf () ที่สร้างรหัสใหม่ เมื่อต้องการลบศูนย์นำหน้าคุณต้องผ่านรูปแบบของคุณไปยังตัวสร้างเช่นนี้:

<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;แต่ละร้านจะมีตารางลำดับที่เกี่ยวข้องกับร้านค้านั้น หมายเหตุชื่อตาราง ได้แก่ : สั่งซื้อใบแจ้งหนี้เครดิตหรือการจัดส่ง

เมื่อทำเสร็จแล้วให้ไปที่โต๊ะตัวอย่างเช่นถ้าคุณต้องการแก้ไขตารางหมายเลขคำสั่ง goto 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 ปัจจุบัน

หากคุณกำลังจะยุ่งกับ padding หรือเพิ่มรูปแบบที่กำหนดเองคุณต้องดูคำตอบอื่น ๆ ที่นี่และตรวจสอบตารางต่อไปนี้:

  • sales_sequence_meta
  • sales_sequence_profile

อัปเดต: Mult-Stores
สำหรับผู้ที่ไม่คุ้นเคยกับหลายร้านค้านี้เป็นคุณสมบัติที่ช่วยให้คุณสามารถเรียกใช้ร้านค้าแยกต่างหากจากการติดตั้ง Magento เดียวกัน เหตุผลทั่วไปในการทำเช่นนี้ก็เพื่อรองรับภาษาอื่น ๆ ในด้านหลังนี่คือเหตุผลที่คุณสามารถเลือกดูร้านค้าของคุณดู (ถ้าเปิดหลายร้าน) เมื่ออัปเดตการกำหนดค่าและทำสิ่งอื่น ๆ เช่น

ด้วยเหตุนี้วีโอไอพีจะเพิ่มขีดล่างและตัวเลขท้ายตารางเพื่อติดตามมุมมองร้านค้าที่แตกต่างกัน คุณจะสังเกตได้ว่าข้อความค้นหาที่ฉันให้ดูเหมือนจะเป็นตารางที่ซ้ำกัน แต่จะลงท้ายด้วยตัวเลขที่ต่างกัน 0 หรือ 1 ในกรณีนี้ หากคุณมีหลายร้านค้า / การดูตัวเลขเหล่านี้จะเพิ่มขึ้นเรื่อย ๆ เช่น _2 หรือ _3 วิธีนี้ช่วยให้คุณสามารถจัดการรหัสของแต่ละร้านแตกต่างกัน การเปลี่ยนแปลงระบบ id ของคุณในมุมมองหนึ่ง (ร้านค้า) ไม่จำเป็นต้องเหมือนกันในอีกมุมมองหนึ่ง

มันอยู่นอกขอบเขตสำหรับโพสต์นี้ แต่ระบบหมายเลขเดียวกันนี้ใช้กับตารางอื่น ๆ ในฐานข้อมูลช่วยให้คุณสามารถปฏิบัติและส่งผลต่อมุมมองแต่ละร้านอย่างแท้จริงแตกต่างกัน คุณสามารถมีชุดรูปแบบที่แตกต่างกันโดยสิ้นเชิงต่อร้านค้า


ทำไมถึงพูดถึงร้านค้าหลายร้าน อะไรจะแตกต่างกันหากคุณเปิดใช้งานโหมดร้านค้าเดี่ยว?
Condor

1
ฉันตอบว่านี่คือโพสต์: "... โปรดทราบว่าคุณไม่จำเป็นต้องค้นหาใด ๆ ที่ลงท้ายด้วย _1 หากคุณเปิดใช้งานโหมดร้านเดียว" ขอให้สังเกตว่าแบบสอบถามที่ฉันให้โทรสิ่งที่ดูเหมือนว่าตารางที่ซ้ำกันยกเว้นท้ายมีหมายเลข 0 หรือ 1 ในกรณีนี้ หากคุณปิดใช้งานร้านค้าหลายร้านคุณจะเห็น _0 ไม่มีอะไรกับ _1 หรือ _2 หรือ _3 เป็นต้น ฉันเพิ่มการอัปเดตเพื่อชี้แจงสิ่งนี้
Blizzardengle

2

เปลี่ยนลำดับในการเปลี่ยนแก้ไขการสั่งซื้อจำนวนแพ็ดดิ้ง Sequence.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

เพื่อให้ทุกอย่างง่ายขึ้นให้เพิ่มหมายเลขใบแจ้งหนี้คำสั่งเดียวกันของ Fooman


1
เป็นความคิดที่ไม่ดีที่จะแก้ไขรูปแบบการขยายในไฟล์หลักคุณควรใช้วิธีการ 'ชื่อที่แสดงของฉันเพื่อเปลี่ยนรูปแบบการขยาย
Timon de Groot

1
วีโอไอพีนี้คืออะไร? (ผู้ดูแลระบบ> ร้านค้า> การขาย> หมายเลขคำสั่งซื้อ) ฉันใช้ MAG 2.2.2 แต่ดูเหมือนว่าเมนูจะเปลี่ยนไป
Mohammed Joraid

1

เปลี่ยนรหัสการเพิ่มคำสั่งซื้อ

  1. เปิดผู้ดูแลระบบ PHP ของคุณ
  2. ค้นหา & คลิกที่ตารางที่เรียกว่า: sequence_order_1
  3. คลิกที่แท็บ "การดำเนินการ" และใต้ "AUTO_INCREMENT" แก้ไขไปยังหมายเลขคำสั่งซื้อที่ต้องการ

สำหรับร้านค้าอื่นทำตามขั้นตอนเดียวกัน

  1. ค้นหา & คลิกที่ตารางที่เรียกว่า: sequence_order_2
  2. คลิกที่แท็บ "การดำเนินการ" และใต้ "AUTO_INCREMENT" แก้ไขไปยังหมายเลขคำสั่งซื้อที่ต้องการ

นี่จะเปลี่ยนหมายเลขการสั่งซื้อสำหรับหลาย ๆ ร้าน


0

เพื่อปรับหมายเลขใบแจ้งหนี้ผ่าน PHPMYADMIN

INSERT INTO sequence_order_1( sequence_value) VALUES ('2000');

2000 จะเป็นหมายเลขเริ่มต้นใหม่


0

คุณสามารถเปลี่ยนแปลงหมายเลขสั่งซื้อได้โดยตรงในฐานข้อมูลวีโอไอพี 2 โดยเคล็ดลับนี้

ก่อนอื่นคุณต้องเปิดฐานข้อมูล PHP Admin จากนั้นค้นหาและเปิดตาราง“ sales_sequence_profile”

หลังจากนั้นคุณสามารถเปลี่ยนแปลงหมายเลขการสั่งซื้อเริ่มต้นในเว็บไซต์ Magento 2 ของคุณ:

เปลี่ยนรหัสการเพิ่มคำสั่งซื้อ

ข เปลี่ยนคำนำหน้าหมายเลขคำสั่งซื้อ

ค เปลี่ยนส่วนต่อท้ายคำสั่งซื้อ

d เปลี่ยนเลขที่ใบสั่งเริ่มต้นค่า

อี เปลี่ยนความยาวแผ่น

ฉันเห็นแบบฝึกหัดฉบับเต็มในบทความนี้: คู่มือการสอนที่สมบูรณ์เพื่อเปลี่ยนหมายเลขการสั่งซื้อใน Magento 2


ชื่อของตารางไม่ถูกต้อง ควรเป็น "sales_sequence_profile"
Dennis van Schaik

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>

การแก้ไขฐานข้อมูลสำหรับหมายเลขใบสั่งซื้อและใบแจ้งหนี้นั้นได้อธิบายไว้อย่างสมบูรณ์ในคำตอบของ Rakesh Jesadiya

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.