Magento 2 - Apa cara yang benar untuk mengubah ID Pesanan default?

29

Magento 2. Setelah baru menginstal id Pesanan baru akan 10.000.0001, 100000002 dan seterusnya.

Apa cara yang benar untuk mengubah id kenaikan itu sehingga menjadi angka yang lebih tinggi? Misalnya 155555552, 155555553 dan sebagainya. Ketika diubah itu akan terlihat jauh lebih baik.

Di Magento 1.9 Untuk mengedit Id default untuk Pesanan, Faktur atau Pengiriman, kami cukup mengubah nilai dalam database di "eav_entity_store".

Magento 2 terlihat sangat berbeda ...

Saya tahu ada beberapa plugin yang menawarkan untuk melakukan ini, tetapi saya ingin tahu bagaimana melakukannya secara manual.

Menandai
sumber
Silakan lihat pertanyaan saya di sini: magento.stackexchange.com/questions/279454/... ShipWorks (dan lainnya) mungkin tidak menggunakan increment_idseperti yang seharusnya.
Chris K

Jawaban:

31
  1. Buka basis data Admin PHP Anda (saya uji pada php 7)
  2. Temukan & klik pada tabel bernama: sequence_order_1 (terletak di basis data sendiri bukan di information_schema)
  3. Klik tab "Operasi" & di bawah "AUTO_INCREMENT" edit ke nomor pesanan yang diinginkan.
Menandai
sumber
Saya memasukkan angka 100500400 di kolom AUTO_INCREMENT, klik "Lanjutkan". Lalu saya melakukan pembelian tes tetapi id pesanan masih 000000013, 00000014 ...
Luis Garcia
1
saya menemukan sequence_order_1 dan di tab operasi ada Auto_increment nilainya 5, jadi apa nilai yang benar?
Ahmad Darwish
1) buat cadangan database Anda sebelum melakukan perubahan. 2) alih-alih 5 Anda menetapkan nilai yang Anda inginkan untuk id pesanan Anda, misalnya 1035327500. Pesanan Anda berikutnya adalah 1035327501
Mark
versi magento yang sedang kita bicarakan?
Felix
@ Feliks Ini untuk Magento 2
Kishan Patadia
25

Buka database Anda dari phpmyadmin,

Di sini _1 digunakan untuk id penyimpanan setelah nama tab.

Default Frontend store id is 1.jika Anda memiliki multi store maka Anda harus menetapkan kueri untuk setiap toko dengan nama tabel seperti sequence_order_2 hinggato sequence_order _. *

Masukkan kueri di bawah untuk tabel sequence_order_1 digunakan untuk penyimpanan default. Jika Anda memiliki beberapa toko, Anda harus menetapkan nama tab sesuai id toko di kueri di bawah ini.

Ini hanya digunakan untuk pesanan dari frontend.

sequence_order_1 digunakan untuk manajemen id pesanan di magento 2.

ALTER TABLE sequence_order_1 AUTO_INCREMENT=155555551;

Id pesanan berikutnya mulai dari 155555551.

Di bawah Query didefinisikan untuk FAKTUR , jika Anda ingin perubahan faktur id

ALTER TABLE sequence_invoice_1 AUTO_INCREMENT=155555551;

Untuk pengiriman ALTER TABLE sequence_shipment_1 AUTO_INCREMENT=155555551;

Rakesh Jesadiya
sumber
Ini tidak berfungsi dari saya. Setelah melakukan beberapa tes pembelian, id pesanan masih 000000013, 00000014 ...
Luis Garcia
jawaban yang sangat bagus!
huzefam
ini mungkin membantu - magento.stackexchange.com/questions/156075/… -
sandip
dapatkah Anda menyatakan versi magento yang benar?
Felix
cara mengubah digit pertama dari id pesanan baru
Tirth Patel
16

Apa yang sebelumnya di eav_entity_storesekarang tercakup dalam sales_sequence_profiledan sales_sequence_meta. Tabel sequence_order_1akan diisi saat pesanan dilakukan.

Kristof di Fooman
sumber
Bisakah Anda secara kasar menyatakan nomor versi magento yang ini benar dan berfungsi?
Felix
Saya belum menemukan perubahan dalam perilaku ini, saya pikir ini berlaku dari 2.0.0 hingga rilis saat ini 2.2.1
Kristof di Fooman
Masih sama pada 2.2.4, baru mengujinya.
Frank Groot
7

Format untuk id pesanan baru didefinisikan secara default dengan konstan dalam

