InSales API - Asset

Материал из Insales Wiki
Перейти к: навигация, поиск

Типы асетов

Asset::Template - шаблоны
Asset::Snippet  - снипеты
Asset::Media    - картики, js, css

Категории шаблонов

collection - Категория
product    - Товар
page       - Страница
blog       - Блог
article    - Статья
layouts    - Шаблон
account.orders   - Заказы
layouts.checkout - Оформление заказа
order            - Карточка заказа
order_missing    - Заказ не найден

Категория шаблона устанавливается путем добавления названия категории к названию шаблона.

Например:

account.orders.my_template.liquid - Шаблон с названием my_template для раздела заказы

Добавление асета

Запрос: POST /admin/themes/#{theme_id}/assets.xml

Создание текстового асета путем установки поля content

<?xml version="1.0" encoding="UTF-8"?>
<asset>
  <name>product.my_template.liquid</name>
  <content><![CDATA[template for product {{product.title}}]]></content>
  <type>Asset::Template</type>
</asset>

Создание асета путем указания ссылки на исходный файл.

Если указано поле name, то асет будет создан с этим именем, если не указано, то с именем оригинального файла.

<?xml version="1.0" encoding="UTF-8"?>
<asset>
  <name>logo.png</name>
  <src>http://www.insales.ru/assets/images/content/logo.png</src>
  <type>Asset::Media</type>
</asset>

Создание асета путем установки поля attachment.

Содержимое поля attachment должно представлять закодированное в Base64 содержимое файла.

<?xml version="1.0" encoding="UTF-8"?>
<asset>
  <name>logo.png</name>
  <attachemnt>iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9i
ZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2Vo
aUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6
bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2
LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpS
REYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJk
Zi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIg
eG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8i
IHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5
cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5j
b20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRp
ZDpFQ0I3MDhCMDIyMjA2ODExODA4MzlFOThFQ0ZFQjk2QyIgeG1wTU06RG9j
dW1lbnRJRD0ieG1wLmRpZDoyNTlCMkVFMzJCRTYxMUUyQjY5MUZFN0UxNTJE
QjNFRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNTlCMkVFMjJCRTYx
MUUyQjY5MUZFN0UxNTJEQjNFRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQ
aG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9t
IHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjQ5OUIwMzkzMzIwNjgxMTgw
ODM5OEVDQzQ5MzgxQ0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUNC
NzA4QjAyMjIwNjgxMTgwODM5RTk4RUNGRUI5NkMiLz4gPC9yZGY6RGVzY3Jp
cHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9
InIiPz4qOKNNAAAAZElEQVR42mJcuGABAxRwAfFUKDsbiL+BGCxQAU0gXgXE
OlC+CRBHAPFVJiCRAMRnkCQZoOxTIDmQCQugGCtgYiAAYFZ8BeL/aBgklsAE
Nd4c5CAkjdehYgtgvrgCxGbYvAkQYABadBdFxtx8lAAAAABJRU5ErkJggg==</attachemnt>
  <type>Asset::Media</type>
</asset>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<asset>
  <id type="integer">1460299</id>
  <theme-id type="integer">14522</theme-id>
  <type>Asset::Template</type>
  <name>product.my_template.liquid</name>
  <content-type>text/x-liquid</content-type>
  <file-size type="integer">38</file-size>
</asset>

Список асетов

Запрос: GET /admin/themes/#{theme_id}/assets.xml

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<assets type="array">
  <asset>
    <id type="integer">1460299</id>
    <theme-id type="integer">14522</theme-id>
    <type>Asset::Template</type>
    <name>product.my_template.liquid</name>
    <content-type>text/x-liquid</content-type>
    <file-size type="integer">38</file-size>
  </asset>
  <asset>
    <id type="integer">1460010</id>
    <theme-id type="integer">14522</theme-id>
    <type>Asset::Media</type>
    <name>style.css</name>
    <content-type>text/css</content-type>
    <file-size type="integer">34438</file-size>
    <asset_url type="string">/assets/1/6330/14522/style.css</asset_url>
  </asset>
