Перейти к содержимому


Несколько Вопросов По Модификациям И Взаимодействия Их С Картинками.


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 14

#1 Anar

Anar

    Пользователь

  • Пользователи
  • PipPip
  • 40 сообщений

Отправлено 06 Август 2012 - 01:00

Первый вопрос. Как сделать товар без модификаций? Есть у меня чехол, ну нету у него ни размера, ни цветов, ничего, что можно было бы выбрать... И всё-равно у товара обязательно должна быть модификация, удалить которую нельзя, система говорит, что "Нельзя удалять последнюю модификацию товара". Как с этим быть, есть ли выход? Можно ли хотя бы сделать так, что бы  у такого товара на странице ничего не отображалось?
Может условием if можно как-то исковеркнуться? Задать условие <<если "название модификации = 123", то "style="display:none", иначе...>> и далее то, что там по коду идёт. Не? Просто не так давно сижу за сторлендом и чёт всё времени нет сесть и разобраться во всех этих блоках...

Второй вопрос. Можно ли сделать так, что бы в зависимости от выбранной модификации изменялась/ся картинка/набор картинок? Например если выбран товар чёрного цвета, то отображаться будет соответствующая картинка (было бы просто чудесно, если можно отображать отдельную галерею картинок).

#2 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 06 Август 2012 - 23:34

Цитата

Первый вопрос. Как сделать товар без модификаций? Есть у меня чехол, ну нету у него ни размера, ни цветов, ничего, что можно было бы выбрать... И всё-равно у товара обязательно должна быть модификация, удалить которую нельзя, система говорит, что "Нельзя удалять последнюю модификацию товара". Как с этим быть, есть ли выход? Можно ли хотя бы сделать так, что бы у такого товара на странице ничего не отображалось?
Может условием if можно как-то исковеркнуться? Задать условие <<если "название модификации = 123", то "style="display:none", иначе...>> и далее то, что там по коду идёт. Не? Просто не так давно сижу за сторлендом и чёт всё времени нет сесть и разобраться во всех этих блоках...

Это можно сделать, и необходимо задать именно условие. В шаблоне "Товар" есть блок

<table>
						<tr>
						{% FOR goods_modifications_properties %}
						  <td class="goodsDataMainModificationsBlockProperty">
							<!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь -->
							{% FOR values %}
  
								<!-- Если это первый элемент в списке -->
								{% IF goods_modifications_properties.values.first %}
								  <strong>{goods_modifications_properties.NAME}:</strong><br />
								  <select name="form[properties][]">
								{% ENDIF %}
		  
								  <option value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}selected="selected"{% ENDIF %}>{goods_modifications_properties.values.NAME}</option>
		  
								<!-- Если это последний элемент в списке -->
								{% IF goods_modifications_properties.values.last %}
								  </select>
								{% ENDIF %}
							{% ENDFOR %}
						  </td>
						  {goods_modifications_properties.index | is_divided("2","</tr><tr>","")}
						{% ENDFOR %}
					  </tr>
					</table>

получиться

<table>
						<tr>
						{% FOR goods_modifications_properties %}
						  <td class="goodsDataMainModificationsBlockProperty">
							<!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь -->
							{% FOR values %}
							   {%IFNOT goods_modifications_properties.values.NAME=123%}
								<!-- Если это первый элемент в списке -->
								{% IF goods_modifications_properties.values.first %}
								  <strong>{goods_modifications_properties.NAME}:</strong><br />
								  <select name="form[properties][]">
								{% ENDIF %}
		  
								  <option value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}selected="selected"{% ENDIF %}>{goods_modifications_properties.values.NAME}</option>
		  
								<!-- Если это последний элемент в списке -->
								{% IF goods_modifications_properties.values.last %}
								  </select>
								{% ENDIF %}
							  {% ENDIF %}
							{% ENDFOR %}
						  </td>
						  {goods_modifications_properties.index | is_divided("2","</tr><tr>","")}
						{% ENDFOR %}
					  </tr>
					</table>

т.е мы задали условие
{%IFNOT goods_modifications_properties.values.NAME=123%}

Цитата

Второй вопрос. Можно ли сделать так, что бы в зависимости от выбранной модификации изменялась/ся картинка/набор картинок? Например если выбран товар чёрного цвета, то отображаться будет соответствующая картинка (было бы просто чудесно, если можно отображать отдельную галерею картинок).

