Всё то, что доступно на сайте, можно получить в виде JSON (включая курсы валют, продукцию, цены).
Информация предназначена для облегчения работы. Всё это вы можете получить с API компании BRAIN Computers. Но, т.к. работать с ним затруднительно... впрочем, каждому своё.
Для получения информации нужно зарегистрироваться на сайте.
Мы написали небольшой класс для облегчения доступа: apiplus.php
https://github.com/fswitch/apiplus
Свободно подключается к любому скрипту и вытягивает для вас нужную информацию.
E-mail и пароль, разумеется, должны быть изменены на ваши.
Пароль - это md5 вашего пароля с этого сайта.
<?php
include(dirname(__FILE__).'/apiplus.php');
$email = '[email protected]';
$password_md5 = 'e10adc3949ba59abbe56e057f20f883e'; // md5('123456');
$AP = new apiplus();
// authorize to get SID
$try = $AP->_api_auth($email, $password_md5);
// example of answer
// error: {"error":1,"msg":"You posted wrong email and/or password"}
// no error: {"error":0,"msg":"You logged in","sid":"c33367701511b4f6020ec61ded352059"}
if ($try['error'] == 0){
$sid = $try['sid'];
} else {
die('can\'t authorize');
}
?>
Теперь у вас есть собственный идентификатор сессии.
Можно получить остальную информацию. Например, категории:
<?php
// get categories
$try = $AP->_categories($sid);
?>
Теперь, если все прошло успешно, в переменной $try содержится подобный массив:
Array
(
[error] => 0
[error_code] => 0
[error_message] =>
[categories] => Array
(
[0] => stdClass Object
(
[id] => 1
[parent] => 175
[real_id] => 0
[title] => APC
[last_prod_id] => 264614
[count] => 127947
[count_prod] => 0
)
[1] => stdClass Object
(
[id] => 1037
[parent] => 1354
[real_id] => 0
[title] => Wi-Fi карты и адаптеры
[last_prod_id] => 255663
[count] => 102
[count_prod] => 103
)
[2] => stdClass Object
(
[id] => 1038
[parent] => 1308
[real_id] => 0
[title] => Акустические системы
[last_prod_id] => 263826
[count] => 822
[count_prod] => 1206
)
)
)
Точно таким же образом можем получить и производителей (вендоров):
<?php
// get vendors
$try = $AP->_vendors($sid);
?>
и получаем в $try нечто вроде следующего:
Array
(
[error] => 0
[error_code] => 0
[error_message] =>
[vendors] => Array
(
[1638] => stdClass Object
(
[id] => 2
[title] => SONY
)
[1639] => stdClass Object
(
[id] => 371
[title] => SONY NEC OPTIARC
)
[1640] => stdClass Object
(
[id] => 1319
[title] => SonyEricsson
)
)
)
Получение курсов валют:
<?php
// get currency
$try = $AP->_currency($sid);
?>
Переменная $try будет содержать следующую структуру
Array
(
[error] => 0
[error_code] => 0
[error_message] =>
[currency] => stdClass Object
(
[date] => 2016-12-24
[privatbank_usd_buy] => 26.70000
[privatbank_usd_sell] => 27.20000
[nbu_usd_buy] => 26.28601
[nbu_usd_sell] => 26.28601
[brain_usd_buy] => 26.40000
[brain_usd_sell] => 26.40000
)
)
Есть возможность получить идентификаторы продуктов, содержащихся в категории.
<?php
// get product IDs in category (second parameter is the ID of category 1191)
$try = $AP->_prod_ids_category($sid,1191);
?>
Переменная $try будет содержать следующую структуру
Array
(
[error] => 0
[error_code] => 0
[error_message] =>
[products] => Array
(
[0] => 216731
[1] => 216649
[2] => 216647
[3] => 216646
[4] => 33916
[5] => 34750
[6] => 34837
[7] => 35079
[8] => 35083
)
)
Можно получить обновленные продукты за сегодня, за вчера, ..., за 7 дней до сегодня
<?php
// get updated products IDs for single day (0 - today, 1 - yesterday, ..., 7 - seven days ago)
$try = $AP->_products_updates($sid,0);
?>
Переменная $try будет содержать следующую структуру
Array
(
[error] => 0
[error_code] => 0
[error_message] =>
[products] => Array
(
[0] => 1967
[1] => 84278
[2] => 102802
[3] => 102804
[4] => 161107
[5] => 103492
[6] => 89023
[7] => 101363
[8] => 110422
[9] => 110423
[10] => 9236
[11] => 82469
[12] => 102289
[13] => 98907
[14] => 95109
[15] => 95110
[16] => 95156
[17] => 95176
[18] => 95179
[19] => 95184
)
)
По этим идентификаторам продуктов можно получить и сами продукты:
<?php
// get product from remote server by product ID
$try = $AP->_product($sid, $prod_id);
?>
Переменная $try будет содержать ответ в виде продукта
Array
(
[error] => 0
[error_code] => 0
[error_message] =>
[product] => stdClass Object
(
[prod_id] => 1967
[title] => USB флеш накопитель 8Gb JetFlash 560 Transcend (TS8GJF560)
[cat_id] => 1180
[padd] => 1344375340
[pupdate] => 1482600933
[brief_description] => <p>8 Gb, USB 2.0, металл, черный</p>
[description] => <div>
TRANSCEND JetFlash 560 (TS8GJF560) - флэш-накопитель, оснащенный интерфейсом USB 2.0. По мнению производителя, "новинка выглядит просто, но стильно".<br><br>Металлический корпус TRANSCEND JetFlash 560 серебристого оттенка украшен шахматным узором. Новинке не страшны падения и тряска, поскольку при изготовлении корпуса применена технология ультразвуковой сварки.<br><br>Особенностью конструкции JetFlash 560 является выдвижной разъем USB. Это позволяет защитить разъем от загрязнения и поломки, одновременно устраняя риск потери съемного колпачка.<br><br>Скорость чтения TRANSCEND JetFlash 560 (TS8GJF560) во всех случаях равна 18 МБ/с, а скорость записи зависит от объема. Младшая модель развивает скорость 6 МБ/с, накопители объемом 8 и 16 ГБ способны записывать данные со скоростью 10 МБ/с.
</div>
[product_code] => ET07951
[picture] => http://brain.next.in.ua/static/images/products/51/ET07951_big.jpg
[images] => Array
(
[0] => http://brain.next.in.ua/static/images/products/51/ET07951_big.jpg
)
[warranty] => 60
[vendorID] => 31
[vendor_code] => TS8GJF560
[options] => stdClass Object
(
[Максимальная скорость записи] => 10 Мбайт/сек
[Интерфейс] => USB 2.0
[Максимальная скорость чтения] => 18 Мбайт/сек
[Объем памяти] => 8 Gb
[Тип] => С выдвижным USB, Высокоскоростные, Стильные и гламурные
[Артикул] => TS8GJF560
[Модель] => 8Gb JetFlash 560
[Производитель] => Transcend
[Материал корпуса] => металл
[Физические размеры] => 45.2 x 23 x 8.5 мм
[Вес] => 7 г
[Цвет] => черный
[Страна производства] => Тайвань
[Гарантия, мес] => 60
)
)
)
Также можно загрузить к себе картинки:
<?php
if (!empty($product->images))
{
$imgs = array();
foreach ($product->images as $img)
{
// first parameter - image URI
// second parameter - path to file, where image sould be downloaded
$ret = $AP->_download_image($img,$saveimagesdir.'/'.$imgdir.'/'.basename($img));
if ($ret){
$imgs[] = basename($img); // name of downloaded image
}
}
$product->images = $imgs; // array of downloaded images
}
if (!empty($product->picture))
{
$ret = $AP->_download_image($product->picture,$saveimagesdir.'/'.$imgdir.'/'.basename($product->picture));
if ($ret){
$product->picture = basename($product->picture);
}
}
?>
Получение фильтров по идентификатору категории:
<?php
// get product from remote server by category ID
$try = $AP->_filters_all($sid,$cat_id);
?>
Переменная $try будет содержать ответ в виде фильтров категории
stdClass Object
(
[error] => 0
[msg] =>
[code] =>
[filters_all] => Array
(
[0] => stdClass Object
(
[name] => Тип ноутбука
[optionID] => 216
[options] => Array
(
[0] => stdClass Object
(
[filterID] => 216-86012946200
[name] => Apple
)
[1] => stdClass Object
(
[filterID] => 216-86012969500
[name] => Бизнес
)
[2] => stdClass Object
(
[filterID] => 216-86012946000
[name] => Для работы и учебы
)
[3] => stdClass Object
(
[filterID] => 216-86012945300
[name] => Игровой
)
[4] => stdClass Object
(
[filterID] => 216-86012946100
[name] => Мультимедийный центр
)
[5] => stdClass Object
(
[filterID] => 216-86012946800
[name] => Портативные
)
[6] => stdClass Object
(
[filterID] => 216-86012946600
[name] => Трансформер
)
)
)
[1] => stdClass Object
(
[name] => Производитель
[optionID] => 3
[options] => Array
(
[0] => stdClass Object
(
[filterID] => 3-75001200000
[name] => Acer
)
[1] => stdClass Object
(
[filterID] => 3-83017200000
[name] => Apple
)
[2] => stdClass Object
(
[filterID] => 3-02303000000
[name] => ASUS
)
[3] => stdClass Object
(
[filterID] => 3-75001300000
[name] => Dell
)
[4] => stdClass Object
(
[filterID] => 3-75001900000
[name] => Fujitsu
)
[5] => stdClass Object
(
[filterID] => 3-75001700000
[name] => HP
)
[6] => stdClass Object
(
[filterID] => 3-75002600000
[name] => Lenovo
)
[7] => stdClass Object
(
[filterID] => 3-75002000000
[name] => MSI
)
[8] => stdClass Object
(
[filterID] => 3-75000900000
[name] => SONY
)
)
)
[2] => stdClass Object
(
[name] => Диагональ дисплея
[optionID] => 6615
[options] => Array
(
[0] => stdClass Object
(
[filterID] => 6615-g2830
[name] => 10.1" - 12.5"
)
[1] => stdClass Object
(
[filterID] => 6615-g2829
[name] => 13.3" - 14.1"
)
[2] => stdClass Object
(
[filterID] => 6615-g2828
[name] => 15.6" - 16"
)
[3] => stdClass Object
(
[filterID] => 6615-g2827
[name] => 17.3" - 18.4"
)
)
)
)
)
Получение розничного прайса.
<?php
// get retail prices
$try = $AP->_prices_retail($sid);
?>
Переменная $try будет содержать ответ в виде массива цен на все товары, где ключ - идентификатор товара, а значение - розничная цена в грн.
Array
(
[error] => 0
[error_code] => 0
[error_message] =>
[prices_retail] => stdClass Object
(
[2] => 3397.5
[3] => 3804
[4] => 2388.9
[5] => 2999.4
[7] => 12229.5
[8] => 6532.5
[9] => 4371.6
[17] => 6408.6
[19] => 2749.5
[23] => 372.9
[24] => 666.3
[26] => 921.6
[28] => 773.1
[30] => 421.5
)
)