Изменение содержимого заказа через API

Привет. Как-то можно кроме SQL запроса добавлять программно продукты в заказ? Оно запросом работает, но может быть есть более верный и готовый вариант в API?

Всё API для управления заказами вне корзины это процессоры
https://github.com/andchir/shopkeeper3/tree/master/core/components/shopkeeper3/processors/mgr

Но документации по ним нет.

@Andchir прошу помощи.

не могу понять в каком формате передавать 'contacts' от заказа
напрямую
$contacts = $order->get('contacts') не дает, затирает контакты
$contacts = json_decode($order->get('contacts'));
тоже не спасает
что я делаю не так...

$response = $modx->runProcessor('saveorder',
array(
'order' => array('purchases' => $importPurchases, 'id' => $SiteWebOrderID),
'contacts' => $contacts
),
array('processors_path' => MODX_CORE_PATH . 'components/shopkeeper3/processors/mgr/')
);

@DZOT

$contacts = json_decode($order->get('contacts'));
тоже не спасает

Видимо забыли "true".

$contacts = json_decode($order->get('contacts'), true);

@Andchir Да я так тоже делал, все равно затирает.
обошел немного другим способом, не знаю на сколько топорно, но работает
перед обновлением считываю информацию
$order = $modx->getObject('shk_order', $docId);
$contactFirst = $order->get('contacts');

.... $modx->runProcessor('saveorder', .....

после сохраняю контактную информацию, но надо заново считать заказ, т.к. он обновился.
$order = $modx->getObject('shk_order', $docId);
$order -> set('contacts', $contactFirst);
$order -> save();

Похоже, подключение к Форум | MODX Shopkeeper было разорвано, подождите, пока мы пытаемся восстановить соединение.