Jump to content

Problema disponibilità prodotti


DARKF3D3

Recommended Posts

Ho notato che per alcuni prodotti a catalogo non viene mostrato il messaggio "disponibile a magazzino/non disponibile.

Ho provato a controllare nel backoffice ma non mi sembra che sia possibile scegliere se visualizzare la disponibilità o meno dalla pagina del prodotto.

 

Il codice interessato dovrebbe essere questo:

  <!-- availability -->
  <p id="availability_statut"{if ($product->quantity <= 0 && !$product->available_later && $allow_oosp) OR ($product->quantity > 0 && !$product->available_now) OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>
   <span id="availability_value"{if $product->quantity <= 0} class="terminato"{else}class="disponibile"{/if}>
 {if $product->quantity <= 0}{if $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product->available_now}{/if}
   </span>
  </p>

 

Ho provato a fare delle modifiche ma continua a non visualizzarmi la disponibilità per alcuni prodotti...

Link to comment
Share on other sites

Ciao DARKF3D3, quello chce hai postato è un codice personalizzato che hai solo tu, se usi il tema di default sicuramente funziona su tutti i prodotti.

No ho provato ma il problema resta, anche perché nel codice che ho postato, rispetto a quello di default, ho aggiunto solamente le classi per cambiare colore alla scritta quando il prodotto è disponibile.

 

Questo è il codice che ho preso da un file "pulito" di PS 1.4.9:

 

<!-- availability -->
<p id="availability_statut"{if ($product->quantity <= 0 && !$product->available_later && $allow_oosp) OR ($product->quantity > 0 && !$product->available_now) OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>
<span id="availability_label">{l s='Availability:'}</span>
<span id="availability_value"{if $product->quantity <= 0} class="warning_inline"{/if}>
{if $product->quantity <= 0}{if $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product->available_now}{/if}
</span>
</p>

 

Comunque se qualcuno ha modo di provare su di un'intallazione senza modifiche e ancora con i prodotti di default, il problema di cui parlo è presente su: iPod Touch, MacBook e MacBook Air.

Infatti entrando nella scheda prodotto la disponibilità non viene mostrata, mentre per iPod e iPod Shuffle si.

Link to comment
Share on other sites

DARKF3D3, io credo che il tuo codice sia scorretto in più punti ma, sopratutto non serviva modificarlo in modo così profondo.

Infatti, come si nota dal codice originale che hai postato, ovvero questo:

 

<p id="availability_statut"{if ($product->quantity <= 0 && !$product->available_later && $allow_oosp) OR ($product->quantity > 0 && !$product->available_now) OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>
 <span id="availability_label">{l s='Availability:'}</span>
 <span id="availability_value"{if $product->quantity <= 0} class="warning_inline"{/if}>
  {if $product->quantity <= 0}{if $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product->available_now}{/if}
 </span>
</p>

 

esiste già una classe diversa per indicare che il prodotto non è disponibile, la classe è warning_inline, se vuoi usare una tua classe personale devi solo cambiare questo nome con il nome della tua classe.

 

...

Comunque se qualcuno ha modo di provare su di un'intallazione senza modifiche e ancora con i prodotti di default, il problema di cui parlo è presente su: iPod Touch, MacBook e MacBook Air.

Infatti entrando nella scheda prodotto la disponibilità non viene mostrata, mentre per iPod e iPod Shuffle si.

 

Riguardo il diverso comportamento da un prodotto all'altro, dipende da dal fatto che se in b.o. nella scheda prodotto selezioni l'opzione Accetta gli ordini dove chiede Quando fuori magazzino:, la scritta Questo prodotto non è più disponibile non compare (ovviamnete).

Link to comment
Share on other sites

esiste già una classe diversa per indicare che il prodotto non è disponibile, la classe è warning_inline, se vuoi usare una tua classe personale devi solo cambiare questo nome con il nome della tua classe.

Le ulteriori modifiche le ho fatte per aggiungere la classe "disponibile" in modo da poter personalizzare anche la scritta a magazzino.

Mentre alla classe "warning_inline" ho semplicemente cambiato il nome in "terminato", in modo da avere 2 classi: disponibile e terminato, in questo modo anche senza commenti le trovo in fretta e capisco rapidamente di cosa si tratta.

 

 

Riguardo il diverso comportamento da un prodotto all'altro, dipende da dal fatto che se in b.o. nella scheda prodotto selezioni l'opzione Accetta gli ordini dove chiede Quando fuori magazzino:, la scritta Questo prodotto non è più disponibile non compare (ovviamnete).

 

Il prodotto è disponibile, però ti ringrazio perché grazie a te sono riuscito a trovare il problema (che era molto vicino), infatti 2 righe sopra c'è il campo: Messagggio mostrato quando in magazzino; controllando mi sono reso conto che per i prodotti incriminati quel campo era vuoto.

 

Ora, visto che per tutti i prodotti disponibili voglio visualizzare sempre lo stesso messaggio non è possibile modificare il file product.tpl in modo che lo visualizzi sempre, senza dover star li ad inserire "in magazzino" ogni volta?

Edited by DARKF3D3 (see edit history)
Link to comment
Share on other sites

...

Ora, visto che per tutti i prodotti disponibili voglio visualizzare sempre lo stesso messaggio non è possibile modificare il file product.tpl in modo che lo visualizzi sempre, senza dover star li ad inserire "in magazzino" ogni volta?

 

Lo modifichi dalle traduzioni: Traduzioni front office, fieldset: product, voce: items in stock

Link to comment
Share on other sites

...

Il prodotto è disponibile, però ti ringrazio perché grazie a te sono riuscito a trovare il problema (che era molto vicino), infatti 2 righe sopra c'è il campo: Messagggio mostrato quando in magazzino; controllando mi sono reso conto che per i prodotti incriminati quel campo era vuoto.

...

 

Devo correggerti perchè stai dando un'informazione sbagliata, ovvero tu dici che se il campo è vuoto, non appare nessuna scritta in f.o.

Invece non è così, se il campo Messagggio mostrato quando in magazzino viene lasciato vuoto, in f.o. compare la dicitura di default per la stringa items in stock, preceduto dal numero di prodotti disponibili.

Questo se in b.o. > Prefernze > Prodotti, hai flaggato SI dove chiede: Mostra le quantità disponibili nella pagina del prodotto:

 

Quindi torniamo al tuo codice personalizzato che potrebbe essere la causa che impedisce questo funzionamento.

Edited by eugenata (see edit history)
Link to comment
Share on other sites

Però anche modificando le traduzioni se dalla scheda prodotto nel BO lascio vuoto il campo "messaggio mostrato quando in magazzino:" sul sito non mostra niente.

Quello che sto cercando di fare è trovare un modo per bypassare quel campo, quindi sia che sia vuoto o meno vorrei visualizzare sempre lo stesso messaggio.

 

EDIT: Ho letto ora il tuo secondo messaggio... controllo il codice della pagina e ti dico.

Edited by DARKF3D3 (see edit history)
Link to comment
Share on other sites

Tutta la parte di codice che visualizza il numero di prodotti disponibili l'ho eliminata perché non mi serviva, avendola già disabilitata dal backoffice ho deciso di toglierla anche dal file tpl per alleggerirlo da parti di codice inutili (credo...).

A questo punto il problema forse è questo, però in ogni caso io voglio solo visualizzare 2 messaggi: "Disponibile" e "Terminato" per ora non mi serve visualizzare altro.

 

Pensavo sarebbe bastato modificare questa parte di codice, però a quanto pare non è così

<!-- availability -->
<p id="availability_statut"{if ($product->quantity <= 0 && !$product->available_later && $allow_oosp) OR ($product->quantity > 0 && !$product->available_now) OR !$product->available_for_order OR $PS_CATALOG_MODE} style="display: none;"{/if}>
<span id="availability_label">{l s='Availability:'}</span>
<span id="availability_value"{if $product->quantity <= 0} class="warning_inline"{/if}>
{if $product->quantity <= 0}{if $allow_oosp}{$product->available_later}{else}{l s='This product is no longer in stock'}{/if}{else}{$product->available_now}{/if}
</span>
</p>

...mi sfugge qualcosa -_-

Edited by DARKF3D3 (see edit history)
Link to comment
Share on other sites

... in ogni caso io voglio solo visualizzare 2 messaggi: "Disponibile" e "Terminato" per

 

Se non vuoi mostrare la quantità di prodotti disponibili, dovresti per prima cosa rimettere a posto il codice originale.

 

Poi nel blocco di codice successivo, commenta il tag <span> che visualizza il numero di prodotti, in questo modo:

 

<!-- number of item in stock -->
  {if ($display_qties == 1 && !$PS_CATALOG_MODE && $product->available_for_order)}
  <p id="pQuantityAvailable"{if $product->quantity <= 0} style="display: none;"{/if}>
<!--<span id="quantityAvailable">{$product->quantity|intval}</span> -->
<span {if $product->quantity > 1} style="display: none;"{/if} id="quantityAvailableTxt">{l s='item in stock'}</span>
<span {if $product->quantity == 1} style="display: none;"{/if} id="quantityAvailableTxtMultiple">{l s='items in stock'}</span>
  </p>
  {/if}

 

Apprirà solo il testo della stringa items in stock che avrai avuto cura di modificare a tuo piacimento come indicato sopra.

Link to comment
Share on other sites

Ho provato a utilizzare il tuo metodo, però in quel modo per i prodotti dove veniva già visualizzata la scritta "disponibile" mi ritrovavo col la scritta doppia. Per risolvere sarebbe bastato svuotare il campo del messaggio da visualizzare dei prodotti incriminati però alla fine ho preferito fare diversamente.

 

La parte "number of item in stock" l'ho lasciata commentata, in questo modo se in futuro mi dovesse servire potrò inserirla facilmente, mentre ho modificato il resto:

  <!-- availability -->
  <p>
   <span id="availability_value"{if $product->quantity <= 0} class="terminato"{else}class="disponibile"{/if}>
 {if $product->quantity <= 0}{l s='This product is no longer in stock'}{else}{l s='In stock'}{/if}
   </span>
  </p>

 

In questo modo, qualsiasi sia l'impostazione nel BO per i prodotti viene sempre visualizzato o il messaggi o"Disponibile" o "non disponibile".

 

Grazie lo stesso per l'aiuto, da solo non sarei riuscito ad arrivare alla soluzione.

Link to comment
Share on other sites

Si con la frase:

Per risolvere sarebbe bastato svuotare il campo del messaggio da visualizzare dei prodotti incriminati però alla fine ho preferito fare diversamente.

Intendevo proprio quello, forse mi sono spiegato male... comunque forse un po' per pigrizia ho preferito fare come ho scritto sopra, così almeno anche se mi dovessi dimenticare di svuoltare alcuni campi già compilati verrebbe mostrato in ogni caso solo un messaggio.

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...