Как вставить данные из $purchases в array

Добрый день.
Произвожу интеграцию сервиса Яндекс доставка с SHK3. Данные типа номер заказа, контактные данные, общая сумма заказа получилось интегрировать. Проблема возникла с передачей списка покупок.
Вот как беру данные одного заказа одного товара

$purchases = $modx->getCollection('shk_purchases', array('order_id' => $order->id));
foreach ($purchases as $p) {
   $tovar = $p->get('name');
   $tovprice = $p->get('price');
   $count = $p->get('count');
}

Вот куда его необходимо вставить

$data['order_items'] = array
    (
        0 => array
        (
		'orderitem_article' => '', //Артикул товара. Значение содержится в массиве order_items. Example: GHY1234. String
        'orderitem_name' => $tovar, //Наименование товара. Значение содержится в массиве order_items. Example: Товар. String
        'orderitem_quantity' => $count, //Количество товара. Значение содержится в массиве order_items. Example: 1. String
        'orderitem_cost' => $tovprice, //Стоимость одной единицы товара. Значение содержится в массиве order_items. Example: 1000.
        ),        
    );

Без проблем передаю информацию если товар один. Но если в заказе 2 товара или более, то передается информация только о последнем товаре. Я понимаю что проблема в неправильной конструкции массива. Я не силен в массивах и прошу вас помочь.
Как правильно вставить в массив $data['order_items'] информацию о всех товарах из заказа?

я вот так делал layer push для GA, вызов последнего заказа

<?php $modx->addPackage('shopkeeper3', $modx->getOption('core_path').'components/shopkeeper3/model/');
$order_data = array();
$response = $modx->runProcessor('getorder',
			array(
			     'order_id' => $modx->getPlaceholder('shk.id'),
			    'date_format' => 'H:i:s d/m/Y'
			),
array('processors_path' => MODX_CORE_PATH . 'components/shopkeeper3/processors/mgr/') );

 if( !$response->isError() && $result = $response->getResponse()){
            $order_data = $result['object'];
        }
 ?>


<script>
	dataLayer.push({
   'event': 'zakaz',
   'transactionId': '<?=$order_data['id']?>', 
   'transactionTotal': '<?=$order_data['price']?>',
   'transactionShipping': '<?=$order_data['delivery_price']?>',
   'transactionProducts': [

   <?php foreach ($order_data['purchases'] as $purchas) {

  if (!next($order_data['purchases'])) { ?>

{
       'sku': '<?=$purchas['name']?>', 
       'name': '<?=$purchas['longtitle']?>',
       'category': '<?php  $category = $modx->runSnippet('getResourceField',
            array(
                'id' => $modx->runSnippet('UltimateParent', array ('id' => $purchas['parent'], 'topLevel'=> 3)),
				'field'=> 'menutitle'

            ));
			echo $category;?>', 
       'price': '<?=$purchas['price']?>',
       'quantity': '<?=$purchas['count']?>' 

}

 <?php }
   else { ?>

{
       'sku': '<?=$purchas['name']?>', 
       'name': '<?=$purchas['longtitle']?>', 
       'category': '<?php  $category = $modx->runSnippet('getResourceField',
            array(
                'id' => $parent = $modx->runSnippet('UltimateParent', array ('id' => $purchas['parent'], 'topLevel'=> 3)),
				'field'=> 'menutitle'

            ));
			echo $category;?>',
       'price': '<?=$purchas['price']?>',
       'quantity': '<?=$purchas['count']?>'

},

<?php } } ?>

   ]
});
</script>
 <?php return $response; ?>```

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