oro/commerce-akeneo

Akeneo PIM OroCommerce 连接器。


README

新维护者

我们想通知您,OroInc 到 Creativestyle 的仓库维护责任最近已移交。这次过渡旨在提高 OroInc 项目的开发和支持,为用户和贡献者提供无缝体验。

简要概述

此扩展允许您连接 OroCommerce 企业版Akeneo PIM 企业版,并利用后者丰富的产品信息管理功能来管理您的 OroCommerce 驱动的网店。结合个性化的 B2B 购买体验和引人入胜的产品体验,以最大化内容营销投资回报率,并在 B2B 电子商务游戏中保持领先。

描述

Akeneo 是一个产品信息管理 (PIM) 解决方案,它提供了一个单一的位置来收集、管理和丰富您的产品信息,创建产品目录并将其分发到您的销售和电子商务渠道。与 OroCommerce 集成后,Akeneo 使您能够更快、更轻松地创建和交付引人入胜的产品体验,以满足您的在线客户。

使用此扩展,您将能够从 Akeneo 同步以下数据到 OroCommerce

  • 属性和属性选项
  • 属性家族和属性家族组
  • 可配置产品、简单产品以及支持的所有属性的产品数据
  • 类别和类别树

兼容性

** Akeneo 支持 older 客户端版本,新功能不可用。**

安装

  1. 添加 composer 包
composer require "oro/commerce-akeneo:5.0.*"
  1. 遵循 设置指南

  2. 配置 消息队列

** 推荐的时间限制选项值是 30 秒 --time-limit=+30seconds

模式

请确保您没有任何挂起的模式更新更改或实体和迁移不一致

> php bin/console --env=prod doctrine:schema:update --dump-sql

[OK] Nothing to update - your database is already in sync with the current entity metadata.

OroCloud

应用程序模式更新

使用 计划任务 添加临时文件清理

orocloud_options:
  schedule:
    clear_akeneo_temp_files:
      command: 'find /mnt/ocom/app/www/var/data/importexport/akeneo/ -type f -mtime +7 -delete'
      minute: '0'
      hour: '7'
      month: '*'
      monthday: '*/7'
      weekday: '*'

数据集

连接器支持并测试了以下数据集

  • 区域设置:4
  • 货币:2
  • 目录
    • 级别:4,子级:1000
    • 级别:4,子级:1000
  • 属性组:每个属性家族 15 个
  • 属性:400,5% 可本地化,2% 可作用域,1% 可本地化和可作用域,100% 可在网格中使用
  • 属性家族:50,每个属性家族最多 100 个属性
  • 产品:50,000,包括图片

在 Oro 端设置集成

