Меню KDT

Страница "Заказы товаров"

Пример её создания.

Страница заказов товаров состоит из списка заказов (orders_list.html) и информации о заказе (orders_item.html).

На странице заказов товаров (orders.html) нужно разместить следующий код:

{% set invoice_pkid = xget('pkid') %}
{% if invoice_pkid is not null %}
	{% include concat(template.path, '/orders_item.html') %}
{% else %}
	{% include concat(template.path, '/orders_list.html') %}
{% endif %}

На странице списка заказов (orders_list.html) нужно разместить следующий код:

{% set ppage = xget('page', 1) %}
{% set filter_isPayed = xget('isPayed') %}
{% set filter_status = xget('status') %}
{% set limit = 10 %}
{% set start = (ppage - 1) * limit %}

<script type="text/javascript">
{% set pageOrdersID = random(999999) %}
jsApplication.pageLoad(function(){
	{% set variable = 'var_'~random(999999) %}
	var {{variable}} = 0;
	var param = '';
	var load = [];
	load = load.concat(ioGetModuleUrls({module: 'noty-packaged', push: 1}));
	
	if(jsApplication.busy && load.length > 0) {jsApplication.busy(true); {{variable}} = 1;}
	if(load.length > 0){
		yepnope({
			load: load,
			complete: function(){
				if(jsApplication.busy && {{variable}}) jsApplication.busy(false);
				//onBootstrapEditable();
				setTimeout('pageOrders{{pageOrdersID}}()', 10);
			},
		});
	} else {
		if(jsApplication.busy && {{variable}}) jsApplication.busy(false);
		setTimeout('pageOrders{{pageOrdersID}}()', 10);
	}
});
function pageOrders{{pageOrdersID}}(){
	// отмена заказа (удаление инвойса)
	$(document).on('click', '.invoice-item .invoice-cancel-btn', function(){
		var $objb = $(this);
		var pkid = $objb.attr('data-pkid');
		
		/*
		type: BootstrapDialog.TYPE_DEFAULT,
		type: BootstrapDialog.TYPE_INFO,
		type: BootstrapDialog.TYPE_PRIMARY,
		type: BootstrapDialog.TYPE_SUCCESS,
		type: BootstrapDialog.TYPE_WARNING,
		type: BootstrapDialog.TYPE_DANGER,
		
		size: BootstrapDialog.SIZE_NORMAL, // normal
		size: BootstrapDialog.SIZE_SMALL, // small
		size: BootstrapDialog.SIZE_WIDE, // large
		size: BootstrapDialog.SIZE_LARGE, // big font
		*/
		BootstrapDialog.show({
			closable: true,
			type: BootstrapDialog.TYPE_DANGER,
			size: BootstrapDialog.SIZE_NORMAL, // normal
			title: '<i class="icon-times"></i> Отмена заказа',
			message: 'Вы действительно хотите отменить данный заказ?',
			buttons: [
				{
					label: 'Отменить заказ',
					//icon: 'icon-lock',
					cssClass: 'btn-danger',
					action: function(dialog, event){
						var $btnDel = this;
						var $btnCancel = dialog.getButton('cancel-btn');
						
						$btnDel.spin();
						$btnDel.disable();
						$btnCancel.disable();
						dialog.setClosable(false);
						
						// обработка запроса
						ioCallEntity({
							entity: 'bmc.trade2.model.invoices.deleteClient',
							resultType: 'json',
							params: {
								pkid: pkid,
							},
							success: function(data, tag){
								//console.log(data);
								var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
								if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
									// перезагрузка страницы
									document.location.reload();
									
									/*
									$btnDel.stopSpin();
									$btnDel.enable();
									$btnCancel.enable();
									dialog.setClosable(true);
									
									dialog.close();
									*/
								} else {
									var n = noty({
										text: 'Не удалось отменить заказ. Попробуйте еще раз.'+(obj != null && obj.res.error_str != '' ? ' Полный текст ошибки: '+obj.res.error_str : ''),
										type: 'warning',
										layout: 'bottomRight',
										timeout: 4000,
									});
									
									$btnDel.stopSpin();
									$btnDel.enable();
									$btnCancel.enable();
									dialog.setClosable(true);
								}
							}
						});
					}
				},
				{
					id: 'cancel-btn',
					label: 'Отмена',
					cssClass: 'btn-default',
					action: function(dialog, event){
						dialog.close();
					},
				}
			],
		});
	});
	
	// оплата заказа
	$(document).on('click', '.invoice-item .invoice-buy-btn', function(){
		var $objb = $(this);
		var pkid = $objb.attr('data-pkid');
		var amount = $objb.attr('data-amount');
		
		/*
		type: BootstrapDialog.TYPE_DEFAULT,
		type: BootstrapDialog.TYPE_INFO,
		type: BootstrapDialog.TYPE_PRIMARY,
		type: BootstrapDialog.TYPE_SUCCESS,
		type: BootstrapDialog.TYPE_WARNING,
		type: BootstrapDialog.TYPE_DANGER,
		
		size: BootstrapDialog.SIZE_NORMAL, // normal
		size: BootstrapDialog.SIZE_SMALL, // small
		size: BootstrapDialog.SIZE_WIDE, // large
		size: BootstrapDialog.SIZE_LARGE, // big font
		*/
		BootstrapDialog.show({
			closable: true,
			type: BootstrapDialog.TYPE_DEFAULT,
			size: BootstrapDialog.SIZE_NORMAL, // normal
			title: 'Оплата заказа',
			message: (
				'<div class="text-center">'+
					'<h3>Оплата заказа через Банковскую карту</h3>'+
					'Оплачиваемая сумма в тенге<br/>'+
					'<span class="invoice-pay-amount">'+amount+'</span><br/>'+
					'<br/>'+
					'<a href="'+urlGetAdd('/goodspay/processing', 'account', '{{user.account}}', 'invoice_pkid', pkid)+'" class="btn btn-lg btn-primary invoice-pay-processingkz-btn">'+
						'<span>Оплатить</span>'+
					'</a>'+
					'<br/>'+
					'<br/>'+
					'<br/>'+
					'<table width="100%">'+
						'<tr>'+
							'<td width="30%">'+
								'<div><i class="fa fa-lock"></i> HTTPS / SSL</div>'+
								'<div>Защищенное соединение</div>'+
							'</td>'+
							'<td width="70%">'+
								'<img src="/img/cabinet20/visamasteecardprocessing.png" />'+
							'</td>'+
						'</tr>'+
					'</table>'+
				'</div>'+
				'<hr/>'+
				'<div class="text-center">'+
					'Если произведенная Вами оплата не будет зачислена в течение суток, пожалуйста, обратитесь в нашу <a href="{{ioProjects.ticket}}/cabinet/create" target="_blank">службу поддержки.</a></span>'+
				'</div>'
			),
		});
	});
	
	// добавление товаров инвойса в корзину снова
	$(document).on('click', '.invoice-item .invoice-basket-add-btn', function(){
		var $objb = $(this);
		if(!$objb.hasClass('process')){
			$objb
				.addClass('process disabled')
				.html('<i class="fa fa-spinner fa-spin"></i> Добавление в корзину');
			
			var pkid = $objb.attr('data-pkid');
			
			// обработка запроса
			ioCallEntity({
				entity: 'bmc.trade2.model.offersBasket.addFromOrder',
				resultType: 'json',
				params: {
					invoice_pkid: pkid,
				},
				success: function(data, tag){
					//console.log(data);
					var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
					if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
						var n = noty({
							text: 'Товары добавлены в корзину',
							type: 'success',
							layout: 'bottomRight',
							timeout: 2000,
						});
						
						$('.basket-offers-count').html(obj.res.count <= 99 ? obj.res.count : '99+');
					} else {
						var n = noty({
							text: 'Не удалось добавить часть товаров в корзину. Попробуйте еще раз.'+(obj != null && obj.res.error_str != '' ? ' Полный текст ошибки: '+obj.res.error_str : ''),
							type: 'warning',
							layout: 'bottomRight',
							timeout: 4000,
						});
					}
					
					$objb
						.removeClass('process disabled')
						.html('Добавить в корзину снова');
				}
			});
		}
	});
	
	// скрытие инвойса клиента
	$(document).on('click', '.invoice-item .invoice-hide-btn', function(){
		var $objb = $(this);
		if(!$objb.hasClass('process')){
			if(confirm('Вы уверены?')){
				$objb
					.addClass('process disabled')
					.html('<i class="fa fa-spinner fa-spin"></i> Удаление');
				
				var pkid = $objb.attr('data-pkid');
				
				// обработка запроса
				ioCallEntity({
					entity: 'bmc.trade2.model.invoices.setHide',
					resultType: 'json',
					params: {
						pkid: pkid,
					},
					success: function(data, tag){
						//console.log(data);
						var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
						if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
							// перезагрузка страницы
							document.location.reload();
						} else {
							var n = noty({
								text: 'Не удалось удалить заказ. Попробуйте еще раз.'+(obj != null && obj.res.error_str != '' ? ' Полный текст ошибки: '+obj.res.error_str : ''),
								type: 'warning',
								layout: 'bottomRight',
								timeout: 4000,
							});
							
							$objb
								.removeClass('process disabled')
								.html('Удалить');
						}
					}
				});
			}
		}
	});
}
</script>
<div class="global-wrapper clearfix" id="global-wrapper">
	<div class="container">
		<div class="row">
			<div class="col-md-9">
				<style>
				.invoice-item table tr td{
					padding: 5px 3px;
				}
				.invoice-item table tr td.invoice-product-info,
				.invoice-item table tr td.invoice-product-status{
					border-bottom: 1px dotted #ccc;
				}
				.invoice-item table tr:last-child td.invoice-product-info,
				.invoice-item table tr:last-child td.invoice-product-status{
					border: none;
				}
				</style>
				{% if not user.isGuest %}
					{#
						filter: {
							company_pkid: site.object.company_pkid,
							company_pkid: 1,
						}
					#}
					{% set filter = {
						order_type: 2,
						client_pkid: 'user_'~user.login,
						isHide: false,
					} %}
					{% if filter_isPayed != '' %}
						{% set filter = xadd(filter, 'isPayed', filter_isPayed) %}
					{% endif %}
					{% if filter_status != '' %}
						{% set filter = xadd(filter, 'status', filter_status) %}
					{% endif %}
					{% set goodsinvoices = ioCallAction(
						'bmc.trade2.model.invoices.getData2More', {
							filter: filter,
							order: {
								pkid: 'desc',
							},
							start: start,
							limit: limit,
						}
					) %}
					{% if goodsinvoices.data|length > 0 %}
						{% for invoice in goodsinvoices.data %}
							{% set invoice_fullamount = {
								value: invoice.amount.value + invoice.amount_delivery.value,
								currency: 'KZT',
								pay_type: 1,
							} %}
							<div class="invoice-item" data-pkid="{{invoice.pkid}}">
								<section class="panel">
									<div class="panel-body">
										<table width="100%">
											<tr>
												<td class="text-muted text-sm" style="padding: 0 3px 5px 0; border-bottom: 1px dotted #ccc; vertical-align: top;">
													<div>Заказ № {{invoice.invoice_number}} <a href="{{UrlGetAdd(link('/orders'), 'pkid', invoice.pkid)}}">Подробнее</a></div>
													<div>Дата заказа: {{invoice.gmtimeAdd|iostrtodate('d.m.Y H:i', user.timezone)}}</div>
												</td>
												<td colspan="2" class="text-muted text-sm text-center" style="padding: 0 0 5px 0; border-bottom: 1px dotted #ccc; vertical-align: top;">
													<div>Магазин: <a href="{{ioProjects.profile}}/company/{{invoice.company_pkid}}" target="_blank" title="Профиль компании-продавца">{{invoice.company_pkid}}</div>
													<div><a href="{{UrlGetAdd(link('/catalog'), 'company', invoice.company_pkid)}}">Товары продавца</a><!-- | <a href="javascript://">Сообщение продавцу</a>--></div>
												</td>
												<td class="text-muted text-sm text-center" style="padding: 0 3px 5px 3px; border-bottom: 1px dotted #ccc; vertical-align: top;">
													<div>Стоимость:</div>
													<div><h4 style="color: #c00;">{{format_money(invoice_fullamount, false)}}</h4></div>
												</td>
											</tr>
											{% for product in invoice.products %}
												{% set prms = '' %}
												{% set prms = prms ~ (
													(product.color_pkid != null and product.color_pkid != 0 ?
														'цвет: '~product.color_name[currentlang]|lower
													)
												) %}
												{% set prms = prms ~(
													(product.size_pkid != null and product.size_pkid != 0 ?
														(prms != '' ? ', ')~
														'размер: '~product.size_name|lower~
														(product.size_type != null and product.size_type != 0 ?
															' ('~product.size_type_name[currentlang]|lower~')'
														)
													)
												) %}
												{% set prms = prms ~ (
													(product.gender_pkid != null and product.gender_pkid != 0 ?
														(prms != '' ? ', ')~
														'пол: '~product.gender_name|lower
													)
												) %}
												{% set prms = (prms != '' ? ' ('~prms~')') %}
												<tr>
													<td class="invoice-product-info">
														<div class="row">
															<div class="col-xs-3">
																<a href="{{UrlGetAdd(link('/catalog'), 'tid', product.tid, 'offernum', product.offer_number)}}">
																	{% set product_offer_poster = template.path~'/img/bmcsales-logo.svg' %}
																	{% if product.offer.images and product.offer.images|length > 0 %}
																		{% if product.offer.images.0.urlSmall %}
																			{% set product_offer_poster = ioProjects.trade~'/'~product.offer.images.0.urlSmall %}
																		{% else %}
																			{% if product.offer.images.0.url %}
																				{% set product_offer_poster = ioProjects.trade~'/'~product.offer.images.0.url %}
																			{% endif %}
																		{% endif %}
																	{% else %}
																		{% if product.offer.offer_images and product.offer.offer_images|length > 0 %}
																			{% if product.offer.offer_images.0.urlSmall %}
																				{% set product_offer_poster = ioProjects.trade~'/'~product.offer.offer_images.0.urlSmall %}
																			{% else %}
																				{% if product.offer.offer_images.0.url %}
																					{% set product_offer_poster = ioProjects.trade~'/'~product.offer.offer_images.0.url %}
																				{% endif %}
																			{% endif %}
																		{% endif %}
																	{% endif %}
																	<img src="{{product_offer_poster}}" style="width: 100%;" />
																</a>
															</div>
															<div class="col-xs-9">
																<a href="{{UrlGetAdd(link('/catalog'), 'tid', product.tid, 'offernum', product.offer_number)}}" style="text-decoration: none;">
																	<div class="text-sm">{{product.tid}}</div>
																	<div>{{product.offer_name|purify}}</div>
																</a>
																{% if prms != '' %}
																	<div class="text-sm text-muted">Характеристики: {{prms}}</div>
																{% endif %}
																<div class="text-sm" style="margin-top: 10px;">{{format_money(product.amount, false)}} X 1</div>
															</div>
														</div>
													</td>
													<td width="20%" class="text-center invoice-product-status">
														{% if invoice.status == 12 %}
															<div class="btn btn-block btn-default disabled" style="white-space: normal;">Получено подтверждение</div>
														{% endif %}
														<!--<a class="btn btn-block btn-default" href="#">Открыть спор</a>-->
													</td>
													{% if loop.index == 1 %}
														<td width="20%" rowspan="{{invoice.products|length}}" style="vertical-align: top;" class="text-center">
															{% if invoice.status != -1 %}
																<div class="btn btn-block btn-default disabled" style="white-space: normal;">{{invoice.isPayed ? 'Оплачен' : 'Не оплачен'}}</div>
															{% endif %}
															<div class="btn btn-block btn-default disabled" style="white-space: normal;">{{ioEnum.invoices_statuses[invoice.status]}}</div>
														</td>
														<td width="20%" rowspan="{{invoice.products|length}}" style="vertical-align: top;" class="text-center">
															<a class="btn btn-block btn-default" style="white-space: normal;" href="{{UrlGetAdd(link('/orders'), 'pkid', invoice.pkid)}}">Подробнее</a>
															{% if (invoice.status <= 7 or not invoice.isPayed) and invoice.status != -1 %}
																{% if not invoice.isPayed %}
																	<div class="btn btn-block btn-primary invoice-buy-btn" style="white-space: normal;" data-pkid="{{invoice.pkid}}" data-amount="{{format_money(invoice_fullamount, false)}}">Оплатить</div>
																{% endif %}
																{% if invoice.status <= 7 and not invoice.isPayed %}
																	<div class="btn btn-block btn-danger invoice-cancel-btn" style="white-space: normal;" data-pkid="{{invoice.pkid}}">Отменить</div>
																{% endif %}
															{% endif %}
															{% if invoice.status > 7 and invoice.status != 12 %}
																<a class="btn btn-block btn-default" style="white-space: normal;" href="#">Подтвердить получение товара</a>
															{% endif %}
															<div class="btn btn-block btn-default invoice-basket-add-btn" style="white-space: normal;" data-pkid="{{invoice.pkid}}">Добавить в корзину снова</div>
															{% if invoice.status == 12 or invoice.status == -1 %}
																<div class="btn btn-block btn-default invoice-hide-btn" style="white-space: normal;" data-pkid="{{invoice.pkid}}">Удалить</div>
															{% endif %}
														</td>
													{% endif %}
												</tr>
											{% endfor %}
										</table>
									</div>
								</section>
							</div>
						{% endfor %}
						
						{% set pages_alfa = 1 %}
						{% set pages_count = (goodsinvoices.count / limit)|ceil %}
						<div class="row">
							<div class="col-md-12 text-center">
								<!--
								<p class="category-pagination-sign">Найдено заказов: {{goodsinvoices.count}}. Показано с {{(ppage - 1) * limit + 1}} по {{goodsinvoices.count >= ppage * limit ? ppage * limit : goodsinvoices.count}}</p>
								-->
								<p class="category-pagination-sign">Найдено заказов: {{goodsinvoices.count}}. Показано с {{start + 1}} по {{start + goodsinvoices.data|length}}</p>
								<nav>
									<ul class="pagination category-pagination">
										{% if ppage > 1 %}
											<li class="last">
												<a href="{{UrlGetAdd(
													link('/orders'),
													'isPayed', filter_isPayed,
													'status', filter_status,
													'page', (ppage - 1)
												)}}"><i class="fa fa-long-arrow-left"></i></a>
											</li>
										{% endif %}
										<li{% if 1 == ppage %} class="active"{% endif %}>
											<a href="{{UrlGetAdd(
												link('/orders'),
												'isPayed', filter_isPayed,
												'status', filter_status,
												'page', 1
											)}}">1</a>
										</li>
										{% if ppage - pages_alfa > 2 %}
											<li><a class="disabled">...</a></li>
										{% endif %}
										{% set a1 = max(ppage - pages_alfa, 2) %}
										{% set a2 = min(ppage + pages_alfa, pages_count - 1) %}
										{% if a2 >= a1 %}
											{% for i in range(a1, a2) %}
												{% set class = 'cursor itm' %}
													<li{% if i == ppage %} class="active"{% endif %}>
														<a href="{{UrlGetAdd(
															link('/orders'),
															'isPayed', filter_isPayed,
															'status', filter_status,
															'page', i
														)}}">{{i}}</a>
													</li>
											{% endfor %}
										{% endif %}
										{% if ppage + pages_alfa < pages_count - 1 %}
											<li><a class="disabled">...</a></li>
										{% endif %}
										{% if pages_count > 1 %}
											{% set class = 'cursor itm' %}
											<li{% if pages_count == ppage %} class="active"{% endif %}>
												<a href="{{UrlGetAdd(
													link('/orders'),
													'isPayed', filter_isPayed,
													'status', filter_status,
													'page', pages_count
												)}}">{{pages_count}}</a>
											</li>
										{% endif %}
										{# for i in 1..pages_count %}
											<li{% if ppage == i %} class="active"{% endif %}>
												<a href="{{UrlGetAdd(
													link('/orders'),
													'isPayed', filter_isPayed,
													'status', filter_status,
													'page', i
												)}}">{{i}}</a>
											</li>
										{% endfor #}
										{% if ppage < pages_count and pages_count > 1 %}
											<li class="last">
												<a href="{{UrlGetAdd(
													link('/orders'),
													'isPayed', filter_isPayed,
													'status', filter_status,
													'page', (ppage + 1)
												)}}"><i class="fa fa-long-arrow-right"></i></a>
											</li>
										{% endif %}
									</ul>
								</nav>
							</div>
						</div>
						<div class="gap"></div>
					{% else %}
						<div class="text-center">
							<h3>Заказов пока не было</h3>
							<div class="gap gap-small"></div>
							<a class="btn btn-primary btn-lg" href="{{link('/catalog')}}">Начать покупки <i class="fa fa-long-arrow-right"></i></a>
						</div>
						<div class="gap"></div>
					{% endif %}
				{% else %}
					<div class="text-center">
						<h3>Для просмотра истории заказов товаров<br/>нужно войти в Ваш профиль</h3>
						<div class="gap gap-small"></div>
						<a class="btn btn-primary btn-lg" style="margin: 0 5px 5px 0;" href="{{UrlGetAdd(link('/login'), 'back', page.uri)}}">Войти <i class="fa fa-long-arrow-right"></i></a>
						<a class="btn btn-default btn-lg" style="margin: 0 5px 5px 0;" href="{{ioProjects.com}}/registration?ref={{site.uri}}">Создать профиль <i class="fa fa-long-arrow-right"></i></a>
					</div>
					<div class="gap"></div>
				{% endif %}
			</div>
			<div class="col-md-3">
				{% include concat(template.path, '/orders_filter.html') %}
			</div>
		</div>
	</div>
	<div class="gap"></div>
