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

Eldaeron

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

    964
  • З нами

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

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

  1. https://developers.novaposhta.ua/view/model/a0cf0f5f-8512-11ec-8ced-005056b2dbe1/method/a1c42723-8512-11ec-8ced-005056b2dbe1
  2. Для перекладу товару і опцій - потрібно підтягнути product_description, option_description. Для перекладу способів доставки і оплат (включаючи "Сумма", "Итого") - з каталогу підтягнути. Скажіть id української мови, зроблю вам мод.
  3. ну ви про рахунок в адмінці говорите? 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
  4. в 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 як береться сам метод.
  5. Тому я і пропонував йому зробити var_dump, щоб знати які дані прийшли, і викликало помилку)
  6. 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'] ) ) ) {
  7. Для всього сайту (і категорії, і сторінка товару). Як варіант перепишіть в шаблоні виводу теми 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 - буде попадати в корзину без перевірки опцій, а на самій сторінці опції будуть обов’язкові.
  8. Ну наприклад такий костиль: $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') { // товар додано із сторінки продукта }
  9. Наприклад додати jquery код внизу product.tpl [twig] let options = $('[id^="input-option"]'); options.each(function(){ $(this).find('input:first').attr('checked', true); });
  10. підредагувати метод add (створити модифікатор дуже просто), в catalog/controller/checkout/cart.php , вказавши якщо опції не вибрані але обов’язкові, додай ці опції (наприклад - першу з них). Зверніть тут увагу.
  11. Якщо модуль називається саме Комбінації опцій, то це він - Дивно, що тему 2020 року підняли, переклали і запостили зараз тут https://forum.opencart.com/viewtopic.php?t=219316
  12. Там в архіві є 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 Можна і інше прикрутити, як кажуть "До кольору, до вибору!"
  13. завантажте скрипт https://momentjs.com/ та додайте його до скриптів перед завантаженням bootstrap-datetimepicker.js
  14. Eldaeron

    Opencart на стероїдах

    Треба дивитись код меню, версію 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']); } Про кеш можете почитати тут:
  15. Eldaeron

    Opencart на стероїдах

    Тут і не дивно, що в перших місцях База Даних! Памятаю, як фіксив ІМ який грузився 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']);
  16. Вага яка вказана в Товар -> Дані (неповязана) з тим , що ви заповните в Товар -> Одиниці виміру Немає нічого спільного з Товар -> Одиниці виміру Тут ви можете вказати декілька одиниць. Наприклад Плінтус у вас продаж за шт. Додаткова одиниця м2, коефіцієнт 0.6, 1 шт = 0.6м2, або Яйця 1пачка, вказавши що в ящику 300 шт., або дюбеля 1п. (пачка) вказавши додаткову одиницю виміру штуки, з коефіцієнтом 100 - буде 100шт в 1пачці. і т.д. Це зроблено для інформативності покупцям. Ціна / Одиниця виміру візуально відображатись будуть так:
  17. Що ви маєте наувазі під "наприклад вагу яка вже модуль" ? Модуль виводить одиниці виміру які ви задасте товару, їх можна вручну додати, або в масовому редакторі наприклад по категоріям заповнити. Також виводить декілька одиниць товару, наприклад якщо основною одиницею виміру є ціна за кілограм, а додатковою штуки, то буде щось на зразок цього (Основна одиниця кг - коефіцієнт 1, а штукт - коефіцієнт100)
  18. Добрий день. Напишіть суть проблеми, в особисті повідомлення.
  19. Были тут модули: там с картой доставка, посмотрите скрытый пост. Автор tabook, спросите.
  20. та ні все, ок ви вибрали просто такий товар.... змінив товар все гаразд
×
×
  • Створити...

Important Information

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