Пересчитать налоги, если клиент является клиентом клиента B2B
-
12-12-2019 - |
Вопрос
В моем сайте Magento у меня цены на товары, включая налог 12,5%. Если клиент B2B (будет знать, если он выберет его в форме в OnePageChount), то я хочу пересчитать налог следующим образом:
- .
- уменьшить 12,5% от цены продукта.I. Если цена моей продукции 50000, затем уменьшите 12,5% от 50000
- , а затем добавьте 2% по цене после сокращения 12,5%
Например:
Product Price : 50000
Base Price: 50000 - 12.5% of Product Price
CST (2%): 2% of the Base Price
Total: Base Price + CST
.
Пожалуйста, проведите меня.
Решение 5
I had done this with myself by adding custom logic in the sales_quote_collect_totals_before observer
Step 1:- Declare Observer in config.xml
<events>
<sales_quote_collect_totals_before>
<observers>
<new_tax>
<type>singleton</type>
<class>Neo_Cform_Model_Observer</class>
<method>newTax</method>
</new_tax>
</observers>
</sales_quote_collect_totals_before>
</events>
Step 2:- Declare Observer's function in Observer.php
public function newTax($observer){
$quote = $observer->getQuote();
foreach ($quote->getAllItems() as $quoteItem) {
if ($quote->getData('customer_cform') === 'true') { // check if customer is b2b customer and selects for the cform option
$product = $quoteItem->getProduct();
$product->setTaxClassId(0); // tax class removed.now the price is with no tax
$basePrice = $product->getFinalPrice() / (1+(12.5/100)); // calcuated 12.5 % of total price and subtracted from the price to get base price
$final_cst_price = $basePrice * (2/100); // added 2% in the base price to get fincal cst price
$finalPrice = $basePrice + $final_cst_price;
$product->setPrice($basePrice);
$product->setTaxClassId(8); // here 8 is a tax rule defined in the magento admin just to show the split of base price and tax (2%) in the cart page and checkout page
}
}
}
Другие советы
Как насчет создания группы клиентов для всех клиентов B2B и налоговые правила?
Ценообразование пользовательских продуктов достижимо, написав модуль для расширения метода GetFinalPrice в Mage_catalog_model_Product_type_price.
В зависимости от типа продуктов, которые вам могут потребоваться продлить другой код ценообразования, поскольку существуют различные методы цен на настраиваемые и простые продукты.
Вот ExcePrt из модуля, который я написал, что скидки окончательный цена продукта на фиксированный процент для клиентов B2B.
Сначала мы расширим метод GetFinalPrice
class PAJ_Price_Model_Simple extends Mage_Catalog_Model_Product_Type_Price
{
public function getFinalPrice($qty = null, $product)
{
if (is_null($qty) && !is_null($product->getCalculatedFinalPrice())) {
return $product->getCalculatedFinalPrice();
}
$finalPrice = $this->getBasePrice($product, $qty);
$product->setFinalPrice($finalPrice);
Mage::dispatchEvent('catalog_product_get_final_price', array('product' => $product, 'qty' => $qty));
$finalPrice = $product->getData('final_price');
$finalPrice = $this->_applyOptionsPrice($product, $qty, $finalPrice);
$finalPrice = max(0, $finalPrice);
// get B2B Final Price
if ($_B2BFinalPrice=Mage::helper('PAJ_Price/B2BFinalPrice')->getB2BFinalPrice($product,$finalPrice)) { return max(0, $_B2BFinalPrice); }
$product->setFinalPrice($finalPrice);
return $finalPrice;
}
}
.
Как вы можете увидеть, что расчет цен в настоящее время выполняется в помощнике метода B2BFinalPrice. Здесь вы можете применить логику, которая определяет, является ли клиент B2B I.e. Член конкретной группы, а затем в вашем примере выполняет расчет для окончательной цены:
class PAJ_Price_Helper_B2BFinalPrice extends Mage_Core_Helper_Abstract
{
public function getB2BFinalPrice($product,$finalPrice)
{
$basePrice=$finalPrice - ($finalPrice * (12.5/100));
$cst=$basePrice + ($basePrice * (2/100));
$finalPrice=$basePrice+$cst;
return $finalPrice;
}
}
.
Обратите внимание, что это изменяет окончательную цену продукта, а не налоговый расчет. В этом примере налог затем будет рассчитываться по окончательной цене.
Если вы отображаете другие цены, такие как цены на уровни, вам также нужно будет выполнить этот расчет в теме Frontend, чтобы правильно отобразить ценообразование уровня для клиентов B2B.
Для реализации решения, подобного этому, вы должны быть знакомы с созданием пользовательских модулей и расширяя основной код Magento.
Вам также нужно много тестирования, чтобы убедиться, что вы получаете правильные результаты. Вы не хотите делать никаких ошибок с ценообразованием продукта!
Я не посмотрел, но вы также можете найти что-то подобное доступное из Magento Connect.
Надеюсь, это поможет.
Вы можете, пожалуйста, обратитесь на НДС освобожден от Milople ОтказОн удаляет налог на определенное условие, возможно, я думаю, ваше требование может быть достигнуто, настраивая расширение немного.
You can add a shopping price rule under which can be found under:
Promotions->Shopping Cart Price Rule
and then place that rule at certain customer group that you will create. The customer group is located under:
Customers->Customer Groups