Zuerst gilt es das richtige Produkt mittels Magento-Product-Model zu finden.
$arnr = '1234';
$product = Mage::getModel("catalog/product");
$product->load( $product->getIdBySku( $arnr ) );
Danach können wir mit zwei Wegen unseren Lagerbestand aktualisieren. Im ersten Beispiel gehen wir direkt über das Product-Model:
$bestand = 10;
if ( $product->getId() ) {
$product->setStockData( array(
'is_in_stock' => ( $bestand > 0 ? 1 : 0 ),
'qty' => $bestand
)
);
$product->save();
}
Das zweite Beispiel ist zum Speichern des Lagerbestandes ein wenig schneller als das erste Beispiel. Hier benutzen wir direkt das Stock-Item-Model:
if ( $product->getId() ) {
$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct( $product->getId() );
if ( !$stockItem->getId() ) {
// Falls noch kein Lagerbestand besteht
$stockItem->setProduct( $product );
}
$stockItem->setQty($bestand);
$stockItem->setData('is_in_stock',( $bestand > 0 ? 1 : 0 ));
$stockItem->save();
}
Vielen Dank an Damian für das zweite Beispiel.