Magento \ SalesSequence \ Model \ Sequence:

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

Pola untuk fungsi sprintf () yang membuat id baru. Untuk menghapus angka nol di depan, Anda harus meneruskan pola Anda ke konstruktor seperti ini:

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

atau rentangkan kelas Sequence dan ubahlah sesuai kebutuhan

nama tampilan saya
sumber
6

Walaupun semua jawaban di atas benar sepenuhnya / sebagian, saya berpikir untuk menuliskan jawabannya karena ini akan sangat membantu bagi pembaca di masa depan. Jawaban ini akan menjawab dua pertanyaan:

1) Bagaimana cara mengubah nomor urut pesanan?

2) Bagaimana cara menambahkan Awalan atau Akhiran ke nomor pesanan?

Sebelum membuat perubahan buta dalam database, Anda harus memahami tabel urutan yang terkait dengan apa. Anda dapat memeriksa ini dari tabelsales_sequence_meta

Jalankan kueri select * from sales_sequence_meta;setiap toko akan memiliki tabel urutan yang terkait dengan toko itu. Catat nama tabel yaitu: Pesan, Faktur, kredit atau pengiriman.

Setelah itu selesai, buka tabel misalnya jika Anda ingin mengedit tabel urutan nomor goto sequence_order_1dan mengubah AUTO_INCREMENTnilainya

alter table sequence_order_1 AUTO_INCREMENT=617;

Ini semua yang diperlukan untuk melewati urutan pemesanan.

Sekarang, bergerak lebih jauh jika Anda menggali lebih banyak dan memiliki persyaratan di mana Anda ingin menambahkan Prefix / Suffix untuk memesan ikuti langkah-langkah di bawah ini:

Goto table sales_sequence_profiledan periksa datanya

select * from sales_sequence_profile;

Anda akan mengamati kolom prefixdan 'akhiran'. Awalnya akan seperti itu NULL. Anda dapat menambahkan nilai di sana awalan dan akhiran untuk relevan meta_idyang dapat Anda petakan dari tabelsales_sequence_meta

Ini akan mengubah awalan / suffix pesanan untuk semua pesanan.

Semoga ini bisa membantu semua !! Cheers !!

Dexter
sumber
4

Instalasi Baru:
Jika Anda menggunakan Magento 2.2.0+ dan menjalankan instalasi baru dengan multi-toko diaktifkan (ini diaktifkan secara default), Anda dapat menjalankan kueri berikut sebelum melakukan pemesanan melalui situs:

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;

Harap dicatat bahwa 303hanya angka yang saya pilih untuk situs kami karena platform lama kami tidak digunakan pada urutan nomor 300 dan saya ingin semacam konsistensi. Perhatikan juga bahwa Anda tidak memerlukan pertanyaan apa pun yang diakhiri dengan _1jika Anda mengaktifkan mode satu toko.

Instalasi yang Ada:
Jika Anda sudah menggunakan Magento 2.2.0+ (atau ditingkatkan untuk itu) dan hanya ingin menambah angka, tidak mengubah padding atau menambahkan karakter, cukup periksa nilai AUTO_INCREMENT saat ini pada tabel berikut (dengan asumsi multi-situs ):

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

Dan ubah mereka menggunakan kueri ubah yang ditunjukkan di atas, tetapi pastikan nilai baru yang Anda gunakan lebih besar dari nilai yang Anda dapatkan dari memeriksa nilai AUTO_INCREMENT saat ini.

Jika Anda akan dipusingkan dengan bantalan atau menambahkan pola khusus, Anda perlu melihat jawaban lain di sini dan meninjau tabel berikut:

  • sales_afterence_meta
  • profil sales_afterence_

Perbarui: Mult-Toko?
Bagi mereka yang tidak terbiasa dengan multi-toko ini adalah fitur yang memungkinkan Anda untuk menjalankan toko yang benar-benar terpisah dari instalasi Magento yang sama. Alasan umum untuk melakukan ini adalah untuk mendukung bahasa lain. Di bagian belakang inilah mengapa Anda dapat memilih tampilan toko yang Anda lihat (jika multi-toko dihidupkan) saat memperbarui konfigurasi dan melakukan hal-hal lain misalnya.

