SuperAPI AI 工具集

bagisto-data-transfer

数据与分析

查看项目

更新于 10-15 17:24

技能介绍

用途:该技能面向 Bagisto 的 packages/Webkul/DataTransfer 包,负责把文件中的批量记录导入 Bagisto。包内自带产品、客户、税率三个导入器,以及一个分批执行校验、导入、关联和索引的队列流水线。仅支持导入,不含导出;出站数据由 DataGrid 自身的导出处理。

主要能力:导入器在 Config/importers.php 的顶层 importers 键注册,管理端创建/编辑界面直接遍历 config('importers'),新增条目会自动出现在类型下拉框中。导入通过 config('importers.'.$type.'.importer') 解析类,数组键即导入记录上存储的类型,重命名键会使已有导入孤立。需为 csv、xls、xlsx、xml 四种格式都提供示例路径,缺失文件会形成坏链接。

使用方式:导入器需继承 Helpers\Importers\AbstractImporter,并实现 validateRow(array $rowData, int $rowNumber): bool 与 importBatch(ImportBatchContract $importBatchContract): bool 两个方法,其余通过属性或钩子声明。文件源由 Helpers\Sources\ 提供,均继承 AbstractSource,导入器读取 $this->source,不自行打开文件。

限制与要求:行数据必须先校验再写入,validateRow() 不得有副作用;必须分批处理,AbstractImporter::BATCH_SIZE 为 100,流水线每批派发一个任务,不可整文件载入内存;写入须经仓库;所有消息通过 data_transfer:: 命名空间的 trans() 输出,覆盖 22 种语言;需如实声明 isLinkingRequired() / isIndexingRequired();队列必须运行,QUEUE_CONNECTION=sync 会在请求内联执行并超时。调用任何变更完成前需先使用 bagisto-change-verification 子技能。