견적에 사용자 정의 총 필드를 추가하는 Magento 용 추가 모듈을 만들었습니다. 추가 요금은 세금을 포함하여 Magento에 입력됩니다. 견적서에 추가 요금을 추가 한 모듈을 성공적으로 가져 왔으며 총액은 결제 페이지에서 정확합니다.Magento - 사용자 견적 합계 필드에 세금 적용
세금이 세금 계산서에 적용되어 계산대 페이지의 세금 필드에 포함되고 표시 될 때 문제가 발생합니다. 현재 제품 및 배송비에 대한 세금 만 포함됩니다.
나는 세금을 계산할 수 있었지만 견적에 세금을 부과 할 수 없기 때문에 세금 필드에 표시 될뿐만 아니라 내 접근법도 올바르지 않다고 생각합니다. 어떤 도움이라도 대단히 감사 할 것입니다.
class ********_Deposits_Model_Quote_Address_Total_Surcharge extends Mage_Sales_Model_Quote_Address_Total_Abstract {
protected $_config = null;
public function __construct()
{
$this->setCode('surcharge_price');
$this->_config = Mage::getSingleton('tax/config');
$this->_store = Mage::app()->getStore();
}
protected function _calculateTax(Mage_Sales_Model_Quote_Address $address)
{
$calculator = Mage::getSingleton('tax/calculation');
$inclTax = $this->_config->priceIncludesTax($this->_store);
$taxRateRequest = $calculator->getRateRequest(
$address,
$address->getQuote()->getBillingAddress(),
$address->getQuote()->getCustomerTaxClassId(),
$this->_store
);
$taxRateRequest->setProductClassId(Mage::getStoreConfig('********/surcharges/tax_class', $this->_store));
$rate = $calculator->getRate($taxRateRequest);
$baseTax = $tax = $calculator->calcTaxAmount($address->getBaseSurchargePriceAmount(), $rate, $inclTax, true);
}
/**
* Collect address subtotal
*
* @param ********_Surcharges_Model_Quote_Address $address
* @return ********_Surcharges_Model_Quote_Address_Total_Surcharge
*/
public function collect(Mage_Sales_Model_Quote_Address $address)
{
parent::collect($address);
$this->_setAmount(0)->_setBaseAmount(0);
// If Surcharges Is Enabled Then Calculate Away :-)
if(Mage::getStoreConfig('********/surcharges/surcharge_enabled')) {
$items = $this->_getAddressItems($address);
if (!count($items)) {
return $this;
}
// Calculate Total Surcharge For Items In Quote (Base Prices!)
$surcharge = 0.0;
foreach ($items as $item) {
$price = $item->getData('base_surcharge_price', null);
if(isset($price)) {
$surcharge += $item->getData('base_surcharge_price') * $item->getQty();
}
}
$this->_setAmount($surcharge);
$this->_setBaseAmount($surcharge);
$this->_calculateTax($address);
}
return $this;
}
public function fetch(Mage_Sales_Model_Quote_Address $address)
{
if(Mage::getStoreConfig('********/surcharges/surcharge_enabled')) {
$surcharge = $address->getSurchargePriceAmount();
if(isset($surcharge) && $surcharge > 0) {
$address->addTotal(array(
'code' => $this->getCode(),
'title' => Mage::getStoreConfig('********/surcharges/surcharge_label'),
'value' => $surcharge
));
}
}
return $this;
}
public function getLabel()
{
return Mage::getStoreConfig('********/surcharges/surcharge_label');
}
안녕 애슐리 당신은이 작업을 얻을 관리 않았다? –
안녕하세요 조나단. 나는 세수 금액 아들을 주소 개체로 효과적으로 재 계산함으로써 결국했다. 아래 게시물을 참조하십시오! – Ashley