Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Рекомендованные сообщения

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

Ссылка на комментарий
Поделиться на других сайтах


  • 5 недель спустя...

Здравствуйте. страница комплектов /index.php?route=module/all_sets/ ничего не отображает по комплектам

ОС 2.1.0.1

в журнале

 PHP Notice:  Trying to get property of non-object in /..../www/catalog/controller/module/all_sets.php on line 62

PHP Notice:  Trying to get property of non-object in /...../www/catalog/controller/module/all_sets.php on line 66

 

Ссылка на комментарий
Поделиться на других сайтах


15 часов назад, alexiv911 сказал:

сам нашел проблему /www/catalog/controller/module/all_sets.php у меня не oc_product, а product

че-то я уведомления провтыкал

в любом случае. спасибо за найденный баг

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

про какие файлы идет речь для адаптации стилей?
по минимуму кнопки/плюсы/рамки в цвет сделать чтоб, без глобальных изменений стиля
И еще вопрос, какое относительно самое большое количество комплектов уже работало на модуле?
Вопрос не к тому потянет или нет и все такое, а к тому что если товаров тысяч 5, комплектов через генератор можно нагородить много, я думаю, а вот управлять ими потом как, удобно?
А то глядя на список комплектов, и что там все списком, мне кажется что может быть не удобно, но т.к сам не работал, поделитесь у кого как, типа 500 комплектов проблем нет

Изменено пользователем ArtemZH
Ссылка на комментарий
Поделиться на других сайтах


  • 2 недели спустя...

Здравствуйте, уважаемый автор!

Вопрос по функционалу модуля. Описываю кейс:

  • вижу комплект на вашем демо-сайте. В комплекте 2 товара: товар А и товар Б. Рядом кнопочка "купить комплект". По нажатию кнопочки в корзинке и в подытогах все норм: скидка за комплект есть
  • при раздельном  добавлении в корзину товаров А и Б, не через кнопку "купить комплект" скидка не применяется.

Это норм? Было бы здорово анализировать товары в корзинке на соответствие активным комплектам...

 

upd:

если сначала положить в корзинку товары А и Б, а затем положить еще и комплект, то скидка появится за два комплекта :)

Изменено пользователем 100napb
Ссылка на комментарий
Поделиться на других сайтах

11 минут назад, 100napb сказал:

Здравствуйте, уважаемый автор!

Вопрос по функционалу модуля. Описываю кейс:

  • вижу комплект на вашем демо-сайте. В комплекте 2 товара: товар А и товар Б. Рядом кнопочка "купить комплект". По нажатию кнопочки в корзинке и в подытогах все норм: скидка за комплект есть
  • при раздельном  добавлении в корзину товаров А и Б, не через кнопку "купить комплект" скидка не применяется.

Это норм? Было бы здорово анализировать товары в корзинке на соответствие активным комплектам...

 

upd:

если сначала положить в корзинку товары А и Б, а затем положить еще и комплект, то скидка появится за два комплекта

здраст-е. проверятт все комплекты в корзине очень накладно. проверяются только те, которые были добавлены посредством кнопки купить комплект

Ссылка на комментарий
Поделиться на других сайтах

 

25 минут назад, 100napb сказал:

Здравствуйте, уважаемый автор!

Вопрос по функционалу модуля. Описываю кейс:

  • вижу комплект на вашем демо-сайте. В комплекте 2 товара: товар А и товар Б. Рядом кнопочка "купить комплект". По нажатию кнопочки в корзинке и в подытогах все норм: скидка за комплект есть
  • при раздельном  добавлении в корзину товаров А и Б, не через кнопку "купить комплект" скидка не применяется.

Это норм? Было бы здорово анализировать товары в корзинке на соответствие активным комплектам...

 

upd:

если сначала положить в корзинку товары А и Б, а затем положить еще и комплект, то скидка появится за два комплекта

