Search the Community
Showing results for tags 'прайс лист'.
-
Version 1.0.0
Модуль выводит товары в виде прайс листа. Страницы вывода: 1. категория 2. производитель 3. поиск 4. акции Поля для вывода: наименование описание изображение скидки статус производитель артикул модель атрибуты рейтинг вес размер опции цена выбор количества сумма кнопка - в корзину кнопка - в избранное кнопка - в сравнение Настройки: вывод своих полей для каждой страницы активация модуля для каждой страницы отдельно сделать вывод прайс листа по умолчанию выбор атрибутов для вывода для каждого атрибута свой столбец(опционно) сортировка полей. Особенности: живая цена (при выборе количества, меняется сумма) если у товара есть обязательные опции, при добавлении в корзину опции выводятся в поп-ап окне. Установка: загрузить файл через установка расширений. система->пользователи->группы пользователей->дать права на просмотр и редактирование. активировать модуль в дополнениях. настроить вывод полей. Архивы: для 2.3 modification_price_list.ocmod.zip для 2.1, 2.2 - modification_price_list_2.x.ocmod.zip для 3.x fc_price_list_oc_3.ocmod.zip Внимание Убедительная просьба. перед покупкой модуля, задавайте вопросы, выясняйте все нюансы. Чтобы потом не было типа - а я думал, что работает немного по другому и т.д и т.п. Гарантировано, работает только на дефолтном шаблоне, на других, возможно нужна будет адаптация. Адаптация - это сделать так, чтобы заявленный функционал работал на вашем шаблоне. Изменение внешнего вида(дизайн, верстка) в адаптацию не входит( я не дизайнер). Поддрержка: При обращении о поддержке, описывайте сразу подробно проблему, а не два слова "Караул, не работает." пишите сразу доступы - админка, ftp через TeamViewer, не работаю с шаблоном joornal, не работаю Демо: страница категории админ панель demo demo$10- 10 reviews
-
- 2
-
- прайс лист
- товары в виде прайс листа
- (and 2 more)
-
15 Завантажити / Придбати розширення Генерируемый ПРАЙСЛИСТ .XLS для OpenCart 3.x В СВЯЗИ С БЛОКИРОВКОЙ АВТОРОВ ДОПОЛНЕНИЙ ИЗ РФ АДМИНИСТРАЦИЕЙ САЙТА ВСЕ МОИ ДОПОЛНЕНИЯ СНЯТЫ С ПРОДАЖИ. БЛАГОДАРИТЕ АДМИНИСТРАЦИЮ САЙТА ЗА УПОРОТОСТЬ. Приобретая модуль, вы получаете право использовать его на одном домене. Модуль имеет открытый исходный код, соответственно техническая поддержка оказывается только для актуальной версии модуля и только для домена, указанного при покупке. Для использования модуля на нескольких доменах, необходимо приобрести модуль соответствующее количество раз, указывая при покупке домен, на котором будет установлен модуль. Модуль для opencart 1.5.x, модуль для opencart 2.x, модуль для opencart 3.x - совершенно разные товары. Поэтому будьте внимательны во время оплаты модуля. Новая версия модуля. В ней используется библиотека PhpExcel, что позволило генерировать прайсы в формате Excel2007, что в свою очередь улучшает совместимость сгенерированных прайсов со сторонними пакетами (например Applle Numbers, OpenOffice, LibreOffice и т.д.) Добавлена возможность настройки нескольких прайс-листов. ВНИМАНИЕ: При покупке модуля обязательно указываем рабочий и тестовый домены. Модуль продается только на этом сайте. Если вы его скачали либо купили где-то еще - поддержка модуля не осуществляется. Перед обращением за поддержкой модуля убедитесь, что на вашем хостинге выполнены следующие требования: На хостинге должен быть php версии 5.2.0 и более. На хостинге должны быть установлены следующие расширения php: -php_zip (в случае его отсутствия должен быть установлен zlib) -php_xml (xmlreader и xmlwriter должны присутствовать в phpinfo). -php_gd2 Если вы планируете использовать изображения в прайсе, потрудитесь привести имена файлов изображений в корректный вид (пробел, кириллица и т.д. в именах файлов могут вызвать проблемы из-за разных кодировок базы данных и файловой системы хостинга) Если при соблюдении всех требований, при генерации прайса у вас ничего не происходит - смотрите ошибки в логе сервера. Если получаете ошибки вида out of memory - увеличивайте параметр memory_limit либо посредством htaccess либо в php.ini (если не знаете как это сделать - обратитесь в техподдержку своего хостинга) Если ошибка вида maximum time limit exceeded - увеличивайте параметр max_execution_time либо посредством htaccess либо в php.ini (если не знаете как это сделать - обратитесь в техподдержку своего хостинга) Перед обращением за поддержкой модуля подготовьте РАБОЧИЕ доступы на ftp и в админ-панель. Поддержка модуля осуществляется только на этом форуме и только посредством системы личных сообщений. При обращении - пишите от имени пользователя, купившего модуль. Сообщения вида "Здрасьте, я исполнитель, а модуль был куплен на Васю Пупкина" будут игнорироваться. Если вы все сделали как описано в инструкции, но, при переходе по ссылке на сгенерированный прайс получаете ошибку вида access denied: Модуль сохраняет сгенерированный прайс в стандартную папку download, которая раньше была в корне сайта, а начиная с opencart версии 2.0 - ее перенесли в /system/storege/ ОПИСАНИЕ: Модуль генерирует красивый цветной прайс-лист в формате .xlsx Все наименования категорий и товаров выводятся в виде ссылок. При формировании цены в прайсе учитываются скидки на товар, спец-предложения. -Модуль имеет 4 настраиваемых поля для вывода в заголовке прайса + одно поле для вывода ссылки на сайт; -Можно выбрать категории, товары из которых будут выводиться в прайс; -Можно выбрать сортировку выводимых товаров внутри категории; -Также можно в генерируемый прайс выводить картинки товаров; -Размеры выводимых картинок также настраиваются; -Можно выбрать валюту для генерации, и группы покупателей. При выборе нескольких групп - генерируется многостраничный прайс; -Вывод товаров с опциями и без них; -Возможность вывода атрибутов товаров; -Поддержка мультиязычности; -Можно выбрать, выводить в прайс или нет товары с нулевыми или отрицательными остатками, а также, выводить ли в прайс остатки; -Настраиваемые ширины полей; -Поддержка кеширования на диске или memcache; -Можно выбрать - выводить или нет колонки "модель" и "акции"; -Можно выбрать какое поле выводить в качестве кода товара (sku или model); -Поддержка мультимагазинов. Теперь для каждого магазина генерируется свой прайс. 1) Внимание! Если в вашем магазине стотыщ товаров и он у вас на виртуальном хостинге, при этом модуль вываливается с ошибкой по memory_limit - может стоит купить выделенный сервер? 2) Поддержка каких-либо продуктов, отличных от Microsoft Excell (например Applle Numbers, OpenOffice, LibreOffice и т.д.) не гарантируется. XLS и XLSX - это формат Microsoft Excell. И его поддержка сторонними продуктами полностью ложится на совесть разработчиков этих продуктов. 3) Если вы планируете использовать изображения в прайсе, потрудитесь привести имена файлов изображений в корректный вид (пробел, кириллица и т.д. в именах файлов могут вызвать проблемы из-за разных кодировок базы данных и файловой системы хостинга). Установка: 1. Скопировать файлы на сервер, 2. В админке зайти в "система-пользователи-группы_пользователей" и включить модуль module/xls_pricelist. 3. Зайти в "дополнения-модули" и установить модуль XLS Прайслист. 4. Нажать напротив "изменить" и настроить модуль. 5. Сохранить изменения. Обязательно и при обновлении. 6. Сгенерировать прайс, нажав соответствующую кнопку внизу, в настройках модуля. 7. В вашем темплейте в нужном месте вывести ссылку <a href="/index.php?route=xls/xls_pricelist/download&preset=0">xls price</a> В данном случае это будет ссылка на прайс с пресетом 0 Если нужна ссылка на прайс с пресетом 1 - замените в адресе &preset=0 на &preset=1 и т.д. параметр &preset=0 можно опустить, если у вас настроен всего один прайс с пресетом 0. 8. В robots.txt на всякий случай добавляем строку Disallow: /*route=xls/xls_pricelist 9. Модуль использует .tpl темплейты в админ-части. Для того, чтобы движок мог их нормально обрабатывать - в файле system/config/admin.php закомментируйте блок 'view/*/before' => array( 'event/language' ) Обновление: При обновлении на следующую версию (например у вас стояла версия 2, а вы решили установить версию 3) после копирования файлов новой версии на хостинг, обязательно в админке в модулях удалить модуль а потом заново его установить и настроить. HTTPS: Если ваш сайт работает по https - вы же не хотите, чтобы он работал и по http тоже, так? Многие зачем-то делают для этого редирект в .htaccess, и в итоге имеют проблемы с некоторыми модулями и этим модулем в частности. А ведь достаточно просто в config.php и admin/config.php прописать везде https вместо http. Требования к серверу: На хостинге должен быть php версии 5.2.0 и более. На хостинге должны быть установлены следующие расширения php: -php_zip (в случае его отсутствия должен быть установлен zlib) -php_xml (xmlreader и xmlwriter должны присутствовать в phpinfo). -php_gd2 Версия 4 - обновленная версия модуля. На всех демо установлена версия 4. Демо 2.1.0.1: demo21.finesites.ru/index.php?route=xls/xls_pricelist/download&preset=0 http://demo21.finesites.ru/admin/index.php?route=module/xls_pricelist Логин и пароль в админку: admin Версия для opencart и ocstore 1.5.x тут Версия для opencart и ocstore 2.x тут Видео-руководство по установке и настройке модуля: Изменения в версии 4 -добавлена возможность настраивать несколько прайслистов с различными настройками. -расширенные настройки вывода опций. -добавлено поле link - в котором выводится ссылка на товар. -добавлена возможность вывода в прайслист даты генерации. Полезно, если прайс генерируется относительно часто и нужно, чтобы было видно дату его актуальности. -добавлена возможность вставки в прайс колонки с произвольным значением или формулой. Полезно, если вам нужно вывести например колонку со скидкой от цены товара и т.д. -добавлена возможность вывода результирующей строки в конце прайса с подсчетом сумм по колонкам. Это позволяет например использовать прайс как форму оптового заказа. Изменения в версии 3 UPD 24.05.2015: Модуль обновлен до версии 3.1: 1. Исправлены ошибки 2. Добавлена возможность запуска генератора по расписанию (необходим работающий cron на сервере и установленная библиотека Curl) Автор kur1977 долучення 19.01.19 Категорія Модули Системные требования php >= 5.2.0, php_zip, php_xml,php_gd2, memory_limit >= 256M, max_execution_time >= 30 Метод активации Без активации Ioncube Loader Нет ocStore 3.0 OpenCart.Pro, ocShop Звернення до сервера розробника Нет
- 16 replies
-
10 Завантажити / Придбати розширення Вывод товаров в виде прайс листа Модуль выводит товары в виде прайс листа. Страницы вывода: 1. категория 2. производитель 3. поиск 4. акции Поля для вывода: наименование описание изображение скидки статус производитель артикул модель атрибуты рейтинг вес размер опции цена выбор количества сумма кнопка - в корзину кнопка - в избранное кнопка - в сравнение Настройки: вывод своих полей для каждой страницы активация модуля для каждой страницы отдельно сделать вывод прайс листа по умолчанию выбор атрибутов для вывода для каждого атрибута свой столбец(опционно) сортировка полей. Особенности: живая цена (при выборе количества, меняется сумма) если у товара есть обязательные опции, при добавлении в корзину опции выводятся в поп-ап окне. Установка: загрузить файл через установка расширений. система->пользователи->группы пользователей->дать права на просмотр и редактирование. активировать модуль в дополнениях. настроить вывод полей. Архивы: для 2.3 modification_price_list.ocmod.zip для 2.1, 2.2 - modification_price_list_2.x.ocmod.zip для 3.x fc_price_list_oc_3.ocmod.zip Внимание Убедительная просьба. перед покупкой модуля, задавайте вопросы, выясняйте все нюансы. Чтобы потом не было типа - а я думал, что работает немного по другому и т.д и т.п. Гарантировано, работает только на дефолтном шаблоне, на других, возможно нужна будет адаптация. Адаптация - это сделать так, чтобы заявленный функционал работал на вашем шаблоне. Изменение внешнего вида(дизайн, верстка) в адаптацию не входит( я не дизайнер). Поддрержка: При обращении о поддержке, описывайте сразу подробно проблему, а не два слова "Караул, не работает." пишите сразу доступы - админка, ftp через TeamViewer, не работаю с шаблоном joornal, не работаю Демо: страница категории админ панель demo demo Автор fanatic долучення 09.04.18 Категорія Модули Системные требования Метод активации Без активации Ioncube Loader Нет ocStore 3.0 2.3 2.2 2.1 OpenCart.Pro, ocShop Не проверялось Звернення до сервера розробника Нет
- 72 replies
-
- прайс лист
- товары в виде прайс листа
- (and 2 more)
-
Необходимо настроить модуль АОП. Есть 5 yml ссылок поставщиков (нужно будет обновление) несколько эксель файлов (товары без обновлений) Важно сделать первую подгонку по товарам, чтобы не было дублей, т.к. в магазине уже есть товары, но грузились они на ocstore 1.5, сейчас сделан переход на тестовый домен на ocstore 2.3 с имеющийся БД. Просьба сроки и цену писать в л.с.
- 1 reply
-
- аоп
- обновление
-
(and 18 more)
Tagged with:
- аоп
- обновление
- обновление по api
- обновление opencart
- обновление товар
- обновление товаров
- обновление остатков
- обновление цены товара
- наполнение товарами opencart
- наполнение интернет-магазина
- обработка прайс-листов
- обработка и импорт прайсов
- прайс лист
- yml
- yml opencart
- yml-файл
- yml импорт
- yml ссылка
- yml импорт товаров
- обработка прайс
-
Мне нужно загрузить прайс-лист на апорт. На моем сайте список цен в таком формате https://visasuk.ru/british-english-london-visa-cost-payment.html Я все занесла в XLSX файл, апорт так не принимает. Перевела в формат XML 2003, апорт говорит: Не обработан. В прайс-листе найдены ошибки, которые необходимо устранить: Ссылка некорректна. После устранения ошибок, необходимо повторно загрузить прайс-лист для обработки. Помогите! Что за ссылка?
-
Подскажите, что не так делаю! У меня 500+ категорий, руками создавать долго, да и есть для этого модуль. Хотел согласно мануала создать данные, но.... не нашел вкладку (скрин прилагается)
-
Добрый день. Требуется модуль, который генерирует автоматически прайс лист на сайте, скачать может только зарегистрированный юзер. Прайс должен генерироваться в эксель формате. Магазин на двух языках англ и иврит, желательно чтобы прайс генерился на том языке на котором юзер находится, если сложно, то хотя бы на одном, желательно иврит. Будет только 6 полей, пример: Англ.: Product title: Hanging lamp "Barcelona" Collection (это переименованная manufacturer) : Barcelona Article (это Model): 12433-cl130-pla242-cp000 Product Code (это атрибут): 12433 Price: Link on product: Иврит: Product title: מנורת תלייה ברצלונה Collection (это переименованная manufacturer): ברצלונה Article (это Model): 12433-cl130-pla242-cp000 Product Code (это атрибут): 12433 Price: Link on product: Это сам сайт: http://makorhaor.com
-
Добрый день! Возникла потребность регулярно загружать новые прайс-листы поставщиков с помощью модуля "автоматическая обработка прайс-листов поставщиков". Модуль настроен, надо только загружать. Когда появляется новый прайс-лист, который надо загрузить - надо проверить не было ли в нем изменений (новых столбцов, местами ли столбцы не поменялись). Далее, необходимо поставить всем товарам этого поставщика остаток 0 (через инструменты). Далее загрузить новый прайс с новыми ценами и остатками. Идеально - если Вы и настроить смогли бы модуль, в случае нового поставщика. (но это не обязательно, главное - регулярно обновление) Есть несколько прайс-листов, которые надо загружать, думаю, что 1 раза в неделю будет достаточно. Предлагайте, пожалуйста, цены, готовы ли заниматься этим на постоянной основе.
- 4 replies
-
- обновление
- автоматическое
-
(and 5 more)
Tagged with:
-
Добрый день. Нужно привести в рабочее состояние модуль: Третий вид списка товаров - в виде прайс-листа (vQmod) 1.2.1 Что имеем: 1 - Движок OsStore Версия 1.5.5.1.2 2 - Шаблон стандарт на нем будет сайт. 3 - Сайт xodovka86.ru Проблема: 1 - Установился модуль нормально, ошибок нет, во вкладке "Модули" в админ панели отображается. Но выполнять свои функцию не хочет. 2 - Автора модуля на данный момент не предоставляет поддержку по нему. Ищем: Опытного и ответственного специалиста, который готов дорабатывать в дальнейшем этот модуль. Оплата: Высокая
-
Доброго времени суток! В общем проблема такова: поставил модуль для отображения товаров в виде прайса http://cmsassistant.net/opencart/modul/386-otobrazhenie-tovarov-v-kategorii-v-vide-prays-lista-ocstore-1541-1531-v100.html и хотел в нем добавить столбец с цветом, для добавления в админку пользовался этой инструкцией youtube.com/watch?v=HeW0g5sf2DA теперь не получается вывести ее в прайс лист, вот что выдает Точно так же с наличием, но я с этим еще не разбирался, если знаете как и это решить, напишите пожалйста
-
Добрый день. Нужна помощь по одному вопросу. Пользуюсь модулем PriceList (версия опенкарта 1.5.5.1). Нужно вывести название категории отдельно для каждого товара ( так как показано на скрине ). Если нужно, могу скинуть код контроллера. Зарание спасибо Controller <?php class ControllerMyocPricelist extends Controller { private $default_limits = array(5,10,25,50,100); public function index() { if($this->config->get('myocwpl_login') && !$this->customer->isLogged()) { $this->session->data['redirect'] = $this->url->link('product/pricelist', '', 'SSL'); $this->redirect($this->url->link('account/login', '', 'SSL')); } $this->language->load('myoc/pricelist'); $this->document->setTitle($this->language->get('heading_title')); $this->data['breadcrumbs'] = array(); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false ); $this->data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('product/pricelist'), 'separator' => $this->language->get('text_separator') ); $this->data['heading_title'] = $this->language->get('heading_title'); $this->data['text_empty'] = $this->language->get('text_empty'); $this->data['button_continue'] = $this->language->get('button_continue'); $this->data['continue'] = $this->url->link('common/home', '', 'SSL'); if($this->config->get('myocwpl_login') && $this->customer->isLogged() && (!$this->config->get('myocwpl_customer_group') || !in_array($this->customer->getCustomerGroupId(), $this->config->get('myocwpl_customer_group')))) { $this->data['error_customer_group'] = $this->language->get('error_customer_group'); } else { $this->pricelist(); $this->document->addStyle(DIR_APPLICATION . 'view/javascript/jquery/fancybox/jquery.fancybox-1.3.4.css'); $this->document->addScript(DIR_APPLICATION . 'view/javascript/jquery/fancybox/jquery.fancybox-1.3.4.pack.js'); $this->document->addStyle(DIR_APPLICATION . 'view/javascript/jquery/colorbox/colorbox.css'); $this->document->addScript(DIR_APPLICATION . 'view/javascript/jquery/colorbox/jquery.colorbox-min.js'); } if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/myoc/pricelist.tpl')) { $this->template = $this->config->get('config_template') . '/template/myoc/pricelist.tpl'; } else { $this->template = 'default/template/myoc/pricelist.tpl'; } $this->children = array( 'common/column_left', 'common/column_right', 'common/content_top', 'common/content_bottom', 'common/footer', 'common/header' ); $this->response->setOutput($this->render()); } public function printable() { if($this->config->get('myocwpl_login') && !$this->customer->isLogged()) { $this->session->data['redirect'] = $this->url->link('product/pricelist', '', 'SSL'); $this->redirect($this->url->link('account/login', '', 'SSL')); } if($this->config->get('myocwpl_login') && $this->customer->isLogged() && (!$this->config->get('myocwpl_customer_group') || !in_array($this->customer->getCustomerGroupId(), $this->config->get('myocwpl_customer_group')))) { $this->redirect($this->url->link('product/pricelist', '', 'SSL')); } //header info if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) { $this->data['base'] = $this->config->get('config_ssl'); } else { $this->data['base'] = $this->config->get('config_url'); } $this->data['links'] = $this->document->getLinks(); $this->data['lang'] = $this->language->get('code'); $this->data['direction'] = $this->language->get('direction'); $this->data['google_analytics'] = html_entity_decode($this->config->get('config_google_analytics'), ENT_QUOTES, 'UTF-8'); if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) { $server = HTTPS_SERVER . 'image/'; } else { $server = HTTP_SERVER . 'image/'; } if ($this->config->get('config_icon') && file_exists(DIR_IMAGE . $this->config->get('config_icon'))) { $this->data['icon'] = $server . $this->config->get('config_icon'); } else { $this->data['icon'] = ''; } $this->data['name'] = $this->config->get('config_name'); if ($this->config->get('config_logo') && file_exists(DIR_IMAGE . $this->config->get('config_logo'))) { $this->data['logo'] = $server . $this->config->get('config_logo'); } else { $this->data['logo'] = ''; } $this->data['store_url'] = $this->data['base']; $this->data['store_title'] = $this->config->get('config_title'); $this->data['store_address'] = nl2br($this->config->get('config_address')); $this->data['store_email'] = $this->config->get('config_email'); $this->data['store_telephone'] = $this->config->get('config_telephone'); //pricelist $this->language->load('myoc/pricelist'); $this->document->setTitle($this->language->get('heading_title')); $this->data['title'] = $this->document->getTitle(); $this->data['heading_title'] = $this->language->get('heading_title'); $this->data['text_empty'] = $this->language->get('text_empty'); $this->pricelist(); if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/myoc/pricelist_print.tpl')) { $this->template = $this->config->get('config_template') . '/template/myoc/pricelist_print.tpl'; } else { $this->template = 'default/template/myoc/pricelist_print.tpl'; } $this->response->setOutput($this->render()); } private function pricelist() { $this->load->model('catalog/product'); $this->load->model('catalog/category'); $this->load->model('tool/image'); if (isset($this->request->get['catid'])) { $catid = $this->request->get['catid']; } else { $catid = 0; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'pd.name'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; } else { $order = 'ASC'; } if (isset($this->request->get['limit'])) { $limit = $this->request->get['limit']; } else { $limit = $this->default_limits[0]; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; } else { $page = 1; } $this->data['text_limit'] = $this->language->get('text_limit'); $this->data['text_category'] = $this->language->get('text_category'); $this->data['text_print'] = $this->language->get('text_print'); $this->data['text_sku'] = $this->language->get('text_sku'); $this->data['text_upc'] = $this->language->get('text_upc'); $this->data['text_ean'] = $this->language->get('text_ean'); $this->data['text_jan'] = $this->language->get('text_jan'); $this->data['text_isbn'] = $this->language->get('text_isbn'); $this->data['text_mpn'] = $this->language->get('text_mpn'); $this->data['text_discount'] = $this->language->get('text_discount'); $this->data['column_number'] = $this->language->get('column_number'); $this->data['column_image'] = $this->language->get('column_image'); $this->data['column_name'] = $this->language->get('column_name'); $this->data['column_model'] = $this->language->get('column_model'); $this->data['column_rating'] = $this->language->get('column_rating'); $this->data['column_price'] = $this->language->get('column_price'); $this->data['column_stock'] = $this->language->get('column_stock'); $this->data['column_qty'] = $this->language->get('column_qty'); $this->data['column_action'] = $this->language->get('column_action'); $this->data['button_cart'] = $this->language->get('button_cart'); $url = ''; //column header sort href if ($order == 'ASC') { $url .= '&order=DESC'; } else { $url .= '&order=ASC'; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } if (isset($this->request->get['catid'])) { $url .= '&catid=' . $this->request->get['catid']; } $this->data['sort_name'] = $this->url->link('product/pricelist', '&sort=pd.name' . $url, 'SSL'); $this->data['sort_model'] = $this->url->link('product/pricelist', '&sort=p.model' . $url, 'SSL'); $this->data['sort_rating'] = $this->url->link('product/pricelist', '&sort=rating' . $url, 'SSL'); $this->data['sort_price'] = $this->url->link('product/pricelist', '&sort=p.price' . $url, 'SSL'); $this->data['sort_quantity'] = $this->url->link('product/pricelist', '&sort=p.quantity' . $url, 'SSL'); $url = ''; //limits if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['catid'])) { $url .= '&catid=' . $this->request->get['catid']; } $this->data['limits'] = array(); foreach($this->default_limits as $default_limit) { $this->data['limits'][] = array( 'value' => $default_limit, 'href' => $this->url->link('product/pricelist', $url . '&limit='. $default_limit, 'SSL') ); } $url = ''; //categories if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $this->data['categories'] = array(); $categories = $this->getCategories(0); foreach($categories as $category) { $path = $this->getPath($category['category_id']); if($path) { $this->data['categories'][$path] = array( 'category_id' => $category['category_id'], 'name' => $path, 'href' => $this->url->link('product/pricelist', $url . '&catid='. $category['category_id'], 'SSL'), ); } ksort($this->data['categories']); } array_unshift($this->data['categories'], array( 'category_id' => 0, 'name' => $this->language->get('text_all_products'), 'href' => $this->url->link('product/pricelist', $url, 'SSL'), )); $url = ''; //redirect, pagination href if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } if (isset($this->request->get['catid'])) { $url .= '&catid=' . $this->request->get['catid']; } $data = array( 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit, ); if($catid) { $data['filter_category_id'] = $catid; } $this->data['catid'] = $catid; $product_total = $this->model_catalog_product->getTotalProducts($data); if((($page - 1) * $limit) > $product_total) { $this->redirect($this->url->link('product/pricelist', $url, 'SSL')); } $this->data['products'] = array(); $products = $this->model_catalog_product->getProducts($data); foreach($products as $product_info) { if ($this->config->get('config_customer_price') && !$this->customer->isLogged()) { $product_info['price'] = false; } $discount_query = $this->model_catalog_product->getProductDiscounts($product_info['product_id']); $discounts = array(); if($product_info['price']) { foreach ($discount_query as $discount) { $discounts[] = array( 'quantity' => $discount['quantity'], 'price' => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) ); } } $gallery = array(); if($product_info['image']) { $images = $this->model_catalog_product->getProductImages($product_info['product_id']); foreach ($images as $image) { $gallery[] = $this->model_tool_image->resize($image['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')); } } $this->data['products'][$product_info['product_id']] = array( 'image' => $product_info['image'] ? $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')) : $this->model_tool_image->resize('no_image.jpg', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')), 'popup' => $product_info['image'] ? $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')) : false, 'gallery' => $gallery, 'href' => $this->url->link('product/product', 'product_id=' . $product_info['product_id']), 'name' => $product_info['name'], 'description' => nl2br($this->word_trim(strip_tags(html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8')), 25, TRUE)), 'model' => $product_info['model'], 'sku' => isset($product_info['sku']) && $product_info['sku'] ? $product_info['sku'] : FALSE, 'upc' => isset($product_info['upc']) && $product_info['upc'] ? $product_info['upc'] : FALSE, 'ean' => isset($product_info['ean']) && $product_info['ean'] ? $product_info['ean'] : FALSE, 'jan' => isset($product_info['jan']) && $product_info['jan'] ? $product_info['jan'] : FALSE, 'isbn' => isset($product_info['isbn']) && $product_info['isbn'] ? $product_info['isbn'] : FALSE, 'mpn' => isset($product_info['mpn']) && $product_info['mpn'] ? $product_info['mpn'] : FALSE, 'rating' => $product_info['rating'], 'price' => $product_info['price'] ? $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) : false, 'special' => $product_info['special'] ? $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax'))) : false, 'discounts' => $discounts, 'quantity' => $product_info['quantity'], 'minimum' => $product_info['minimum'], ); } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->text = $this->language->get('text_pagination'); $pagination->url = $this->url->link('product/pricelist', $url . '&page={page}', 'SSL'); $this->data['pagination'] = $pagination->render(); //print button if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } $this->data['print'] = $this->url->link('product/pricelist/printable', $url, 'SSL'); $this->data['sort'] = $sort; $this->data['order'] = $order; $this->data['limit'] = $limit; } private function getCategories($category_id) { $category_data = array(); $this->load->model('catalog/category'); $categories = $this->model_catalog_category->getCategories($category_id); foreach ($categories as $category) { $category_data[] = $category; $children = $this->getCategories($category['category_id']); if ($children) { $category_data = array_merge($children, $category_data); } } return $category_data; } private function getPath($category_id) { $this->load->model('catalog/category'); $category_info = $this->model_catalog_category->getCategory($category_id); if(!$category_info) { return false; } if ($category_info['parent_id']) { return $this->getPath($category_info['parent_id']) . $this->language->get('text_separator') . $category_info['name']; } return $category_info['name']; } private function word_trim($string, $count, $ellipsis = FALSE) { $words = explode(' ', $string); if (count($words) > $count){ array_splice($words, $count); $string = implode(' ', $words); if (is_string($ellipsis)){ $string .= $ellipsis; } elseif ($ellipsis){ $string .= '…'; } } return $string; } } ?>
- 2 replies
-
- прайс лист
- категории
-
(and 1 more)
Tagged with: