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;?>
В первую очередь может возникнуть базовая настройка или логическая проблема, вызывающая этот вывод, однако этот метод подавит вывод, который вам не нужен.
На скриншоте вашей конфигурации я видел, что цены в "настройках отображения корзины покупок" настроены для отображения с учетом налогов. Если я вас правильно понимаю, я думаю, вам следует установить это значение "Без учета налогов" (для цен и промежуточных итогов).