Magento по-прежнему отображает НДС / налог при оформлении заказа, даже если он отключен через администратора

У меня есть Magento, настроенный так, чтобы не отображать НДС при оформлении заказа, но он все равно добавляется в итоге. Это не добавляет его к общему количеству - что является правильным.

Например, если у меня есть товар, который стоит 5 фунтов стерлингов - с 20% НДС, то это 6 фунтов стерлингов, и это должно быть указано в ценах каталога - что он и делает. Теперь при оформлении заказа этот товар будет отображаться как £6, затем £1 НДС, а затем показывает общую сумму, которая составляет £6..? Кто-нибудь еще видел это?

4 ответа

Решение

В конце концов, единственным способом, которым я решил это, было удаление налога с magento и отметка поля, в котором указано, что цены, которые мы представляем, содержат налог. Не идеально.

Чтобы скрыть налоговые комментарии в /app/code/local/Mage/Sales/Model/Quote/Address/Total/Tax.php в конце файла:

public function fetch(Mage_Sales_Model_Quote_Address $address)
    {
        $applied = $address->getAppliedTaxes();
        $store = $address->getQuote()->getStore();
        $amount = $address->getTaxAmount();

 /*       if (($amount!=0) || (Mage::helper('tax')->displayZeroTax($store))) {
            $address->addTotal(array(
                'code'=>$this->getCode(),
                'title'=>Mage::helper('sales')->__('Tax'),
                'full_info'=>$applied ? $applied : array(),
                'value'=>$amount
            ));
        }  */
        return $this;
    } 

Чтобы включить налог в стоимость доставки, измените файл /app/code/local/Mage/Sales/Model/Quote/Address/Total/Subtotal.php в конце файла.

public function fetch(Mage_Sales_Model_Quote_Address $address)
    {
        $amount = $address->getShippingAmount();
        if ($amount!=0 || $address->getShippingDescription()) {
            $address->addTotal(array(
                'code'=>$this->getCode(),
                'title'=>Mage::helper('sales')->__('Shipping & Handling').' ('.$address->getShippingDescription().')',
// OLD          'value'=>$address->getShippingAmount()
                'value'=>number_format($address->getShippingAmount() + $address->getShippingTaxAmount(), 2)
            ));
        }
        return $this;
    } 

Чтобы включить налог в промежуточный итог, измените в /app/code/local/Mage/Sales/Model/Quote/Address/Total/Subtotal.php в конце файла:

public function fetch(Mage_Sales_Model_Quote_Address $address)
    {
        $address->addTotal(array(
            'code'=>$this->getCode(),
            'title'=>Mage::helper('sales')->__('Subtotal'),
// OLD      'value'=>$address->getSubtotal()
            'value'=>number_format($address->getSubtotal() + $address->getTaxAmount() - $address->getShippingTaxAmount(), 2)
        ));
        return $this;
    } 

Я только что натолкнулся на ту же проблему на Magento 1.6.2 - я ценю, что OP больше не хочет ответа, однако он может помочь кому-то другому в свое время.

Предполагая, что вы просто хотите изменить вывод, а не корректировать какие-либо вычисления, тогда мы можем посмотреть на корректировку вывода в файлах шаблонов (.phtml).

Это имеет простое преимущество в том, что оно не влияет на что-либо еще, что может использовать функцию.

С подсказками шаблонов и посещением корзины, чтобы увидеть вывод, мы видим, что используемый шаблон:

интерфейс / базы / по умолчанию / шаблон / налог / выписка /tax.phtml

а также

интерфейс / базы / по умолчанию / шаблон / налог / выписка / subtotal.phtml

Как и в базовой версии, мы сделаем их копию на локальный (я предполагаю default / default), прежде чем мы внесем какие-либо изменения. Так что создайте внешний интерфейс / default / default / template /tax / checkout /tax.phtml & frontend / default / default / template /tax / checkout / subtotal.phtml с тем же содержанием.

Затем сделайте следующие правки в файлах - в обоих случаях закомментируйте строку, производящую вывод (просто проследите логику, если ваши настройки не совпадают с моими).

внешний интерфейс / default / default / template /tax / checkout /tax.phtml (строки с 46 по 55)

    <!--<tr <?php if ($this->helper('tax')->displayFullSummary() && $_value!=0): ?> class="summary-total" onclick="expandDetails(this, '.summary-details-<?php echo $taxIter;?>')"<?php endif; ?>>
<td style="<?php echo $_style . 'display:none;' ?>" class="a-right" colspan="<?php echo $this->getColspan(); ?>">
    <?php if ($this->helper('tax')->displayFullSummary()): ?>
        <div class="summary-collapse"><?php echo $this->getTotal()->getTitle() ?></div>
    <?php else: ?>
        <?php echo $this->getTotal()->getTitle() ?>
    <?php endif;?>
</td>
<td style="<?php echo $_style . 'display:none;' ?>" class="a-right"><?php echo $this->helper('checkout')->formatPrice($_value) ?></td>

->

внешний интерфейс /default/default/template/tax/checkout/subtotal.phtml (строки: от 48 до 57)

    <?php else : ?>
    <!--<tr>
<td style="<?php echo $this->getStyle() ?>" class="a-right" colspan="<?php echo $this->getColspan(); ?>">
    <?php echo $this->getTotal()->getTitle() ?>
</td>
<td style="<?php echo $this->getStyle() ?>" class="a-right">
    <?php echo $this->helper('checkout')->formatPrice($this->getTotal()->getValue()) ?>
</td>
    </tr>-->
    <?php endif;?>

В первую очередь может возникнуть базовая настройка или логическая проблема, вызывающая этот вывод, однако этот метод подавит вывод, который вам не нужен.

На скриншоте вашей конфигурации я видел, что цены в "настройках отображения корзины покупок" настроены для отображения с учетом налогов. Если я вас правильно понимаю, я думаю, вам следует установить это значение "Без учета налогов" (для цен и промежуточных итогов).

Другие вопросы по тегам