2011-09-21 5 views
0

몇 가지 맞춤형 가격 조정을 위해 주문 전체 모듈을 만들려고합니다. 그냥이 작업을 시작하기 위해 모든 주문에 20 달러를 추가하려고합니다. (결국 실제 로직을 넣습니다.)Magento에서 주문 총액 생성에 관한 질문 사항

내가 만든 모듈에 문제가 있습니다. 첫 번째 문제는 두 번 실행되는 것으로 보입니다 (그래서 $ 20 대신 40 달러를 버는 것입니다 - 로깅은 수집 및 가져 오기 메소드가 두 번 실행되는 것을 보여 줬습니다)

두 번째 문제는 할인 광고 항목이 총합계 줄 아래에 표시됩니다.

누군가 내가 여기서 잘못하고있는 것을 말해 줄 수 있습니까? 내 config.xml 및 주문 총 클래스의 내용은 아래와 같습니다.

은 "더블"문제에 관한 config.xml의 내용은

<global> 
    <sales> 
     <quote> 
      <totals> 
       <mud> 
        <class>Wpe_Multiunitdiscount_Model_Multiunitdiscount</class> 
        <before>grand_total</before> 
       </mud> 
      </totals> 
     </quote> 
    </sales>  
</global> 

Wpe_Multiunitdiscount_Model_Multiunitdiscount 내용

class Wpe_Multiunitdiscount_Model_Multiunitdiscount extends Mage_Sales_Model_Quote_Address_Total_Abstract { 

public function collect(Mage_Sales_Model_Quote_Address $address) { 
    $address->setGrandTotal($address->getGrandTotal() + 20); 
    $address->setBaseGrandTotal($address->getBaseGrandTotal() + 20); 
    return $this; 
} 

public function fetch(Mage_Sales_Model_Quote_Address $address) { 
    $address->addTotal(array(
     'code' => $this->getCode(), 
     'title' => Mage::helper('sales')->__('Super Tax'), 
     'value' => 20, 
    )); 
    return $this; 
} 
} 

답변

1

, 지금까지의 내가 그것을 이해, 그것의 젠토는 배송 한 번, 두 번 전체를 수집하기 때문에 청구서 수신 주소에 대해 한 번.
내가 이것을 관리 할 수있는 더 좋은 방법이 있어야한다 확신 해요,하지만 지금 내가 수집 방법의 첫 번째 줄에 추가 한 :

if ($address->getData('address_type')=='billing') return $this; 

그리고 "위치"에 대한, 당신은 시도해야 예를 들어 "세금"이라고합시다.)?
HTH

+0

고마워요. tty는 Magento가 그런 식으로 작동한다는 것이 이상합니다.하지만 Magento에 대해 생각한 것은 이번이 처음이 아닙니다. –

+0

나는 언젠가 내가 왜 그 이유를 이해할 것이라고 생각하는 것을 선호한다. – OSdave

+0

당신은 여전히 ​​총계를 수정할 수 없다는 것을 알기 위해이 잘못된 길로 계속 ​​가고있다! – Kenny

0

사용자 지정 합계를 추가 할 때 다른 합계를 건드릴 수 없습니다. 이 스레드에 대한 자세한 내용 : Magento upfront payment

+0

여기서 함수는 magento로 정의됩니다. "getInvoiceTaxAmount", "getBaseInvoiceFeeExcludedVat"magento에서이 함수를 찾을 수 없습니다. 누구인지 설명하고 사용법을 설명 할 수 있습니다. –

+0

Magento의 마법 함수입니다. – Kenny

+0

Magento에서 모든 마법 기능과 그 의미를 어디에서 어떻게 알 수 있습니까? –