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

Search the Community

Showing results for tags 'oc3'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Genaral
    • Новости и анонсы
    • Предложения и пожелания
    • Акции, подарки, конкурсы и награды
  • Opencart 4.x
    • Opencart 4.x: General questions
    • Opencart 4.x: Installing and updating
    • Opencart 4.x: Localization
    • Opencart 4.x: Setting and optimization
    • Opencart 4.x: Sandbox
    • Opencart 4.x: Extension search
    • Opencart 4.x: Bug Reporting
  • Opencart 3.x
    • Opencart 3.x: General questions
    • Opencart 3.x: Installing and updating
    • Opencart 3.x: Localization
    • Opencart 3.x: Setting and optimization
    • Opencart 3.x: Sandbox
    • Opencart 3.x: Extension search
    • Opencart 3.x: Bug Reporting
  • Opencart 2.x
    • Opencart 2.x: General questions
    • Opencart 2.x: Installing and updating
    • Opencart 2.x: Localization
    • Opencart 2.x: Setting and optimization
    • Opencart 2.x: Sandbox
    • Opencart 2.x: Extension search
    • Opencart 2.x / ocStore 2.x: Bug Reporting
  • Реклама и продвижение
    • SEO-вопросы (оптимизация и продвижение магазина)
    • Контекстная реклама
    • Торговые площадки
    • E-commerce tracking и бизнес аналитика
    • Разное
  • Поддержка и ответы на вопросы
    • Общие вопросы
    • Установка, обновление, настройка
    • Шаблоны, дизайн и оформление магазина
    • Модули и дополнения
    • Помощь программистам и разработчикам
    • Мобильная витрина
    • Вопросы безопасности
    • Перевод
    • Отчёты об ошибках
    • Интернет-магазины и электронная коммерция
    • Песочница
  • Услуги
    • Создание магазинов под ключ
    • Дизайн, верстка и шаблоны
    • Программирование, создание модулей, изменение функциональности
    • Настройка и мелкая работа по уже существующему сайту
    • Обновление версии движка магазина
    • Наполнение магазина
    • Системное администрирование (настройка хостинга, серверов, ПО)
    • Другие услуги
  • Разное
    • Пользовательские обзоры дополнений
    • Примеры сайтов на OpenCart (ocStore)
    • Курилка
    • Предложения по улучшению

Categories

  • Шаблоны
    • Бесплатные шаблоны
    • Платные шаблоны
  • Filters
  • Promotions & Pricing
  • Реклама и продвижение
  • Coupons & reward points, affiliate programs
  • Blogs, News & Articles
  • Shopping Cart & Order
  • Product Options
  • Product Attributes
  • Product Combinations
  • Search
  • SEO & Optimization
  • Caching & Server Performance
  • Платежные системы
  • Доставки
  • Editors
  • Design & Navigation
  • Banners, Slideshows & Galleries
  • Email Marketing & SMS Integration
  • Customer Support & Chat
  • Обмен данными
  • Учет в заказе
  • Compare & Wishlist
  • Социальные сети
  • Parsers
  • Модули
  • Tools & Developer Tools
  • Licenses
  • Языковые пакеты
  • Other
  • Отчеты
  • Сборки
    • ocStore
  • Услуги
    • Графика и дизайн
    • Маркетинг

Categories

  • Служебные документы
  • Оплата
  • Документация Opencart

Categories

  • Gereneral questions
  • Purchasing extensions
  • For developer
  • Account
  • Technical support
  • Financial department

