Получить заказы пользователя с сортировкой по дате создания
Иногда требуется выгрузить заказы в какую-то внешнюю систему, отличную от 1С, в формате XML или JSON для их дальнейшей обработки. Рассмотрим как это можно сделать на примере Bitrix Framework. Предположим, что внешняя система должна получить данные заказа пользователя по его ID, отправляя на сайт GET-запрос. Создадим на сайте файл, допустим, /local/api/getorders.php. В файле подключим пролог, класс Loader и установим кодировку utf-8:
header('Content-Type: application/json; charset=utf-8');
use Bitrix\Main\Loader;
Далее, обработаем GET-параметр uid, в котором передается ID пользователя на сайте:
$query = $_GET['uid'];
$query = trim(htmlspecialchars(strip_tags($query)));
if (!$query) {
echo json_encode(["error" => "Пустой запрос"]);
}
if (!Loader::includeModule('sale')) {
echo json_encode(["error" => "Модуль sale не подключен"]);
exit;
}
Здесь мы также проверяем доступность модуля sale (Интернет-магазин) и если он отсутствует в системе, то будет выдано сообщение об ошибке. Также, если GET-запрос окажется пустым, то тоже будет возвращаться сообщение об ошибке. Далее, используя метод GetList класса CSaleOrder модуля sale получаем все заказы пользователя по его ID, отсортированные по убыванию даты создания заказа:
Заказы мы получили. Но, чтобы передать их во внешнюю систему, нужно сформировать массив заказов $result только с нужными данными, конвертировать его в JSON и предать:
$result = [];
while ($ar_sales = $db_sales->Fetch()){
$arStatus = CSaleStatus::GetByID($ar_sales["STATUS_ID"], "RU");
$result[] = [
"oid" => $ar_sales["ID"], // ID заказа
"onum" => $ar_sales["ACCOUNT_NUMBER"], // номер заказа
"date" => $ar_sales["DATE_INSERT"], // дата создания заказа
"summ" => $ar_sales["PRICE"], // сумма заказа
"status" => $arStatus["NAME"], // статус заказа
];
}
echo json_encode($result, JSON_UNESCAPED_UNICODE);
Обратите внимание на то, что статус заказа мы должны получить по его коду с помощью метода GetByID класса CSaleStatus модуля интернет-магазин. Ниже полный листинг примера:
Иногда требуется выгрузить заказы в какую-то внешнюю систему, отличную от 1С, в формате XML или JSON для их дальнейшей обработки. Рассмотрим как это можно сделать на примере Bitrix Framework. Предположим, что внешняя система должна получить данные заказа пользователя по его ID, отправляя на сайт GET-запрос. Создадим на сайте файл, допустим, /local/api/getorders.php. В файле подключим пролог, класс Loader и установим кодировку utf-8:
header('Content-Type: application/json; charset=utf-8');
use Bitrix\Main\Loader;
Далее, обработаем GET-параметр uid, в котором передается ID пользователя на сайте:
$query = $_GET['uid'];
$query = trim(htmlspecialchars(strip_tags($query)));
if (!$query) {
echo json_encode(["error" => "Пустой запрос"]);
}
if (!Loader::includeModule('sale')) {
echo json_encode(["error" => "Модуль sale не подключен"]);
exit;
}
Здесь мы также проверяем доступность модуля sale (Интернет-магазин) и если он отсутствует в системе, то будет выдано сообщение об ошибке. Также, если GET-запрос окажется пустым, то тоже будет возвращаться сообщение об ошибке. Далее, используя метод GetList класса CSaleOrder модуля sale получаем все заказы пользователя по его ID, отсортированные по убыванию даты создания заказа:
Заказы мы получили. Но, чтобы передать их во внешнюю систему, нужно сформировать массив заказов $result только с нужными данными, конвертировать его в JSON и предать:
$result = [];
while ($ar_sales = $db_sales->Fetch()){
$arStatus = CSaleStatus::GetByID($ar_sales["STATUS_ID"], "RU");
$result[] = [
"oid" => $ar_sales["ID"], // ID заказа
"onum" => $ar_sales["ACCOUNT_NUMBER"], // номер заказа
"date" => $ar_sales["DATE_INSERT"], // дата создания заказа
"summ" => $ar_sales["PRICE"], // сумма заказа
"status" => $arStatus["NAME"], // статус заказа
];
}
echo json_encode($result, JSON_UNESCAPED_UNICODE);
Обратите внимание на то, что статус заказа мы должны получить по его коду с помощью метода GetByID класса CSaleStatus модуля интернет-магазин. Ниже полный листинг примера:
С технологией Автокомпозит - больше не требуется глубоких настроек и сложного программирования. Композитный режим включается нажатием одной кнопки в административном разделе сайта
В 1С-Битрикс файлы скриптов и стилей можно подключать через тег <link /> обычным способом. И от этого ничего не пострадает. Однако при таком способе подключения не будет возможности управлять стилями и скриптами из админки...
Интеграция сайта с системами «1С:Предприятие» необходима любому бизнесу, который работает с клиентами онлайн. Без неё интернет-магазин просто не может быть конкурентоспособным – обработка заказа будет занимать больше времени, чем клиент может позволить.
В 1С-Битрикс.Управление сайтом, обычно сразу после установки, при тестировании системы появляется ошибка в строке Режим работы MySql "Ошибка! innodb_strict_mode=ON, требуется OFF". Из-за этой ошибки часть функционала Битрикс может не работать.
Заказать сайт
Авторизация
Восстановление пароля
Для восстановления пароля на указанный вами адрес электронной почты будет выслан новый пароль
Вы успешно зарегистрированы!
На указанный E-mail отправлено письмо со ссылкой для активации учетной записи.
Пароль изменен
На указанный E-mail отправлено письмо с данными для авторизации
Заказать звонок
Оставьте ваши контакты и мы перезвоним вам в ближайшее время
Ваше сообщение успешно отправлено!
Благодарим Вас за обращение в нашу компанию! Мы получили ваше письмо и обязательно рассмотрим его в ближайшее время. Если ваш вопрос срочный, вы можете позвонить нам прямо сейчас по номеру: +7 953 271-62-24
Мы ценим ваше время и приложим максимум усилий, чтобы оперативно решить поставленную задачу!
С уважением,
Команда «BUSSOL»
Купить в 1 клик
Укажите ваши данные и мы свяжемся с Вами для уточнения заказа