Magento 2 - 如何在下拉菜单中显示产品价格选择一个选项
Magento 2 - How show product price in dropdown choose an option
我想在可配置产品(选择一个选项)的下拉列表中显示产品差异价格,与在 magento 中一样1.X谢谢大家!
这是 Magento 2 中的 known issue
用于picklist的JavaScript数组是在Class
的方法getJsonConfig()
中生成的
app/code/Magento/ConfigurableProduct/Block/Product/View/Type/Configurable.php
您会看到两个数组添加到 $config
:attributes
和 optionPrices
。
attributes
似乎包含用于下拉列表的标签。
optionPrices
包含用于在客户选择不同选项(关联不同价格)后刷新价格的价格。
这将很难在下拉列表中显示价格差异,因为价格差异值需要在 JavaScript 中计算。
一个相对容易实施的解决方案是这样的,但这将显示每个选项的最终价格,而不是价格差异:
- 创建一个在
getJsonConfig
执行后触发的 Magento 2 插件模块:afterGetJsonConfig()
- 然后在
afterGetJsonConfig()
中使用getJsonConfig
的输出:$config
,这个数组包含attributes
和priceOptions
数组等。
- 第一次json解码
$config
- 然后遍历属性数组以确定可用选项
- 对于每个选项,在
priceOptions
数组中找到匹配的价格。
- 通过将价格(格式正确)连接到现有标签来更新属性数组中的每个选项标签。
- jsonencode
$config
- return
$config
我想在可配置产品(选择一个选项)的下拉列表中显示产品差异价格,与在 magento 中一样1.X谢谢大家!
这是 Magento 2 中的 known issue
用于picklist的JavaScript数组是在Class
的方法getJsonConfig()
中生成的
app/code/Magento/ConfigurableProduct/Block/Product/View/Type/Configurable.php
您会看到两个数组添加到 $config
:attributes
和 optionPrices
。
attributes
似乎包含用于下拉列表的标签。
optionPrices
包含用于在客户选择不同选项(关联不同价格)后刷新价格的价格。
这将很难在下拉列表中显示价格差异,因为价格差异值需要在 JavaScript 中计算。
一个相对容易实施的解决方案是这样的,但这将显示每个选项的最终价格,而不是价格差异:
- 创建一个在
getJsonConfig
执行后触发的 Magento 2 插件模块:afterGetJsonConfig()
- 然后在
afterGetJsonConfig()
中使用getJsonConfig
的输出:$config
,这个数组包含attributes
和priceOptions
数组等。 - 第一次json解码
$config
- 然后遍历属性数组以确定可用选项
- 对于每个选项,在
priceOptions
数组中找到匹配的价格。 - 通过将价格(格式正确)连接到现有标签来更新属性数组中的每个选项标签。
- jsonencode
$config
- return
$config