Мне кажется это кому ни-будь может пригодиться. newstatus.tpl: {extends file="message/layout.tpl"}
{block name=body}
<h3 style="margin: 20px 0 50px;">
Номер заказа: <strong>{$order.id}</strong>
Новый статус заказа: <strong>{$newstatusstr}</strong>
</h3>
{$smarty.block.child}
<h3>Список товаров</h3>
<table border="1" width="90%">
<tbody>
<tr>
<th>Наименование</th>
<th>Количество</th>
<th>Цена</th>
<th>Сумма</th>
</tr>
{foreach $order_data as $product}
<tr>
<td><a href="{$site_url}{$product._Product.uri}">{$product._Product.pagetitle}</a></td>
<td>{$product.quantity} </td>
<td>{$product.price|number_format:2:",":" "} {$product.currency_code}</td>
<td>{$summ = $product.quantity * $product.price}{$summ|number_format:2:",":" "} {$product.currency_code}</td>
</tr>
{/foreach}
</tbody>
</table>
<br />
<br />
<strong>Итого: </strong> {if $order.discount}<s>{((float)$order.original_sum)|number_format:2:".":" "}</s> {$product.currency_code}<br /><strong>С учетом скидки {$order.discount}%: </strong>{/if} {((float)$order.sum)|number_format:2:".":" "} {$product.currency_code}
{/block} Плагин UpdateOrder: <?php
switch ($modx->event->name) {
case 'OnShopModxOrderBeforeSave':
// Если поле статус изменено, то фиксируем новый статус
if ($object->isDirty('status_id')) {
$object->set("new_status", $object->status_id);
}
break;
case 'OnShopModxOrderSave':
if ($object->new_status) {
$arr1 = $object->get('_OrderProducts');
$sendcont = false;
$modx->switchContext('web');
$modx->invokeEvent('OnHandleRequest');
switch ($object->new_status) {
// Принят
case 3:
$sendcont = true;
$modx->smarty->assign('newstatusstr', 'Принят');
break;
case 4:
$sendcont = true;
$modx->smarty->assign('newstatusstr', 'Доставка');
break;
case 5:
$sendcont = true;
$modx->smarty->assign('newstatusstr', 'Доставлен');
break;
case 6:
$sendcont = true;
$modx->smarty->assign('newstatusstr', 'Выполнен');
break;
case 7:
$sendcont = true;
$modx->smarty->assign('newstatusstr', 'Отменен');
break;
case 8:
$sendcont = true;
$modx->smarty->assign('newstatusstr', 'Оплачен');
break;
}
if (($object->Contractor) && ($sendcont)) {
$modx->smarty->assign('order', $object->toArray());
$modx->smarty->assign('order_data', $arr1);
//$modx->log(1, print_r($object->toArray(), 1));
$message = $modx->smarty->fetch("message/order_submitted/newstatus.tpl");
$subject = "Изменение статуса заказа №-" . $object->get('id');
$object->Contractor->sendEmail($message, array(
"subject" => $subject,
));
}
}
break;
}