Pregunta

En mi sitio web de MAGENTO, los precios de los productos incluyen impuestos de 12.5%. Si el cliente es B2B (llegará a saber si selecciona, él tiene C forma en el OnePagecheckout), entonces quiero volver a calcular el impuesto de la siguiente manera:

  • Reduce el 12.5% del precio del producto.es decir, si mi precio del producto es 50000, entonces reduce el 12.5% del 50000
  • y luego agregue el 2% en el precio después de la reducción del 12.5%

Por ejemplo:

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

por favor guíame.

¿Fue útil?

Solución 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
        }
    }
}

Otros consejos

¿Qué hay de configurar un grupo de clientes para todos los clientes B2B y las reglas de impuestos?

Los precios de los productos personalizados se pueden lograr escribiendo un módulo para ampliar el método GetFinalprice en MAGE_CATALOG_MODEL_PRODUCT_TYPE_PRICE.

Dependiendo del tipo de productos que tiene es posible que deba extender otro código de precios, ya que hay diferentes métodos de precio para productos configurables y simples.

Aquí hay una exceprt de un módulo que escribí que descuenta el precio final del producto por un porcentaje fijo para los clientes B2B.

Primero extendemos el método 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;
    }
}

Como puede ver el cálculo del precio ahora se realiza en un método de ayudante B2BFINALPRICE. Aquí puede aplicar la lógica que determina si el cliente es B2B I.E. Miembro de un grupo específico, y luego en su ejemplo, realice el cálculo para el precio 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;
    }
}

Tenga en cuenta que esto está cambiando el precio final del producto, no el cálculo de impuestos. En este ejemplo, el impuesto se calculará en el precio final.

Si está mostrando otros precios, como los precios de los niveles, entonces también deberá realizar este cálculo en su tema de Frontend para mostrar los precios de los niveles para los clientes B2B correctamente.

Para implementar una solución como esta, debe estar familiarizado con la creación de módulos personalizados y extendiendo el código principal de Magento.

También debe hacer muchas pruebas para asegurarse de que está obteniendo los resultados correctos. ¡No quiere cometer errores con los precios del producto!

No he mirado, pero también puede encontrar algo similar disponible en Magento Connect.

Espero que esto ayude.

Puede consultar IVA exento de MILOPLE .Elimina el impuesto sobre cierta condición puede ser, supongo que su requisito se puede lograr al personalizar un poco la extensión.

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top