Yönetici düzenleme talimatı gönderim adresini kaybediyor


10

Müşteri farklı gönderim / fatura adresleriyle sipariş verir.

siparişi yönetici olarak düzenlememiz gerekirse yeni bir sipariş oluşturur, yeni siparişte gönderim adresi varsayılan olarak 'faturalandırmayla aynı' olur ve orijinal gönderim adresi kaybolur!

  1. herkes kurulumunun aynı olup olmadığını onaylayabilir.
  2. Herkesin bir çözümü var mı?


2
Ben birkaç 1.7 dükkan korumak ve hiçbiri bu
Sander Mangel

@SanderMangel, teşekkür ederim. şimdi bunun kurulumumda neden olduğunu anlamamız gerekiyor. Herhangi bir öneri?
mendel

Hem Magento hem de Apache günlüklerinizi kontrol edin. Tamamsa, 3. taraf uzantılarını app / etc / modülleri aracılığıyla kapatın, bunun neden olup olmadığını kontrol edin. Bu yardımcı olmazsa ... iyi ... o zaman daha büyük bir sorun var
Sander Mangel

@SanderMangel, tüm 3. taraf uzantılarını devre dışı bıraktım, bir fark yaratmadı. İstisna ve sistem günlüklerini kontrol ettim ve 'siparişi düzenle'yi tıkladığım zamana denk gelen herhangi bir hata görmüyorum
mendel

Yanıtlar:


3

Bu sorunu yaşadım. Benim sorunum, bu same_as_billing_addressön uç üzerinden gönderim adresine ayarlanmıştı, bu nedenle arka uç düşündü, ikinci bir adres yoktu ve render atlandı.

Kullanıcı arabiriminizi doğru veri gönderip göndermediğini kontrol edin.


müşteri siparişi girdiğinde bu adrese göndermeyi veya farklı bir adrese göndermeyi seçebilir, farklı bir adrese göndermeyi seçerse bir gönderim adresi girebilir. siparişi düzenleyene kadar yönetici satış siparişi sayfası her iki adresi de gösterir. sales_order_flat tablosunda same_as_billing_address sütununu görmüyorum, ancak shipping_address_id ve billing_address_id sütunlarını görüyorum ve bunlar farklı. Belki de doğru yere bakmıyorum?
mendel

Alanını sales_flat_quote_address tablosunda same_as_billing buldum ve müşterinin farklı bir gönderim adresi girdiği siparişler için 0'a ayarlandı.
mendel

Sonra başka bir sorun daha var :-(
Fabian Blechschmidt

Bunu da kontrol ettim ve çözümünüz de benim için geçerli değil. same_as_billing_addressdoğru ayarlanmış.
Louis

2

Magento 1.9'da çoğaltamadım.

Sürüm notlarında belirtilen bunun için herhangi bir hata yoktur, ancak 1.8.0.0 sürüm notlarında aşağıdakileri buldum :

İdari Sipariş ve Alacak Dekontu Düzeltmeleri

  • Yönetici Panelini kullanarak bir sipariş oluşturduğunuzda ve bir varsayılan fatura adresi ve bir varsayılan gönderim adresi belirlediğinizde, adresler doğru şekilde kullanılır.

Muhtemelen bu ilgili ve hata da düzeltildi. Sürüm notları her zaman tam değildir.


1

Aynı sorunla en son Magento 1.9.2.4 ve 2.0.5 sürümlerinde karşılaştım.

Senaryo:

  1. Konuk sipariş verir
  2. Siparişin farklı Faturalandırma ve Gönderim adresleri var
  3. Yönetici, siparişi Yönetici Panelinde düzenler

Sonuç: Gönderim adresi kaybolur ve bunun yerine Fatura adresi gösterilir.

Sebep: _isSameAsBilling () metodu her zaman döndürür gerçek düzen Misafir tarafından verilmiş olması kaydıyla. Doğru davranış değildir.

Söz konusu yöntem:

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()));
    }

Müşterinin kayıtlı olup olmadığını görebileceğiniz gibi , Faturalandırma ve Gönderim adresleri farklı olsa bile _isSameAsBilling () yöntemi true değerini döndürür .

Orijinal Gönderim Adresi kaybolduğu için Yönetici Paneli üzerinden düzenlenen tüm siparişler üzerinde ciddi etkileri vardır.

Bu bir hata mı yoksa bir şey mi kaçırıyorum?


1

Magento 1.7 ile aynı sorunu yaşadım ve şu değişiklikle düzeltin: app / code / core / Mage / Adminhtml / Model / Sales / Order / Create.php

Sınıfın üzerine temiz bir şekilde yazmanız gerekiyor :)

Yöntemi değiştirin: _initShippingAddressFromOrder bu kodla:

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);
    }
}

Teşekkürler, bu magento kurulumu bir dizi güncelleme ve uzantıdan geçti ve artık sorunu yeniden oluşturamıyorum, bu yüzden düzeltmenizi test edemiyorum.
mendel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.