Последние темы


передать значение доп поля в корзину

  • Добрый день есть сайт где при заказе нужно указывать размер.
    Это доп поле!
    0_1498744122933_Снимок.PNG

    В карточке товара выводится вот так:

    	<div class="tovar_desc_filt">Размер доски: <span>[[*size:replace=`[[+id]]==[[*id]]`]]</span></div>
    
    

    0_1498744184433_Снимок2.PNG

    Собственно вопрос как передать выбранное значение в корзину?
    На фото видно что добавлен один и тот же товар на в кол-ве 2 шт, но по факту я добавлял кайт с размеров 70 и кайт с размером 90, т.е. два разных хтовара
    0_1498744251967_Снимок3.PNG

    Может кто подсказать?

  • Покажите полностью код формы добавления товара.

  • @Andchir

    в смысле шаблон карточки товара?

    <!doctype html>
    <html lang="ru-RU" class="no-js">
    [[$inc_head]]
    <body>
    [[$inc_header]]	
    <div class="superbase">
    [[pdoCrumbs?
    	&tplWrapper=`@INLINE <div class="breadcrumbs">[[+output]]</div>`
    	&tpl=`@INLINE <a href="[[+link]]">[[+menutitle]]</a>`
    	&outputSeparator=`<span> / </span>`
    	&tplCurrent=`@INLINE [[+menutitle]]`
    	&tplHome=`@INLINE <a href="/">Главная</a>`
    	&showHome=`1`
    ]]
    	<section class="im-block im_text im_tovar">
    		<div class="wrap">
    			<div class="im-container"  id="catalog">
    				<div class="tovar_block shk-item  [[*bestseller:eq=`1`:then=`bonus_hit`:else=``]]  [[*discount:eq=`1`:then=`bonus_discount`:else=``]]">
    					<div class="im_cell im_left">
    						<div class="tovar_images">
    							<div class="img">
    								 [[getImageList?
                                        &tvname=`gallery`
                                        &tpl=`thumbTpl_big_img`
                                        &limit=`1`
                                        &docid=`[[*id]]`
                                        ]]
    								<div class="bonus"></div>
    								<div class="cleaner">&nbsp;</div>
    							</div>
    							<div class="images">
    							    [[getImageList?
                                        &tvname=`gallery`
                                        &tpl=`thumbTpl_small_img`
                                        &limit=`5`
                                        &docid=`[[*id]]`
                                        ]]
    							</div>
    							<div class="cleaner">&nbsp;</div>
    						</div>	
    					</div>
    					<div class="im_cell im_right">
    						<div class="tovar_prime">
    							<div class="tovar_name">[[*longtitle:default=`[[*pagetitle]]`]]</div>
    							<div class="tovar_artic">Артикул: <span>[[*article]]</span></div>
    						</div>
    						<div class="tovar_descrip">
    							<div class="tovar_desc_filt">Производитель: <span>[[*fabricator]]</span></div>
    							<div class="tovar_desc_filt">Год: <span>[[*year]]</span></div>
    							<div class="tovar_desc_filt">Сезон: <span>[[*season]]</span></div>
    							<div class="tovar_desc_filt">Коллекция: <span>[[*collection]]</span></div>
    							<div class="tovar_desc_filt">Вес райдера: <span>[[*weight_all]]</span></div>
    							<div class="tovar_desc_filt">Назначение: <span>[[*function]]</span></div>
    							<div class="tovar_desc_filt">Система крепления: <span>[[*system]]</span></div>
    							<div class="tovar_desc_filt">Пол: <span>[[*sex]]</span></div>
    							<div class="tovar_desc_filt">Размер доски: <span>[[*size:replace=`[[+id]]==[[*id]]`]]</span></div>
    							
    						
    							<!--	<div class="tovar_desc_size">
    								<div class="tovar_desc_size_tit">Размер доски:</div>
    
    								<div class="tab_size">
    									<input id="tab_size1" type="radio" name="tab_size" checked>
    									<label for="tab_size1" title="Вкладка 1">147</label>
    								</div>
    								<div class="tab_size">
    									<input id="tab_size2" type="radio" name="tab_size">
    									<label for="tab_size2" title="Вкладка 2">178</label>
    								</div>
    								<div class="tab_size">
    									<input id="tab_size3" type="radio" name="tab_size">
    									<label for="tab_size3" title="Вкладка 3">232</label>
    								</div>
    							
    								<div class="cleaner">&nbsp;</div>
    							</div>	-->
    						</div>
        					<form action="[[~[[*id]]? &scheme=`abs`]]" method="post">
                                <input type="hidden" name="shk-id" value="[[*id]]" />
                                <input type="hidden" name="shk-name" value="[[*pagetitle]]" />
                                <input type="hidden" name="shk-top_tovar" value="[[*top_tovar]]" />
            					<div class="tovar_prices">
                					<div class="price_prime"><span>[[*price]]</span> руб.</div>
                					<div class="price_old">[[*old_price]] руб.</div>
                					<div class="btn_wrap"><button type="submit" class="btn shk-but">купить</button></div>
                					<div class="cleaner">&nbsp;</div>
            					</div>
            				</form>
    					</div>
    					<div class="cleaner">&nbsp;</div>
    				</div>	
    				<div class="cleaner">&nbsp;</div>
    				<div class="tabs">
    					<input id="tab1" type="radio" name="tabs" checked>
    					<label for="tab1" title="Вкладка 1">Описание</label>
    					<input id="tab2" type="radio" name="tabs">
    					<label for="tab2" title="Вкладка 2">Отзывы</label>
    					<input id="tab3" type="radio" name="tabs">
    					<label for="tab3" title="Вкладка 3">Бонусы</label>
    				 <div class="cleaner">&nbsp;</div>
    
    					<section id="content-tab1">
    						<div class="content_tab content_tab_desc">
    						    [[*content]]
    						</div>
    					</section>  
    					<section id="content-tab2">
    						<div class="content_tab content_tab_review">
    							<div class="reviews">
    								<h1>Отзывы о товаре</h1>
    								<div class="btn_wrap"><a href="#" class="btn btn_reviews order_btn submit upper trigger_review">написать отзыв</a></div>
    								<div class="cleaner">&nbsp;</div>
    							</div> 
    							<div class="reviews">
    							    
    							    
    							    [[!modxTalks?]]
    							    <!--
    								<div class="review">
    									<div class="review_cell">
    										<div class="reviewer_name">Александр С.</div> 
    										<div class="review_date">22.06.2017</div>
    									</div>
    									<div class="review_cell">Если Вы ищете 100% свободу на воде, то вейкборд Response в один счет приведет Ваши поиски к логическому завершению. Легендарная форма, которая была в линейке Slingshot с момента основания, непрерывный рокер и эллиптический конкейв, благодаря которым резать линии по воде станет Вашим любимым занятием. В дни больших вылетов и градусных трюков Response проявит всю свою магию за счет средней жесткости, гибкого деревянного сердечника Atomic Core</div>
    									<div class="cleaner">&nbsp;</div>
    								</div>
    								<div class="review">
    									<div class="review_cell">
    										<div class="reviewer_name">Александр С.</div> 
    										<div class="review_date">22.06.2017</div>
    									</div>
    									<div class="review_cell">Если Вы ищете 100% свободу на воде, то вейкборд Response в один счет приведет Ваши поиски к логическому завершению. Легендарная форма, которая была в линейке Slingshot с момента основания, непрерывный рокер и эллиптический конкейв, благодаря которым резать линии по воде станет Вашим любимым занятием. В дни больших вылетов и градусных трюков Response проявит всю свою магию за счет средней жесткости, гибкого деревянного сердечника Atomic Core</div>
    									 <div class="cleaner">&nbsp;</div>
    								</div>
    								<div class="review">
    									<div class="review_cell">
    										<div class="reviewer_name">Александр С.</div> 
    										<div class="review_date">22.06.2017</div>
    									</div>
    									<div class="review_cell">Если Вы ищете 100% свободу на воде, то вейкборд Response в один счет приведет Ваши поиски к логическому завершению. Легендарная форма, которая была в линейке Slingshot с момента основания, непрерывный рокер и эллиптический конкейв, благодаря которым резать линии по воде станет Вашим любимым занятием. В дни больших вылетов и градусных трюков Response проявит всю свою магию за счет средней жесткости, гибкого деревянного сердечника Atomic Core</div>
    									<div class="cleaner">&nbsp;</div>
    								</div>
    								-->
    								
    							</div>
    						</div>
    					</section> 
    					<section id="content-tab3">
    						<div class="content_tab content_tab_bonus">
    							<h1>Бонусы</h1>
    							<ul class="goods">
    							    [[getProducts?
                                    	&tpl=`tovar`
                                    	&resources=`[[*bonus_tovars]]`
                                    	&limit=`8`
                                    ]]
    							</ul>
    							<div class="cleaner">&nbsp;</div>
    						</div>
    					</section> 
    					
    				</div>
    				
    				
    				
    			</div>
    			
    			
    			
    			
    			
    		</div><!-- /.wrap -->
    		<div class="cleaner">&nbsp;</div>
    	</section>
    	
    </div>
    
    <section class="im-smilar">
    	<div class="wrap">
    		<h1>Похожие товары</h1>
    				<ul class="goods">
    				     [[getProducts?
                            &tpl=`tovar_show_more`
                            &resources=`[[*alike_tovars]]`
                        	&limit=`8`
                         ]]
    				</ul>
    				<div class="cleaner">&nbsp;</div>
    	</div>
    </section>
    
    
        [[$inc_footer]]
        [[$inc_modals]]
        [[$inc_scripts]]
        
    </body>
    </html>
    
  • @griale
    в вот код корзины

    <div class="order_product">
    	<div class="img">
    	    [[getImageList?
                &tvname=`gallery`
                &tpl=`thumbTpl`
                &limit=`1`
                &docid=`[[+id]]`
            ]]
    	</div>
    	<div class="desc">
    		<div class="name"><a href="[[~[[+id]]? &scheme=`abs`]]">[[+name]]</a>[[+addit_data]]</div>
    	<div class="artic">Артикул: <span>[[*article]]</span></div>
    
    	
    	</div>
    	<div class="kolvo">
    	    <input class="shk-count input_kolvo" type="text" size="2" name="count[]" maxlength="3" title="изменить количество" value="[[+count]]" />
    	</div>
    	<div class="price">[[+price]] <span>руб.</span></div>
    	<div class="close">
    	    <a href="[[+url_del_item]]" title="Удалить" class="shk-del"></a>
    	</div>
    </div>
    
    
    
 

