вывод в корзине группы товара и родителя модификации

#
вывод в корзине группы товара и родителя модификации
Возникла следующая проблема. Необходимо выводить в корзине название группы товаров и название не самого товара, а его родителя (дело в том, что как таковые товары не покупают, только их модификации), а также нужно выводить общую сумму всех заказанных товаров из группы.
http://www.colibre.ru - Создание и продвижение сайтов
#
Re: вывод в корзине группы товара и родителя модификации
Попробовала в шаблоне вызывать так
   <?php
   $shop = & singleton('shop');
   $shop_id = 1;
   $param=array () ;
   $param['shop_groups_id'] = 601;
   $shop->ShowCart($shop_id, false, "МагазинКорзинаКраткая", $param);
?>

Но как-то не получается (
http://www.colibre.ru - Создание и продвижение сайтов
Модератор
#
Re: вывод в корзине группы товара и родителя модификации
libertine,
Давайте начнем с того, что Вы покажите XML.
#
Re: вывод в корзине группы товара и родителя модификации
Так там по этому поводу и нет ничего толком, я даже не знаю как подступиться. но на всякий случай вот
<?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" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
   
   <xsl:template match="/cart">
      <div class="order" id="little_cart">
         <img src="/templates/template1/images/order.gif" alt="Ваш заказ" />
         <form action="{/cart/shop/path}cart/" name="address" method="POST">
            <table width="100%" border="0" cellspacing="0" cellpadding="0" class="check">
               <xsl:choose>
                  <!-- Магазин не найден -->
                  <xsl:when test="error_not_isset_shop/node()">
                     <tr>
                        <td><p>Ошибка! Магазин с указанным идентификатором не найден!
                           <br/>Укажите правильный код магазина!</p></td>
                     </tr>
                  </xsl:when>
                  <!-- Магазин найден -->
                  <xsl:otherwise>
                     
                     <xsl:choose>
                        <!-- В корзине нет ни одного элемента -->
                        <xsl:when test="totalquantity = 0">
                           <xsl:choose>
                              <xsl:when test="site_users_class_exists = 1 and user_id = 0">
                                 <tr>
                                 <td><p>Если Вы зарегистрированный пользователь, данные Вашего заказа станут видны после авторизации.</p></td>
                                 </tr>
                              </xsl:when>
                              <xsl:otherwise>
                                 <tr>
                                 <td><p>Перейдите в магазин, выберите требуемый товар и добавьте его в заказ.</p></td>
                                 </tr>
                              </xsl:otherwise>
                           </xsl:choose>
                        </xsl:when>
                        <xsl:otherwise>
                           <xsl:if test="count(itemincart[flag_postpone=0]) &gt; 0">
                              <xsl:apply-templates select="itemincart[flag_postpone=0]"/>
                              <tr>
                              <td><span>Итого</span></td>
                              </tr>
                              <tr>
                              <td><p align="right"><xsl:value-of select="totalsum"/>&#xA0;<xsl:value-of disable-output-escaping="yes" select="shop/shop_currency/shop_currency_name"/></p></td>
                              </tr>
                              <tr>
                                 <td class="check_rasp">&#xA0;</td>
                              </tr>
                           </xsl:if>
                        </xsl:otherwise>
                     </xsl:choose>
                  </xsl:otherwise>
               </xsl:choose>
            </table>
            
            <a href="{/cart/shop/path}cart/"><img src="/templates/template1/images/order_make.gif" style="margin:0 0 0 6px;" border="0" /></a>
            <a href="{/cart/shop/path}cart/"><img src="" style="" border="0" /></a>
            <p class="check_bot"><img src="/templates/template1/images/chek_bot.gif" /></p>
         </form>
      </div>
   </xsl:template>
   
   <!-- Склонение после числительных -->
   <xsl:template name="declension">
      
      <xsl:param name="number" select="number"/>
      
      <!-- Именительный падеж -->
      <xsl:variable name="nominative">
         <xsl:text>товар</xsl:text>
      </xsl:variable>
      
      <!-- Родительный падеж, единственное число -->
      <xsl:variable name="genitive_singular">
         <xsl:text>товара</xsl:text>
      </xsl:variable>
      
      
      <xsl:variable name="genitive_plural">
         <xsl:text>товаров</xsl:text>
      </xsl:variable>
      
      <xsl:variable name="last_digit">
         <xsl:value-of select="$number mod 10"/>
      </xsl:variable>
      
      <xsl:variable name="last_two_digits">
         <xsl:value-of select="$number mod 100"/>
      </xsl:variable>
      
      <xsl:choose>
         <xsl:when test="$last_digit = 1 and $last_two_digits != 11">
            <xsl:value-of select="$nominative"/>
         </xsl:when>
         <xsl:when test="$last_digit = 2 and $last_two_digits != 12     or     $last_digit = 3 and $last_two_digits != 13     or     $last_digit = 4 and $last_two_digits != 14">
            <xsl:value-of select="$genitive_singular"/>
         </xsl:when>
         <xsl:otherwise>
            <xsl:value-of select="$genitive_plural"/>
         </xsl:otherwise>
      </xsl:choose>
   </xsl:template>
   
   <!-- Шаблон для товара в корзине -->
   <xsl:template match="itemincart">
      <tr>
      <td><p><a href="?action=delete_item&amp;item_id={item/@id}">(x)</a>&#xA0;<xsl:value-of disable-output-escaping="yes" select="item/name"/>&#xA0;<xsl:value-of disable-output-escaping="yes" select="quantity"/>&#xA0;</p>
         <p align="right"><xsl:value-of disable-output-escaping="yes" select="item/price * quantity"/>&#xA0;<xsl:value-of disable-output-escaping="yes" select="item/currency"/></p></td>
      </tr>
      
   <!--<td align="center"><a href="?action=delete_item&amp;item_id={item/@id}" title="Удалить товар из корзины" alt="Удалить товар из корзины"><img src="/hostcmsfiles/images/delete.gif" /></a></td>-->
   </xsl:template>
   
</xsl:stylesheet>
http://www.colibre.ru - Создание и продвижение сайтов
#
Re: вывод в корзине группы товара и родителя модификации
libertine, это код XSL-шаблона, а не XML-код. Стандартно в XML-коде для корзины информация о группах, к котором относится товар, не содержится. Поэтому на данный момент реализовать требуемый вам функционал вряд ли получится. Мы можем рассмотреть вопрос о добавлении возможности попадания информации о группах в XML корзины.
#
Re: вывод в корзине группы товара и родителя модификации
понятно, было бы хорошо. Но в общем-то меня бы устроила и просто возможность вызвать корзину для конкретной группы. Мне просто нужно реализовать такую структуру:
Группа1
   Товар группы1
   Товар группы1
Группа2
   Товар группы2
Можно ли как-то вызывать корзину для определенной группы? Тогда бы можно было просо вызвать несколько раз разные группы...
http://www.colibre.ru - Создание и продвижение сайтов
#
Re: вывод в корзине группы товара и родителя модификации
libertine, передать в метод показа корзины идентификатор определенной группы нельзя. Мы добавили в метод ShowCart возможность передавать параметр для генерации XML-кода групп при показе корзины: $param['xml_show_group_type'] - тип генерации XML для групп, может принимать значения (по умолчанию 'none':
all - все группы всех уровней;
current - группы только текущего уровня;
tree - группы, находящиеся выше по дереву;
none - не выбирать группы.
Вы можете обновить shop.class.php для использования этой возможности. Запросить файл можно в поддержке.  
После этого при передаче в метод ShowCart параметра $param['xml_show_group_type'] = 'all';
сгруппировать товары в корзине можно будет в XSL-шаблоне.
#
Re: вывод в корзине группы товара и родителя модификации
Спасибо!!!!
http://www.colibre.ru - Создание и продвижение сайтов
Авторизация