|
Спецификация
Задача
Узнать с помощью специального скрипта (подготовленного вами) складскую информацию по интересующим нас компонентам.
Например:
- Нас интересуют позиции содержащие текст ML400. Наш сервер обращается к вашему скрипту, передает указанную строку и ждет ответа.
- Ваш скрипт возвращает нам список позиций, содержащих указанный текст, которые может предложить ваша фирма и состояние склада для них (наличие, отсутствие или возможность привезти под заказ).
Реализация
Наш сервер обращается к вашему по протоколу HTTP, запрашивает url-адрес вашего скрипта и передает в параметрах поисковый запрос одним из методов (GET или POST).
Ваш склад выдает складскую информацию в формате XML, со следующими полями:
- <data></data> — охватывает весь блок данных.
- <line></line> — информация для одной позиции.
- <mfg></mfg> — производитель (например: VIZIT).
- <part></part> — наименование оборудования (например: ML400-50).
- <note></note> — описание (например: Электромагнитный замок, 12 VDC, усилие 400 кг)
- <img></img> — ссылка на изображение (фотографию) или дополнительное описание.
- <pdf></pdf> — ссылка на техническую документацию.
- <cur></cur> — валюта (USD, RUR, EUR).
- <p1></p1> — розничная цена.
- <p2></p2> — мелкооптовая цена.
- <p3></p3> — оптовая цена.
- <stock></stock> — состояние склада. Возможные варианты значения поля:
- «Да» или «На складе» — есть на складе (тег instock не используется).
- Целое число — указывает количество позиций на складе (тег instock не используется).
- 0 или «Нет» — нет на складе (тег instock не используется).
- Складская информация в виде диапазона — например: «<100» (тег instock должен быть равен 1).
- Указание срока поставки — например: «США, 3-4 недели» (тег instock должен содержать значение 0).
- Недопустимые значения поля:
«Звоните»
«Заказ» или «запрос»
«Есть»
и пр.
- <instock></instock> — дополнительное уточнение состояние склада (1 — есть на складе, 0 — нет). Применяется в случаях описанных выше.
Замечания
- Теги <data>, <line>, <part> и, в ряде случаев, <instock> являются обязательными.
- В результатах поиска должно быть не более 20 строк.
- В результирующих строках не допускается вывод html-тегов
- Цены должны содержать все налоги, разделитель дробной части — точка.
- Если не указана валюта, считается, что цены в долларах США.
- Если не указано состояние склада, то считается, что позиции на складе отсутствуют.
Требования к выдаваемым результатам поиска
- В результирующих строках должна присутствовать запрашиваемая строка.
Например, если запрашиваемая строка - «ML400», то в каждой результирующей строке обязательно должен присутствовать «ML400».
- Если запрашиваема строка состоит из слов, разделенных пробелом (или символом-разделителем), в результирующих строках должны присутствовать все запрашиваемые слова.
Символы-разделители: « », «\t» (табуляция), «\n» (перевод строки), «,» «;» «*» «?».
Например, если поисковый запрос - «ML 400» или "ML,400», то в каждой результирующей строке обязательно должен присутствовать и «ML» и «400».
- При поиске, допускается удаление некоторых спецсимволов из запроса: «_», «-», «.», «/», «\», «|», «#», «~», «+», «^», «@» и т.п.
Например, если запрашиваема строка - «ML-400», то допускается вывод результатов поиска только по «ML-400» или «ML400». Не допускается вывод результатов поиска только по запросу «ML» или «400»
- В результирующих строках допускается вывод разделенной спецсимволом запрашиваемой строки.
Например, если запрашиваемая строка - «ML400», то допускается вывод в результирующей строке «что_то_таML 400шт».
Пример кода по спецификации
<?xml version="1.0" encoding="UTF-8"?>
<data>
<line>
<mfg>VIZIT</mfg>
<part>ML-400-50</part>
<note>Магнигный замок 400 кг, 12В/600мА, без таймера, уголок 50х50</note>
<cur>EUR</cur>
<p1>24</p1>
<stock>20</stock>
</line>
<line>
<mfg></mfg>
<part>VIZIT-ML400-40</part>
<pdf>http://www.site.ru/pdf/ML400-40.pdf</pdf>
<p1>3.1</p1>
</line>
<line>
<mfg>VIZIT</mfg>
<part>Замок Визит(Элтис)-ML400-50</part>
<stock><100</stock>
<instock>1</instock>
</line>
<line>
<mfg>VIZIT</mfg>
<part>VIZIT-ML400S</part>
<stock>3-4 недели</stock>
<instock>0</instock>
</line>
</data>
Приведенный код будет интерпретирован следующим образом:
Производитель | Наименование и комментарии | Розн. | М.Опт | Опт. | Склад |
VIZIT | ML-400-50 Магнигный замок 400 кг, 12В/600мА, без таймера, уголок 50х50 | 24 | | | 20 |
| VIZIT-ML400-40 PDF | 3.1 $ | | | |
VIZIT | Замок Визит(Элтис)-ML400-50 | | | | <100 |
VIZIT | VIZIT-ML400S | | | | 3-4 недели |
|