skip to content
KAD::Wiki
User Tools
Log In
Site Tools
Search
Tools
Show page
Old revisions
Log In
>
You are here:
Приветствие
»
market
»
komplekt_tovarov_dlja_programmista
market:komplekt_tovarov_dlja_programmista
====== Комплект товаров ====== На странице товара вместе с основным товаром покупателю предлагается купить дополнительные товары и услуги. Такие товары можно добавить к основному установив флажок. При этом происходит пересчет основной цены. При нажатии на кнопку добавления товара в корзину, в корзину попадают сразу все выбранные товары. ===== Инструкции ===== 1. Если на сайте не использованы сопутствующие товары, то используем их для комплекта. Если уже использованы, то для комплекта создаем доп. свойство типа товар.\\ 2. Далее в XSL шаблон МагазинТовар добавляем подшаблон для вывода комплекта. <!-- Шаблон для комплекта товаров --> <xsl:template match="associated/shop_item"> <label> <xsl:choose> <xsl:when test="property_value[tag_name='radio']/value = 1"> <input type="radio" price="{price}" name="item_radio" item_id="{@id}" value="{@id}" class="associated{../../@id} associated"><xsl:if test="property_value[tag_name='default']/value = 1"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if></input> </xsl:when> <xsl:otherwise> <xsl:if test="position() != last()"><xsl:attribute name="class">hr</xsl:attribute></xsl:if> <input type="checkbox" price="{price}" item_id="{@id}" name="item_{@id}" value="{@id}" class="associated{../../@id} associated"><xsl:if test="property_value[tag_name='default']/value = 1"><xsl:attribute name="checked">checked</xsl:attribute></xsl:if></input> </xsl:otherwise> </xsl:choose> </label> </xsl:template> 3. В подшаблон shop_item добавляем там, где нужно вывести комплект: <xsl:if test="count(associated/shop_item) > 0"> <div class="associated-block"> <xsl:apply-templates select="associated/shop_item"><xsl:sort select="sorting" data-type="number"/></xsl:apply-templates> <span class="hr"></span> </div> </xsl:if> 4. Подгоняем вывод под текущий сайт. Блоку с текущей ценой задаем ''id="mainprice"'', а также атрибут ''data-price="{format-number(price, '#####0', 'my')}"'' 5. Обработчик добавления в корзину заменяем с $.addIntoCart на $.kaddIntoCart 6. В ТДС корзины после кода // Добавление товара в корзину if (Core_Array::getRequest('add')) { $shop_item_id = intval(Core_Array::getRequest('add')); if ($shop_item_id) { $oShop_Cart_Controller = Shop_Cart_Controller::instance(); $oShop_Cart_Controller ->shop_item_id($shop_item_id) ->quantity(Core_Array::getRequest('count', 1)) ->add(); } добавляем $aAssoc = Core_Array::getRequest('addassoc'); if (count($aAssoc)) { foreach($aAssoc as $assoc) { $oShop_Cart_Controller = Shop_Cart_Controller::instance(); $oShop_Cart_Controller ->shop_item_id($assoc) ->quantity(1) ->add(); } } 7. Добавляем товарам доп. свойства. Эти свойства нужны для управления комплектом.\\ 7.1. "Радиокнопка" с tag_name='radio'\\ 7.2. "По умолчанию" с tag_name='default' 8. Тестируем и отдаем на проверку.
market/komplekt_tovarov_dlja_programmista.1430906749.txt.gz
· Last modified: 26.06.15 в 14:55 (external edit)
Page Tools
Show page
Old revisions
Export to PDF
Rename Page
Back to top