| Как реализовать подтверждение заказа | |
|
Weber
 Регистрация: 23.06.2007 | В конце оформления, мы видим сообщение
«Ваш заказ оформлен
Спасибо, заказ оормлен. В ближайшее время мы свяжемся с Вами.»
А как реализовать табличку, с данными, где будет собрана информация по заказу и предоставлена заказчику
»
Ваш заказ оформлен
Спасибо, заказ оормлен. В ближайшее время мы свяжемся с Вами.
Детали:
Имя: ---
Фамилия: ----
АДрес: ---
Телефон: ---
Список товаров: ---
На сумму: ---
»
|
| Профиль |
Сообщений: 10 |
Дата создания: 23.06.2007 17:44:38 |
| Re: Как реализовать подтверждение заказа | |
|
HostCMS Модератор
 Регистрация: 02.04.2007 | Weber,
воспользуйтесь XSL-шаблоном в следующей модификации (внести изменения по желанию):
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" encoding="Windows-1251" indent="yes" method="text" omit-xml-declaration="no" version="1.0" />
<xsl:template match="/document_list">
Здравствуйте, <xsl:value-of select="order_list/site_user_fio"/>!
Вами был сделан заказ на сайте http://<xsl:value-of select="order_list/shop/site_alias_name"/>
<xsl:apply-templates select="order_list"/>
Заказанные товары:
-------------------------------------------------------------
<xsl:apply-templates select="items_order"/>
-------------------------------------------------------------
Итого: <xsl:value-of select="order_list/sum"/> <xsl:value-of select="order_list/currency/currency_name"/>
Через некоторое время с Вами свяжется наш менеджер, чтобы согласовать заказанный товар и время доставки.
Спасибо за использование услуг нашего магазина.
</xsl:template>
<!-- Шаблон вывода данных о заказе -->
<xsl:template match="order_list">
Данные доставки:
1. ФИО: <xsl:value-of select="site_user_fio"/>
2. E-mail: <xsl:value-of select="site_users_email"/>
3. Телефон: <xsl:value-of select="site_users_phone"/>
4. Факс: <xsl:value-of select="site_users_fax"/>
<xsl:variable name="country" select="country_name"/>
<xsl:variable name="location">, <xsl:value-of select="location_name"/></xsl:variable>
<xsl:variable name="city">, <xsl:value-of select="city_name"/></xsl:variable>
<xsl:variable name="city_area">, <xsl:value-of select="city_area_name"/></xsl:variable>
Адрес доставки:
<xsl:value-of select="$country"/>
<xsl:value-of select="$location"/>
<xsl:value-of select="$city"/>
<xsl:value-of select="$city_area"/> <xsl:value-of select="address"/>
Индекс: <xsl:value-of select="index"/>
<xsl:if test="phone!=''">
Телефон: <xsl:value-of select="phone"/></xsl:if>
</xsl:template>
<!-- Данные о товарах -->
<xsl:template match="items_order">
<xsl:variable name="quantity"><xsl:value-of select="order_items_quantity"/></xsl:variable>
<xsl:variable name="price"><xsl:value-of select="order_items_price"/></xsl:variable>
<xsl:value-of select="order_items_name"/> <xsl:value-of select="$quantity"/> <xsl:value-of select="item/mesure"/> * <xsl:value-of select="$price"/> = <xsl:value-of select="$quantity*$price"/> <xsl:value-of select="//order_list/currency/currency_name"/>
<xsl:if test="item/path != ''"> http://<xsl:value-of select="//order_list/shop/site_alias_name"/><xsl:value-of select="//order_list/shop/shop_path"/><xsl:value-of select="item/fullpath"/><xsl:value-of select="item/path"/>/</xsl:if> 
</xsl:template>
</xsl:stylesheet> |
| Профиль |
Сообщений: 10759 |
Дата создания: 24.06.2007 13:17:09 |
| Re: Как реализовать подтверждение заказа | |
|
Weber
 Регистрация: 23.06.2007 | Ошибка номер 30 XSL преобразования шаблона 'ОплатаПриПолучении':
