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

您会看到两个数组添加到 $configattributesoptionPricesattributes 似乎包含用于下拉列表的标签。 optionPrices 包含用于在客户选择不同选项(关联不同价格)后刷新价格的价格。

这将很难在下拉列表中显示价格差异,因为价格差异值需要在 JavaScript 中计算。

一个相对容易实施的解决方案是这样的,但这将显示每个选项的最终价格,而不是价格差异:

  • 创建一个在 getJsonConfig 执行后触发的 Magento 2 插件模块:afterGetJsonConfig()
  • 然后在afterGetJsonConfig()中使用getJsonConfig的输出:$config,这个数组包含attributespriceOptions数组等。
  • 第一次json解码$config
  • 然后遍历属性数组以确定可用选项
  • 对于每个选项,在 priceOptions 数组中找到匹配的价格。
  • 通过将价格(格式正确)连接到现有标签来更新属性数组中的每个选项标签。
  • jsonencode $config
  • return $config