我在问一个问题
我们在集成中使用 PIM 1.4 版本,并计划在一个月后升级到 1.5。
故事
我们有自定义产品实体,可以为产品添加新的关系。 它是通过连接表的 ManyToMany 单向关系。
问题
更新/覆盖完整性计算器以能够在其计算中添加其他产品数据的最佳方法是什么。 可能有配置文件之类的东西。 可能还有另一种最好的方法来做到这一点。
谢谢!
你好@a2xchip ,
可悲的是,目前,您必须覆盖CompletenessGenerator
。 很遗憾,因为它是 PIM 中最后一个不能通过注册表轻松处理自定义属性类型的地方之一。 我们知道我们必须重写这部分,它在我们的待办事项列表中,但我还不能为您提供预计到达时间。
这部分相当敏感和复杂。 您要计算完整性的数据的性质是什么?
如果它与 ProductValue 相关联,我建议您执行与我们对价格所做的完全相同的操作。 看看方法prepareCompletePrices
。 这可能是您需要实现的目标的良好开端。 您还需要覆盖方法getExtraJoins
和getExtraConditions
以加入和查询新表。
不要犹豫,更多地解释你的问题,或者举个例子,这样我们才能更好地帮助你;)
你好@jjanvier
感谢您的快速和全面的回应! 我认为这给了我一个很好的起点。 数据不链接到产品价值实体,而是链接到产品实体。
我在产品编辑表单中添加了图像选项卡,并创建了链接到文件信息界面的图像(集合)属性。
manyToMany:
images:
targetEntity: Akeneo\Component\FileStorage\Model\FileInfoInterface
聚苯乙烯
对于出口,我们使用 EnhanceConnector 调整为出口 100% 完整的产品。 而且我不确定如何确保 100% 完整的产品至少有一张图片与之相关联。
你必须看看getMainSqlPart
方法@a2xchip。 这会生成复杂的 SQL 查询来填充完整性。 也许它可以通过覆盖我之前提到的方法getExtraJoins
和getExtraConditions
来解决您的问题。 通过覆盖这 2 个方法,这会将您的额外逻辑添加到getMainSqlPart
。
但这取决于您的需求。 这取决于您在填写至少 1 个(或 2 个或 3 个或 X)或所有图像时是否认为您的产品完整。
所以我的建议是首先开始覆盖 2 个方法getExtraJoins
和getExtraConditions
以了解完整性是如何工作的。 如果您需要更多自定义逻辑,请查看我们为价格所做的工作。
希望我的解释对你有帮助^^
如果您遇到一些困难,请不要犹豫,回到这里;)
@jjanvier非常感谢你,我会遵循你的建议 :-) 我认为他们会为我节省很多时间!