Magento 自定义模块实现批量导入产品信息 (一)

文章目录

    背景

    通过 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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式