Pergunta

No meu magento site de produtos de preços, incluindo imposto de 12,5%.Se o cliente B2B (vai saber se ele seleciona ele tem a forma c no onepagecheckout) então eu quero para recalcular o imposto da seguinte forma:

  • reduzir a 12,5% do preço do produto.i.e.se o meu produto, preço 50000, em seguida, reduzir a 12,5% do 50000
  • e, em seguida, adicione a 2% sobre o preço após a redução de 12,5%

Por exemplo:

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

Por favor, guia-me.

Foi útil?

Solução 5

Eu tinha feito isso comigo, adicionando lógica personalizada no sales_quote_collect_totals_before observador

Passo 1:- Declarar Observador em 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>

Passo 2:- Declarar Observador da função em 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
        }
    }
}

Outras dicas

O que sobre a criação de um grupo de clientes para todos os clientes B2B e regras fiscais?

Personalizado de preços do produto é obtido pela escrita de um módulo para estender o getFinalPrice método em Mage_Catalog_Model_Product_Type_price.

Consoante o tipo de produtos que você tem você pode precisar estender a outra fixação do preço de código, pois há preços diferentes métodos para configurável e com produtos simples.

Aqui está um exceprt a partir de um módulo que eu escrevi que os descontos no preço final do produto por um percentual fixo para clientes B2B.

Primeiro gostaríamos de estender o 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 você pode ver, o cálculo do preço agora é realizada em um método auxiliar B2BFinalPrice.Aqui você pode aplicar a lógica que determina se o cliente B2B, i.é.membro de um grupo específico e, em seguida, no seu exemplo executar o cálculo para o preço 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;
    }
}

Note que este é alterar o preço final do produto, e não o cálculo do imposto.Neste exemplo, o imposto seria calculado sobre o preço final.

Se você está exibindo o preço de outros bens, tais como nível de preços, em seguida, você também precisará para realizar este cálculo em sua interface tema para exibir o nível de preços para clientes B2B corretamente.

Para implementar uma solução como esta, você precisa estar familiarizado com a criação de módulos personalizados e estendendo Magento núcleo código.

Você também precisa fazer um monte de testes para garantir que você está recebendo os resultados corretos.Você não quer cometer erros com preços do produto!

Eu ainda não olhei, mas você também pode encontrar algo semelhante disponível a partir do Magento connect.

Espero que isso ajude.

Você pode, por favor, consulte Iva isento por Milople.Ele remove imposto sobre determinada condição pode ser que eu acho que sua Exigência pode ser alcançar personalizando a extensão de um bit.

Você pode adicionar um shopping de preços de regra sob a qual pode ser encontrado em:

Promotions->Shopping Cart Price Rule 

e colocar essa regra em determinados grupos de clientes que você vai criar.O cliente de grupo está localizada em:

Customers->Customer Groups
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top