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

Eldaeron

Users
  • Posts

    963
  • Joined

  • Last visited

Everything posted by Eldaeron

  1. Для перекладу товару і опцій - потрібно підтягнути product_description, option_description. Для перекладу способів доставки і оплат (включаючи "Сумма", "Итого") - з каталогу підтягнути. Скажіть id української мови, зроблю вам мод.
  2. ну ви про рахунок в адмінці говорите? sale/order/invoice Бачу, що там так же само як з методами доставки, тільки таблиця називається order_total =) В контроллері: $totals = $this->model_sale_order->getOrderTotals($order_id); В моделі: public function getOrderTotals($order_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_total WHERE order_id = '" . (int)$order_id . "' ORDER BY sort_order"); return $query->rows; } Тому потрібно з мовного файлу catalog\language\*\extension\total\total.php Сума теж подивіться, в таблиці, можливо це в вас sub_total => catalog\language\*\extension\total\sub_total.php
  3. в admin/language/{ua, ukraininan, uk-ua, ... }/sale/order.php у вас не перекладено пункти "Сумма" і "Итого" $_['entry_total'] = 'Разом'; $_['entry_amount'] = 'Сума'; Назва товару, залежить від мови на якій зробили замовлення так дійсно в таблиці order_product name не мультимовне, але ви можете звязати product_id таблиці order_product з таблицею product, і взяти name товару з потрібними вам мовними налаштуваннями (в даному випадку української версії). Потрібно врахувати, що товар може бути видалений (якщо ви видаляєте) то такого id може і не бути, тому тут і зберігають назву самого товару). Потрібно відредагувати метод public function getOrderProducts($order_id) в admin/model/sale/order.php Як приклад бачим назву на англ. мові, хоч замовлення на 404 мові зроблено. Закоментований запис, стандартний з методу getOrderProducts. Так само і з опціями самого товару - звяжіть order_option з option_description. З методом доставки - потрібно по коду взяти його мовний запис. Ознайомтесь з catalog/controller/checkout/shipping_method як береться сам метод.
  4. Тому я і пропонував йому зробити var_dump, щоб знати які дані прийшли, і викликало помилку)
  5. https://support.ocdemo.eu/ Ту на форумі в темі модуля їх відповідей немає. Хотя цікаво вроді у вас OcStore 2.3, то який VQmod, ну то таке. 1) Зробіть налагодження коду (debbugging) перед тим рядком з if (на 20 рядку) пройдіться var_dump(), можливо ви який заборонений символ в налаштуваннях використали <?php var_dump($this->request->get[$this->config->get('mfilter_url_param')?$this->config->get('mfilter_url_param'):'mfp']); var_dump($this->request->post[$this->config->get('mfilter_url_param')?$this->config->get('mfilter_url_param'):'mfp']); var_dump($this->config->get('mega_filter_settings')); if ( isset($this->request->get[$this->config->get('mfilter_url_param')?$this->config->get('mfilter_url_param'):'mfp']) || isset($this->request->post[$this->config->get('mfilter_url_param')?$this->config->get('mfilter_url_param'):'mfp']) || ( NULL != ( $mfSettings = $this->config->get('mega_filter_settings') ) && ! empty( $mfSettings['in_stock_default_selected'] ) ) ) {
  6. Для всього сайту (і категорії, і сторінка товару). Як варіант перепишіть в шаблоні виводу теми catalog/view/ВАША_ТЕМА/template/product/product.tpl: Замінити з: url: 'index.php?route=checkout/cart/add', На: url: 'index.php?route=checkout/cart/addWithOptions', Дальше в catalog/controller/checkout/cart.php, замінити: public function add() { На цей код: public function addWithOptions() { $this->add(true); } public function add($check = false) { Дальше замінити: foreach ($product_options as $product_option) { if ($product_option['required'] && empty($option[$product_option['product_option_id']])) { $json['error']['option'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']); } } На цей код: if ($check === true) { foreach ($product_options as $product_option) { if ($product_option['required'] && empty($option[$product_option['product_option_id']])) { $json['error']['option'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']); } } } В такому вигляді, по всьому сайті, окрім товару із сторінки product - буде попадати в корзину без перевірки опцій, а на самій сторінці опції будуть обов’язкові.
  7. Ну наприклад такий костиль: $from = $this->request->server['HTTP_REFERER']; $parts = explode('/', $from); $parts = array_reverse($parts, true); foreach ($parts as $part) { $_query = $this->db->query("SELECT query FROM " . DB_PREFIX . "seo_url WHERE keyword = '" . $this->db->escape(trim($part)) . "' LIMIT 1"); if ($_query->row['query']) { $query = explode('=', $_query->row['query']); $controller = $query[0]; break; } } if ($controller == 'category_id') { // товар додано із сторінки категорії } if ($controller == 'product_id') { // товар додано із сторінки продукта }
  8. Наприклад додати jquery код внизу product.tpl [twig] let options = $('[id^="input-option"]'); options.each(function(){ $(this).find('input:first').attr('checked', true); });
  9. підредагувати метод add (створити модифікатор дуже просто), в catalog/controller/checkout/cart.php , вказавши якщо опції не вибрані але обов’язкові, додай ці опції (наприклад - першу з них). Зверніть тут увагу.
  10. Якщо модуль називається саме Комбінації опцій, то це він - Дивно, що тему 2020 року підняли, переклали і запостили зараз тут https://forum.opencart.com/viewtopic.php?t=219316
  11. Там в архіві є install.xml В ньому скрипт <script> //sptitlereplace var sptr_originalTitle = document.title; window.addEventListener("blur", function() { document.title = "<?php echo $sptr_title; ?>"; }); window.addEventListener("focus", function() { document.title = sptr_originalTitle; }); //sptitlereplace </script> Замініть на: <script> var origTitle, animatedTitle, timer; function animateTitle(newTitle) { var currentState = false; origTitle = document.title; animatedTitle = "<?php echo $sptr_title; ?>"; timer = setInterval(startAnimation, 2000); function startAnimation() { // animate between the original and the new title document.title = currentState ? origTitle : animatedTitle; currentState = !currentState; } } function restoreTitle() { clearInterval(timer); document.title = sptr_originalTitle; // restore original title } //sptitlereplace var sptr_originalTitle = document.title; window.addEventListener("blur", function() { animateTitle('<?php echo $sptr_title; ?>'); }); window.addEventListener("focus", function() { restoreTitle(); }); //sptitlereplace </script> Взято із цього рішення: https://stackoverflow.com/a/46960019 Можна і інше прикрутити, як кажуть "До кольору, до вибору!"
  12. завантажте скрипт https://momentjs.com/ та додайте його до скриптів перед завантаженням bootstrap-datetimepicker.js
  13. Треба дивитись код меню, версію opencart, якщо для 2.3 то меню в catalog/controller/common/header.php Такий код: $data['categories'] = array(); $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { if ($category['top']) { // Level 2 $children_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $filter_data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $children_data[] = array( 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } // Level 1 $data['categories'][] = array( 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } } Замінити на: $data['categories'] = array(); if ($this->cache->get('header.categories.' . (int)$this->config->get('config_language_id'))) { $data['categories'] = $this->cache->get('header.categories.' . (int)$this->config->get('config_language_id')); } else { $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { if ($category['top']) { // Level 2 $children_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $filter_data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $children_data[] = array( 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } // Level 1 $data['categories'][] = array( 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } } $this->cache->set('header.categories.' . (int)$this->config->get('config_language_id'), $data['categories']); } Про кеш можете почитати тут:
  14. Тут і не дивно, що в перших місцях База Даних! Памятаю, як фіксив ІМ який грузився 13-20секунд особливо це відчувалось в категоріях =) А все через меню і модуль extension/category (Категорії) який був включений, клієнт жаліється чому сайт так довго грузить. Тематика авто, відповідно 600+ категорій це марки машини, різні моделі і т.д. Відключив модуль Категорії ІМ стало легше, проте результат ще не такий як хотілось з 13-20сек до 4-7сек) І щоб повністю побороти цю хворобу, переписали меню і модуль категорії під кеш, один раз закешував меню і видаєш цей результат для всього сайту, і сайт просто ожив з 13-20секунд загрузка зменшилась до 500мс. Ще були випадки з ІМ на слабому хостингу з відкриванням сторінки товарів коли товарів більше 50к - все із за метода updateViewed public function updateViewed($product_id) { $this->db->query("UPDATE " . DB_PREFIX . "product SET viewed = (viewed + 1) WHERE product_id = '" . (int)$product_id . "'"); } На перший погляд метод простий і нічого не повинно тормозити, проте коли його видаляли сайт оживав=) Просто перевели його на AJAX виклик після 5 секунд перегляду сторінки, і в контролері видаляєм виклик методу. $this->model_catalog_product->updateViewed($this->request->get['product_id']);
  15. Вага яка вказана в Товар -> Дані (неповязана) з тим , що ви заповните в Товар -> Одиниці виміру Немає нічого спільного з Товар -> Одиниці виміру Тут ви можете вказати декілька одиниць. Наприклад Плінтус у вас продаж за шт. Додаткова одиниця м2, коефіцієнт 0.6, 1 шт = 0.6м2, або Яйця 1пачка, вказавши що в ящику 300 шт., або дюбеля 1п. (пачка) вказавши додаткову одиницю виміру штуки, з коефіцієнтом 100 - буде 100шт в 1пачці. і т.д. Це зроблено для інформативності покупцям. Ціна / Одиниця виміру візуально відображатись будуть так:
  16. Що ви маєте наувазі під "наприклад вагу яка вже модуль" ? Модуль виводить одиниці виміру які ви задасте товару, їх можна вручну додати, або в масовому редакторі наприклад по категоріям заповнити. Також виводить декілька одиниць товару, наприклад якщо основною одиницею виміру є ціна за кілограм, а додатковою штуки, то буде щось на зразок цього (Основна одиниця кг - коефіцієнт 1, а штукт - коефіцієнт100)
  17. Добрий день. Напишіть суть проблеми, в особисті повідомлення.
  18. Были тут модули: там с картой доставка, посмотрите скрытый пост. Автор tabook, спросите.
  19. та ні все, ок ви вибрали просто такий товар.... змінив товар все гаразд
  20. Краще так: {# {{ search }} #} https://twig.symfony.com/doc/3.x/templates.html#comments
×
×
  • 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.