Magento 2 - Cách chính xác để thay đổi Id đơn hàng mặc định là gì?


29

Magento 2. Sau khi cài đặt mới, id đơn hàng mới sẽ là 100000001, 100000002, v.v.

Cách chính xác để thay đổi id gia tăng đó là số cao hơn là gì? Ví dụ 155555552, 155555553, v.v. Khi thay đổi nó sẽ trông tốt hơn nhiều.

Trong Magento 1.9 Để chỉnh sửa Id mặc định cho Đơn hàng, Hóa đơn hoặc Lô hàng, chúng tôi chỉ cần thay đổi giá trị trong cơ sở dữ liệu trong "eav_entity_store".

Magento 2 trông thật khác biệt ...

Tôi biết có một số plugin cung cấp để làm điều này, nhưng tôi muốn biết làm thế nào để làm điều đó bằng tay.


Vui lòng xem câu hỏi của tôi ở đây: magento.stackexchange.com/questions/279454/ Nhật ShipWorks (và những người khác) có thể không được sử dụng increment_idnhư họ dự kiến.
Chris K

Câu trả lời:


31
  1. Mở cơ sở dữ liệu quản trị PHP của bạn (Tôi đã thử nghiệm trên php 7)
  2. Tìm và nhấp vào bảng có tên: Sequ_order_1 (nó nằm trong cơ sở dữ liệu không nằm trong information_schema)
  3. Nhấp vào tab "Hoạt động" và trong phần chỉnh sửa "AUTO_INCREMENT" thành số thứ tự mong muốn.

Tôi đặt số 100500400 vào trường AUTO_INCREMENT, nhấp vào "Tiếp tục". Sau đó, tôi đã thực hiện mua hàng thử nghiệm nhưng id của đơn đặt hàng vẫn là 000000013, 00000014 ...
Luis Garcia

1
tôi đã tìm thấy Sequ_order_1 và trong tab hoạt động có Auto_increment giá trị là 5, vậy giá trị chính xác là gì?
Ahmad Darwish

1) sao lưu cơ sở dữ liệu của bạn trước khi thực hiện bất kỳ thay đổi. 2) thay vì 5 bạn đặt giá trị bạn muốn cho id đơn hàng của mình, ví dụ 1035327500. Đơn hàng tiếp theo của bạn sẽ là 1035327501
Đánh dấu

chúng ta đang nói về phiên bản magento nào?
Felix

@Felix Nó dành cho Magento 2
Kishan Patadia 20/03/18

25

Truy cập cơ sở dữ liệu của bạn từ phpmyadmin,

Ở đây _1 được sử dụng cho id cửa hàng sau tablename.

Default Frontend store id is 1.nếu bạn có nhiều cửa hàng sau đó bạn phải truy vấn thiết lập cho mỗi cửa hàng với tên bảng như sequence_order_2 tối đa sequence_order _. *

Nhập bên dưới truy vấn cho bảng Sequ_order_1 được sử dụng cho cửa hàng mặc định. Nếu bạn có nhiều cửa hàng, bạn phải đặt tablename theo id cửa hàng trong truy vấn bên dưới.

Điều này chỉ được sử dụng cho thứ tự được đặt từ frontend.

Sequ_order_1 được sử dụng để quản lý id đơn hàng trong magento 2.

ALTER TABLE sequence_order_1 AUTO_INCREMENT=155555551;

Id đơn hàng tiếp theo được bắt đầu từ 155555551.

Bên dưới Truy vấn được xác định cho HÓA ĐƠN , nếu bạn muốn thay đổi id hóa đơn

ALTER TABLE sequence_invoice_1 AUTO_INCREMENT=155555551;

Cho lô hàng ALTER TABLE sequence_shipment_1 AUTO_INCREMENT=155555551;


Điều này không làm việc cho tôi. Sau khi thực hiện một số lần mua thử nghiệm, id của đơn đặt hàng vẫn là 000000013, 00000014 ...
Luis Garcia

câu trả lời tuyệt vời!
huzefam


bạn có thể nói phiên bản magento mà điều này là chính xác?
Felix

Cách thay đổi chữ số đầu tiên của id đơn hàng mới
Tirth Patel

16

Những gì trước đây trong eav_entity_storebây giờ được bao phủ trong sales_sequence_profilesales_sequence_meta. Bảng sequence_order_1được điền khi đơn đặt hàng được đặt.


Bạn có thể nói đại khái về số phiên bản magento mà điều này là đúng và hoạt động không?
Felix

Tôi không gặp phải bất kỳ thay đổi nào trong hành vi về điều này Tôi nghĩ rằng điều này áp dụng từ 2.0.0 cho đến phiên bản hiện tại 2.2.1
Kristof tại Fooman

Vẫn như vậy trên 2.2.4, chỉ cần thử nghiệm nó.
Frank Groot

7

Định dạng cho id đơn hàng mới được xác định theo mặc định bởi hằng số trong

Magento \ SalesSequence \ Model \ Sequence:

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

