🐿Быстрый старт
⚙️Установка и обновление
Выгрузка товаров
JSON API
JSON API позволяет работать напрямую с базой данных PHPShop через внешние JSON запросы. Поддерживаются команды выборки, редактирования, удаления и создания данных.

Авторизация

Для авторизации запроса используются Token, его можно получить в разделе управления пользователем в закладке Права секция Доступ по API. Можно задать ограничение на принятие запросов только на Обзор, Редактирование и Создание.
Для смена или получения нового токена следует сменить пароль пользователя.

Запросы

Все запросы отправляются на адрес https://shopname.ru/base-xml-manager/json/. В заголовке запроса должен быть обязателен указан Токен авторизации {TOKEN} и передан массив данных $properties определенного содержания с указанием откуда производится выборка и по каким критериям на основе языка запросов SQL.

Примеры

Выборка всех полей последнего заказа базы.
PHP
JavaScript
1C
SQL
Ответ
// Массив передаваемых данных
$properties = array(
'from' => 'orders',
'method' => 'select',
'vars' => '*',
'where' => '',
'order' => 'id desc',
'limit' => '1'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://shopname.ru/base-xml-manager/json/');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($properties));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'TOKEN: {TOKEN}',
'Content-Type: application/json',
));
header("Content-Type: application/json");
echo curl_exec($ch);
// Отладка
//print_r(json_decode(curl_exec($ch),true));
// Массив передаваемых данных
var data = {};
data['from']='orders';
data['method']='select';
data['vars']='*';
data['where']='';
data['order']='id desc';
data['limit']= '1';
$.ajax({
url: 'https://shopname.ru/base-xml-manager/json/',
type: 'post',
data: JSON.stringify(data),
dataType: 'json',
headers: { 'TOKEN': '{TOKEN}' },
success: function (json) {
// Отладка
console.log(json);
}
});
// Массив передаваемых данных
ЗаписьJSon = Новый ЗаписьJSon;
ЗаписьJSon.УстановитьСтроку();
ЗаписьJSon.УстановитьНачалоОбъекта();
ЗаписьJSon.ЗаписатьИмяСвойства("from");
ЗаписьJSon.ЗаписатьЗначение("orders");
ЗаписьJSon.ЗаписатьИмяСвойства("method");
ЗаписьJSon.ЗаписатьЗначение("select");
ЗаписьJSon.ЗаписатьИмяСвойства("vars");
ЗаписьJSon.ЗаписатьЗначение("*");
ЗаписьJSon.ЗаписатьИмяСвойства("where");
ЗаписьJSon.ЗаписатьЗначение("");
ЗаписьJSon.ЗаписатьИмяСвойства("order");
ЗаписьJSon.ЗаписатьЗначение("id desc");
ЗаписьJSon.ЗаписатьИмяСвойства("limit");
ЗаписьJSon.ЗаписатьЗначение("1");
ЗаписьJSon.ЗаписатьКонецОбъекта();
СрокаJSON = ЗаписьJSon.Закрыть();
Запрос = Новый HTTPЗапрос("http://shopname.ru/base-xml-manager/json/");
Запрос.Заголовки.Вставить("TOKEN","{TOKEN}");
Запрос.УстановитьТелоИзСтроки(СрокаJSON);
Результат = Соединение.ОтправитьДляОбработки(Запрос);
СтрокаРезультат = Результат.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(СтрокаРезультат);
Ответ = ПрочитатьJSON(ЧтениеJSON, Истина);
select * from phpshop_orders order by id desc limit 1
Array
(
[status] => succes
[data] => Array
(
[id] => 29
[datas] => 1601458072
[uid] => 27-1
[orders] => Array
(
[Cart] => Array
(
[cart] => Array
(
[52] => Array
(
[id] => 52
[name] => Test product
[price] => 5000
[uid] => 123456
[num] => 1
[pic_small] => /UserFiles/Image/Trial/img52_37358s.jpg
[total] => 5000
)
)
[dostavka] => 0
[sum] => 5000
)
[Person] => Array
(
[mail] => den@phpshop.ru
[dostavka_metod] => 3
[discount] => 0
[order_metod] => 3
)
[num] => 1
[sum] => 5000
[weight] => 1000
[dostavka] => 0
)
[status] => Array
(
[maneger] =>
[time] => 30-09-2020 12:35
)
[user] => 0
[seller] => 0
[statusi] => 0
[country] =>
[state] =>
[city] =>
[index] =>
[fio] => User
[tel] => (926) 969-6636
[street] =>
[house] =>
[porch] =>
[door_phone] =>
[flat] =>
[delivtime] =>
[org_name] =>
[org_inn] =>
[org_kpp] =>
[org_yur_adres] =>
[org_fakt_adres] =>
[org_ras] =>
[org_bank] =>
[org_kor] =>
[org_bik] =>
[org_city] =>
[dop_info] =>
[sum] => 5000
[files] =>
[tracking] =>
[admin] => 0
[servers] => 0
[paid] =>
[bonus_minus] => 0
[bonus_plus] => 0
[moysklad_deal_id] =>
)
)
1
В полях vars и where можно указывать условия выборки обычным для SQL способом. Пример:
Запрос
SQL синоним
$properties = array(
'from' => 'products',
'method' => 'select',
'vars' => 'id,name,price',
'where' => 'id=100',
'order' => '',
'limit' => '1'
);
select id,name,price from phpshop_products where id="100" limit 1
В ответ на запрос будет получен массив данных в формате JSON. В массиве data будет хранится информация из БД, в значении status будет статус ответа success, false или error. При наличии ошибки будет показан SQL код ошибки в поле error. Положительный результат выборки всегда дополняется статусом success.
В качестве имени from используются короткие имена таблиц в PHPShop, основные из них:
  • products - таблица товаров
  • categories - таблица каталогов
  • orders - таблица заказов
  • shopusers - таблица покупателей
