Помощь Объединение комбинаций нескольких товаров.

Jarhead

Постоялец
Регистрация
17 Июн 2011
Сообщения
414
Реакции
169
Прошу гуру программистов подсказать в какую сторону капать, у меня есть товар, который находится условно под артикулом “ SS1601” у товара есть 4 цвета. Заказчик хочет в категории видеть каждый цвет как отдельный товар, со своими ссылками, фотками и описанием для каждого цвета. А когда заходим в любой товар, там должны отображаться комбинации всех 4х цветов.

Вот пример: ___Для просмотра ссылки Войди или Зарегистрируйся

Там идут в ряд 4 пуховика под артикулом SL1608 в разных цветах и если зайти в любой из этих товаров, там доступны к заказу другие цвета. Там самописный движок и там я это реализовать смог сам, а как это сделать на престашопе пока думаю…
 
Прошу гуру программистов подсказать в какую сторону капать, у меня есть товар, который находится условно под артикулом “ SS1601” у товара есть 4 цвета. Заказчик хочет в категории видеть каждый цвет как отдельный товар, со своими ссылками, фотками и описанием для каждого цвета. А когда заходим в любой товар, там должны отображаться комбинации всех 4х цветов.

Вот пример: ___Для просмотра ссылки Войди или Зарегистрируйся

Там идут в ряд 4 пуховика под артикулом SL1608 в разных цветах и если зайти в любой из этих товаров, там доступны к заказу другие цвета. Там самописный движок и там я это реализовать смог сам, а как это сделать на престашопе пока думаю…
Для этого нужно переписать функцию getProducts в классе Category. Чтобы на выходе был не товар а комбинация. Поменять GROUP BY и немного поменять сам запрос.
 
Для этого нужно переписать функцию getProducts в классе Category. Чтобы на выходе был не товар а комбинация. Поменять GROUP BY и немного поменять сам запрос.

Привет! Ты наверно не внимательно прочитал. Есть 4 товара со своими комбинациями и в карточке каждого из этих товаров должны быть в том числе комбинации других трех товаров. Класс Category тут не причем. Я сейчас смотрю в сторону переделки функции получения комбинаций товара, с получения комбинаций товара в классе Product по его product id, на получение комбинаций товара по артикулу, т.к. артикул у всех 4х товаров один, это единственное что их объединяет.

Пока еще не приступал, хотел получить тут какой то альтернативный вариант решения проблемы.
 
Привет! Ты наверно не внимательно прочитал. Есть 4 товара со своими комбинациями и в карточке каждого из этих товаров должны быть в том числе комбинации других трех товаров. Класс Category тут не причем. Я сейчас смотрю в сторону переделки функции получения комбинаций товара, с получения комбинаций товара по его product id, на получения комбинаций товара по артикулу, т.к. артикул у всех 4х товаров один, это единственное что их объединяет.
А что мешает получать чужие комбинации на странице товара?
Как тогда заказ происходит?
 
Сейчас посмотрел, за выведение комбинаций на карточке товара отвечают две функции в ProductController.php:

assignAttributesGroups() и assignAttributesCombinations()
 
А что мешает получать чужие комбинации на странице товара?
Как тогда заказ происходит?

Дык я вот ищу как получить чужие комбинации на карточке товара...по идее на заказ это вообще повлиять не как не должно.
 
Дык я вот ищу как получить чужие комбинации на карточке товара...по идее на заказ это вообще повлиять не как не должно.
В контроллере product посмотрите кажется assignattribues
 
Прошу гуру программистов подсказать в какую сторону капать, у меня есть товар, который находится условно под артикулом “ SS1601” у товара есть 4 цвета. Заказчик хочет в категории видеть каждый цвет как отдельный товар, со своими ссылками, фотками и описанием для каждого цвета. А когда заходим в любой товар, там должны отображаться комбинации всех 4х цветов.

Вот пример: ___Для просмотра ссылки Войди или Зарегистрируйся

