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

Fix305

Users
  
  • Posts

    917
  • Joined

  • Last visited

Everything posted by Fix305

  1. нету такой возможности, разве что напрямую в описание написать и сделать отдельным товаром этот набор
  2. в ..catalogcontrollerproductmanufacturer.php вставить $this->data['img_man'] = $manufacturer_info['image'];после $this->data['heading_title'] = $manufacturer_info['name']; в ..catalogviewthemedefaulttemplateproductmanufacturer.tpl по вкусу вставить <img src="image/<? echo $img_man; ?>" />
  3. а чего его искать то? - я тут =)бесплатную доставку могу сделать (причем бесплатно), ну а кому захочется может подонатить)я так понимаю бесплатная доставка она всегда 0, независимо от суммы, веса и погодных условий?)
  4. "50" - увеличивает на 50%"-50" - уменьшает на 50% (правда уже от увеличенной цены, так что процент придется пересчитывать)для экспериментов желательно сделать бекап базы)
  5. в ..adminviewtemplatecatalogproduct_list.tpl: встивить <table class="list"> <tr> <td width="140px" align="center">Изменить цену на:</td> <td> <form action="<? echo $addprice; ?>" method="POST"> <input type="text" name="nacenka" /> % <input type="submit" value="ОК" /> </form> </td> </tr> </table>после <div class="content"> в ..admincontrollercatalogproduct.php вставить $this->data['addprice'] = HTTPS_SERVER . 'index.php?route=catalog/product/addprice&token=' . $this->session->data['token'] . $url;после $this->data['insert'] = HTTPS_SERVER . 'index.php?route=catalog/product/insert&token=' . $this->session->data['token'] . $url;$this->data['copy'] = HTTPS_SERVER . 'index.php?route=catalog/product/copy&token=' . $this->session->data['token'] . $url; $this->data['delete'] = HTTPS_SERVER . 'index.php?route=catalog/product/delete&token=' . $this->session->data['token'] . $url; в этот же файл вставить функцию public function addprice() { $this->load->model('catalog/product'); $addPrice = 1+($this->request->post['nacenka']/100); $this->model_catalog_product->addPrice($addPrice); $this->redirect(HTTPS_SERVER . 'index.php?route=catalog/product&token=' . $this->session->data['token']); } в ..admin/model/catalog/product.php вставить public function addPrice ($nacenka) { $this->db->query("UPDATE oc_product SET price = price*'". (float)$nacenka ."'"); }
  6. ну так настрой в админке (в настройках магазина ставишь можно покупать при отсутствии на складе, и указываешь нужное "Состояние склада", при отсутствии на складе)
  7. в договоре пункт прописывай - что изменение цен происходит с уведомлением за [..] дней.
  8. ну вообще это запрос напрямую в базу данных (через phpmyadmin например и ему подобные СУБД)ну а если уж так действительно надо (и не хочется лазить по всяким phpmyadmin'ам), то через пару-тройку дней могу написать модуль для изменения через админку, благо ничего сложного в этом нет.
  9. Сейчас, к сожалению, нету времени - завтра с утра уезжаю на сборы (спортивные), как только чуточку там освоюсь (денек-2) займусь твоей просьбой, если ее, конечно, уже не решат =)
  10. вполне очевиден =) UPDATE product SET price=price*1.5
  11. дай купон только Ивану Ивановичу, а другим не давай.а копать можно в саду =)
  12. для 1.4.0 в ..catalogcontrollerproductcategory.php блок foreach ($results as $result) {.....}меняем на foreach ($results as $result) { if ($result['image']) { $image = $result['image']; } else { $image = 'no_image.jpg'; } // $options_arr = array(); $options = $this->model_catalog_product->getProductOptions($result['product_id']); echo $result['product_id'].' - '; foreach ($options as $option) { $option_value_data = array(); foreach ($option['option_value'] as $option_value) { $option_value_data[] = array( 'option_value_id' => $option_value['product_option_value_id'], 'name' => $option_value['name'], 'price' => (float)$option_value['price'], 'prefix' => $option_value['prefix'] ); } $options_arr[] = array( 'option_id' => $option['product_option_id'], 'name' => $option['name'], 'option_value' => $option_value_data ); unset($option_value_data); } // $rating = $this->model_catalog_review->getAverageRating($result['product_id']); $special = FALSE; $discount = $this->model_catalog_product->getProductDiscount($result['product_id']); if ($discount) { $price = $this->currency->format($this->tax->calculate($discount, $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); $special = $this->model_catalog_product->getProductSpecial($result['product_id']); if ($special) { $special = $this->currency->format($this->tax->calculate($special, $result['tax_class_id'], $this->config->get('config_tax'))); } } $this->data['products'][] = array( 'id' => $result['product_id'], 'name' => $result['name'], 'model' => $result['model'], 'rating' => $rating, 'stars' => sprintf($this->language->get('text_stars'), $rating), 'thumb' => image_resize($image, $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')), 'price' => $price, 'special' => $special, 'options_arr' => $options_arr, // 'href' => $this->model_tool_seo_url->rewrite($this->url->http('product/product&path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'])) ); unset ($options_arr); // } в ..catalogviewthemedefaulttemplateproductcategory.tpl блок <td width="25%"><?php if (isset($products[$j])) { ?>.....<?php } ?></td>меняем на <td width="25%"><?php if (isset($products[$j])) { ?> <form action="" method="post" enctype="multipart/form-data" id="formproduct_<? echo $products[$j]['id']; ?>"> <a href="<?php echo $products[$j]['href']; ?>"><img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" id="image<? echo $products[$j]['id']; ?>" alt="<?php echo $products[$j]['name']; ?>" /></a> <a href="<?php echo $products[$j]['href']; ?>"><?php echo $products[$j]['name']; ?></a> [color= #999; font-size: 11px;]<?php echo $products[$j]['model']; ?>[/color] <?php if ($display_price) { ?> <?php if (!$products[$j]['special']) { ?> [color= #900; font-weight: bold;]<?php echo $products[$j]['price']; ?>[/color] <?php } else { ?> [color= #900; font-weight: bold; text-decoration: line-through;]<?php echo $products[$j]['price']; ?>[/color] [color= #F00;]<?php echo $products[$j]['special']; ?>[/color] <?php } ?> <?php } ?> <?php if ($products[$j]['rating']) { ?> <img src="catalog/view/theme/default/image/stars_<?php echo $products[$j]['rating'] . '.png'; ?>" alt="<?php echo $products[$j]['stars']; ?>" /> <?php } ?> <?php if ($products[$j]['options_arr']) { ?> <?php foreach ($products[$j]['options_arr'] as $option) { ?> <?php echo $option['name']; ?>: <select name="option[<?php echo $option['option_id']; ?>]"> <?php foreach ($option['option_value'] as $option_value) { ?> <option value="<?php echo $option_value['option_value_id']; ?>"><?php echo $option_value['name']; ?> <?php if ($option_value['price']) { ?> <?php echo $option_value['prefix']; ?><?php echo $option_value['price']; ?> <?php } ?> </option> <?php } ?> </select> <?php } ?> <?php } ?> <input type="text" name="quantity" /> <input type="hidden" name="product_id" value="<? echo $products[$j]['id']; ?>" /> [url="#"]);return false;" class="button"><span>В корзину</span>[/url] </form> <?php } ?></td> в ..catalogviewthemedefaulttemplatemodulecart.tpl снизу добавить по смыслу: function buyProduct(id){ $.ajax({ type: 'post', url: 'index.php?route=module/cart/callback', dataType: 'html', data: $('#formproduct_'+id+' :input'), success: function (html) { $('#module_cart .middle').html(html); }, complete: function () { var image = $('#image'+id).offset(); var cart = $('#module_cart').offset(); $('#image'+id).before('<img src="' + $('#image'+id).attr('src') + '" id="temp" style="position: absolute; top: ' + image.top + 'px; left: ' + image.left + 'px;" />'); params = { top : cart.top + 'px', left : cart.left + 'px', opacity : 0.0, width : $('#module_cart').width(), heigth : $('#module_cart').height() }; $('#temp').animate(params, 'slow', false, function () { $('#temp').remove(); }); } }); } вроде ничего не забыл) единственный недочет который заметил, если не ввести количество то в корзину товар не добавится, исправить легко (либо в контроллере прописать если нету значения то количество 1, либо тупо прописать в поле input стартовое значение 1), но чет я устал на 10дюймовом мониторе что либо делать, так что допиливайте сами) ну и при желании для остальных страничек делаем аналогично)
  13. перекодируйте в UTF-8 не будет квадратиков)честно говоря я и не предлагал законченное решение, это всего лишь направление куда надо копать, а дальше уж сами. Готовый магазин по Вашему ТЗ на форуме не сделают =)
  14. расхвалили то =) вот вам за это) EMS модуль (только Россия), вроде даже работает (1.4.7 - 0.4) тест драйв для городов куда возможна отправка: кто захочет дополнить список городов, а как оказалось в базе не весь список, массив городов можно взять отсюда:http://emspost.ru/api/rest/?method=ems. ... plain=true и пихать их сюда админка - система - локализация - регионы. бекап не забываем, возможны ошибки =) ems_module.zip
  15. теоретически если отключить проверку config_email в в ..admincontrollersettingsetting.php /*$pattern = '/^[A-Z0-9._%-]+@[A-Z0-9][A-Z0-9.-]{0,61}[A-Z0-9].[A-Z]{2,6}$/i';if ((strlen(utf8_decode($this->request->post['config_email'])) > 32) || (!preg_match($pattern, $this->request->post['config_email']))) { $this->error['email'] = $this->language->get('error_email');}*/то можно в админке перечислить все email'ы через запятую, и должно работать.
  16. ./catalog/controller/module/featured.php - контроллер./catalog/view/theme/default/template/module/featured.tpl - шаблон
  17. для того чтобы скрыть цену или написать что надо выбрать опции делаем следующее: в ..catalogviewthemedefaulttemplateproductcategory.tpl находим <?php echo $products[$j]['price']; ?>меняем на <?php if ($products[$j]['price'] == 0) { echo "Чтоб узнать цену выберите опции";} else {echo $products[$j]['price'];}; ?> аналогично надо сделать с шаблонами поиска, главной страницы и где там еще выводится каталог товаров. ну и ко всем опциям в обязаловку надо написать цену, а то продадите товар за 0 рубликов) чтоб не смущала цена 0 при просмотре товара в файле ..catalogviewthemedefaulttemplateproductproduct.tpl удаляем <?php if ($display_price) { ?> <tr> <td>[b]<?php echo $text_price; ?>[/b]</td> <td><?php if (!$special) { ?> <?php echo $price; ?> <?php } else { ?> <span style="text-decoration: line-through;"><?php echo $price; ?></span> [color= #F00;]<?php echo $special; ?>[/color] <?php } ?></td> </tr> <?php } ?>хотя при желании можно JavaScript'ом выводить туда цену в зависимости от выбранной опции, но это из другой сказки)
  18. Тоже недавно задумывался про EMS и наложенный платеж. В принципе можешь выложить, попробую что нибудь придумать (обещать 100% не буду)
  19. не все так просто, к сожалению. При первом переходе на другую страничку, менюшка будет сворачиваться в первоначальный вид, что немного пересекается с юзабилити. Так что проблема здесь не как сделать сам эффект, а как его сделать правильно.
  20. а не проще просто в шаблоне написать нужную информацию, без ckeditor'a? не каждый же день, наверно, будет редактироваться эта статья) ну раз уж так хочется, то делаем вот так: в файле ..catalogcontrollerinformationcontact.php: сразу после public function index() {вставить это $this->load->model('catalog/information');$information_info = $this->model_catalog_information->getInformation('4'); // здесь указываем id статьи, а в админке ее отключаем if ($information_info) { $this->data['description'] = html_entity_decode($information_info['description']);} в ..catalogmodelcataloginformation.php: меняем public function getInformation($information_id) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "information i LEFT JOIN " . DB_PREFIX . "information_description id ON (i.information_id = id.information_id) LEFT JOIN " . DB_PREFIX . "information_to_store i2s ON (i.information_id = i2s.information_id) WHERE i.information_id = '" . (int)$information_id . "' AND id.language_id = '" . (int)$this->config->get('config_language_id') . "' AND i2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND i.status = '1'"); return $query->row; }на public function getInformation($information_id) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "information i LEFT JOIN " . DB_PREFIX . "information_description id ON (i.information_id = id.information_id) LEFT JOIN " . DB_PREFIX . "information_to_store i2s ON (i.information_id = i2s.information_id) WHERE i.information_id = '" . (int)$information_id . "' AND id.language_id = '" . (int)$this->config->get('config_language_id') . "' AND i2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"); return $query->row; } в ..catalogviewthemedefaulttemplateinformationcontact.tpl: вставить куда нравится <? echo $description; ?>
  21. в ..catalogviewthemedefaulttemplateproductproduct.tpl найти (у меня 53 строка): <?php if ($options) { ?> заменить на: <?php if ($options && ($price == 0)) { ?> ток честно говоря затея не очень, в каталоге будут наверно странно выглядеть товары с ценой 0. Хотя цену можно там скрыть.
  22. где ставите и где появляется надпись?поподробнее бы - мы волшебники, а не экстрасенсы =)
  23. не стоит так себя критиковать) делал по инструкции с офф сайта: <!-- m -->http://tobia.github.com/CrossSlide/<!-- m --> 1) кинул скрипт в папку ..catalogviewjavascriptjquery.cross-slide.min.js 2) в header.tpl добавил <script src="catalog/view/javascript/jquery.cross-slide.min.js" type="text/javascript"></script> 3) создал папку slider в ../image/ (не та image что ..catalogviewthemedefault ) и закинул туда 4 картинки 4) ну и добавить по вкусу куда надо <div id="slideshow" style="width: 550px; height: 200px;"></div> <script> $('#slideshow').crossSlide({ sleep: 2, fade: 1 }, [ { src: '/image/slider/1.jpg' }, { src: '/image/slider/2.jpg' }, { src: '/image/slider/3.jpg' }, { src: '/image/slider/4.jpg' } ]) </script> вроде ничего не забыл
×
×
  • 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.