Полный список таблиц с описанием доступен в панели управления База - SQL запрос к базе - Описание таблиц.

Выборка данных метод select

Запрос
SQL синоним
Ответ
$properties = array(
'from' => 'orders',
'method' => 'select',
'vars' => '*',
'where' => '',
'order' => 'id desc',
'limit' => '1'
);
select * from phpshop_orders order by id desc limit 1
Array
(
[status] => succes
[data] => Array
(
[id] => 29
[datas] => 1601458072
[uid] => 27-1
[orders] => Array
(
[Cart] => Array
(
[cart] => Array
(
[52] => Array
(
[id] => 52
[name] => Test product
[price] => 5000
[uid] => 123456
[num] => 1
[pic_small] => /UserFiles/Image/Trial/img52_37358s.jpg
[total] => 5000
)
)
[dostavka] => 0
[sum] => 5000
)
[Person] => Array
(
[mail] => [email protected].ru
[dostavka_metod] => 3
[discount] => 0
[order_metod] => 3
)
[num] => 1
[sum] => 5000
[weight] => 1000
[dostavka] => 0
)
[status] => Array
(
[maneger] =>
[time] => 30-09-2020 12:35
)
[user] => 0
[seller] => 0
[statusi] => 0
[country] =>
[state] =>
[city] =>
[index] =>
[fio] => User
[tel] => (926) 969-6636
[street] =>
[house] =>
[porch] =>
[door_phone] =>
[flat] =>
[delivtime] =>
[org_name] =>
[org_inn] =>
[org_kpp] =>
[org_yur_adres] =>
[org_fakt_adres] =>
[org_ras] =>
[org_bank] =>
[org_kor] =>
[org_bik] =>
[org_city] =>
[dop_info] =>
[sum] => 5000
[files] =>
[tracking] =>
[admin] => 0
[servers] => 0
[paid] =>
[bonus_minus] => 0
[bonus_plus] => 0
[moysklad_deal_id] =>
)
)
1

Обновление данных метод update

Запрос
SQL синоним
Ответ
$properties = array(
'from' => 'products',
'method' => 'update',
'vars' => array('price'=>1000,'name'=>'New name'),
'where' => 'id=147',
'order' => '',
'limit' => '1'
);
update phpshop_products set name="New Name", price="1000" where id="147" limit 1
Array
(
[status] => succes
)

Удаление данных метод delete

Запрос
SQL синоним
Ответ
$properties = array(
'from' => 'products',
'method' => 'delete',
'vars' => '',
'where' => 'id=142',
'order' => '',
'limit' => '1'
);
delete from phpshop_products where id="142" limit 1
Array
(
[status] => succes
)

Вставка данных метод insert

Запрос
SQL синоним
Ответ
$properties = array(
'from' => 'products',
'method' => 'insert',
'vars' => array('price'=>1000,'name'=>'New name'),
'where' => '',
'order' => '',
'limit' => ''
);
insert into phpshop_products set name="New name", price="1000"
Array
(
[status] => succes
)

Создание нового заказа

При создании нового заказа корзина заказа передается в сериализованном массиве orders.
Запрос
Ответ
$properties = array(
'from' => 'orders',
'method' => 'insert',
'vars' => array(
'uid' => '27-1',
'datas' => time(),
'fio' => 'User',
'tel' =>'(926) 969-6636',
'sum' => 5000,
'orders' => serialize(array(
'Cart' => array(
'cart' => array(
52 => array(
'id' => 52,
'name' => 'Test product',
'price' => 5000,
'uid' => 123456,
'num' => 1,
'pic_small' => '/UserFiles/Image/Trial/img52_37358s.jpg',
'total' => 5000
),
),
),
'Person'=>array(
'mail'=>'[email protected]',
'dostavka_metod'=>3,
'discount'=>0,
'order_metod'=>3
),
'num' => 1,
'sum' => 5300,
'weight' => 1000,
'dostavka' => 300
)),
),
'where' => '',
'order' => '',
'limit' => ''
);
Array
(
[status] => succes
)

Отправка почтового сообщения

Запрос
Ответ
$properties = array(
'from' => '',
'method' => 'mail',
'vars' => ['mail'=>'[email protected]','title'=>'Status','content'=>'Test'],
'where' => '',
'order' => '',
'limit' => ''
);
Array
(
[status] => succes
)

Использование

Описанный метод обмена информацией используется:
  1. 1.
    Интерактивный прайс-лист - автоматически заполняющийся, на основе каталога магазина, файл Excel, со встроенной виртуальной корзиной.
  2. 2.
    Монитор - приложение управления заказами для Windows.
JSON API доступно для версии PHPShop 6.0.9 и выше.
Copy link
On this page
Авторизация
Запросы
Примеры
Выборка данных метод select
Обновление данных метод update
Удаление данных метод delete
Вставка данных метод insert
Создание нового заказа
Отправка почтового сообщения
Использование