Это можно сделать, если разместить изображения в описании к модификации. Это делается в разделе "Товары", выдираете необходимый товар, далее в модификациях "Добавить описание"

#3 Anar

Anar

    Пользователь

  • Пользователи
  • PipPip
  • 40 сообщений

Отправлено 16 Сентябрь 2012 - 01:59

Просмотр сообщенияVaccina (06 Август 2012 - 23:34) писал:

Это можно сделать, и необходимо задать именно условие. В шаблоне "Товар" есть блок

<table>
						<tr>
						{% FOR goods_modifications_properties %}
						  <td class="goodsDataMainModificationsBlockProperty">
							<!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь -->
							{% FOR values %}
  
								<!-- Если это первый элемент в списке -->
								{% IF goods_modifications_properties.values.first %}
								  <strong>{goods_modifications_properties.NAME}:</strong><br />
								  <select name="form[properties][]">
								{% ENDIF %}
		  
								  <option value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}selected="selected"{% ENDIF %}>{goods_modifications_properties.values.NAME}</option>
		  
								<!-- Если это последний элемент в списке -->
								{% IF goods_modifications_properties.values.last %}
								  </select>
								{% ENDIF %}
							{% ENDFOR %}
						  </td>
						  {goods_modifications_properties.index | is_divided("2","</tr><tr>","")}
						{% ENDFOR %}
					  </tr>
					</table>

получиться

<table>
						<tr>
						{% FOR goods_modifications_properties %}
						  <td class="goodsDataMainModificationsBlockProperty">
							<!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь -->
							{% FOR values %}
							   {%IFNOT goods_modifications_properties.values.NAME=123%}
								<!-- Если это первый элемент в списке -->
								{% IF goods_modifications_properties.values.first %}
								  <strong>{goods_modifications_properties.NAME}:</strong><br />
								  <select name="form[properties][]">
								{% ENDIF %}
		  
								  <option value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}selected="selected"{% ENDIF %}>{goods_modifications_properties.values.NAME}</option>
		  
								<!-- Если это последний элемент в списке -->
								{% IF goods_modifications_properties.values.last %}
								  </select>
								{% ENDIF %}
							  {% ENDIF %}
							{% ENDFOR %}
						  </td>
						  {goods_modifications_properties.index | is_divided("2","</tr><tr>","")}
						{% ENDFOR %}
					  </tr>
					</table>

т.е мы задали условие
{%IFNOT goods_modifications_properties.values.NAME=123%}


К сожалению могу констатировать, что не работает. Если задать условие, что если значение модификации!=123, то всё показывать, иначе нет.
Шаблон пластик, попытался сделать чуть проще (как Вы предложили я тоже потом попытался сделать) и написать так:
 <!-- Модификации товара -->
	  <div class="block" {% IFNOT goods_modifications_properties.NAME=modif %}{% ELSE %}style="display:none;"{% ENDIF %}>
Не работает... Ни в какую, как не извернись с этими названиями. Зато, когда пишу так:
 <!-- Модификации товара -->
	  <div class="block" {% IFNOT PAGE_TITLE=test %}{% ELSE %}style="display:none;"{% ENDIF %}>
Работает... Получается для условия использовать имя значения модификации не получиться? Или что-то я не так делаю? Может из-за того что 3 часа ночи, но как это обойти, кроме как на каждую страницу без модификации задавать условие имя!="..." я не вижу...


Ещё такой вопрос. Картинку в описании я сделал. Сделал эту картинку ссылкой на саму себя большую. Как мне теперь сделать, что бы она открывалась не просто в новом окне, а как основное фото? Т.е. через скрипт в слое на этой же странице. rel="gallery" в <a> ни какого результата не даёт.

#4 Anar

Anar

    Пользователь

  • Пользователи
  • PipPip
  • 40 сообщений

Отправлено 16 Сентябрь 2012 - 02:21

Дополню по последнему предложению. При первом заходе на страницу, когда висит описания модификации по умолчанию, rel="gallery" работает, т.е. если просто зайти на страницу товара и нажать, то срабатывает скрипт, но когда переключаешь на другую модификацию, то там уже скрипт не работает, хотя rel="gallery" так же присутствует. Пример

#5 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 17 Сентябрь 2012 - 10:58

Попробуйте так

