|
|
Спецификация
Задача
Узнать с помощью специального скрипта (подготовленного вами) складскую информацию по интересующим нас компонентам.
Например:
- Нас интересуют компоненты содержащие текст 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)
- <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 — нет). Применяется в случаях описанных выше.
Замечания
- Теги <data>, <line>, <part> и, в ряде случаев, <instock> являются обязательными.
- В результатах поиска должно быть не более 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 недели |
|