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à: " .$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à'); ?> <?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à: " .$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:
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
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