Внедрение онлайн-редактора
- Редактор дизайнов возможно использовать на внешнем (относительно сайта в сервисе Pixlpark) сайте. Например, на сайтах использующих WordPress, 1С-Битрикс, Joomla и прочие CMS.
- Редактор встраивается в несколько шагов:
Настройка платформы Pixlpark
- Сайт в сервисе Pixlpark и внешний сайт должны быть подготовлены согласно следующим требованиям:
- Сайт содержит доступные и настроенные категорию продукта и продукт с уникальной ссылкой в редактор, который необходимо интегрировать.
- Внешний сайт должен работать на протоколе HTTPS.
- Сайт должен работать на протоколе HTTPS (в разделе "Настройка / Домены" должна быть включена опция "Использовать защищенное соединение (HTTPS)").
- Сайт находится на поддомене внешнего сайта, куда необходимо интегрировать редактор. Подробнее о настройках доменного имени можно узнать на странице.
- В подразделе "Основные настройки" раздела "Настройки / Доступ" включена опция "Разрешить встраивать сайт на внешние ресурсы (сайт должен работать с защищенным протоколом HTTPS и на поддомене ресурса)" и указан внешний домен с протоколом.
- В подразделе "Доступность API" раздела "Настройки / Доступ" включена опция "Разрешить доступ к данным через API".
- Интеграция необходимого редактора с внешним сайтом осуществляется при помощи идентификатора продукта, который может быть двух видов:
- "ID" - уникальный идентификатор продукта. При удалении с сайта в сервисе Pixlpark продукта с указанным в интегрируемом редакторе ID на внешнем сайте редактор не будет работать.
- "categoryUrlName" и "productUrlName" - идентификатор категории продукта и идентификатор продукта в URL. При отсутствии указания "productUrlName" редактор будет инициализирован первым доступным продуктом категории продукта.
Реализация аутентификации
- Внешний редактор запускается в двух режимах: Гость и Пользователь.
- Гость
В данном режиме доступны все функции редактора, за исключением сохранения дизайнов. Перед сохранением дизайна редактор запрашивает токен пользователя при помощи вызова методаconfig.auth.getToken
(должен возвращатьPromise <string>
). Режим запускается при условии установления параметраconfig.auth.userToken = null
в конфигурации редактора. Также, для данного режима необходимо реализовать методconfig.auth.getToken()
перед сохранением дизайна для получения токена пользователя. - Пользователь
В данном режиме доступны все функции редактора. Режим запускается при условии установления параметраconfig.auth.userToken
отличного от пустой строк и или отnull
в конфигурации редактора. Далее, указанный токен будет проверен на сервере. В случае, если валидация токена не осуществится, редактор прекратит свою работу.
- Гость
- Для получения токена пользователя необходимо реализовать взаимодействие с API Pixlpark.
- В случае, если пользователь аутентифицирован на внешнем сайте, необходимо получить или создать (при отсутствии данного пользователя на сайте в сервисе Pixlpark) через API Pixlpark и получить внешний токен:
GET api.pixlpark.com/users/byEmail
и/илиPOST api.pixlpark.com/users/create
.GET /users/{id}/frontendToken
.
- В случае, если пользователь не аутентифицирован на внешнем сайте, необходимо его зарегистрировать и создать его копию на сайте в сервисе Pixlpark.
GET api.pixlpark.com/users/byEmail
и/илиPOST api.pixlpark.com/users/create
.GET /users/{id}/frontendToken
.
Встраивание редактора на страницу сайта
- Редактор встраивается в три этапа:
Подготовка страницы внешнего сайта
Для одного продукта
- Для встраивания редактора на страницу внешнего сайта необходимо создать контейнер согласно коду
<div id="editorContainer" class="editor-container loading-wheel"></div>
- и добавить его в разметку страницы внешнего сайта. Редактор заполнит весь размер контейнера.
- Далее, добавить на страницу стилевые правила:
.btn {background: #fff;border: solid 1px #ccc !important;box-shadow: #ddd 0 0 3px;color: #000 !important;}
body {font-family: sans-serif;padding: 10px 40px}
@keyframes cssload-spin {100% {transform: rotate(360deg);transform: rotate(360deg)}}
.editor-container.error {border: solid 1px #983a3a;box-shadow: #e15959 0 0 3px;}
.editor-container .error-message {position: relative;margin: 20px;text-align: left;color: #000000;font-family: monospace;
z-index: 1000000000;background: #ffcece;padding: 10px 20px;border: solid 1px #a52020;}
.editor-container {width: 65%; height: 600px; position: relative; border: solid 1px #ccc; box-shadow: #efefef 0 0 14px;}
.loading-wheel:before {
position:absolute;top:50%;left:50%;content:'';z-index:1112;display:block;width:32px;height:32px;margin:-16px 0 0 -16px;
border: 2px solid rgb(117,117,117);border-radius: 50%;border-left-color: transparent;border-right-color: transparent;
animation: cssload-spin 500ms infinite linear;
}
.loading-wheel:after{position:absolute;top:0;left:0;bottom:0;right:0;content:'';background:#fff;z-index:1111;opacity:.9;display:block}
- Затем, добавить скрипт для загрузки редактора на страницу внешнего сайта.
<script src="https://ваш-сайт-в-Pixlpark/api/externalEditor/js" onerror="onPxpError('Error while loading init script')" onload="onPxpLoaded()"></script>
Скрипт необходимо расположить ближе к подвалу в разметке страницы.