Pesanan edit admin kehilangan alamat pengiriman

10

Pelanggan melakukan pemesanan dengan alamat pengiriman / penagihan yang berbeda.

jika kita perlu mengedit pesanan di admin, itu menciptakan pesanan baru, dalam pesanan baru alamat pengiriman default ke 'sama dengan penagihan' dan alamat pengiriman asli hilang!

  1. Adakah yang bisa mengkonfirmasi jika instalasi mereka melakukan hal yang sama.
  2. apakah ada yang punya solusi.
mendel
sumber
2
Saya memiliki cukup banyak 1,7 toko dan tidak ada yang punya ini
Sander Mangel
@SanderMangel, terima kasih. jadi sekarang kita perlu mencari tahu mengapa itu terjadi pada instalasi saya. Ada saran?
mendel
Periksa log Anda, baik Magento dan Apache. Jika itu semua ok matikan semua ekstensi pihak ke-3 melalui app / etc / modules untuk melihat apakah itu yang menyebabkannya. Jika itu tidak membantu ... yah ... maka Anda memiliki masalah yang lebih besar
Sander Mangel
@SanderMangel, saya menonaktifkan semua ekstensi pihak ke-3, tidak membuat perbedaan. Saya memeriksa pengecualian dan log sistem, dan saya tidak melihat kesalahan yang bertepatan dengan waktu saya mengklik 'edit pesanan'
mendel

Jawaban:

3

Saya punya masalah ini. Masalah saya adalah, yang same_as_billing_addressditetapkan pada alamat pengiriman melalui frontend, oleh karena itu backend berpikir, tidak ada alamat kedua dan melewatkan rendering.

Periksa frontend Anda, apakah itu mengirimkan data yang benar.

Fabian Blechschmidt
sumber
ketika pelanggan memasukkan pesanan, mereka dapat memilih untuk mengirim ke alamat ini atau mengirim ke alamat yang berbeda, jika mereka memilih untuk mengirim ke alamat yang berbeda mereka dapat memasukkan alamat pengiriman. halaman pesanan penjualan admin menunjukkan kedua alamat sampai saya mengedit pesanan. dalam tabel sales_order_flat saya tidak melihat kolom same_as_billing_address, tapi saya melihat shipping_address_id dan billing_address_id dan keduanya berbeda. Mungkin saya tidak mencari di tempat yang tepat?
mendel
Saya menemukan bidang same_as_billing dalam tabel sales_flat_quote_address dan diatur ke 0 untuk pesanan tersebut di mana pelanggan memasukkan alamat pengiriman yang berbeda.
mendel
Maka Anda memiliki masalah lain :-(
Fabian Blechschmidt
Saya juga sudah memeriksa ini, dan solusi Anda tidak berlaku untuk saya juga. same_as_billing_addressdiatur dengan benar.
Louis B.
2

Saya tidak bisa mereproduksinya di Magento 1.9.

Tidak ada perbaikan bug untuk ini yang disebutkan dalam catatan rilis, namun saya menemukan yang berikut ini di catatan rilis 1.8.0.0 :

Pemesanan Administratif dan Perbaikan Memo Kredit

  • Saat Anda membuat pesanan menggunakan Panel Admin dan Anda telah menentukan alamat penagihan default dan alamat pengiriman default, alamat tersebut digunakan dengan benar.

Mungkin ini terkait dan memperbaiki bug juga. Catatan rilis tidak selalu lengkap.

Fabian Schmengler
sumber
1

Saya telah mengalami masalah yang sama di Magento 1.9.2.4 dan 2.0.5 terbaru.

Skenario:

  1. Tamu memesan
  2. Pesanan memiliki alamat Penagihan dan Pengiriman yang berbeda
  3. Admin mengedit pesanan di Panel Admin

Hasil: Alamat pengiriman hilang dan alamat penagihan ditampilkan sebagai gantinya.

Alasan: Metode _isSameAsBilling () selalu mengembalikan true jika pesanan ditempatkan oleh Tamu. Itu bukan perilaku yang pantas.

Metode yang dimaksud:

Magento 2.0.5: /app/code/Magento/Quote/Model/Quote/Address.php

protected function _isSameAsBilling()
    {
        return $this->getAddressType() == \Magento\Quote\Model\Quote\Address::TYPE_SHIPPING &&
            ($this->_isNotRegisteredCustomer() ||
            $this->_isDefaultShippingNullOrSameAsBillingAddress());
    }

Magento 1.9.2.4: /app/code/core/Mage/Sales/Model/Quote/Address.php

protected function _isSameAsBilling()
    {
        return ($this->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_SHIPPING
            && ($this->_isNotRegisteredCustomer() || $this->_isDefaultShippingNullOrSameAsBillingAddress()));
    }

Seperti yang Anda lihat jika Pelanggan tidak terdaftar metode _isSameAsBilling () mengembalikan true bahkan jika alamat Penagihan dan Pengiriman berbeda.

Ini memiliki implikasi serius pada semua pesanan yang diedit melalui Panel Admin karena Alamat Pengiriman asli hilang.

Apakah ini bug atau saya melewatkan sesuatu?

Luke Banka
sumber
1

Punya masalah yang sama dengan Magento 1.7 dan benar dengan perubahan ini pada: app / code / core / Mage / Adminhtml / Model / Penjualan / Pemesanan / Create.php

Anda harus menimpa kelas dengan cara yang bersih :)

Ubah metode: _initShippingAddressFromOrder dengan kode ini:

protected function _initShippingAddressFromOrder(Mage_Sales_Model_Order $order)
{
    $this->getQuote()->getShippingAddress()->setCustomerAddressId('');
    Mage::helper('core')->copyFieldset(
        'sales_copy_order_shipping_address',
        'to_order',
        $order->getShippingAddress(),
        $this->getQuote()->getShippingAddress()
    );
    $this->getQuote()->getShippingAddress()->setSameAsBilling(false);
    if($order->getShippingAddress()->getCustomerAddressId() && $order->getShippingAddress()->getCustomerAddressId() == $order->getBillingAddress()->getCustomerAddressId()) {
        $this->getQuote()->getShippingAddress()->setSameAsBilling(true);
    }
}
Maxime Huran
sumber
Terima kasih, pemasangan magento telah melalui sejumlah pembaruan dan ekstensi dan saya tidak dapat lagi mereproduksi masalah sehingga saya tidak dapat menguji perbaikan Anda.
mendel