Пересчитать налоги, если клиент является клиентом клиента B2B

magento.stackexchange https://magento.stackexchange.com//questions/67722

Вопрос

В моем сайте 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top