Информация для программистов:

Всё тоже самое на в формате word - скачать

 

  1. Адрес для работы с API:  http://price.zapscript.net/api/v1/engine.php
  2. Обмен данными происходит в формате JSON.

Пример для PHP:

$request = array(

      'method'    => 'Price',

      'key' => '649f39ebefdfdebf0d28a4fb3c0b041e',

      'timeout' => 30,

      'request' => array(

                        array(

                             'supplier' => 'emex',

                             'number'=> '1994601',

                             'brand' => 'mahle filter'),

                       array(

                              'supplier' => 'as61',

                              'number'=> 'lx622',

                              'brand' => 'mahle filter'

                             )

                        )

                    );               

$post = json_encode($request);

$ch = curl_init('http://price.zapscript.net/api/v1/engine.php');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

$data = curl_exec($ch);

curl_close($ch);

var_dump(json_decode($data));

 

Обязательные параметры для всех запросов:

  • method – метод, который используется
  • key – API-ключ клиента

 

  1. Поддерживаемые методы:
  • Price – запрос цен у поставщика по номеру детали без кроссов

Обязательные параметры:

  • supplierкод поставщика
  • number – номер детали
  • brand – название производителя

 

  • SupplierCrossPrice – запрос цен у поставщика с кроссами

Обязательные параметры:

  • supplierкод поставщика
  • number – номер детали
  • brand – название производителя

 

  • SupplierProducersList – список производителей детали

Обязательные параметры:

  • supplierкод поставщика
  • number – номер детали

 

  • SuppliersList – список подключенных поставщиков

 

  • SupplierOptions – список доступных методов для поставщика

Обязательные параметры:

  • supplierкод поставщика

 

 

Примеры запрос-ответ

Ответ при возникновении ошибки

  • object(stdClass)#1 (1) {

  ["response"]=>

  object(stdClass)#2 (1) {

    ["error"]=>

    object(stdClass)#3 (2) {

      ["code"]=>

      int(10)

      ["msg"]=>

      string(35) "Неизвестная ошибка"

    }

  }

}

 

 

Price

Запрос:

$request = array(

      'method'    => 'Price',

      'key' => '649f39ebefdfdebf0d28a4fb3c0b041e',

      'timeout' => 30,

      'request' => array(

                        array(

                             'supplier' => 'emex',

                             'number'=> '1994601',

                             'brand' => 'mahle filter'),

                       array(

                              'supplier' => 'as61',

                              'number'=> 'lx622',

                              'brand' => 'mahle filter'

                             )

                        )

                    );

Ответ после распаковки json:               

  • object(stdClass)#1 (1) {

  ["response"]=>

  object(stdClass)#2 (1) {

    ["emex"]=>

    object(stdClass)#3 (1) {

      ["1994601_MAHLE FILTER"]=>

      array(73) {

        [0]=>

        object(stdClass)#4 (7) {

          ["number"]=>

          string(7) "1994601"

          ["brand"]=>

          string(9) "Lemforder"

          ["descr"]=>

          string(45) "Ремкомплект, балка моста"

          ["days"]=>

          int(1)

          ["stock"]=>

          int(5)

          ["price"]=>

          string(9) "2353.2300"

          ["cross"]=>

          int(0)

        }

        [1]=>

        object(stdClass)#5 (7) {

          ["number"]=>

          string(7) "1994601"

          ["brand"]=>

          string(9) "Lemforder"

          ["descr"]=>

          string(45) "Ремкомплект, балка моста"

          ["days"]=>

          int(3)

          ["stock"]=>

          int(2)

          ["price"]=>

          string(9) "3073.0500"

          ["cross"]=>

          int(0)

        }

<…>

Значения полей в ответе:

  • number – номер детали
  • brand – производитель
  • descr – описание детали
  • days – срок поставки
  • stock – наличие на складе
  • price – цена
  • cross – «true» -оригинальный номер;  «false» - кросс.

 

 

