Ricalcolare le imposte se il cliente B2B cliente
-
12-12-2019 - |
Domanda
Nel mio sito web magento ho prodotti i prezzi sono comprensivi di imposta del 12,5%.Se il cliente è B2B (verrà a sapere se ha selezionato ha forma di c in onepagecheckout) quindi voglio ricalcolo imposta come segue:
- ridurre il 12,5% del prezzo del prodotto.cioèse il mio prodotto prezzo è di 50000 quindi ridurre il 12,5% da 50000
- e poi aggiungere il 2% sul prezzo dopo la riduzione del 12,5%
Per esempio:
Product Price : 50000
Base Price: 50000 - 12.5% of Product Price
CST (2%): 2% of the Base Price
Total: Base Price + CST
Per favore mi guida.
Soluzione 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
}
}
}
Altri suggerimenti
E l'impostazione di un gruppo di clienti per tutti i clienti B2B e regole fiscali?
Personalizzati il prezzo del prodotto è realizzabile mediante la scrittura di un modulo per estendere la getFinalPrice metodo Mage_Catalog_Model_Product_Type_price.
A seconda del tipo di prodotti, potrebbe essere necessario estendere altri prezzi codice come ci sono prezzi diversi metodi per configurabili e semplici prodotti.
Qui è un exceprt da un modulo ho scritto che sconti il prezzo del prodotto finale da parte di una percentuale fissa per clienti B2B.
Prima estendiamo il getFinalPrice metodo
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;
}
}
Come si può vedere il calcolo del prezzo è ora eseguita in un metodo di supporto B2BFinalPrice.Qui si può applicare la logica che determina se il cliente B2B cioèmembro di un gruppo specifico, e quindi nel tuo esempio eseguire il calcolo per il prezzo finale:
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;
}
}
Si noti che questa è la modifica del prodotto prezzo finale, non il calcolo delle imposte.In questo esempio imposta calcolata sul prezzo finale.
Se si espongono i prezzi di altri, come il livello dei prezzi in poi si sarebbe anche bisogno di eseguire questo calcolo nel frontend tema per visualizzare il livello di prezzo per i clienti B2B correttamente.
Per implementare una soluzione come questa, è necessario avere familiarità con la creazione di moduli personalizzati e per estensione Magento codice di base.
È inoltre necessario fare un sacco di test per garantire che si sta ottenendo i risultati corretti.Non vogliono fare errori con i prezzi dei prodotti!
Non ho guardato, ma si può anche trovare qualcosa di simile disponibile da Magento connect.
Spero che questo aiuta.
Si può fare riferimento a IVA esente da Milleople .Rimuove la tassa su determinate condizioni può essere credo che il tuo requisito possa essere raggiunto personalizzando un po 'l'estensione.
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