Shopware 6.5购物车Twig模板中如何访问自定义字段?
Shopware 6.5购物车Twig模板访问订单项自定义字段的方法
Shopware 6.5里可以访问订单项的自定义字段,但和6.4的方式不同——6.5重构了购物车订单项的结构,原payload下的customFields不再存储自定义字段数据。
正确访问方式
在Twig模板中,直接通过lineItem.customFields获取自定义字段,示例:
{{ lineItem.customFields.your_custom_field_key }}
关键注意事项
- 自定义字段配置:确保你的自定义字段是关联到「订单项(LineItem)」实体的,而非商品或其他实体。
- 代码添加订单项的赋值逻辑:如果通过后端代码添加订单项到购物车,要使用
setCustomFields方法而非旧的setPayloadValue:// 6.5正确写法 $lineItem->setCustomFields(['your_custom_field_key' => 'value']); // 6.4旧写法(6.5不再生效) // $lineItem->setPayloadValue('customFields', ['your_custom_field_key' => 'value']); - API添加购物车项的格式:如果通过API添加购物车项,需将
customFields放在订单项的根层级,而非payload内部:{ "lineItems": [ { "type": "product", "id": "your-product-id", "quantity": 1, "customFields": { "your_custom_field_key": "value" } } ] }
排查无数据的情况
如果{{ dump(lineItem) }}里看不到customFields,可从以下方向排查:
- 检查购物车加载逻辑,确保查询LineItem时包含
customFields关联; - 确认添加订单项时,自定义字段数据已正确写入
customFields属性,而非旧的payload。
内容的提问来源于stack exchange,提问作者Henning
相关产品推荐
相关产品推荐