Karena alasan ini Magento akan menambahkan garis bawah dan angka di akhir tabel tertentu untuk melacak berbagai tampilan toko. Anda akan melihat bagaimana kueri yang saya sediakan tampak seperti tabel duplikat tetapi diakhiri dengan angka berbeda, 0 atau 1 dalam kasus ini. Jika Anda memiliki beberapa toko / tampilan angka-angka ini hanya akan terus bertambah, misalnya _2 atau _3. Ini memungkinkan Anda untuk mengelola id dari setiap toko secara berbeda. Perubahan Anda ke sistem id dalam satu tampilan (toko) tidak harus sama dengan yang lain.

Ini di luar cakupan untuk posting ini tetapi sistem penomoran yang sama ini berlaku untuk tabel lain dalam database yang memungkinkan Anda untuk benar-benar memperlakukan dan mempengaruhi setiap tampilan toko secara berbeda. Anda dapat memiliki tema yang sama sekali berbeda per toko misalnya.

Blizzardengle
sumber
Mengapa Anda terus menyebutkan tentang multi store? Apa yang akan berbeda jika mode toko tunggal diaktifkan?
Condor
1
Saya menjawab ini posnya: "... perhatikan bahwa Anda tidak memerlukan pertanyaan apa pun yang diakhiri dengan _1 jika Anda mengaktifkan mode satu toko." Perhatikan bahwa kueri yang saya berikan memanggil apa yang tampak seperti tabel duplikat kecuali akhirnya memiliki angka, 0 atau 1 dalam kasus ini. Jika Anda menonaktifkan multi-toko, Anda hanya akan melihat _0 apa-apa dengan _1 atau _2 atau _3 dan seterusnya. Saya menambahkan pembaruan untuk memperjelas ini.
Blizzardengle
2

Ubah Urutan Untuk mengubah nomor padding, edit Sequence.php (saya yakin ada cara yang lebih baik melalui di.xml)

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

Edit baris ini

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

Ubah "9" ke padding yang diinginkan

Contoh

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

Ubah Awalan

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

Agar semuanya mudah, tambahkan Fooman nomor faktur pesanan yang sama

Darren Sutherland
sumber
1
Ini adalah ide yang buruk untuk mengedit pola padding di file inti, Anda harus menggunakan metode 'my display name' untuk mengubah pola padding.
Timon de Groot
1
Magento apa ini? (admin> Toko> Penjualan> Nomor Pesanan) Saya menggunakan MAG 2.2.2 tetapi urutan menu tampaknya berubah.
Mohammed Joraid
1

Ubah Id Peningkatan Pesanan

  1. Buka Admin PHP Anda
  2. Temukan & klik pada tabel bernama: sequence_order_1
  3. Klik tab "Operasi" & di bawah "AUTO_INCREMENT" edit ke nomor pesanan yang diinginkan.

Untuk Toko lain, ikuti langkah yang sama

  1. Temukan & klik pada tabel bernama: sequence_order_2
  2. Klik tab "Operasi" & di bawah "AUTO_INCREMENT" edit ke nomor pesanan yang diinginkan.

Ini akan mengubah nomor pesanan untuk beberapa toko

Divya
sumber
0

Untuk Menyesuaikan nomor Faktur Melalui PHPMYADMIN

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

2000 akan menjadi nomor awal yang baru

Darren Sutherland
sumber
0

Anda dapat membuat perubahan ke Nomor Pesanan Langsung di Database Magento 2 dengan tip ini

Pertama-tama, Anda perlu membuka database Admin PHP Anda. Kemudian cari dan buka tabel "sales_afterence_profile".

Setelah itu, Anda dapat membuat perubahan ke nomor pesanan default di situs web Magento 2 Anda:

Sebuah. Ubah ID Penambahan Pesanan

b. Ubah Awalan Nomor Pesanan

c. Ubah Sufiks Nomor Pesanan

d. Ubah Nilai Awal Nomor Pesanan

e. Ubah Pad-length

Saya melihat tutorial lengkap dalam artikel ini: Panduan Tutorial Lengkap untuk Mengubah Nomor Pesanan di Magento 2

Jameslj
sumber
Nama tabel salah. seharusnya "sales_afterence_profile"
Dennis van Schaik
0

Untuk menghilangkan (atau mengubah) nol tambahan secara permanen, Anda tidak boleh mengganti file inti. Dalam app/etc/di.xmladd Anda yang berikut ini dan ubah "%s%'.09d%s"nilainya sesuai (dalam contoh ini dua 00 diisi):

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

Suntingan database untuk nomor pesanan dan faktur dijelaskan dengan sempurna dalam jawaban Rakesh Jesadiya.

TheFrakes
sumber