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

Search the Community

Showing results for tags 'php'.

  • 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 и бизнес аналитика
    • Разное
  • Підтримка та відповіді на запитання.
    • Загальні питання
    • Встановлення, оновлення, налаштування
    • Шаблони, дизайн та оформлення магазину
    • Модули и дополнения
    • Допомога програмістам та розробникам
    • Мобильная витрина
    • Вопросы безопасности
    • Переклад
    • Отчёты об ошибках
    • Интернет-магазины и электронная коммерция
    • Песочница
  • Услуги
    • Creation of stores
    • Дизайн, верстка и шаблоны
    • Программирование, создание модулей, изменение функциональности
    • Настройка и мелкая работа по уже существующему сайту
    • Shop engine version update
    • Store filling
    • System administration (configuring hosting, servers, software)
    • Другие услуги
  • Разное
    • Пользовательские обзоры дополнений
    • Примеры сайтов на 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
  • Language packages
  • 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
  • Записи
  • Найденные решения проблем с 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
  • Полезные статьи, новости.
  • Блог владельца магазина
  • разное
  • ПРОДАЖА АКАУНТОВ-binance ВЕРИФИЦИРОВАННЫe ЧИСТЫЕ УСПЕВАЙТЕ КУПИТЬ ПО НИЗКОЙ ЦЕНЕ
  • Диспансеризация
  • wozobat
  • quasarbyte
  • Мой блог
  • Igorych
  • aaaaa
  • 👌🔊Bellsouth CUSTOMER support number 1+(8O8)678=9O64-☎phone number
  • Liudmila marketer
  • Заметки реалиста
  • ocstore на ноліках
  • Про Opencart
  • Блог про рутинні процеси в магазині на ocsote
  • Radaevich
  • Плагіни Opencart

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Сайт


Skype


City:


