Domanda

Ho un attributo di prodotto chiamato remote_image_link. Quando ho recuperare un prodotto utilizzando questo codice:

$mageProduct = Mage::getModel('catalog/product')
                ->getCollection()
                ->addFieldToFilter('sku',"1234")->getFirstItem();

E poi cercare di ottenere il valore dell'attributo RemoteImageLink,

$mageProduct->getRemoteImageLink()

Non viene restituito nulla. Ma quando aggiungo questo codice:

$mageProduct = Mage::getModel('catalog/product')->load($mageProduct->getId());

Poi funziona e posso ottenere un valore per l'attributo remote_image.

Come mai devo carico di chiamate, non sono io carico con l'addFieldToFileter

È stato utile?

Soluzione

Prima di tutto l'uso addAttributeToFilter invece di addFieldToFilter. È più pulito in questo modo.
E recuperare il prodotto in questo modo:

$mageProduct = Mage::getModel('catalog/product')
            ->getCollection()
            ->addAttributeToSelect('remote_image_link')
            ->addAttributeToFilter('sku',"1234")->getFirstItem();

Quando si ottiene una collezione non tutti gli attributi vengono aggiunti alla collezione. È necessario aggiungere manualmente gli attributi che devi.
Se per qualche ragione che non funziona, impostare l'attributo di remote_image_link essere Used in product listing.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top