<table>
						<tr>
						{% FOR goods_modifications_properties %}
						  <td class="goodsDataMainModificationsBlockProperty">
							<!-- Выдаем списки со свойствами для модификаций, чтобы определить какую модификацию товара хочет пользователь -->
							{% FOR values %}
							   {%IFNOT goods_modifications_properties.NAME=123%}
								<!-- Если это первый элемент в списке -->
								{% IF goods_modifications_properties.values.first %}
								  <strong>{goods_modifications_properties.NAME}:</strong><br />
								  <select name="form[properties][]">
								{% ENDIF %}
		  
								  <option value="{goods_modifications_properties.values.ID}" {% IF goods_modifications_properties.values.SELECTED %}selected="selected"{% ENDIF %}>{goods_modifications_properties.values.NAME}</option>
		  
								<!-- Если это последний элемент в списке -->
								{% IF goods_modifications_properties.values.last %}
								  </select>
								{% ENDIF %}
							  {% ENDIF %}
							{% ENDFOR %}
						  </td>
						  {goods_modifications_properties.index | is_divided("2","</tr><tr>","")}
						{% ENDFOR %}
					  </tr>
					</table>

2) Попробуйте в main.js найти

goodsDataProperties.each(function(y){
	$(this).change(function(){

и заменить на

goodsDataProperties.each(function(y){
	$(this).change(function(){
		$('a[rel="gallery"]').fancybox();


#6 Anar

Anar

    Пользователь

  • Пользователи
  • PipPip
  • 40 сообщений

Отправлено 18 Сентябрь 2012 - 00:01

Хорошо, первое я сделал. И понял почему вчера не получилось... По ночам нужно спать :)

Просмотр сообщенияVaccina (17 Сентябрь 2012 - 10:58) писал:

2) Попробуйте в main.js найти

goodsDataProperties.each(function(y){
	$(this).change(function(){

и заменить на

goodsDataProperties.each(function(y){
	$(this).change(function(){
		$('a[rel="gallery"]').fancybox();

А это не помогает... Изменений ни каких.

#7 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 18 Сентябрь 2012 - 11:25

В данный момент этих изменений у вас нет. Возможно вы их убрали.

Попробуйте найти

} else {
		 // Отправим запись об ошибке на сервер
		 sendError('no modification by slug '+slug);
		 alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
	   }
	   
	   // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара. 
	   updateVisibility(y);
и заменить на

} else {
		 // Отправим запись об ошибке на сервер
		 sendError('no modification by slug '+slug);
		 alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
	   }
	   
	   // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара. 
	   updateVisibility(y);
	   $('a[rel="gallery"]').fancybox();


#8 Anar

Anar

    Пользователь

  • Пользователи
  • PipPip
  • 40 сообщений

Отправлено 18 Сентябрь 2012 - 12:49

Просмотр сообщенияVaccina (18 Сентябрь 2012 - 11:25) писал:

В данный момент этих изменений у вас нет. Возможно вы их убрали.

Попробуйте найти

} else {
		 // Отправим запись об ошибке на сервер
		 sendError('no modification by slug '+slug);
		 alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
	   }
	   
	   // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара. 
	   updateVisibility(y);
и заменить на

} else {
		 // Отправим запись об ошибке на сервер
		 sendError('no modification by slug '+slug);
		 alert('К сожалению сейчас не получается подобрать модификацию соответствующую выбранным параметрам.');
	   }
	   
	   // Обновляем возможность выбора другой модификации для текущих значений свойств модификации товара. 
	   updateVisibility(y);
	   $('a[rel="gallery"]').fancybox();

Если Вы про изменение кода, то да, я убираю всё лишнее сразу, дабы не разводить хаос в кодах :)

А вот это помогло. Спасибо большое!

#9 Dreifeld

Dreifeld

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 53 сообщений

Отправлено 09 Сентябрь 2013 - 12:21

Не могу понять как сделать так, чтобы модицикации товара

Товар имеет несколько модификаций, например:
- материал (первый, второй)
- размер (S, M, L)
- цвет (красный, черный, белый)
- рисунок (спереди, сзади)

Как мне сделать так, чтобы было 4 пункта, которые покупатель должен выбрать.
При этом, при выборе материала цена бы менялась, а при выборе остальных свойств цена не менялась.
Мне при вводе других модификаций (размер, цвет и пр.) все равно в ячейке цены нужно вводить цену (в противном случае будет стоять 0 руб.), но какую мне писать, если цен несколько и они зависят только от материала, а от других модификаций нет.
Я даже не знаю как объяснить, как то непонятно сказала....

Мне нужно чтобы только одно свойство товара влекло изменения в цене, а остальные были просто для выбора, но цены не меняли.

Если совсем не понятно, скажите, попробую по-другому объяснить )))

#10 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 10 Сентябрь 2013 - 03:41

Вам понадобиться создавать дубликаты модификаций с всеми свойствами. Например есть 2 модификации и 2 свойства в виде цвета - составим тот вариант что вам нужен, получиться

Хлопок (2 одинаковых модификации только с разными свойствами и одинаковой ценой)
   500р : Черный
   500р : Алый

Шелк (2 одинаковых модификации только с разными свойствами и одинаковой ценой)
   1000р : Черный
   1000р : Алый

В редакторе это будет выглядеть так mod.jpg

#11 Dreifeld

Dreifeld

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 53 сообщений

Отправлено 10 Сентябрь 2013 - 13:57

Просмотр сообщенияСake (10 Сентябрь 2013 - 03:41) писал:

Вам понадобиться создавать дубликаты модификаций с всеми свойствами. Например есть 2 модификации и 2 свойства в виде цвета - составим тот вариант что вам нужен, получиться

Хлопок (2 одинаковых модификации только с разными свойствами и одинаковой ценой)
   500р : Черный
   500р : Алый

Шелк (2 одинаковых модификации только с разными свойствами и одинаковой ценой)
   1000р : Черный
   1000р : Алый

В редакторе это будет выглядеть так Прикрепленный файл mod.jpg

Огромное Вам спасибо! Теперь все понятно. Только непонятно, почему нельзя сделать проще? Например, к 1 модификации - 4-5 свойств цвета. А сейчас можно к 1 модификации несколько свойств, но обязательно разных. Т.е. 2-3 свойства цвета к 1 модификации не поставишь.

#12 Dreifeld

Dreifeld

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 53 сообщений

Отправлено 10 Сентябрь 2013 - 14:04

А то вот сейчас так попробовала сделать, у меня к 1 товару получается 40 строк заполнять :unsure: Хотя всего 5 размеров, 6 цветов и еще 2 свойства
(расположение принта - спереди, сзади)...

#13 Надежда1986

Надежда1986

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 53 сообщений
  • ГородМосква

Отправлено 10 Сентябрь 2013 - 23:55

Здравствуйте подскажите доп.фото в товаре загружены,а на сайте в товаре не отражаются.Как исправить?

#14 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 11 Сентябрь 2013 - 02:06

Просмотр сообщенияDreifeld (10 Сентябрь 2013 - 14:04) писал:

Огромное Вам спасибо! Теперь все понятно. Только непонятно, почему нельзя сделать проще? Например, к 1 модификации - 4-5 свойств цвета. А сейчас можно к 1 модификации несколько свойств, но обязательно разных. Т.е. 2-3 свойства цвета к 1 модификации не поставишь.

А то вот сейчас так попробовала сделать, у меня к 1 товару получается 40 строк заполнять :unsure: Хотя всего 5 размеров, 6 цветов и еще 2 свойства
(расположение принта - спереди, сзади)...

К сожалению, по другому данный вопрос не решить.

Просмотр сообщенияНадежда1986 (10 Сентябрь 2013 - 23:55) писал:

Здравствуйте подскажите доп.фото в товаре загружены,а на сайте в товаре не отражаются.Как исправить?

Замените содержимое вашего файла стилей carousel.css на следующее

/*-----------------------------------------------------------------------------------*/
/* 3. CAROUSEL
/*-----------------------------------------------------------------------------------*/
#wrapper .d-carousel ul li {
  background: none;
background-color: #FFF;
-webkit-box-shadow: 0px 1px 2px 0px #b7b7b7;
-moz-box-shadow: 0px 1px 2px 0px #b7b7b7;
box-shadow: 0px 1px 2px 0px #b7b7b7;
padding: 3px;
width: 155px;
padding-left: 0px;
padding-right: 0px;
}
#wrapper .d-carousel ul li a {
padding: 0px;
}
.jcarousel-direction-rtl {
direction: rtl;
}
.d-carousel h4 {
  margin: 5px 0 5px 0;
font-size: 14px;
}
.d-carousel .jcarousel-container {
display: block;
overflow: hidden;
margin-bottom: 20px;
}
.d-carousel .jcarousel-item {
width: 190px;
height: 290px;
}
.d-carousel .jcarousel-container-horizontal {
  width: 155px;
  height: 325px;
  padding: 0 20px;
}
.d-carousel .jcarousel-item-horizontal {
margin-left: 3px;
margin-bottom: 3px;
margin-top: 3px;
margin-right: 11px;
}
.d-carousel .jcarousel-next-horizontal {
position: absolute;
top: 149px;
right: 0;
margin-right: 3px;
width: 15px;
height: 28px;
cursor: pointer;
background: transparent url(http://paletkarf.storeland.net/blog-arrows.jpg) no-repeat top right;
}
.d-carousel .jcarousel-direction-rtl .jcarousel-next-horizontal {
left: 5px;
right: auto;
background-image: url(http://paletkarf.storeland.net/blog-arrows.jpg);
}
.d-carousel .jcarousel-next-horizontal:hover {
background-position: bottom right;
}
.d-carousel .jcarousel-prev-horizontal {
position: absolute;
top: 149px;
left: 0;
margin-left: 3px;
width: 15px;
height: 28px;
cursor: pointer;
background: transparent url(http://paletkarf.storeland.net/blog-arrows.jpg) no-repeat top left;
}
.d-carousel .jcarousel-direction-rtl .jcarousel-prev-horizontal {
left: auto;
right: 5px;
background-image: url(http://paletkarf.storeland.net/blog-arrows.jpg);
}
.d-carousel .jcarousel-prev-horizontal:hover {
background-position: bottom left;
}


#15 Надежда1986

Надежда1986

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 53 сообщений
  • ГородМосква

Отправлено 13 Сентябрь 2013 - 22:39

Просмотр сообщенияСake (11 Сентябрь 2013 - 02:06) писал:

К сожалению, по другому данный вопрос не решить.



Замените содержимое вашего файла стилей carousel.css на следующее

/*-----------------------------------------------------------------------------------*/
/* 3. CAROUSEL
/*-----------------------------------------------------------------------------------*/
#wrapper .d-carousel ul li {
background: none;
background-color: #FFF;
-webkit-box-shadow: 0px 1px 2px 0px #b7b7b7;
-moz-box-shadow: 0px 1px 2px 0px #b7b7b7;
box-shadow: 0px 1px 2px 0px #b7b7b7;
padding: 3px;
width: 155px;
padding-left: 0px;
padding-right: 0px;
}
#wrapper .d-carousel ul li a {
padding: 0px;
}
.jcarousel-direction-rtl {
direction: rtl;
}
.d-carousel h4 {
margin: 5px 0 5px 0;
font-size: 14px;
}
.d-carousel .jcarousel-container {
display: block;
overflow: hidden;
margin-bottom: 20px;
}
.d-carousel .jcarousel-item {
width: 190px;
height: 290px;
}
.d-carousel .jcarousel-container-horizontal {
width: 155px;
height: 325px;
padding: 0 20px;
}
.d-carousel .jcarousel-item-horizontal {
margin-left: 3px;
margin-bottom: 3px;
margin-top: 3px;
margin-right: 11px;
}
.d-carousel .jcarousel-next-horizontal {
position: absolute;
top: 149px;
right: 0;
margin-right: 3px;
width: 15px;
height: 28px;
cursor: pointer;
background: transparent url(http://paletkarf.storeland.net/blog-arrows.jpg) no-repeat top right;
}
.d-carousel .jcarousel-direction-rtl .jcarousel-next-horizontal {
left: 5px;
right: auto;
background-image: url(http://paletkarf.storeland.net/blog-arrows.jpg);
}
.d-carousel .jcarousel-next-horizontal:hover {
background-position: bottom right;
}
.d-carousel .jcarousel-prev-horizontal {
position: absolute;
top: 149px;
left: 0;
margin-left: 3px;
width: 15px;
height: 28px;
cursor: pointer;
background: transparent url(http://paletkarf.storeland.net/blog-arrows.jpg) no-repeat top left;
}
.d-carousel .jcarousel-direction-rtl .jcarousel-prev-horizontal {
left: auto;
right: 5px;
background-image: url(http://paletkarf.storeland.net/blog-arrows.jpg);
}
.d-carousel .jcarousel-prev-horizontal:hover {
background-position: bottom left;
}
спасибо поменяла.
И надписи все вернулись




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных