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