Спецификация
Внимание! Данная спецификация считается устаревшей. С новой спецификацией можно ознакомиться здесь.
Задача
Узнать с помощью специального скрипта (подготовленного вами) складскую информацию по интересующим нас компонентам.
Например:
- Нас интересуют компоненты содержащие текст max232. Наш сервер обращается к вашему скрипту, передает указанную строку и ждет ответа.
- Ваш скрипт возвращает нам список компонентов, в названии которых содержится указанный текст. Для каждой из позиций указывается состояние склада (наличие, отсутствие или возможность привезти под заказ).
Реализация
Наш сервер обращается к вашему по протоколу HTTP, запрашивает url-адрес вашего скрипта и передает в параметрах поисковый запрос одним из методов (GET или POST).
Ваш склад выдает складскую информацию в формате XML, со следующими полями:
- <data></data> — охватывает весь блок данных.
- <line></line> — информация для одной позиции.
- <mfg></mfg> — производитель (например: Maxim).
- <part></part> — наименование компонента (например: max232cpe). Обязательное поле!
- <note></note> — комментарий (например: Интерфейс RS-232 120кБит/сек Uп=5В 0...+70°C). Максимальная длина - 256 знаков.
- <img></img> — ссылка на изображение (фотографию) или дополнительное описание.
- <pdf></pdf> — ссылка на техническую документацию.
- <cur></cur> — валюта (USD, RUR, EUR).
- <p1></p1> — розничная цена.
- <p2></p2> — мелкооптовая цена.
- <p3></p3> — оптовая цена.
- <stock></stock> — состояние склада. Возможные варианты значения поля:
- «Да» или «На складе» — есть на складе (тег instock не используется).
- «Склад», «В наличии» и прочее по смыслу — есть на складе (тег instock должен быть равен 1).
- Целое число — указывает количество позиций на складе (тег instock не используется).
- 0 или «Нет» — нет на складе (тег instock не используется).
- Складская информация в виде диапазона — например: «<100» (тег instock должен быть равен 1).
- Указание срока поставки — например: «США, 3-4 недели» (тег instock должен содержать значение 0).
- <instock></instock> — дополнительное уточнение состояние склада (1 — есть на складе, 0 — нет). Применяется в случаях описанных выше.
- <bid></bid> Возможные значения:
- Целое число (>=10) - максимальная цена за показ, с которой будет участвовать в
спецразмещении данный компонент (коп.).
- 0 - цена за показ для данного компонента будет определяться прочими настройками спецразмещения
(общая ставка, ставка на бренд, ставка на группу запросов).
- -1 - данный компонент не участвует в спецразмещении (точнее, участвует только в случаях, когда в результатах поиска
есть другие позиции, участие которых в спецразмещении не запрещено).
Замечания
- В случае отсутствия результатов следует возвращать <data></data>.
- В результатах поиска должно быть не более 20 строк.
- В результирующих строках не допускается вывод html-тегов
- Цены должны содержать все налоги, разделитель дробной части — точка.
- Если не указана валюта, считается, что цены в долларах США.
- Если не указано состояние склада, то считается, что позиции на складе отсутствуют.
Требования к выдаваемым результатам поиска
- В результирующих строках (поля «Производитель» и «Наименование и комментарии») должна присутствовать запрашиваемая строка.
Например, если запрашиваемая строка - «max232», то в каждой результирующей строке обязательно должен присутствовать «max232».
- Если запрашиваемая строка состоит из слов, разделенных пробелом (или символом-разделителем), в результирующих строках должны присутствовать все запрашиваемые слова.
Символы-разделители: « », «\t» (табуляция), «\n» (перевод строки), «,» «;» «*» «?».
Например, если поисковый запрос - «max 232» или «max,232», то в каждой результирующей строке обязательно должен присутствовать и «max» и «232».
- При поиске допускается удаление некоторых спецсимволов: «_», «-», «.», «/», «\», «|», «#», «~», «+», «^», «@», «%», «(», «)», «{», «}», «[», «]», «=», «:», «'», «"», «`», «<»,«>», «–» («длинное» тире).
Например, если запрашиваема строка - «max-232», то допускается вывод результатов поиска только по «max-232» или «max232». Не допускается вывод результатов поиска только по запросу «max» или «232»
- Допускается считать идентичными сходные по написанию латинские и кириллические буквы E, T, O, P, A, H, K, X, C, B, M, а также букву O и цифру 0.
- В результирующих строках допускается вывод разделенной пробелом или спецсимволом (см. список выше) запрашиваемой строки.
Например, если запрашиваемая строка - «max232», то допускается вывод в результирующей строке «что_то_таMAX 232шт».
Пример кода по спецификации
<?xml version="1.0" encoding="UTF-8"?>
<data>
<line>
<mfg>MAXIM</mfg>
<part>MAX232ECSE</part>
<note>Драйвер RS-232, 2Dr/2Re, 200 кБод, Un = 5В, -40:+85; корпус SO16 150</note>
<cur>EUR</cur>
<p1>4.2610</p1>
<stock>20</stock>
</line>
<line>
<mfg>MAXIM</mfg>
<part>MAX232EPE</part>
<pdf>http://www.site.ru/pdf/MAX/MAX220_M.pdf</pdf>
<p1>3.1</p1>
</line>
<line>
<mfg>MAXIM</mfg>
<part>MAX232</part>
<stock><100</stock>
<instock>1</instock>
</line>
<line>
<mfg>MAXIM</mfg>
<part>MAX232ACUE</part>
<stock>3-4 недели</stock>
<instock>0</instock>
</line>
</data>
Приведенный код будет интерпретирован следующим образом:
Производитель | Наименование и комментарии | Розн. | М.Опт | Опт. | Склад |
MAXIM | MAX232ECSE Драйвер RS-232, 2Dr/2Re, 200 кБод, Un = 5В, -40:+85; корпус SO16 150 | 4.2610 | | | 20 |
MAXIM | MAX232EPE PDF | 3.1 $ | | | |
MAXIM | MAX232 | | | | <100 |
MAXIM | MAX232ACUE | | | | 3-4 недели |
|