Проверьте, доступен ли продукт в Shopify, используя javascript - PullRequest
0 голосов
/ 13 января 2020

У меня есть javascript, который обрабатывает список товаров на странице коллекции. Есть ли способ убедиться, что товар доступен, а не на складе. Мне нужно что-то похожее на {% if product.available %}. Но я не хочу менять файл .liquid. Мне это нужно в Javascript.

Ответы [ 2 ]

0 голосов
/ 13 января 2020

У вас есть три варианта получения данных в javascript в Shopify:

  • Если javascript включен как тег / фрагмент кода встроенного скрипта в жидкий файл, тогда вы будете запись javascript жидкость, и вы можете напрямую интерполировать, например, 'var product = "{{product | json}}"'.
  • Вы можете обновить жидкий документ, включив, например, атрибуты с необходимыми данными, например, 'data - 'атрибуты, а затем прочитайте их с javascript из документа. Вы сказали, что это не вариант.
  • Повторно извлеките некоторые данные о сущностях на текущей странице с помощью API-интерфейса Shopify: например, Ajax / Витрина магазина / Shopify Buy SDK.

Это варианты.

0 голосов
/ 13 января 2020

Вы можете получить представление JSON произвольного товара в вашем магазине, выбрав данные из /products/<some-product-handle>.js. При использовании конечной точки .js объект продукта будет включать ряд совокупных параметров, включая product.available, который будет true, если доступен хотя бы 1 вариант в продукте.

Обратите внимание, что Shopify имеет 2 * различные представления продукта, один в конечной точке /products/<some-product-handle>.js и один в конечной точке /products/<some-product-handle.json. Эти два объекта удивительно различаются, и одно из этих различий заключается в том, что конечная точка .json не имеет совокупного значения product.available - вам придется определить это самостоятельно, проверив доступность всех вариантов внутри, если используете эту конечную точку. Это одна из причин, почему я обычно рекомендую использовать конечную точку .js для всех ваших потребностей Javascript.


* Строго говоря, на самом деле есть 3 различных представления продукта: выход из {{ product | json }} отбрасывания из Liquid немного отличается от обеих конечных точек, но в значительной степени совпадает с конечной точкой .js, за исключением того, как структурирован массив product.options

...