creativestyle/commerce-akeneo

Akeneo PIM OroCommerce 连接器。


README

新维护者

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

  • 从版本 5.1 开始,将引入新的命名空间和包名,作为变更的一部分。

简要概述

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

描述

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

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

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

兼容性

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

安装

  1. 添加 composer 包

版本 <= 5.0

composer require "oro/commerce-akeneo:5.0.*"

版本 >= 5.1

composer require "creativestyle/commerce-akeneo:5.1.*"
  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 个属性
  • 产品:50000,包括图片

在 Oro 端设置集成

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

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

  2. 选择“Akeneo”作为类型,以加载更多集成相关字段以完成配置。

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

    • Akeneo URL - 您 Akeneo 账户的地址。
    • 用户 ClientId - 一个用于验证您的账户的标识符。要创建 ID,请转到 Akeneo 应用程序中的“系统 > 连接”。
    • 用户 Secret - 在 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 导入价格的该价格表。如果产品有多个价格选项,则此价格表将有助于区分 Akeneo 价格和其他价格表。从下拉列表中选择必要的价格表或直接从集成页面创建一个新的价格表,方法是单击列表旁边的“+”。

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

      注意:您的输入将在进行中验证。如果您收到验证警告,请确保纠正代码或任何报告的问题。

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

      示例: sku;descr;price;custom

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

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

      示例: image;picture

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

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

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

    • 属性映射 - 将Akeneo属性映射到系统或自定义产品属性。

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

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

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

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

    • 品牌参考实体代码 - 导入为品牌实体并链接到产品的参考实体代码。

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

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

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

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

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

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

  7. 一旦指定了集成的所有详细信息,请点击“保存并关闭”。集成已成功配置,现在将显示在集成网格中。

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

同步数据

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

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

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

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

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

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

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

限制

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

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