#javascript #shopify #liquid
Вопрос:
В настоящее время я создаю раздел продаж в корзине ajax (Бруклинская тема). Мне нужна variant.id продукта в моем файле js**, но понятия не имею, как это сделать. Я перепробовал все, что знаю.
Это код, который работает в любом другом файле (кроме файла js).:
{%- assign product = all_products[settings.upsell_product] -%}
{{ product.variants[0].id }}
Самое забавное, что следующий код работает даже в файле js
{{ settings.upsell_headline }}
Это моя settings_scheme.код файла json:
{
"type": "header",
"content": {
"de": "Cart Upsell"
}
},
{
"type": "text",
"id": "upsell_headline",
"label": {
"de": "Headline"
}
},
{
"type": "product",
"id": "upsell_product",
"label": {
"de": "Upsell Product"
}
}
]
},
Комментарии:
1. это
js
файл илиliquid
файл, который вы используете?2. это файл theme.js.liquid
Ответ №1:
не добавляйте код в theme.js.liquid
settings_scheme.json
храните информацию о теме. Все глобальные данные должны храниться в settings_data.json
. Кроме того, данные генерируются автоматически, section
когда пользователи настраивают тему.
https://shopify.dev/docs/themes/settings#basic-input-setting-types
что вам нужно сделать, так это создать раздел под названием upsell-product.liquid
«Поместить json
туда».
<script>
{%- assign product = all_products[section.settings.upsell_product] -%}
$(document).ready(function(){
console.log({{ product.variants[0].id }});
});
</script>
{% schema %}
{
"name" : "upsell product",
"settings" : [
{
"type" : "text",
"id" : "headline",
"label" : "headline",
"default" : "headLine"
},
{
"type": "product",
"id": "upsell_product",
"label": {
"de": "Upsell Product"
}
]
}
{% endschema %}