返回

手把手教你用代码批量更新 Magento 中 5000 个产品的 SKU

mysql

如何批量更新 Magento 中 5000 个产品的 SKU

导言

在电子商务中,库存管理至关重要。对于大型产品目录,手动更新库存单位 (SKU) 会非常耗时且容易出错。本文提供了一种通过代码批量更新 Magento 中大量产品的 SKU 的有效方法。

问题陈述

  • 拥有包含旧 SKU 和新 SKU 的 CSV 文件。
  • 需要使用代码批量更新 5000 多个 Magento 产品的 SKU。

解决方案

步骤 1:准备 CSV 文件

创建或获取包含两列(“旧 SKU”和“新 SKU”)的逗号分隔值 (CSV) 文件。

步骤 2:创建 PHP 脚本

创建名为 update_sku.php 的 PHP 脚本,并包含以下代码:

<?php

require_once 'app/Mage.php';
Mage::app('admin');

$csvFile = 'path/to/sku_mapping.csv';
$handle = fopen($csvFile, 'r');
$header = fgetcsv($handle);
$data = [];

while (($row = fgetcsv($handle)) !== false) {
    $data[] = array_combine($header, $row);
}

fclose($handle);

foreach ($data as $item) {
    $product = Mage::getModel('catalog/product')->loadByAttribute('sku', $item['old_sku']);

    if ($product->getId()) {
        $product->setSku($item['new_sku']);
        $product->save();
    }
}

步骤 3:配置脚本

path/to/sku_mapping.csv 替换为你的 CSV 文件路径。

步骤 4:执行脚本

使用 SSH 或命令行导航到 Magento 根目录,然后执行以下命令:

php update_sku.php

注意事项

  • 更新 Magento 索引。
  • 执行脚本前备份数据库。
  • 根据需要修改脚本以满足你的具体需求。

结论

通过上述步骤,你可以使用 PHP 代码轻松批量更新 Magento 中 5000 个产品的 SKU。这将极大地提高库存管理的效率和准确性。

常见问题解答

1. Magento 版本要求是什么?

该解决方案适用于 Magento 1.x 和 2.x 版本。

2. 如何优化脚本性能?

使用 chunking 来处理大量产品,避免内存问题。

3. 我可以更新其他产品属性吗?

是的,只需修改 setSku() 函数即可更新其他属性。

4. 如何撤消更新?

update_sku.php 脚本中恢复原始 SKU。

5. 如何使用多线程来加快更新过程?

使用 PHP 多线程函数或外部库,如 ThreadParallel