

cha0s
Users-
Posts
176 -
Joined
-
Last visited
Content Type
Profiles
Forums
Marketplace
Articles
FAQ
Our New
Store
Blogs
module__dplus_manager
Everything posted by cha0s
-
Задача такая, админка вся на русском языке, но печать накладной должна быть на другом языке(не тот который установлен в админ как по дефу), каким образом задать для такого конкретный язык а не текущий? Замена языкового файла не подходит, она конечно переводит часть, но например названия продуктов в накладной, методы выбранные оплат/доставок, останется на прежнем языке, а мне надо чтоб все было на одном языке, как такое реализовать?
-
Объясните как задать цену Shippinga
cha0s replied to cha0s's topic in Допомога програмістам та розробникам
Делается свой модуль которого нету нигде, он связан через API при выборе пункта в Shippinge открывается модальное окно с картой, где клиент отмечает где он хотел-бы забрать товар(разные сервисы почтовые), он отмечает срабатывает функция callback, с параметрами, места, улица и т.д, их я беру без проблем и заполняю поля Shippinga при помощи js, но еще есть один параметр это цена, которая формируется от того что выбрал пользователь, мне надо каким-то образом передать цену эту понимаешь? из модели shippinga этого цена на шаблон приходит 0, каким образом мне от выбора сделать так чтоб цена уже была не 0, понимаешь о чем я? -
Имеется такой вопрос можно ли из шаблона(*.tpl) задать цену Shippingu? Делается новый Shipping модуль, изначально цена нам неизвестна(и из контроллера она равна 0), при выборе пользователем данного Shipping'a открывается окно с картой где он может забрать свой товар, и у каждой точке на карте есть цена, цену мы получаем при помощи callback функции все ок, но вопрос как эту цену сунуть в Shipping(Не просто javascriptom поменять цену ;D) а именно чтоб нормальная цена была, которая так-же включиться и в ордер и тому подобное, это реально?
-
Имеется допустим форма там Это все передается POST у каждого есть value=contry_id все просто и понятно, объясните как это преобразовать в вид JSON, а потом обратно из него достать и расставить все галочки которые установлены(нужен пример именно работы с JSON при post Взяли положили в базу, а потом в обратном порядке взяли снова расставили).
-
Не думал что есть те кто не знает :oops: практически самый лучший(и дорогой) extension для работы с xml/cvs файлами для importa http://www.opencart.com/index.php?route=extension/extension/info&extension_id=4286
-
Скажите данный модуль может работать с подгруппами тэгов? например с таким?? он может разобрать то что в Qty, Price? или он только без групп читает? <CatalogItem> <Product> <ProductID>1009417</ProductID> <PartNumber>51640AE</PartNumber> <EANCode>88698200186</EANCode> <Grouping> <GroupBy GroupID="VendorID" Value="80000590"/> <GroupBy GroupID="ClassID" Value="L13003001"/> </Grouping> </Product> <Qty WarehouseID="1"> <QtyAvailable>0</QtyAvailable> <DeliveryDate>2014-09-02T00:00:00</DeliveryDate> </Qty> <Qty WarehouseID="2"> <QtyAvailable>35</QtyAvailable> </Qty> <Qty WarehouseID="FI" DeliveryType="Indirect"> <QtyAvailable>32</QtyAvailable> <UnitPrice>24.360000000</UnitPrice> </Qty> <Qty WarehouseID="LT" DeliveryType="Indirect"> <QtyAvailable>3</QtyAvailable> <UnitPrice>23.840000000</UnitPrice> </Qty> <Price> <UnitPrice Type="C0">23.70</UnitPrice> <PromoFlag>0</PromoFlag> </Price> </CatalogItem>
-
Как уменьшить размер рисунка под категорий ? Рисунок прилагаю
cha0s replied to Melnalex's topic in Загальні питання
В настройках магазина, там где Image будет Category Image Size: -
Уже все настроено, везде все включено, если по сайту перемещаться то бросает на https, но на сайт можно так-же зайти если заменить https на http(страницу откроет - ну само собой если дальше куда-то кликнуть будет https снова), НО как сделать так чтоб все время перебрасывало на https? что нужно указать в .htaccess?
-
спасиб за ответ, я совсем забыл что можно заюзать $('head').prepend('<meta name="robots" content="noindex">') :) тогда когда if выполняет условия в category.tpl. $this->document->addMeta('robots', 'noindex'); <?php foreach ($metas as $meta) { ?> <meta name="<?php echo $meta['name']; ?>" content="<?php echo $meta['content']; ?>" /> <?php } ?> первое понял что в саму document.php а остальное?:) foreach в header.tpl, а вызов ->addMeta делать в контроллере category.php?
-
Почему нужен такой заплёт, дело в том что для robots.txt файла(а точнее мета <meta name="robots" content="noindex">) должен добавляться выборочно в отмеченные для этого категории, и я не могу сделать в header.php запрет, так как не знаю в какой категории будет находится пользователь. Задача в нужные категории добавить в шапку <meta name="robots" content="noindex"> в контроллере у меня уже определяются такие категории, и в шаблоне тоже, но черт побери а как это залепить в <head>? если шаблон(category.tpl) начинается <?php echo $header; ?> ................... ??????
-
Скажите там можно при импорте увеличить цены на %? не могу разобраться он даёт только добавить к цене fixed сумму, и умножить на какое-то число, а как добавить например 7% к сумме от стоимости продукта? он такое позволяет?
-
все уже сам разобрался;)) в system/startup.php надо было ее прописать :ugeek:
-
нужно переделать библиотеку library/pagination.php для одной страницы(на остальных всех будет default pagination), делаю копирую pagination.php переименовываю в mypagination, открываю ее, меняю начало <?php class Mypagination { ....... } ?> дальше в контроллере пытаюсь ее вызвать $pagination = new mypagination(); и соответственно результат Fatal error: Class 'mypagination' not found in /home/...... on line 566 что я упустил? где еще нужно прописать эту библиотеку? чтоб она находилась
-
Подскажите как вывести все категории и подкатегории $this->load->model('catalog/category'); $this->data['categories'] = array(); foreach ($this->model_catalog_category->getCategories(array()) as $category) { $this->data['categories'][] = array( 'category_id' => $category['category_id'], 'name' => $category['name'] ); } есть такой код, но он только выводит главные категории, как сделать чтоб вывел сразу все? надо только имя категории и ее id, и для текущего языка который установлен как default в магазине(ну это вроде он уже и так делает).
-
Ну понятно что в backend может быть настройка не одного магазина, собственно вопрос как получить массив всех этих магазинов(stores)?
-
Извиняюсь не могу разобраться каким образом сортирует он товары.... по алфавиту что-ль? почему-то Sort Order продукта не влияет на расположения товаров в "Related Products"
-
Нужно переделать работу default wishlist, нужно чтоб не просто добавлялся продукт туда а так-же в ссылке были все опции который пользователь выбрал у этого продукта тобишь будет ссылка с параметрами всех выбранных опций route=product/product&product_id=31&270=365&511=1565 типа такой какая-то опция с 270 номером и выбранным value 365 (ну к примеру) не важно, вроде-бы ничего сложного, самое интересное дальше стал смотреть функцию контроллера на добавление в wishlist продукта public function add() { $this->language->load('account/wishlist'); $json = array(); if (!isset($this->session->data['wishlist'])) { $this->session->data['wishlist'] = array(); } if (isset($this->request->post['product_id'])) { $product_id = $this->request->post['product_id']; } else { $product_id = 0; } $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { if (!in_array($this->request->post['product_id'], $this->session->data['wishlist'])) { $this->session->data['wishlist'][] = $this->request->post['product_id']; } if ($this->customer->isLogged()) { $json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('account/wishlist')); } else { $json['success'] = sprintf($this->language->get('text_login'), $this->url->link('account/login', '', 'SSL'), $this->url->link('account/register', '', 'SSL'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('account/wishlist')); } $json['total'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0)); } $this->response->setOutput(json_encode($json)); } } Объясните мне дураку, где тут добавляется json образный код в базу???? в таблице customers в поле wishlist появляются мои сохранения "a:2:{i:0;s:2:"31";i:1;s:2:"31";}" ВОПРОС, где это он успел их добавить в базу? я вижу только $this->load->model('catalog/product'); $product_info = $this->model_catalog_product->getProduct($product_id); НО не вижу где он успел уже засунуть в базу json, мне надо своё туда засунуть как-бы=) не понимаю где он производит эту запись. Спасибо. Ну и сам ajax выглядит схоже с cart все параметры всех опций если что у меня успешно передаются на этот контроллер =)
-
Добрый день, ищу модуль который бы при покупке товара в backend'e показывал с какого сайта пришел клиент, просто есть 2 сайта, 2-ой сайт партнеров, там будет у них баннер, при клике по которому клиент переходит на 1-вый сайт, и если он что-то покупает, чтоб это было видно... типа referal'a или как правильнее не знаю, есть ли что-то готовое? подскажите.
-
Наткнулся в интернете на один хороший бесплатный модуль ( http://www.opencart.com/index.php?route=extension/extension/info&extension_id=14760&filter_search=Live%20price&filter_license=0 ), разработчик забил..., с автоматической обновлением цены при выборе каких либо опций, или количества продукта, все хорошо но в нём есть бага не работают Checkbox почему-то, пытаюсь разобраться что к чему, код подверг уже модернизации со стороны php, то есть Checkbox отмеченный и его цены в php он видит, объясните почему ajax не срабатывает при этом.... с radio/select все супер работает, а вот с checkbox фэйл какой-то=(, я так полагаю что php и вовсе можно не смотреть, а только скорей сам низ где идет javascript, есть идеи вообще почему, не обновляется цена? ведь с Radio/select все отлично работает.... <?php class ControllerProductAjaxoptions5 extends Controller { public $options_container = '.results5'; // in default them it is ".product-info" public $special_price_container = '.price-new'; // in default them it is ".price-new" public $old_price_container = '.price-old'; // in default them it is ".price-old" public $tax_price_container = '.price-tax'; // in default them it is ".price-tax'" public $price_container = '#price_container5'; // by default this module sets "#price_container" public $use_cache = true; // set FALSE to disable caching (TRUE - enable) public $calculate_quantity = true; // calculate price with quantity private $error = array(); public function index() { $json = array(); $update_cache = false; $options_makeup = 0; if (isset($this->request->get['product_id'])) { $product_id = (int)$this->request->get['product_id']; } else { $product_id = 0; } if ($this->calculate_quantity && isset($this->request->post['quantity'])) { $quantity = (int)$this->request->post['quantity']; } else { $quantity = 1; } $this->language->load('product/product'); $this->load->model('catalog/product'); // Cache name if (isset($this->request->post['option']) && is_array($this->request->post['option'])) { $options_hash = serialize($this->request->post['option']); } else { $options_hash = ''; } $cache_key = 'ajax_options5_'. md5($product_id . $quantity. $options_hash . $this->currency->getCode() . $this->session->data['language']); if (!$this->use_cache || (!$json = $this->cache->get($cache_key))) { $product_info = $this->model_catalog_product->getProduct($product_id); // Prepare data if ($product_info) { $update_cache = true; if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $this->data['price'] = $this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')); } else { $this->data['price'] = false; } if ((float)$product_info['special']) { $this->data['special'] = $this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')); } else { $this->data['special'] = false; } $i=0; // If some options are selected if (isset($this->request->post['option']) && $this->request->post['option']) { foreach ($this->model_catalog_product->getProductOptions($this->request->get['product_id']) as $option) { foreach ($option['option_value'] as $option_value) { if (isset($this->request->post['option'][$option['product_option_id']]) && $this->request->post['option'][$option['product_option_id']] == $option_value['product_option_value_id']) { if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax')); } else { $price = false; } if ($price) { if ($option_value['price_prefix'] === '+') { $options_makeup = $options_makeup + (float)$price; } else { $options_makeup = $options_makeup - (float)$price; } } } } if (isset($this->request->post['option'][$option['product_option_id']][$i]) && $this->request->post['option'][$option['product_option_id']][$i] == $option_value['product_option_value_id']) { $i++; if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax')); } else { $price = false; } if ($price) { if ($option_value['price_prefix'][$i] === '+') { $options_makeup = $options_makeup + (float)$price; } else { $options_makeup = $options_makeup - (float)$price; } } } } } } } if ($this->data['price']) { $this->data['price'] = 0; $json['new_price']['price'] = $this->currency->format(($this->data['price'] + $options_makeup) * $quantity); } else { $json['new_price']['price'] = false; } if ($this->data['special']) { $json['new_price']['special'] = $this->currency->format(($this->data['special'] + $options_makeup) * $quantity); } else { $json['new_price']['special'] = false; } if ($this->config->get('config_tax')) { $json['new_price']['tax'] = $this->language->get('text_tax').' '.$this->currency->format(((float)$product_info['special'] ? ($product_info['special'] + $options_makeup) : ($product_info['price'] + $options_makeup)) * $quantity ); } else { $json['new_price']['tax'] = false; } $json['success'] = true; } else { $json['success'] = false; } } if ($update_cache && $this->use_cache) { $this->cache->set($cache_key, $json); } echo json_encode($json); exit; } function js5() { header('Content-Type: application/javascript'); if (isset($this->request->get['product_id'])) { $product_id = (int)$this->request->get['product_id']; } else { $product_id = 0; } if ($product_id == 0) { exit; } $js5 = <<<HTML var price_with_options_ajax_call5 = function() { $.ajax({ type: 'POST', url: 'index.php?route=product/ajaxoptions5/index&product_id=$product_id', data: $('{$this->options_container} input[type=\'text\'], {$this->options_container} input[type=\'hidden\'], {$this->options_container} input[type=\'radio\']:checked, {$this->options_container} input[type=\'checkbox\']:checked, {$this->options_container} select, {$this->options_container} textarea'), dataType: 'json', beforeSend: function() { // you can add smth useful here }, complete: function() { // you can add smth useful here }, success: function(json) { if (json.success) { if ($('{$this->options_container} {$this->tax_price_container}').length > 0 && json.new_price.tax) { animation_on_change_price_with_options5('{$this->options_container} {$this->tax_price_container}', json.new_price.tax); } if ($('{$this->options_container} {$this->old_price_container}').length > 0 && json.new_price.price) { animation_on_change_price_with_options5('{$this->options_container} {$this->old_price_container}', json.new_price.price); } if ($('{$this->options_container} {$this->special_price_container}').length > 0 && json.new_price.special) { animation_on_change_price_with_options5('{$this->options_container} {$this->special_price_container}', json.new_price.special); } if ($('{$this->options_container} {$this->price_container}').length > 0 && json.new_price.price) { animation_on_change_price_with_options5('{$this->options_container} {$this->price_container}', json.new_price.price); } } }, error: function(error) { console.log(error); } }); } var animation_on_change_price_with_options5 = function(selector_class_or_id, new_html_content) { $(selector_class_or_id).fadeOut(150, function() { $(this).html(new_html_content).fadeIn(50); }); } if ( jQuery.isFunction(jQuery.fn.on) ) { $('{$this->options_container} input[type=\'text\'], {$this->options_container} input[type=\'hidden\'], {$this->options_container} input[type=\'radio\']:checked, {$this->options_container} input[type=\'checkbox\'], {$this->options_container} select, {$this->options_container} textarea, .product-info input[name=\'quantity\']').live('change', function() { price_with_options_ajax_call5(); }); } else { $('{$this->options_container} input[type=\'text\'], {$this->options_container} input[type=\'hidden\'], {$this->options_container} input[type=\'radio\']:checked, {$this->options_container} input[type=\'checkbox\'], {$this->options_container} select, {$this->options_container} textarea, .product-info input[name=\'quantity\']').live('change', function() { price_with_options_ajax_call5(); }); } HTML; echo $js5; exit; } } ?>
-
Подскажите как сменить ссылку на главную страницу?
cha0s replied to cha0s's topic in Загальні питання
Это все нужно для того чтоб http://sait.com не отображал когда такой URL содержимое common/home??? больше мне ничего не нужно. Сам URL когда жмешь на лого или на home уже работает так как надо. -
нашел тут такой пост https://opencartforum.com/topic/5634-%D0%B3%D0%B4%D0%B5-%D1%81%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D1%83-%D0%BD%D0%B0-%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D1%83%D1%8E-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%BE/ как-бы да он заменяет common/home начальную страницу на нужную мне.... но если человек заходит на сайта например http://sait.com/ то он видит снова эту common/home страницу.... скажите как поставить чтоб начальная страница был не путь common/home?