HostCMS
Выдано 65 988 лицензий.
На главную страницу Карта сайта

Как реализовать подтверждение заказа

Список форумовПолезные решения на базе HostCMS

Как реализовать подтверждение заказа
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"/>&#xA0;<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"/>&#xA0;<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"/>&#xA0;<xsl:value-of select="$quantity"/>&#xA0;<xsl:value-of select="item/mesure"/> * <xsl:value-of select="$price"/> = <xsl:value-of select="$quantity*$price"/>&#xA0;<xsl:value-of select="//order_list/currency/currency_name"/>
<xsl:if test="item/path != ''">&#xA0;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>&#xA0;
</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"/>&#xA0;<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"/>&#xA0;<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"/>&#xA0;<xsl:value-of select="//order_list/currency/currency_name"/></td>
<td><xsl:value-of select="$quantity*$price"/>&#xA0;<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"/>&#xA0;<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"/>&#xA0;<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"/>&#xA0;<xsl:value-of select="//order_list/currency/currency_name"/></td>
<td><xsl:value-of select="$quantity*$price"/>&#xA0;<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"/>&#xA0;<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"/>&#xA0;<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"/>&#xA0;<xsl:value-of select="//order_list/currency/currency_name"/></td>
<td><xsl:value-of select="$quantity*$price"/>&#xA0;<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

12

Авторизация
Логин: Пароль:  

Список форумовПолезные решения на базе HostCMS

О нас говорят!

Приятно осознавать, что предлагая клиентам выбрать HostCMS в качестве системы управления, мы рекомендуем действительно стоящий продукт. На высоком уровне все: простота в управлении, надежность, универсальность, техподдержка.

Рекламное агентство «Сеократ»
Генеральный директор
Андреев Антон

Акции партнеров

Месяц бесплатного мониторинга сайтов от Webpinger.ru

Интеллектуальный мониторинг сайта от Webpinger.ru контролирует работоспособности сайтов.

Рекомендуем хостинг

Hostyes

Тариф «HostCMS» за 140 руб./мес.

Создаете сайты?

У нас есть партнерское предложение по поставке системы управления сайтом:

О HostCMS
Редакции HostCMS
Возможности
Поддержка
Области применения
Партнерская программа
Заказать сайт