masterflash-ru / commerceml
1С交换模块
dev-master / 1.0.x-dev
2021-01-10 11:14 UTC
Requires
- php: ^7.2
- laminas/laminas-mvc: ^3.0.1
- masterflash-ru/ado: ^2.0
This package is auto-updated.
Last update: 2024-09-10 19:39:52 UTC
README
为Laminas Framework 3模块,用于Simba系统,由Master Flash工作室提供。尚未在实际网站上调试!!!
安装: composer require masterflash-ru/commerceml
这是一个将1C目录上传到网站的完整模块。结果是MySql中的填充表格和data/1c文件夹中的商品文件。目前不支持包含交易提案(特性)的商品!!!上传后,其他网站模块将根据自身需求处理这些数据。所有工作基于simba.1c标识符的通用事件。
- catalogTruncate - 当进行完整目录加载时调用,清除所有存储和临时表
- catalogImport - 当导入Import.xml部分时调用 - 实际目录,默认调用内部标准解析器
- catalogOffers - 类似于Offers.xml部分,调用标准解析器
- catalogImportComplete - 在将文件类型为import的文件加载到临时存储后调用,根据此事件,外部模块可以处理表中的数据。
- catalogOffersComplete - 在将文件类型为offers的文件加载到临时存储后调用,根据此事件,外部模块可以处理表中的数据。
前三个传递要处理文件的完整路径及其名称,默认优先级为100。
可以禁用标准处理,例如,当1C生成非标准文件时。为了处理,需要为这些事件添加具有simba.1c标识符的监听器。需要在配置中设置 "standartParser"=>false - 在这种情况下,不会安装本模块的1C文件处理器
如果需要在处理过程中执行某些操作,请为指定的事件添加新的监听器,它们将自动调用并传递参数。
支持完整和部分更新目录,但有一些注意事项
- import_1c_category表仅在完整加载目录时清除,因为网站上的树结构基于数值标识符,商品与之相关联。
- 如果有名称更改或新部分的添加,相应的表将相应更改/补充。
- 表之间没有关联,所有内容都按照1C文件中的内容加载
- 其他所有数据,存储表,在加载前总是清除,并只包含当前1C文件中存在的信息
- 商品基于1C标识符与import_1c_category关联。
目录模块必须自行处理价格类型、仓库类型、图片文件、制造商之间的关联。所有这些关联都基于1C标识符。
模块不提供任何API,它只处理交换协议,并具有标准的解析器-处理器。结果存储在配套的MySql表格中。配置中有一个"1c"部分,它完全涉及1C。
"1c"=>[ //логин/пароль для базовой аутентификации 1С "login"=>[ "admin"=>"********", ], "temp1c"=>__DIR__."/../../../../data/1c/", "standartParser"=>true, "clear_after_sec"=>43200, //время в секундах, когда можно очистить временный каталог ],
表格
- import_1c_brend - 生产商,立即生成跳转到生产商描述的可能URL
- import_1c_category - 类别结构,flag_change=1,表示该结构(数据行)有变化,节点之间的连接通过数值标识符
- import_1c_file - 商品的配套文件
- import_1c_price - 商品价格类型
- import_1c_price_type - 价格类型,flag_change=1 - 新类型,flag_change=2 - 变更
- import_1c_properties - 特性目录,type: str,voc,相应地是简单字符串或列表
- import_1c_properties_list - 特性选项列表
- import_1c_scheme - 交换方案信息,信息从交换文件标题(版本、交换日期)中获取
- import_1c_sklad - 商品库存信息(各仓库的库存量)
- import_1c_sklad_type - 可用仓库,内部flag_change=1 - 新类型,flag_change=2 - 变更
- import_1c_tovar - 商品项的详细信息
- import_1c_tovar_properties - 商品特性,如果特性类型是列表,则与列表关联
- import_1c_requisites - 商品的附加信息,存储参数名=》参数值
为了与数据库交互,在应用程序配置中必须声明 DefaultSystemDb
...... "databases"=>[ //соединение с базой + имя драйвера 'DefaultSystemDb' => [ 'driver'=>'MysqlPdo', //"unix_socket"=>"/tmp/mysql.sock", "host"=>"localhost", 'login'=>"root", "password"=>"**********", "database"=>"simba4", "locale"=>"ru_RU", "character"=>"utf8" ], ], .....
与缓存交互的方式类似
..... 'caches' => [ 'DefaultSystemCache' => [ 'adapter' => [ 'name' => Filesystem::class, 'options' => [ // Store cached data in this directory. 'cache_dir' => './data/cache', // Store cached data for 3 hour. 'ttl' => 60*60*2 ], ], 'plugins' => [ [ 'name' => Serializer::class, 'options' => [ ], ], ], ], ], .....