Blogs

  • Konorws (Разработка и модификация Opencart)
  • Блог mr.Kent)
  • Прожектор Бритни Спирс
  • Layk
  • Продвижение интернет-магазина, seo оптимизация
  • Записная книжка
  • Блог RGB
  • Модули которые сделают сайт лучше
  • Блог веб-студии NeoSeo
  • Useful IT
  • del
  • Найденные решения проблем с Opencart
  • ocdroid blog
  • Заметки на полях...
  • Pimur
  • Серж Ткач
  • О жизни, смерти, о бизнесе и Опенкарте
  • Просто мысли от laim731
  • Маркетинг и продвижение интернет-магазина
  • Мой копирайтинг
  • SEO боксинг специального назначения
  • Get-Web Dev
  • Seok
  • Блоги sitecreator-а
  • Best practice
  • Vlad-Egorov-Blog
  • Блог spectre
  • commanddotcom
  • Внимание мошенники
  • Наблюдения обычного человека
  • Блог Rassol2
  • Блог Exploits
  • блог для натуралов
  • Настюша, тут есть темы
  • Пропитано рекламой
  • Tutorial
  • ОтВинта
  • Tg chnls
  • Блог
  • Блог sv2109
  • КАК ОРГАНИЗОВАТЬ НОВОСТНЫЕ ПОДПИСКИ НА БАЗЕ API OPENCART 3/0/2
  • VDS/VPS, серверы под Linux: установка, настройка, оптимизация
  • IT блог
  • Блог
  • Opencart SEO
  • Путёвые заметки о работе магазина NiceBike на платформе OpenCart
  • Blondi Blog
  • Полезные статьи, новости.
  • Эмоциям нужен выход, особенно на удалённой работе
  • Блог владельца магазина
  • Хостинг для OpenCart
  • разное
  • ПРОДАЖА АКАУНТОВ-binance ВЕРИФИЦИРОВАННЫe ЧИСТЫЕ УСПЕВАЙТЕ КУПИТЬ ПО НИЗКОЙ ЦЕНЕ
  • Диспансеризация
  • wozobat
  • quasarbyte
  • Мой блог
  • Igorych
  • aaaaa
  • 👌🔊Bellsouth CUSTOMER support number 1+(8O8)678=9O64-☎phone number
  • Liudmila marketer

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Сайт


Skype


Город:


