Открыть главное меню

ImageServer: различия между версиями

м
м
 
(не показано 12 промежуточных версий этого же участника)
Строка 6: Строка 6:
 
Если вам необходимо использовать свои изображения в дополнение к фотографиям из базы платформы, для этого у нас разработан специальный функционал "'''Сервер изображений'''".
 
Если вам необходимо использовать свои изображения в дополнение к фотографиям из базы платформы, для этого у нас разработан специальный функционал "'''Сервер изображений'''".
  
===Как работает:===
+
===Как работает===
 
Если картинка для товара есть на вашем сервере изображений, она будет приоритетнее и будет показана на сайте.
 
Если картинка для товара есть на вашем сервере изображений, она будет приоритетнее и будет показана на сайте.
  
Строка 13: Строка 13:
 
Если картинки нет ни на вашем сервере изображений, ни в нашей базе, будет показана "заглушка".
 
Если картинки нет ни на вашем сервере изображений, ни в нашей базе, будет показана "заглушка".
  
===Какие задачи можно решить:===
+
===Какие задачи можно решить===
  
 
*Использование собственных изображений для товаров вместо наших;
 
*Использование собственных изображений для товаров вместо наших;
 
*Использование изображений с собственными водяными знаками;
 
*Использование изображений с собственными водяными знаками;
 
*Использование изображений для товаров, бывших в употреблении;
 
*Использование изображений для товаров, бывших в употреблении;
 +
 
*И другие.
 
*И другие.
  
 
<br />
 
<br />
  
=== Что нужно для создания: ===
+
===Что нужно для создания===
 
Для реализации требуется создание скрипта и развертывания его на вашем сервере по техническому заданию:
 
Для реализации требуется создание скрипта и развертывания его на вашем сервере по техническому заданию:
  
==== '''Требования к серверу изображений:''' ====
+
====Требования к серверу изображений====
  
