Jump to content

Data disponibilità prodotto: non viene visualizzata


Frank Cadillac

Recommended Posts

Premetto che non ho la gestione avanzata di magazzino attivata,

 

Un prodotto esce il 20 febbraio e so già che il 20 febbraio avrò 100 pezzi.

 

Mettendo la quantità so già che viene esclusa la data di disponibilità perchè gerarchicamente superiore.

 

O meglio, mi servirebbe che per esempio il 20 febbraio mi si caricassero in scheda già i pezzi stabiliti, e mi pare non sia possibile.

 

Per venire al topic:

 

Inserisco disponibilità 0 con possibiità di ordinare.

 

Inserisco la DATA DISPONIBILITA' futura che è quella che poi dovrebbe apparire in scheda.... Ma niente da fare. Non appare indicata

 

E' normale?

 

Cioè, la data il cliente non può vederla?

Link to comment
Share on other sites

  • 3 weeks later...

Interesserebbe anche a me questa cosa...

Ho passato la serata a cercare una soluzione, ma mi sembra che PS non abbia questa funzione, almeno non la 1.5.0.17. Forse quella data non è per comunicare ai clienti la data del ritorno in vendita dell'articolo, ma solo per lo shop che lo riattiva in automatico.

Credo eh? perché mi pare incredibile non ci sia soluzione, e spulcio il forum inglese!

Boh, si aspettano lumi...

Link to comment
Share on other sites

Dunque, visto che la cosa mi interessa molto (produco io ciò che vendo e non sono la Cina! :) ) io ho risolto così. È un po' lungo (bisogna anche intervenire con php myadmin), ma funziona bene ed è ciò che desideravo. Va detto che parallelamente ho anche modificato e reso (spero) migliore il modulo mailalerts, indispensabile tassello.
Quindi il discorso si riassume così:

  • ho dei prodotti ==> tutto ok
  • finiscono i prodotti ==> non accetto pre-ordini se non ho prodotti in magazzino ==> messaggio prodotto non disponibile ==> appare la scritta "arrivo previsto per" ==> da BO imposto tipo "metà maggio" ==> "metà maggio" appare evidenziata nella pagina prodotto
  • contestualmente appare la possibilità di ricevere email quando nuovamente disponibile

Ho provato e funziona tutto. PS versione 1.5.0.17 tema di default.
 

HOW TO

  • entrare in php myadmin
  • entrare nel database di PS
  • selezionare nella colonna di sinistra "ps_product_lang"
  • selezionare la vista come struttura
  • sotto l'elenco delle cartelle, impostare l'aggiunta di un campo dopo "available_later" e premere esegui
  • nella schermata che si apre compilare i campi come da immagine
  • post-408444-0-31647400-1360945833_thumb.png
  • cliccare salva
  • aprire il file /classes/product.php
  • cercare (verso riga 81)
  • 
    /** @var string available_later */
    
    public $available_later;
    
    
  • aggiungere dopo
  • 
    /** @var string available_time */
    
    public $available_time;
    
    
  • cercare (verso riga 300)
  • 
    'available_later' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'IsGenericName', 'size' => 255),
    
    ),
    
    
  • aggiungere dopo
  • 
    'available_time' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'IsGenericName', 'size' => 255),
    
    
  • aprire tuo_nome_admin/themes/default/template/controllers/products/quantities.tpl
  • cercare (verso riga 219)
  • 
    <tr>
    
    <td class="col-left"><label>{l s='Displayed text when allowed to be back-ordered:'}</label></td>
    
    <td style="padding-bottom:5px;">
    
    {include file="controllers/products/input_text_lang.tpl"
    
    languages=$languages
    
    input_value=$product->available_later
    
    input_name='available_later'}
    
    <span class="hint" name="help_box">{l s='Forbidden characters:'} <>;=#{}<span class="hint-pointer"> </span></span>
    
    </td>
    
    </tr>
    
    
  • aggiungere dopo
  • 
    <tr>
    
    <td class="col-left"><label>{l s='Approximate time to be back in stock again:'}</label></td>
    
    <td style="padding-bottom:5px;">
    
    {include file="controllers/products/input_text_lang.tpl"
    
    languages=$languages
    
    input_value=$product->available_time
    
    input_name='available_time'}
    
    <span class="hint" name="help_box">{l s='Forbidden characters:'} <>;=#{}<span class="hint-pointer"> </span></span><br />
    
    <p class="preference_description" style="padding-top: 5px;">{l s='Type something like \'end of March\' or \'first week of June\''}</p>
    
    </td>
    
    </tr>
    
    
  • aprire /themes/default/product.tpl
  • cercare
  • 
    <!-- 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>
    
    
  • sostituire con
  • 
    <!-- 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><br />
    <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'}</span><br /><br />
    <span id="availability_label">{l s='Expected for: '}</span><br /><span id="availability_value"{if $product->quantity <= 0} class="warning_inline" style="background:#F7B900"{/if}>{$product->available_time}{/if}{else}{$product->available_now}{/if}
    </span>
    </p>
    
  • salvare tutto e provare!

