有一个可用于 Snipcart的Javascript API 。
它确实允许动态添加产品,但是,自定义字段的语法略有不同。文档中的示例Snipcart.api.items.add
显示如何使用自定义字段(为简洁起见,删除了未使用的字段):
Snipcart.api.items.add({
"id": "SMARTPHONE",
"name": "Smartphone",
"url": "/",
"price": "399.00",
"customFields": [{
"name": "Memory size",
"options": "16GB|32GB[+50.00]",
"value": "32GB"
}]
});
因此customFieldX
,您可以将数组传递给customFields
. 下拉格式仅在您传递options
. 对于您的用例,这将变为:
Snipcart.api.items.add({
"id": "SMARTPHONE",
"name": "Smartphone",
"url": "/",
"price": "399.00",
"customFields": [{
"name": "configuration",
"value": "{\"option1\":\"value1\"}" //...
}]
});
但是,自定义字段会显示给客户,这并不适合向他们显示原始 json 数据。要传递隐藏数据,您可以改用metadata
which 已经期望 JSON 对象:
Snipcart.api.items.add({
"id": "SMARTPHONE",
"name": "Smartphone",
"url": "/",
"price": "399.00",
"customFields": [{
"metadata": {
"configuration": "configuration data"
}
});