XSL element 'template' can only be used at the top level |
| Профиль |
Сообщений: 10 |
Дата создания: 25.06.2007 00:54:43 |
| Re: Как реализовать подтверждение заказа | |
|
Weber
 Регистрация: 23.06.2007 | Точнее:
Ошибка номер 0 XSL преобразования шаблона 'ОплатаПриПолучении':
если не менять ваш код |
| Профиль |
Сообщений: 10 |
Дата создания: 25.06.2007 00:57:13 |
| Re: Как реализовать подтверждение заказа | |
|
HostCMS Модератор
 Регистрация: 02.04.2007 | Weber,
проверьте, правильно ли Вы скопировали данный шаблон. Создайте обращение в суппорт с указанием данных доступа и указанием на проблему. |
| Профиль |
Сообщений: 10759 |
Дата создания: 25.06.2007 09:12:58 |
| Re: Как реализовать подтверждение заказа | |
|
HostCMS Модератор
 Регистрация: 02.04.2007 | Указанный шаблон отлично работает, вероятно Вы его неверно скопировали. Ответ дан по эл. почте |
| Профиль |
Сообщений: 10759 |
Дата создания: 28.06.2007 14:49:08 |
| Re: Как реализовать подтверждение заказа | |
|
HostCMS Модератор
 Регистрация: 02.04.2007 | Weber,