попробуйте тоже самое здесь сделать - http://mmscomplect.rumms.ru/desktops/htc-touch-hd предусматривал что комплект может быть в ручную сформирован и несколько комплектов можно в ручную сформировать в корзину

Ссылка на комментарий
Поделиться на других сайтах

16 минут назад, MaDMaxX111 сказал:

 

попробуйте тоже самое здесь сделать - http://mmscomplect.rumms.ru/desktops/htc-touch-hd предусматривал что комплект может быть в ручную сформирован и несколько комплектов можно в ручную сформировать в корзину

что енто? :grin:

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

Ссылка на комментарий
Поделиться на других сайтах

1 hour ago, kJlukOo said:

здраст-е. проверятт все комплекты в корзине очень накладно. проверяются только те, которые были добавлены посредством кнопки купить комплект

Спасибо за оперативный ответ. Понял.

Планирую в обозримом будущем приобрести модуль - отсюда и вопросы. Если интересно, могу попробовать написать sql-запрос под мускуль, который бы проверял вхождения товаров из комплектов в спецификацию корзинки. Задачка не из невозможных + должно быть не затратно к серверным ресурсам, поскольку это лишь запрос к БД, который, ко всему прочему, самой СУБД должен кешироваться и при повторном выполнении выдывать результат налету. Но я не разработчик модулей, могу чего-то не знать.

 

57 minutes ago, MaDMaxX111 said:

 

попробуйте тоже самое здесь сделать - http://mmscomplect.rumms.ru/desktops/htc-touch-hd предусматривал что комплект может быть в ручную сформирован и несколько комплектов можно в ручную сформировать в корзину 

Спасибо за наводку. Уточните пожалуйста (можно в ЛС, что бы никого не смущать), что это за модуль? Хоть глянуть на функционал и возможности.

Изменено пользователем 100napb
Ссылка на комментарий
Поделиться на других сайтах

есть примеры сайтов с модулем?  Хотим начать активно допродавать аксессуары к основному товару.

 

Хороший пример:

https://i-vse.ru/product/apple-iphone-7-32gb-black-chernyy/?yclid=1

Изменено пользователем danineo1
Ссылка на комментарий
Поделиться на других сайтах


Здравствуйте вновь. Появился новый вопрос:

как можно сделать связь типа "многие ко многим"? Например:

есть 10 товаров из категории А. И еще 10 товаров из категории Б. Есть задача сделать скидку за комплект типа "любой товар из категории А" + "любой товар из категории Б". Или еще например: при покупке любых двух товаров из категории А получаешь скидку.

Сейчас не вижу иных вариантов, как создавать 100500 комплектов, в которых запутаюсь и я сам, и клиент. Не говоря уже, если я был бы рад добавить еще и категорию В... ))

 

Если пока никак, то это может быть хорошей идей для расширения функционала :)

Ссылка на комментарий
Поделиться на других сайтах

21 минуту назад, 100napb сказал:

Здравствуйте вновь. Появился новый вопрос:

как можно сделать связь типа "многие ко многим"? Например:

есть 10 товаров из категории А. И еще 10 товаров из категории Б. Есть задача сделать скидку за комплект типа "любой товар из категории А" + "любой товар из категории Б". Или еще например: при покупке любых двух товаров из категории А получаешь скидку.

Сейчас не вижу иных вариантов, как создавать 100500 комплектов, в которых запутаюсь и я сам, и клиент. Не говоря уже, если я был бы рад добавить еще и категорию В... ))

 

Если пока никак, то это может быть хорошей идей для расширения функционала

многие ко многим пока никак

через генератор один ко многоим

Ссылка на комментарий
Поделиться на других сайтах

Just now, kJlukOo said:

многие ко многим пока никак

через генератор один ко многоим

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

Ссылка на комментарий
Поделиться на других сайтах

31 минуту назад, 100napb сказал:

Есть задача сделать скидку за комплект типа "любой товар из категории А" + "любой товар из категории Б". Или еще например: при покупке любых двух товаров из категории А получаешь скидку.

