Вывод всех подходящих условий доставки

#
Вывод всех подходящих условий доставки
Прошу прощения, нужна консультация.

Есть следующий код:

"<xsl:template match="shop_delivery">
<tr class="click">
<td>
<label>
<input type="radio" value="{shop_delivery_condition/@id}" name="shop_delivery_condition_id">
<xsl:if test="position() = 1">
<xsl:attribute name="checked">checked</xsl:attribute>
</xsl:if>
</input><xsl:text> </xsl:text><span class="caption"><xsl:value-of select="name"/></span>
</label>
</td>
<td><p class="price"><xsl:value-of select="format-number(shop_delivery_condition/price, '### ##0,0', 'my'"/><xsl:text> </xsl:text><img src="/images/lampada/rubble-small.png" alt="" /></p></td>
<td><p class="price"><xsl:value-of select="format-number(/shop/total_amount + shop_delivery_condition/price, '### ##0,0', 'my'"/><xsl:text> </xsl:text><img src="/images/lampada/rubble-small.png" alt="" /></p></td>
</tr>

<tr>
<td><xsl:choose>
<xsl:when test="normalize-space(shop_delivery_condition/name) !=''">
<xsl:value-of disable-output-escaping="yes" select="concat(shop_delivery_condition/name,''"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="shop_delivery_condition/name" />
</xsl:otherwise>
</xsl:choose>   </td>
<td colspan="2">
<xsl:choose>
<xsl:when test="normalize-space(shop_delivery_condition/name) !=''">
<xsl:value-of disable-output-escaping="yes" select="concat(description,' (',shop_delivery_condition/description,''"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="shop_delivery_condition/name" />
</xsl:otherwise>
</xsl:choose>
</td></tr>
</xsl:template>"

Есть необходимость вывести все _подходящие_ условия доставки, но выводится только одно. Как исправить?
#
Re: Вывод всех подходящих условий доставки
Пример готового 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="http://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:decimal-format name="my" decimal-separator="," grouping-separator=" "/>

   <!-- Шаблон для типов доставки -->
   <xsl:template match="/shop">
      <div id="WiredWizard" class="wizard wizard-wired" data-target="#WiredWizardsteps">
         <ul class="steps">
            <li data-target="#wiredstep1" class="complete"><span class="step">1</span><span class="title">Корзина</span><span class="chevron"></span></li>
            <li data-target="#wiredstep2" class="complete"><span class="step">2</span><span class="title">Реквизиты</span> <span class="chevron"></span></li>
            <li data-target="#wiredstep3" class="active"><span class="step">3</span><span class="title">Доставка</span> <span class="chevron"></span></li>
            <li data-target="#wiredstep4"><span class="step">4</span><span class="title">Форма оплаты</span> <span class="chevron"></span></li>
            <li data-target="#wiredstep5"><span class="step">5</span><span class="title">Заказ оформлен</span> <span class="chevron"></span></li>
         </ul>
      </div>

      <!-- <h1>Способ доставки</h1> -->

      <form method="post">
         <!-- Проверяем количество способов доставки -->
         <xsl:choose>
            <xsl:when test="count(shop_delivery) = 0">
               <div class="alert alert-info fade in alert-cart">
                  <p>По выбранным Вами условиям доставка не возможна, заказ будет оформлен без доставки.</p>
                  <p>Уточнить данные о доставке Вы можете, связавшись с представителем нашей компании.</p>
                  <input type="hidden" name="shop_delivery_condition_id" value="0"/>
               </div>
            </xsl:when>
            <xsl:otherwise>
               <div class="table-responsive">
                  <table class="table shop-cart cart-delivery">
                     <thead>
                        <tr class="total">
                           <th width="20%">Способ доставки</th>
                           <th>Описание</th>
                           <th width="15%">Цена доставки</th>
                           <th width="15%">Стоимость товаров</th>
                           <th width="15%">Итого</th>
                     </tr>
                     </thead>
                     <tbody>
                        <xsl:apply-templates select="shop_delivery"/>
                     </tbody>
                  </table>
               </div>
            </xsl:otherwise>
         </xsl:choose>

         <input name="step" value="3" type="hidden" />
         <input value="Далее →" type="submit" class="btn btn-primary bg-lightred full-width margin-top-10 margin-bottom-20" />
      </form>
   </xsl:template>

   <xsl:template match="shop_delivery">
      <tr>
         <td class="text-align-left">
            <label>
               <input type="radio" value="{shop_delivery_condition/@id}" name="shop_delivery_condition_id">
                  <xsl:if test="position() = 1">
                     <xsl:attribute name="checked">checked</xsl:attribute>
                  </xsl:if>
         </input><xsl:text> </xsl:text><span class="caption"><xsl:value-of select="name"/></span>
            </label>
         </td>
         <td>
            <!--<xsl:value-of disable-output-escaping="yes" select="description"/>-->
            <xsl:choose>
               <xsl:when test="normalize-space(shop_delivery_condition/description) !=''">
                  <xsl:value-of disable-output-escaping="yes" select="concat(description,' (',shop_delivery_condition/description,')')"/>
               </xsl:when>
               <xsl:otherwise>
                  <xsl:value-of disable-output-escaping="yes" select="description"/>
               </xsl:otherwise>
            </xsl:choose>
         </td>
         <td>
         <xsl:value-of select="format-number(shop_delivery_condition/price, '### ##0,00', 'my')"/><xsl:text> </xsl:text><xsl:value-of select="/shop/shop_currency/name"/></td>
         <td>
            <xsl:value-of select="format-number(/shop/total_amount, '### ##0,00', 'my')"/><xsl:text> </xsl:text><xsl:value-of select="/shop/shop_currency/name"/>
         </td>
         <td class="total">
            <xsl:value-of select="format-number(/shop/total_amount + shop_delivery_condition/price, '### ##0,00', 'my')"/><xsl:text> </xsl:text><xsl:value-of select="/shop/shop_currency/name"/>
         </td>
      </tr>
   </xsl:template>
