Пример кода Product API
Описание
Если интернет-магазин не содержит групповых товаров, в карточке товара вызывайте retailrocket.products.post({}) и передавайте всю информацию о товаре.
Если требуется поддержка групповых товаров, используйте retailrocket.productsGroup.post({}).
Важно: если есть «быстрый просмотр» товара, трекинг-код нужно вызывать и при открытии этого окна.
Пример кода
- Без групповых товаров
- С групповыми товарами
- Мультиязычность и мультивалютность
<script type="text/javascript">
(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() {
retailrocket.products.post({
"id": <product ID>,
"name": "Example product name",
"price": 777,
"pictureUrl": "http://example.com/path/to/Photo.jpg",
"url": "http://www.example.com/path/to/productPage",
"isAvailable": true,
"categoryPaths": ["Women/Clothes/Skirts","Women/New Arrivals"],
"description": "Some text description",
"vendor": "Brand name",
"model": "Model name",
"typePrefix": "Product type",
"oldPrice": 999,
"params": {
"<custom parameter 1 name>": "<custom parameter 1 value>",
"<custom parameter 2 name>": "<custom parameter 2 value>",
"<custom parameter N name>": "<custom parameter N value>"
}
});
rrApi.view(<product ID>);
});
</script>
<script type="text/javascript">
(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() {
retailrocket.productsGroup.post({
"groupId": <group ID>,
"name": "<string>",
"price": 777,
"pictureUrl": "http://example.com/path/to/Photo.jpg",
"url": "http://www.example.com/path/to/productPage",
"isAvailable": true,
"categoryPaths": ["Example/Category/Path","Another/Category"],
"description": "Some text description",
"products": {
"<product id>": {
"isAvailable": <bool>,
"name": "<string>",
"color": "<string>",
"size": "<string>",
"url": "<string>",
"pictureUrl": "<string>",
"price": <decimal>,
"oldPrice": <decimal>,
"description": "<string>",
"params": {
"<custom parameter 1 name>": "<custom parameter 1 value>",
"<custom parameter 2 name>": "<custom parameter 2 value>",
"<custom parameter N name>": "<custom parameter N value>"
}
},
"<product id>": {
"isAvailable": <bool>,
"name": "<string>",
"color": "<string>",
"size": "<string>",
"url": "<string>",
"pictureUrl": "<string>",
"price": <decimal>,
"oldPrice": <decimal>,
"description": "<string>",
"params": {
"<custom parameter 1 name>": "<custom parameter 1 value>",
"<custom parameter 2 name>": "<custom parameter 2 value>",
"<custom parameter N name>": "<custom parameter N value>"
}
}
},
"vendor": "Brand name",
"model": "Model name",
"typePrefix": "Product type",
"oldPrice": 999
});
rrApi.groupView([<product IDs>]);
});
</script>
<script type="text/javascript">
(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() {
retailrocket.products.post({
"id": <product ID>,
"name": "Example product name",
"price": 777,
"pictureUrl": "http://example.com/path/to/Photo.jpg",
"url": "http://www.example.com/path/to/productPage",
"isAvailable": true,
"categoryPaths": ["Women/Clothes/Skirts","Women/New Arrivals"],
"description": "Some text description",
"vendor": "Brand name",
"model": "Model name",
"typePrefix": "Product type",
"oldPrice": 999,
"params": {
"<custom parameter 1 name>": "<custom parameter 1 value>",
"<custom parameter 2 name>": "<custom parameter 2 value>",
"<custom parameter N name>": "<custom parameter N value>",
"languages": {
"<language1>": {
"description": "description in language1",
"name": "name in language1",
"url": "url to product in specific language",
"<custom parameter 1 name in language1>": "<custom parameter 1 value>",
"<custom parameter 2 name in language1>": "<custom parameter 2 value>",
"<custom parameter N name in language1>": "<custom parameter N value>"
},
"<language2>": {
"description": "description in language2",
"name": "name in language2",
"url": "url to product in specific language",
"<custom parameter 1 name in language2>": "<custom parameter 1 value>",
"<custom parameter 2 name in language2>": "<custom parameter 2 value>",
"<custom parameter N name in language2>": "<custom parameter N value>"
}
},
"currencies": {
"EUR": <price in EUR>,
"USD": <price in USD>
}
}
});
});
</script>
Обязательные параметры Product API без использования групповых товаров
| Параметр | Тип | Описание |
|---|---|---|
| id | integer | Уникальный идентификатор продукта, только числа, до 16 символов. Не должен превышать 9 007 199 254 740 991. |
| name | string | Имя продукта, до 120 символов. Лучше указывать полное уникальное имя. |
| price | numerical | Цена за единицу, может быть целой или дробной, не равна нулю. |
| url | string | Абсолютная ссылка на страницу продукта, до 512 символов. |
| pictureUrl | string | Абсолютная ссылка на изображение продукта (jpeg/gif/png). Рекомендация: ≤ 400×400 или ≤ 1 МБ. До 512 символов. |
| isAvailable | bool | Статус доступности: true товар в наличии, false нет. Значение чувствительно к регистру, используйте нижний регистр. |
| categoryPaths | string | Массив путей до низкоуровневых категорий, через /. Пути должны соответствовать структуре меню. Для нескольких категорий передавайте массив, например ["Женщинам/Одежда/Юбки","Женщинам/Одежда/Велюр"]. |
| description | string | Короткое описание. Для HTML заверните в CDATA. Не более 200 символов. |
Обязательные параметры Product API с использованием групповых товаров
| Параметр | Тип | Описание |
|---|---|---|
| products | JSON object | Содержит все товары группы, каждый как отдельный объект. Обязателен isAvailable. Остальные поля при отсутствии берутся из общих параметров группы. |
| groupId | integer/string | Идентификатор группы вариаций одной модели. Для негрупповых можно передавать идентификатор предложения. |
Дополнительные параметры
| Параметр | Тип | Описание |
|---|---|---|
| vendor | string | Производитель или бренд. Используется в рекомендациях по производителю. |
| oldPrice | number | Старая цена. Можно показывать в рекомендациях или считать скидку. |
| params | JSON object | Характеристики продукта. До 40 элементов "<param name>": "<value>". Значения можно использовать для фильтрации и отображать в виджетах. |
Параметр для поддержки региональности
| Параметр | Тип | Описание |
|---|---|---|
| stockId | string | Регион/склад/языковой идентификатор пользователя. В каждом регионе должно быть как минимум в 5 раз больше уникальных посетителей в месяц, чем число товаров в регионе. |
Поддержка мультиязычности и мультивалютности
Если на сайте для пользователей доступен выбор из нескольких языков из валют, то с помощью дополнительных параметров можно реализовать поддержку такого же функционала в продуктах Retail Rocket.
<script type="text/javascript">
(window["rrApiOnReady"] = window["rrApiOnReady"] || []).push(function() {
retailrocket.products.post({
"id": <product ID>,
"name": "Example product name",
"price": 777,
"pictureUrl": "http://example.com/path/to/Photo.jpg",
"url": "http://www.example.com/path/to/productPage",
"isAvailable": true,
"categoryPaths": ["Women/Clothes/Skirts","Women/New Arrivals"],
"description": "Some text description",
"vendor": "Brand name",
"model": "Model name",
"typePrefix": "Product type",
"oldPrice": 999,
"params": {
"<custom parameter 1 name>": "<custom parameter 1 value>",
"<custom parameter 2 name>": "<custom parameter 2 value>",
"<custom parameter N name>": "<custom parameter N value>",
"languages": {
"<language1>": {
"description": "description in language1",
"name": "name in language1",
"url": "url to product in specific language",
"<custom parameter 1 name in language1>": "<custom parameter 1 value>",
"<custom parameter 2 name in language1>": "<custom parameter 2 value>",
"<custom parameter N name in language1>": "<custom parameter N value>"
},
"<language2>": {
"description": "description in language2",
"name": "name in language2",
"url": "url to product in specific language",
"<custom parameter 1 name in language2>": "<custom parameter 1 value>",
"<custom parameter 2 name in language2>": "<custom parameter 2 value>",
"<custom parameter N name in language2>": "<custom parameter N value>"
}
},
"currencies": {
"EUR": <price in EUR>,
"USD": <price in USD>
}
}
});
});
</script>