批量修改magento产品库存数量

天介绍的这个方法是使用外部php代码实现批量更改库存数量。

First,准备一个csv文件,这个文件可以包含下面所有的这些字段
 
但是一般我们只需要sku和qty这两个字段。(在csv文件里边修改你需要修改的qty的数量。)
 
保存成CSV格式,注意另存的时候选择UTF-8编码,Mangeto只能识别UTF-8。 将这个文件存到./app/var/import/updateStockLevels.csv.
之后,创建一个php文件,内容如下:
<?
 define('MAGENTO', realpath(dirname(__FILE__)));
 require_once MAGENTO . '/app/Mage.php';
 umask(0);
 Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
 $count = 0;
 $file = fopen(MAGENTO . '/var/import/updateStockLevels.csv', 'r');
 while (($line = fgetcsv($file)) !== FALSE) {
 if ($count == 0) {
 foreach ($line as $key=>$value) {
 $cols[$value] = $key;
 }
 }
 $count++;
 if ($count == 1) continue;
 #Convert the lines to cols
 if ($count > 0) {
 foreach($cols as $col=>$value) {
 unset(${$col});
 ${$col} = $line[$value];
 }
 }
 // Check if SKU exists
 $product = Mage::getModel('catalog/product')->loadByAttribute('sku',$sku);
 if ( $product ) {
 $productId = $product->getId();
 $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($productId);
 $stockItemId = $stockItem->getId();
 $stock = array();
 if (!$stockItemId) {
 $stockItem->setData('product_id', $product->getId());
 $stockItem->setData('stock_id', 1);
 } else {
 $stock = $stockItem->getData();
 }
 foreach($cols as $col=>$value) {
 $stock[$col] = $line[$value];
 }
 foreach($stock as $field => $value) {
 $stockItem->setData($field, $value?$value:0);
 }
 $stockItem->save();
 unset($stockItem);
 unset($product);
 }
 echo "<br />Stock updated $sku";
 }
 fclose($file);
?>
存为quick_updateStock.php, 在浏览器运行这个文件即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值