User Tools

Site Tools


market:komplekt_tovarov

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
market:komplekt_tovarov [07.05.15 в 16:56]
Артем Куц [Инструкции]
— (current)
Line 1: Line 1:
-====== Комплект товаров ====== 
  
-На странице товара вместе с основным товаром покупателю предлагается купить дополнительные товары и услуги. Такие товары можно добавить к основному установив флажок. При этом происходит пересчет основной цены. При нажатии на кнопку добавления товара в корзину,​ в корзину попадают сразу все выбранные товары. 
- 
-===== Инструкции ===== 
-1. Если на сайте не использованы сопутствующие товары,​ то используем их для комплекта. Если уже использованы,​ то для комплекта создаем доп. свойство типа товар.\\ 
-2. Далее в XSL шаблон МагазинТовар добавляем подшаблон для вывода комплекта. ​ 
-<code xml> 
- <!-- Шаблон для комплекта товаров --> 
- <​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>​ 
-</​code>​ 
-3. В подшаблон shop_item добавляем там, где нужно вывести комплект: ​ 
-<code xml> 
- <xsl:if test="​count(associated/​shop_item) &gt; 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>​ 
-</​code>​ 
-4. Подгоняем вывод под текущий сайт. Блоку с текущей ценой задаем ''​id="​mainprice"'',​ а также атрибут ''​data-price="​{format-number(price,​ '#####​0',​ '​my'​)}"''​ 
-5. Обработчик добавления в корзину заменяем с $.addIntoCart на $.kaddIntoCart 
-6. В ТДС корзины после кода ​ 
-<code php> 
- // Добавление товара в корзину 
- 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();​ 
- } 
-</​code>​ 
- ​добавляем  
-<code php> 
- $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();​ 
- } 
- } 
-</​code>​ 
-7. Добавляем товарам доп. свойства. Эти свойства нужны для управления комплектом.\\ 
-  * "​Радиокнопка"​ с tag_name='​radio'​ 
-  * "По умолчанию"​ с tag_name='​default'​ 
-8. Тестируем и отдаем на проверку. 
market/komplekt_tovarov.1431006989.txt.gz · Last modified: 26.06.15 в 14:55 (external edit)