2014-04-23 40 views

Odpowiedz

9

Znajdź następujący blok w product-list.tpl:

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

Dodaj tę cenę wyświetlania bez VAT:

{convertPrice price=$product.price_tax_exc} 

Upewnij się, że podczas rozwoju Template compilation jest ustawiony na Force compilation i Cache jest ustawiony na No w Back Office firmy PrestaShop ->Advanced Parameters ->Performance.

2

W moim przypadku to działa na domyślnym VAT .:

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

Można użyć profesjonalnego narzędzia z wielu opcji, aby wyświetlić podwójną cenę (brutto oraz podatek wył razem). Można go znaleźć w sklepie dodatków prestashop z nazwą "Podwójny wyświetlacz z uwzględnionym podatkiem i cenami wyłączonymi z podatku".

0

Mam podobny problem na liście zamówień przed realizacją transakcji. Komunikat o błędzie wyświetla całkowitą kwotę i kwotę produktu bez podatku. Więc zmodyfikowany plik w kontrolerach> przód> OrderController.php (PS 1.6) Na linii 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)  
     );      
    } 

z następującego kodu

// 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) 
     );      
    } 

muszę rozwiązać, aby uzyskać rzeczywistą wartość podatku (w tej chwili wstawiłem 1.22 dla wartości podatku weneckiego).

Na koniec trzeba przetłumaczyć w lokalizacji nowe zdanie. Mam nadzieję, że ktoś może ukończyć lub lepiej rozwiązać to pytanie.

+0

Istnieje znacznie prostsze rozwiązanie do wyświetlania w PHP tych wartości. Będziesz potrzebował id_product i id_product_attribute, a przy tym musisz utworzyć nowy obiekt produktu przez $ p = nowy produkt (twój_produkt_id), a następnie $ p-> getPrice (true, id_product_attribute) i to jest dla ceny z podatkiem. W przypadku braku podatku należy użyć false w pierwszym parametrze. –

-1

Proste rozwiązanie

Przejdź do klientów -> grupy i kliknij przycisk Edytuj w grupie chcesz zmodyfikować:

Znajdź opcję metodę wyświetlania cena i wybierz Cena włączone lub wyłączone, jak chcesz, a następnie zapisz zmiany:

zaznacz naciskając ctrl + f5. Zrobione:

+0

Chce od razu pokazać ceny z podatkami i bez podatków. Ani jeden z nich. – Smokinggunz

0

Wiem, że istnieje już jedna akceptowana odpowiedź, ale potrzebowałem więcej informacji o tym, jak uzyskać cenę produktu.

Wbudowana klasa produktów Prestashop ma metodę 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); 
} 

Jak widać można określić, czy chcesz go z podatków, liczby dziesiętne podanych jako skutek, a liczba dzielnik.

Tak więc, jeśli chcesz uzyskać cenę wyrobu przez ID i bez podatków można go osiągnąć jak ten

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

Jako inne komentarze powiedzieć, jeśli jesteś wewnątrz matrycy, można uzyskać produkt id w zależności od modyfikowanego widoku.

W product.tpl (widok pojedynczego produktu) znajduje się zmienna $ product. W product-list.tpl masz zmienną $ products, tablicę zawierającą wszystkie produkty pokazane na liście.

Mam nadzieję, że to pomoże.