</xsl:stylesheet>
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Вывод всех подходящих условий доставки
Хмм. Аналогично, выводится только 1 подходящие условие к каждому типу доставки, а не все.
#
Re: Вывод всех подходящих условий доставки
Так может у вас только одно подходящее условие?  Если не получится вывести обратитесь в поддержку https://www.hostcms.ru/support/
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Вывод всех подходящих условий доставки
Да вроде по заданным условиям еще с десяток есть подходящих... я сейчас еще попробую, вдруг правда что-то не то
Модератор
#
Re: Вывод всех подходящих условий доставки
marchatter,
для обычной доставки будет выбираться самое дешевое условие доставки, подходящее по максимуму условий (от частного [район, город, область, страна] к общему [страна]).
#
Re: Вывод всех подходящих условий доставки
HostCMS писал(а):
для обычной доставки будет выбираться самое дешевое условие доставки, подходящее по максимуму условий (от частного [район, город, область, страна] к общему [страна]).

Или самое первое, но в идеале нужен вывод всех возможных условий. Это вообще возможно?
Модератор
#
Re: Вывод всех подходящих условий доставки
marchatter,
понятие первого не однозначно. Смотрите, у вас для Москвы доставка Курьером 300 руб, для области - 500 рублей, для Воронежа 600 руб, для всех остальных регионов - 1200 рублей.
Получается Москвичу должно выводиться и за 300 рублей и за 1200 руб, что определенно нелогично.

Варианты выбора условия выводятся для доставок, рассчитываемых обработчиком, например, с постаматами и т.п.
#
Re: Вывод всех подходящих условий доставки
HostCMS писал(а):
Варианты выбора условия выводятся для доставок, рассчитываемых обработчиком, например, с постаматами и т.п.

Собственно, там пункты самовывоза, и я не очень представляю, как их вывести: условия для типа доставки (самовывоз) у них в целом одинаковые.
Авторизация