magenit/magento2-customers-import

从 Json 或 CSV 导入客户

安装: 3

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:magento2-module

1.0.0 2024-04-11 08:58 UTC

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 主要函数以覆盖

  1. setAllowedFileExtension
  2. prepareDataFromFile
  3. prepareDataForProcessing(请遵循 customerInterface)

未完成的事项

未进行单元测试,因为它需要更多时间和精力,因此由于时间限制,难以在此测试中实现。