Последние комментарии

  • Y

    В чем может быть проблема?

    Читать далее
  • Y

    Big и Small Images могут быть от 1 до 10, Summary иногда имеет внутри текст и выглядит так:

    <Summary> <item>текст</item> </Summary>

    Читать далее
  • Y

    Не импортируются товары из Xml, вместо них выводит такие ошибки:

    Invalid argument supplied for foreach()
    SimpleXMLElement::xpath(): Invalid expression
    PHP warning: SimpleXMLElement::xpath(): xmlXPathEval: evaluation failed
    PHP warning: current() expects parameter 1 to be array, boolean given

    Вот как выглядит строка товара xml:
    <root>

    <Big_Images> <Big_Images0>url to img</Big_Images0> <Big_Images1>url to img</Big_Images0> </Big_Images> <Small_Images> <Small_Images0>url to img</Small_Images0> <Small_Images1>url to img</Small_Images1> </Small_Images> <Title>рандомное имя</Title> <Summary/> <Price>7.43</Price> <Main_Info><item>много html кода</item></Main_Info> </root>

    И вот сам php файл для импорта:

    <?php //разбивка по столбцам при импорте и экспорте (content|tv|category) //$cf_config['content_row'] = array( //array('Title',array('pagetitle','content')), //array('Title',array(43,'tv')), //array('Big_Images',array(44,'tv')), //array('Price',array(45,'tv')) //); //значения по умолчанию при импорте или проверка при экспорте $cf_config['imp_content_default'] = array( 'content' => array( 'deleted' => 0, 'published' => 1, 'description' => '', 'show_in_tree' => 0, 'class_key' => 'msProduct', 'template' => 8 // ID шаблона товара //'createdon' => strtotime("now") //'publishedon' => strtotime("now") //'pub_date' => strtotime("now") //'editedby' => 1 //'editedon' => strtotime("now") ), 'tv' => array( //7 => 0 ) ); //первая строка - названия полей $cf_config['include_captions'] = false; //число товаров импортируемых за один раз (загрузка по группам). 0 - не ограничивать. $cf_config['batch_import'] = 0; //разбивать по категориям $cf_config['include_categories'] = false; //удалять дочерние категории при очистке и обновлении каталога $cf_config['delete_subcategories'] = true; //по какому полю проверять соответствие товара при обновлении. false - не проверять (очистка категории при обновлении). $cf_config['imp_chk_field'] = 'pagetitle'; //проверять соответствие товара при обновлении по значению TV. Указать ID TV. false - не проверять (очистка категории при обновлении). $cf_config['imp_chk_tvid_val'] = false; //Добавлять товары, которые не найдены при обновлении по TV (imp_chk_tvid_val) или полю (imp_chk_field) $cf_config['imp_if_not_exist'] = false; //удалять HTML-теги при экспорте $cf_config['exp_strip_tags'] = false; //автоматически генерировать псевдоним (alias) при импорте //false - выключено; true - генерировать с переводом в транслит; 'notranslit' - генерировать без перевода в транслит. $cf_config['imp_autoalias'] = false; //Изменить значения поля для всех вложенных товаров до начала импорта. //Например можно отменить публикацию для всех товаров и публиковать только те, которые есть в новом прайс-листе. //первый массив - какие поля и на какие значения менять, второй массив - условия которые нужно проверять (можно сделать пустым) $cf_config['imp_before_change'] = false;//'[{"tv.inventory":0},{}]';//'[{"published":0},{"tv.pricename":"Поставщик1"}]';//false - для отмены //удалить файл после экспорта (скачивания) $cf_config['exp_delete_file'] = false; //кодировка CSV-файла при экспорте $cf_config['exp_csv_charset'] = 'UTF-8'; //'windows-1251' //Импортировать (обновлять) пустые значения $cf_config['imp_empty'] = true; //Имя файла процессора, который использовать для импорта. Если пусто, используется стандартный процессор "import". $cf_config['imp_custom_processor'] = ''; //путь (xpath) в XML структуре до товаров $cf_config['imp_xml_itemsparent_path'] = '';//'/catalog/shop/offers'; //Структура XML файла для импорта $cf_config['imp_xml_structure'] = <<<EOF <root> <Big_Images> <Big_Images0>tv44</Big_Images0> <Big_Images1>tv48</Big_Images1> <Big_Images2>tv49</Big_Images2> <Big_Images3>tv50</Big_Images3> <Big_Images4>tv51</Big_Images4> <Big_Images5>tv52</Big_Images5> <Big_Images6>tv53</Big_Images6> <Big_Images7>tv54</Big_Images7> <Big_Images8>tv55</Big_Images8> <Big_Images9>tv56</Big_Images9> </Big_Images> <Small_Images> <Small_Images0>tv47</Small_Images0> <Small_Images1>tv58</Small_Images1> <Small_Images2>tv59</Small_Images2> <Small_Images3>tv60</Small_Images3> <Small_Images4>tv61</Small_Images4> <Small_Images5>tv62</Small_Images5> <Small_Images6>tv63</Small_Images6> <Small_Images7>tv64</Small_Images7> <Small_Images8>tv65</Small_Images8> <Small_Images9>tv66</Small_Images9> </Small_Images> <Title>pagetitle</Title> <Summary> <item>tv57</item> </Summary> <Price>tv45</Price> <Main_Info> <item>tv46</item> </Main_Info> </root> EOF; //тестирование конфигурации (без записи в БД). Отчёты -> Журнал ошибок. $cf_config['imp_testmode'] = false; //функция для фильтрации значений при ИМПОРТЕ function filter_import($value_arr){ $output_arr = $value_arr; /* if(isset($output_arr['content']['pagetitle'])) $output_arr['content']['pagetitle'] = mb_strtoupper($output_arr['content']['pagetitle'], 'UTF-8'); */ return $output_arr; } //функция для фильтрации значений при ЭКСПОРТЕ function filter_export($value_arr,$doc_id=0){ $output_arr = $value_arr; //var_dump($value_arr,$output_arr); //exit; /* if(isset($output_arr['price'])) $output_arr[1] = floatval($output_arr[1]) - 200; */ return $output_arr; } ?>

    Читать далее
  • Начать нужно с документации. Потом открыть файл конфигурации. Потом можно на форуме почитать темы, связанные с CatalogFill.

    Читать далее