Circa la modifica per il modulo mailalerts:

  • aprire /modules/mailalerts/views/templates/hook/product.tpl
  • cercare
  • 
    <!-- MODULE MailAlerts -->
    
    {if isset($email) AND $email}
    
    <input type="text" id="oos_customer_email" name="customer_email" size="20" value="{l s=' your e-mail' mod='mailalerts'}" class="mailalerts_oos_email" onclick="clearText();" /><br />
    
    {/if}
    
    <a href="#" onclick="return addNotification();" id="mailalert_link">{l s='Notify me when available' mod='mailalerts'}</a>
    
    <span id="oos_customer_email_result" style="display:none; font-weight: bold"></span>
    
    <!-- END : MODULE MailAlerts -->
    
    
  • sostituire con
  • 
    <!-- MODULE MailAlerts -->
    
    {l s='Would you like to receive an email when this product is back in stock?' mod='mailalerts'}<br /><br />
    
    {if isset($email) AND $email}
    
    <input type="text" id="oos_customer_email" name="customer_email" size="40" value="{l s=' your email' mod='mailalerts'}" class="mailalerts_oos_email" onclick="clearText();" />  <br /><br />
    
    {/if}
    
    <a href="#" onclick="return addNotification();" id="mailalert_link" class="button_mini" style="float: right">{l s='OK' mod='mailalerts'}</a><br />
    
    <span id="oos_customer_email_result" style="display:none; font-weight: bold"></span>
    
    <!-- END : MODULE MailAlerts -->
    
    
  • c'è un bug nella formattazione della disponibilità, risolto non so da che versione, in caso non cambi colore in verde e rosso, qui la soluzione:
  • aprire /themes/default/css/product.css
  • cercare
  • 
    #availability_statut span#availability_value {
    
    display:inline-block;
    
    padding:1px 5px;
    
    font-weight:bold;
    
    font-size:10px;
    
    color:#fff;
    
    text-transform:uppercase;
    
    background:#9b0000
    
    }
    
    
  • sostituire con
  • 
    #availability_statut span#availability_value {
    
    display:inline-block;
    
    padding:1px 5px;
    
    font-weight:bold;
    
    font-size:10px;
    
    color:#fff;
    
    text-transform:uppercase;
    
    background:green;
    
    }
    
    #availability_statut #availability_value.warning_inline {
    
    background-color:#9B0000;
    
    }
    
    

Tutto qui! B)
Attenzione nelle traduzioni quando si usano gli apostrofi, sempre meglio dare un escape \' spesso rompono degli script e ci si trova un errore 500 :wacko:
Il funzionamento è qui rappresentato:

prodotto disponibile:
post-408444-0-57838200-1360945857_thumb.png
prodotto in esaurimento:
post-408444-0-32870800-1360945866_thumb.png
prodotto esaurito (cliente guest):
post-408444-0-14921800-1360945883_thumb.png
prodotto esaurito (cliente loggato):
post-408444-0-44458100-1360945898_thumb.png
Back Office:
post-408444-0-14951200-1360945907_thumb.png

Buon lavoro! (15 min e si fa tutto)

Edited by viger (see edit history)
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...