Использование собственного оформления карточки заказа

Карточка заказа формируется с использованием типового бланка, встроенного в HostCMS. Для использования собственного бланка создайте константу SHOP_ORDER_CARD_XSL, внесите в нее название XSL-шаблона "МагазинКарточкаЗаказа":

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:hostcms="https://www.hostcms.ru/"
    exclude-result-prefixes="hostcms">
    <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>

    <!-- МагазинКарточкаЗаказа -->

    <xsl:template match="/shop">
        <p style="margin-bottom: 40px"><img src="/admin/images/logo.gif" alt="(^) HostCMS" title="HostCMS" /></p>

        <table cellpadding="2" cellspacing="2" border="0" width="100%">
            <xsl:apply-templates select="shop_company"/>
        </table>

        <h2 align="center">Карточка заказа <xsl:value-of select="shop_order/invoice" /> от <xsl:value-of select="shop_order/datetime" /></h2>

        <table cellpadding="2" cellspacing="2" border="0" width="100%">
            <xsl:apply-templates select="shop_order"/>
        </table>

        <br/>

        <table cellspacing="0" cellpadding="3" width="100%">
            <tr>
                <td class="td_header">
                    №
                </td>
                <td class="td_header">
                    Наименование
                </td>
                <td class="td_header">
                    Артикул
                </td>
                <td class="td_header">
                    Ед. изм.
                </td>
                <td class="td_header">
                    Цена,<xsl:text> </xsl:text><xsl:value-of select="/shop/shop_currency/name" />
                </td>
                <td class="td_header">
                    Кол-во
                </td>
                <td class="td_header">
                    Ставка налога
                </td>
                <td class="td_header">
                    Налог,<xsl:text> </xsl:text><xsl:value-of select="/shop/shop_currency/name" />
                </td>
                <td class="td_header" style="border-right: 1px solid black; white-space: nowrap;">
                    Сумма,<xsl:text> </xsl:text><xsl:value-of select="/shop/shop_currency/name" />
                </td>
            </tr>

            <xsl:apply-templates select="shop_order/shop_order_item"/>

        </table>

        <table width="100%" cellspacing="0" cellpadding="3">
            <tr class="tr_footer">
                <td width="80%" align="right" style="border-bottom: 1px solid black;" colspan="6">
                    В том числе налог:
                </td>
                <td width="80%" align="right"  style="border-bottom: 1px solid black;" colspan="2">
                    <xsl:value-of select="/shop/shop_order/shop_tax_value_sum" /><xsl:text> </xsl:text><xsl:value-of select="/shop/shop_currency/name" />
                </td>
            </tr>
            <tr class="tr_footer">
                <td align="right" colspan="6">
                    Всего к оплате:
                </td>
                <td align="right" colspan="2">
                    <xsl:value-of select="/shop/shop_order/shop_order_item_sum" /><xsl:text> </xsl:text><xsl:value-of select="/shop/shop_currency/name" />
                </td>
            </tr>
        </table>

        <table cellpadding="2" cellspacing="2" border="0"  width="100%">
            <tr>
                <td valign="top" width="30%">
                    Платежная система
                </td>
                <td valign="top">
                    <b><xsl:value-of select="/shop/shop_order/shop_payment_system/name" /></b>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    Оплачен
                </td>
                <td valign="top">
                    <xsl:choose>
                        <xsl:when test="/shop/shop_order/paid != 0"><b>Да</b></xsl:when>
                        <xsl:otherwise>Нет</xsl:otherwise>
                    </xsl:choose>
                </td>
            </tr>
            <tr>
                <td valign="top">
                    Отменен
                </td>
                <td valign="top">
                    <xsl:choose>
                        <xsl:when test="/shop/shop_order/canceled != 0"><b>Да</b></xsl:when>
                        <xsl:otherwise>Нет</xsl:otherwise>
                    </xsl:choose>
                </td>
            </tr>

            <xsl:if test="/shop/shop_order/shop_order_status_id != 0">
                <tr>
                    <td valign="top">
                        Статус заказа
                    </td>
                    <td valign="top">
                        <b><xsl:value-of select="/shop/shop_order/shop_order_status/name" /><xsl:text> </xsl:text>(<xsl:value-of select="/shop/shop_order/status_datetime" />)</b>
                    </td>
                </tr>
            </xsl:if>

            <xsl:if test="/shop/shop_order/shop_delivery_condition_id != 0">
                <tr>
                    <td valign="top">
                        Тип доставки:
                    </td>
                    <td valign="top">
                        <b><xsl:value-of select="/shop/shop_order/shop_delivery/name" /><xsl:text> </xsl:text>(<xsl:value-of select="/shop/shop_order/shop_delivery/shop_delivery_condition/name" />)</b>
                    </td>
                </tr>
            </xsl:if>

            <xsl:if test="/shop/shop_order/description != ''">
                <tr>
                    <td valign="top">
                        Описание заказа:
                    </td>
                    <td>
                        <xsl:value-of select="/shop/shop_order/description" />
                    </td>
                </tr>
            </xsl:if>

            <xsl:if test="/shop/shop_order/system_information != ''">
                <tr>
                    <td valign="top">
                        Информация о заказе:
                    </td>
                    <td>
                        <xsl:value-of select="/shop/shop_order/system_information" />
                    </td>
                </tr>
            </xsl:if>

            <xsl:if test="/shop/shop_order/source_id != 0">
                <tr><td colspan="2"></td></tr>
                <tr>
                    <td>Рекламный сервис:</td>
                    <td><xsl:value-of select="/shop/shop_order/source/service" /></td>
                </tr>
                <tr>
                    <td>Название рекламной кампании:</td>
                    <td><xsl:value-of select="/shop/shop_order/source/campaign" /></td>
                </tr>
                <tr>
                    <td>Рекламное объявление:</td>
                    <td><xsl:value-of select="/shop/shop_order/source/ad" /></td>
                </tr>
                <tr>
                    <td>Место размещения:</td>
                    <td><xsl:value-of select="/shop/shop_order/source/source" /></td>
                </tr>
                <tr>
                    <td>Средство маркетинга:</td>
                    <td><xsl:value-of select="/shop/shop_order/source/medium" /></td>
                </tr>
                <tr>
                    <td>Дополнительная информация:</td>
                    <td><xsl:value-of select="/shop/shop_order/source/content" /></td>
                </tr>
                <tr>
                    <td>Ключевые слова:</td>
                    <td><xsl:value-of select="/shop/shop_order/source/term" /></td>
                </tr>
            </xsl:if>

        </table>
    </xsl:template>

    <xsl:template match="shop_company">
        <tr>
            <td valign="top" width="17%">
                Поставщик
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="name" />
                </b>
            </td>
        </tr>
        <tr>
            <td valign="top">
                ИНН/КПП
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of select="tin" />/<xsl:value-of select="kpp" />
                </b>
            </td>
        </tr>
        <tr>
            <td valign="top">
                ОГРН
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="psrn" />
                </b>
            </td>
        </tr>
        <tr>
            <td valign="top">
                Адрес
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="address" />
                </b>
            </td>
        </tr>
        <tr>
            <td valign="top">
                Телефон
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="phone" />
                </b>
            </td>
        </tr>
        <tr>
            <td valign="top">
                Факс
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="fax" />
                </b>
            </td>
        </tr>
        <tr>
            <td valign="top">
                E-Mail
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="email" />
                </b>
            </td>
        </tr>
        <tr>
            <td valign="top">
                Сайт
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="site" />
                </b>
            </td>
        </tr>
    </xsl:template>

    <xsl:template match="shop_order">
        <tr>
            <td valign="top" width="17%">
                Плательщик
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="company" />
                </b>
            </td>
        </tr>
        <tr>
            <td valign="top">
                Контактное лицо
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="surname" /><xsl:text> </xsl:text><xsl:value-of disable-output-escaping="yes" select="name" /><xsl:text> </xsl:text><xsl:value-of disable-output-escaping="yes" select="patronymic" />
                </b>
            </td>
        </tr>
        <tr>
            <td valign="top">
                Адрес
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="/shop/full_address" />
                </b>
            </td>
        </tr>
        <xsl:if test="siteuser/node()">
        <tr>
            <td valign="top">
                Пользователь
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="siteuser/login" /><xsl:text> </xsl:text>(код<xsl:text> </xsl:text><xsl:value-of disable-output-escaping="yes" select="siteuser/@id" />)
                </b>
            </td>
        </tr>
        </xsl:if>
        <tr>
            <td valign="top">
                Телефон
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="phone" />
                </b>
            </td>
        </tr>
        <tr>
            <td valign="top">
                Факс
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="fax" />
                </b>
            </td>
        </tr>
        <tr>
            <td valign="top">
                E-Mail
            </td>
            <td valign="top">
                <b>
                    <xsl:value-of disable-output-escaping="yes" select="email" />
                </b>
            </td>
        </tr>
    </xsl:template>

    <xsl:template match="shop_order_item">
        <tr>
            <td style="text-align: center;" class="td_main_2" >
                <xsl:value-of disable-output-escaping="yes" select="position()" />
            </td>
            <td class="td_main_2">
                <xsl:value-of disable-output-escaping="yes" select="name" />
            </td>
            <td class="td_main_2">
                <xsl:value-of disable-output-escaping="yes" select="marking" />
            </td>
            <td class="td_main_2">
                <xsl:value-of disable-output-escaping="yes" select="shop_item/shop_measure/name" />
            </td>
            <td class="td_main_2">
                <xsl:value-of disable-output-escaping="yes" select="price - tax" />
            </td>
            <td style="text-align: center;" class="td_main_2">
                <xsl:value-of disable-output-escaping="yes" select="quantity" />
            </td>
            <td style="text-align: center;" class="td_main_2">
                <xsl:choose>
                    <xsl:when test="rate &gt; 0">
                        <xsl:value-of disable-output-escaping="yes" select="rate" />%
                    </xsl:when>
                    <xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="rate" /></xsl:otherwise>
                </xsl:choose>
            </td>
            <td style="text-align: center;" class="td_main_2">
                <xsl:value-of disable-output-escaping="yes" select="tax * quantity" />
            </td>
            <td class="td_main_2" style="border-right: 1px solid black; white-space: nowrap;">
                <xsl:value-of disable-output-escaping="yes" select="price * quantity" />
            </td>
        </tr>
    </xsl:template>
</xsl:stylesheet>

Не нашли ответ на свой вопрос в документации? Направьте обращение в службу поддержки или онлайн чат.

Комментарии

  • Без темы

    при использовании Константы на странице с карточкой сверху ошибка:
    Предупреждение: session_set_save_handler(): Cannot change save handler when headers already sent в файле /public_html/modules/core/session.php (строка 189)Предупреждение: ini_set(): Headers already sent. You cannot change the session module's ini settings at this time в файле /public_html/modules/core/session.php (строка 63)
    как пофиксить?

    28.01.2024 12:50:28
    Puma

    Без темы

    Проверили на версии 7.0.7. Не удается воспроизвести. Направьте запрос в поддержку, пожалуйста. Посмотрим на месте.

    30.01.2024 12:49:45
    alexander.egorov