Question

Dans mon site Web Magento, j'ai des prix des produits incluant une taxe de 12,5%. Si le client est B2B (viendra savoir s'il choisit il a un formulaire C dans l'onepagecheckout), je souhaite recalculer la taxe comme suit:

  • Réduisez les 12,5% du prix du produit.I.e. Si le prix de mon produit est 50000, réduisez 12,5% du 50000
  • puis ajoutez les 2% sur le prix après réduction de 12,5%

Par exemple:

Product Price : 50000
Base Price: 50000 - 12.5% of Product Price
CST (2%): 2% of the Base Price
Total: Base Price + CST

Merci de me guider.

Était-ce utile?

La solution 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
        }
    }
}

Autres conseils

Qu'en est-il de la mise en place d'un groupe de clients pour tous les clients et règles fiscales de B2B?

La tarification du produit personnalisé est réalisable en écrivant un module pour étendre la méthode GetFinalprice dans mage_catalog_model_product_type_price.

Selon le type de produits, vous devrez peut-être étendre un autre code de tarification car il existe différentes méthodes de prix pour les produits configurables et simples.

Voici une excepe à partir d'un module que j'ai écrit qui réduit le prix final du produit par un pourcentage fixe pour les clients B2B.

Premièrement, nous étendons la méthode 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;
    }
}

Comme vous pouvez le constater que le calcul du prix est maintenant effectué dans une méthode d'assistance B2BFinalPrice. Ici, vous pouvez appliquer la logique qui détermine si le client est B2B I.e. Membre d'un groupe spécifique, puis dans votre exemple effectuer le calcul du prix final:

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;
    }
}

Notez que cela change le prix final du produit et non le calcul de la taxe. Dans cet exemple, la taxe serait alors calculée sur le prix final.

Si vous affichez d'autres prix, tels que les prix des niveaux, vous devez également effectuer ce calcul dans votre thème avant pour afficher la tarification des niveaux de niveau pour les clients B2B correctement.

Pour mettre en œuvre une solution comme celle-ci, vous devez connaître la création de modules personnalisés et l'extension du code de base de Magento.

Vous devez également faire beaucoup de tests pour vous assurer d'obtenir les résultats corrects. Vous ne voulez pas faire d'erreurs avec la tarification du produit!

Je n'ai pas regardé mais vous pouvez également trouver quelque chose de similaire disponible à partir de Magento Connect.

J'espère que cela aide.

Vous pouvez vous référer à vous référer TVA exonérée par Milople .Il supprime la taxe sur certaines conditions peut être je suppose que votre exigence peut être réalisée en personnalisant un peu l'extension.

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top