Đó là mẫu cho hàm sprintf () tạo id mới. Để loại bỏ các số 0 đứng đầu, bạn phải chuyển mẫu của mình cho hàm tạo như thế này:

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

hoặc mở rộng lớp Sequence và thay đổi khi bạn cần


6

Mặc dù tất cả các câu trả lời trên đều đúng / một phần, tôi nghĩ nên viết ra câu trả lời vì điều này sẽ hữu ích cho những độc giả tương lai. Câu trả lời này sẽ giải quyết hai câu hỏi:

1) Làm thế nào để thay đổi số thứ tự?

2) Làm cách nào để thêm Tiền tố hoặc Hậu tố vào số thứ tự?

Trước khi thực hiện bất kỳ thay đổi mù nào trong cơ sở dữ liệu, bạn nên hiểu bảng trình tự nào được liên kết với cái gì. Bạn có thể kiểm tra điều này từ bảngsales_sequence_meta

Chạy truy vấn select * from sales_sequence_meta;mỗi cửa hàng sẽ có bảng tuần tự liên kết với cửa hàng đó. Lưu ý tên bảng viz: Đặt hàng, Hóa đơn, creditmemo hoặc giao hàng.

Khi đã xong, hãy đi vào bảng ví dụ nếu bạn muốn chỉnh sửa bảng goto số thứ tự sequence_order_1và thay đổi AUTO_INCREMENTgiá trị

alter table sequence_order_1 AUTO_INCREMENT=617;

Đây là tất cả những gì cần thiết để nhảy trình tự thứ tự.

Bây giờ, di chuyển xa hơn nếu bạn đào thêm và có một yêu cầu mà bạn muốn thêm Tiền tố / Hậu tố để đặt hàng theo các bước dưới đây:

Bảng Goto sales_sequence_profilevà kiểm tra dữ liệu

select * from sales_sequence_profile;

Bạn sẽ quan sát cột prefixvà 'hậu tố'. Ban đầu nó sẽ là NULL. Bạn có thể thêm giá trị trong đó có tiền tố và hậu tố cho phù hợp meta_idmà bạn có thể ánh xạ từ bảngsales_sequence_meta

Điều này sẽ thay đổi tiền tố / hậu tố đơn hàng cho tất cả các đơn đặt hàng.

Hy vọng điều này sẽ giúp tất cả !! Chúc mừng !!


4

Cài đặt mới:
Nếu trên Magento 2.2.0+ và bạn đang chạy cài đặt mới có bật nhiều cửa hàng (điều này được bật theo mặc định), bạn có thể chỉ cần chạy các truy vấn sau trước khi đặt bất kỳ đơn đặt hàng nào thông qua trang web:

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;

Xin lưu ý rằng đó 303chỉ là số tôi chọn cho trang web của chúng tôi vì nền tảng cũ của chúng tôi đã dừng ở số thứ tự 300 và tôi muốn một số loại nhất quán. Cũng lưu ý rằng bạn không cần bất kỳ truy vấn nào kết thúc _1nếu bạn bật chế độ cửa hàng đơn lẻ.

Cài đặt hiện có:
Nếu bạn đã sử dụng Magento 2.2.0+ (hoặc đã nâng cấp lên nó) và chỉ muốn tăng số, không thay đổi phần đệm hoặc thêm ký tự, chỉ cần kiểm tra giá trị AUTO_INCREMENT hiện tại trên các bảng sau (giả sử nhiều trang web ):

  • sequ_creditmemo_0
  • sequ_creditmemo_1
  • trình tự_invoice_0
  • trình tự_invoice_1
  • trình tự_order_0
  • trình tự_order_1
  • trình tự_shipment_0
  • trình tự_shipment_1

Và thay đổi chúng bằng cách sử dụng các truy vấn thay đổi được hiển thị ở trên nhưng đảm bảo giá trị mới bạn sử dụng lớn hơn giá trị bạn nhận được từ việc kiểm tra giá trị AUTO_INCREMENT hiện tại.

Nếu bạn định loay hoay với phần đệm hoặc thêm một mẫu tùy chỉnh, bạn cần xem các câu trả lời khác ở đây và xem lại các bảng sau:

  • sales_ resultence_meta
  • sales_ resultence_profile

Cập nhật: Nhiều cửa hàng?
Đối với những người không quen thuộc với nhiều cửa hàng, đây là một tính năng cho phép bạn chạy các cửa hàng hoàn toàn riêng biệt với cùng một cài đặt Magento. Một lý do phổ biến để làm điều này là để hỗ trợ các ngôn ngữ khác. Ở phần cuối, đây là lý do tại sao bạn có thể chọn chế độ xem cửa hàng mà bạn đang xem (nếu đa cửa hàng được bật) khi cập nhật cấu hình và làm những việc khác chẳng hạn.

