Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Recommended Posts

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

Link to comment
Share on other sites


  • 5 weeks later...

Здравствуйте. страница комплектов /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

 

Link to comment
Share on other sites


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

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

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

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

  • +1 1
Link to comment
Share on other sites

  • 4 weeks later...

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

Edited by ArtemZH
Link to comment
Share on other sites


  • 2 weeks later...

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

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

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

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

 

upd:

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

Edited by 100napb
Link to comment
Share on other sites

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

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

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

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

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

 

upd:

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

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

Link to comment
Share on other sites

 

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

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

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

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

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

 

upd:

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

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

Link to comment
Share on other sites

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

 

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

что енто? :grin:

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

Link to comment
Share on other sites

1 hour ago, kJlukOo said:

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

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

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

 

57 minutes ago, MaDMaxX111 said:

 

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

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

Edited by 100napb
Link to comment
Share on other sites

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

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

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

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

 

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

Link to comment
Share on other sites

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

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

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

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

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

 

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

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

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

Link to comment
Share on other sites

Just now, kJlukOo said:

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

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

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

Link to comment
Share on other sites

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

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

вот этим

 

Link to comment
Share on other sites


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

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

 

  • +1 1
Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

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

Link to comment
Share on other sites

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

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

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

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

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

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

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

 

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

 

Link to comment
Share on other sites


  • 2 weeks later...

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

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

--

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

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

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

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

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

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

 

 

 

Link to comment
Share on other sites


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:

Link to comment
Share on other sites


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

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

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

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

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

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

 

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

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.