Мне кажется это кому ни-будь может пригодиться.
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; }