如何从 id_attributes 的数组中获取 combinationId

How can I get combinationId from array of id_attributes

我在 prestashop 模块中使用 Cart::updateQty() 函数。我也想使用 $id_product_attribute 参数,但是当我只有 id_attributes 数组时,我无法为此找到所需的值。 我需要类似于在产品页面上默认选择产品属性然后将其添加到购物车的行为,但我想在服务器端执行此操作。

我能发现的是,当我在产品页面上更改产品属性时,html 输入 id="idCombination" #idCombination 正在用适当的值填充,然后用 ajax 将其 POST 发送到服务器。不幸的是,我无法弄清楚实际搜索是如何进行的以及如何在 js 或 php 代码中执行此操作。

如有任何帮助,我们将不胜感激。

在默认产品页面中,这些组合通过 ProductController.php 中的变量 $combination 和方法 assignAttributesGroups() 进行传输,然后在 product.tpl 中通过以下方式定义了一个 js 变量条件

{if isset($combinations) && $combinations}
    {addJsDef combinations=$combinations}
{/if}

在那之后,product.js 文件中发生的所有事情都会在每次更改后执行所有切换作业并替换 id="idCombination"。 因此,您可以重复默认方法来实现您的要求,即使它看起来有点复杂。另外,我认为你不需要这样一个包含所有信息的完整 $combination 变量,你可以只添加你需要的。希望能给你指明工作方向。