cancel
Showing results for 
Search instead for 
Did you mean: 

Pulsante "Richiedi Disponibilità" per prodotti con quantità zero

Pulsante "Richiedi Disponibilità" per prodotti con quantità zero

Ciao a tutti,

sto cercando di personalizzare la gestione dell'inventario di Magento per l'e-commerce che ho creato. Avrei bisogno che per i prodotti non disponibili, invece del pulsante "Aggiungi al carrello" disabilitato, venga visualizzato il pulsante "Richiedi disponibilità" che manda una richiesta via mail (so che non è una pratica ideale per un e-commerce ma purtroppo, per esigenze di magazzino, al momento non ho altre soluzioni).

 

Per ora le modifiche che ho fatto sono queste:

File: list.phtml (ricreato nel template child per evitare sovrascritture nei prossimi aggiornamenti).

Modifiche:

Creazione dei due pulsanti:

$addtocart = $this->__('Add to Cart');
$enquire = $this->__('Richiedi Disponibilità');

Se il prodotto è singolo e disponibile allora calcola la quantità. Se > 0 visualizza il pulsante "Aggiungi al carrello" altrimenti il pulsante "Richiedi disponibilità":

 

<?php if(!$_product->canConfigure() && $_product->isSaleable()): ?>
  <?php $quantita = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty(); ?>
  <?php $nome_prodotto = $_product->getName(); ?>							
  
<?php if($quantita > 0): ?> <p><button type="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Add to Cart')) ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p> <?php else: ?> <p><button type="button" title="<?php echo $enquire; ?>" class="bgc-enquire button btn-cart" onclick="location.href='INVIO-EMAIL?subject=<?php echo "Richiesta Disponibilit&agrave;: " .$nome_prodotto; ?>&body=<?php echo "Inserisci i dettagli della tua richiesta: "; ?>';"><span><span><?php echo $enquire; ?></span></span></button></p> <?php endif; ?>

Se invece si tratta di un prodotto configurabile ed è disponibile visualizza il pulsante "Mostra Dettagli" (altrimenti il pulsante "Non dipsonibile"):

<?php elseif($_product->getStockItem() && $_product->getStockItem()->getIsInStock()): ?>
  <a title="<?php echo $this->__('View Details') ?>" class="button btn-cart" href="<?php echo $_product->getProductUrl() ?>"><?php echo $this->__('View Details') ?></a>
<?php else: ?>
  <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
<?php endif; ?>

E fino a qui sembra funzionare tutto correttamente (sia nella visualizzazione "lista" che a "griglia").

 

File: addtocart.phtml (ricreato nel template child per evitare sovrascritture nei prossimi aggiornamenti) che si occupa dei pulsanti di acquisto nella pagina scheda prodotto.

Modifiche

Creazione dei pulsanti:

<?php $addtocart = $this->__('Add to Cart'); ?>
<?php $enquire = $this->__('Richiedi Disponibilit&agrave;'); ?>
<?php $nome_prodotto = $_product->getName(); ?>

Se il prodotto è disponibile, controlla la quantità, se > 0 allora visualizza pulsante "Aggiungi al carrello" altrimenti il pulsante "Richiedi disponibilità"

<?php if ($_product->isSaleable()): ?>
  <div class="add-to-cart left-side">
    <?php if(!$_product->isGrouped()): ?>
      ...
    <?php endif; ?>

<?php if($_product->getStockItem()->getQty()>0): ?>
<button type="button" title="<?php echo $addtocart; ?>" id="product-addtocart-button" class="button btn-cart" onclick="productAddToCartForm.submit(this)"><span><span><?php echo $addtocart; ?></span></span></button>
<?php else: ?>
<button type="button" title="<?php echo $enquire; ?>" class="button btn-cart" onclick="location.href='INVIO-EMAIL?subject=<?php echo "Richiesta Disponibilit&agrave;: " .$nome_prodotto; ?>&body=<?php echo "Inserisci i dettagli della tua richiesta: "; ?>';"><span><span><?php echo $enquire; ?></span></span></button>
<?php endif; ?>
</div> <?php endif; ?>

Anche qui sembra funzionare tutto tranne che con i prodotti configurabili, con i quali anche se disponibili e con quantità > 0 visualizza sempre il pulsante "Richiedi disponibilità"...

 

Tutto questo funziona con i seguenti settaggi dei prodotti nel backend:

  • Inventario->Quantità: 0
  • Inventario->Disponibilità: Disponibile
  • Inventario->Backorders: attivi con avviso al cliente

Se invece imposto la Disponibilità a "Non disponibile", non viene più visualizzato nessun pulsante.

 

C'è qualche soluzione o un modo più semplice per gestire questa funzionalità? Magari tramite qualche plugin ad hoc?

 

N.B. "INVIO-MAIL" nel codice sta a significare la funzione di invio mail php (non permessa nei post del forum).

 

Grazie intanto a chi volesse darmi qualche consiglio,

Francesco

1 REPLY 1

Re: Pulsante "Richiedi Disponibilità" per prodotti con quantità zero

Ciao Franz, io mi trovo nella tua stessa situazione quindi purtroppo non posso darti soluzioni (per ora) ma se ci lavoriamo assieme forse arriviamo a destinazione. Vedo che il messaggio è oramai di qualche hanno fa, tu per caso hai già risolto?

grazie