创建一个新的集成以开始从 Akeneo 同步数据到 OroCommerce。

  1. 在 OroCommerce 中,转到主菜单中的 "系统 > 集成 > 管理集成",然后单击 "创建集成"。

  2. 选择 "Akeneo" 作为类型以加载更多与集成相关的字段来完成配置。

  3. 在 "常规" 部分,指定集成的名称(例如,Akeneo)以及以下用于成功连接到 Akeneo API 的凭据

    • Akeneo URL - 您 Akeneo 账户的地址。
    • 用户Client ID - 用于验证您的账户的标识符。要创建ID,请访问Akeneo应用程序中的“系统 > 连接”。
    • 用户密钥 - 在Akeneo应用程序的“系统 > 连接”中生成的密钥。
    • Akeneo用户名 - 管理员将用于登录Akeneo应用程序的名称。
    • Akeneo密码 - 管理员将用于登录Akeneo应用程序的密码。
  4. 在填写完所有设置字段后,单击“检查Akeneo连接”。当连接失败或成功时,会弹出相应的消息。

  5. 如果连接成功建立,以下字段将填充从Akeneo检索到的设置。在连接失败的情况下,字段保持不变。

    • 渠道 - Akeneo特定的数据源。每个渠道都有一组属性,用于定义应包含在渠道中的数据。通过选择所需的渠道,您可以请求与此特定渠道相关的数据(产品、货币或区域)。例如,产品列表或英文产品描述可能因渠道而异。

      如果所选渠道的数据在初始同步后已更改,请单击“刷新渠道”以重置当前配置并从Akeneo检索最新数据。

    • 同步产品 - 定义您想要同步的产品类型的设置。默认情况下,我们同步所有产品,但您可以选择仅同步已发布的选项。

    • 产品单位属性名称 - 包含产品单位名称的Akeneo文本属性。

    • 产品单位精度属性名称 - 包含单位精度的Akeneo数值属性。

    • 货币 - 从Akeneo检索到的货币选项。如果OroCommerce中某些货币不可用,则不会导入。从列表中选择一个或多个产品货币。如果没有选择货币,将弹出相应的错误消息,需要您至少选择一个货币。

      如果货币自初始同步以来已更新,请单击“刷新渠道”以重置当前配置并从Akeneo检索最新数据。

    • 区域 - 定义Akeneo左侧的区域如何映射到右侧的OroCommerce区域。您可以设置任何映射行为,例如 EN. 到 EN.,或 FR. 到 EN.

      注意:请记住,您不能映射相同的区域多次或留空字段。因此,如果您没有合适的Oro区域来匹配Akeneo区域,您可以在Oro文档中的本地化指南中进行配置或启用。

      如果区域自初始同步以来已更新,请单击“刷新渠道”以重置当前配置并从Akeneo检索最新数据。

    • 根类别 - 在Oro应用程序中导入Akeneo类别的内容根节点。您可以在主目录中创建一个特定的父类别,用于存储从Akeneo上传的所有类别。从下拉列表中选择此类别。

    • 价格表 - 您将从中导入Akeneo价格的定价表。此定价表有助于区分具有多个价格选项的产品价格。从下拉列表中选择必要的定价表或直接在集成页面上创建一个新的定价表,方法是单击列表旁边的“+”。

    • 产品过滤器 - 该过滤器允许您嵌入必要的代码,以同步您所需的产品。由于此过滤器通过API请求传递,因此必须以JSON格式填写。有关格式和可用于产品的筛选器选项的更多详细信息,请参阅Akeneo PIM文档中的筛选器部分

      注意:您的输入会即时验证。如果收到验证警告,请确保纠正代码或报告的任何问题。

    • 属性过滤器 - 该过滤器允许您限制导入的属性列表。值必须是属性代码,以分号分隔。

      示例: sku;descr;price;custom

      注意:如果未在保存集成之前定义,则将导入所有属性。

    • 图像属性过滤器 - 该过滤器允许您限制导入的图像属性列表。值必须是属性代码,以分号分隔。

      示例: image;picture

      注意:该过滤器扩展了属性过滤器,无需重复列出属性代码。

    • 从简单产品合并图像到可配置产品:将简单产品的图像复制到其可配置父产品。

    • 多级产品 - 启用或禁用从两级产品模型(第一个为“根产品模型”,第二个为Akeneo中的“子产品模型”)创建的单独可配置产品。

    • 属性映射 - 将Akeneo属性值复制到系统或自定义产品属性中的映射。

      示例 1: name:names; - Akeneo中的name(文本)属性作为产品属性Akeneo_name导入,并额外复制到names产品属性。

      示例 2: description:descriptions; - Akeneo中的description(文本)属性作为产品属性Akeneo_description导入,并额外复制到descriptions产品属性。

      示例 3: meta_titles:metaTitles; - Akeneo中的meta_titles(文本)属性作为产品属性Akeneo_meta_titles导入,并额外复制到metaTitles产品属性。

      注意:Akeneo属性和产品属性类型应匹配(Akeneo_name和names都是多对多到本地化回退值实体)。

    • 品牌引用实体代码 - 引用实体代码以作为品牌实体导入并链接到产品。

    • 品牌属性映射 - 将Akeneo属性值复制到系统或自定义品牌字段的映射。

      示例: label:names; - Akeneo中的label(文本)属性导入为品牌字段names

      注意:无法向品牌添加字段,只有现有字段可用。

    • 连接器 - 通过选择/取消选择相关连接器来同步类别、产品或两者的连接器。

    • 默认所有者 - 所有者确定可以管理集成及其同步数据的用户列表。在集成中导入的所有实体都将分配给所选用户。默认情况下,该字段已预填充为创建集成的用户。

  6. 状态字段显示集成的日志,包括连接器执行的日期和状态以及它提供的统计信息。

  7. 指定集成的所有详细信息后,单击“保存并关闭”。集成已成功配置,现在将出现在集成网格中。

现在,您可以通过单击右上角的相关按钮来停用、删除、取消或安排同步。

同步数据

通常,集成数据会自动同步。

要手动启动同步,请单击右上角的“安排同步”。等待数据同步。

注意:请记住,Akeneo OroCommerce 集成仅实现单向同步,这意味着 Akeneo 的更改将始终覆盖 OroCommerce 中的冲突。

点击“检查作业进度”链接查看同步状态。

注意:每次您从 Akeneo 同步 新的产品属性时,都会在 Akeneo 集成页面和产品属性页面(产品 > 产品属性)的右上角出现“更新架构”按钮。刷新集成更新页面并单击“更新架构”按钮以应用更改并启用产品属性。否则,属性将不可用。请注意,更新架构会将 Oro 实例设置为维护模式,因此在单击按钮之前建议检查是否没有正在运行的关键进程。

注意:系统 > 本地化 > 翻译 中点击“更新缓存”按钮以应用翻译。

一旦架构更新完成,您可以安排另一次同步。要立即安排完整同步,请再次按“安排同步”按钮。

限制

由于 Akeneo 和 OroCommerce 之间的差异,您应考虑一些限制。

  • 当您在 Akeneo 端创建新属性时,直到在集成页面上手动按下“更新架构”按钮更新架构,它们才不会保存到 OroCommerce 中的产品信息。
  • 当您在 Akeneo 中添加选择或多选属性时,直到更新架构,选项才不会同步。
  • Akeneo 日期字段类型可以针对每个区域设置不同的值。OroCommerce 中无法实现相同的行为。因此,它被导入为本地化回退值。
  • Akeneo 多选字段可以针对每个区域设置不同的值。在 OroCommerce 中,将组合来自各种区域的所有值。
  • Akeneo 选择字段可以针对每个区域设置不同的值。在 OroCommerce 中,使用默认区域的值。
  • 在 OroCommerce 中,对产品进行验证,这可能会导致某些产品在导入时被跳过,因为 Akeneo 中的字段要求不同。请在集成状态中查看详细信息。
  • Akeneo 中的 SKU 可以包含空格。将 oro_product.sku.regex_pattern 参数更改为扩展 SKU 验证。
  • Akeneo 中不需要属性系列。在 OroCommerce 中,始终需要属性系列。
  • OroCommerce 不支持多个类别,只使用列出的第一个类别进行产品分配。
  • OroCommerce 不支持按货币定价,只使用列出的最后一种货币的价格进行产品分配。
  • 类别树重建在类别导入后开始。
  • 默认禁用可选监听器。请手动重新索引数据和重新计算价格。