Получение текущего идентификатора продукта с помощью Shopify API для вызова Javascript API

Я занимаюсь разработкой приложения Shopify, которое использует службу динамических изображений DaisyAPI для Shopify. Чтобы правильно обращаться к Daisy API, мне нужно знать, на какой Продукт смотрит клиент. Похоже, чтобы надежно сделать это, мне нужно будет манипулировать их темой product.liquid, чтобы вставить скрытое значение, содержащее идентификатор продукта, чтобы JQuery мог получить это значение и вставить его в вызов API.

Как лучше всего обеспечить, чтобы каждая страница продукта содержала идентификатор продукта, чтобы jQuery мог его надежно найти? Я не замечаю чего-то очевидного?

Большое спасибо!


person Hairgami_Master    schedule 24.08.2012    source источник


Ответы (2)


Вам не хватает очень очевидного и крутого жидкостного фильтра.

В Liquid выкачайте объект для его JSON.

var p = {{ product | json }};

А потом поехать в город ... на клиенте далеко не уедешь без этой концепции. Получить человека JSON ... получить JSON ...

person David Lazar    schedule 24.08.2012
comment
Спасибо, Дэвид. Могу ли я попросить каждого из моих клиентов приложения вручную управлять своим файлом Liquid? Или у них есть способ сделать это через API? Или Shopify анализирует теги Liquid даже во внешне загруженных файлах Javascript? - person Hairgami_Master; 25.08.2012
comment
Вы можете прочитать их файл product.liquid, скопировать его в свой собственный (скажем, product.customized.liquid), отредактировать свой, чтобы он работал хорошо, а затем добавить свой в их магазин, а затем просто проинструктировать их использовать ваш специальный продукт. подгонянная жидкость. Когда они удаляют ваше приложение, они остаются с вашим Liquid, сидящим в их магазине ... но это легко удалить ... и им легко повторно подключить все, что они хотят. - person David Lazar; 25.08.2012
comment
Дэвид: Большое спасибо за вашу помощь. Еще один вопрос: в документации API ничего не упоминается о получении или размещении отдельных файлов .liquid. Похоже, я могу загрузить совершенно новую тему в виде файла .zip, но это все. Есть ли метод файла .liquid в API, который мне не хватает? - person Hairgami_Master; 25.08.2012
comment
Почему вы не проголосовали за мой ответ? Вы имеете дело с активами, когда имеете дело с файлами Liquid ... взгляните на часть API, относящуюся к активам. - person David Lazar; 25.08.2012
comment
Ах, спасибо. Я не поддерживаю ответ, потому что я так взволнован получением JSON! - person Hairgami_Master; 25.08.2012

Другой вариант - использовать Ajax API для запроса продукта. Если вы знаете, что находитесь на странице продукта, просто сделайте запрос по тому же URL-адресу и добавьте .json. После этого у вас будет json-представление продукта, с которым вы сможете делать все, что захотите.

Чтобы ввести js в тему, вы можете использовать тег скрипта, который загрузит js с вашего сервера в магазин.

person John Duff    schedule 24.08.2012
comment
Привет, Джон. Спасибо за помощь. Отличный трюк, не подумал об этом! - person Hairgami_Master; 25.08.2012
comment
+1 за упоминание о том, что вы можете использовать json-трюк со страницей продукта. - person Scott Flack; 14.11.2013