ergonode/integration-shopware

Shopware Ergonode集成

安装: 0

依赖项: 0

建议者: 0

安全: 0

星星: 3

关注者: 1

分支: 0

开放问题: 3

类型:shopware-platform-plugin

3.0.1 2024-08-28 06:41 UTC

This package is auto-updated.

Last update: 2024-09-28 06:47:13 UTC


README

描述

此插件同步Ergonode到Shopware的数据。它利用Ergonode的GraphQL API和Ergonode的流。

主要功能

分类同步

此插件同步Ergonode的分类和单个分类树到Shopware。首先,它检查categoryTreeStream以查看主树自上次同步以来是否已更改。如果已更改,则插件使用游标遍历所有分类叶。在Shopware中找不到的分类使用代码作为其名称创建。此时不会持久化翻译。在Shopware中已存在的分类将更新其父分类。

完成后,或者当检测到没有变化时,将获取categoryStream并持久化分类翻译。

缺失的功能

  • 从Ergonode树中删除的分类在Shopware中不会被删除
  • 树中的分类顺序不会同步到Shopware

产品同步

使用productStream同步产品。主要字段(直接在Shopware的ProductEntity中找到的字段)可以在“设置 > Ergonode集成 > 属性映射”中进行配置。一个Shopware字段可以映射到一个Ergonode字段,一个Ergonode字段可以映射到多个Shopware字段。这些映射不是必需的;如果未提供此类映射,插件将使用Ergonode的代码作为产品名称。

在属性同步后,Ergonode的类型的属性在Shopware中作为属性出现,必须首先执行属性同步。

产品交叉销售

可以通过在Ergonode中创建产品关系来设置产品交叉销售,然后在插件配置中在“Ergonode属性作为交叉销售”下选择这些字段。

产品可见性

可以使用Ergonode的段功能设置产品可见性。在Shopware插件配置中,可以为每个销售渠道设置段API密钥,并相应地更新每个销售渠道的产品可见性。

语言

Ergonode语言同步到Shopware。

执行同步和调度

同步过程作为一系列计划任务添加,定期运行。可以在“设置 > Ergonode集成 > 同步”中手动触发过程。任务使用锁定系统,因此一次只运行一个给定类型的任务。这些任务在适用的情况下使用Ergonode的游标,这意味着它们仅处理自上次同步以来发生的变化。

同步历史记录

同步历史记录可以在“设置 > Ergonode集成 > 导入历史”下查看。

配置

所需的最小配置涉及在Shopware中设置插件配置。所需设置包括

  • Ergonode GraphQL API端点(全局设置)
  • Ergonode API密钥(可以按销售渠道设置)
  • 要同步的分类树代码

开发

开发笔记

ProductSyncProcessor可能无法正确处理自上次同步以来已“分离”的变体。

当卸载插件并选择“永久删除所有应用程序数据”时,将删除所有插件表和映射。这意味着所有映射都将丢失,下一次同步将创建重复的实体。

测试

在插件根目录下,您可以使用make命令,然后执行您想要的测试

make phpstan make phpunit make phpmd

构建ZIP文件

要构建Store包,请执行

make release

注意:make文件是从插件根目录使用的。

缓存

为了缓存Ergonode GQL API请求,您需要将src/Resources/config/parameters.yml中的参数ergonode_integration.use_gql_cache更改为true,并在您的类中使用Ergonode\IntegrationShopware\Api\Client\ErgonodeGqlClientInterface而不是具体的Ergonode\IntegrationShopware\Api\Client\ErgonodeGqlClient类。缓存的客户端类是Ergonode\IntegrationShopware\Api\Client\CachedErgonodeGqlClient

更多缓存配置选项可以在src/Resources/config/packages/cache.yml中找到。

要清除缓存池,请运行bin/console cache:pool:clear ergonode_gql_request_cache

可用的缓存池

  • ergonode_gql_request_cache
  • ergonode_attribute_mapping_cache

插件版本兼容性