Для 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
, который уже ожидает объект JSON:
Snipcart.api.items.add({
"id": "SMARTPHONE",
"name": "Smartphone",
"url": "/",
"price": "399.00",
"customFields": [{
"metadata": {
"configuration": "configuration data"
}
});