SupplierCrossPrice

Запрос:

$request = array(

      'method'    => 'SupplierCrossPrice',

      'key' => '649f39ebefdfdebf0d28a4fb3c0b041e',

      'timeout' => 30,

      'request' => array(

                        array(

                             'supplier' => 'emex',

                             'number'=> '1994601',

                             'brand' => 'mahle filter'),

                       array(

                              'supplier' => 'as61',

                              'number'=> 'lx622',

                              'brand' => 'mahle filter'

                             )

                        )

                    );

Ответпослераспаковки json:              

  • object(stdClass)#1 (1) {

  ["response"]=>

  object(stdClass)#2 (1) {

    ["emex"]=>

    object(stdClass)#3 (1) {

      ["1994601_MAHLE FILTER"]=>

      array(73) {

        [0]=>

        object(stdClass)#4 (7) {

          ["number"]=>

          string(7) "1994601"

          ["brand"]=>

          string(9) "Lemforder"

          ["descr"]=>

          string(45) "Ремкомплект, балка моста"

          ["days"]=>

          int(1)

          ["stock"]=>

          int(5)

          ["price"]=>

          string(9) "2353.2300"

          ["cross"]=>

          int(0)

        }

        [1]=>

        object(stdClass)#5 (7) {

          ["number"]=>

          string(7) "1994601"

          ["brand"]=>

          string(9) "Lemforder"

          ["descr"]=>

          string(45) "Ремкомплект, балка моста"

          ["days"]=>

          int(3)

          ["stock"]=>

          int(2)

          ["price"]=>

          string(9) "3073.0500"

          ["cross"]=>

          int(0)

        }

<…>

Значения полей в ответе:

  • number – номер детали
  • brand – производитель
  • descr – описание детали
  • days – срок поставки
  • stock – наличие на складе
  • price – цена
  • cross – «true» -оригинальный номер;  «false» - кросс.

 

SupplierProducersList

Запрос:

$request = array(

      'method'    => ' SupplierProducersList',

      'key' => '649f39ebefdfdebf0d28a4fb3c0b041e',

      'timeout' => 30,

      'request' => array(

                        array(

                             'supplier' => 'as61',

                             'number'=> 'lx622'

                        )

                    );

Ответпослераспаковки json:

  • object(stdClass)#1 (1) {

  ["response"]=>

  object(stdClass)#2 (1) {

    ["as61"]=>

    object(stdClass)#3 (1) {

      ["LX622"]=>

      array(11) {

        [0]=>

        object(stdClass)#4 (3) {

          ["number"]=>

          string(6) "LX 622"

          ["brand"]=>

          string(12) "MAHLE FILTER"

          ["descr"]=>

          string(31) "Воздушный фильтр"

        }

        [1]=>

        object(stdClass)#5 (3) {

          ["number"]=>

          string(5) "LX622"

          ["brand"]=>

          string(3) "VAG"

          ["descr"]=>

          string(65) "ФИЛЬТР ВОЗДУШНЫЙ (MAHLE)AUDI A4,A6; OPEL FRONTERA,"

        }

        [2]=>

        object(stdClass)#6 (3) {

          ["number"]=>

          string(5) "LX622"

          ["brand"]=>

          string(5) "DELLO"

          ["descr"]=>

          string(31) "ФИЛЬТР ВОЗДУШНЫЙ"

        }

        <…>

Значения полей в ответе:

  • number – номер детали
  • brand – производитель
  • descr – описание детали

              SuppliersList

Запрос:

$request = array(

      'method'    => 'SupplierCrossPrice',

      'key' => '649f39ebefdfdebf0d28a4fb3c0b041e'

                    );

