Snipcart通过JS API添加项目

时间:2019-05-05 11:32:37

标签: snipcart

我正在建立一个非常小的电子商务网站来出售可定制的珠宝,因此我有一个图形配置器,可让您设计珠宝并将其添加到购物车中。产品应具有JSON格式的自定义字段,其中包含商品配置。我看到Snipcart有product_id_to_name个字段,但仅填充了下拉菜单……不适合我。

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

data-item-custom{x}

1 个答案:

答案 0 :(得分:1)

Snipcart有一个Javascript API

它确实允许动态添加产品,但是自定义字段的语法略有不同。 Snipcart.api.items.add的{​​{3}}展示了如何使用自定义字段(为简洁起见,删除了未使用的字段):

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,它已经期望有JSON对象:

Snipcart.api.items.add({
    "id": "SMARTPHONE",
    "name": "Smartphone",
    "url": "/",
    "price": "399.00",
    "customFields": [{
    "metadata": {
        "configuration": "configuration data"
    }
});