Для реализации вывода пользователю информации о заказанных им товарах после оформления заказа необходимо в обработчиках форм оплаты заменить:
/* Формируем XML */
$xmlData = '<?xml version="1.0" encoding="'.SITE_CODING.'"?>'."\n";
$xmlData .= '<order>';
/* Ссылака на версию для печати */
$shop_row = $GLOBALS['shops']->GetShop($shop_id);
if ($shop_row)
{
/* Получаем путь к магазину */
$Structure = new Structure();
$shop_path = "/".$Structure->GetStructurePath($shop_row['structure_id'], 0);
$shop_path .= "cart/print/$order_id/";
$xmlData .= "<print_link>".$shop_path."</print_link>";
}
$xmlData .= "</order>\n";
на /* Формируем XML */
$xmlData = '<?xml version="1.0" encoding="'.SITE_CODING.'"?>'."\n";
$xmlData .= '<document_list>'."\n";
/* Ссылака на версию для печати */
$shop_row = $GLOBALS['shops']->GetShop($shop_id);
if ($shop_row)
{
/* Получаем путь к магазину */
$Structure = new Structure();
$shop_path = "/".$Structure->GetStructurePath($shop_row['structure_id'], 0);
$shop_path .= "cart/print/$order_id/";
$xmlData .= "<print_link>".$shop_path."</print_link>";
}
$xmlData .= $GLOBALS['shops']->GetXmlForOrder($order_id, false, true);
$xmlData .= $GLOBALS['shops']->GetXmlForItemsOrder($order_id);
$xmlData .= '</document_list>'."\n";
и внести корректировки в XSL-шаблоны:
ОплатаПриПолучении
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" />
<!-- Шаблон "ОплатаПриПолучении" -->
<xsl:template match="/document_list">
<h1>Ваш заказ оформлен</h1>
<xsl:apply-templates select="order_list"/>
<h2>Заказанные товары</h2>
<table cellpadding="2" cellspacing="0">
<tr class="shop_cart_table">
<td>Наименование</td>
<td>Количество</td>
<td>Цена</td>
<td>Сумма</td>
</tr>
<xsl:apply-templates select="items_order"/>
<tr class="shop_cart_table">
<td colspan="4" align="right">
Итого: <xsl:value-of select="order_list/sum"/> <xsl:value-of select="order_list/currency/currency_name"/>
</td>
</tr>
</table>
<p>Через некоторое время с Вами свяжется наш менеджер, чтобы согласовать заказанный товар и время доставки.</p>
<p>Спасибо за использование услуг нашего магазина.</p>
</xsl:template>
<!-- Шаблон вывода данных о заказе -->
<xsl:template match="order_list">
<h2>Данные доставки</h2>
<p>ФИО: <xsl:value-of select="site_user_fio"/></p>
<p>E-mail: <xsl:value-of select="site_users_email"/></p>
<p>Телефон: <xsl:value-of select="site_users_phone"/></p>
<p>Факс: <xsl:value-of select="site_users_fax"/></p>
<xsl:variable name="country" select="country_name"/>
<xsl:variable name="location">, <xsl:value-of select="location_name"/></xsl:variable>
<xsl:variable name="city">, <xsl:value-of select="city_name"/></xsl:variable>
<xsl:variable name="city_area">, <xsl:value-of select="city_area_name"/></xsl:variable>
<p>Адрес доставки:
<xsl:value-of select="$country"/>
<xsl:value-of select="$location"/>
<xsl:value-of select="$city"/>
<xsl:value-of select="$city_area"/> <xsl:value-of select="address"/></p>
<p>Индекс: <xsl:value-of select="index"/></p>
<xsl:if test="phone!=''">
<p>Телефон: <xsl:value-of select="phone"/></p>
</xsl:if>
</xsl:template>
<!-- Данные о товарах -->
<xsl:template match="items_order">
<xsl:variable name="quantity"><xsl:value-of select="order_items_quantity"/></xsl:variable>
<xsl:variable name="price"><xsl:value-of select="order_items_price"/></xsl:variable>
<tr class="shop_cart_table">
<td>
<xsl:choose>
<xsl:when test="item/path != ''">
<a href="http://{//order_list/shop/site_alias_name}{//order_list/shop/shop_path}{item/fullpath}{item/path}/"><xsl:value-of select="order_items_name"/></a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="order_items_name"/>
</xsl:otherwise>
</xsl:choose>
</td>
<td><xsl:value-of select="$quantity"/> <xsl:value-of select="item/mesure"/></td>
<td><xsl:value-of select="$price"/> <xsl:value-of select="//order_list/currency/currency_name"/></td>
<td><xsl:value-of select="$quantity*$price"/> <xsl:value-of select="//order_list/currency/currency_name"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
ОплатаПоФормеПД4
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" />
<!-- XSL-шаблон "ОплатаПоФормеПД4" -->
<xsl:template match="/document_list">
<h1>Ваш заказ оформлен</h1>
<xsl:apply-templates select="order_list"/>
<h2>Заказанные товары</h2>
<table cellpadding="2" cellspacing="0">
<tr class="shop_cart_table">
<td>Наименование</td>
<td>Количество</td>
<td>Цена</td>
<td>Сумма</td>
</tr>
<xsl:apply-templates select="items_order"/>
<tr class="shop_cart_table">
<td colspan="4" align="right">
Итого: <xsl:value-of select="order_list/sum"/> <xsl:value-of select="order_list/currency/currency_name"/>
</td>
</tr>
</table>
<p>Распечатайте <a href="{/document_list/print_link}" target="_blank">бланк квитанции по форме ПД-4</a>, вырежьте бланк квитанции и оплатитите его в отделении банка.</p>
<p>Через некоторое время с Вами свяжется наш менеджер, чтобы согласовать заказанный товар и время доставки.</p>
<p>Спасибо за использование услуг нашего магазина.</p>
</xsl:template>
<!-- Шаблон вывода данных о заказе -->
<xsl:template match="order_list">
<h2>Данные доставки</h2>
<p>ФИО: <xsl:value-of select="site_user_fio"/></p>
<p>E-mail: <xsl:value-of select="site_users_email"/></p>
<p>Телефон: <xsl:value-of select="site_users_phone"/></p>
<p>Факс: <xsl:value-of select="site_users_fax"/></p>
<xsl:variable name="country" select="country_name"/>
<xsl:variable name="location">, <xsl:value-of select="location_name"/></xsl:variable>
<xsl:variable name="city">, <xsl:value-of select="city_name"/></xsl:variable>
<xsl:variable name="city_area">, <xsl:value-of select="city_area_name"/></xsl:variable>
<p>Адрес доставки:
<xsl:value-of select="$country"/>
<xsl:value-of select="$location"/>
<xsl:value-of select="$city"/>
<xsl:value-of select="$city_area"/> <xsl:value-of select="address"/></p>
<p>Индекс: <xsl:value-of select="index"/></p>
<xsl:if test="phone!=''">
<p>Телефон: <xsl:value-of select="phone"/></p>
</xsl:if>
</xsl:template>
<!-- Данные о товарах -->
<xsl:template match="items_order">
<xsl:variable name="quantity"><xsl:value-of select="order_items_quantity"/></xsl:variable>
<xsl:variable name="price"><xsl:value-of select="order_items_price"/></xsl:variable>
<tr class="shop_cart_table">
<td>
<xsl:choose>
<xsl:when test="item/path != ''">
<a href="http://{//order_list/shop/site_alias_name}{//order_list/shop/shop_path}{item/fullpath}{item/path}/"><xsl:value-of select="order_items_name"/></a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="order_items_name"/>
</xsl:otherwise>
</xsl:choose>
</td>
<td><xsl:value-of select="$quantity"/> <xsl:value-of select="item/mesure"/></td>
<td><xsl:value-of select="$price"/> <xsl:value-of select="//order_list/currency/currency_name"/></td>
<td><xsl:value-of select="$quantity*$price"/> <xsl:value-of select="//order_list/currency/currency_name"/></td>
</tr>
</xsl:template>
</xsl:stylesheet>
ОплатаБезналичнаяОтЮрЛица
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" />
<!-- Шаблон "ОплатаБезналичнаяОтЮрЛица" -->
<xsl:template match="/document_list">
<h1>Ваш заказ оформлен</h1>
<xsl:apply-templates select="order_list"/>
<h2>Заказанные товары</h2>
<table cellpadding="2" cellspacing="0">
<tr class="shop_cart_table">
<td>Наименование</td>
<td>Количество</td>
<td>Цена</td>
<td>Сумма</td>
</tr>
<xsl:apply-templates select="items_order"/>
<tr class="shop_cart_table">
<td colspan="4" align="right">
Итого: <xsl:value-of select="order_list/sum"/> <xsl:value-of select="order_list/currency/currency_name"/>
</td>
</tr>
</table>
<p>Распечатайте <a href="{/document_list/print_link}" target="_blank">бланк счета</a> и передайте его в бухгалтерию.</p>
<p>Через некоторое время с Вами свяжется наш менеджер, чтобы согласовать заказанный товар и время доставки.</p>
<p>Спасибо за использование услуг нашего магазина.</p>
</xsl:template>
<!-- Шаблон вывода данных о заказе -->
<xsl:template match="order_list">
<h2>Данные доставки</h2>
<p>ФИО: <xsl:value-of select="site_user_fio"/></p>
<p>E-mail: <xsl:value-of select="site_users_email"/></p>
<p>Телефон: <xsl:value-of select="site_users_phone"/></p>
<p>Факс: <xsl:value-of select="site_users_fax"/></p>
<xsl:variable name="country" select="country_name"/>
<xsl:variable name="location">, <xsl:value-of select="location_name"/></xsl:variable>
<xsl:variable name="city">, <xsl:value-of select="city_name"/></xsl:variable>
<xsl:variable name="city_area">, <xsl:value-of select="city_area_name"/></xsl:variable>
<p>Адрес доставки:
<xsl:value-of select="$country"/>
<xsl:value-of select="$location"/>
<xsl:value-of select="$city"/>
<xsl:value-of select="$city_area"/> <xsl:value-of select="address"/></p>
<p>Индекс: <xsl:value-of select="index"/></p>
<xsl:if test="phone!=''">
<p>Телефон: <xsl:value-of select="phone"/></p>
</xsl:if>
</xsl:template>
<!-- Данные о товарах -->
<xsl:template match="items_order">
<xsl:variable name="quantity"><xsl:value-of select="order_items_quantity"/></xsl:variable>
<xsl:variable name="price"><xsl:value-of select="order_items_price"/></xsl:variable>
<tr class="shop_cart_table">
<td>
<xsl:choose>
<xsl:when test="item/path != ''">
<a href="http://{//order_list/shop/site_alias_name}{//order_list/shop/shop_path}{item/fullpath}{item/path}/"><xsl:value-of select="order_items_name"/></a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="order_items_name"/>
</xsl:otherwise>
</xsl:choose>
</td>
<td><xsl:value-of select="$quantity"/> <xsl:value-of select="item/mesure"/></td>
<td><xsl:value-of select="$price"/> <xsl:value-of select="//order_list/currency/currency_name"/></td>
<td><xsl:value-of select="$quantity*$price"/> <xsl:value-of select="//order_list/currency/currency_name"/></td>
</tr>
</xsl:template>
</xsl:stylesheet> |
| Профиль |
Сообщений: 10759 |
Дата создания: 30.06.2007 11:30:22 |
| Re: Как реализовать подтверждение заказа | |
|
qfox
 Регистрация: 21.04.2009 | Может быть тогда подскажете как наименее затратно сформировать XML с данными?
