Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

VladSiy

Користувачі
  
  • Публікації

    66
  • З нами

  • Відвідування

Усі публікації користувача VladSiy

  1. 0. ...? 1. catalog/controller/mail/register.php - здесь я получаю регистрационные данные пользователя. 2. из первого пункта данные передаются в catalog/view/theme/default/template/mail/register.twig. Здесь мне все поняно. Вопрос заключается в другом. Представьте, что есть "нулевой" пункт, как из пункта 0 данные попадают в пункт 1? что_то_должно_передать_три_аргумента_в->index($route, $args, $output);
  2. Забыл уточнить, что это OpenCart 3. Наверное вы не поняли мой вопрос, а может быть я не понял ваш ответ Я не могу понять, откуда передаются данные в catalog/controller/mail/register.php public function index(&$route, &$args, &$output) {... эта функция принимает 3 аргумента, вот где она их берет? Я хочу найти этот файл, который передает в эту функцию данные и расширить $args, что бы отправить их письмом зарегистрированному пользователю. Если вы правильно все поняли и ответили выше, то объясните, пожалуйста подробнее, потому что я не понял
  3. Когда я регистрируюсь мне на почту приходит письмо-уведомление с благодарностью. Отправляется оно отсюда .../catalog/controller/mail/register.php В этом файле есть функция: public function index(&$route, &$args, &$output) { Подскажите, пожалуйста, откуда идет обращение к этой функции? Я не могу никак проследить... Мне нужно в $args передать дополнительные данные. Спасибо заранее.
  4. Помогите, пожалуйста, выполнить вот такой запрос: OC3x SELECT product_id FROM . DB_PREFIX . mytable WHERE price > 0 Этот запрос мне нужно добавить в getProductSpecials по пути /model/catalog/product.php. Я подумал про 2 варианта: 1. Расширить существующий sql запрос, он был в одну строку, я попытался его разделить, чтобы было понятнее, но не смог решить свою задачу. И добавлял после product_special строчку . DB_PREFIX . "mytable mt LEFT JOIN " $sql = "SELECT DISTINCT ps.product_id, ( SELECT AVG(rating) FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM " . DB_PREFIX . "product_special ps LEFT JOIN " . DB_PREFIX . "product p ON (ps.product_id = p.product_id) LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW()) ) GROUP BY ps.product_id"; 2. Сделать свой запрос ниже: $sql .= "SELECT product_id FROM ". DB_PREFIX . "mytable WHERE price > 0"; Естественно, в обоих случаях ошибки. Мне уже не первый раз приходится прибегать к запросу с LEFT JOIN, читал разные статьи, но, не разобрался. Кажется, в Open Cart чересчур сложный запрос. Хотелось бы понять, как оно работает, может быть кто-то сможет доступно объяснить?
  5. Всему виной моя не внимательность. Может кто-то наступит на такие же грабли, вот решение моей проблемы. Я неправильно упаковал архив. Мой архив выглядел так: test.ocmod.zip -test.ocmod --upload --install.xml перепаковал так: test.ocmod.zip -upload -install.xml И еще удалил пробелы в поиске в xml и все заработало: <search><![CDATA[{{ language }}]]></search>
  6. 1. Если я правильно понял ваше предложение проверить распаковывается ли архив, то да, распаковывается. Проверил с помощью ZipArchive::extractTo. 2. В User Groups у меня вообще нет чекбокса с modification/upload.
  7. Вот это сработало, спасибо. Теперь бы разобраться, как файлы загрузить через установщик.
  8. Перефразируйте, пожалуйста, я не понял, что нужно проверить и где
  9. ocmod.log 2020-03-24 14:05:40 - MOD: Modification Default FILE: system/engine/action.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 69 FILE: system/engine/loader.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 77 LINE: 151 LINE: 168 FILE: system/library/config.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 59 FILE: system/library/language.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 67 LINE: 73 FILE: system/library/template/template.php REGEX: ~(require|include)(_once)?\(([^)]+)~ LINE: 18 FILE: system/library/template/twig.php CODE: $loader = new \Twig_Loader_Filesystem(DIR_TEMPLATE); LINE: 19 ----------------------------------------------------------------
  10. Столкнулся с проблемой, не могу разобраться, что я делаю не так. OpenCart 3.0.3.2. Я немного расширил функционал магазина. Всю работу я сделал в оригинальных файлах и все работает, как я и хотел. Захотелось познакомиться с ocmod и я подумал всю работу сделать с помощью модификатора. На данный момент я оставил все работающие файлы на своих местах и убрал только 1 файл по пути admin/controller/extension/module/test.php. Если вернуть его на место, то в Extensions->modules появится название моего, так сказать, модуля. Что я сделал: Создал zip архив test.ocmod В архиве находятся файл install.xml и папка upload. В папке upload/admin/controller/extension/module/ есть файл test.php тот, который я убрал. Для теста я хочу его вернуть на свое место с помощью "Installer". В файле install.xml вот что: <?xml version="1.0" encoding="UTF-8"?> <modification> <name>Test</name> <code>test</code> <version>1.0</version> <link>test.test</link> <author>Test</author> <file path="catalog/view/theme/default/template/common/header.twig"> <operation> <search><![CDATA[ {{ language }} ]]></search> <add position="after"><![CDATA[ {{ test }} ]]></add> </operation> </file> </modification> Установка проходит отлично. в Install History появляется запись. В модификаторе и в Developer Settings обновляю все, что есть. И вот сама проблема: В Modification List - ничего нет. В Extensions->modules - ничего нет. По пути system/storage/modification кроме системных папок и файла index.html - тоже ничего нет. Я подумал, что это связано с тем, что я не перенес папку storage за пределы каталога сайта. Только что вынес эту папку, загрузил архив снова, но кроме системных папок и файлов ничего в папке modification нет. Уже не знаю, что пробовать. Читал, что бывает проблема с неправильно настроенным FTP, на 2-ке видел эту вкладку, а на 3-ке не вижу. Подскажите, пожалуйста, что я делаю не правильно, или в чем может быть проблема?
  11. Нужна помощь, не могу разобраться в sql запросе. в /catalog/model/catalog/product.php есть функция: public function getProduct($product_id) { $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special,(SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND pr.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"); if ($query->num_rows) { return array( 'product_id' => $query->row['product_id'], 'name' => $query->row['name'], 'description' => $query->row['description'], 'meta_title' => $query->row['meta_title'], 'meta_description' => $query->row['meta_description'], 'meta_keyword' => $query->row['meta_keyword'], 'tag' => $query->row['tag'], 'model' => $query->row['model'], 'sku' => $query->row['sku'], 'upc' => $query->row['upc'], 'ean' => $query->row['ean'], 'jan' => $query->row['jan'], 'isbn' => $query->row['isbn'], 'mpn' => $query->row['mpn'], 'location' => $query->row['location'], 'quantity' => $query->row['quantity'], 'stock_status' => $query->row['stock_status'], 'image' => $query->row['image'], 'manufacturer_id' => $query->row['manufacturer_id'], 'manufacturer' => $query->row['manufacturer'], 'price' => ($query->row['discount'] ? $query->row['discount'] : $query->row['price']), 'special' => $query->row['special'], 'reward' => $query->row['reward'], 'points' => $query->row['points'], 'tax_class_id' => $query->row['tax_class_id'], 'date_available' => $query->row['date_available'], 'weight' => $query->row['weight'], 'weight_class_id' => $query->row['weight_class_id'], 'length' => $query->row['length'], 'width' => $query->row['width'], 'height' => $query->row['height'], 'length_class_id' => $query->row['length_class_id'], 'subtract' => $query->row['subtract'], 'rating' => round($query->row['rating']), 'reviews' => $query->row['reviews'] ? $query->row['reviews'] : 0, 'minimum' => $query->row['minimum'], 'sort_order' => $query->row['sort_order'], 'status' => $query->row['status'], 'date_added' => $query->row['date_added'], 'date_modified' => $query->row['date_modified'], 'viewed' => $query->row['viewed'] ); } else { return false; } } В ней есть sql запрос, в котором я не могу разобраться. На примере акционного товара, подскажите, пожалуйста, как изменить этот запрос так, чтобы он вывел не 1 цену, как сейчас, а все цены, которые установлены во вкладке Акция, например 5 записей. В итоге хотел бы по определенному условию показывать нужную мне цену. Изменение/удаление LIMIT приводит к ошибке.
  12. Спасибо за советы. Решил свою проблемой так: Создал почтовый ящик на хостинге [email protected] и настроил отправку почты в админке CMS через SMTP, используя в качестве сервера почты сервер моего хостинга hosting_name.ru, порт 25, логин и пароль от почты [email protected] с хостинга.
  13. Здравствуйте. OpenCart 2.3.0.2.3 Не так давно возникла проблема, с доставкой писем на ukr.net, вообще не доходят. Временно решили эту проблему так: 1. создал почту на хостинге [email protected], 2. в админке магазина, в поле Email установил почту [email protected], 3. на хостинге с [email protected] перенаправлял на [email protected]. Может быть недельку поработало и ситуация повторилась, перестали приходить письма. Потом решили эту проблему добавлением ТХТ-запись с SPF. Снова хватило на пару недель. Вчера перестало работать. Скорее всего проблема в том, что ukr.net проверяет отправителя и он не соответствует домену сайта. В файлах сайта, уже не помню точный путь, где именно я это делал, в строке отправителя я прописывал: $mail->setSender('[email protected]'); кажется я заменял везде, где встречается эта строка, Но в почтовике я вижу: Отправитель: user@hosting_name.ru Письма приходят от системного адреса. Подскажите, пожалуйста, где и каким образом я могу изменить имя отправителя, чтобы письмо отправлялось не с системного адреса, а с моего домена, на котором расположен магазин. Возможно, причина и не в этом, может быть кто-то уже сталкивался с такой проблемой, поделитесь ее решением. PS На Gmail письма приходят без проблем, не теряются. Но штат не хочет менять рабочую почту. Убедить не могу.
  14. Спасибо. "Модуль работает на основе базы данных Sypex Geo...", я использовал ту же базу, в моем случае не сработало. Все же, наверное попробую модуль, может сработает.
  15. Не могу решить одну задачу. OpenCart 2.3.0.2.3 Занимаюсь сайтом сети кафетериев. Торговые точки есть в определенных городах, городов около 10-ка и постоянно добавляются новые. Соответственно сайт привязан к географии. Все было хорошо, пока цены и акции применялись ко всем городам. Но теперь есть задача показывать акционный товар только в 3-ке городов. Я пытался это реализовать с помощью SxGeo. В принципе он работает, но не так точно, как мне нужно. Т.е. 2 города, для которых мне нужно показать акцию - Фастов и Обухов, SxGeo определяет их, как "Киев". Нашел в интернете список блоков ip адресов для этих городов, и по условию менял статус акционного товара на отключенный, а для тех, кто не подходит под условие - активировал. Когда проверял на своем IP адресе - все работало, попросил проверить жителей нужных городов - не работает. В общем этот способ мне не подошел. Решил попробовать другой способ, добавить в админку новое поле с дополнительной ценой, и выставлять цену для акционного города, и потом уже дальше в шаблоне решать, показывать товар или нет. Все, что я мог бы сделать - это статично добавить поля, а они могут меняться очень быстро для разных городов. Оставил я эту затею. В итоге решил спросить вас, может быть подскажите, какой-то способ, который даст мне возможность определить точный город и как-то в админке оформить товар для определенных городов. Может быть есть какой-то недорогой модуль, или приспособить какую-то из существующих в коробке возможностей? Поделитесь, пожалуйста, идеями. Спасибо.
  16. Здравствуйте, нужна помощь. Коротко говоря, мне нужно подредактировать форму так, чтобы в зависимости от выбранного города доставки (выпадающий список), в следующем списке выпадали адреса торговых точек относящихся к выбранному городу и выбор добавился в письмо, такого типа: самовывоз из магазина по адресу ... здесь то, что выберет клиент. Я думаю это сделать таким образом: в админке можно добавить "местоположение". Сюда добавил несколько городов с адресами ТТ. На странице оформления заказа вывел этот список адресов. С помощью JS и Jquery привязался к выпадающему списку городов/регионов. По событию "onchange" получаю выбранный город, Ajax-м отправляю этот город в созданный контроллер. Теперь мне надо сделать выборку адресов в модели location в функции getLocation, только дописать туда условие, чтобы выводить только те, которые соответствуют имени города. У меня все это получается сделать, только, если в модели вручную пропишу имя города, или, если отправленный ajax-ом город добавлю в сессию. У меня есть вопросы, прошу подскажите, пожалуйста, желательно с наглядными примерами: 1. Могу ли я сделать все это немного проще? Возможно я уж слишком намудрил 2. Как можно передать данные с именем города из контроллера в модель localisation/location без сессии? 3. Как обновить блок без перезагрузки страницы, чтобы там отобразился результат выборки, если без сессии нельзя? Если, не возможно помочь теоретически, но, желательно подробнее, то я со временем распишу проблему более подробно и приведу куски кода. Спасибо.
  17. Кажется получилось сделать мультимагазин с помощью алиасов, пока только на локалке. На данный момент, кажется все устраивает, но что-то, возможно, просто не учел. Немного страшно переделывать работающие магазины Допустим, я решился, мне придется удалить сайты и бд с поддоменов. Не уничтожу ли я таким образом сайты, в отношении видимости для поисковиков? Еще мне нужно перевести все магазины на https, это делается, как для обычного сайта?
  18. Я читал, что для каждого поддомена необходимо устанавливать CMS и указывать одну БД. В таком случае, в принципе, не вижу смысла делать мультимагазин, по сути я сейчас имею тоже самое, только не могу перейти на сайт из админке. Как сделать один набор фалов?
  19. Спасибо, буду эксперементировать. Подозреваю, что админка будет единая для всех магазинов и менеджеров?
  20. Здравствуйте. Когда-то давно я сделал один интернет-магазин, который был привязан к определенному городу. Со временем потребовалось сделать магазин для еще одного города, и я сделал клон сайта на поддомене. Сейчас мне нужно сделать уже 13-й клон интернет-магазина, и у меня возник вопрос, есть ли более правильное решение? Почему я делал поддомены: - магазины привязаны к конкретному городу, - разные адреса, контактные данные, - в каждом городе свои менеджеры, заказы должны идти на почту выбранного города. Почему меня смущает такой подход: - во всех городах/магазинах одинаковые товары, цены и т.д. (слишком много копий изображений товаров, не рационально используется место на хостинге), - не удобно вносить правки в файлы, товары и т.д. - дорого в плане покупки платных модулей. Я знаю, что есть мультимагазин на OpenCart, но на сколько помню, он использует одну БД для всех магазинов. Если так, я же не смогу иметь разные Email адреса для заказов в разных городах? Возможно дальше будут снова появляться новые города, и будет становиться все труднее и труднее в обслуживании. Поделитесь, пожалуйста, опытом или советом, как можно было бы поступить в моем случае?
  21. А есть у кого-нибудь страны и зоны на украинском языке? Или же, может кто-то знает, как из exel сделать импорт в таблицу mysql?
  22. А не подскажите, как сделать отображение хотя бы на англ.? Где вообще хранится список стран?
  23. У меня на сайте 3 языка: рус, англ, укр. Есть ли какой-нибудь модуль, который при оформлении заказа может отображать название стран и городов в зависимости от выбранного языка на сайте? Если модуля нет, то как проще всего сделать перевод? Подскажите, пожалуйста. Боюсь представить, насколько нудная работа предстоит.
  24. Здравствуйте. Мог бы кто-нибудь мне помочь написать правильный запрос для выбора нужных товаров? Введение: - В магазине есть артикулы товара, я использую поле "model" - Есть артикул замены, использую поле "sku" Артикул замены - это артикул аналогичного товара. (поля заполняются вручную в админке) Пример: Товар №1 Артикул - xxxxxx Артикул замены - yyyyyy Товар №2 Артикул - yyyyyy Артикул замены - xxxxxx Артикулов замены на одном товаре может быть до 3-х штук. Что я сделал: в контроллере продукта ... $this->data['productsArtZam'] = array(); $results = $this->model_catalog_product->getProductArtZam($this->request->get['product_id'],$this->data['sku'], $this->data['model']); foreach ($results as $result) { $skus = explode(',', $result['model']); foreach ($skus as $sku) { $this->data['productsArtZam'][] = array( 'sku' => trim($sku), 'href' => $this->url->link('product/product', 'product_id=' . $result['product_id']) ); } } В модели продукта ... public function getProductArtZam($product_id, $sku, $model) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE (sku LIKE '%" . $model . "%' AND quantity > 0 AND status = '1' ) LIMIT 1,6 "); } в tpl продукта вывожу артикул тех продуктов, которые соответствуют запросу. У меня это работает так: я заполняю поле артикул(model) и, через запятую, Артикул замены (sku). Разбиваю строку на массив, сравниваю и вывожу. Чтобы эти арт. зам. выводились нужно в обоих товарах их прописать Кажется, что все у меня получается, я получаю нужные товары, до 3-х шт. с активными, правильными ссылками. НО из-за LIKE %...% у меня все не получается. Есть два разных товара с разными артикулами: артикул ART-38 и ART-3. Артикул замены применяется и к ART-38 и ART-3, а должен только к первому. Вместо LIKE делаю "=" все работает, как надо, но не выводится больше 1-го артикула замены, т.е. если в ... Товар №2 Артикул - yyyyyy Артикул замены - xxxxxx, zzzzzz ... то запрос, как бы не устраивает. Могли бы помочь решить эту проблемку? :)
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.