背景
通过 Magento Admin 后台手动批量导入 CSV 太慢(在产品比较多的情况下)。需要等待很长时间。
如果能够通过程序,自动化导入批量的 CSV 文件,那就能大大提升效率,减少繁琐的手动操作及等待时间。
而 Magento 又不支持导入的 RESTful API,也不支持命令行,所以只能使用其他的方案。
Magento 定制化模块
网上找到一个方案,看起来是比较靠谱的:
https://magento.stackexchange.com/questions/359280/import-product-data-programmatically-using-csv
里面推荐使用定制化模块。
什么是 Magento 定制化模块呢?
Magento 2 的定制化模块, 旨在为在线商店添加特定功能或特性。它允许开发人员扩展、定制或修改 Magento 的默认行为,而无需更改核心代码。定制化模块可以引入新的产品类型、支付网关、运输方式或其他功能,以满足独特的业务需求。
模块命名
Magento 定制化模块的命名规则是:VendorName_ModuleName。
- VendorName 是开发者的名字或公司名
- ModuleName 是模块的名字。
例如:Sunzhongwei_ProductImport。
对应的,需要在 app/code 目录下创建一个名为 Sunzhongwei/ProductImport 的目录。默认安装下,app 目录下是没有 code 目录的,需要手动创建
# ls app/
autoload.php bootstrap.php design etc
# mkdir -p code/Sunzhongwei/ProductImport
新建定时任务配置文件
在 app/code/Sunzhongwei/ProductImport 目录下新建一个名为 etc 的目录。
新建文件:
app/code/Sunzhongwei/ProductImport/etc/crontab.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">
<group id="default">
<job name="import_products" instance="Sunzhongwei\ProductImport\Cron\ImportProducts" method="execute">
<schedule>*/5 * * * *</schedule>
</job>
</group>
</config>
其作用是,每 5 分钟执行一次导入任务。
参考
- https://www.mageplaza.com/devdocs/magento-2-module-development/
- https://magento.stackexchange.com/questions/359280/import-product-data-programmatically-using-csv
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式