Saya mendapat masalah aneh dengan Nomor Pesanan di Magento.
Baru-baru ini ketika satu pesanan ditempatkan di situs web saya nomor Pesanan datang 100000350
, Idealnya seharusnya 100000370
seperti nomor pesanan saya sebelumnya 100000369
dan 100000367
. Saya telah memasang tangkapan layar di bawah ini untuk itu
Selain itu, saya telah memeriksa log kesalahan tetapi belum menemukan entri apa pun. Kami menggunakan SagePay dan PayPal sebagai gateway pembayaran untuk itu.
Adakah yang bisa membimbing saya dalam hal ini?
magento-1.7
sales-order
order-status
Dexter
sumber
sumber
Jawaban:
Pertama kali saya mendapatkan nomor urut, kami mengalami kejutan dan beberapa cemas sampai saya mengetahui apa yang terjadi. Ini berkaitan dengan bagaimana Magento mengalokasikan nomor Pesanan Penjualan.
Sekarang untuk penjelasannya.
Proses pemesanan Magento membuat penawaran saat pertama kali sesuatu ditambahkan ke troli.
Pada titik ini, penawaran hanya merupakan Pesanan Penjualan potensial . Tidak ada nomor yang ditetapkan karena pelanggan belum berkomitmen untuk membayarnya.
Saat pelanggan mengklik tombol Lanjutkan untuk checkout, mereka akan:
Berikut ini adalah bagian penting: Pelanggan yang memilih untuk mendaftar di troli diperlakukan sebagai pelanggan tamu sampai pesanan selesai dan mereka sampai ke halaman sukses, pada saat akun mereka dibuat dan mereka masuk. Kutipan tetap menjadi kutipan pelanggan tamu dengan kehilangan batas waktu sesi sesi jika pesanan tidak selesai dan halaman sukses ditampilkan.
Dengan pesanan kartu kredit, berikut ini terjadi ketika tombol Place Order diklik.
sales_flat_quote
tabel direserved_order_id
kolom)Jika transaksi kartu kredit ditolak untuk setiap pelanggan melalui gateway pembayaran kartu kredit, dan pelanggan berikutnya melakukan pesanan yang berhasil, akan ada lompatan dalam urutan nomor Sales Order karena pembayaran yang ditolak Sales Order ditugaskan dengan nomor Pesanan Penjualan yang dipesan. dan Order Penjualan berikut berhasil ditugaskan nomor yang tersedia berikutnya.
Untuk kereta tamu (pesanan tamu dan daftar yang gagal di pelanggan kereta) yang melebihi batas waktu sesi, nomor Pesanan Penjualan yang dicadangkan ini akan hilang ketika sesi berakhir, meninggalkan celah dalam urutan Pesanan Penjualan.
Untuk pelanggan yang masuk sebelum mengklik tombol Lanjutkan , penawaran diberikan id pelanggan, jadi jika mereka mencoba untuk melakukan pemesanan dan menemukan bahwa itu ditolak, mereka dapat kembali, masuk, menemukan keranjang masih memiliki konten dan menempatkan memesan, terkadang jauh kemudian (terlama sampai saat ini adalah empat bulan). Kutipan akan menggunakan undang nomor Sales Order yang ditetapkan, mengarah ke luar urutan nomor Sales Order menunjukkan di layar manajemen Sales Order Anda.
sumber
Saya menghadapi masalah yang sama tetapi hanya ketika server dipukul dengan sejumlah besar beban. Masalah ini terjadi karena db masuk ke status penguncian saat mengubah kuotasi menjadi berurutan. Pada pemeriksaan lebih lanjut, saya menemukan bahwa masalahnya adalah mencoba untuk menulis ke tabel sales_flat_order_grid dalam transaksi segera setelah dimasukkan ke dalam tabel sales_flat_order. Dengan pertanyaan bersamaan itu menyebabkan tabrakan penguncian. Solusi sebenarnya adalah memindahkan barang-barang dari sales_flat_order_grid dari transaksi.
Tautan tersebut membantu saya memahami masalah ini
Patch menyelesaikan masalah untuk saya.
Anda harus menghapus function _afterSave dari Mage_Sales_Model_Abstract dan menambahkan
Beri tahu saya jika ini menyelesaikan masalah untuk Anda.
sumber
Saya tidak yakin, tapi ini bisa menyelesaikan masalah Anda:
Sejauh yang saya pikirkan, mungkin ada sesuatu yang mengganggu
eav_entity_store
meja Anda . Ini berisi informasi tentang increment_id berikutnya yaitu order_id untuk digunakan. Mungkin beberapa modul atau kode di sistem magento Anda mungkin telah mengubahnya.Buka tabel ini, dan perbarui kolom increment_last_id dengan id pesanan terakhir Anda. Hati-hati, mengandung kenaikan id orang lain juga seperti faktur, pengiriman dll Yang pasti, hanya pergi ke
eav_entity_types
meja dan melihat apa adalahentity_type_id
untuksales/order
(kolomentity_model
). Di magento saya, ini 5. Jadi sekarang pergi keeav_entity_store
meja dan perbarui saja increment_id untuk baris yangentity_type_id
5. Anda dapat langsung memperbaruinya melalui phpmyadmin atau Anda dapat menjalankan query seperti,Harap dicatat 5 adalah entity_type_id di magento saya untuk pesanan
Mungkin ada banyak alasan untuk masalah Anda, tetapi saya pikir ini dapat menyelesaikan masalah Anda.
sumber