magenit / magento2-customers-import
从 Json 或 CSV 导入客户
1.0.0
2024-04-11 08:58 UTC
Requires
- php: ~7.2.0||~8.1.0||~8.2.0||~8.3.0
- magento/framework: 102.0.*|103.0.*
This package is auto-updated.
Last update: 2024-09-11 14:03:40 UTC
README
需求
我们希望您编写支持导入客户及其地址的代码。目前的要求是从示例 CSV 或 JSON 中导入,但代码应编写以支持将来从其他来源导入。我们有意使用了略带歧义的“配置文件”一词,以允许未来的范围,例如两个具有不同列的 CSV 文件,因此有两个配置文件。
需要支持的两个示例文件已提供。
代码的用户界面应通过以下 CLI 命令实现:
bin/magento customer:import <profile-name> <source>
因此,要从 CSV 和 JSON 分别导入,用户将执行以下任一命令(如果您愿意,可以稍微更改命令格式):
bin/magento customer:import sample-csv sample.csv
bin/magento customer:import sample-json sample.json
要考虑的模块
- 整洁、简洁且易于阅读的代码
- 良好的架构,支持 SOLID 原则
- 特别是,通过扩展而不是修改来添加支持额外配置文件的能力
- 遵循最新的 Magento 标准
- 代码是您自己的(例如,不要复制粘贴),尽管鼓励通过 composer 正确使用库(使用的任何库都必须是公开可用的)
- 您的代码应根据良好的工程实践进行单元测试
开发解决方案
已修改命令,因此我们可以消除传递1个额外的参数“配置文件”。期望的键=>值在 json 和 cav 或任何未来扩展的文件中必须遵循最小要求列。
bin/magento customer:import <source path>
如何测试
composer require magenit/magento2-customers-import php bin/magento setup:upgrade php bin/magento cache:clean 将 csv 和 json 文件存储在 val/ImportExport 目录中(推荐且为良好方法)
执行命令
php bin/magento ng:customers:import --profile-file=var/importExport/sample.csv
或/和
php bin/magento ng:customers:import --profile-file=var/importExport/sample.json
验证管理员。
在需求实现(要考虑的模块)中实现目标
- 整洁、简洁且易于阅读的代码:是
- 良好的架构,支持 SOLID 原则:是
- 特别是,通过扩展而不是修改来添加支持额外配置文件的能力:是
- 遵循最新的 Magento 标准:是
- 代码是您自己的(例如,不要复制粘贴),尽管鼓励通过 composer 正确使用库(使用的任何库都必须是公开可用的):是
- 您的代码应根据良好的工程实践进行单元测试:部分但没有(由于时间限制。)
如何扩展此模块以支持不修改代码的额外配置文件
创建自定义模块和命令。扩展 MageNit\CustomersImport\Model\CustomerImport 主要函数以覆盖
- setAllowedFileExtension
- prepareDataFromFile
- prepareDataForProcessing(请遵循 customerInterface)
未完成的事项
未进行单元测试,因为它需要更多时间和精力,因此由于时间限制,难以在此测试中实现。