【问题标题】:Update Magento stocks with CSV and PHP script使用 CSV 和 PHP 脚本更新 Magento 股票
【发布时间】:2012-09-29 12:12:15
【问题描述】:

刚刚发现这篇很棒的文章:http://www.blog.magepsycho.com/updating-product-qty-in-magento-in-an-easier-faster-way/,但有些东西效果不佳。 当我有一个包含“sku”和“is_in_stock”列的 CSV 并且我使用脚本时,当“is_in_stock”为 0 时,它还会将“qty”设置为 0。这怎么可能?因为我只想更新“is_in_stock”,而不是“qty”。

你能帮我解决这个问题吗? 提前致谢!

【问题讨论】:

    标签: php magento csv stocks


    【解决方案1】:

    链接脚本忽略标题行并将第二列视为数量,无论您将其命名为“is_in_stock”。这就是“数量”设置为 0 的原因。

    如果您只需要一种快速将某些商品标记为无库存的方法:

    1. 转到管理员,然后管理产品
    2. 搜索您要更改的内容并在它们旁边打勾。
    3. Actions框中选择Update Attributes,然后点击Submit
    4. Inventory 标签上,点击 Change 框以获得 Stock Availability,然后选择 Out of Stock。李>
    5. 点击保存

    【讨论】:

    • 感谢您的回答。这是不可能的,因为我有一个拥有 5000 种产品的在线网店,每小时都会更换库存。我的制造商给了我一个不是 Magento 优化的 CSV。我制作了一个 PHP 脚本来加载列“sku”和“is_in_stock”,并剪切所有其他行。 2 个列保存在单独的 CSV 中。但在 CSV 中没有库存级别。只有 0(= 缺货)或 1(有货)。开发者给了我这个提示:“你需要更新表:cataloginventory_stock_item based on product-id and store-id”
    【解决方案2】:

    你可以改用这个脚本,http://www.sonassi.com/knowledge-base/magento-kb/mass-update-stock-levels-in-magento-fast/

    附带说明,如果您的 CSV 中有 5000 行,您应该保留之前上传的文件,然后对实际更改的行执行比较 - 这样,您只会修改很多产品数量较少。

    【讨论】:

    • 感谢您的回复!是的,我将使用更大的 CSV,比如 6500 个产品。所以这不是一个选择,但感谢您的回答!
    • 为什么不能选择?您只需要更新发生变化的库存水平 - 当只有少数产品库存发生变化时,更新所有产品库存毫无意义。
    • 因为我想每小时更新一次库存,因为我的制造商每小时都会导出一个新的 CSV 文件。但那是6500个产品左右。已经尝试过该脚本,但它需要超过 120 秒(我的执行时间)。我的 startpost 中的脚本就像一个魅力,但当它没有库存时会更新数量。
    • 没关系。但是您显然不需要更新 6500 种产品除非所有 6500 种产品的库存水平发生了变化。您只需要更新实际发生变化的库存水平。这就是为什么我说,保留上次运行的 previous 库存级别文件,然后比较两者以检查 实际 更改了哪些行 - 然后只需导入结果文件。我非常怀疑每小时 6500 种产品的库存水平正在变化。我们对拥有 100 万种产品的商店进行库存同步 - 我们没有那种销售率,即使是每天。
    • 好的,我现在明白你的意思了。但是,我该怎么做呢?我可以制作一个脚本,在与完整的 CSV 比较时搜索 CSV 中的差异并使用最终库存进行输出吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多