вот этим

 

Ссылка на комментарий
Поделиться на других сайтах


Столкнулся с еще одной неразрешимой задачкой: это редактирование заказа через админку опенкарта. Пропадают скидки в тех заказах, в которых есть комплекты \ не могу добавить комплекты. В админке, разумеется, кнопочек типа "добавить комплект" нет и скидки учесть не получается.

Уважаемый автор, как быть?

 

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

On 7/26/2018 at 2:46 PM, 100napb said:

Столкнулся с еще одной неразрешимой задачкой: это редактирование заказа через админку опенкарта. Пропадают скидки в тех заказах, в которых есть комплекты \ не могу добавить комплекты. В админке, разумеется, кнопочек типа "добавить комплект" нет и скидки учесть не получается.

Уважаемый автор, как быть?

 

спасение утопающих - дело рук самих утопающих :rolleyes: хотелось бы пошутить, но уж больно проблема остро для меня стоит: очень неудобно редактировать заказы + муторно всем клиентам объяснять, что комплекты работают только через кнопочку.


В общем, что бы не быть голословным и пассивным, решил оказать содействие и набросал вполне рабочий и достаточно быстрый вариант поиска комплектов среди товаров в корзинке. Как раз для тех случаев, когда товары добавляются отдельно (мимо кнопки купить комплект).
Уважаемый Автор! Надеюсь, этот набросок поможет СКОРЕЙШЕМУ появлению соответствующего функционала + его можно использовать и для расчетов в админке при редактировании заказа, что бы скидка не пропадала.

Короче, Я не разработчик, но вроде все отлично работает. Смотри под спойлер.

Spoiler

 

Что я сделал и как проверял?

1. Добавил функцию в контроллер: /catalog/controller/extension/module/sets.php
2. Переходим во фронт. Кладем что-нибудь в корзинку для проверки.
3. В соседней вкладке открываем mydomain.ru/index.php?route=extension/module/sets/FindSetIntoCart и смотрим:
 показываются id-шники товаров в корзине, которые НЕ вошли в комплект;
 показываются id-шники найденных комплектов

 

Проверочные кейсы. В деталях не буду расписывать... бегло проверял следующие:

Кейс 0. "Базовый". Просто проверить, работает или нет: пустая корзина + любой комплект
Кейс 1. "Базовый-2". Просто проверить, работает или нет: пустая корзина + любой товар
Кейс 2. "Срабатывает более выгодный комплект": пока тот, что имеет бОльший % скидки в настройках (сортировка селекта из бд)
Кейс 3. "Двойные комплекты": любой комплект * 2

Кейс 4. "Несколько комплектов в одной корзине" + Кейс 2 + Кейс 3.

