3

我正在建立一个非常小的电子商务网站来销售可定制的珠宝,所以我有一个图形配置器,可以让你设计珠宝,然后你可以将它添加到购物车中。产品应该有一个 JSON 格式的自定义字段,其中包含项目配置。我看到 Snipcart 有data-item-custom{x}字段,但只填充了下拉列表......不适合我。

你认为我可以用 Snipcart 处理这种情况吗?我可以简单地通过 JS 更新 HTMLdata-item-字段内容吗?还是通过 JS 将商品添加到购物车?

addToCart({
 name: 'Bracelet 1',
 customField1: 'JSON HERE'
})
4

1 回答 1

4

有一个可用于 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 数据。要传递隐藏数据,您可以改用metadatawhich 已经期望 JSON 对象:

Snipcart.api.items.add({
    "id": "SMARTPHONE",
    "name": "Smartphone",
    "url": "/",
    "price": "399.00",
    "customFields": [{
    "metadata": {
        "configuration": "configuration data"
    }
});
于 2019-05-07T18:36:54.510 回答