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

cha0s

Users
  
  • Posts

    176
  • Joined

  • Last visited

Everything posted by cha0s

  1. Вопрос уже закрыт, да речь была про заказ, я не заметил что в таблице order хранится language_id информация о том какой язык стоял у клиента когда он делал заказ, уже разобрался=). Сорри за смуту и непонятки.
  2. Пользователь сделал оплату при изменение статуса товара в admin/model/sale/order.php генерируется письмо на том языке который был выбран у пользователя на тот момент, скажите есть какие-то варианты как это сделать кроме как добавление в базу нового поля в котором будет хранится язык юзера с frontenda?
  3. Возможно ли так указать? у меня цены строятся для одной страны, но если пользователь выбирает доставку в другую строну то другой ход событий идет, есть идеи как указать так чтоб было все Зоны кроме одной страны? ну кроме как в Geo Zone выбрать все страны кроме той которая не нужна?=)
  4. Все сам разобрался все дело в cache который создает этот код. Вопрос закрыт.
  5. Имеется такой контроллер(ОСОБО МОЖНО НЕ В ДАВАТЬСЯ) главное сам вопрос который после кода этого. <?php // Name: Live Price Update with Options // Version: 1.3 // Author: cmd // Website: http://shop.workshop200.com/en/ // Email: [email protected] class ControllerProductAjaxoptions extends Controller { /* ==================================================================================== SETTINGS Below you can find five variables that relate to DOM the structure of the template product/product.tpl. The default values correspond to a default OpenCart theme. If you use customized theme, these containers might have other class or id. In this case you need to clarify their value. ==================================================================================== */ public $options_container = '.product-info2'; // 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_container'; // 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_options_'. 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; } // 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 ($this->data['price']) { $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 js() { 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; } $js = <<<HTML var price_with_options_ajax_call = function() { $.ajax({ type: 'POST', url: 'index.php?route=product/ajaxoptions/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_options('{$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_options('{$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_options('{$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_options('{$this->options_container} {$this->price_container}', json.new_price.price); } } }, error: function(error) { console.log(error); } }); } var animation_on_change_price_with_options = 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\']:checked, {$this->options_container} select, {$this->options_container} textarea, .product-info input[name=\'quantity\']').live('change', function() { price_with_options_ajax_call(); }); } 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\']:checked, {$this->options_container} select, {$this->options_container} textarea, .product-info input[name=\'quantity\']').live('change', function() { price_with_options_ajax_call(); }); } HTML; echo $js; exit; } } ?> а на frontende <span id="price_container"><?php echo $price; ?></span> <script type="text/javascript" src="index.php?route=product/ajaxoptions/js&product_id=<?php echo $product_id; ?>"></script> Все хорошо, цена обновляется ajaxom при выборе платных опций, то есть если продукт стоит $80 то к этой цене будет все приплюсовать, вопрос покажется очень каким-то простым но не получается сделать, и так сам вопрос, как сделать чтоб приплюсовка начиналась не от цены продукта, а с 0... тут (json.new_price.price) храниться полная цена уже после изменения и приходит в виде строки уже $80+выбранные опции вопрос как мне отловить это ДО этого момента, мне надо сделать в цену изменения(отнять текущую стоимость продукта, чтоб цена с $0.00 пошла по опциям отдельно)
  6. Спасибо, но все оказалось гораздо проще, просто картинки надо было в формате *.png сделать и тогда движок фон делает прозрачный=), вопрос закрыт.
  7. Именно так, где я могу задать свой фон? при заливки картинки получается что она преобразуется в такую уже в белым фоном... то есть если взять картинку отдельно(скачать) то opencart ее переделал и заполнил пустоты белым фоном, вот мне этого не нужно, либо убрать фон вообще, либо поменять на цвет backgrounda, но не знаю где это искать даже.
  8. Добрый день такой вопрос, как изменить цвет backgrounda вокруг картинок http://108.174.149.249/~pavothem/index.php?route=product/category&path=69 это не CSS стили, в настройках магазина выставлены размеры 240х200 соответственно и картинки такого размера, НО не хватка размера компенсируется белым фоном вокруг картинки, ВОПРОС где и как его изменить? это ведь уже что-то системное задано? при заливки картинок они преобразуются в такие... если кто-то может что-то сказать то подскажите где это можно исправить, мне надо цвет поменять только. Спасибо
  9. Объясните почему у меня только тут такие 2 закладки а тут в ролике есть у человека http://www.youtube.com/watch?v=rMQHx7PtnkY#t=97 "Pay with debit credit card" Как добиться чтоб такая вкладка тоже появилась??? это настройки уже не Opencart модуля?? Помогите=)
  10. up, кто-то может сказать что-то? :-)
  11. Скажите в opencart доступен функционал чтоб оплата была после того как администратор подтвердит заказ? то есть пользователь не может оплатить товар до ответа администратора то что он есть в наличии и можно оплатить. (Оплата на сайте только paypal)
  12. Ищу модуль с помощью которого можно было бы вставлять картинки рядом с категориями(или продуктами) прямо в главном меню
  13. Вот пример такого меню http://www.celebrating.com.au/ при hover на Shop Online, вылетает меню, в котором содержатся категории и под-категории которые находятся в этих категориях(то есть без дополнительных выпадающих под меню - все на одном уровне сразу выводится), подскажите есть ли готовые варианты такого? может ли такое сделать например Pav Megamenu?
  14. Ладно если с этим проблема, тогда подскажите как сделать чтоб кнопка автоматом нажималась на первом шаге, как пользователь заходит в checkout, первый шаг будет за него нажат как Continues, как понимаю jquery вариация?
  15. Чтоб при заходе в checkout начиналось все со 2-го шага, то есть у пользователя не будет выбора Guest/Register, по дефу должен быть Guest, регистрации на сайте просто не будет. Я уже большую часть сделать по убирал все лишнее, теперь по дефу стоит checked radio button guest, а вот как сделать чтоб он автоматом переходил на 2-ой шаг, не понимаю)
  16. С возможностью создавать каталоги под это дело, и было бы классно еслиб можно было комментировать и оценивать сей добро для каждой фото/видео по отдельности. Есть ли нечто похожее добро?
  17. Скрипт от готового модуля Total Import, он работает с огромными *.xml файлами по импорту, и там сделан запуск через cron_index.php, в файле больше чем 30000 продуктов, мне надо способ такой, чтоб php скрипт не умер и все... он умирает спустя 20 минут, видать что какая-то сессия обрывается или еще что-то, мне надо понять из-за чего он мрет.... он в консоли не чего не пишет про ошибки... я специально сделал в коде ошибку для теста он мне ее сразу выбивал, а тут тишина, и через 20 минут типа пишет Killed и все... а процесс не закончился до конца! ну больше половины но не до конца! как быть с этим?
  18. Ребята помогите в чем может быть дело, запускаю скрипт php и спустя длительное время может быть 15-20 минут работы скрипта (большой объем импорта делается), скрипт убивается сам автоматически и пишется в консоле Killed , уже задолбался с этим не могу решить проблему, причем я не где не могу посмотреть почему он убивается сам, так и не выполнив работу до конца! в конфиге уже все что можно прописано memory_limit = 4000M; max_execution_time = 18000; да и строки всякие добавлял типа set_time_limit(0); уже точно не помню! ну которое снимает ограничение на выполнение! все без безрезультатно! типа по максимуму, из-за чего он убивается? как посмотреть это? и как остановить это? уже запускал и так: php script.php и nohup php script.php черт побери все-равно одно и тоже=( напишите хоть что-то по этому поводу, хоть какие-то мысли ваши!
  19. wget мне не подходит я это написал выше, он так-же само юзает веб-сервер, и так-же само будет ошибка 504 (превышен лимит ожидания), там работа с импортом - файлы большого размера... поэтому не каких wget, мне надо чтоб кто-то хотя-бы объяснил как запустить через index_cron.php, короче скрипт выполнить без помощи wgeta,не знаю как это правильно объяснить, надо чтоб через cron выполнялось действие из backenda... вообщем гуру кто-то может что-то хотя-бы сказать по этому поводу?=)
  20. Например в админке имеется модуль для работы *.xml файлами для импорта продуктов, файлы эти огромные, время отклика повысить хостинг отказывается, следовательно 504 ошибка не хватает время на выполнение, есть возможность по частям делать, но это не подходит так как часто обновляется xml с продуктами. Вопрос, как через cron можно выполнить сей операцию по импорту? нужен какой-то специальный index_cron.php? отдельно писать файл *.php и запускать будет волокита( и возможно ли вообще такое что я пишу? просто не особо силен в этом, до этого через cron юзал wget когда надо было=) ну данное решение мне не подходит так как она использует веб-сервер так-же.
  21. Подскажите может тут уже поднимался этот вопрос, нужно чтоб у каждой картинки было описание свое на странице где продукт и ниже идут добавочные картинки для этого продукта, может у кого есть сей не большой модуль?
  22. Ищу модуль фото-галереи с возможностью создавать альбомы для фоток, подскажите может есть какие-то готовые бесплатные решения? то есть эта галерея не как не связана с интернет-магазинам, это не продукты, и это нельзя покупать, это просто альбомы и картинки которые можно листать=)
  23. Там-же в фотошопе например можно и узнать размер картинки Image->Image Size, если размер слайдера у тебя установлен 700на250, то в идеале были бы такие-же картинки с таким-же размером, тогда они будут красиво в полный размер смотреться.
×
×
  • 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.