http = curl_getinfo($curl,CURLINFO_HTTP_CODE); curl_close($curl); return $result; } # $basic - базовый токен (выдаётся компанией АЛМА) нужен для получения временных токенов # $inn - ИНН организации за которой закреплён базовый токен # $token - временный токен, который вы храните у себя, пока не истечёт его срок действия # после чего система назначит вам новый временный токен, он используется для # повсеместной передачи по сети, чтобы не передавать базовый токен public function __construct($basic,$inn,$token) { # запоминаем параметры $this->basic = $basic; $this->inn = $inn; $this->token = $token; # проверям временный токен $check = json_decode($this->get(array('token'=>$this->token),'check')); if($check->status == true) { $this->check = true; } else { # пробуем авторизоавться и получить действующий токен $auth = json_decode($this->get(array('inn' =>$this->inn,'basic'=>$this->basic),'auth')); if($auth->status == true) { $this->check = true; $this->token = $auth->token; $this->life = $auth->life; } else { $this->error = $auth->message; } } } # получить информацию о всех категориях за один запрос public function get_category() { $post['token'] = $this->token; return $this->get($post,'category'); } # получить информацию о всех товарах за один запрос public function get_elements() { $post['token'] = $this->token; return $this->get($post,'elements'); } # получить информацию о всех остатках товаров за один запрос public function get_quantity() { $post['token'] = $this->token; return $this->get($post,'quantity'); } # получить информацию о всех ценах на все товары за один запрос public function get_prices() { $post['token'] = $this->token; return $this->get($post,'prices'); } # возвращает состояние авторизации и протокола обмена public function is_auth() { if($this->check) { return true; } else { return false; } } # возвращает код последней ошибки public function get_last_error() { return $this->error; } # возвращает действующий временный токен public function get_token() { return $this->token; } # возвращает оставшееся время жизни временного токена public function get_lifetime_token() { return $this->life; } # возвращает код ответа сервера public function get_http_code() { return $this->http; } # возвращает ссылки на все доступные фотографии и их разрешения public function get_element_images($code,$image_count) { $result = array(); $yy = substr(strrev($code), 0, 2); $path = 'https://cdn.alma.su/elements/'.$yy.'/'.$code.'/'.$code; for($i=0;$i<$image_count;$i++) { $item = array(); $item[] = $path.'_'.$i.'_orig.webp'; $item[] = $path.'_'.$i.'_64x64.webp'; $item[] = $path.'_'.$i.'_240x240.webp'; $item[] = $path.'_'.$i.'_480x480.webp'; $item[] = $path.'_'.$i.'_1024x1024.webp'; $result[] = $item; } return $result; } } ################################################################################ # ПРИМЕРЫ РАБОТЫ С ДАННЫМ ПРИМЕРОМ ПРОСТЕЙШЕГО КЛАССА РАБОТЫ С API ################################################################################ $api = new alma($basic,$inn,$token); if( $api->is_auth() ){ echo 'мы авторизованы '."\n"; echo 'действующий временный токен: '.$api->get_token()."\n"; echo 'время его оставшейся жизни: '.$api->get_lifetime_token()."\n"; } else { echo 'возникли проблемы '."\n"; echo 'описание ошибки: '.$api->get_last_error()."\n"; echo 'http код: '.$api->get_http_code()."\n"; die(); } # получаем список всех остатков товаров $elements = json_decode( $api->get_elements() ); foreach ($elements->elements as $item) { var_dump($item); # $item->id - код товара в учётной системе компании АЛМА # $item->name - наименование товара # $item->category - идентификатор родительской категории # $item->unit - единица измерения товара # $item->images - сколько фотографий у товара # $item->desc - детальное описание товара // как получить ссылки на фотографии? (расскомментируйте строки) # var_dump( $api->get_element_images( $item->id, $item->images) ); # exit(); } exit(); # получаем список всех остатков товаров $quantity = json_decode( $api->get_quantity() ); foreach ($quantity->elements as $item) { var_dump($item); # $item->id - код товара в учётной системе компании АЛМА # $item->quantity - доступный для продажи остаток } exit(); # получаем список всех цен $prices = json_decode( $api->get_prices() ); foreach ($prices->elements as $item) { var_dump($item); # $item->id - код товара в учётной системе компании АЛМА # $item->price - стоимость товара } exit(); # получаем список всех категорий $category = json_decode( $api->get_category() ); foreach ($category->category as $item) { var_dump($item); # $item->id - идентификатор категории # $item->name - название категории # $item->code - символьный код для ЧПУ # $item->parent - идентификатор родительской категории # $item->depth - глубина в дереве (нумерация с 0) # $item->picture - ссылка на картинку категории без ( https://cdn.alma.su/category/ ) } exit();