-
Публікації
5 930 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем spectre
-
-
Нужно сделать крон задачу которая запускается скажем раз в сутки и добавляет в эту категорию товары которые добавлены за последние 30 дней
-
1
-
-
22.03.2023 в 11:35, markimax сказал:
Л...но в красивій обгортці , але ж смак після розгортання обертки не зміниться )
Ну, мне лично по барабану что мои модули не будут работать на одном шаблоне из тысячи пусть и самом популярном
-
22.03.2023 в 11:20, markimax сказал:
А розробників там скільки ?
разработчики не покупают шаблоны а покупатели покупают)
-
они давно писали что сторонние расширения не будут работать
это продукт не для нашего рынка, думаю никто спорить не будет что это самый успешный шаблон, а то что модули на него не ставятся видимо так и задумано
-
-
17.03.2023 в 19:09, paulittop сказал:
Добрый день.
В файлах для загрузки нет версии для 1.5.6, а как раз она и нужна.
напишите в почту [email protected] запрос - вышлю
-
Проверьте каждую операцию в модификаторе
-
16.03.2023 в 15:01, mirek сказал:
А в модуле чего править ? Чем магазины отличаются в БД ?
таблица product_to_store
при выборке товара нужно делать проверку на store_id
-
1
-
-
Видимо модуль не умеет в мультимагазин
-
Можно, подключить в getProducts таблицу manufacturer и немножко поменять p.sort_order на m.sort_order
получится примерно так
Скрытый текстpublic function getProducts($data = array()) { $sql = "SELECT p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special"; if (!empty($data['filter_category_id'])) { if (!empty($data['filter_sub_category'])) { $sql .= " FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "product_to_category p2c ON (cp.category_id = p2c.category_id)"; } else { $sql .= " FROM " . DB_PREFIX . "product_to_category p2c"; } if (!empty($data['filter_filter'])) { $sql .= " LEFT JOIN " . DB_PREFIX . "product_filter pf ON (p2c.product_id = pf.product_id) LEFT JOIN " . DB_PREFIX . "product p ON (pf.product_id = p.product_id)"; } else { $sql .= " LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.product_id)"; } } else { $sql .= " FROM " . DB_PREFIX . "product p"; } $sql .= " LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.product_id = m.product_id) "; $sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"; if (!empty($data['filter_category_id'])) { if (!empty($data['filter_sub_category'])) { $sql .= " AND cp.path_id = '" . (int)$data['filter_category_id'] . "'"; } else { $sql .= " AND p2c.category_id = '" . (int)$data['filter_category_id'] . "'"; } if (!empty($data['filter_filter'])) { $implode = array(); $filters = explode(',', $data['filter_filter']); foreach ($filters as $filter_id) { $implode[] = (int)$filter_id; } $sql .= " AND pf.filter_id IN (" . implode(',', $implode) . ")"; } } if (!empty($data['filter_name']) || !empty($data['filter_tag'])) { $sql .= " AND ("; if (!empty($data['filter_name'])) { $implode = array(); $words = explode(' ', trim(preg_replace('/\s+/', ' ', $data['filter_name']))); foreach ($words as $word) { $implode[] = "pd.name LIKE '%" . $this->db->escape($word) . "%'"; } if ($implode) { $sql .= " " . implode(" AND ", $implode) . ""; } if (!empty($data['filter_description'])) { $sql .= " OR pd.description LIKE '%" . $this->db->escape($data['filter_name']) . "%'"; } } if (!empty($data['filter_name']) && !empty($data['filter_tag'])) { $sql .= " OR "; } if (!empty($data['filter_tag'])) { $implode = array(); $words = explode(' ', trim(preg_replace('/\s+/', ' ', $data['filter_tag']))); foreach ($words as $word) { $implode[] = "pd.tag LIKE '%" . $this->db->escape($word) . "%'"; } if ($implode) { $sql .= " " . implode(" AND ", $implode) . ""; } } if (!empty($data['filter_name'])) { $sql .= " OR LCASE(p.model) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; $sql .= " OR LCASE(p.sku) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; $sql .= " OR LCASE(p.upc) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; $sql .= " OR LCASE(p.ean) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; $sql .= " OR LCASE(p.jan) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; $sql .= " OR LCASE(p.isbn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; $sql .= " OR LCASE(p.mpn) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'"; } $sql .= ")"; } if (!empty($data['filter_manufacturer_id'])) { $sql .= " AND p.manufacturer_id = '" . (int)$data['filter_manufacturer_id'] . "'"; } $sql .= " GROUP BY p.product_id"; $sort_data = array( 'pd.name', 'p.model', 'p.quantity', 'p.price', 'rating', 'm.sort_order', 'p.date_added' ); if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY " . $data['sort']; } } else { $sql .= " ORDER BY m.sort_order"; } if (isset($data['order']) && ($data['order'] == 'DESC')) { $sql .= " DESC, LCASE(pd.name) DESC"; } else { $sql .= " ASC, LCASE(pd.name) ASC"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $product_data = array(); $query = $this->db->query($sql); foreach ($query->rows as $result) { $product_data[$result['product_id']] = $this->getProduct($result['product_id']); } return $product_data; }
ну и контроллер докрутить там где сортировки
-
1
-
-
15.03.2023 в 11:50, zhizherinv сказал:
есть возможность попросить поддержку, чтобы обновили модуль?
все происходит по электронной почте
что делать написано тут
-
15.03.2023 в 11:35, zhizherinv сказал:
Добрый день, подскажите, в версии 5.9 можно ли задать материал в виде?
и ещё вопрос - обновление на 6.1 платное?
нет, нельзя
срок поддержки модуля и обновлений составляет 1 год с момента покупки
если год не прошёл то бесплатное
-
Поддержка модуля оказывается по электронной почте
-
Есть наработка которая отключает все кнопки и выводит попап в зависимости от времени суток
недорого
-
09.03.2023 в 23:11, SerginioWS сказал:
Хотел уточнить вопрос по новой версии,а именно по Брошенным Корзинам и таким же просмотрам для Еспутника.
Насколько понял - это пока что нереализованно?
как они пишут - веб трекинг для этого и нужен
тк в опенкарт нет таких понятий как брошенная корзина и просмотр, я пока не придумал как можно отследить что пользователь закрыл браузер и бросил просмотр))
-
09.03.2023 в 10:29, Zapuzin сказал:
spectre, нет возможности написать вам в лс
spectre не может получать сообщения.
То то я думаю так тихо сегодня 🤣
-
08.03.2023 в 20:50, esculapra сказал:
Я беру оплату за выполненную задачу. Можно выставит рейт 10-15 баков/час (кофе попил, в носу поковырял и пр.) Я просмотрел ТЗ, решили по бюджету... Недавно был проект, но я слег с пневмонией - все, мои наработки я оставил заказчику, он нашел другого. Я без обид - мы же форсмажор не обсуждали, значит я виноват.
когда фрилансер заболел, начал переводить кота через дорогу, свет интернет выключили - с такими работать не нужно
-
08.03.2023 в 16:55, niger сказал:
Никогда не делаю сразу, а интересуюсь зачем им это, и что они хотят из этого получить. Какую идею это несет. Часто выходило, отговорить и вообще остаться без дене
вот это правильно
я откровенную хрень не делаю даже за деньги
-
08.03.2023 в 12:55, sv2109 сказал:
то в таком случае какие-то мелочи вполне можно делать и бесплатно
Так нельзя делать, разве что в рамках какой-то уже правки, а просто так бесплатных задач в принципе быть не может
Подключиться к фтп, зайти в админку, скопировать папку модов, это же время все
с такими клиентами нужно работать по системе депозита, закинул 500 денег и пиши хотелки, а разработчик просто "списывает" с баланса денежку
денежка кончилась - нужно пополнить счет для продолжения сотрудничества
-
забыл добавить
а от бреда вроде журнал на сборке не*****о и с вкмод можно просто смело отказываться и не думать как это оценить
такой треш на сайтах бывает только от одного - экономия на разработчиках
-
08.03.2023 в 12:22, sv2109 сказал:
С другой стороны если за каждую мелочь очень категорично требовать плату то клиент просто перестанет с вами работать.
как показывает практика - то наоборот отсеются любители халявы в стиле в покрась там ещё кнопку, все равно уже подключился
если конечно у вас много свободного времени и много альтруизма то можно и бесплатно поработать
-
1
-
-
08.03.2023 в 10:11, EugeneVyd сказал:
Возможно вы знаете в чем может быть дело у как это починить?
это ошибка не моего модуля
думаю проблема в том что
08.03.2023 в 10:11, EugeneVyd сказал:По ТЗ от агентства, программист добавлял дополнительные параметры для передачи данных в GA4
-
04.03.2023 в 14:45, gustovapebar сказал:
Профессионал справится быстрее, сделает лучше
04.03.2023 в 14:45, gustovapebar сказал:недорого
это взаимоисключающие понятия
-
Journal 3 - new update
в Курилка
Опубліковано:
так мое тоже работает))))
но в новой версии разработчики журнала пиcали что third-party extensions not supported
может они уже и отказались от этой затеи, я не слежу за их развитием
ну и будем откровенны - в русскоязычном сегменте я наверное купленных журналов видел штук 5 за всю историю
остальное - скачанное с варезных дерьмопомоек со всякими плюшечками и без смс
так что даже если у уважаемых пользователей вареза на новой версии журнала не будут работать мои расширения я не расстроюсь