Come mostrare lo sconto in % in categoria e prezzo per pezzo in Virtuemart.

Oggi vediamo come modificare template di prezzo per mostrare lo sconto in percentuale  in Virtuemart

Per visualizzare i prezzi in virtuemart 3, si utilizzare il file /components/com_virtuemart/sublayouts/prices.php.

Viene conneso  ovunque sia necessario mostrare il prezzo della merce: nella categoria, nella sceda del articolo e nei moduli

Questo è molto comodo perché cambiando solo un fail posiamo modificare l'aspetto finale dei prezzi sull'intero sito.

Come modificare template  del prezzo per mostrare lo sconto in percentuale 

Visualizzazione e lavorazione con i prezzi in  virtuemart è pensata molto bene, manca solo la opzione di mostrare lo sconto fatto in percentuale  

e per realizzare questo alla fine del codice nel fail  /components/com_virtuemart/sublayouts/prices.php prima dell'ultimo tag div di chiusura, basta agiungere

<?php if(!empty($product->prices['discountAmount'])){
    $percent = round(-100*$product->prices['discountAmount']/$product->prices['basePriceWithTax']);echo '<div class="percentPrice">Sconto: '.$percent.'%</div>';
} ?>

ed ecco il risultato
dis prezzo precentuale

Cambio di prezzo dinamico al cambio della quantita di articoli

Per impostazione predefinita, quando la quantità di articoli che si vuole acquistare viene cambiata nella pagina delle categorie e nella scheda del prodotto, il prezzo non cambia e l'utente vede il prezzo finale solo nel carrello.

Questo problema può essere risolto aggiungendo nel fail  /components/com_virtuemart/controllers/productdetails.php subito dopo

$prices = $product_model->getPrice ($virtuemart_product_id, $quantity);

il codice seguente

$prices['basePrice'] = $prices['basePrice'] * $quantity;
$prices['basePriceWithTax'] = $prices['basePriceWithTax'] * $quantity;
$prices['discountedPriceWithoutTax'] = $prices['discountedPriceWithoutTax'] * $quantity;
$prices['salesPrice'] = $prices['salesPrice'] * $quantity;
$prices['salesPriceWithDiscount'] = $prices['salesPriceWithDiscount'] * $quantity;
$prices['taxAmount'] = $prices['taxAmount'] * $quantity;
$prices['discountAmount'] = $prices['discountAmount'] * $quantity;
$prices['basePriceWithTax'] = $prices['basePriceWithTax'] * $quantity;

ed ecco il risultato
dis prezzo precentuale 2

2018 05 30 114201

Come mostrare prezzo per un etto o un pezzo  in Virtuemart

Vediamo una delle opzioni

    1. In Virtuemart> Configurazione> Prezzi, attivare la voce Prezzo unitario

2. Nelle impostazioni del prodotto, nella scheda Dimensioni / Peso, selezionare confezione, ad esempio da 100 g.

 prezo per 100grammi in virtuemart

3. Nel file  che abbiamo gia citato e che mostra il prezzo /components/com_virtuemart/sublayouts/prices.php, sostituire

$unitPriceDescription = vmText::sprintf ('COM_VIRTUEMART_PRODUCT_UNITPRICE', vmText::_('COM_VIRTUEMART_UNIT_SYMBOL_'.$product->product_unit));
echo $currency->createPriceDiv ('unitPrice', $unitPriceDescription, $product->prices);

a questo
if(!empty($product->prices['unitPrice'])) {  
$unitPriceDescription = vmText::sprintf (vmText::_('COM_VIRTUEMART_UNIT_SYMBOL_'.$product->product_unit));
    echo '<div class="ProductUnitPrice">'.number_format($product->prices['unitPrice'], 0,' ', ' ').' Euro /'.$unitPriceDescription.'</div>';
}

e ancora sostituire  

echo $currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $product->prices);

a questo
if(empty($product->prices['unitPrice'])) {  
echo $currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $product->prices);
}

La prima condizione visualizzerà  un prezzo unitario solo se nella scheda del prodotto vine specificato il prezzo per unita . Nel prezzo attraverso la barra, verrà aggiunto il peso specificato  come nel nostro caso  del pacchetto.
Da impostazione predefinita, come hai notato non vi è alcuna opzione per i pezzi, ma è possibile, ad esempio, sostituire l'opzione del volume di 100 ml al pz.. nel file /language/it-IT/it-IT.com_virtuemart.ini. Cosi potesti scegliere di mostre prezzo per pezzo.

La seconda condizione nel codice nasconderà il prezzo finale se nelle impostazioni del articolo abbiamo indicato prezzo per confezione , in modo da evitare di mostrare due prezzi .

Alla fine, dovresti ottenere qualcosa di simile.
prezi per unita

 
 
 
Letto 52 volte