Jump to content

Visualizzare percentuale sconto invece dell'importo


Recommended Posts

Ciao a tutti

Sono un pivello di prestashop e sto provando a fare delle modifiche. Abbiate pazienza.

Versione di PrestaShop: 1.7.3.1

Tema attualmente utilizzato: classic modificato

Ho questo poblema come dal titolo. Ho provato a fare varie prove e sto impazzendo per il risultato.

Ho modificato il file product-prices.tpl

in queste linee di codice

<div class="current-price">
          <span itemprop="price" content="{$product.price_amount}">{$product.price}</span>

          {if $product.has_discount}
            {if $product.discount_type === 'percentage'}
              <span class="discount discount-percentage">{l s='Save %percentage%' d='Shop.Theme.Catalog' sprintf=['%percentage%' => $product.discount_percentage_absolute]}</span>
            {else}
              <span class="discount discount-amount">
                  {l s='Save %amount%' d='Shop.Theme.Catalog' sprintf=['%amount%' => $product.discount_to_display]}
              </span>
            {/if}
          {/if}
        </div>

Ho inserito la formula per visualizzare lo sconto in questo modo

{else}
              <span class="discount discount-amount">
                  {l s='Save %amount%' d='Shop.Theme.Catalog' sprintf=['%amount%' => $product.discount_to_display]} -{((($product.regular_price - $product.price)/$product.regular_price)*100)}%
              </span>
            {/if}

La cosa assurda che non capisco è che mi da un risultato sbagliato. In questo prodotto come vedete dovrebbe comparire lo sconto 15% ma compare:

1212011162_ScreenShot01-08-19at10_55AM.PNG.c149c2d58bc75804bbe07a3c4011658e.PNG

Non riesco a capire come possa succedere. Come ho scritto abbiate pazienza perchè sono un pivello e magari è solo una cavolata.

Grazie in anticipo per il vostro aiuto

Enrico

 

 

Link to comment
Share on other sites

La formula la devi inserire subito dopo 

$product.dicount_to_display

Metti una parentesi dopo la variabile e inserisci la formula all'interno della parentesi. 

Come e' scritto ora, il risultato della fomrula non e' contenuto all'interno della variabile.

Link to comment
Share on other sites

Allora,

La parentesi quadra che apri subito dopo "sprintf" la chiudi dopo la variabile "$product.dicount_to_display". Per questo non funziona. Dopo la  freccia ( => ) all'interno della parentesi quadra devi scrivere tutta la formula, ovvero  ($product.discount_to_display - ((($product.regular_price - $product.price)/$product.regular_price) * 100))

Link to comment
Share on other sites

Ho fatto come mi hai detto

<div class="current-price">
          <span itemprop="price" content="{$product.price_amount}">{$product.price}</span>

          {if $product.has_discount}
            {if $product.discount_type === 'percentage'}
              <span class="discount discount-percentage">{l s='Save %percentage%' d='Shop.Theme.Catalog' sprintf=['%percentage%' => $product.discount_percentage_absolute]}</span>
            {else}
              <span class="discount discount-amount">
                  {l s='Save %amount%' d='Shop.Theme.Catalog' sprintf=['%amount%' => ($product.discount_to_display - ((($product.regular_price - $product.price)/$product.regular_price) * 100))]}%
              </span>
              
            {/if}
          {/if}
        </div>

Però il problema è che il risultato è sbagliato

187030024_ScreenShot01-08-19at01_56PM.PNG.3f4d47d89cc12854b54976417f226741.PNG

Sto rincretinendo in quanto la formula direbbe (con i dati della immagine) ((10-8,5)/10)*100 = 15

Perchè da 19????

 

Link to comment
Share on other sites

Ho provato a toglierlo

 <div class="current-price">
          <span itemprop="price" content="{$product.price_amount}">{$product.price}</span>

          {if $product.has_discount}
            {if $product.discount_type === 'percentage'}
              <span class="discount discount-percentage">{l s='Save %percentage%' d='Shop.Theme.Catalog' sprintf=['%percentage%' => $product.discount_percentage_absolute]}</span>
            {else}
              <span class="discount discount-amount">
                  {l s='Save %amount%' d='Shop.Theme.Catalog' sprintf=['%amount%' => (((($product.regular_price - $product.price)/$product.regular_price)*100))]}%
              </span>
              
            {/if}
          {/if}
        </div>

E tieni presente che ambedue i prodotti sono scontati del 15% ma invece in quello di prima

278749613_ScreenShot01-08-19at02_53PM.PNG.51b52daab172df199a39415cf63b51ea.PNG

e in un altro precedente

1100766526_ScreenShot01-08-19at02_56PM.PNG.c8dd836255063449a7a018df4c60cd88.PNG

Non capisco questi risultati

 

Link to comment
Share on other sites

Ho fatto comparire il contenuto delle variabili

71949953_ScreenShot01-08-19at03_13PM.PNG.855d9e64fb54d0485610f0f531963ebf.PNG

e praticamente sembra che siano delle stringhe essendoci il simbolo euro.

Andando per logica o il problema è nel modo in cui Prestashop legge le stringhe o nel modo in cui arrotonda i calcoli.

Qualcuno ne riesce a capire qualcosa?

Link to comment
Share on other sites

  • 2 years later...
  • 2 years later...
On 1/31/2021 at 1:12 PM, daino said:

A me interessava fare comparire lo sconto percentuale solo nella lista dei prodotti.

Sono riuscito a cambiare il valore dell'etichetta (da assoluto a percentuale) cambiano il codice nel file ProductLazyArray.php

posso sapere come hai fatto che codice hai messo?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...