İki Özel Seçenek birleştirildi: Katman Fiyatı çalışmıyor


11

Magento'da ürün ve katman fiyatları ayarlıyorum, ancak Özel Seçeneklere sahip Basit Ürün'te (örnek: mavi tişört, kırmızı tişört), bunları birleştirirsek Katman Fiyatı'nın işe yaramayacağını fark ettim miktar ulaşmak için.

Katman Fiyatları, yalnızca bir ürün varyasyonundan miktara ulaşıldığında çalışır, ancak ikisinin bir kombinasyonu değildir.

Stack Overflow ve Magento forumlarında birkaç cevap okudum ve yapılandırılabilir ürünler oluşturmanızı tavsiye ediyorlar. Ancak, bir mağazada çok fazla ürün veya çok sayıda varyasyon varsa bu oldukça zor olabilir.

Katman Fiyatının uygulanmasını sağlamak için bazı varyasyonlar biliyor musunuz?


Mavi tişört ve kırmızı tişörtün türü nedir? Aralarında bağlantısı olmayan tek ürünler mi?
Christophe Ferreboeuf

Bunlar, Basit Ürün "T-Shirt" nin Özel Seçenekleri ("Mavi", "Kırmızı") olacaktır. Şu anda Magento'da, Tier Price, "10 veya daha fazla indirim alırsanız" diyelim, 10 Kırmızı veya 10 Blues satın alırken çalışır, ancak 5 + 5 satın aldığımda olmaz ...
Fıstık

Magento bu iki ürünün bağlantılı olduğunu nasıl bilebilir?
Christophe Ferreboeuf

Örneğimde, iki özel seçeneğe (varyasyon) sahip sadece 1 ürün (Basit Ürün) var: mavi ve kırmızı. Aynı Basit Ürünün iki seçeneğini eklediğinizde Magento sıralı bir fiyat hesaplamaz (burada Yapılandırılabilir Ürünler değil Basit Ürünler'den bahsediyoruz). Yapılandırılabilir Ürünler için, Katman Fiyatı birleştirmesine izin veren bir uzantı var ( magentocommerce.com/magento-connect/… ), ancak yine de bu benim durumum değil, seçenek başına ürün oluşturmak için çok fazla seçeneğimiz var).
Fıstık

Bunu başarmak için özel bir modüle ihtiyacınız olacak. Ya da ben siz olsaydım, bahsettiğiniz katman fiyat modülü ile yapılandırılabilir ürünler kullanmayı düşünürdüm.
paj

Yanıtlar:


11

Buradaki sorun, Magento'nun farklı özel seçeneklere sahip ürünleri sepetteki farklı satır öğeleri gibi ele almasıdır. Bu nedenle, özel seçeneklerin iki varyantının miktarı, belirli bir kademeli fiyatlandırma katmanı için teklif öğesini nitelemek için asla toplanmaz.

Şimdi, bu işi yapmak özel işleri içerecektir. Kodda çalışması için nereye bakacağınıza dair işaretçiler verebilirim.

Ödeme Mage_Sales_Model_Quote_Address_Total_Subtotal::collect()

Bu yöntemde, tüm teklif kalemleri arasında geçiş yapmanız ve teklif kalemlerinin her biri için geçerli olan katmanlı miktarı bağlamanız gerekecektir. Diyelim ki, 1 ve 3 numaralı iki A ve B varyantınız var.

$quoteItemA->setTieredQty(1+3);
$quoteItemB->setTieredQty(1+3); //ofcourse 1 and 3 are dynamic here

Daha sonra Mage_Sales_Model_Quote_Address_Total_Subtotal::_initItem

kullanmak yerine: $finalPrice = $product->getFinalPrice($quoteItem->getQty()); //on line 115 use:

$finalPrice = $product->getFinalPrice($quoteItem->getTieredQty());

Bu özel çalışmayı içerir, ancak listelediğim yaklaşım, üzerinde çalışırken bazı ayarlamalar ile çalışmalıdır.


4

Onaylayabilirim, bu işe yarıyor

        /* hard coded - start */ 
        $cart = Mage::getModel('checkout/cart')->getQuote();
        $total_qty = 0;
        foreach ($cart->getAllItems() as $item2) {
          if ($item2->getProductId() == $quoteItem->getProductId()) $total_qty+= $item2->getQty();    
        }
        $finalPrice = $product->getFinalPrice($total_qty);
        // $finalPrice = $product->getFinalPrice($quoteItem->getQty());
        /* hard coded - end */ 
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.