Интересует
$xmlData .= $GLOBALS['shops']->GetXmlForOrder($order_id, false, true);
и особенно этот кусок:
<site_user_login><site_user_login>
<site_user_email><site_user_email>
<site_users_id>0</site_users_id>
<site_users_login></site_users_login>
<site_users_email></site_users_email>
<site_users_name></<site_users_name>
...
В том дело, что регистрация мне не нужна. Достаточно обычной капчи, а str_replacом, или через DOM/SAX разбирать эту XML как-то гнило.
Подскажите?.. |
| Профиль |
Сообщений: 4 |
Дата создания: 21.04.2009 18:33:58 |
| Re: Как реализовать подтверждение заказа | |
|
HostCMS Модератор
 Регистрация: 02.04.2007 | qfox,
Поясните, Вам нужно сформировать XML или разобрать его и получить данные? Из Вашего сообщения это не ясно. Если разобрать — то зачем из XML, если нужным методом можно просто извлечь данные из БД? |
| Профиль |
Сообщений: 10759 |
Дата создания: 22.04.2009 08:33:00 |
| Re: Как реализовать подтверждение заказа | |
|
qfox
 Регистрация: 21.04.2009 | Цитирую себя: «Может быть тогда подскажете как наименее затратно _сформировать XML_ с данными?»
К сожалению, в документации для версии 4 не нашел как работать с базой данных. Да и на форуме тоже не видел примеров.
К тому же, выбирать данные из базы в любом месте, где вздумается, плохой тон. Такие вещи должны быть инкапсулированы в модели. В данном случае, наш shop является как контроллером, так и моделью — то есть, все запросы к таблицам shop'а должны быть в нем, а не в шаблонах или где-то еще…
И база мне не особо нужна, кроме как для данных текущего заказа, а эти данные уже есть в результате работы метода shop::GetXmlForOrder.
Может быть есть некий функционал аля shop::GetDataForOrder и?:: RenderXml, чтобы выбрать данные, поправить как надо, и сформировать XML? Примерно так, как это делается в методе, только без исправлений.
Предполагаю, что сформировать XML-данные для XSLТ-файла можно и без запросов к базе. В данном случае речь идет о данных в сессии, и «мои» данные на руках. Вопрос в том, как их поместить в эту XML?
Еще раз повторюсь, что речь идет об упрощенной корзине в интернет-магазине без регистрации, все данные в куках и корзине. |
| Профиль |
Сообщений: 4 |
Дата создания: 23.04.2009 02:55:44 |