Собственно, сама функция с комментариями. Разумеется, это полуфабрикат. Но выходные данные массивов и алгоритм, уверен, можно полезно использовать и органично встроить в модуль, а не как я - выводить вар_дампами. Скорее всего, что-то потребует доработки, но ВСЕ УЖЕ неплохо работает.

   public function FindSetIntoCart () {
        $products_in_cart = $this->cart->GetProducts();
        $product_in_cart_ids = array();
        $find_set = array ();
	
        if (!empty($products_in_cart)) {
            //получаем массив с ид-шниками товаров в корзине, включая дубли id по количеству
            foreach ($products_in_cart as $product){
                foreach (range(1, $product['quantity']) as $i) {
                    $product_in_cart_ids[] = $product['product_id'];
                }
            }

            //на основе товаров из корзины получаем ид-шники комплектов, сортируя их по величине скидки
            //в текущей реализации сортировка тупо из БД: у кого % больше, тот и первый; по-хорошему, надо сортировать массив по итоговой экономии с набора
            //для расчета экономии вроде уже есть функция
            $sets_in_cart_query = $this->db->query("SELECT distinct okp.set_id FROM oc_kjset_product okp, oc_kjset ok WHERE ok.id = okp.set_id AND ok.status = 1 and okp.product_id IN (". implode(',', $product_in_cart_ids) .") GROUP BY okp.product_id, okp.set_id ORDER BY okp.discount DESC;");
            if ($sets_in_cart_query->num_rows){
                foreach ($sets_in_cart_query->rows as $set_id){
                    $set_in_cart_ids[] = $set_id['set_id'];            
                }
            }

            //получаем для каждого найденного комплекта ид-шники входящих в него товаров и ищем их в корзине            
            $find_set = array();
            $find = array();
            foreach ($set_in_cart_ids as $set_id){
                foreach ($this->db->query("SELECT okp.product_id FROM oc_kjset_product okp, oc_kjset ok WHERE ok.id = okp.set_id AND ok.status = 1 AND okp.set_id = ". $set_id .";")->rows as $product_id){
                    $product_in_set_ids[] = $product_id['product_id'];        
                }
		$end = false;
		//зацикливаем поиск каждого комплекта на случай, если их в корзине больше 1
		while(!$end){
                if (!empty($product_in_set_ids)){
                    //если в составе комплекта 2 и более одинаковых товара
                    if (count(array_unique($product_in_set_ids)) < count($product_in_set_ids)){
                        // находим товары комплекта в корзине
                        $product_in_set_ids_ = $product_in_set_ids;
                        $find = array_filter($product_in_cart_ids,
                        function ($val) use (&$product_in_set_ids_) {
                                $key = array_search($val, $product_in_set_ids_);
                                if ( $key === false ) return true;
                                unset($product_in_set_ids_[$key]);
                                return false;
                              }    
                        );
                        //  нашли! удаляем товары комплекта из массива товаров  корзины, что бы не считать их дважды        
                        if ((count($find) + count($product_in_set_ids)) == count($product_in_cart_ids)) {
                            $product_in_cart_ids = $find;        
                            $find_set[] = $set_id;      
				echo '1';      
                        }  else {$end = true;}  
                    }
                    //если в составе комплекта все товары разные
                    else {
                        $find = array_diff($product_in_set_ids, $product_in_cart_ids);
                        if (count($find) == 0) {
                            $find_set[] = $set_id;
				echo '2';
                            // находим и удаляем товары комплекта из массива товаров в корзине, что бы не считать их дважды
                            $counts = array_count_values($product_in_set_ids);
                            $product_in_cart_ids = array_filter($product_in_cart_ids, function($o) use (&$counts) {
                                    return empty($counts[$o]) || !$counts[$o]--;
                            });    
                        } else {$end = true;}
                    }
                }
		}
                unset($product_in_set_ids, $find);
            }
        }
		print_r('Finded sets in the cart: ' . implode(',', $find_set) . '</br>');
		print_r('Theese products in the cart has NO sets: ' . implode(',', $product_in_cart_ids) . '</br>');
	}


 

 

 

  • +1 2
Ссылка на комментарий
Поделиться на других сайтах

я слышал уже о подобной проблему. вскоре доберусь и попробую разобраться. проблему понял

за набросок большое спасибо. попробую его

Ссылка на комментарий
Поделиться на других сайтах

Привет. Такая ситуация. Стоит Ваш модуль комплектов ПРО. Делаю генерацию комплектов, все работает - проблем нет.

На фронте считаю скидки - не совпадает у меня итоговая с подсчетом модуля - на скрине все видно:

1675673211_2018-08-0111_11_46.png.3a38d319c598f721e6095086958863a7.png

И так во всех товарах.

И еще пожелания по развитию:

1. Добавить округление до десятых цене  - сейчас на скрине 17,73, а выводить 17,70. Как я понял округление работает только в итогах.

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

 

Спасибо. Жду исправлений и доработок...

 

Ссылка на комментарий
Поделиться на других сайтах


  • 2 недели спустя...

