0
私は在庫を更新する必要があるレコードのコレクションを持っています。私は、magentoに "load"を使うと遅くなり、在庫を更新する前に使用しているので、私は何千もの製品を持っているので、より速い方法があるのだろうと聞いた。あなたが製品ロードするのではなく、在庫品目のロードを使用しようとするかもしれコレクションのレコードを高速に更新する
$productCollection = Mage::getResourceModel('catalog/product_collection')
->addFieldToFilter(array(
array('attribute'=>'reference','neq'=>''),
));
//Update Prices and Stock
foreach ($productCollection as $product) {
try {
$reference = $product->getReference();
$res = $products_api->xpath("item/sku[.='{$reference}']/parent::*");
if (count($res) <= 0){
unset($product);
unset($res);
unset($reference);
continue;
}
$product->load($product->getId());
//Search for Stock
$stock = $res[0]->stocks->quantity;
//Update Stock
$product->setStockData(array(
'use_config_manage_stock' => 0,
'manage_stock' => 1,
'is_in_stock' => $stock > 0 ? 1 : 0,
'qty' => $stock,
));
$product->save();
おかげで、はるかに高速です –