-
Posts
385 -
Joined
-
Last visited
Content Type
Profiles
Forums
Marketplace
Articles
FAQ
Our New
Store
Blogs
module__dplus_manager
Everything posted by Skiffjkee
-
Добрый день! Изменений, касающихся яндекс денег и юмани не было?
-
Еще ни разу не обновлял движок) Надеюсь, будет подробная инструкция)
-
На сколько понимаю, можно без проблем будет обновиться с 3.0.2?
-
Варизный сайт, не хочу рисковать... Тогда можно проще поступить, сделать бэкапы, снести модуль и установить в ручную, потом просто надо будет заменить файл в систем и все?
-
Странно, но на этом форуме ничего найти не могу, гуглил, там только все ведет на варезные помойки... На сколько понимаю, мне необходимо содержимое файла на сайте заменить на то, что в той папке? Подскажите плиз путь, где этот файл на сайте?
-
А можно плиз подробнее, как модификатор отредактировать?
-
@OCdevWizard Добрый день! Пытаюсь обновить и застрял на 4 шаге В той папке 2 файла, пробовал оба установить, но вылетает ошибка "Неправильный тип файла!"
-
Возможно кому ни будь полезно будет, для себя вот как сделал .ocfilter-mobile .fa-filter:before{content:"Фильтр" !important;display:inline-block;-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-o-transform:rotate(270deg);-ms-transform:rotate(90deg);transform:rotate(270deg);position:absolute;top:20px;left:-12px;} .ocfilter-mobile-handle button{height:65px;width:30px;position:absolute;top:120px;} .ocfilter-mobile .fa-filter{position:absolute;top:5px;left:5px;}
-
Всем привет! Нашел в, как выводить название кнопки на мобилке... .fa.fa-filter:after { content: "Фильтр"; padding-left: 10px; } Если будет мешать воронка, то по-другому .fa-filter:before { content: "Фильтр" !important; } Возможно есть варианты, как сделать, что бы текст был вертикальным? Или еще какие ни будь интересные варианты?
-
Перезагрузка блоков не работает на Iphone
Skiffjkee replied to Skiffjkee's topic in Opencart 3.x: General questions
Пробовал на 3 разных - сафари, хром и яндекс... -
-
Другая цена в зависимости от суммы заказа
Skiffjkee replied to hmade's topic in Opencart 3.x: Extension search
Тоже интересует подобный модуль, что бы от определенной цены (например 10к) изменялись цены, как например забитые (через акции) для определенной группы клиентов. И после завершения заказа (статус, заданного в настройках), клиенту присваивался группа, по ценам которой он купил.. -
Всем привет, столкнулся с такой особенностью. Стоит симпл и автозаполнение полей dadata, когда прописываю город или изменяю, происходит перезагрузка полей (обновляются расчеты доставок). На компе и андроиде все работает отлично, но на айфонах перезагрузка не происходит. Если отключить модуль dadata, то и на айфоне все отлично работает... Возможно кто то сможет подсказать, почему огрызок капризничает? Код dadata // Ваш api ключ из лк дадаты https://dadata.ru/#registration_popup var token = ""; // Для блока адресс function checkAddress($city, $address, $postcode, $region) { // Если инпут города нету выходим if (!$city.length) return; var type = 'ADDRESS'; $city.suggestions({ token: token, type: type, bounds: "city-settlement", geoLocation: false, onSelect: enforceCity, onSelectNothing: enforceCity, formatSelected: formatCitySelected }); $address.suggestions({ token: token, type: type, onSelect: restrictAddressValue, formatSelected: formatSelected }); // Если на поле адрес есть перезагрузка поля var p = $postcode.val() || ""; var a = $address.val() || ""; $city.on("suggestions-fixdata", function(e, suggestion) { //console.log(suggestion); $address.val(a); $postcode.val(p) } ); $city.suggestions().fixData(); function setConstraints(sgt, kladr_id) { var restrict_value = false; var locations = null; if (kladr_id) { locations = { kladr_id: kladr_id }; restrict_value = true; } sgt.setOptions({ constraints: { locations: locations }, restrict_value: restrict_value }); } function enforceCity(suggestion) { var sgt = $address.suggestions(); sgt.clear(); if (suggestion.data !== undefined && suggestion.data.kladr_id !== undefined) { setConstraints(sgt, suggestion.data.kladr_id); formatRegion(suggestion.data); } else { setConstraints(sgt, null); } } function formatCitySelected(suggestion) { var address = suggestion.data; if (address.city_with_type === address.region_with_type) { return address.settlement || address.city || ""; } else { return join([ address.city, address.settlement ]); } } var REGION_MAPPING = { "2200000000000": "2726", // Алтайский край "2800000000000": "2729", // Амурская обл "2900000000000": "2724", // Архангельская обл "3000000000000": "2725", // Астраханская обл "9900000000000": "4232", // г Байконур "3100000000000": "2727", // Белгородская обл "3200000000000": "2730", // Брянская обл "3300000000000": "2799", // Владимирская обл "3400000000000": "2801", // Волгоградская обл "3500000000000": "2802", // Вологодская обл "3600000000000": "2803", // Воронежская обл "7900000000000": "2728", // Еврейская Аобл "7500000000000": "2722", // Забайкальский край "3700000000000": "2741", // Ивановская обл "3800000000000": "2740", // Иркутская обл "3900000000000": "2743", // Калининградская обл "4000000000000": "2744", // Калужская обл "4100000000000": "2775", // Камчатский край "0900000000000": "2733", // Респ Карачаево-Черкесская "4200000000000": "2747", // Кемеровская область - Кузбасс "4300000000000": "2804", // Кировская обл "1100000000000": "2787", // Респ Коми "4400000000000": "2750", // Костромская обл "2300000000000": "2745", // Краснодарский край "2400000000000": "2752", // Красноярский край "9100000000000": "4233", // Респ Крым "4500000000000": "2754", // Курганская обл "4600000000000": "2755", // Курская обл "4700000000000": "2791", // Ленинградская обл "4800000000000": "2757", // Липецкая обл "4900000000000": "2758", // Магаданская обл "7700000000000": "2761", // г Москва "5000000000000": "2751", // Московская обл "5100000000000": "2762", // Мурманская обл "8300000000000": "2764", // Ненецкий АО "5200000000000": "2766", // Нижегородская обл "5300000000000": "2767", // Новгородская обл "5400000000000": "2768", // Новосибирская обл "5500000000000": "2769", // Омская обл "5600000000000": "2771", // Оренбургская обл "5700000000000": "2770", // Орловская обл "5800000000000": "2773", // Пензенская обл "5900000000000": "2774", // Пермский край "2500000000000": "2800", // Приморский край "6000000000000": "2777", // Псковская обл "1400000000000": "2805", // Респ Саха /Якутия/ "0100000000000": "2760", // Респ Адыгея "0400000000000": "2738", // Респ Алтай "0200000000000": "2794", // Респ Башкортостан "0300000000000": "2796", // Респ Бурятия "0500000000000": "2759", // Респ Дагестан "0600000000000": "2765", // Респ Ингушетия "0700000000000": "2763", // Респ Кабардино-Балкарская "0800000000000": "2736", // Респ Калмыкия "1000000000000": "2776", // Респ Карелия "1200000000000": "2808", // Респ Марий Эл "1300000000000": "2782", // Респ Мордовия "1500000000000": "2798", // Респ Северная Осетия - Алания "1600000000000": "2746", // Респ Татарстан "1700000000000": "2756", // Респ Тыва "1900000000000": "2721", // Респ Хакасия "6100000000000": "2778", // Ростовская обл "6200000000000": "2779", // Рязанская обл "6300000000000": "2781", // Самарская обл "7800000000000": "2785", // г Санкт-Петербург "6400000000000": "2783", // Саратовская обл "6500000000000": "4234", // Сахалинская обл "6600000000000": "2807", // Свердловская обл "9200000000000": "4235", // г Севастополь "6700000000000": "2784", // Смоленская обл "2600000000000": "2786", // Ставропольский край "6800000000000": "2788", // Тамбовская обл "6900000000000": "2792", // Тверская обл "7000000000000": "2789", // Томская обл "7100000000000": "2790", // Тульская обл "7200000000000": "2793", // Тюменская обл "1800000000000": "2742", // Респ Удмуртская "7300000000000": "2795", // Ульяновская обл "2700000000000": "2748", // Хабаровский край "8600000000000": "2749", // Ханты-Мансийский Автономный округ - Югра "7400000000000": "2732", // Челябинская обл "2000000000000": "2739", // Респ Чеченская "2100000000000": "2731", // Чувашская Республика - Чувашия "8700000000000": "2723", // Чукотский АО "8900000000000": "2780", // Ямало-Ненецкий АО "7600000000000": "2806", // Ярославская обл }; function formatRegion(address) { $postcode.val(address.postal_code || ''); if (address.region_kladr_id) { var region_num = REGION_MAPPING[address.region_kladr_id]; $region.val(region_num); } } function restrictAddressValue(suggestion) { var citySgt = $city.suggestions(); var addressSgt = $address.suggestions(); if (!citySgt.currentValue) { citySgt.setSuggestion(suggestion); var city_kladr_id = suggestion.data.kladr_id.substr(0, 13); setConstraints(addressSgt, city_kladr_id); } } function formatSelected(suggestion) { var addressValue = makeAddressString(suggestion.data); return addressValue; } function makeAddressString(address) { formatRegion(address); return join([ address.street_with_type, join([address.house_type, address.house, address.block_type, address.block ], " "), join([address.flat_type, address.flat], " ") ]); } function join(arr /*, separator */ ) { var separator = arguments.length > 1 ? arguments[1] : ", "; return arr.filter(function (n) { return n }).join(separator); } } // Для блока адресс берем в переменные нужные инпуты var $city = $('#shipping_address_city'); var $address = $('#shipping_address_address_1'); var $postcode = $('#shipping_address_postcode'); var $zoneId = $('#shipping_address_zone_id'); // Для блока адресс вызов checkAddress($city, $address, $postcode, $zoneId); // Для блока имени, фамилия function initName($surname, $name) { // Если инпута фамилия или имя нету, выходим if (!$surname.length || !$name.length) return; $surname.suggestions({ token: token, type: "NAME", triggerSelectOnSpace: false, hint: "", noCache: true, params: { // каждому полю --- соответствующая подсказка parts: ['SURNAME'] } }); $name.suggestions({ token: token, type: "NAME", triggerSelectOnSpace: false, hint: "", noCache: true, params: { // каждому полю --- соответствующая подсказка parts: ['NAME', 'PATRONYMIC'] } }); }; // Для блока имени, фамилия вызов var $surname = $("#shipping_address_lastname"); var $name = $("#shipping_address_firstname"); initName($surname, $name); // Для блока email с проверкой есть ли данный инпут var $email = $("#customer_email"); if ($email.length) { $email.suggestions({ token: token, type: "EMAIL", }); }
-
Проблему с неверным определением региона получилось победить Нужно сопоставить каждому номеру kladr_id региона (их можно посмотреть на https://github.com/hflabs/region/blob/master/region.csv) и составить такую карту соответствия: var REGION_MAPPING = { "2200000000000": "2726", // Алтайский край "2800000000000": "2729", // Амурская обл ... }; Дальше эту карту можно использовать в formatRegion() примерно так: function formatRegion(address) { $postcode.val(address.postal_code || ''); if (address.region_kladr_id) { var region_num = REGION_MAPPING[address.region_kladr_id]; $region.val(region_num); } } Остался открытый вопрос, почему перезагрузка не работает на мобильной версии, когда вводится город или когда изменяется. На компе все отлично работает...
-
Заметил такую особенность, что именно на мобильной версии не срабатывает перезагрузка поля, когда вводишь или изменяешь блоки город, адрес, индекс. В симпле перезагрузка включена, в чем может быть проблема? и второй вопрос продублирую Таких случаев хватает, например если город Омск, то всегда по разному срабатывает определение области, Омская или Томская. На сколько понимаю, проблема в дадате, что нет четкой привязки между регионами модуля и регионами самого опенкарта?
-
@deeman Добрый день! Облазил все настройки, справку и поиск по теме, но ответа не нашел! Стоит опция перезагрузка полей, автозаполнение через модуль DADATA и работает все хорошо, но вот на мобильной версии в блоках город, адрес, индекс - после ввода или изменения, перезагрузка не происходит. Подскажите, из-за чего может быть такая особенность?
-
Может кто замечал такой же баг, как у меня. Например регион Ненецкий автономный округ, город Нарьян-Мар. При вводе города вылетает регион Ямало-Ненецкий автономный округ. Нажимаю кнопку обновить в корзине, и регионы чередуются между собой. Такой прикол заметил на нескольких регионах, при отключении модуля, все нормально работает...
-
@SirGrey Благодарю, пошел пробовать!)
-
Продублирую весь код, для тех, у кого симпл с опцией добавления отчества. // Ваш api ключ из лк дадаты https://dadata.ru/#registration_popup var token = "ввести сюда ключ"; // Для блока адресс function checkAddress($city, $address, $postcode, $region) { // Если инпут города нету выходим if (!$city.length) return; var type = 'ADDRESS'; $city.suggestions({ token: token, type: type, bounds: "city-settlement", geoLocation: false, onSelect: enforceCity, onSelectNothing: enforceCity, formatSelected: formatCitySelected }); $address.suggestions({ token: token, type: type, onSelect: restrictAddressValue, formatSelected: formatSelected }); // Если на поле адрес есть перезагрузка поля var p = $postcode.val() || ""; var a = $address.val() || ""; $city.on("suggestions-fixdata", function(e, suggestion) { //console.log(suggestion); $address.val(a); $postcode.val(p) } ); $city.suggestions().fixData(); function setConstraints(sgt, kladr_id) { var restrict_value = false; var locations = null; if (kladr_id) { locations = { kladr_id: kladr_id }; restrict_value = true; } sgt.setOptions({ constraints: { locations: locations }, restrict_value: restrict_value }); } function enforceCity(suggestion) { var sgt = $address.suggestions(); sgt.clear(); if (suggestion) { setConstraints(sgt, suggestion.data.kladr_id); formatRegion(suggestion.data); } else { setConstraints(sgt, null); } } function formatCitySelected(suggestion) { var address = suggestion.data; if (address.city_with_type === address.region_with_type) { return address.settlement || address.city || ""; } else { return join([ address.city, address.settlement ]); } } function formatRegion(address) { $postcode.val(address.postal_code || ''); if ($region.length) { var result = address.region.replace(/\s{0,1}[-\/].+/gi, '').toLowerCase(); $region.find('option').each(function (i, o) { if ($(o).text().toLowerCase().search(result) >= 0) $(this).attr('selected', true); else $(this).attr('selected', false); }); } } function restrictAddressValue(suggestion) { var citySgt = $city.suggestions(); var addressSgt = $address.suggestions(); if (!citySgt.currentValue) { citySgt.setSuggestion(suggestion); var city_kladr_id = suggestion.data.kladr_id.substr(0, 13); setConstraints(addressSgt, city_kladr_id); } } function formatSelected(suggestion) { var addressValue = makeAddressString(suggestion.data); return addressValue; } function makeAddressString(address) { formatRegion(address); return join([ address.street_with_type, join([address.house_type, address.house, address.block_type, address.block ], " "), join([address.flat_type, address.flat], " ") ]); } function join(arr /*, separator */ ) { var separator = arguments.length > 1 ? arguments[1] : ", "; return arr.filter(function (n) { return n }).join(separator); } } // Для блока адресс берем в переменные нужные инпуты var $city = $('#shipping_address_city'); var $address = $('#shipping_address_address_1'); var $postcode = $('#shipping_address_postcode'); var $zoneId = $('#shipping_address_zone_id'); // Для блока адресс вызов checkAddress($city, $address, $postcode, $zoneId); // Для блока имени, фамилия function initName($surname, $name) { // Если инпута фамилия или имя нету, выходим if (!$surname.length || !$name.length) return; $surname.suggestions({ token: token, type: "NAME", triggerSelectOnSpace: false, hint: "", noCache: true, params: { // каждому полю --- соответствующая подсказка parts: ['SURNAME'] } }); $name.suggestions({ token: token, type: "NAME", triggerSelectOnSpace: false, hint: "", noCache: true, params: { // каждому полю --- соответствующая подсказка parts: ['NAME', 'PATRONYMIC'] } }); }; // Для блока имени, фамилия вызов var $surname = $("#shipping_address_lastname"); var $name = $("#shipping_address_firstname"); initName($surname, $name); // Для блока email с проверкой есть ли данный инпут var $email = $("#customer_email"); if ($email.length) { $email.suggestions({ token: token, type: "EMAIL", }); }
-
@openprice Решение для опенкарт 2.3 Находим в файле /system/library/cart/cart.php // Product Specials $product_special_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$cart['product_id'] . "' AND customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1"); if ($product_special_query->num_rows) { $price = $product_special_query->row['price']; } и вставляем его выше перед // Product Discounts