-
Posts
1,764 -
Joined
-
Last visited
Content Type
Profiles
Forums
Marketplace
Articles
FAQ
Our New
Store
Blogs
module__dplus_manager
Everything posted by kJlukOo
-
поддержка файлов куки есть на мобильном браузере?
-
[Поддержка] Авто-подбор рекомендуемых товаров
kJlukOo replied to kJlukOo's topic in Модули и дополнения
попробовать поставить лимит в 4-5 товаров и еще постараться подобрать оптимально большой лимит времени выполнения скрипта. пишите в личку. помогу исправить- 120 replies
-
- 1
-
- рекомендуемые
- авто рекомендуемые
-
(and 1 more)
Tagged with:
-
[Поддержка] вечная авторизация покупателя и корзина гостя
kJlukOo replied to kJlukOo's topic in Другие дополнения
нет, не всю сессию. всего 2 значения - хеш и айди покупателя -
[Поддержка] вечная авторизация покупателя и корзина гостя
kJlukOo replied to kJlukOo's topic in Другие дополнения
вон уже одна покупка есть и сразу положительный отзыв я лично тестировал на окстор 3х и на окстор 23х. ну и смотрел исходный код библиотеки покупателя на разных версиях опенкарт. на 2 и 3ей ветке должно работать -
Version 1.2.0
модуль имеет две модификации вечная авторизация покупателя данный модуль переносит хранение ключей из сессии в куки и позволяет существовать ключам очень долгое время. время хранение куки 1 год корзина гостя по умолчанию в опенкарте корзина гостя хранится 1 час. модификация увеличивает этот интервал до 7 дней, а так же актуализирует ключ сессии для гостевых корзин эта модификация может привести к увеличению таблицы oc_cart тк корзины хранятся дольше и занимают место в базе данных установка модуля происходит через штатный установщик расширений в админке после установки не забываем обновлять модификаторы модуль не закодирован, не требует ключ лицензии и не имеет никаких бэкдоров или что-то вроде этого в случае возникновения конфликтов с другими модификациями настоятельно рекомендую отключить модификатор и написать в личку поддержка: опенкарт 2х 3х / оcStore 2х 3х$20 -
вывод в карточку со всеми темами работает отлично в категорию под любую тему нужна адаптация
-
в настройках серии, в самом внизу есть выбор содержимого колонок language/lang-code/extension/module/kjseries.php вместо lang-code код вашего языка
-
в функцию пересчета добавить умножение на кол-во модель: catalog/model/extension/module/kjseries.php метод: public function getAdminParent($type, $field, $parent = false) предположительно! строка, которую нужно редачить: $sql .= "SUM(p.$field) as $field"; таких настроек не припомню
-
Группировка товара по сериям
kJlukOo replied to Webjokerst's topic in Opencart 3.x: Extension search
ну так в чем вопрос. допишите генерацию серии под бесплатный модуль и под свои нужды или если лень, то покупайте у меня мой модуль умеет группировать по части названия. достаточно выбрать желаемое название и указать кол-во совпадающих слов -
во тут реально конструктивно было. конфликты будут с микроволной печью в первую очередь. затестил цифры с sql_no_cache и разрыв в первом байте стал еще вкуснее на каких-то 5-10мс Отображение строк 0 - 49 (50 всего, Запрос занял 0.0276 сек.) SELECT SQL_NO_CACHE p.image, p.price, p.quantity, pd.name , (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' 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, p.product_id FROM oc_product_to_category p2c LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p2c.category_id = '118' GROUP BY p.product_id ORDER BY (p.quantity>0) DESC,p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,50 Отображение строк 0 - 49 (50 всего, Запрос занял 0.0200 сек.) SELECT SQL_NO_CACHE p.product_id, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' 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, p.product_id FROM oc_product_to_category p2c LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND p2c.category_id = '118' GROUP BY p.product_id ORDER BY (p.quantity>0) DESC,p.sort_order ASC, LCASE(pd.name) ASC LIMIT 0,50 как полагаешь разница в 0.0076 секунды сможет компенсировать 50 таких запросов(ниже)? Отображение строк 0 - 0 (1 всего, Запрос занял 0.0016 сек.) SELECT SQL_NO_CACHE DISTINCT *, pd.name AS name, p.image, (SELECT md.name FROM oc_manufacturer_description md WHERE md.manufacturer_id = p.manufacturer_id AND md.language_id = '1') AS manufacturer, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' 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 oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' 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, (SELECT points FROM oc_product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '1') AS reward, (SELECT ss.name FROM oc_stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '1') AS stock_status, (SELECT wcd.unit FROM oc_weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '1') AS weight_class, (SELECT lcd.unit FROM oc_length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '1') AS length_class, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM oc_review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '2510842' AND pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' зачем тебе explain? смешной. условия запроса никак не менялись. экплейн идентичен для двух этих запросов, я думал это само собой понятно... но не тебе не убирать дискаунт, чтобы добиться хорошей совместимости будет максимально логично, но мне интересно сделать легче и быстрее
-
добрый вечер. сменить урл можно запросто. объединить товары по значению атрибутов тоже можно из коробки
-
дримфильтр на такой кастомизации работает исправно. окфильтр надо будет потестить про то, что надо делать модом согласен
-
catalog/model/catalog/product.php метод getProducts имеет следующий цикл foreach ($query->rows as $result) { $product_data[$result['product_id']] = $this->getProduct($result['product_id']); } те на каждый товар категории у нас создается отдельный запрос с кучей условий. как избавится от порождения кучи новых запросов? получить все в одном запросе. без цикличного вызова метода getProduct foreach ($query->rows as $result) { $product_data[$result['product_id']] = $result; } в родном запросе мы получим: id, рейтинг, акцию и дискаунт в моем случае для категории мне нужно: количество, изображение, название товара, id , цена //исходный $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"; заменим SELECT p.product_id на SELECT p.product_id, p.image, p.price, p.quantity, pd.name $sql = "SELECT p.product_id, p.image, p.price, p.quantity, pd.name, (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"; //тесты 10 срезов по ttfb показали категория 50 товаров. 62.8 => 23.5 ms категория 30 товаров: 45.8 => 22.7 ms $startTime = microtime(true); $query = $this->db->query($sql); foreach ($query->rows as $result) { $product_data[$result['product_id']] = $result; //$product_data[$result['product_id']] = $this->getProduct($result['product_id']); } $msec = (microtime(true) - $startTime)*1000; if($_SERVER['REMOTE_ADDR']=='ваш айпи') { echo round($msec,2); exit(); }
-
pagespeed улучшаем GooglePagespeed своими руками без модулей и хамовитых авторов.
kJlukOo commented on Yoda's blog entry in Прожектор Бритни Спирс
ничего нового, но все конкретно по делу. хорошая компиляция советов по поводу этого хочу добавить немного конкретики. еще лучше убрать это из контроллера, что положительно скажется на ttfb есть либа system/helper/general. туда можно положить функцию детекшена мобилки. что-то вроде function isMobile() { return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]); } типичная задача не выводить левую колонку на мобике. есть строки, в контроллере, которые рендерят левую колонку $data['column_left'] = isMobile() ? "" : $this->load->controller('common/column_left'); еще есть одна тонкость. такой isMobile будет каждый раз проверять одно и тоже при многократном вызове. его тоже НУЖНО оптимизировать. кешировать результат в пределах одного запроса. например членом класса, как это реализован в либе корзины кстати, лейзи на чистом джс это прошлый век. нынче атрибут лодинг поддерживается всеми браузерами для изображений https://developer.mozilla.org/ru/docs/Web/HTML/Element/img#attr-loading -
добрый вечер. есть, но версия не самая свежая
- 256 replies
-
- комплекты про
- серии
- (and 6 more)
-
Подскажите как убрать надписи в шапке сайта
kJlukOo replied to afdmin321's topic in Opencart 2.x: General questions
var_dump или print_r нужно было искать -
пишите в личку. помогу
- 256 replies
-
- комплекты про
- серии
- (and 6 more)
-
попробуйте взять этот метод из актуальной версии. метод был пересиан, а баг пофикшен
- 256 replies
-
- комплекты про
- серии
- (and 6 more)
-
[Поддержка] Авто-подбор рекомендуемых товаров
kJlukOo replied to kJlukOo's topic in Модули и дополнения
старые - товары с рекомендуемыми. новые - без- 120 replies
-
- рекомендуемые
- авто рекомендуемые
-
(and 1 more)
Tagged with:
-
пишите в личку помогу
-
форум наверно умеет так контроллер админки закрыт. остальное открыто. пишите в личку контроллер админки открытый дам
- 256 replies
-
- 1
-
- комплекты про
- серии
- (and 6 more)
-
это дата окончания акции на комплект
- 256 replies
-
- 1
-
- комплекты про
- серии
- (and 6 more)
-
за округление цены товаров отвечает библииотека cart.php. я могу максимум влиять на округление скидки
- 256 replies
-
- комплекты про
- серии
- (and 6 more)
-
думаю да. но чтобы подтянулись опции от HPM в модалках товаров от моего модуля что-то полюбому придется допилить
- 256 replies
-
- 1
-
- комплекты про
- серии
- (and 6 more)