Sie müssen sich der Tabelle anschließen, um die Menge zu erhalten.
Siehe folgenden Code:
$products = Mage::getModel('catalog/product')
->getCollection()
//->addAttributeToSelect('*')
->addAttributeToSelect(array('name', 'thumbnail', 'weight' ,'price','description'))
->joinField(
'qty',
'cataloginventory/stock_item',
'qty',
'product_id=entity_id',
'{{table}}.stock_id=1',
'left'
);
foreach ($products as $product) {
$p['products'][] = array(
'id' => $product->getId(),
'sku' => $product->getSku(),
'name' => $product->getName(),
'description' => $product->getDescription(),
'weight' => $product->getWeight(),
'created at' => $product->getCreatedAt(),
'pirce' => Mage::helper('core')->currency($product->getPrice(), true, false), //." ".$currencyCode,
//get qty
'qty' => $product->getQty(),
);
}
Wie man hier einen Attributwert erstellt, zB habe ich ein Attribut namens size erstellt, um diesen Wert abzurufen
UPDATE (Du solltest zwar in einer anderen QST nachfragen, aber ich werde hier für dich antworten.)
Um ein benutzerdefiniertes Attribut zu erhalten, müssen Sie das Attribut im ->addAttributeToSelect
Abschnitt hinzufügen .
Funktioniert immer noch nicht
Möglicherweise müssen Sie ein Produktmodell laden, da ich gelegentlich festgestellt habe, dass nicht alle benutzerdefinierten Attribute angehängt sind, wenn Sie es aus einer Sammlung entfernen (dies ist vermutlich aus Gründen der Leistung gedacht). Etwas wie:
$_product = Mage::getModel('catalog/product')->load($product->getId());
$size = $_product->getSize();
$product->getSize()
oder$product->getData('size')
->addAttributeToSelect
? Sie müssen angeben, was Sie auswählen möchten. ansonsten einfach->addAttributeToSelect(*)
stattdessen verwenden. Dies wählt alles aus, was mit dem Produkt zu tun hat. Wenn dies nicht funktioniert, überprüfen Sie in Kürze meine aktualisierte Antwort.Es funktioniert für mich.
quelle
Das Hinzufügen von Bestandsinformationen zu Produktkollektionen kann über eine einzelne Zeile erfolgen:
Diese Flagge wird im
catalog_product_collection_load_after
Beobachter verwendet:Wenn dieses Flag nicht gesetzt
$product->getStockItem()->getData()
ist, wurde nuris_in_stock
gesetzt. Mit flag erhalten Sie Mengen, Rückstände, ... für jedes Produkt in der Kollektionquelle
Sie können über StockItem wie folgt auf die Lagerbestandsmenge zugreifen:
Getestet in
template/catalog/product/view.phtml
quelle