Birden fazla gönderi adresi için bir siparişin bölünmesine izin vermenin bir yolunu bulmaya çalışıyorum, ancak ücreti müşteriye bir kerelik ödeme olarak tutmak Her gönderi için ayrı ayrı ücret almak zorunda. Bunu yapmanın bir yolu var mı? Şu anda, müşteriler siparişlerin çoğunu daha küçük olanlara böldüklerinden, müşterilere "çoklu siparişler" e karşılık gelen bir çok kez ödeme yapılmaktadır. Bu, kredi kartı şirketi tarafındaki bir sorundur çünkü kartta ardı ardına çok fazla ücret alınmasından şüpheleniyorlar. Herhangi bir fikrin var mı?magento - birden çok adrese gönderim, ancak ödemeyi tek bir ücretle bekletme
cevap
Bu seçenek etkin olduğundan emin olun:
yanılmıyorsam, müşterinin kendisine gösterilen olmaz birden adresleri seçeneğine bir sayfa çıkış düğmesine, gemiyi tıkladığında. Ama eğer ana ödeme düğmesine tıklarsa yapardı.
, müşterinin birden fazla adresle ödeme yapabilmesini istiyorum. Soru, magento'nun ödeme işlemini nasıl gerçekleştirdiği ile ilgilidir - malların ne kadarının gönderileceğine göre, esasen ne yaptığı, siparişi bir dizi siparişe ayırır. Bu siparişlerin her biri ayrı ayrı faturalandırılır. Müşterinin, yaptığı sipariş için birden fazla adrese gönderdiği kredi kartından sadece bir ödeme almasını istiyorum. – helefa
Aynı şekilde @helefa herhangi bir tavsiye ister misiniz? –
soruya cevap vermiyor –
Dürüst olmak gerekirse, tam bir çözüm sunamayacağım, çözüm biraz zaman alır ve test eder, ancak doğru yöne yönlendirebilecek kapsamlı bilgiler vereceğim yerine.
Temel olarak, öntanımlı olarak - varsayılan Magento'da bunu yapmak için bir seçenek yoktur.
Bunun yerine, Mage_Checkout_Model_Type_Multishipping
adlı belirli bir modeli yeniden yazacağız. Bir modeli yeniden yazmanın uygun yoluna giriyorsanız, lütfen this post by Inchoo'u okuyun.
Ama tembel ve yeniden hızlı bir şekilde bakarak eğer yukarıdaki iki ya bitirdikten sonra, ardından app/code/local/Mage/Checkout/Model/Type/Multishipping.php
için dosyanın tamamını app/code/core/Mage/Checkout/Model/Type/Multishipping.php
kopyalamak lütfen, bir şeyler yeniden geçebiliriz Bu sınıfa ihtiyacımız var. line 498
etrafında fonksiyonunu kontrol edin:
public function createOrders()
{
$orderIds = array();
$this->_validate();
$shippingAddresses = $this->getQuote()->getAllShippingAddresses();
$orders = array();
if ($this->getQuote()->hasVirtualItems()) {
$shippingAddresses[] = $this->getQuote()->getBillingAddress();
}
try {
foreach ($shippingAddresses as $address) {
$order = $this->_prepareOrder($address);
$orders[] = $order;
....
}
foreach ($orders as $order) {
$order->place();
$order->save();
...
}
....
Mage::dispatchEvent('checkout_submit_all_after', array('orders' => $orders, 'quote' => $this->getQuote()));
return $this;
} catch (Exception $e) {
Mage::dispatchEvent('checkout_multishipping_refund_all', array('orders' => $orders));
throw $e;
}
}
yüzden açıkça ödeme modülleri tarafından izlenir checkout_submit_all_after
olayı tetikler sonra (en önemli kısmı) her adres için bir sipariş yaratmaya çalıştığını ve var olduğunu burada görebilirsiniz (Sipariş ve teklif bilgileri mevcut/aktif ödeme modüllerinin tümüne aktarılır ve gönderilen olayın alınmasını sağlayan belirli bir ödeme modülünün işleyip işlemeyeceğini belirleyecektir). Bir düzene tekrar o zaman, sadece bir düzende yaşamaya denemek ve sadece tüm öğeleri birleştirmek createOrders
rutin yazabiliriz eğer
1.): Bunu akılda tutarak
, artık birkaç seçenek olabilir ,->place()
, daha sonra iyi bir ölçü için dispatchEvent öğesine geçin.
- sonra ilk ödeme oluşturmak içine bağlamak: aşağıdakilerden birini yapabilirsiniz ince şans var gibi kıvrık hale budur - Birden çok sipariş gerekiyorsa, iyi
2.) Siparişler (hemen hemen imkansız)
- emirleri oluşturmak için ve başka bir 'birleştirilmiş' siparişinde dispatchEvent içine geçeceksiniz. pis ve/veya yanlış sesler bu yüzden belki rahatsız etmeyin?
Evet, sizler burada çok fazla şey soruyorsunuz, bu yüzden yapabileceğim en iyi şey, ilk önce ciddi hasarlar verebileceğiniz bir yere ışık tutmaktır. Bunu kendim yapardım, ama maaşımın üstünde.
Bazı ek işaretçileri:
- , sağ sipariş oluşturulduktan sonra oturumu yöntemlerine dikkat edin onlar da ayrıca
- kurşun tüm gönderilen olaylara karşı dikkatli olun nerede olduğunu biliyorum. Hepsinin neden orada olduklarını ve nerede olduklarını biliyorlar.
İyi şanslar!
- 1. Birden çok değişken aynı adrese sahip, ancak değil mi?
- 2. Tek bir gönderim() çağrısı kullanarak birden fazla datagram gönderilsin mi?
- 3. Birden çok adrese/alıcıya bir e-posta gönderilemiyor C#
- 4. Tek etki alanında birden fazla magento mağazası
- 5. Magento: Mevcut sipariş üzerinde gönderim yöntemini değiştir
- 6. Tek bir sayfada birden çok Dropzone
- 7. Tek bakışta birden çok yineleme -
- 8. Birden çok satırdan tek bir satır oluşturma
- 9. Tek bir yöntemde birden çok yönü
- 10. Magento - Bir ürünle birden çok görüntü tipi ekleme
- 11. Hazırda Bekletme: Bir öğede birden çok filtre var
- 12. PayPal ödemeyi entegre etme
- 13. Magento seçili gönderim ve faturalama yöntemi adres alanlarını seç
- 14. Birden çok görüntülü tek xib tekil
- 15. Split Rx Birden çok akışa gözlenebilir ve tek tek işlenebilir
- 16. Magento birden veritabanı işlemleri
- 17. Birden çok/tek Linq için SQL DataContext
- 18. Tek bölmede birden çok denetim nasıl yerleştirilir?
- 19. Tek arabirim ile birden çok uygulama kaydetme
- 20. Birden çok çekirdek veya Tek çekirdek yazma
- 21. Tek örnekli birden çok Neo4j veritabanı
- 22. Birden çok sunucuda tek iş yürütme
- 23. Tek .msi paketinde birden çok .exe paketleme
- 24. AJAX işlevi birden fazla gönderim işlemez.
- 25. Tek Parçada Birden Çok Geri Dönüşümcüsünü Görüntüle
- 26. Hazırda bekletme çok yavaş
- 27. Android'in SQLite veritabanına tek bir ad eklemeye çalışıyorum, ancak aynı adla birden çok giriş ekliyor
- 28. Neden Java birden çok parametre alabilir, ancak yalnızca tek bir nesneyi döndürebilir?
- 29. Tek tek yürütülemeyen kod işaretleyicide birden çok sorgu yürütme
- 30. Javascript FileReader API'sı ile birden çok dosyayı tek tek okumak
Bir çözüm buldunuz mu? –