Оформление заказа в корзине в один шаг v.6
Кодинг
→
HostCMS
→
Интернет-магазин
Если вам требуется больше, чем просто сокращение шагов при оформлении заказа, пожалуйста, взгляните на решение "Все шаги оформления на одной странице". Если же вам требуется решение попроще, вы можете воспользоваться способом, описанным ниже.
В ТДС "Интернет-магазин корзина" заменяем код 4го шага
// Окончание оформления заказа
case 4:
$shop_payment_system_id = $_SESSION['hostcmsOrder']['shop_payment_system_id'] = intval(Core_Array::getPost('shop_payment_system_id', 0));
// Если выбрана платежная система
if ($_SESSION['hostcmsOrder']['shop_payment_system_id'])
{
Shop_Payment_System_Handler::factory(
Core_Entity::factory('Shop_Payment_System', $shop_payment_system_id)
)
->orderParams($_SESSION['hostcmsOrder'])
->execute();
}
else
{
?><h1>Ошибка! Не указана ни одна платежная система.</h1><?php
}
break;
на следующий код:
// Окончание оформления заказа
case 4:
// Сбрасываем информацию о последнем заказе
$_SESSION['last_order_id'] = 0;
$shop_payment_system_id = $_SESSION['hostcmsOrder']['shop_payment_system_id'] = 1;//id используемой платежной системы
$_SESSION['hostcmsOrder']['shop_delivery_condition_id'] = intval(Core_Array::getPost('shop_delivery_condition_id', 0));
$_SESSION['hostcmsOrder']['address'] = strval(Core_Array::getPost('address'));
$_SESSION['hostcmsOrder']['surname'] = strval(Core_Array::getPost('surname'));
$_SESSION['hostcmsOrder']['name'] = strval(Core_Array::getPost('name'));
$_SESSION['hostcmsOrder']['patronymic'] = strval(Core_Array::getPost('patronymic'));
$_SESSION['hostcmsOrder']['company'] = strval(Core_Array::getPost('company'));
$_SESSION['hostcmsOrder']['phone'] = strval(Core_Array::getPost('phone'));
$_SESSION['hostcmsOrder']['email'] = strval(Core_Array::getPost('email'));
$_SESSION['hostcmsOrder']['fax'] = strval(Core_Array::getPost('fax'));
$_SESSION['hostcmsOrder']['description'] = strval(Core_Array::getPost('description'));
// Если выбрана платежная система
if ($_SESSION['hostcmsOrder']['shop_payment_system_id'])
{
Shop_Payment_System_Handler::factory(
Core_Entity::factory('Shop_Payment_System', $shop_payment_system_id)
)
->orderParams($_SESSION['hostcmsOrder'])
->execute();
}
else
{
?><h1>Ошибка! Не указана ни одна платежная система.</h1><?php
}
break;
Далее в XSL "МагазинКорзина" заменяем строчку
<input name="step" value="1" type="hidden" />
на
<input name="step" value="4" type="hidden" />
Для того, чтобы отображались поля для ввода данных о заказчике заменяем
<xsl:if test="siteusers_class_exists = 1">
<h1>Данные о заказчике</h1>
<!-- Выводим сообщение -->
<xsl:if test="/shop/message/node()">
<div id="message">
<xsl:value-of disable-output-escaping="yes" select="/shop/message"/>
</div>
</xsl:if>
<p style="color: #707070">
Поля, отмеченные <span class="red_star" style="position: relative; top: 6px;"> *</span>, обязательны для заполнения.
</p>
<!-- В случае если отключен модуль пользователей сайта, запрашиваем информацию
о пользователе сайта здесь -->
<table cellspacing="0" cellpadding="0" border="0" class="shop_cart_table">
<tr>
<td>Фамилия:</td>
<td>
<input name="siteusers_surname" type="text" value="{siteusers_surname}" size="40"/>
</td>
<td class="red_star"> *</td>
</tr>
<tr>
<td>Имя:</td>
<td>
<input name="siteusers_name" type="text" value="{siteusers_name}" size="40"/>
</td>
<td class="red_star"> *</td>
</tr>
<tr>
<td>Отчество:</td>
<td>
<input name="siteusers_patronymic" type="text" value="{siteusers_patronymic}" size="40"/>
</td>
</tr>
<tr>
<td>Компания:</td>
<td>
<input name="siteusers_company" type="text" value="{siteusers_company}" size="40"/>
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input name="siteusers_email" type="text" value="{siteusers_email}" size="40"/>
</td>
<td class="red_star"> *</td>
</tr>
<tr>
<td>Телефон:</td>
<td>
<input name="siteusers_phone" type="text" value="{siteusers_phone}" size="40"/>
</td>
</tr>
<tr>
<td>Факс:</td>
<td>
<input name="siteusers_fax" type="text" value="{siteusers_fax}" size="40"/>
</td>
</tr>
<tr>
<td>Адрес:</td>
<td>
<input name="siteusers_address" type="text" value="{siteusers_address}" size="40"/>
</td>
</tr>
</table>
<!-- Добавляем скрытое поле с указанием подшага -->
<input name="step_1_1a" type="hidden" value="1"/>
</xsl:if>
на
<!-- <xsl:if test="siteusers_class_exists = 1"> -->
<h1>Данные о заказчике</h1>
<!-- Выводим сообщение -->
<xsl:if test="/shop/message/node()">
<div id="message">
<xsl:value-of disable-output-escaping="yes" select="/shop/message"/>
</div>
</xsl:if>
<p style="color: #707070">
Поля, отмеченные <span class="red_star" style="position: relative; top: 6px;"> *</span>, обязательны для заполнения.
</p>
<!-- В случае если отключен модуль пользователей сайта, запрашиваем информацию
о пользователе сайта здесь -->
<table cellspacing="0" cellpadding="0" border="0" class="shop_cart_table">
<tr>
<td>Фамилия:</td>
<td>
<input name="surname" type="text" value="{siteusers_surname}" size="40"/>
</td>
<td class="red_star"> *</td>
</tr>
<tr>
<td>Имя:</td>
<td>
<input name="name" type="text" value="{siteusers_name}" size="40"/>
</td>
<td class="red_star"> *</td>
</tr>
<tr>
<td>Отчество:</td>
<td>
<input name="patronymic" type="text" value="{siteusers_patronymic}" size="40"/>
</td>
</tr>
<tr>
<td>Компания:</td>
<td>
<input name="company" type="text" value="{siteusers_company}" size="40"/>
</td>
</tr>
<tr>
<td>E-mail:</td>
<td>
<input name="email" type="text" value="{siteusers_email}" size="40"/>
</td>
<td class="red_star"> *</td>
</tr>
<tr>
<td>Телефон:</td>
<td>
<input name="phone" type="text" value="{siteusers_phone}" size="40"/>
</td>
</tr>
<tr>
<td>Факс:</td>
<td>
<input name="fax" type="text" value="{siteusers_fax}" size="40"/>
</td>
</tr>
<tr>
<td>Адрес:</td>
<td>
<input name="address" type="text" value="{siteusers_address}" size="40"/>
</td>
</tr>
</table>
<!-- Добавляем скрытое поле с указанием подшага -->
<input name="step_1_1a" type="hidden" value="1"/>
<!-- </xsl:if> -->
Тут же можно удалить(или скрыть) ненужные поля.
Обсуждение на официальном форуме HostCMS
Корзина, 1 шаг, оформление, заказ
27.10.2012, 12331 просмотр.
Комментарии
Добавить комментарий