Нужна ли адаптация модуля «КомплектыPro 2.1» для его установки и корректной работы на шаблоне Revolution v.4.0.4?

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

--

1 У меня тоже революшен, я так понимаю что адаптация платная, то сколько? Или на популярные шаблоны может планируется?

2 В модуле ОСТРАЯ необходимость редактирования комплектов, я несколько дней потестил, и это жесть какая-то не реальная, не знаю как люди работают с комплектами на боевом сайте и подобный вопрос задавал ранее,

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

3 После добавления нового комплекта, при переключении в общий список он не появляется пока страницу не обновишь, какую-нибудь бы кнопку обновить/применить
4 в наименовании товара, когда забиваешь имя товары нет подсказок, с ними было бы намного удобнее, а так, вбил частичное название и пошел смотреть что отобразилось в кнопке "показать кол-во найденных товаров". А еще если искать по части имени конкретный товар, но эта часть входит в название другого, то в списке выводятся они оба, выбрать нужный нельзя, приходится вернуть и вписывать либо полное название, либо как-то выкручиваться чтоб исключить совпадение

Пример: мне нужно найти эссенцию moist, пишу в наименование moist, в показать кол-во найденных товаров выдает 66 совпадений по товарам, потому что moist входит более популярное moisture, примерно так, с подсказками было бы легче

5 про обновление, комплекты набивать руками, вообще не понял и не нашел где это

 

 

 

Ссылка на комментарий
Поделиться на других сайтах


6 hours ago, ArtemZH said:

Нужна ли адаптация модуля «КомплектыPro 2.1» для его установки и корректной работы на шаблоне Revolution v.4.0.4?

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

--

1 У меня тоже революшен, я так понимаю что адаптация платная, то сколько? Или на популярные шаблоны может планируется?

2 В модуле ОСТРАЯ необходимость редактирования комплектов, я несколько дней потестил, и это жесть какая-то не реальная, не знаю как люди работают с комплектами на боевом сайте и подобный вопрос задавал ранее,

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

3 После добавления нового комплекта, при переключении в общий список он не появляется пока страницу не обновишь, какую-нибудь бы кнопку обновить/применить
4 в наименовании товара, когда забиваешь имя товары нет подсказок, с ними было бы намного удобнее, а так, вбил частичное название и пошел смотреть что отобразилось в кнопке "показать кол-во найденных товаров". А еще если искать по части имени конкретный товар, но эта часть входит в название другого, то в списке выводятся они оба, выбрать нужный нельзя, приходится вернуть и вписывать либо полное название, либо как-то выкручиваться чтоб исключить совпадение

Пример: мне нужно найти эссенцию moist, пишу в наименование moist, в показать кол-во найденных товаров выдает 66 совпадений по товарам, потому что moist входит более популярное moisture, примерно так, с подсказками было бы легче

5 про обновление, комплекты набивать руками, вообще не понял и не нашел где это

 

 

 

Поддерживаю и прошу добавить к своим предложениям!

Автор, как-то, мягко говоря, не самая оперативная поддержка PRO модуля... :evil:

Ссылка на комментарий
Поделиться на других сайтах


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

2. очистка комплектов работает так же по фильтру как и подбор. т.е если есть цель перегенерить комплекты для целой категории. выбираем категорию в генераторе жмем очистить. выбираем что хотим жмем подобрать 1 раз. выбираем что хотим жмем подобрать 2 раз и в итоге всё по кайфу

3. знаю. а зачем смотреть в общий список после каждого добавленного?

4. найденные товары, это те товары к которым произойдет привязка. в фильтре не только наименование, а еще и категория, производитель и тд

если товары с одной категории и имеют одинаковое название, значит им во всех случая подойдёт один комплект. если уже сгенерился можно зайти во вкладку всех комплектов и удалить там ненужные

5. не понимаю о чем вы вообще

 

на счет округления цен товаров - зачем? есть общее округление

 

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.