Интересы

  1. Version 2.0.1

    Поддержка: OpenCart 3.x.x.x Возможности: Выводит дату последней модификации для страниц категорий, товаров и статьей и для главной страницы. Можно менять вручную дату последней модификации категорий Можно менять вручную дату последней модификации статей Можно менять вручную дату последней модификации главной страницы Установить: Модули/Расширения -> Установка расширений. Выбрать архив с модулем и Загрузить. Модули/Расширения -> выбрать установленный модуль (Last Modified ...) -> Активировать Зайти в активированный модуль и установить время для главной страницы Модули/Расширения -> Модификаторы. Нажать кнопку Обновить Обращаем ваше внимание, что заголовок LastModified не отдаётся для WWW-доменов с включенным SSI. Перед покупкой проверьте передает ли ваш сервер параметры $_SERVER['HTTP_IF_MODIFIED_SINCE'] или $_ENV['HTTP_IF_MODIFIED_SINCE'] * Если при установке модуля возникает ошибка "Директория не доступна для записи!" - необходимо поставить бесплатный модуль Localcopy OCMOD для Opencart 3 Зачем нужен Last-Modified HTTP заголовок Last-Modified сообщает клиенту время последнего изменения страницы (объекта). Если клиент (браузер, поисковый робот) получил заголовок Last-Modified, то при следующем обращении к адресу, при условии, что страница (объект) есть в локальном кеше, он добавит вопрос If-Modified-Since(не изменилась ли страница после даты, полученной в Last-Modified). В свою очередь сервер, получив запрос If-Modified-Since должен сверить полученную временную метку с временем последнего изменения страницы и, если страница не изменялась ответить 304 Not Modified. Экономия Трафика Если страница не изменилась, то сервер прекратит передачу данных после отправки заголовков с кодом 304 Not Modified, тело страницы, изображения и другие объекты передаваться не будут. Снижение нагрузки на сервер Правильная реализация проверки времени последнего изменения страницы может значительно (до 30% и более) сократить нагрузку на сервер. Под правильной реализацией подразумевается проверка времени до начала генерации страницы на динамическом сайте. В таком случае все действия для генерации страницы (запрос контента из базы данных, парсинг шаблонов, получение комментариев и др) выполняться не будут. Особенно это актуально для сайтов с высокой посещаемостью и долгой продолжительностью визита пользователя. Пример: пользователь находится на сайте спортивных новостей и постоянно обновляет главную страницу в ожидании публикации результата матча. За несколько минут страница может быть запрошена и получена десятки раз. Если заголовок Last-Modified отдается и запрос If-Modified-Since обрабатывается правильно, то реально страница будет передана один раз, а на все последующие запросы будет выдан ответ 304 Not Modified. Ускорение индексации поисковыми системами Поисковые системы через руководство для вебмастеров рекомендуют отсылать заголовок Last-Modifiedи правильно обрабатывать If-Modified-Since.
    $9
  2. Version 1.0.0

    Особенности: простота установки; создание неограниченного количества блоков; простота использования без каких-либо знаний в области программирования; мультиязычность (English, Русский, Українська) Преимущества: переопределение заголовка модуля; управлением изображением, заголовком и кратким описанием для блоков; Изменение количества столбцов (Bootstrap3); управление размером и выравниванием изображения;
    $10
  3. Всем привет подскажите как убрать вспылвающее увидомление одобавление товар в ocstore 3?вот фото прочел несколько статей пока не понял что делать вот скрип в common.js и в product.twig <script> $('body').on('click', '#button-cart', function(){ $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'), dataType: 'json', cache: false, beforeSend: function() { $('#button-cart').button('loading'); }, complete: function() { $('#button-cart').button('reset'); }, success: function(json) { $('.alert-dismissible, .text-danger').remove(); $('.form-group').removeClass('has-error'); if (json['error']) { if (json['error']['option']) { let errorOption = ''; for (i in json['error']['option']) { var element = $('#input-option' + i.replace('_', '-')); if (element.parent().hasClass('input-group')) { element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } errorOption += '<div class="alert-text-item">' + json['error']['option'][i] + '</div>'; } rmNotify('danger', errorOption); } if (json['error']['error_warning']) { rmNotify('danger', json['error']['error_warning']); } if (json['error']['recurring']) { $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>'); } // Highlight any found errors $('.text-danger').parent().addClass('has-error'); } if (json['success']) { if (json['isPopup']) { octPopupCart(); } else { rmNotify('success', json['success']); } if (typeof octYandexEcommerce == 'function') { octYandexEcommerce(json); } // Need to set timeout otherwise it wont update the total setTimeout(function() { $('#oct-cart-quantity, .rm-header-cart-quantity, #mobile_cart_index, .oct-fixed-bar-quantity-cart').html(json['total_products']); $('.rm-header-cart-text').html(json['total_amount']); }, 100); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }); </script> это то что в product.twig // Cart add remove functions var cart = { 'add': function(product_id, quantity) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1), dataType: 'json', cache: false, beforeSend: function() { $('#cart > button').button('loading'); }, complete: function() { $('#cart > button').button('reset'); }, success: function(json) { $('.alert-dismissible, .text-danger').remove(); if (json['redirect']) { location = json['redirect']; } if (json['error'] && json['error']['error_warning']) { rmNotify('danger', '<div class="alert-text-item">' + json['error']['error_warning'] + '</div>'); } if (json['success']) { if (json['isPopup']) { octPopupCart(); } else { rmNotify('success', json['success']); } if (typeof octYandexEcommerce == 'function') { octYandexEcommerce(json); } // Need to set timeout otherwise it wont update the total setTimeout(function() { $('#oct-cart-quantity, .rm-header-cart-quantity, #mobile_cart_index, .oct-fixed-bar-quantity-cart').html(json['total_products']); $('.rm-header-cart-text').html(json['total_amount']); }, 100); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }, 'update': function(key, quantity) { $.ajax({ url: 'index.php?route=checkout/cart/edit', type: 'post', data: 'key=' + key + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1), dataType: 'json', cache: false, beforeSend: function() { $('#cart > button').button('loading'); }, complete: function() { $('#cart > button').button('reset'); }, success: function(json) { // Need to set timeout otherwise it wont update the total setTimeout(function() { $('#oct-cart-quantity, .rm-header-cart-quantity, #mobile_cart_index, .oct-fixed-bar-quantity-cart').html(json['total_products']); $('.rm-header-cart-text').html(json['total_amount']); }, 100); var now_location = String(document.location.pathname); if ((now_location == '/cart/') || (now_location == '/cart') || (now_location == '/checkout/') || (now_location == '/checkout') || (getURLVar('route') == 'checkout/cart') || (getURLVar('route') == 'checkout/checkout')) { location = 'index.php?route=checkout/cart'; } else { $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }, 'remove': function(key) { $.ajax({ url: 'index.php?route=checkout/cart/remove', type: 'post', data: 'key=' + key, dataType: 'json', cache: false, beforeSend: function() { $('#cart > button').button('loading'); }, complete: function() { $('#cart > button').button('reset'); }, success: function(json) { // Need to set timeout otherwise it wont update the total setTimeout(function() { $('#oct-cart-quantity, .rm-header-cart-quantity, #mobile_cart_index, .oct-fixed-bar-quantity-cart').html(json['total_products']); $('.rm-header-cart-text').html(json['total_amount']); }, 100); var now_location = String(document.location.pathname); if ((now_location == '/cart/') || (now_location == '/cart') || (now_location == '/checkout/') || (now_location == '/checkout') || (getURLVar('route') == 'checkout/cart') || (getURLVar('route') == 'checkout/checkout')) { location = 'index.php?route=checkout/cart'; } else { $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); } } это в common.js Всем заранее спс!
  4. Добрый день! Странная ситуация стала время от времени возникать с некоторыми товарами со скидкой: при оформлении заказа в корзине устанавливается не цена с примененной скидкой, а старая цена. Но, что важно, такая ситуация не со всеми товарами со скидкой, а с 1-2 карточками. Кто-нибудь сталкивался с подобным? Если да, то как решили?
  5. Привет! Может кто решал проблему с тем, что клик по кнопке смены языка редиректит на главную и при этом с некрасивым ( index.php?route=common/home ) урлом? И может модуль есть для OC3 который работает как seo cms? OC 3.0.2.0 спасибо
  6. Всех приветствую! Дайте подсказок пож-та. В голове настал тупик Продаю б/у запчасти (разборка). Есть марка авто, есть модель авто, есть категории деталей к каждому из авто. Как и чем можно сделать, чтобы не плодить категории под каждую марку-модель, но при этом выводить в меню. Т.е. пример: Деталь "Генератор" от марки Audi модели Allroad и конкретный номер авто "52" должна быть в категории "Электрооборудование". Чего хочется добиться: Получить выборку всех деталей по марке+модели Получить выборку всех деталей из категории (в данном случае электрооборудование) Получить выборку вместе пунктов 1 и 2 (т.е. хочу вот для Audi Allroad посмотреть электрооборудование) Получить выборку всех деталей от конкретного авто "52" Это вообще в опенкарте реально? Чем такое реализовывают? OCFilter что ли надо прикрутить? Заранее благодарю!
  7. Добрый день! Помогите разобраться "новичку" на OcStore 3.0.2.0. Прошу прощения, может такая тема уже поднималась ранее. На тестовом сайте http://shipellina.h1n.ru на последнем шаге при нажатии Подтверждение заказа появляется след. ошибка: 2019-05-14 12:55:43 - PHP Warning: mail() has been disabled for security reasons in /var/www/shippell/data/www/shipellina.h1n.ru/system/library/mail/mail.php on line 77 2019-05-14 12:55:43 - PHP Warning: mail() has been disabled for security reasons in /var/www/shippell/data/www/shipellina.h1n.ru/system/library/mail/mail.php on line 77 2019-05-14 12:55:43 - PHP Warning: mail() has been disabled for security reasons in /var/www/shippell/data/www/shipellina.h1n.ru/system/library/mail/mail.php on line 77 при повторном нажатии на кнопку "Подтверждение заказа" появляется сообщение, что Ваш заказ успешно создан. Но ни на e-mail магазина, ни клиенту не пришли оповещения о заказе. Хотя в настройках магазина в разделе E-Mail оповещения стоит галочка получать оповещения при Заказе и указаны дополнительные адреса (e-mail магазина) для оповещения.
  8. Добавил категорию ,а она не отображается в админке,занимает url ,добавил еще в нее случайно подкатегорию,она тоже пропала,подскажите как решить эту проблему
  9. Насколько мне известно для того что бы xdebug работал с twig нужно указать путь к папке с кешом.Я пробывал 2 варианта C: \ OSPanel \ domains \ oc.test \ storage \ cache и C: \ OSPanel \ domains \ oc.test \ upload \ system \ storage \ cache но они оба не работают. Что я делаю не так?
  10. Приветствую! Подскажите, может, кто сталкивался, необходимо к товару прикрепить аудио, для прослушивания звучания музыкального инструмента, может попадался такой модуль? Порекомендуйте, пожалуйста. Если нет, может кто возьмется написать?
  11. Добрый день. Необходим аудит проекта. Не устраивает скорость ответа сервера, загрузки и отрисовки страниц и т.д. В первую очередь необходимо понять, как оптимизировать страницы категорий и товаров, далее главная и блог, страницы подборов. Пример по странице товара (кэш браузера отключен): Пример категории (кэш браузера отключен): В идеале стремление к TTFB < 200 мс, DOM < 1 c, Load < 2 c (по-другому все показатели Google Page Speed для мобильных и десктопов в зеленой зоне). От вас нужен понятный чек-лист по шагам, что сделать, чтобы этого добиться (минификация скриптов, более производительный сервер и т.д.) и что даст каждый шаг оптимизации (в цифрах не надо - понятно, что это "вилами по воде", но хотя бы как улучшит в общих чертах). ВАЖНО: Различные кэширователи - последний инструмент, о котором стоит вести речь. На это есть 2 причины: 1. Страниц у проекта много (35 К+) и все их не закэшируешь, но краулеры будут обходить все и будут считать, что в целом сайт - плохой. 2. Мы уже пробовали 2 раза внедрять кэширование на базе инструментов различных - начинает ехать верстка, перестают работать формы и тд. БЮДЖЕТ: 5 000 Р P.s. Если есть вопросы - задавайте, за технические и логические ошибки - не ругайте, ибо не программист и могу "плавать" в разных вопросах.
  12. Notice: Undefined index: stock_status_id in /var/www/ch3de9dccf/www/oksana-dimitri.com/system/storage/modification/admin/model/catalog/product.php on line 7Warning: Cannot modify header information - headers already sent by (output started at /var/www/ch3de9dccf/www/oksana-dimitri.com/admin/controller/startup/error.php:34) in /var/www/ch3de9dccf/www/oksana-dimitri.com/system/library/response.php on line 36 вот такая ошибка когда добаляю товар. не могу найти причины. OcStore 3/0/2
  13. Добрый день. Необходимо оптимизировать сайт под управлением OC3. Не устраивает низкая скорость загрузки страниц и категорий. Важно провести оптимизацию не с помощью кэшировшиков, а исправив архитектурные и логические ошибки.
  14. Есть сайт на опенкарт 3. постоянно нужны доработки, как правило мелкие, иногда не очень. Ищем живого энергичного программиста , который поможет реализовывать наши задумки и сам будет предлагать решения по оптимизации и улучшению.
  15. Выкладываем на сайте товары , артикул заполняем такой же как у поставщика . Нужно создать модуль или с помощью АОП настроить обновление\загрузку фотографий для товаров по которым найдены совпадения артикула на сайте у поставщика . Постоянно возникает много мелких задач , ищем исполнителя который заинтересован в долгосрочном сотрудничестве . Требования к исполнителю : Опыт настройки модуля АОП Широкий кругозор в опенкарт 3 Рассматриваем разные форматы сотрудничества : Позадачно или по часам .
  16. Всем привет, ребят как можно найти кусок кода если в файлах его нет, а гугл показует что он есть? Суть в чем я нашел так он должен выглядить в оргинале -> у меня почему то класс и home не отображаються вместо этого стоит другой класс! вот так он у меня! и как найти и исправить классы хз! Все файлы прошарил не где нет такого! Может как то подругому можно его вывести ? Вот ссылка на сайт!
  17. Создаем магазин https://aroma-doterra.ru/ работает на OpenCart 3х + Unishop2 + SimplePars. Модуль парсинга работает с сайта doterra.com Нужно: 1. Настроить в OpenCart вариативность товаров, так как это принято в других CMS, но не принято в OpenCart. Все варианты в одной карточке (разные склады, объемы) 2. Коррективы текущих настроек парсинга + инструкции по его обслуживанию. 3. Простые визуальные коррективы + цветовая гамма и шрифты Подробно задание изложил здесь https://docs.google.com/document/d/1_9s1NDvjwCmt0sJCgosLUfAw_g5QTkv84Wps8jML1WE/edit#heading=h.kso68vj4czmo В Вашем отклике укажите: опыт решения подобных задач на OpenCart. Цена выполнения работы зависит от подхода выполнения задач и опыта исполнителя. Открыт к Вашим предложениям!
  18. Здравствуйте! Ищу модуль, с помощью которого можно создавать всплывающую строку с небольшим текстом и кнопкой. Строка должна быть на всю ширину сайта. Желательно возможность выставлять цвет строки, непрозрачность и цвет текста. Самому написать подобное не хватает навыков.
  19. Долгосрочное сотрудничество в приоритете. Нужен грамотный программист с свежим взглядом для доработки функционала OC3. Задач много и они разные , в основном маленькие по верстке на фронте . Бывают и более сложные , типа написания модуля для рекомендованных остатков в маркетплейсы. Пишите , более подробное ТЗ кину в личку.
  20. Доброго времени суток! На странице "контакты/связаться с нами" в форму нужно добавить поле "ваш телефон". Делаю по аналогии с полем "email", но в контроллере contact. php есть метод getEmail-и я не могу найти файл, где он прописан, чтобы создать по аналогии для телефона. Может кто-то имел опыт добавления телефона в эту форму? Я нашел подобную тему, но там для oc2...
  21. Всем добрый день. Имеется сайт, для которого необходимо выставить часовой пояс "America/Denver". В php.ini прописал, в startup.php if (!ini_get('date.timezone')) { date_default_timezone_set('UTC'); } Заменил на date_default_timezone_set('America/Denver'); По итогу php время корректное, время в БД корректное, но время на сервере остаётся в UTC: Каким образом можно решить данную проблему без установки модулей, создающих дополнительные поля в базе данных (module_timezone и им подобные)?
  22. Доброго времени суток! Подключаю в head файла header.twig кастомные js-скрипты (предварительно собранные и минифицированные в Gulp, на статичной версии сайта работают), путь верный (в devtools код 200), но по факту-не работают, не могу понять причину. Единственное-в консоли есть ошибка, но с этими же скриптами ее нет в статичной версии сайта
  23. Здравствуйте, возникла необходимость в добавлении поля выбора количества товара в модуле вариантов товара, саму кнопку добавления покупки товара я сделал, но возикла проблема с выбором количества и добавления этого количества в корзину. Не хочет отправлять нужное количество в корзину код модуля с кнопкой <div class="prodvar-button"> <div class="form-group"> <label class="control-label" for="input-quantity">{{ entry_qty }}</label> <div class="input-group number-spinner"> <span class="input-group-btn"> <button class="btn btn-default" data-dir="dwn"><i class="fa fa-minus"></i></button> </span> <input type="text" name="quantity" value="{{ product['minimum'] }}" id="input-quantity" class="form-control text-center" /> <span class="input-group-btn"> <button class="btn btn-default" data-dir="up"><i class="fa fa-plus"></i></button> </span> </div> <input type="hidden" name="product_id" value="{{ product['product_id'] }}" /> <br /> <button type="button" id="button-cart" data-loading-text="{{ text_loading }}" class="btn btn-primary btn-lg btn-block">{{ button_cart }}</button> </div> </div> В кнопку <button type="button" id="button-cart" class="btn btn-primary btn-lg btn-block">{{ button_cart }}</button> добавлял атрибут onclick="cart.add('{{ product['product_id'] }}', $(this).parent().parent().find('.quantity_input').val());" работало только с onclick="cart.add('{{ product['product_id'] }}', {{ product['minimum'] }} но добавлял только 1 товар код для переключалки количества $(document).on('click', '.number-spinner button', function () { var btn = $(this), oldValue = btn.closest('.number-spinner').find('input').val().trim(), newVal = 1; if (btn.attr('data-dir') == 'up') { newVal = parseInt(oldValue) + 1; } else { if (oldValue > 1) { newVal = parseInt(oldValue) - 1; } else { newVal = 1; } } btn.closest('.number-spinner').find('input').val(newVal); }); Как сделать так чтобы было стандартное поле как с правой стороны и оно адекватно работало? в идеале нужно чтоб оно отправляло данные в попап корзину, с блоком справа код ниже работает $(function() { $.ajax({ type: 'get', url: 'index.php?route=extension/module/cart_popup/initcart', dataType: 'json', cache: false, success: function(json) { $.each($("[onclick^='"+json['add_function_selector']+"']"), function() { var product_id = $(this).attr('onclick').match(/[0-9]+/); $(this) .attr('onclick', 'call_cp(\'' + $(this).attr('onclick').match(/[0-9]+/) + '\',\'' + 'add' + '\');') .addClass('cp-call-button'); }); var product_id_in_page = $("input[name='product_id']").val(); $('#'+json['add_id_selector']) .unbind('click') .attr('onclick', 'call_cp(\'' + product_id_in_page + '\',\'' + 'add_option' + '\');'); if (json['cart_products']) { $.each(json['cart_products'], function(i,value) { $('[onclick="call_cp(\'' + value + '\',\'' + 'add' + '\');"]') .html('<i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md">' + json['text_in_cart'] + '</span>') .attr('onclick', 'call_cp(\'' + value + '\',\'' + 'load' + '\');'); $('[onclick="call_cp(\'' + value + '\',\'' + 'add_option' + '\');"]') .html(json['text_in_cart']) .attr('onclick', 'call_cp(\'' + value + '\',\'' + 'load_option' + '\');'); }); } if (json['cart_products_vs_options']) { $.each(json['cart_products_vs_options'], function(i,value) { $('[onclick="call_cp(\'' + value + '\',\'' + 'add' + '\');"]') .html('<i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md">' + json['text_in_cart'] + '</span>'); $('[onclick="call_cp(\'' + value + '\',\'' + 'add_option' + '\');"]') .html(json['text_in_cart_vs_options']); }); } } }); }); function call_cp(product_id, action) { quantity = typeof(quantity) != 'undefined' ? quantity : 1; if (action == "add") { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: 'product_id=' + product_id + '&quantity=' + quantity, dataType: 'json', cache: false, success: function(json) { if (json['redirect']) { location = json['redirect']; } if (json['success']) { cpInit(); call_cp(product_id,'load'); $('#cart-total').html(json['total']); } } }); } if (action == "load" || action == "load_option") { $.magnificPopup.open({ tLoading: '<img src="catalog/view/theme/default/stylesheet/cart_popup/loading.svg" alt="" />', items: { src: 'index.php?route=extension/module/cart_popup', type: 'ajax' }, showCloseBtn: false }); $('.mfp-bg').css({ 'background': 'url(image/cart_popup/background/{{ cp_setting['style_beckground'] }})', 'opacity': '{% if cp_setting['background_opacity'] == 0 %}{{ cp_setting['background_opacity'] }}{% else %}{{ cp_setting['background_opacity']/10 }}{% endif %}' }); } if (action == "add_option") { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'), dataType: 'json', cache: false, beforeSend: function() { $('#button-cart').button('loading'); }, complete: function() { $('#button-cart').button('reset'); }, success: function(json) { $('.alert, .text-danger').remove(); $('.form-group').removeClass('has-error'); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { var element = $('#input-option' + i.replace('_', '-')); if (element.parent().hasClass('input-group')) { element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } else { element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>'); } } } $('.text-danger').parent().addClass('has-error'); } if (json['success']) { cpInit(); call_cp(product_id, 'load_option'); $('#cart-total').html(json['total']); } } }); } } подскажите пожалуйста что я не так сделал? и как мне это починить? Благодарю
  24. Нужно изменить процесс оформления покупки, т.е. убрать личный кабинет.
  25. Здравствуйте, есть ли возможность назначать опции не каждому товару, а всем товарам одной категории? Например, у меня есть категория смартфон, я хочу всем товарам, которые находятся в этой категории сделать одинаковые опции с одинаковыми значениями. В ручную каждому добавлять одно и то же долго. Может есть вариант с каким-нибудь модулем. Спасибо.
×
×
  • 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.