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

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

м
м
 
(не показано 10 промежуточных версий этого же участника)
Строка 18: Строка 18:
 
*Использование изображений с собственными водяными знаками;
 
*Использование изображений с собственными водяными знаками;
 
*Использование изображений для товаров, бывших в употреблении;
 
*Использование изображений для товаров, бывших в употреблении;
 +
 
*И другие.
 
*И другие.
  
Строка 25: Строка 26:
 
Для реализации требуется создание скрипта и развертывания его на вашем сервере по техническому заданию:
 
Для реализации требуется создание скрипта и развертывания его на вашем сервере по техническому заданию:
  
====Требования к серверу изображений:====
+
====Требования к серверу изображений====
  
 
*Обязательно использование HTTPS. Сертификат должен быть не самоподписанным (браузеры должны принимать его). Корректность сертификата можно проверить в PostMan с включенной проверкой SSL-сертификатов.
 
*Обязательно использование HTTPS. Сертификат должен быть не самоподписанным (браузеры должны принимать его). Корректность сертификата можно проверить в PostMan с включенной проверкой SSL-сертификатов.
Строка 36: Строка 37:
 
Изображения должны быть доступны по адресу вида:
 
Изображения должны быть доступны по адресу вида:
  
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
   }
]

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

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

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