Hai tùy chọn tùy chỉnh kết hợp: Cấp giá không hoạt động


11

Tôi đang thiết lập các sản phẩm và giá theo cấp trong Magento, nhưng tôi nhận thấy rằng trong Sản phẩm đơn giản với Tùy chọn tùy chỉnh (ví dụ: áo phông màu xanh, áo phông đỏ), Cấp giá sẽ không hoạt động nếu chúng tôi kết hợp chúng để đạt được số lượng.

Giá theo cấp dường như chỉ hoạt động khi số lượng đạt được từ một biến thể sản phẩm, nhưng không phải là sự kết hợp của hai.

Tôi đã đọc một số câu trả lời trên Stack Overflow và diễn đàn Magento và họ khuyên bạn nên tạo các sản phẩm có thể định cấu hình. Tuy nhiên điều này có thể khá khó khăn nếu một cửa hàng có nhiều sản phẩm, hoặc nhiều biến thể.

Bạn có biết một số cách giải quyết khác để áp dụng Cấp giá - với sự kết hợp của các biến thể không?


Bạn có thể chính xác loại áo phông màu xanh và áo phông màu đỏ là gì? Có phải chúng là những sản phẩm đơn lẻ không có liên kết giữa chúng?
Barshe Ferreboeuf

Chúng sẽ là Tùy chọn tùy chỉnh ("Màu xanh", "Màu đỏ") của sản phẩm đơn giản "Áo phông". Trên Magento hiện tại, nếu Giá Cấp là, giả sử, "10 hoặc nhiều hơn bạn được giảm giá", nó sẽ hoạt động khi mua 10 Reds hoặc 10 Blues, nhưng không phải khi tôi mua 5 + 5 ...
Peanuts

Làm thế nào magento có thể biết rằng hai sản phẩm này được liên kết?
Barshe Ferreboeuf

Trong ví dụ của tôi chỉ có 1 sản phẩm (Sản phẩm đơn giản), có hai tùy chọn (biến thể): xanh và đỏ. Magento không tính giá theo cấp bậc khi bạn thêm hai tùy chọn của cùng một Sản phẩm đơn giản (chúng ta đang nói về Sản phẩm đơn giản ở đây, không phải Sản phẩm có thể định cấu hình). Đối với các Sản phẩm có thể định cấu hình, có một tiện ích mở rộng cho phép kết hợp Cấp giá ( magentoc Commerce.com/magento-connect/ mẹo ), nhưng một lần nữa, đây không phải là trường hợp của tôi, chúng tôi có quá nhiều tùy chọn để tạo sản phẩm cho mỗi tùy chọn).
Đậu phộng

Bạn sẽ cần một mô-đun tùy chỉnh để đạt được điều này. Hoặc nếu tôi là bạn, tôi sẽ xem xét sử dụng các sản phẩm có thể định cấu hình với mô-đun giá theo cấp mà bạn đã đề cập.
ngủ

Câu trả lời:


11

Vấn đề ở đây là Magento coi các sản phẩm có các tùy chọn tùy chỉnh khác nhau như các chi tiết đơn hàng khác nhau trong giỏ hàng. Vì vậy, qty cho hai biến thể của tùy chọn tùy chỉnh không bao giờ cộng lại để có thể đủ điều kiện cho mục báo giá cho một mức giá cụ thể theo từng cấp.

Bây giờ, làm cho công việc này sẽ liên quan đến công việc tùy chỉnh. Tôi có thể cung cấp cho bạn các gợi ý về nơi bạn có thể nhìn để làm cho nó hoạt động trong mã.

Thủ tục thanh toán Mage_Sales_Model_Quote_Address_Total_Subtotal::collect()

Trong phương pháp này, bạn sẽ cần phải lặp qua tất cả các mục trích dẫn và liên kết số lượng được áp dụng cho từng mục báo giá. Vì vậy, giả sử, bạn có hai biến thể A và B với số lượng 1 và 3. Bạn sẽ lặp qua các mục trích dẫn và làm một cái gì đó như:

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

Sau đó trong Mage_Sales_Model_Quote_Address_Total_Subtotal::_initItem

thay vì sử dụng: $finalPrice = $product->getFinalPrice($quoteItem->getQty()); //on line 115 use:

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

Điều này liên quan đến công việc tùy chỉnh nhưng cách tiếp cận mà tôi liệt kê nên hoạt động với một số điều chỉnh nhanh khi bạn thực hiện nó.


4

Tôi có thể xác nhận, điều này hoạt động

        /* 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 */ 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.