두 가지 맞춤 옵션이 결합되었습니다 : 등급 가격이 작동하지 않습니다


11

Magento에서 제품 및 등급 가격을 설정하고 있지만 맞춤 옵션이 포함 된 단순 제품 (예 : 파란색 티셔츠, 빨간색 티셔츠)에서 등급 가격을 결합하면 작동하지 않음을 확인했습니다. 수량에 도달합니다.

계층 가격은 한 제품 변형에서 수량에 도달 할 때만 작동하지만 두 가지 조합에서는 작동하지 않는 것 같습니다.

Stack Overflow와 Magento 포럼에서 몇 가지 답변을 읽었으며 구성 가능한 제품을 만드는 것이 좋습니다. 그러나 상점에 많은 제품 또는 많은 변형이있는 경우 이는 매우 어려울 수 있습니다.

여러 가지 변형 조합으로 등급 가격을 적용 할 수있는 해결 방법을 알고 있습니까?


파란색 티셔츠와 빨간색 티셔츠의 유형이 무엇인지 정확하게 알 수 있습니까? 그들 사이에 링크가없는 단일 제품입니까?
Christophe Ferreboeuf

단순 제품 "티셔츠"의 사용자 정의 옵션 ( "파란색", "빨간색")입니다. Magento에서 현재 등급 가격이 "10 이상 할인"이라고 가정하면 10 Reds 또는 10 Blues를 구매할 때 작동하지만 5 + 5를 구매할 때는 작동하지 않습니다 ...
Peanuts

magento는이 두 제품이 연결되어 있음을 어떻게 알 수 있습니까?
Christophe Ferreboeuf

내 예에는 파란색과 빨간색의 두 가지 사용자 정의 옵션 (변형)이있는 단 하나의 제품 (단순 제품)이 있습니다. Magento는 동일한 단순 제품 의 두 가지 옵션을 추가 할 때 등급 가격을 계산하지 않습니다 (우리는 구성 가능한 제품이 아니라 여기서 단순 제품에 대해 이야기하고 있습니다). 구성 가능한 제품의 경우 계층 가격 결합을 허용하는 확장 기능이 있지만 ( magentocommerce.com/magento-connect/… ) 다시 말하지만이 경우는 아닙니다. 옵션 당 제품을 만들 수있는 옵션이 너무 많습니다.
땅콩

이를 달성하려면 사용자 정의 모듈이 필요합니다. 또는 내가 당신이라면 언급 한 계층 가격 모듈과 함께 구성 가능한 제품 사용을 고려할 것입니다.
paj

답변:


11

여기서 문제는 Magento가 다른 맞춤 옵션이있는 제품을 장바구니의 다른 광고 항목으로 취급한다는 것입니다. 따라서 두 가지 유형의 맞춤 옵션에 대한 수량은 특정 계층의 가격 책정에 대해 견적 항목을 한정 할 수 없습니다.

이제이 작업을 수행하려면 사용자 지정 작업이 필요합니다. 코드에서 작동하게하는 위치에 대한 포인터를 줄 수 있습니다.

점검 Mage_Sales_Model_Quote_Address_Total_Subtotal::collect()

이 방법에서는 모든 견적 항목을 반복하고 각 견적 항목에 적용 가능한 계층 수량을 연결해야합니다. 따라서 수량 1과 3을 가진 두 가지 변형 A와 B가 있다고 가정합니다. 견적 항목을 반복하고 다음과 같은 작업을 수행합니다.

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

그런 다음 Mage_Sales_Model_Quote_Address_Total_Subtotal::_initItem

사용하는 대신: $finalPrice = $product->getFinalPrice($quoteItem->getQty()); //on line 115 use:

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

여기에는 사용자 지정 작업이 포함되지만 내가 나열하는 접근 방식은 작업하는 동안 일부 조정과 함께 작동해야합니다.


4

확인할 수 있어요

        /* 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 */ 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.