Vì lý do này, Magento sẽ thêm một dấu gạch dưới và một số ở cuối các bảng nhất định để theo dõi các lượt xem cửa hàng khác nhau. Bạn sẽ nhận thấy các truy vấn tôi cung cấp dường như là các bảng trùng lặp nhưng chúng kết thúc bằng các số khác nhau, 0 hoặc 1 trong trường hợp này. Nếu bạn có một số cửa hàng / lượt xem, những con số này sẽ tiếp tục tăng, chẳng hạn như _2 hoặc _3. Điều này cho phép bạn quản lý id của mỗi cửa hàng khác nhau. Thay đổi của bạn đối với hệ thống id trong một chế độ xem (cửa hàng) không nhất thiết phải giống nhau ở một chế độ khác.

Nó nằm ngoài phạm vi của bài đăng này nhưng hệ thống đánh số tương tự này áp dụng cho các bảng khác trong cơ sở dữ liệu cho phép bạn thực sự đối xử và ảnh hưởng đến từng chế độ xem cửa hàng khác nhau. Bạn có thể có một chủ đề hoàn toàn khác nhau cho mỗi cửa hàng chẳng hạn.


Tại sao bạn cứ nhắc đến nhiều cửa hàng? Điều gì sẽ khác nếu bạn bật chế độ một cửa hàng?
Condor

1
Tôi đã trả lời đây là bài đăng: "... lưu ý rằng bạn không cần bất kỳ truy vấn nào kết thúc bằng _1 nếu bạn bật chế độ cửa hàng đơn lẻ." Lưu ý rằng các truy vấn tôi đã cung cấp gọi những gì trông giống như các bảng trùng lặp ngoại trừ phần cuối có số, 0 hoặc 1 trong trường hợp này. Nếu bạn vô hiệu hóa nhiều cửa hàng, bạn sẽ chỉ thấy _0 không có gì với _1 hoặc _2 hoặc _3, v.v. Tôi đã thêm một bản cập nhật để làm rõ điều này.
Blizzardengle

2

Thay đổi trình tự Để thay đổi phần đệm số thứ tự chỉnh sửa Sequence.php (Tôi tin rằng có một cách tốt hơn thông qua một tệp di.xml)

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

Chỉnh sửa dòng này

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

Thay đổi "9" thành phần đệm mong muốn

Thí dụ

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

Thay đổi tiền tố

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

Để giữ mọi thứ dễ dàng, hãy thêm Fooman cùng số hóa đơn đặt hàng


1
Một ý tưởng tồi là chỉnh sửa mẫu đệm trong các tệp lõi, bạn nên sử dụng phương thức 'tên hiển thị của tôi' để thay đổi mẫu đệm.
Timon de Groot

1
Magento này là gì? (quản trị viên> Cửa hàng> Bán hàng> Số đơn hàng) Tôi sử dụng MAG 2.2.2 nhưng thứ tự menu dường như bị thay đổi.
Mohammed Joraid

1

Thay đổi Id tăng đơn hàng

  1. Mở quản trị viên PHP của bạn
  2. Tìm và nhấp vào bảng có tên: Sequ_order_1
  3. Nhấp vào tab "Hoạt động" và trong phần chỉnh sửa "AUTO_INCREMENT" thành số thứ tự bạn muốn.

Đối với một cửa hàng khác cùng bước, hãy làm theo

  1. Tìm và nhấp vào bảng có tên: sequ_order_2
  2. Nhấp vào tab "Hoạt động" và trong phần chỉnh sửa "AUTO_INCREMENT" thành số thứ tự bạn muốn.

Điều này sẽ thay đổi số thứ tự cho nhiều cửa hàng


0

Để điều chỉnh số hóa đơn qua PHPMYADMIN

XÁC NHẬN VÀO sequence_order_1( sequence_value) GIÁ TRỊ ('2000');

2000 sẽ là số bắt đầu mới


0

Bạn có thể thay đổi Số thứ tự trực tiếp trong Cơ sở dữ liệu Magento 2 bằng mẹo này

Trước hết, bạn cần mở cơ sở dữ liệu quản trị PHP của mình. Sau đó tìm và mở bảng sales sales_ resultence_profile trực tiếp.

Sau đó, bạn có thể thay đổi số thứ tự mặc định trong trang web Magento 2 của mình:

a. Thay đổi ID tăng đơn hàng

b. Thay đổi tiền tố số thứ tự

c. Thay đổi số thứ tự Suffix

d. Thay đổi số thứ tự Giá trị bắt đầu

e. Thay đổi độ dài Pad

Tôi thấy hướng dẫn đầy đủ trong bài viết này: Hướng dẫn hoàn chỉnh Hướng dẫn thay đổi số thứ tự trong Magento 2


Tên của bảng không chính xác. nó phải là "sales_ resultence_profile"
Dennis van Schaik

0

Để thoát khỏi (hoặc thay đổi) các số 0 bổ sung, bạn không được ghi đè lên các tệp cốt lõi. Trong app/etc/di.xmlphần thêm của bạn sau đây và thay đổi "%s%'.09d%s"giá trị tương ứng (trong ví dụ này, hai 00 được đệm):

<?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>

Các chỉnh sửa cơ sở dữ liệu cho số thứ tự và số hóa đơn được mô tả hoàn hảo trong câu trả lời của Rakesh Jesadiya.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.