Как отображать цену продукта с и без налога одновременно в списке продуктов для Prestashop?

В списке продуктов мне нужно отображать цену продукта одновременно и без налога.

Я использую версию 1.6 Prestashop.

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

Как я могу это сделать? Я искал решение и не смог найти для меня рабочего решения.

Найдите в блоке product-list.tpl следующий блок:

 {foreach from=$products item=product name=products} 

Добавьте это, чтобы показать цену без налога:

 {convertPrice price=$product.price_tax_exc} 

Убедитесь, что во время разработки для Template compilation установлено значение « Force compilation а в Cache установлено значение « No в бэк-офисе PrestaShop -> « Advanced Parameters -> « Performance .

В моем случае он работает по умолчанию, исключая:

 {convertPrice price=$product->getPrice(false, $smarty.const.NULL)} ({ls='tax excl.'}) 

Вы можете использовать профессиональный инструмент со множеством опций для отображения двойной цены (с учетом налогов и налогов). Вы можете найти его в магазине prestashop addons с названием «Dual display of Tax included and Tax excluded prices».

У меня есть аналогичная проблема в списке заказов перед оформлением заказа. В сообщении об ошибке отображается общая сумма и сумма продукта без налога. Поэтому я изменил файл в контроллерах> front> OrderController.php (PS 1.6). На строке 63

 // Check minimal amount $currency = Currency::getCurrency((int)$this->context->cart->id_currency); $orderTotal = $this->context->cart->getOrderTotal(); $minimal_purchase = Tools::convertPrice((float)Configuration::get('PS_PURCHASE_MINIMUM'), $currency); if ($this->context->cart->getOrderTotal(false, Cart::ONLY_PRODUCTS) < $minimal_purchase && $this->step > 0) { $_GET['step'] = $this->step = 0; $this->errors[] = sprintf( Tools::displayError('A minimum purchase total of %1s (tax excl.) is required to validate your order, current purchase total is %2s (tax excl.).'), Tools::displayPrice($minimal_purchase_2, $currency), Tools::displayPrice($this->context->cart->getOrderTotal(false, Cart::ONLY_PRODUCTS), $currency) ); } 

со следующим кодом

 // Check minimal amount $currency = Currency::getCurrency((int)$this->context->cart->id_currency); $orderTotal = $this->context->cart->getOrderTotal(); $minimal_purchase = Tools::convertPrice((float)Configuration::get('PS_PURCHASE_MINIMUM'), $currency); # modified (total amount included tax - only for screen error) $minimal_purchase_2 = round(Tools::convertPrice((float)Configuration::get('PS_PURCHASE_MINIMUM'), $currency)*1.22,1); $productTotal = round($this->context->cart->getOrderTotal(false, Cart::ONLY_PRODUCTS)*1.22,1); if ($this->context->cart->getOrderTotal(false, Cart::ONLY_PRODUCTS) < $minimal_purchase && $this->step > 0) { $_GET['step'] = $this->step = 0; $this->errors[] = sprintf( Tools::displayError('A minimum purchase total of %1s (tax incl.) is required to validate your order, current purchase total is %2s (tax incl.).'), Tools::displayPrice($minimal_purchase_2, $currency), Tools::displayPrice($productTotal, $currency) ); } 

Я должен решить, чтобы получить фактическую налоговую стоимость (на данный момент я вставил 1,22 для значения налога на недвижимость).

В конце вам нужно перевести в локализацию новое предложение. Надеюсь, кто-то может закончить или лучше решить этот вопрос.

Я знаю, что уже есть один принятый ответ, но мне нужна дополнительная информация о том, как получить цену продукта.

Встроенный класс продукта Prestashop имеет метод getPrice.

 /** * Get product price * Same as static function getPriceStatic, no need to specify product id * * @param bool $tax With taxes or not (optional) * @param int $id_product_attribute Product attribute id (optional) * @param int $decimals Number of decimals (optional) * @param int $divisor Util when paying many time without fees (optional) * @return float Product price in euros */ public function getPrice($tax = true, $id_product_attribute = null, $decimals = 6, $divisor = null, $only_reduc = false, $usereduc = true, $quantity = 1) { return Product::getPriceStatic((int)$this->id, $tax, $id_product_attribute, $decimals, $divisor, $only_reduc, $usereduc, $quantity); } 

Как вы можете видеть, вы можете указать, хотите ли вы его с налогами, количество десятичных знаков, заданных как результат, и числовой делитель.

Итак, если вы хотите получить цену продукта по ID с налогами и без них, вы можете достичь этого, как это

 $product = new Product($id_product, $id_language) // Fill with your info $price_with_taxes = $product->getPrice(true); $price_wout_taxes = $product->getPrice(false); 

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

В product.tpl (представление одного продукта) существует переменная $ product. В product-list.tpl у вас есть переменная $ products, массив, содержащий все продукты, отображаемые в списке.

Надеюсь это поможет.

Простое решение

Перейдите в раздел «Клиенты -> Группы» и нажмите «Изменить» в группе, которую вы хотите изменить:

Найти метод отображения цены и выберите Цена включена или исключена, как вы хотите, затем Сохранить изменения:

проверьте с помощью нажатия ctrl + f5. Готово