Ho riscontrato questo errore più volte di quanto tengo a contare. O $_product->hasOptions()
o $_product->hasCustomOptions()
restituisce sempre false
. Ancora non so perché questo errore si verifica.
In ogni caso, è possibile ottenere lo stesso risultato attenendosi alla seguente procedura. Per i prodotti configurabili:
<?php if ($_product->getData('has_options')): ?>
<!-- do something -->
<?php endif; ?>
E per ottenere lo stesso risultato per prodotti semplici con opzioni personalizzate:
<?php if ($_product->getData('has_options') && ($_product->getTypeID() == 'simple')): ?>
<!-- do something -->
<?php endif; ?>
Mi auguro che aiuta un futuro avventuriero!
EDIT
La soluzione di cui sopra non funziona in loop quando l'opzione daticategoria piatta è abilitata in Magento, e noi non vogliamo ricaricare il prodotto all'interno della ciclo foreach !!
Invece, siamo in grado di verificare la presenza di opzioni personalizzate utilizzando il seguente Singleton all'interno del ciclo:
$opts = Mage::getSingleton('catalog/product_option')->getProductOptionCollection($_product);
$optsSize = $opts->getSize();
if ($optsSize) {
... // go go go
}
@Marius Hai risposto alla domanda simile qui http://stackoverflow.com/questions/25745879/product-has-a-custom-options-or-not-in-magento Quindi potrebbe essere che tu possa aiutarmi a – androidjunky