</div>

Также на странице списка заказов имеется блок фильтра (orders_filter.html). где нужно разместить следующий код:

<script type="text/javascript">
{% set pageOrdersFilterID = random(999999) %}
jsApplication.pageLoad(function(){
	{% set variable = 'var_'~random(999999) %}
	var {{variable}} = 0;
	var param = '';
	var load = [];
	load = load.concat(ioGetModuleUrls({module: 'noty-packaged', push: 1}));
	
	if(jsApplication.busy && load.length > 0) {jsApplication.busy(true); {{variable}} = 1;}
	if(load.length > 0){
		yepnope({
			load: load,
			complete: function(){
				if(jsApplication.busy && {{variable}}) jsApplication.busy(false);
				//onBootstrapEditable();
				setTimeout('pageOrdersFilter{{pageOrdersFilterID}}()', 10);
			},
		});
	} else {
		if(jsApplication.busy && {{variable}}) jsApplication.busy(false);
		setTimeout('pageOrdersFilter{{pageOrdersFilterID}}()', 10);
	}
});
function pageOrdersFilter{{pageOrdersFilterID}}(){
	var enum_si = {{ioEnum.SI|json_encode|raw}};
	
	// загрузка недавно просмотренных товаров
	function loadingOffersViews(){
		var offersViewsData = getOffersViewsData() || []; // вытаскиваем все данные из недавно просмотренного
		//console.log(offersViewsData);
		/*{
			tmp_pkid: ioGenPkid(), // pkid записи
			company_pkid: 0, // pkid компании
			goods_pkid: 0, // pkid товара
			offer_number: 0, // номер предложения товара, уникальный во всей системе
			tid: '', // ИНТ товара
		}*/
		// если что-то в корзине уже есть, начинаем формировать данные для вывода
		if(offersViewsData !== null){
			$('.offers-views-list').html('');
			
			var offersViewsData2 = [], cnt1 = 0;
			$.each(offersViewsData, function(i, el){
				if(cnt1 < 4){
					if(el.company_pkid != '{{offer.company_pkid}}'
					|| el.goods_pkid != '{{offer.goods_pkid}}'
					|| el.offer_number != '{{offer.offer_number}}'
					|| el.offer_type != '{{offer.offer_type}}'
					|| el.tid != '{{offer.tid}}'){
						cnt1++;
						offersViewsData2.push(el);
					}
				}
			});
			
			// обработка запроса
			ioCallEntity({
				entity: 'bmc.trade2.model.offersFavorite.getData2Guest',
				resultType: 'json',
				params: {
					offersFavorite: offersViewsData2,
				},
				success: function(data, tag){
					//console.log(data);
					var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
					if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
						var offersViews = obj.res.data || [];
						$.each(offersViews, function(i, offer){
							var offeritems = '';
							$.each(offer.offers, function(j, offeritem){
								var offer_poster = '{{template.path}}/img/bmcsales-logo.svg';
								if(offeritem.images && offeritem.images.length > 0){
									if(offeritem.images[0].urlSmall){
										offer_poster = '{{ioProjects.trade}}/'+offeritem.images[0].urlSmall;
									} else {
										if(offeritem.images[0].url){
											offer_poster = '{{ioProjects.trade}}/'+offeritem.images[0].url;
										}
									}
								} else {
									if(offeritem.offer_images && offeritem.offer_images.length > 0){
										if(offeritem.offer_images[0].urlSmall){
											offer_poster = '{{ioProjects.trade}}/'+offeritem.offer_images[0].urlSmall;
										} else {
											{% if offeritem.offer_images.0.url %}
												offer_poster = '{{ioProjects.trade}}/'+offeritem.offer_images[0].url;
											{% endif %}
										}
									}
								}
								
								var offer_cost_per_unit_min = {value: 0, currency: 'KZT'};
								var offer_cost_per_unit_max = {value: 0, currency: 'KZT'};
								$.each(offeritem.offer_parameters, function(k, param){
									var param_cost_per_unit = param.cost_per_unit;
									param_cost_per_unit.value /= enum_si[offeritem.si_visible].coeff;
									if(param_cost_per_unit.value > offer_cost_per_unit_max.value){
										offer_cost_per_unit_max = param_cost_per_unit;
									}
									if(param_cost_per_unit.value < offer_cost_per_unit_min.value || offer_cost_per_unit_min.value == 0){
										offer_cost_per_unit_min = param_cost_per_unit;
									}
								});
								
								offeritems += (
									'<li>'+
										'<div class="product product-sm-left">'+
											'<ul class="product-labels">'+
												/*'<li>-30%</li>'+
												'<li>stuff pick</li>'+
												'<li>hot</li>'+*/
												(offeritem.category_name && offeritem.category_name['{{currentlang}}'] ?
													'<li>'+offeritem.category_name['{{currentlang}}']+'</li>'
												:'')+
												(offeritem.offer_discount && offeritem.offer_discount > 0 ?
													'<li>-'+offeritem.offer_discount+'%</li>'
												:'')+
											'</ul>'+
											'<div class="product-img-wrap">'+
												'<img class="product-img" src="'+offer_poster+'" />'+
												/*'<img class="product-img-primary" src="{{template.path}}/img/test_product/35.jpg" />'+
												'<img class="product-img-alt" src="{{template.path}}/img/test_product/35-a.jpg" />'+*/
											'</div>'+
											'<a class="product-link" href="'+urlGetAdd('{{link('/catalog')}}', 'tid', offeritem.tid, 'offernum', offeritem.offer_number)+'"></a>'+
											'<div class="product-caption">'+
												'<ul class="product-caption-rating">'+
													'<li class="rated"><i class="fa fa-star"></i></li>'+
													'<li class="rated"><i class="fa fa-star"></i></li>'+
													'<li class="rated"><i class="fa fa-star"></i></li>'+
													'<li class="rated"><i class="fa fa-star"></i></li>'+
													'<li class="rated"><i class="fa fa-star"></i></li>'+
													/*'<li class="rated"><i class="fa fa-star"></i></li>'+
													'<li><i class="fa fa-star"></i></li>'+*/
												'</ul>'+
												'<h5 class="product-caption-title">'+(offeritem.goods_name['{{currentlang}}']||(offeritem.offer_name||''))+'</h5>'+
												'<div class="product-caption-price">'+
													(offeritem.offer_discount && offeritem.offer_discount > 0 ?
														'<span class="product-caption-price-new">'+number_format(offer_cost_per_unit_min.value - ((offer_cost_per_unit_min.value / 100) * offeritem.offer_discount), 2, '.', ' ')+' '+offer_cost_per_unit_min.currency+'</span>'
													:
														'<span class="product-caption-price-new">'+number_format(offer_cost_per_unit_min.value, 2, '.', ' ')+' '+offer_cost_per_unit_min.currency+'</span>'
													)+
													/*'<span class="product-caption-price-old">$67</span>'+
													'<span class="product-caption-price-new">$54</span>'+*/
												'</div>'+
												'<ul class="product-caption-feature-list">'+
													/*'<li>1 left</li>'+
													'<li>Free Shipping</li>'+*/
												'</ul>'+
											'</div>'+
										'</div>'+
									'</li>'
								);
							});
							$('.offers-views .offers-views-list').append(offeritems);
						});
						if(offersViews.length > 0){
							$('.offers-views .offers-views-list').css('display', '');
						} else {
							// если недавно просмотренных нет, то сигнализируем об этом
							$('.offers-views .offers-views-list').css('display', 'none');
						}
					} else {
						// произошла ошибка при загрузке недавно просмотренных товаров
						$('.offers-views .offers-views-list').css('display', 'none');
					}
					$('.offers-views .offers-views-loading').css('display', 'none');
				}
			});
		} else {
			// если недавно просмотренных нет, то сигнализируем об этом
			$('.offers-views-loading').css('display', 'none');
			$('.offers-views .offers-views-list').css('display', 'none');
		}
	}
	loadingOffersViews();
}
</script>
{% if not user.isGuest %}
	<div class="list-group">
		<a href="{{UrlGetAdd(
			link('/orders'),
			'page', ppage
		)}}" class="list-group-item{{filter_isPayed == '' and filter_status == '' ? ' active'}}">Все заказы</a>
	</div>
	<div class="list-group">
		{% for elitem in [
			{val: '0', name: 'Не оплаченные'},
			{val: '1', name: 'Оплаченные'},
		] %}
			<a href="{{UrlGetAdd(
				link('/orders'),
				'isPayed', elitem.val,
				'status', filter_status
			)}}" class="list-group-item{{filter_isPayed == elitem.val ? ' active'}}">{{elitem.name}}</a>
		{% endfor %}
	</div>
	<div class="list-group">
		{% for elitem in [
			{val: '0', name: 'Создан'},
			{val: '1', name: 'Принят'},
			{val: '2', name: 'Подготавливается'},
			{val: '3', name: 'Заказан у поставщика'},
			{val: '4', name: 'Ожидает отправки в регион'},
			{val: '5', name: 'Транзит'},
			{val: '6', name: 'Комплектуется'},
			{val: '7', name: 'Доступен'},
			{val: '8', name: 'Готов к отправке'},
			{val: '9', name: 'В резерве (Курьер)'},
			{val: '10', name: 'Посылка сформирована'},
			{val: '11', name: 'На доставке'},
			{val: '12', name: 'Доставлен'},
			{val: '-1', name: 'Отменен'},
		] %}
			<a href="{{UrlGetAdd(
				link('/orders'),
				'isPayed', filter_isPayed,
				'status', elitem.val
			)}}" class="list-group-item{{filter_status == elitem.val ? ' active'}}">{{elitem.name}}</a>
		{% endfor %}
	</div>
	<div class="list-group">
		{% for elitem in [
			{val: '101', name: 'Возврат создан'},
			{val: '102', name: 'Возврат совершен'},
		] %}
			<a href="{{UrlGetAdd(
				link('/orders'),
				'isPayed', filter_isPayed,
				'status', elitem.val
			)}}" class="list-group-item{{filter_status == elitem.val ? ' active'}}">{{elitem.name}}</a>
		{% endfor %}
	</div>
	<div class="gap gap-small"></div>
{% endif %}
<div class="offers-views">
	<h4 class="widget-title-sm">Недавно просмотренное</h4>
	<div class="offers-views-loading text-center">
		<i class="fa fa-spinner fa-spin fa-3x"></i>
	</div>
	<ul class="product-list offers-views-list" style="display: none;"></ul>
	<div class="gap gap-small"></div>
