在 prestashop 1.7 中保存产品后获取类别的问题

问题描述

后台保存新产品后,我需要向外部 API 发送一些信息。 我已经覆盖了 Product 类并在 add() 函数的末尾添加代码,就在

Hook::exec('actionProductSave',array('id_product' => (int) $this->id,'product' => $this));

和 return 语句之前。所有信息都正确发送(名称、价格等),除了认类别,出于某种原因,无论实际选择什么,它总是作为家庭类别发送。但如果我去后台查看产品,就会出现正确的类别,而不是主页。

我尝试从 $this->id_default_category 获取类别,我也尝试从数据库中选择它,结果是一样的。

我唯一的结论是在 add() 函数执行后某个时间更新了类别,但我无法弄清楚在哪里。任何为我指明正确方向的帮助将不胜感激。

解决方法

我建议你创建一个非常简单的模块 触发 hookActionProductUpdate。 这样你就可以使用钩子参数($params) 获取产品数据并将其直接发送到外部 API 无需接触 Prestashop 核心。

您可以在此处了解更多信息: https://devdocs.prestashop.com/1.7/modules/introduction/