Preparando un sito eCommerce con Virtuemart ho notato che nel box della selezione degli attributi di un articolo il prezzo visualizzato è privo di sconti.
Questa visualizzazione può risultare scomoda, in quanto sul prezzo di listino nel box non si fa nessun riferimento ad eventuali sconti ed inoltre, avendo creato delle tabelle con i prezzi per le varianti all'interno della descrizione dell'articolo, mi ritrovo con una discordanza di prezzi tra quello indicato nella tabella e quello riportato nella lista di selezione.
Logicamente il tutto si risistema nel momento dell'acquisto, nel carrello infatti il prezzo di listino riportato nel menù di selezione viene poi scontato dello sconto applicato nell'anagrafica.
Oltre ad essere esteticamente poco piacevole, è anche controproducente, un conto è trovare ad esempio un articolo a 1200 euro, un conto è trovarlo a 900!
 
Oltre che mettere un avviso in cui si indica al potenziale acquirente che il prezzo nel menù a tendina è da scontare, che francamente ritengo una soluzione non ottimale in quanto dubito che qualcuno legga l'avviso, è il colpo d'occhio quello che conta, specialmente facendo shopping, è possibile ovviare al problema modificando parte del codice di Virtuemart.

 

 
Il file che prende le informazioni sugli attributi di un articolo e li passa poi al template è il file  
 

    ps_product_attribute.php

 
che si trova in
 

    /administrator/components/com_virtuemart/classes/

 
Creiamo una copia di backup del file per poterlo ripristinare al volo in caso di problemi con le modifiche.
 
Cominciamo a modificare il codice.
 
Intorno alla riga 715 troviamo il codice
    
        if( $product_id == 0 )
            $product_id = $prod_id ;
 $q = "SELECT product_id, attribute FROM #__{vm}_product WHERE product_id='$product_id'" ;

 
cambiamolo con
    
        if( $product_id == 0 )
            $product_id = $prod_id ;
  $starttime = time();
  $year = date('Y');
  $month = date('n');
  $day = date('j');
  // get the beginning time of today
  $endofday = mktime(0, 0, 0, $month, $day, $year) - 1440;
  //$q = "SELECT product_id, attribute FROM #__{vm}_product WHERE product_id='$product_id'" ;
  $q = "SELECT a.product_id, a.attribute, b.amount, b.is_percent FROM #__{vm}_product AS a LEFT JOIN  #__{vm}_product_discount AS b ON a.product_discount_id = b.discount_id WHERE a.product_id='$product_id'  OR (a.product_id='$product_id' AND (b.start_date='$endofday' OR b.end_date=0))";

 
In questa parte di codice andiamo a definire le variabili per la ricerca ed impostiamo la query.
La query al dB prende gli attributi personalizzati ed i dati dello sconto, oppure solo gli attributi dell'articolo se non dovesse essere applicato nessuno sconto.
 
Dopo il comando (ex riga 722, ora 730)
 
        $advanced_attribute_list = $db->f( "attribute" ) ;
 
inseriamo
 

Quattro Racconti


La mia prima opera narrativa, quattro storie brevi, i miei quattro Re, quattro racconti di fantasia, con forti tinte horror, per aiutarvi a non dormire...

  • Se hanno ragione le religioni animiste, ogni oggetto ha una sua identità, una sua anima. E se gli oggetti in questione avessero un'indole maligna?

  • Siamo sicuri di voler affidare il nostro futuro all'intelligenza artificiale? Abbiamo la certezza che un giudizio assolutamente oggettivo e privo di vizi possa guidare la nostra specie verso tempi di pace e prosperità?
    Possiamo fidarci delle cure amorevoli di una fredda macchina??

  • Una vita sfortunata, una serie di rimpianti che negli anni si accumulano, stratificano. Può la disperazione, per quanto intensa e profonda, prendere forma e divorarci dall'interno? Divenire un compagno di vita, tangibile, al nostro fianco mentre camminiamo, sul nostro grembo mentre siamo seduti, come un animale da compagnia??
  • Tra i bisogni primordiali, la necessità di assumere cibo è forse quello che più a contribuito alla nostra evoluzione.
    Quello che più fortemente ci spinge, ci motiva, ci dispera.
    La scarsità di cibo ci ha spinto in ogni angolo del mondo in cerca di terre fertili da coltivare, ha spinto la nostra intelligenza a crescere per poter trovare nuovi modi e tecnologie per rendere i campi più produttivi, ha spinto l'evoluzione delle strutture sociali grazie agli scambi economici tra villaggi e nazioni, ci ha fatto progredire.
    Ma spinge anche i nostri istinti più animaleschi.
    Un animale affamato è una belva sanguinaria e spietata.
    Ed un animale affamato ed intelligente come un essere umano è capace di tutto....
     
     

Quattro Racconti - Storie brevi per non dormire

ISBN Libro:9788892305083

Anno pubblicazione:2023

Formato:11,4x17,2

Foliazione:144

Copertina:morbida

Interno:bn

Genere: Narrativa / Letterature - horror

Distribuzione:

IlMioLibro Self Pubblishing

Amazon

laFeltrinelli

IBS

 

 

        $discountAmount=$db->f( "amount" ) ;
 $discountPercent=$db->f( "is_percent" ) ;

 
in questo modo leggiamo i dati relativi allo sconto.
 
Alla riga 777 cambiamo la stringa  
 
        $options_item['display_price'] = $CURRENCY_DISPLAY->getFullValue( $price ) ;
        
con  
        if($discountPercent)
            $options_item['display_price'] = $CURRENCY_DISPLAY->getFullValue( $price* (1 - ($discountAmount/ 100)) ) ;        
else
            $options_item['display_price'] = $CURRENCY_DISPLAY->getFullValue( $price - $discountAmount ) ;

 
in questa parte di codice andiamo a verificare il tipo di sconto, se è uno sconto in percentuale vado a sottrarre dal prezzo la percentuale indicata, se è uno sconto assoluto scalo dal prezzo l'ammontare dello sconto.
 
Salviamo il file, pubblichiamolo e facciamo un giro sul nostro sito eCommerce per vedere che tutto funzioni alla perfezione!
 

We use cookies
Attenzione! Questo sito utilizza i cookie tecnici e di terze parti per poter fornire i servizi.