</div>
<div class="gap gap-small"></div>

На странице информации о заказе (orders_item.html) нужно разместить следующий код:

{% set invoice_pkid = xget('pkid') %}

<script type="text/javascript">
{% set pageOrdersID = random(999999) %}
jsApplication.pageLoad(function(){
	{% set variable = 'var_'~random(999999) %}
	var {{variable}} = 0;
	var param = '';
	var load = [];
	load = load.concat(ioGetModuleUrls({module: 'noty-packaged', push: 1}));
	
	if(jsApplication.busy && load.length > 0) {jsApplication.busy(true); {{variable}} = 1;}
	if(load.length > 0){
		yepnope({
			load: load,
			complete: function(){
				if(jsApplication.busy && {{variable}}) jsApplication.busy(false);
				//onBootstrapEditable();
				setTimeout('pageOrders{{pageOrdersID}}()', 10);
			},
		});
	} else {
		if(jsApplication.busy && {{variable}}) jsApplication.busy(false);
		setTimeout('pageOrders{{pageOrdersID}}()', 10);
	}
});
function pageOrders{{pageOrdersID}}(){
	// отмена заказа (удаление инвойса)
	$(document).on('click', '.invoice-item .invoice-cancel-btn', function(){
		var $objb = $(this);
		var pkid = $objb.attr('data-pkid');
		
		/*
		type: BootstrapDialog.TYPE_DEFAULT,
		type: BootstrapDialog.TYPE_INFO,
		type: BootstrapDialog.TYPE_PRIMARY,
		type: BootstrapDialog.TYPE_SUCCESS,
		type: BootstrapDialog.TYPE_WARNING,
		type: BootstrapDialog.TYPE_DANGER,
		
		size: BootstrapDialog.SIZE_NORMAL, // normal
		size: BootstrapDialog.SIZE_SMALL, // small
		size: BootstrapDialog.SIZE_WIDE, // large
		size: BootstrapDialog.SIZE_LARGE, // big font
		*/
		BootstrapDialog.show({
			closable: true,
			type: BootstrapDialog.TYPE_DANGER,
			size: BootstrapDialog.SIZE_NORMAL, // normal
			title: '<i class="icon-times"></i> Отмена заказа',
			message: 'Вы действительно хотите отменить данный заказ?',
			buttons: [
				{
					label: 'Отменить заказ',
					//icon: 'icon-lock',
					cssClass: 'btn-danger',
					action: function(dialog, event){
						var $btnDel = this;
						var $btnCancel = dialog.getButton('cancel-btn');
						
						$btnDel.spin();
						$btnDel.disable();
						$btnCancel.disable();
						dialog.setClosable(false);
						
						// обработка запроса
						ioCallEntity({
							entity: 'bmc.trade2.model.invoices.deleteClient',
							resultType: 'json',
							params: {
								pkid: pkid,
							},
							success: function(data, tag){
								//console.log(data);
								var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
								if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
									// переход в список заказов
									document.location.href = urlGetAdd('/orders', 'account', '{{user.account}}');
									
									/*
									$btnDel.stopSpin();
									$btnDel.enable();
									$btnCancel.enable();
									dialog.setClosable(true);
									
									dialog.close();
									*/
								} else {
									var n = noty({
										text: 'Не удалось отменить заказ. Попробуйте еще раз.'+(obj != null && obj.res.error_str != '' ? ' Полный текст ошибки: '+obj.res.error_str : ''),
										type: 'warning',
										layout: 'bottomRight',
										timeout: 4000,
									});
									
									$btnDel.stopSpin();
									$btnDel.enable();
									$btnCancel.enable();
									dialog.setClosable(true);
								}
							}
						});
					}
				},
				{
					id: 'cancel-btn',
					label: 'Отмена',
					cssClass: 'btn-default',
					action: function(dialog, event){
						dialog.close();
					},
				}
			],
		});
	});
	
	// оплата заказа
	$(document).on('click', '.invoice-item .invoice-buy-btn', function(){
		var $objb = $(this);
		var pkid = $objb.attr('data-pkid');
		var amount = $objb.attr('data-amount');
		
		/*
		type: BootstrapDialog.TYPE_DEFAULT,
		type: BootstrapDialog.TYPE_INFO,
		type: BootstrapDialog.TYPE_PRIMARY,
		type: BootstrapDialog.TYPE_SUCCESS,
		type: BootstrapDialog.TYPE_WARNING,
		type: BootstrapDialog.TYPE_DANGER,
		
		size: BootstrapDialog.SIZE_NORMAL, // normal
		size: BootstrapDialog.SIZE_SMALL, // small
		size: BootstrapDialog.SIZE_WIDE, // large
		size: BootstrapDialog.SIZE_LARGE, // big font
		*/
		BootstrapDialog.show({
			closable: true,
			type: BootstrapDialog.TYPE_DEFAULT,
			size: BootstrapDialog.SIZE_NORMAL, // normal
			title: 'Оплата заказа',
			message: (
				'<div class="text-center">'+
					'<h3>Оплата заказа через Банковскую карту</h3>'+
					'Оплачиваемая сумма в тенге<br/>'+
					'<span class="invoice-pay-amount">'+amount+'</span><br/>'+
					'<br/>'+
					'<a href="'+urlGetAdd('/goodspay/processing', 'account', '{{user.account}}', 'invoice_pkid', pkid)+'" class="btn btn-lg btn-primary invoice-pay-processingkz-btn">'+
						'<span>Оплатить</span>'+
					'</a>'+
					'<br/>'+
					'<br/>'+
					'<br/>'+
					'<table width="100%">'+
						'<tr>'+
							'<td width="30%">'+
								'<div><i class="fa fa-lock"></i> HTTPS / SSL</div>'+
								'<div>Защищенное соединение</div>'+
							'</td>'+
							'<td width="70%">'+
								'<img src="/img/cabinet20/visamasteecardprocessing.png" />'+
							'</td>'+
						'</tr>'+
					'</table>'+
				'</div>'+
				'<hr/>'+
				'<div class="text-center">'+
					'Если произведенная Вами оплата не будет зачислена в течение суток, пожалуйста, обратитесь в нашу <a href="{{ioProjects.ticket}}/cabinet/create" target="_blank">службу поддержки.</a></span>'+
				'</div>'
			),
		});
	});
	
	// добавление товаров инвойса в корзину снова
	$(document).on('click', '.invoice-item .invoice-basket-add-btn', function(){
		var $objb = $(this);
		if(!$objb.hasClass('process')){
			$objb
				.addClass('process disabled')
				.html('<i class="fa fa-spinner fa-spin"></i> Добавление в корзину');
			
			var pkid = $objb.attr('data-pkid');
			
			// обработка запроса
			ioCallEntity({
				entity: 'bmc.trade2.model.offersBasket.addFromOrder',
				resultType: 'json',
				params: {
					invoice_pkid: pkid,
				},
				success: function(data, tag){
					//console.log(data);
					var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
					if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
						var n = noty({
							text: 'Товары добавлены в корзину',
							type: 'success',
							layout: 'bottomRight',
							timeout: 2000,
						});
						
						$('.basket-offers-count').html(obj.res.count <= 99 ? obj.res.count : '99+');
					} else {
						var n = noty({
							text: 'Не удалось добавить часть товаров в корзину. Попробуйте еще раз.'+(obj != null && obj.res.error_str != '' ? ' Полный текст ошибки: '+obj.res.error_str : ''),
							type: 'warning',
							layout: 'bottomRight',
							timeout: 4000,
						});
					}
					
					$objb
						.removeClass('process disabled')
						.html('Добавить в корзину снова');
				}
			});
		}
	});
	
	// скрытие инвойса клиента
	$(document).on('click', '.invoice-item .invoice-hide-btn', function(){
		var $objb = $(this);
		if(!$objb.hasClass('process')){
			if(confirm('Вы уверены?')){
				$objb
					.addClass('process disabled')
					.html('<i class="fa fa-spinner fa-spin"></i> Удаление');
				
				var pkid = $objb.attr('data-pkid');
				
				// обработка запроса
				ioCallEntity({
					entity: 'bmc.trade2.model.invoices.setHide',
					resultType: 'json',
					params: {
						pkid: pkid,
					},
					success: function(data, tag){
						//console.log(data);
						var obj;try{obj = $.parseJSON(data);}catch(ex){obj = null;}
						if(obj != null && typeof(obj.res) != 'undefined' && obj.res != null && obj.res.error_code == '1'){
							// переход в список заказов
							document.location.href = urlGetAdd('/orders', 'account', '{{user.account}}');
						} else {
							var n = noty({
								text: 'Не удалось удалить заказ. Попробуйте еще раз.'+(obj != null && obj.res.error_str != '' ? ' Полный текст ошибки: '+obj.res.error_str : ''),
								type: 'warning',
								layout: 'bottomRight',
								timeout: 4000,
							});
							
							$objb
								.removeClass('process disabled')
								.html('Удалить');
						}
					}
				});
			}
		}
	});
}
</script>
<div class="global-wrapper clearfix" id="global-wrapper">
	<div class="container">
		{% if not user.isGuest %}
			{% set invoice = ioCallAction(
				'bmc.trade2.model.invoices.getData2More', {
					filter: {
						pkid: invoice_pkid,
						order_type: 2,
						client_pkid: 'user_'~user.login,
					},
					limit: 1,
				}
			).data.0 %}
			{% if invoice %}
				<style>
				.invoice-item table tr td{
					padding: 5px 3px;
					border-bottom: 1px dotted #ccc;
				}
				.invoice-item table tr:last-child td{
					border: none;
				}
				.invoice-item table tr td.invoice-product-val{
					padding: 5px 10px;
					border-bottom: 1px dotted #ccc;
				}
				.invoice-item table tr td.invoice-product-info{
					border-bottom: 1px dotted #ccc;
				}
				</style>
				{% set invoice_fullamount = {
					value: invoice.amount.value + invoice.amount_delivery.value,
					currency: 'KZT',
					pay_type: 1,
				} %}
				<div class="invoice-item" data-pkid="{{invoice.pkid}}">
					<section class="panel">
						<div class="panel-body">
							<table width="100%">
								<tbody>
									<tr>
										<td width="25%" class="text-muted text-sm" style="padding: 0 3px 5px 0; vertical-align: top;">
											<div>Номер заказа: {{invoice.invoice_number}}</div>
											<div>Дата заказа: {{invoice.gmtimeAdd|iostrtodate('d.m.Y H:i', user.timezone)}}</div>
										</td>
										<td width="45%" class="text-muted text-sm text-center" style="padding: 0 0 5px 0; vertical-align: top;">
											<div>Магазин: <a href="{{ioProjects.profile}}/company/{{invoice.company_pkid}}" target="_blank" title="Профиль компании-продавца">{{invoice.company_pkid}}</div>
											<div><a href="{{UrlGetAdd(link('/catalog'), 'company', invoice.company_pkid)}}">Товары продавца</a><!-- | <a href="javascript://">Сообщение продавцу</a>--></div>
										</td>
										<td width="30%" class="text-muted text-sm text-center" style="padding: 0 3px 5px 3px; vertical-align: top;">
											<div class="btn btn-block btn-default disabled" style="white-space: normal;">{{ioEnum.invoices_statuses[invoice.status]}}</div>
										</td>
									</tr>
									<tr>
										<td colspan="3" class="text-right">
											{% if (invoice.status <= 7 or not invoice.isPayed) and invoice.status != -1 %}
												{% if not invoice.isPayed %}
													<div class="btn btn-primary invoice-buy-btn" style="margin: 0 3px; white-space: normal;" data-pkid="{{invoice.pkid}}" data-amount="{{format_money(invoice_fullamount, false)}}">Оплатить</div>
												{% endif %}
												{% if invoice.status <= 7 and not invoice.isPayed %}
													<div class="btn btn-danger invoice-cancel-btn" style="margin: 0 3px; white-space: normal;" data-pkid="{{invoice.pkid}}">Отменить</div>
												{% endif %}
											{% endif %}
											{% if invoice.status > 7 and invoice.status != 12 %}
												<a class="btn btn-default" style="margin: 0 3px; white-space: normal;" href="#">Подтвердить получение товара</a>
											{% endif %}
											<div class="btn btn-default invoice-basket-add-btn" style="margin: 0 3px; white-space: normal;" data-pkid="{{invoice.pkid}}">Добавить в корзину снова</div>
											{% if invoice.status == 12 or invoice.status == -1 %}
												<div class="btn btn-default invoice-hide-btn" style="margin: 0 3px; white-space: normal;" data-pkid="{{invoice.pkid}}">Удалить</div>
											{% endif %}
										</td>
									</tr>
								</tbody>
							</table>
						</div>
					</section>
					<section class="panel">
						<div class="panel-body">
							<table width="100%">
								<thead>
									<tr>
										<td width="30%">Товар</td>
										<td width="10%" class="text-center" title="Цена за единицу">Цена за ед.</td>
										<td width="5%" class="text-center" title="Количество">Кол-во</td>
										<td width="10%" class="text-center">Общая сумма</td>
										<td width="15%" class="text-center">Статус</td>
										<td width="30%" class="text-center">Служба доставки</td>
									</tr>
								</thead>
								<tbody>
									{% for product in invoice.products %}
										{% set prms = '' %}
										{% set prms = prms ~ (
											(product.color_pkid != null and product.color_pkid != 0 ?
												product.color_name[currentlang]
											)
										) %}
										{% set prms = prms ~(
											(product.size_pkid != null and product.size_pkid != 0 ?
												(prms != '' ? ', ')~
												product.size_name~
												(product.size_type != null and product.size_type != 0 ?
													' ('~product.size_type_name[currentlang]~')'
												)
											)
										) %}
										{% set prms = prms ~ (
											(product.gender_pkid != null and product.gender_pkid != 0 ?
												(prms != '' ? ', ')~
												product.gender_name
											)
										) %}
										{% set prms = (prms != '' ? ' ('~prms~')') %}
										<tr>
											<td width="30%" class="invoice-product-info" style="vertical-align: middle;">
												<div class="row">
													<div class="col-xs-3">
														<a href="{{UrlGetAdd(link('/catalog'), 'tid', product.tid, 'offernum', product.offer_number)}}">
															{% set product_offer_poster = template.path~'/img/bmcsales-logo.svg' %}
															{% if product.offer.images and product.offer.images|length > 0 %}
																{% if product.offer.images.0.urlSmall %}
																	{% set product_offer_poster = ioProjects.trade~'/'~product.offer.images.0.urlSmall %}
																{% else %}
																	{% if product.offer.images.0.url %}
																		{% set product_offer_poster = ioProjects.trade~'/'~product.offer.images.0.url %}
																	{% endif %}
																{% endif %}
															{% else %}
																{% if product.offer.offer_images and product.offer.offer_images|length > 0 %}
																	{% if product.offer.offer_images.0.urlSmall %}
																		{% set product_offer_poster = ioProjects.trade~'/'~product.offer.offer_images.0.urlSmall %}
																	{% else %}
																		{% if product.offer.offer_images.0.url %}
																			{% set product_offer_poster = ioProjects.trade~'/'~product.offer.offer_images.0.url %}
																		{% endif %}
																	{% endif %}
																{% endif %}
															{% endif %}
															<img src="{{product_offer_poster}}" style="width: 100%;" />
														</a>
													</div>
													<div class="col-xs-9">
														<a href="{{UrlGetAdd(link('/catalog'), 'tid', product.tid, 'offernum', product.offer_number)}}" style="text-decoration: none;">
															<div class="text-sm">{{product.tid}}</div>
															<div>{{product.offer_name|purify}}</div>
														</a>
														{% if prms != '' %}
															<div class="text-sm text-muted">Характеристики: {{prms}}</div>
														{% endif %}
													</div>
												</div>
											</td>
											<td width="10%" style="vertical-align: middle;" class="text-center invoice-product-val">
												{{format_money(product.amount, false)}}
											</td>
											<td width="5%" style="vertical-align: middle;" class="text-center invoice-product-val">
												1
											</td>
											<td width="10%" style="vertical-align: middle;" class="text-center invoice-product-val">
												{{format_money(product.amount, false)}}
											</td>
											<td width="15%" style="vertical-align: middle;" class="text-center invoice-product-val">
												{% if invoice.status == 12 %}
													Получено подтверждение
												{% endif %}
												<!--<a href="#">Открыть спор</a>-->
											</td>
											<td width="30%" style="border-left: 1px dotted #ccc; vertical-align: middle;" class="invoice-product-val">
												<div>{{invoice.delivery_method == 0 ? 'Самовывоз (0 тг)' : ''}}</div>
												{% if offeritem.delivery_method == 0 %}
													<div class="text-sm">Точка самовывоза: {{invoice.warehouse_name|default('не выбрана')}}</div>
												{% endif %}
												<!--
												Yanwen Economic Air Mail<br/>
												Время доставки: 30-50 дн
												-->
											</td>
										</tr>
									{% endfor %}
								</tbody>
							</table>
							<div class="row" style="margin-top: 10px;">
								<div class="col-md-6 col-md-offset-6 text-right">
									<div class="row">
										<div class="col-md-4 text-center">
											<div>Стоимость товаров:</div>
											<h5 style="color: #c00;">{{format_money(invoice.amount, false)}}</h5>
										</div>
										<div class="col-md-4 text-center">
											<div>Стоимость доставки:</div>
											<div style="color: #c00;">{{format_money(invoice.amount_delivery, false)}}</div>
										</div>
										<div class="col-md-4 text-center">
											<div>Общая сумма:</div>
											<div style="color: #c00;">{{format_money(invoice_fullamount, false)}}</div>
										</div>
									</div>
								</div>
							</div>
						</div>
					</section>
					<section class="panel panel-default">
						<div class="panel-heading">Информация о доставке, адрес:</div>
						<div class="panel-body">
							<div class="row">
								<div class="col-md-3 text-right"><b>Контактное лицо:</b></div>
								<div class="col-xs-9">{{user['user-info'].sname}} {{user['user-info'].fname}} {{user['user-info'].lname}}</div>
							</div>
							<!--
							<div class="row">
								<div class="col-md-3 text-right"><b>Страна:</b></div>
								<div class="col-xs-9">Казахстан</div>
							</div>
							<div class="row">
								<div class="col-md-3 text-right"><b>Город:</b></div>
								<div class="col-xs-9">Астана</div>
							</div>
							<div class="row">
								<div class="col-md-3 text-right"><b>Адрес:</b></div>
								<div class="col-xs-9">улица Абая, дом 8, офис 303</div>
							</div>
							<div class="row">
								<div class="col-md-3 text-right"><b>Почтовый индекс:</b></div>
								<div class="col-xs-9">010000</div>
							</div>
							-->
							{% if user['user-info'].tel %}
								<div class="row">
									<div class="col-md-3 text-right"><b>Контактный телефон:</b></div>
									<div class="col-xs-9">{{user['user-info'].tel|phone3}}</div>
								</div>
							{% endif %}
							{% if user['user-info'].email %}
								<div class="row">
									<div class="col-md-3 text-right"><b>Контактный email:</b></div>
									<div class="col-xs-9">{{user['user-info'].email}}</div>
								</div>
							{% endif %}
							{% if invoice.delivery_info %}
								<div class="row">
									<div class="col-md-3 text-right"><b>Дополнительно:</b></div>
									<div class="col-xs-9">{{invoice.delivery_info|n2br|purify|raw}}</div>
								</div>
							{% endif %}
						</div>
					</section>
					{% if invoice.isPayed %}
						<section class="panel panel-default">
							<div class="panel-heading">Платеж:</div>
							<div class="panel-body">
								<div class="row">
									<div class="col-md-3 text-center">
										<div>Итого:</div>
										<h5 style="color: #c00;">{{format_money(invoice.amount_cash, false)}}</h5>
									</div>
									<div class="col-md-3 text-center">
										<div>Платеж получен:</div>
										<div style="color: #c00;">{{format_money(invoice.amount_cash, false)}}</div>
									</div>
									<div class="col-md-3 text-center">
										<div>Способ оплаты:</div>
										<div style="color: #c00;">{{ioEnum.pay_types[invoice.amount_cash.pay_type]|default('Наличные')}}</div>
									</div>
									<div class="col-md-3 text-center">
										<div>Дата получения:</div>
										<div style="color: #c00;">{{invoice.dateSale|iodate('d.m.Y H:i', user.timezone)}}</div>
									</div>
								</div>
							</div>
						</section>
					{% endif %}
				</div>
			{% else %}
				<div class="text-center">
					<h3>Данный заказ не найден</h3>
					<div class="gap gap-small"></div>
					<a class="btn btn-primary btn-lg" href="{{link('/orders')}}">Перейти в список заказов <i class="fa fa-long-arrow-right"></i></a>
				</div>
			{% endif %}
		{% else %}
			<div class="text-center">
				<h3>Для просмотра истории покупок и заказов товаров<br/>нужно войти в Ваш профиль</h3>
				<div class="gap gap-small"></div>
				<a class="btn btn-primary btn-lg" style="margin: 0 5px 5px 0;" href="{{link('/login')}}">Войти <i class="fa fa-long-arrow-right"></i></a>
				<a class="btn btn-default btn-lg" style="margin: 0 5px 5px 0;" href="{{ioProjects.com}}/registration?ref={{site.uri}}">Создать профиль <i class="fa fa-long-arrow-right"></i></a>
			</div>
		{% endif %}
	</div>
	<div class="gap"></div>
</div>
Код обязательно должен обладать отступом (tabs).