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

roma4891

Новачок
  
  • Публікації

    24
  • З нами

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

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

  1. Всім доброго дня. Шукаю людина яка зможе допомогти створити фукнціонал що дозволить завантажувати на сайт актуальну наявність продукції на основі файлів з 1С. Деталі в особисті Завчасно дякую
  2. Я купил модуль, как мне его активировать. ??? Домен Skyfire.com.ua
  3. Модуль абсолютно рабочий, проверте ещё раз выполнили Вы пункт 4, код foreach($results as $option) { $this->data['category_options'][] = array( должен появится в этом файле именно после его выполнения!
  4. Пока нет, но если есть предложение, внимательно Вас слушаю.
  5. Warning: Missing argument 2 for ModelCatalogProduct::getProductsByCategoryId(), called in .../catalog/controller/feed/google_sitemap.php on line 87 and defined in .../catalog/model/catalog/product.php on line 15Выдаёт таку штуку при включённом фильтре(по ссылке index.php?route=feed/google_sitemap). Понимаю что проблема в этой строке public function getProductsByCategoryId($category_id, $values, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) {а именно в $value. Тема уже затрагивалась shoma и afwollis но если удалять $value то ловлю Notice: Undefined variable: text_error in .../catalog/view/theme/default/template/product/category.tpl on line 15 на страницах категории!Уважаемые, помогите разобраться! Магазин без карты для гугла не магазин! Решено! catalog/controller/feed/google_sitemap.php 87 строка меняем $products = $this->model_catalog_product->getProductsByCategoryId($result['category_id'];на $products = $this->model_catalog_product->getProductsByCategoryId($result['category_id'], '$values = NULL');
  6. Таже проблема - не выгружается карта сайта в гугл, только при удалении $Values ловлю Notice: Undefined variable: text_error in .../catalog/view/theme/default/template/product/category.tpl on line 15 на страницах категорий или просто не отображаются товары в категориях где есть подкатегории(не выгружаюся продукты)!Без sitemap сайт можна сказать не рабочий! Помогите разобраться???!!!
  7. Как и обещал сделал ручную сборку с мануалом по установке и с учётом большинства изменений(сразу,у меня 0.1.8), из того что помню: - устранена проблема с IE (пост #72, 4 стр. afwollis); - добавлено в админке checkbox "Выбрать все" для выбора всех категорий (спасибо berikiushi); - назначение товару нескольких свойств (спасибо afwollis - пост #53) при редактировании товара; - логическое И (и то, и то обязательно) при фильтрации в категории по свойствам товара (спасибо afwollis - пост #79) - ... может чтото ещё...непомню (собирал ночью) Начнём, 1) Делаем запрос в базу данных(у меня ПРЕФИКС oc_): CREATE TABLE IF NOT EXISTS `oc_category_option` ( `option_id` int(10) NOT NULL AUTO_INCREMENT, `type` int(1) DEFAULT '0', `sort_order` int(10) DEFAULT '0', PRIMARY KEY (`option_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `oc_category_option_description` ( `option_id` int(10) NOT NULL DEFAULT '0', `language_id` int(10) NOT NULL DEFAULT '0', `name` varchar(127) DEFAULT NULL, PRIMARY KEY (`option_id`,`language_id`), KEY `name` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `oc_category_option_to_category` ( `option_id` int(11) NOT NULL, `category_id` int(11) NOT NULL, PRIMARY KEY (`category_id`,`option_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `oc_category_option_value` ( `value_id` int(10) NOT NULL AUTO_INCREMENT, `option_id` int(10) DEFAULT '0', PRIMARY KEY (`value_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `oc_category_option_value_description` ( `value_id` int(10) NOT NULL DEFAULT '0', `language_id` int(10) NOT NULL DEFAULT '0', `option_id` int(10) NOT NULL DEFAULT '0', `name` varchar(127) DEFAULT NULL, PRIMARY KEY (`value_id`,`language_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS `oc_product_to_value` ( `product_id` int(11) NOT NULL, `value_id` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`product_id`,`value_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 2) В файле admin|view|template|catalog|product_form.tpl После <a tab="#tab_links"><?php echo $tab_links; ?></a>Вставляем<a tab="#tab_filter">Опции фильтра</a> Далее после блока <div id="tab_general"></div>, примерно 59 строка, перед <div id="tab_data">Вставляем <!-- Start tab filter--> <div id="tab_filter"> Сначала необходимо выбрать категории товара </div> <!-- End tab filter-->Теперь идем в конец файла, ДО <?php echo $footer; ?>Вставляем <script type="text/javascript"><!-- $('input[name=product_category[]]').live('change', function() { getOptions(); }); <?php if (isset($this->request->get['product_id'])) { ?> <?php $if_product_id = '&product_id=' . $this->request->get['product_id']; ?> getOptions(); <?php } else { ?> <?php $if_product_id = ''; ?> <?php } ?> function getOptions() { var loadUrl = ''; var fields = $("input[name=product_category[]]").serializeArray(); jQuery.each(fields, function(i, field){ if (i == 0) { loadUrl += field.value; } else { loadUrl += '_' + field.value; } }); $('#tab_filter').load('index.php?route=catalog/product/filter&token=<?php echo $token; ?><?php echo $if_product_id; ?>&path=' + loadUrl); } //--></script>Сохраняем и закрываем.3) Открываем файл admin|model|catalog|product.php После блока (метод addProduct) гдето 21 строка if (isset($data['product_store'])) { foreach ($data['product_store'] as $store_id) { $this->db->query("INSERT INTO " . DB_PREFIX . "product_to_store SET product_id = '" . (int)$product_id . "', store_id = '" . (int)$store_id . "'"); } }Вставляем // Start Filter if (isset($data['product_to_value_id'])) { foreach ($data['product_to_value_id'] as $value_id) { $this->db->query("INSERT INTO " . DB_PREFIX . "product_to_value SET product_id = '" . (int)$product_id . "', value_id = '" . (int)$value_id . "'"); } } // End filterПосле блока (метод updateProduct) $this->db->query("DELETE FROM " . DB_PREFIX . "product_to_store WHERE product_id = '" . (int)$product_id . "'"); if (isset($data['product_store'])) { foreach ($data['product_store'] as $store_id) { $this->db->query("INSERT INTO " . DB_PREFIX . "product_to_store SET product_id = '" . (int)$product_id . "', store_id = '" . (int)$store_id . "'"); } }Вставляем // Start filter $this->db->query("DELETE FROM " . DB_PREFIX . "product_to_value WHERE product_id = '" . (int)$product_id . "'"); if (isset($data['product_to_value_id'])) { foreach ($data['product_to_value_id'] as $value_id) { $this->db->query("INSERT INTO " . DB_PREFIX . "product_to_value SET product_id = '" . (int)$product_id . "', value_id = '" . (int)$value_id . "'"); } } // End filterПосле (метод copyProduct) $data = array_merge($data, array('product_store' => $this->getProductStores($product_id)));Вставляем // Start filter $data = array_merge($data, array('product_to_value_id' => $this->getProductValues($product_id))); // End filterПосле (метод deleteProduct) $this->db->query("DELETE FROM " . DB_PREFIX . "product_to_store WHERE product_id = '" . (int)$product_id . "'");Вставляем // Start filter $this->db->query("DELETE FROM " . DB_PREFIX . "product_to_value WHERE product_id = '" . (int)$product_id . "'"); // End filterИдем в конец файла, до закрытия класса вставляем // Start filter public function getProductValues($product_id) { $values_id = array(); $query = $this->db->query("SELECT p2v.value_id AS value_id FROM " . DB_PREFIX . "product_to_value p2v WHERE p2v.product_id = '" . (int)$product_id . "'"); foreach ($query->rows as $result) { $values_id[] = $result['value_id']; } return $values_id; } // End filterСохраняем и закрываем.4) Открываем admin|controller|catalog|product.php в районе 1100 строки, после foreach($results as $option) { $this->data['category_options'][] = array(Должно быть(если нет вставляем!) 'option_id' => $option['option_id'],в итоге должно быть: foreach($results as $option) { $this->data['category_options'][] = array( 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'category_option_values' => $this->model_catalog_filter->getOptionValues($option['option_id']) ); }и идем в конец файла, до закрытия класса вставляем // Start filter public function filter() { $this->load->model('catalog/filter'); $this->load->model('catalog/product'); $this->data['category_options'] = array(); if (isset($this->request->get['path']) && $this->request->get['path'] != '') { $parts = explode('_', $this->request->get['path']); $results = $this->model_catalog_filter->getOptionByCategoriesId($parts); if ($results) { foreach($results as $option) { $this->data['category_options'][] = array( 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'category_option_values' => $this->model_catalog_filter->getOptionValues($option['option_id' ]) ); } } else { $this->data['message'] = 'Этой категории товаров не присвоен ниодин фильтр'; } } else { $this->data['message'] = 'Сначала выберите категорию товаров'; } if (isset($this->request->get['product_id'])) { $product_id = $this->request->get['product_id']; } else { $product_id = 0; } $product_info = $this->model_catalog_product->getProductValues($product_id); if (isset($this->request->post['product_to_value_id'])) { $this->data['product_to_value_id'] = $this->request->post['product_to_value_id']; } elseif (isset($product_info)) { $this->data['product_to_value_id'] = $this->model_catalog_product->getProductValues($product_id); } else { $this->data['product_to_value_id'] = array(); } $this->data['language_id'] = $this->config->get('config_language_id'); $this->template = 'catalog/get_ajax_options.tpl'; $this->response->setOutput($this->render(TRUE), $this->config->get('config_compression')); } // End filterСохраняем и закрываем.5) Открываем catalog|model|catalog|product.php Заменяем public function getProductsByCategoryId($category_id, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) {На public function getProductsByCategoryId($category_id, $values, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20) {До блока 17 строка $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' );Вставляем // Start filter /* if (isset($values) && $values != '') { $data = array(); foreach (explode('_', $values) as $value_id) { $data[] = "value_id = '" . (int)$value_id . "'"; } $sql .= " AND p.product_id IN (SELECT product_id FROM " . DB_PREFIX . "product_to_value WHERE " . implode(" OR ", $data) . ")"; } */ if (isset($values) && $values != '') { $data = array(); $values_without_underline = ""; $values_for_IN = ""; foreach (explode('_', $values) as $value_id) { if (empty($values_for_IN)) { $values_for_IN = "'".$value_id."'"; } else { $values_for_IN .= ", '".$value_id."'"; } $values_without_underline .= $value_id; } // http://forums.mysql.com/read.php?78,354483,354598#msg-354598 //(SELECT GROUP_CONCAT(DISTINCT Tag_id ORDER BY Tag_id ASC SEPARATOR '') FROM Tag_has_Post WHERE Post_id=t.Post_id AND Tag_id IN (2,5))='25'; $sql .= " AND (SELECT GROUP_CONCAT(DISTINCT value_id SEPARATOR '') FROM oc_product_to_value WHERE product_id=p.product_id AND value_id IN (".$values_for_IN."))='".$values_without_underline."'"; } // End filterЗаменяем весь метод public function getTotalProductsByCategoryId (теперь гдето с 84 по 85 строку)На public function getTotalProductsByCategoryId($category_id = 0, $values) { $sql = "SELECT COUNT(*) AS total FROM " . DB_PREFIX . "product_to_category p2c LEFT JOIN " . DB_PREFIX . "product p ON (p2c.product_id = p.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 p2c.category_id = '" . (int)$category_id . "'"; // Start filter /* if (isset($values) && $values != '') { $data = array(); foreach (explode('_', $values) as $value_id) { $data[] = "value_id = '" . (int)$value_id . "'"; } $sql .= " AND p.product_id IN (SELECT product_id FROM " . DB_PREFIX . "product_to_value WHERE " . implode(" OR ", $data) . ")"; } */ if (isset($values) && $values != '') { $data = array(); $values_without_underline = ""; $values_for_IN = ""; foreach (explode('_', $values) as $value_id) { if (empty($values_for_IN)) { $values_for_IN = "'".$value_id."'"; } else { $values_for_IN .= ", '".$value_id."'"; } $values_without_underline .= $value_id; } // http://forums.mysql.com/read.php?78,354483,354598#msg-354598 //(SELECT GROUP_CONCAT(DISTINCT Tag_id ORDER BY Tag_id ASC SEPARATOR '') FROM Tag_has_Post WHERE Post_id=t.Post_id AND Tag_id IN (2,5))='25'; $sql .= " AND (SELECT GROUP_CONCAT(DISTINCT value_id SEPARATOR '') FROM oc_product_to_value WHERE product_id=p.product_id AND value_id IN (".$values_for_IN."))='".$values_without_underline."'"; } // End filter $query = $this->db->query($sql); return $query->row['total']; }Сохраняем, закрываем.6) Открываем catalog|controller|product|category.php Заменяем $product_total = $this->model_catalog_product->getTotalProductsByCategoryId($category_id);На $product_total = $this->model_catalog_product->getTotalProductsByCategoryId($category_id, $values = NULL);Заменяем $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'));На $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $values = NULL, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'));Сохраняем, закрываем.7) Качаем архив manual_Openstore_module_product.zip и извлекаем в корень сайта с заменой. 8) Идем в админку -> дополнения и включаем фильтр, добавляем опции. manual_Openstore_module_product.zip
  8. Уважаемые подскажите, а как всё вручную настроить, у меня файлах которые заменять надо изменений внесено... всех и не вспомнить. Может есть где мануал?
  9. Огромное спасибо, правда лучше всё делать вручную(удалось настроить пошагово), меньше боков вылазит, кстати удалось сделать более менее нормальную сборку для ручной установки, сейчас тестирую - потом выложу, если автор против не будет.
  10. Актуально, хотя бы потому что место экономит в админке (я с ценами через экспорт/импорт работаю)Всёже как избавится от Notice: Undefined index: special in /.../admin/view/template/catalog/product_list.tpl on line 85 Notice: Undefined index: price in /.../admin/view/template/catalog/product_list.tpl on line 88 в списке товаров в админке?
  11. Ошибку в 35 строке исправить удалось(добавил в 357 строке $this->data['column_price'] = $this->language->get('column_price');, и 413 $this->data['sort_price'] = HTTPS_SERVER . 'index.php?route=catalog/product&token=' . $this->session->data['token'] . '&sort=p.price' . $url;), а вот с 88 $product['price']; разобраться не могу...
  12. Добрый день, нужен модуль накопительной скидки но не по учётным записям клиентов, а по номеру дисконтной карточки, как вариант можно привязать учёт к номеру постояннного купона. Тоесть человек при оформлении заказа вводит номер карточки(купона) и получает скидку, сума заказа записывается и сумируется и в зависимисти от прописаной политики скидка увеличивается.
  13. Да я уже понял... - плохо, нормальный учёт не получится, уж очень часто у товаров есть несколько вариаций по комплектации или размеру который имеет различную стоимость.
  14. Знаю и пользуюсь, по производительности поспорю, выбрал opencart именно потому, что здесь не надо возится с phpmyadmin. Зачем заливать кучу таблиц отдельно если можно всё в одном файле прописать(мне virtue mart хватает, там уж без phpmyadmin никак!).Ворпос собственно заключался в доработке модуля import/export под версию 0.1.8
  15. А как быть если используются опции, например, товар имеет несколько цен в зависимости от его опций (цвет, размер)???Закупочная стоимость(cost) то разная...
  16. Уважаемые,HELP, обновился до 0.1.8 - основное что подкупило, поля ввода title и h1. НО эти поля не добавлены в импорт/экспорт через XLS, ладно SEO оптимизация вещь сугубо индивидуальная - лучше добавлять вручную. Проблема следующая - добавляю поля title и h1 вручную, НО ПРИ РЕДАКТИРОВАНИИ ФАЙЛА ЭКСПОРТА/ИМПОРТА(ПЕРЕЗАЛИВКИ НА САЙТ) ВСЁ ЧТО ПРОПИСЫВАЛОСЬ (в поля title и h1 вручную)ПРОПАДАЕТ!
  17. Уважаемые,HELP, обновился до 0.1.8 - основное что подкупило, поля ввода title и h1. НО эти поля не добавлены в импорт/экспорт, ладно SEO оптимизация вещь сугубо индивидуальная - лучше добавлять вручную. Проблема следующая - добавляю поля title и h1 вручную, НО ПРИ РЕДАКТИРОВАНИИ ФАЙЛА ЭКСПОРТА/ИМПОРТА(ПЕРЕЗАЛИВКИ НА САЙТ) ВСЁ ЧТО ПРОПИСЫВАЛОСЬ ПРОПАДАЕТ!
  18. Большое спасибо afwollis, все работает прекрасно, но моя оптимизация админки на этом не закончилась, очень удобно добавлять заказ просто из админки(многие делают заказ по телефону и потом вручную приходится по сайту лазить за них), для этих целей нашол и установил new_order_v2_open - работает тоже прекрасно, исправно добавляет заказы, НО В ПРОДАЖАХ НЕ ДОБАВЛЯЕТСЯ ЗАКУПКА. Архив прилагается. Пытался править сам, по аналогии с Вашим примером, но кроме ошибок ничего не получил... Если есть возможность посмотрите, буду очень благодарен, вешь нужная да и сборку включить можно! new_order_v2_open.zip
  19. Уважаемый alexjk, помогите разобраться. В header.tpl вставил в нужное мне место вывод переменной <?php echo $output; ?> туда же вставил и Ваш код(css тоже обновил). В результате в месте вывода категорий на главной получаю: Notice: Undefined variable: output in Z:\home\localhost\www\opencart\catalog\view\theme\default\template\common\header.tpl on line 64 Тестирую на денвере. Файл header.tpl прилагается. Заранее благодарен. === afwollis: файлы прикрепляте ФАЙЛАМИ. в крайнем случае - с другим расширением или в архиве
×
×
  • Створити...

Important Information

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