frizus/importyml

将 .yml 文件导入 Bitrix

0.9.1 2021-05-08 18:17 UTC

This package is auto-updated.

Last update: 2024-09-09 01:19:42 UTC


README

Latest Stable Version License Total Downloads

将 yml 文件导入 1С-Битрикс

安装

composer require frizus/importyml

描述

脚本支持导入具有以下结构的 UTF-8 yml 文件

<?xml version="1.0"?><!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="2021-04-13 14:15">
  <shop>
    <name>Интернет-магазин Бренд X</name>
    <company>Бренд X</company>
    <url>http://example.com</url>
    <platform>1C-Bitrix</platform>
    <currencies>
      <currency id="RUB" rate="1" />
    </currencies>
    <categories>
      <category id="1">Категория 1</category>
      <category id="2" parentId="1">Подкатегория 1</category>
      ...
    </categories>
    <offers>
      <offer id="1" available="true">
        <url>https://example.com/product-id1/</url>
        <price>500</price>
        <oldprice>600</oldprice>
        <currencyId>RUB</currencyId>
        <categoryId>1</categoryId>
        <picture>http://example.com/images/5bwa35naw35n.jpg</picture>
        <name>Товар</name>
        <description>Описание товара</description>
        <param name="Ширина">500</param>
        <param name="Глубина">400</param>
        <param name="Высота">300</param>
      </offer>
      ...
    </offers>
  </shop>
</yml_catalog>

特点

  • 仅支持货币 RUB,仅支持 基础价格类型,仅支持三个参数:param[name="宽度"]param[name="深度"]param[name="高度"]
  • 可读字段 <offer>offer[id]<url><price>[, <oldprice>]、<currenncyId><categoryId><name><description><param>
  • 商品折扣
  • 支持添加商品的字段/属性/价格/折扣,更新,以及删除 yml 文件中不存在的商品
  • 使用前缀(元素的 外部代码 和折扣的 名称)来定义商品和折扣
  • 可以按前缀删除所有创建的商品和折扣
  • 将类别(<categoryId>)绑定到现有目录分区
  • 图片从本地目录加载
  • 将商业报价合并为一个商品(报价通过相同的链接(<url>)和 GET 参数)以及最低价格和合并参数(<param>
  • 导入时输出调试信息相对不错。未通过 cron 调用

绑定类别

通过文件实现将 yml 文件中的类别绑定到信息块分区,其中绑定的 yml 类别前面是 = 符号(可配置),而绑定的分区后面是 = 符号
类别/分区路径由类别/分区名称和附加的祖先类别/分区组成,用 字符串分隔(可配置)
存在“无分区”的绑定,为此需要写入:类别 1 = (yml 文件中类别 1 的商品表示为无分区信息块的商品), = 分区 1(yml 文件中无类别的商品表示为绑定到信息块分区 1 的商品),=(yml 文件中无类别的商品表示为无分区信息块的商品)
可以生成带有 yml 文件类别名称和信息块分区的绑定文件占位符

Категория 1 = Раздел каталога 1
Категория 1 → Подкатегория 1 = Раздел каталога 1 → Подраздел 1