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

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

м
м
 
(не показано 8 промежуточных версий этого же участника)
Строка 19: Строка 19:
 
*Использование изображений для товаров, бывших в употреблении;
 
*Использование изображений для товаров, бывших в употреблении;
  
* И другие.
+
*И другие.
  
 
<br />
 
<br />
  
=== Что нужно для создания ===
+
===Что нужно для создания===
 
Для реализации требуется создание скрипта и развертывания его на вашем сервере по техническому заданию:
 
Для реализации требуется создание скрипта и развертывания его на вашем сервере по техническому заданию:
  
====Требования к серверу изображений:====
+
====Требования к серверу изображений====
  
 
*Обязательно использование HTTPS. Сертификат должен быть не самоподписанным (браузеры должны принимать его). Корректность сертификата можно проверить в PostMan с включенной проверкой SSL-сертификатов.
 
*Обязательно использование HTTPS. Сертификат должен быть не самоподписанным (браузеры должны принимать его). Корректность сертификата можно проверить в PostMan с включенной проверкой SSL-сертификатов.
Строка 37: Строка 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 и т.п.)
+
*в названии бренда заменяются "слэши" на "минусы" ( / <=> - ) (актуально для Knecht/Mahle, HYUNDAI/KIA и т.п.)
* в названии бренда не может быть использован символ решетка #
+
*в названии бренда не может быть использован символ решетка #
  
  
Строка 55: Строка 55:
 
Пример:
 
Пример:
  
http://server_name/knecht/mahle/00856n1.jpg
+
<nowiki>http://server_name/knecht/mahle/00856n1.jpg</nowiki>
  
 
редирект на:
 
редирект на:
  
http://server_name/knecht-mahle/00856n1.jpg
+
<nowiki>http://server_name/knecht-mahle/00856n1.jpg</nowiki>
  
  
 
'''Артикул:'''  
 
'''Артикул:'''  
  
* удаляются символы: ' ', '-', '/', '\\', '.', ',', '"', '\<nowiki>''</nowiki>, PHP_EOL, "\r", "\n", "\t"
+
*удаляются символы: ' ', '-', '/', '\\', '.', ',', '"', '\<nowiki>''</nowiki>, PHP_EOL, "\r", "\n", "\t"
* приводится к нижнему регистру
+
*приводится к нижнему регистру
* пробелы
+
*пробелы
* минусы
+
*минусы
* слеши (оба)
+
*слеши (оба)
* точки
+
*точки
* запятые
+
*запятые
* таб
+
*таб
* перенос строки
+
*перенос строки
* конец строки
+
*конец строки
  
 
<br />
 
<br />
  
==== Вариант 2: Несколько изображений к одной детали на сайте ====
+
====Вариант 2: Несколько изображений к одной детали на сайте====
 
Для того, чтобы отображать на сайте несколько изображений к одной детали, необходимо реализовать скрипт. Скрипт в ответ на POST-запрос деталью должен возвращать JSON-ответ со списком всех изображений к товару, отправленному в запросе.
 
Для того, чтобы отображать на сайте несколько изображений к одной детали, необходимо реализовать скрипт. Скрипт в ответ на 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 тут])
 
При этом запросы к вашему серверу могут отправляться как с  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 тут])
<br />
+
 
 +
ЗАПРОС (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
   }
]

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

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

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