* Обязательно использование HTTPS. Сертификат должен быть не самоподписанным (браузеры должны принимать его). Корректность сертификата можно проверить в PostMan с включенной проверкой SSL-сертификатов.
+
*Обязательно использование HTTPS. Сертификат должен быть не самоподписанным (браузеры должны принимать его). Корректность сертификата можно проверить в PostMan с включенной проверкой SSL-сертификатов.
* На сервере, где расположен скрипт, должны быть включены кросс-доменные запросы. (Что это и как [https://sky.pro/media/chto-takoe-kross-domennye-zaprosy-i-kak-ih-obrabatyvat/ тут])
+
*На сервере, где расположен скрипт, должны быть включены кросс-доменные запросы. (Что это и как [https://sky.pro/media/chto-takoe-kross-domennye-zaprosy-i-kak-ih-obrabatyvat/ тут])
  
==== '''Вариант 1: одно изображение к одной детали''' ====
+
<br />
 +
====Вариант 1: Одно изображение к одной детали====
 
Этот вариант самый простой для реализации, но позволяет вывести только одно изображение для одной детали.
 
Этот вариант самый простой для реализации, но позволяет вывести только одно изображение для одной детали.
  
 
Изображения должны быть доступны по адресу вида:
 
Изображения должны быть доступны по адресу вида:
  
https://server_name/brand_name/article_number.jpg
+
<nowiki>https://server_name/brand_name/article_number.jpg</nowiki>
  
 
Например, для Knecht 00865N1 это будет ссылка:
 
Например, для Knecht 00865N1 это будет ссылка:
  
https://server_name/knecht/00856n1.jpg
+
<nowiki>https://server_name/knecht/00856n1.jpg</nowiki>
 +
 
 +
 
 +
'''Бренд:'''
 +
 
 +
*приводится к нижнему регистру
 +
*в названии бренда заменяются "слэши" на "минусы" ( / <=> - ) (актуально для Knecht/Mahle, HYUNDAI/KIA и т.п.)
 +
*в названии бренда не может быть использован символ решетка #
 +
 
 +
 
 +
Допустимо использование “слэша” в названии бренда. В этом случае будет происходить 301-й редирект на корректный адрес.
 +
 
 +
Пример:
 +
 
 +
<nowiki>http://server_name/knecht/mahle/00856n1.jpg</nowiki>
 +
 
 +
редирект на:
 +
 
 +
<nowiki>http://server_name/knecht-mahle/00856n1.jpg</nowiki>
 +
 
 +
 
 +
'''Артикул:'''
 +
 
 +
*удаляются символы: ' ', '-', '/', '\\', '.', ',', '"', '\<nowiki>''</nowiki>, PHP_EOL, "\r", "\n", "\t"
 +
*приводится к нижнему регистру
 +
*пробелы
 +
*минусы
 +
*слеши (оба)
 +
*точки
 +
*запятые
 +
*таб
 +
*перенос строки
 +
*конец строки
 +
 
 +
<br />
 +
 
 +
====Вариант 2: Несколько изображений к одной детали на сайте====
 +
Для того, чтобы отображать на сайте несколько изображений к одной детали, необходимо реализовать скрипт. Скрипт в ответ на POST-запрос деталью должен возвращать JSON-ответ со списком всех изображений к товару, отправленному в запросе.
 +
 
 +
При этом запросы к вашему серверу могут отправляться как с  Content-type:application/json так и с Content-type: application/x-www-form-urlencoded (такое требование возникает из-за особенностей кросс-доменных обращений, подробнее [https://developer.mozilla.org/ru/docs/Web/HTTP/CORS#%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D0%B5%D0%B2_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BE%D0%BC тут])
 +
 
 +
ЗАПРОС (POST):
 +
 
 +
URL:  <nowiki>http://server_name//multifinderbrands.php</nowiki>
 +
 
 +
BODY: <syntaxhighlight lang="json">
 +
[
 +
 {
 +
  "brand": "febi",
 +
  "article": "01089"
 +
  }
 +
]
 +
 
 +
ОТВЕТ:
 +
[
 +
  {
 +
    "url": "https:\/\/server_name\/febi\/01089.jpg"
 +
  },
 +
  {
 +
    "url": "https:\/\/server_name\/febi\/01089_1.jpg"
 +
  }
 +
]
 +
</syntaxhighlight><br />Дополнительный параметр для миниатюр "isPreview": true
 +
 
 +
ЗАПРОС (POST):
 +
 
 +
URL:  <nowiki>http://server_name//multifinderbrands.php</nowiki>
 +
 
 +
BODY:<syntaxhighlight lang="json">
 +
[
 +
  {
 +
  "brand": "febi",
 +
  "article": "01089",
 +
    "isPreview": true
 +
  }
 +
]
 +
 
 +
</syntaxhighlight>В ответе желательно возвращать ссылку не на изображение в высоком разрешении, а на его миниатюру.
 +
 
 +
===Как подключить свой сервер изображений===
 +
Для проверки выполненных вами настроек и для подключения вашего сервера изображения, необходимо обратиться в [https://cp.abcp.ru/?page=support&newtask&summary=%D0%A1%D0%B2%D0%BE%D0%B9%20%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%20%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9 техническую поддержку].

Текущая версия на 14:41, 19 августа 2024

Сервер изображений

В базе платформы ABCP для большинства наименований есть изображения.

Мы регулярно проводим большую работу по актуализации этих данных.

Если вам необходимо использовать свои изображения в дополнение к фотографиям из базы платформы, для этого у нас разработан специальный функционал "Сервер изображений".

Как работает

Если картинка для товара есть на вашем сервере изображений, она будет приоритетнее и будет показана на сайте.

Если картинки на вашем сервере изображений нет, но есть в нашей базе, будет показана наша картинка.

Если картинки нет ни на вашем сервере изображений, ни в нашей базе, будет показана "заглушка".

Какие задачи можно решить

  • Использование собственных изображений для товаров вместо наших;
  • Использование изображений с собственными водяными знаками;
  • Использование изображений для товаров, бывших в употреблении;
  • И другие.


Что нужно для создания

Для реализации требуется создание скрипта и развертывания его на вашем сервере по техническому заданию:

Требования к серверу изображений

  • Обязательно использование HTTPS. Сертификат должен быть не самоподписанным (браузеры должны принимать его). Корректность сертификата можно проверить в PostMan с включенной проверкой SSL-сертификатов.
  • На сервере, где расположен скрипт, должны быть включены кросс-доменные запросы. (Что это и как тут)


Вариант 1: Одно изображение к одной детали

Этот вариант самый простой для реализации, но позволяет вывести только одно изображение для одной детали.

Изображения должны быть доступны по адресу вида:

https://server_name/brand_name/article_number.jpg

Например, для Knecht 00865N1 это будет ссылка:

https://server_name/knecht/00856n1.jpg


Бренд:

  • приводится к нижнему регистру
  • в названии бренда заменяются "слэши" на "минусы" ( / <=> - ) (актуально для Knecht/Mahle, HYUNDAI/KIA и т.п.)
  • в названии бренда не может быть использован символ решетка #


Допустимо использование “слэша” в названии бренда. В этом случае будет происходить 301-й редирект на корректный адрес.

Пример:

http://server_name/knecht/mahle/00856n1.jpg

редирект на:

http://server_name/knecht-mahle/00856n1.jpg


Артикул:

  • удаляются символы: ' ', '-', '/', '\\', '.', ',', '"', '\'', PHP_EOL, "\r", "\n", "\t"
  • приводится к нижнему регистру
  • пробелы
  • минусы
  • слеши (оба)
  • точки
  • запятые
  • таб
  • перенос строки
  • конец строки


Вариант 2: Несколько изображений к одной детали на сайте

Для того, чтобы отображать на сайте несколько изображений к одной детали, необходимо реализовать скрипт. Скрипт в ответ на POST-запрос деталью должен возвращать JSON-ответ со списком всех изображений к товару, отправленному в запросе.

При этом запросы к вашему серверу могут отправляться как с  Content-type:application/json так и с Content-type: application/x-www-form-urlencoded (такое требование возникает из-за особенностей кросс-доменных обращений, подробнее тут)

ЗАПРОС (POST):

URL:  http://server_name//multifinderbrands.php

BODY:

[
 {
  "brand": "febi",
  "article": "01089"
  }
]

ОТВЕТ:
[
  {
    "url": "https:\/\/server_name\/febi\/01089.jpg"
  },
  {
    "url": "https:\/\/server_name\/febi\/01089_1.jpg"
  }
]


Дополнительный параметр для миниатюр "isPreview": true

ЗАПРОС (POST):

URL:  http://server_name//multifinderbrands.php

BODY:

[
   {
  	"brand": "febi",
  	"article": "01089",
    "isPreview": true
   }
]

В ответе желательно возвращать ссылку не на изображение в высоком разрешении, а на его миниатюру.

Как подключить свой сервер изображений

Для проверки выполненных вами настроек и для подключения вашего сервера изображения, необходимо обратиться в техническую поддержку.