Interests

  1. Чето то стало таскливо и решил провести анализ версий php у пользователей OpenCart. И решил поделится этой заметкой. Возможно кому-то будет полезно, а может и просто будет инетересно как мне и эта заметка поможет кому-то скоротать чашечку чая. Можно сказать продолжение записки Предыдущая оценка версий php проводилась 9 ноября 2020 Посмотрим что изменилось за 2.5 года в данном вопросе. Для анализа я взял доменные имена указанные клиентами при заказе моих модулей. Информация о версии php была взята из заголовка X-Powered-By То еть из публичного источника. Данные за 09.11.2020 Для наглядности вначале выложу информацию с предыдущей статьи. Но поскольку в тот раз была выборка из 371 приведу информацию в процентном соотношении. Для быстрого и интуитивного сравнения. PHP/5.6 => 38.81% PHP/7.1 => 23.45% PHP/7.2 => 18.86% PHP/7.3 => 12.66% PHP/7.0 => 5.39% PHP/7.4 => 0.80% Данные за 02.05.2023 В этот раз в замере участвовали уже 746 сайтов. PHP/7.3 => 36.05% PHP/7.4 => 20.24% PHP/5.6 => 18.76% PHP/7.2 => 10.45% PHP/7.1 => 10.32% PHP/7.0 => 2.94% PHP/8.1 => 0.93% PHP/8.0 => 0.26% Что для меня было интересно. 1) Почти 22% сайтов до сих пор на версии PHP 5.6 Я сам сторонник теории "Работает не трогай" Но все же версия 5.6 была выпущена еше в 14.11.2013 то есть в этом году ей будет уже 10 лет. 2) Рост популярности версии php 7.1 и новее составил всего 21.29% как по мне маловато учитывая какой прирост скорости php 7 дает. Было 55.77% Стало 77.06% Вроде прирост скорости хороший, и если хочится повысить немного производительность, то переход на новую версию php стоит рассматривать. Это мое субьективное мнение. Ну и на последок оставлю всю выборку, в сыром виде с минорными версиям php
  2. Доброго дня. Подскажите библиотеку для чтения xls в php. Необходимо читать файлы ексель и LibreOffice. Смотрю что их хватает, но есть нюансы у каждой.
  3. Доброго дня. Є такий код (в для певних варіантів доставки він або віднімає вартість доствки з тотал, або додає): В першому випадку все завжди працює ідеально, а для weight.weight_6 та weight.weight_5 інколи (не завжди) двічі додає вартість доставки. Як тут: Можливо, я десь помилився і цього не бачу? Буду вдячний за підказку.
  4. Добрый день. Нужно настроить резервное копирование для сайта и базы данных ocstore 2.3 Сайт на vps turbohost. Посмотреть конфигурацию, если что-то надо - донастроить. Разобраться с версией php, стоит native 5.6, альтернативная 7.2 (правильно ли это). Исполнитель из Украины
  5. Все привет , столкнулся с проблемой , на главной страници кнопка каталог работает( при переходи в подкатегории или на товар кнопка перестает работать ) множесто ошибок в консоле не могу понять где исправить данные ошибки так как они введут на кэш , я его очишал но не чего не поменялось ( папка min) вот >сайт< буду благодарен за подсказки или помощь!
  6. Добрый вечер, уважаемые специалисты! Столкнулся с такой проблемой. Если в поиск ввести более 2 слов на русском языке (кириллице) и нажать на кнопку поиска, то на странице поиска в url и в поле поиска, русские слова заменяются на непонятные символы. Если вводить в поиск слова на английском языке, всё работает. И если вводить только одно слово на русском языке, тоже работает. Если я правильно понимаю эта ошибка связана с кодировкой. Просто дело в том, что у меня есть два сайта, которые идентичны (отличаются лишь дизайном и некоторыми мелочами). На сайте https://divek.com.ua/ поиск работает без ошибок, а вот на втором https://bagcity.com.ua/ с ошибками. Уже столько разных статей перечитал по решению подобной проблемы, но так и не получилось решить эту задачу. Понимаю, что подобные темы уже обсуждались и возможно Вы посоветуете получше поискать ответы в интернете. Но если Вас это не затруднит, то подскажите, пожалуйста, как решить эту проблему. Общая информация: Версия OpenCart: 3.0.3.2 Хостинг: https://www.ukraine.com.ua/ Версия PHP: 7.3 Ссылка на сайт: https://bagcity.com.ua Скриншот результата поиска ( https://bagcity.com.ua/search/?search=ÑÑмка ÑеÑÐ½Ð°Ñ ) :
  7. Как можно вывести все подкатегории на странице категории и подкатегории например, есть главная категория "Desktops", а подкатегории https://demo.opencart.com/index.php?route=product/category&path=20 - PC - Mac если переходит на страницу категории "MAC", то там НЕ показывают другие подкатегории нужно чтоб, когда чел на странице категории "MAC", то показал и другие подкатегории "PC" пример https://esh-derevenskoe.ru/moloko-yayca-i-molochnaya-produkciya если переходит на подкатегории, то другие подкатегории тоже будет доступным
  8. Добрый день. Есть магазин на ocStore Version 1.5.4.1. На сервере стоит версия PHP 5.3.3, хостинг reg.ru. Нужно установить модуль для работы с атрибутами, которому нужна версия PHP 5.4 и выше. Прочесала весь форум, судя по всему это единственный модуль, к-ый подходит под версию 1.5.4.1 и он нам очень нужен (для быстрого исправления ошибок в значениях атрибутов, к-ых довольно много). Вопрос, какова вероятность, что сайт перестанет работать, если на сервере обновить версию PHP (до 5.4 или 5.6)? Понимаю, что гарантий никто никогда не дает, но это действующий сайт интернет-магазина, если что-то пойдет не так, то будет потрачено некоторое время на откат на старую версию PHP 5.3 и потеряны заказы и клиенты. Или может это не так страшно, но перед обновлением стоит проверить все модули на совместимость с новой версией PHP? Нужно принять правильное решение, может кто-то уже сталкивался с подобным - буду благодарна за совет!
  9. ocStore v2.3.0.2.4 Товарищи, приветствую! Пишу модуль в админке, имею контроллер, который загружает основной шаблон. Этот шаблон использую JQ и AJAX обращается к серверу, ожидая, что тот выполнит метод, описанный в контроллере. Этот метод, в свою очередь, выполняет некоторые манипуляции с данными, потом передаёт их второму шаблону (tpl) и тот уже должен выводиться: public function method() { if ($this->request->server['REQUEST_METHOD'] == 'POST') { //code... $this->response->addHeader('Content-Type: html'); $this->response->setOutput($this->load->view('controller/template', $data)); } } AJAX запрос отправляется, и возвращается ответ с кодом 200, в виде html "Страница не найдена". В итоге AJAX стучится в .../admin/index.php?route=controller/file/method&token=... но когда я перехожу по этому адресу, так же вижу сообщение "Страница не найдена". Запрос такой: function getPerms(url) { $.ajax({ url: url, method: 'POST', dataType: 'html', brforeSend: function(){ $('.panel-title>i').replaceWith('<i class="fa fa-spinner fa-pulse fa-3x fa-fw"></i>'); }, complete: function(){ $('.panel-title>i').replaceWith('<i class="fa fa-table" aria-hidden="true"></i>'); console.log('complete'); console.log(url); }, success: function(data){ $('#upp-table').html(data); console.log(data); }, error: function(){ console.log('error'); } }); } Как правильно обратиться к методу, что бы получить его ответ (готовый шаблон)?
  10. Всем добрый день, помогите пожалуйста решить проблему ! При попытке поставить модули для устранения ссылок типа index.php?route=common/home страницы с таким дублем становятся " Страница недоступна Сайт выполнил переадресацию слишком много раз. Удалите файлы cookie.. ERR_TOO_MANY_REDIRECTS " исполузется SSL сертификат и редирект на https ВОПРОС ! Как сделать чпу ссылки что б ошибка при установке модуля не выплывала , подскажите пожалуйста !
  11. Добрый вечер! Уже неделю не могу решить вопрос с сортировкой товаров. Нужно чтобы при любой стандартной сортировке, товары со статусом "нет в наличии" были в самом конце. Нашел много статей на эту тему, но для 2 версии OpenCart. Для 3-й же версии нашел всего лишь парочку статей. Но все эти решения не дали результат. Думаю для знающих и разбирающихся в php и MySql это довольно легкая задача. Буду благодарен если поможете в этом вопросе.
  12. Есть модуль с отзывами. Пытаюсь в админке вывести уведомление о новом отзыве admin/controller/catalog/p_review.php: $p_review_total = $this->model_catalog_p_review->getTotalReviews(); $data['p_reviewtotal'] = $p_review_total; $results = $this->model_catalog_p_review->getReviews($filter_data); header.php // Reviews $this->load->model('catalog/p_review'); $p_reviewtotal = $this->model_catalog_p_review->getTotalReviews(array('status' => 0)); $data['p_reviewtotal'] = $p_reviewtotal; $data['p_review'] = $this->url->link('catalog/p_review', 'user_token=' . $this->session->data['user_token'] . '&status=0', true); header.twig {% if p_review_total >= 1 %} <li class="dropdown"><a href="{{ p_review }}"> <i class="fa fa fa-comments-o fa-lg blinking" style="color:green"></i> <span style="font-size: 10px">{{ text_review }}</span> <sub>{{ text_new_review }}: ({{ review_total }})</sub></a></li> {% endif %} Получаю ошибку Fatal error: Uncaught Error: Call to a member function getTotalReviews() on null Как правильно вывести количество?
  13. Приветствую Есть скрипт синхронизации цен и остатков с маркетплейсом по API на CMS Prestashop. Надо его перенести на Ocstore2.3. Документация по API есть. Выглядит скрипт так: скрипт запускался по крону, а также был встроен вызов при изменении цены/количества в админке и после оформления заказа. Кому интересно, пишите в личку цену, сроки.
  14. Здравствуйте, Ранее мне сделали обертку для ocfilter Версии 4.7ххх , чтобы его можно было выводить в любое место(главная, статьи, блог... не важно) все работало вполне адекватно, но появиласть необходимость сделать тоже-самое но на новую версию фильтра... фильтр я поставил, вывел обертку на главную, и сразу вылетела 500 ошибка. сделал логирование ошибок [07-Nov-2021 13:18:05 UTC] PHP Fatal error: Uncaught Error: Class 'OCFilter' not found in /home/p/pikenebl/***/public_html/catalog/controller/extension/module/lazyfilter.php:54 Stack trace: #0 [internal function]: ControllerExtensionModuleLazyFilter->index(Array) #1 /home/p/pikenebl/***/storage/modification/system/engine/action.php(79): call_user_func_array(Array, Array) #2 /home/p/pikenebl/***/storage/modification/system/engine/loader.php(48): Action->execute(Object(Registry), Array) #3 /home/p/pikenebl/***/storage/modification/catalog/controller/common/content_top.php(70): Loader->controller('extension/modul...') #4 [internal function]: ControllerCommonContentTop->index(Array) #5 /home/p/pikenebl/***/storage/modification/system/engine/action.php(79): call_user_func_array(Array, Array) #6 /home/p/pikenebl/***/storage/modification/system/engine/loader.php(48): Action->execute(Object(Registry), Array) #7 /home/p/pikenebl/***/public_html/catalog/controller/common/h in /home/p/pikenebl/***/public_html/catalog/controller/extension/module/lazyfilter.php on line 54 в файле по на этой строке находиться $this->registry->set('ocfilter', new OCFilter($this->registry)); что является частью цикла if (!$cached || (empty($data['lazyfilter_data']))) { $ocf_settings = $this->getSetting('module_ocfilter'); $ocf_settings['mode'] = 'vertical'; $this->load->model('catalog/category'); $categories = []; if (isset($this->request->get['path']) && $data['sub_show']) { $path = explode('_', $this->request->get['path']); $category_id = end($path); $categories = $this->model_catalog_category->getCategories($category_id); } else { $results = $this->config->get('module_lazyfilter_categories'); foreach ($results as $value) { $category_id = (int) $value; $categories[$category_id] = $this->model_catalog_category->getCategory($category_id); } } if (empty($categories)) { return; } foreach ($categories as $category_data) { $category_id = (int) $category_data['category_id']; $this->request->get['path'] = $category_id; $this->registry->set('ocfilter', new OCFilter($this->registry)); $ocfilter_data = $this->load->controller('extension/module/ocfilter', $ocf_settings); unset($this->request->get['path']); $ocfilter_data = str_replace('#ocfilter', '#ocfilter-' . $category_id, $ocfilter_data); $ocfilter_data = str_replace('id="ocfilter', 'id="ocfilter-' . $category_id, $ocfilter_data); $data['lazyfilter_data'][$category_id] = [ 'category_data' => $category_data, 'filter_data' => $ocfilter_data, ]; } if ($cached) { $this->cache->set('module.lazyfilter', $data['lazyfilter_data']); } } $this->load->language('extension/module/lazyfilter'); return $this->load->view('extension/module/lazyfilter', $data); когда я комментирую строку $this->registry->set('ocfilter', new OCFilter($this->registry)); и путь на главной указан "чистый"(просто доменное имя), то во вкладках фильтр показывается, но только 1 категория на всех вкладках сначала я грешил на то, что нет нужных данных в массиве ($this->registry), но после более внимательного просмотра логов ошибок, я понял что проблема в отсутствии класса OCFilter может кто подкинуть идей в какой стороне надо смотреть? PS разработчик надстройки, молчит как партизан на допросе Спасибо
  15. Приветствую Не силен в php, делаю методом проб и ошибок получение инфо о товаре по api, прошу помощи есть запрос $this->db->query("SELECT product_id FROM `" . DB_PREFIX . "product` WHERE `model` LIKE $model"); получаю {"num_rows":1,"row":{"product_id":"317"},"rows":[{"product_id":"317"}]} из этого нужно взять только 317 чтобы получился рабочий код: $model = $this->request->get['model']; $product_id = [----] $this->db->query("SELECT product_id FROM `" . DB_PREFIX . "product` WHERE `model` LIKE $model"); $product_info = $this->model_catalog_product->getProduct($product_id);
  16. Как вывести подкатегории 3го уровня в osstore 2.3? На сайте установлен модуль для вывода категорий "Категории_KSL". Помогите, пожалуйста, его переписать, чтобы можно было выводить категории 3го уровня.
  17. Добрый день, нужен бесстрашный специалист для доработки и исправления ошибок в ocStore 2.3.0.2.3 В карте сайта для контента на русском языке исправить вывод ссылки (добавить ru/ после домена) В модуле генератора фидов для контента на русском языке исправить вывод ссылки (добавить ru/ после домена) Убрать вывод дублей постов с категорией в карте сайта блога, продублировать ссылки с ru/ Исправить чпу для пагинации, тегов и сортировки Настроить корректную передачу целей/событий в расширенную эл.коммерцию гугл аналитикс Подробнное ТЗ тут https://docs.google.com/document/d/13SdbXH3r7weAnsWb4Jq-CzXjcCE_hzhnAeZzcSSZX6k/edit?usp=sharing Важно! При работе не в коем случае не переключать движок чпу с СЕО ПРО на стандартный. Задачи не сложные, думаю за день можно справится не напрягаясь для опытного разработчика. Ставить модули не предлагать. По окончанию работы предоставить список затронутых файлов. Жду ваши предложения.
  18. Приветствую форумчане. Такая проблема, пытаюсь выполнить ajax запрос, суть которого отправить некоторые данные с домена: a.com на b.com и соответственно получить ответ от b.com с целью дальнейшей его обработки в скрипте на a.com Оба домена находятся на OpenServer на локальной машине, то есть у меня есть контроль над http://b.com/ и я могу прописать в php файле необходимые настройки. Однако при попытке выполнить ajax запрос получаю ошибку: jquery-3.6.0.min.js:2 Cross-Origin Read Blocking (CORB) blocked cross-origin response http://b.com/?callback=jQuery360001053556176974424_1630579545897&_=1630579545898 with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768 for more details. Аналогичную ситуацию имею на хостинге уже на реальных доменах. При этом данные c a.com на b.com в php скрипт все же попадают, однако, мне не удается добиться чтения ответа на домене a.com. Что характерно в сети есть по меньшей мере один домен с которого таки удается получить данные таким способом. Если вместо b.com подставить страницу: https://jsonplaceholder.typicode.com/todos/1 то в этом случае получаю ответ: {userId: 1, id: 1, title: "delectus aut autem", completed: false} Однако же добиться аналогичного эффекта на домене под собственным контролем я не могу. Пробовал в js указывать crossDomain: true, на стороне php пробовал указывать различные заголовки по типу: header('content-type: application/json'); и тому подобное... пробовал даже скопировать из браузера заголовки которые отдает сайт https://jsonplaceholder.typicode.com/todos/1 и подставить их в php файл через тот же header() однако ничего не выходит. Подскажите куда копать? Вопрос вроде плевый, но сколько не пытаюсь ничего не получается. Ниже код js: <script> //Первый вариант на jQuery: $(document).ready(function(){ $.ajax({ url: "http://b.com", crossDomain: true, dataType: "jsonp", success: function( response ) { console.log(response); } }); }); </script> <script> //Второй вариант на чистом js: function receiver(data){ console.log(data); } </script> <script src="http://b.com/?callback=receiver"></script> код php: <?php header('content-type: application/json'); header('Access-Control-Allow-Origin: http://a.com'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); echo '{"foo":"bar"}'; ?>
  19. Подскажите лучший способ как c помощью php спарсить кусок кода, отвечающий за вывод блока товара, из файла шаблона product/category.twig По идее, нужно спарсить все что находится внутри цикла {% for product in products %} и записать этот код в отдельный файл, чтобы потом подключать его через include в других шаблонах. Изначально получаю код файла и записыю в переменную: $content = file_get_contents(DIR_CATALOG . 'view/theme/'.$this->config->get('config_theme').'/template/product/category.twig'); А дальше регулярку писать или есть другие варианты? Если регулярка, то помогите составить выражение. Спасибо всем, кто отзовется!
  20. Подскажите пожалуйста как в opencart 3 в стандартном (базовом) модуле featured вывести опции товаров В файл: modification\catalog\controller\extension\module\featured.php добавил код: $options = array(); foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) { if($option['required']){ $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { if (!$option_value['subtract'] || ($option_value['quantity'] >= 0)) { $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'quantity' => $option_value['quantity'], 'price_prefix' => $option_value['price_prefix'] ); } } $options[] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } } Также в $data['products'][] = array( добавил: 'options' => $options, Для вывода в файле: template\extension\module\featured.twig в карточку товара добавил код: {% if product.options %} {% for option in product.options %} {% if option.type == 'radio' %} <div class="groupOptionWrap {% if option.required %} required {% endif %}"> <div id="input-option{{ option.product_option_id }}" class='groupOptionElements'> {% for option_value in option.product_option_value %} {% if option_value.quantity == "0" %} <div class="groupOption groupOptionDisable"> {{ option_value.name }} </div> {% else %} <div class="groupOption"> {{ option_value.name }} </div> {% endif %} {% endfor %} </div> </div> {% endif %} {% endfor %} {% endif %} Но это не сработало, просьба подсказать, если кто знает рабочий вариант Весь код данного модуля: <?php class ControllerExtensionModuleFeatured extends Controller { public function index($setting) { $this->load->language('extension/module/notify_when_available'); $data['text_out_of_stock'] = $this->language->get('text_out_of_stock'); $data['out_of_stock_show'] = $this->config->get('module_notify_when_available_stock'); $data['out_of_stock_notify'] = $this->config->get('module_notify_when_available_notify'); $this->load->language('extension/module/featured'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $data['products'] = array(); if (!$setting['limit']) { $setting['limit'] = 4; } if (!empty($setting['product'])) { $lang = $this->config->get('config_language_id'); $title = isset($setting['titles']['title'.$lang]) && $setting['titles']['title'.$lang] ? $setting['titles']['title'.$lang] : ''; if (isset($title) && $title) { $data['heading_title'] = $title; } if (isset($setting['shuffle']) && $setting['shuffle']) { shuffle($setting['product']); } $products = array_slice($setting['product'], 0, (int)$setting['limit']); foreach ($products as $product_id) { $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { if ($product_info['image']) { $image = $this->model_tool_image->resize($product_info['image'], $setting['width'], $setting['height']); } else { $image = $this->model_tool_image->resize('placeholder.png', $setting['width'], $setting['height']); } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); $data['priceInt'] = $this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')); } else { $price = false; } $specialSavings =0; if ((float)$product_info['special']) { $special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); $data['specialInt'] = $this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')); $data['specialSavings'] = round((($data['priceInt']-$data['specialInt'])/$data['priceInt'])*100, 2); $specialSavings = $data['specialSavings']; } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$product_info['special'] ? $product_info['special'] : $product_info['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = $product_info['rating']; } else { $rating = false; } $options = array(); foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) { if($option['required']){ $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { if (!$option_value['subtract'] || ($option_value['quantity'] >= 0)) { $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'quantity' => $option_value['quantity'], 'price_prefix' => $option_value['price_prefix'] ); } } $options[] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } } $data['products'][] = array( 'product_id' => $product_info['product_id'], 'quantity' => $result['quantity'], 'quantity' => $product_info['quantity'], 'quantity' => isset($result['quantity']) ? $result['quantity'] : (isset($product_info['quantity']) ? $product_info['quantity'] : 1), 'attribute_groups' => $this->model_catalog_product->getProductAttributes($product_info['product_id']), 'thumb' => $image, 'name' => $product_info['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'specialSavings' => $specialSavings, 'tax' => $tax, 'rating' => $rating, 'options' => $options, 'href' => $this->url->link('product/product', 'product_id=' . $product_info['product_id']) );
  21. В контроллере я добавила функцию и попыталась html с данными из view сделать pdf, но ничего не выходит. Подскажите что я делаю не так? public function pdf_invoice($html){ $dompdf = new Dompdf(); $dompdf->loadHtml($html, 'UTF-8'); $dompdf->setPaper('A4', 'portrait'); $dompdf->render(); // Вывод файла в браузер: $dompdf->stream('my.pdf',array('Attachment'=>0)); } public function index() { ... $this->pdf_invoice($this->load->view('extension/payment/invoice', $data)); }
  22. Добрый день! установил модуль с многоуровневыми категориями, поэтому модуль, который скрывает пустые категории не действует на этот модуль. Но то что не скрываются пустые категории это ещё ладно. Просто при переходе на пустую категорию выдаёт ошибку (Фото 1) и ссылается на этот код (Фото 2) Подскажите пожалуйста, что в этом коде не так? И буду благодарен если подскажите как скрыть пустые категории в этом модуле. Модуль с многоуровневыми категориями, скачивал вот здесь:
  23. Есть размерная сетка на opencart 2.3, ее нужно повторить но уже на opencart 3: на двойке она сделана на чистом php в tpl файле (product.tpl), но opencart 3 поддерживает только twig формат, поэтому скопировать просто php код на тройку не получится (product.twig) Вот код на opencart 2.3: <table> <?php $s1 = array(); $s2 = array(); $arr = array(); foreach ($option['product_option_value'] as $option_value) { list($a, $b) = explode("x", $option_value['name']); $s1[] = intval($a); $s2[] = intval($b); $arr[intval($a)][] = array(intval($b), $option_value['product_option_value_id']); } $id = $option['product_option_id']; $s1 = array_unique($s1); rsort($s1); $s2 = array_unique($s2); sort($s2); foreach ($s1 as &$value) { echo "<tr>"; echo "<td>".$value."</td>"; foreach ($s2 as &$value2) { echo "<td>"; $p = false; foreach ($arr[$value] as &$value3) { if($value3[0] == $value2){ $p = true; $val = $value3[1]; } } if ($p) { echo "<label><input type='radio' name='option[".$id."][]' value='".$val."' required /><span class='stock' val='".$val."' name ='".$value."x".$value2."' vid='".$id."'></span></label>"; } else{ echo "<span class='out-stock'></span>"; } echo "</td>"; } echo "</tr>"; } echo "<tr><td></td>"; foreach ($s2 as &$value) { echo "<td>".$value."</td>"; } echo "</tr>"; ?> </table> В админке опции прописаны вот так: 170x52, 170x54, 170x60, 176x52, 176x54, 176x60, 182x52, 182x54, 182x60 (пример) Пытался воспользоваться онлайн сервисом http://phptotwig.com/ , но выдает ошибку на строке с explode Пытался адаптировать сам этот код под твиг, но опыта в этом мало, вот что получилось: <table> <tbody> {% for option_value in option.product_option_value %} <tr> <td>{{ option_value.name | split('x', 2)[0] }}</td> <td><label><input type="radio" name="option[{{ option.product_option_id }}][]" value="{{ option_value.product_option_value_id }}" required=""><span class="stock" val="{{ option_value.product_option_value_id }}" name="{{ option_value.name }}" vid="402"></span></label></td> </tr> {% endfor %} <tr> <td></td> {% for option_value in option.product_option_value %} <td>{{ option_value.name | split('x', 2)[1] }}</td> {% endfor %} </tr> </tbody> </table> Может есть модуль для такой сетки? Или лучше уже допилить код? Подскажите, пожалуйста, в какую сторону нужно копать.
  24. Нужно настроить синхронизировать 1С с сайтом на OcStore 2.3 двусторонней связью. Заказы с сайта должны выгружаться в 1С и реализовываться продукция. Наличие с 1С должно подтягиваться на сайт. 1С заполнено номенклатурой частично, то есть, нужно догрузить недостающую номенклатуру с сайта в 1с по такой же структуре. Версия 1С: https://prnt.sc/12l2sc4
  25. Здравствуйте задача следующего плана: I. Создать второй склад в логике opencart (итого получим на выходе у каждого товара 2 склада): - наличие товара на 1 складе = товар в наличии - наличие на 2 складе = товар под заказ - наличие на 1 и 2 втором складе = товар в наличии, приоритет статуса у 1 склада / списание кол-ва идет с первого склада до момента пока товар не закончится и не останется только на 2 складе, следовательно, товар сразу же станет в статусе под заказ (после того, как все будет распродано с приоритетного первого склада) II. Сразу после заказа на сайте: Выгрузить данные сформированного заказа в 1 лист гугл таблицы со всеми стандартными данными (номер заказа, наименование, артикул, способ приобретения, адрес доставки, если это доставка, номер клиента, комментарии и тд) III. После этого сразу Выгрузить список с наименованием, кол-вом, ценой актуальных остатков на лист 2 в той же гугл таблице IV. После паузы (которую надо иметь способ выставлять вручную) загрузить подготовленные данные о кол-ве обоих складов и актуальные цены /те выгрузив заказ в гугл таблицы и актуальное кол-во, мы ждем какое-то время, пока данные просчитаются в нашей гугл таблице и обратно все актуальные данные отдаем в сайт/ по факту скрипт выгрузил данные о заказе (лист 1), сразу же актуальное кол-во с ценами на сайте (лист 2), далее задержка, которую мы настроим по ходу, далее считывает с отдельного листа (лист 3) данные с ценами и кол-вом обоих складов
×
×
  • 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.