Экспорт объектов в формате UMIDump 2.0 средствами API на примере заказов — различия между версиями
Velross (обсуждение | вклад) |
Velross (обсуждение | вклад) |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | '''Задача:''' Экспортировать объекты, экспорт/импорт которых не поддерживаются через модуль " | + | '''Актуально для версии 2.9''' |
+ | <br/> | ||
+ | '''Задача:''' Экспортировать объекты, экспорт/импорт которых не поддерживаются через модуль "Обмен данными" <br /> | ||
'''Частный пример:''' Экспорт-Импорт списка заказов для переноса их из одной системы UMI.CMS в другую. | '''Частный пример:''' Экспорт-Импорт списка заказов для переноса их из одной системы UMI.CMS в другую. | ||
Строка 27: | Строка 29: | ||
Далее, в модуле "Обмен данными" мы создаем новый Импорт в формате UMIDump2.0, указываем полученный нами файл и производим импорт данных. | Далее, в модуле "Обмен данными" мы создаем новый Импорт в формате UMIDump2.0, указываем полученный нами файл и производим импорт данных. | ||
− | Аналогичным образом мы можем экспортировать любые другие объекты | + | Аналогичным образом мы можем экспортировать любые другие объекты. |
− | Для этого потребуется изменить | + | Для этого потребуется изменить 1 строчку кода. |
− | + | Нам потребуется изменить тип экспортируемых объектов в строке: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<source lang="php"> | <source lang="php"> | ||
$sel->types('object-type')->name('emarket', 'order'); | $sel->types('object-type')->name('emarket', 'order'); | ||
</source> | </source> | ||
− | Все доступные типы объектов можно посмотреть в настройках модуля "Шаблоны данных". | + | Все доступные типы объектов можно посмотреть в настройках модуля "Шаблоны данных".<br /> |
− | Вот только некоторые примеры: | + | Вот только некоторые примеры:<br /> |
1) Список пользователей: $sel->types('object-type')->name('users', 'user');<br /> | 1) Список пользователей: $sel->types('object-type')->name('users', 'user');<br /> | ||
2) Список подписчиков на рассылку: $sel->types('object-type')->name('dispatches', 'subscriber');<br /> | 2) Список подписчиков на рассылку: $sel->types('object-type')->name('dispatches', 'subscriber');<br /> | ||
− | 3) | + | 3) Экспорт блогов: $sel->types('object-type')->name('blogs20', 'blog');<br /> |
− | + | ||
− | $sel->types('object-type')->name(' | + | По желанию, Вы можете также изменить идентификатор экспорта: new xmlExporter('orders'); и название выходного файла: file_put_contents('orders.xml', $result->saveXml()); |
− | |||
− | |||
− | |||
− | + | [[Категория:API]][[Категория:Модуль Обмен данными]] |
Текущая версия на 17:05, 7 июня 2013
Актуально для версии 2.9
Задача: Экспортировать объекты, экспорт/импорт которых не поддерживаются через модуль "Обмен данными"
Частный пример: Экспорт-Импорт списка заказов для переноса их из одной системы UMI.CMS в другую.
В стандартных возможностях модуля "Обмен данными" присутствует экспорт заказов в формат CommerceML 2.0, но импорт заказов из данного формата отсутствует.
Для решения поставленной задачи, с помощью средств API[1], мы можем написать автономный скрипт на php, организующий экспорт необходимой нам информации в формат UMIDump 2.0 (получится xml-файл), а уже из него в модуле "Обмен данными" мы сможем произвести импорт полученной информации в нужную нам систему.
Вот скрипт, который реализует экспорт заказов в файл orders.xml, который появится в корне сайта после завершения работы скрипта. Сам скрипт необходимо также запускать из корня сайта.
<?php
include('standalone.php');
$sel = new selector('objects');
$sel->types('object-type')->name('emarket', 'order');
$orders = $sel->result();
$exporter = new xmlExporter('orders');
$exporter->addObjects($orders);
$result = $exporter->execute();
file_put_contents('orders.xml', $result->saveXml());
?>
Далее, в модуле "Обмен данными" мы создаем новый Импорт в формате UMIDump2.0, указываем полученный нами файл и производим импорт данных.
Аналогичным образом мы можем экспортировать любые другие объекты. Для этого потребуется изменить 1 строчку кода.
Нам потребуется изменить тип экспортируемых объектов в строке:
$sel->types('object-type')->name('emarket', 'order');
Все доступные типы объектов можно посмотреть в настройках модуля "Шаблоны данных".
Вот только некоторые примеры:
1) Список пользователей: $sel->types('object-type')->name('users', 'user');
2) Список подписчиков на рассылку: $sel->types('object-type')->name('dispatches', 'subscriber');
3) Экспорт блогов: $sel->types('object-type')->name('blogs20', 'blog');
По желанию, Вы можете также изменить идентификатор экспорта: new xmlExporter('orders'); и название выходного файла: file_put_contents('orders.xml', $result->saveXml());