Там идут в ряд 4 пуховика под артикулом SL1608 в разных цветах и если зайти в любой из этих товаров, там доступны к заказу другие цвета. Там самописный движок и там я это реализовать смог сам, а как это сделать на престашопе пока думаю…

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

пример:
Для просмотра ссылки Войди или Зарегистрируйся

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

пример:
Для просмотра ссылки Войди или Зарегистрируйся

внизу блок товаров в других цветах - но его можно и вверх застилить под типа атрибуты

Мне нужно не блок с товарами вывести, а чтобы можно было комбинации выбирать других, схожих товаров.

В контроллере product посмотрите кажется assignattribues

$this->assignAttributesGroups(); там за это отвечает, по крайней мере в 1.6.0.14

$this->assignAttributesGroups(); там за это отвечает, по крайней мере в 1.6.0.14

Но, это жесть, там эта функция берет объект $this->product и в него вставляет информацию о комбинациях товара и product id берет прям из этого же объекта.

Но, это жесть, там эта функция берет объект $this->product и в него вставляет информацию о комбинациях товара и product id берет прям из этого же объекта.

Если речь идет о product.tpl, то так и есть, туда передается только объект $product с опр. id. И в переменной $attributesCombinations массив только для $product->id

Я уже разобрался и в классе Product отредактировал функцию getAttributesInformationsByProduct()

Теперь часть ошибок пропало.

Но досихпор осталось две проблемы:

1) В карточке товара все как надо, но когда жму кнопку заказать, мне пишет: "У вас уже максимальное количество этого товара доступное для покупки."
2) После правки функции getAttributesInformationsByProduct(), перестала учитываться комбинация по умолчанию...т.е. если у меня 4 цвета: ivory, yellow, blue, black и когда заходим в любой цвет то на карточке товара выбран именно этот цвет, а после изменений функции, во всех товарах выбран всегда по умолчанию цвет ivory.

А уже внутри функции assignAttributesGroups() вызывается функция getAttributesGroups() которая находиться в классе Product

В итоге, на данный момент получилось в самом шаблоне вывести комбинации других товаров, но, ajax скрипты подключенные на этой странице берут информацию из других функций и по этому выбор нужной комбинации происходит не правильно, информация не обновляется -/

Немного повозившись:

В классе Product.php, я изменил функцию public function getAttributesGroups($id_lang){}, благодаря этому в шаблоне как надо...

Может подсказать кто, на карточке товара, при выборе комбинации, срабатывает скрипт Product.js, который динамически изменяет информацию на странице типа цены, дописывает в конец ссылки страницы название цвета и т.д. К какому файлу обращается скрипт, откуда он берет инфу о комбинациях товара?

Еще не много повозившись:

Вообщем я тока что понял что дело не в javascript, в шаблон почему то не выводятся значения комбинаций других товаров в переменной $attributesCombinations которая передает значения с названиями всех комбинаций в javascript.

И в итоге:

Фух! Все, сделал!!!! Ура!
Пришлось подправить еще в классе Cart, функцию updateQty(), чтобы product id подсовывался который относится к добавляемой комбинации в корзину..

Если кому интересно, вот рабочий пример:

Для просмотра ссылки Войди или Зарегистрируйся

4 товара верхних одного артикула в разных цветах со своими комбинациями, но когда заходим в любой их этих товаров, то видим комбинации других цветов то же!

Подправил еще файл ajax-cart.js, там перед показом всплывающего окна стояла проверка ответа с сервера...была проверка того если в ответе от сервера данные по этому товару и есть ли у этого товара та комбинация которую выбрали...убрал это правило...и все стало идеально просто...даже фотка и данные нужного товара в всплывающем окне выводятся...

Осталось еще сделать чтобы фотка товара менялась на фотку выбранного цвета, включая доп. фотки, но это уже другая история..
 
Последнее редактирование:
Если речь идет о product.tpl, то так и есть, туда передается только объект $product с опр. id. И в переменной $attributesCombinations массив только для $product->id
 
Назад
Сверху