</assets>

Получение асета

Запрос: GET /admin/themes/#{theme_id}/assets/#{id}.xml

Ответ:

Если запрошен текстовый файл

<?xml version="1.0" encoding="UTF-8"?>
<asset>
  <id type="integer">1460299</id>
  <theme-id type="integer">14522</theme-id>
  <type>Asset::Template</type>
  <name>product.my_template.liquid</name>
  <content-type>text/x-liquid</content-type>
  <file-size type="integer">38</file-size>
  <content type="string">template for product {{product.title}}</content>
</asset>

Если запрошена картинка, то в ответ добавляется поле attachment с закодированным в Base64 содержимым файла.

<?xml version="1.0" encoding="UTF-8"?>
<asset>
  <id type="integer">1460005</id>
  <theme-id type="integer">14522</theme-id>
  <type>Asset::Media</type>
  <name>arrows.png</name>
  <content-type>image/png</content-type>
  <file-size type="integer">1078</file-size>
  <asset_url type="string">/assets/1/6330/14522/arrows.png</asset_url>
  <attachment type="string">iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0
d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9i
ZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2Vo
aUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6
bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2
LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpS
REYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJk
Zi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIg
eG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8i
IHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5
cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5j
b20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRp
ZDpFQ0I3MDhCMDIyMjA2ODExODA4MzlFOThFQ0ZFQjk2QyIgeG1wTU06RG9j
dW1lbnRJRD0ieG1wLmRpZDoyNTlCMkVFMzJCRTYxMUUyQjY5MUZFN0UxNTJE
QjNFRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNTlCMkVFMjJCRTYx
MUUyQjY5MUZFN0UxNTJEQjNFRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQ
aG90b3Nob3AgQ1M2IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9t
IHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjQ5OUIwMzkzMzIwNjgxMTgw
ODM5OEVDQzQ5MzgxQ0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUNC
NzA4QjAyMjIwNjgxMTgwODM5RTk4RUNGRUI5NkMiLz4gPC9yZGY6RGVzY3Jp
cHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9
InIiPz4qOKNNAAAAZElEQVR42mJcuGABAxRwAfFUKDsbiL+BGCxQAU0gXgXE
OlC+CRBHAPFVJiCRAMRnkCQZoOxTIDmQCQugGCtgYiAAYFZ8BeL/aBgklsAE
Nd4c5CAkjdehYgtgvrgCxGbYvAkQYABadBdFxtx8lAAAAABJRU5ErkJggg==
</attachment>
</asset>

Обновление асета

Запрос: PUT /admin/themes/#{theme_id}/assets/#{id}.xml

<?xml version="1.0" encoding="UTF-8"?>
<asset>
  <content><![CDATA[amazing template for product {{product.title}}]]></content>
</asset>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<asset>
  <id type="integer">1460299</id>
  <theme-id type="integer">14522</theme-id>
  <type>Asset::Template</type>
  <name>product.my_template.liquid</name>
  <content-type>text/x-liquid</content-type>
  <file-size type="integer">46</file-size>
</asset>

Переименование асета

Запрос: PUT /admin/themes/#{theme_id}/assets/#{id}/rename.xml

<?xml version="1.0" encoding="UTF-8"?>
<asset>
  <new_name>product.my_amazing_template.liquid</new_name>
</asset>

Ответ:

<?xml version="1.0" encoding="UTF-8"?>
<asset>
  <id type="integer">1460299</id>
  <theme-id type="integer">14522</theme-id>
  <type>Asset::Template</type>
  <name>product.my_amazing_template.liquid</name>
  <content-type>text/x-liquid</content-type>
  <file-size type="integer">46</file-size>
</asset>

Удаление асета

Запрос: DELETE /admin/themes/#{theme_id}/assets/#{id}.xml

Ответ:

HTTP/1.1 200 OK