[modx] Снятие заказаных товаров с публикации

Ставим плагин на событие msOnCreateOrder со следующим содержимым

<?php
switch ($modx->event->name) {
case 'msOnCreateOrder':
    $prs = $msOrder->getMany('Products'); // так получаем объекты товаров в заказе
  
    foreach ($prs as $pr) {
        $product_id = $pr->get('product_id'); //определяем id ресурса в заказе
        
        $product = $modx->getObject('msProduct', array('id' => $product_id));
    
        // убираем товар из публикации
        $product->set('published',0);
        $product->save();
        
        // чистим кэш
        $cacheKey = $product->getCacheKey();
        $modx->cacheManager->refresh(array(
            'resource' => array('key' => $cacheKey)
        ));
    }
break;
}