Ответпослераспаковки json:              

  • object(stdClass)#1 (1) {

  ["response"]=>

  object(stdClass)#2 (2) {

    ["as61"]=>

    object(stdClass)#3 (3) {

      ["name"]=>

      string(7) "as61.ru"

      ["code"]=>

      string(4) "as61"

      ["services"]=>

      object(stdClass)#4 (3) {

        ["Price"]=>

        object(stdClass)#5 (5) {

          ["method"]=>

          string(5) "Price"

          ["active"]=>

          bool(true)

          ["till"]=>

          string(10) "2013-11-30"

          ["description"]=>

          string(16) "Проценка"

          ["limits"]=>

          object(stdClass)#6 (3) {

            ["hour"]=>

            string(3) "500"

            ["day"]=>

            string(4) "2500"

            ["week"]=>

            string(5) "15000"

          }

        }

        ["SupplierCrossPrice"]=>

        object(stdClass)#7 (5) {

          ["method"]=>

          string(18) "SupplierCrossPrice"

          ["active"]=>

          bool(true)

          ["till"]=>

          string(10) "2013-11-30"

          ["description"]=>

          string(55) "Кроссы+проценка от поставщика"

          ["limits"]=>

          object(stdClass)#8 (3) {

            ["hour"]=>

            string(3) "200"

            ["day"]=>

            string(3) "500"

            ["week"]=>

            string(4) "2000"

          }

        }

        ["SupplierProducersList"]=>

        object(stdClass)#9 (5) {

          ["method"]=>

          string(21) "SupplierProducersList"

          ["active"]=>

          bool(true)

          ["till"]=>

          string(10) "2013-11-30"

          ["description"]=>

          string(39) "Производители детали"

          ["limits"]=>

          object(stdClass)#10 (3) {

            ["hour"]=>

            string(3) "200"

            ["day"]=>

            string(3) "500"

            ["week"]=>

            string(4) "2000"

          }

        }

      }

    }

<…>

Значения полей в ответе:

  • name – название поставщика
  • code – код поставщика
  • limits – массив содержащий информацию о лимитах на запросы в формате «период» => «лимит»
  • services – массив содержащий информацию о доступных (подключенных) методах:
  • method – название метода
  • active – «true» - метод активен,  «false» - метод неактивен
  • till – дата, до которой активирован метод
  • description – описание метода

 

              SupplierOptions

Запрос:

$request = array(

      'method'    => 'SupplierCrossPrice',

      'key' => '649f39ebefdfdebf0d28a4fb3c0b041e',

      'request' => array(

                           array(

                                 'supplier' => 'as61'

                                 ),

                          array(

'supplier' => 'emex'

)

                     )

      );

Ответпослераспаковки json:              

  • object(stdClass)#1 (1) {

  ["response"]=>

  object(stdClass)#2 (2) {

    ["as61"]=>

    array(3) {

      [0]=>

      object(stdClass)#3 (3) {

        ["method"]=>

        string(5) "Price"

        ["active"]=>

        bool(true)

        ["till"]=>

        string(10) "2013-11-30"

      }

      [1]=>

      object(stdClass)#4 (3) {

        ["method"]=>

        string(18) "SupplierCrossPrice"

        ["active"]=>

        bool(true)

        ["till"]=>

        string(10) "2013-11-30"

      }

      [2]=>

      object(stdClass)#5 (3) {

        ["method"]=>

        string(21) "SupplierProducersList"

        ["active"]=>

        bool(true)

        ["till"]=>

        string(10) "2013-11-30"

      }

    }

    ["emex"]=>

    array(2) {

      [0]=>

      object(stdClass)#6 (3) {

        ["method"]=>

        string(5) "Price"

        ["active"]=>

        bool(true)

        ["till"]=>

        string(10) "2013-11-30"

      }

      [1]=>

      object(stdClass)#7 (3) {

        ["method"]=>

        string(18) "SupplierCrossPrice"

        ["active"]=>

        bool(true)

        ["till"]=>

        string(10) "2013-11-30"

      }

    }

  }

Значения полей в ответе:

  • method – название метода
  • active – «true» - метод активен,  «false» - метод неактивен
  • till – дата, до которой активирован метод