This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
market:komplekt_tovarov_dlja_programmista [06.05.15 в 12:59] Артем Куц |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Комплект товаров ====== | ||
- | На странице товара вместе с основным товаром покупателю предлагается купить дополнительные товары и услуги. Такие товары можно добавить к основному установив флажок. При этом происходит пересчет основной цены. При нажатии на кнопку добавления товара в корзину, в корзину попадают сразу все выбранные товары. | ||
- | |||
- | ===== Инструкции ===== | ||
- | - Если на сайте не использованы сопутствующие товары, то используем их для комплекта. Если уже использованы, то для комплекта создаем доп. свойство типа товар. | ||
- | - Далее в 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>'' | ||
- | - В подшаблон 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>'' | ||
- | - Подгоняем вывод под текущий сайт. Блоку с текущей ценой задаем ''id="mainprice"'', а также атрибут ''data-price="{format-number(price, '#####0', 'my')}"'' | ||
- | - Обработчик добавления в корзину заменяем с $.addIntoCart на $.kaddIntoCart | ||
- | - Добавляем товарам доп. свойства. Эти свойства нужны для управления комплектом. | ||
- | * "Радиокнопка" с tag_name='radio' | ||
- | * "По умолчанию" с tag_name='default' |