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

Кнопка "купить" прямо из общего списка товаров


!Shoorf

Recommended Posts

Задумываюсь о том, чтобы сделать кнопку покупки товара прямо в общем списке, например на главной странице, где новые поступления. Кто-нибудь пробовал у себя такое сделать? Без разницы где, может на странице поиска, на странице спецпредложений или ещё где.

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
  • 3 weeks later...

Сделать это вполне реально, нужно только немного поковырять шаблон на предмет переменных/констант которые выводят эту кнопку и кол-во товара

Вот нашел в category.tpl
<form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data" id="product">              <?php if ($options) { ?>              [b]<?php echo $text_options; ?>[/b]              <div style="background: #FFFFCC; border: 1px solid #FFCC33; padding: 10px; margin-top: 2px; margin-bottom: 15px;">                <table style="width: 100%;">                  <?php foreach ($options as $option) { ?>                  <tr>                    <td><?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></td>                  </tr>                  <?php } ?>                </table>              </div>              <?php } ?>              <?php if ($display_price) { ?>              <?php if ($discounts) { ?>              [b]<?php echo $text_discount; ?>[/b]              <div style="background: #F7F7F7; border: 1px solid #DDDDDD; padding: 10px; margin-top: 2px; margin-bottom: 15px;">                <table style="width: 100%;>                   <tr>                    <td style="text-align: right;">[b]<?php echo $text_order_quantity; ?>[/b]</td>                    <td style="text-align: right;">[b]<?php echo $text_price_per_item; ?>[/b]</td>                  </tr>                  <?php foreach ($discounts as $discount) { ?>                  <tr>                    <td style="text-align: right;"><?php echo $discount['quantity']; ?></td>                    <td style="text-align: right;"><?php echo $discount['price']; ?></td>                  </tr>                  <?php } ?>                </table>              </div>              <?php } ?>              <?php } ?>              <div style="background: #F7F7F7; border: 1px solid #DDDDDD; padding: 10px;"><?php echo $text_qty; ?>                   <input type="text" name="quantity" size="3" value="1" />                <a onclick="$('#product').submit();" id="add_to_cart" class="button"><span><?php echo $button_add_to_cart; ?></span></a></div>              <input type="hidden" name="product_id" value="<?php echo $product_id; ?>" />              <input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />            </form>
Как бы его перелопатить, что б возле цены вывести например картинку корзины или плюсик какой-то, при нажатии которой позиция добавляеться к корзину в количестве 1шт. Парни, кто может помочь?
Надіслати
Поділитися на інших сайтах


Есть платный модуль - "Быстрая покупка" . Выводится список всех товаров горизонтальными строками с функцией покупки . Если интересно давай скинемся по 150р на двоих и купим . Руссифицировать я его смогу сам .

Надіслати
Поділитися на інших сайтах


Есть платный модуль - "Быстрая покупка" . Выводится список всех товаров горизонтальными строками с функцией покупки . Если интересно давай скинемся по 150р на двоих и купим . Руссифицировать я его смогу сам .

Дай ссылку, гляну хоть подойдет или нет.
Надіслати
Поділитися на інших сайтах


Есть платный модуль - "Быстрая покупка" . Выводится список всех товаров горизонтальными строками с функцией покупки . Если интересно давай скинемся по 150р на двоих и купим . Руссифицировать я его смогу сам .

Дай ссылку, гляну хоть подойдет или нет.
В инете бесплатно не нашёл .Выглядит так , стоит 10 баксов:

post-70-1293741782,4653_thumb.jpg

Надіслати
Поділитися на інших сайтах


Задумываюсь о том, чтобы сделать кнопку покупки товара прямо в общем списке, например на главной странице, где новые поступления. Кто-нибудь пробовал у себя такое сделать? Без разницы где, может на странице поиска, на странице спецпредложений или ещё где.

Я недавно реализовывал такую фичу для магазина <!-- m -->http://vkorobke.lg.ua<!-- m -->Решение простое: добавляем на страницу JS-функцию (у меня она называется "buyProduct"):
<script type="text/javascript">function buyProduct(id){        $.ajax({            type: 'post',            url: 'index.php?route=module/cart/callback',            dataType: 'html',            data: 'product_id='+id+'&quantity=1',            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();                });                    }                    });                    }</script>
в нужном нам контроллере (для главной страницы это /catalog/controller/common/home.php) находим место, где в шаблон передаётся массив товаров и добавляем передачу идентификатора:
$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,  'href'    => $this->model_tool_seo_url->rewrite($this->url->http('product/product&product_id=' . $result['product_id'])));
и добавляем в шаблон саму кнопку покупки, которая вызывает нашу функцию:
[url="#"]);return false;"  id="add_to_cart<?php echo $products[$j]['id']; ?>" class="buy">[/url]Ну и что бы работала анимация к атрибуту "id" изображений товаров дописываем наш идентификатор: id="image<?php echo $products[$j]['id']; ?>"
и работает :shock:
Надіслати
Поділитися на інших сайтах


И все-таки мир не без добрых людей :shock: но я попробовал и или что не туда вставил или как всегда пропустил что то но у меня вместо списка товаров вообще пустая страница ((( Можно как нибудь поподробней что и куда вставлять.

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Нужна помощь в исправлении ошибки !!!!

В корзине добавляем напротив каждого товара - кнопку удалить (пример сайт Вкоробке ).

В cart.tpl добавляем скрипт :

<script type="text/javascript">function delProduct(id){$.ajax({type: 'post',url: 'index.php?route=module/cart/callback',dataType: 'html',data: 'product_id='+id+'&_opt=del',success: function (html) {$('#module_cart').html(html);}});</script>
и там же добавляем ячейку для знака удалить х

после

<td align="left" valign="top"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a>
вставляем

<td align="left" valign="top">[url="#"]);return false;">x[/url]
.. но не работает - где-то есть ошибка
Надіслати
Поділитися на інших сайтах


.. но не работает - где-то есть ошибка

Ещё бы :)Там кроме изменений в шаблоне нужно ещё изменения в контроллер вносить.Уже несколько человек обращались ко мне за хелпом в данном вопросе, думаю пора уже эту фичу включать в сборку :(Короче, вот файлы, которые я менял (специально сделал вариант для шаблона "default", у коробка там немного шаблон другой): http://opencart.studio-vk.com/catalog/v ... er.tpl.txthttp://opencart.studio-vk.com/catalog/v ... rt.tpl.txthttp://opencart.studio-vk.com/catalog/c ... rt.php.txt
Надіслати
Поділитися на інших сайтах


.. но не работает - где-то есть ошибка

Ещё бы :)Там кроме изменений в шаблоне нужно ещё изменения в контроллер вносить.Уже несколько человек обращались ко мне за хелпом в данном вопросе, думаю пора уже эту фичу включать в сборку :(Короче, вот файлы, которые я менял (специально сделал вариант для шаблона "default", у коробка там немного шаблон другой): http://opencart.studio-vk.com/catalog/v ... er.tpl.txthttp://opencart.studio-vk.com/catalog/v ... rt.tpl.txthttp://opencart.studio-vk.com/catalog/c ... rt.php.txt
Я делал по аналогии с кнопкой "Добавить в корзину" - там всего лишь добавили в контроллер идентификатор id для товара . . . наверное я спутал 2 разных файла контроллера и потому подуал что он уже добавлен.
Надіслати
Поділитися на інших сайтах


Задумываюсь о том, чтобы сделать кнопку покупки товара прямо в общем списке, например на главной странице, где новые поступления. Кто-нибудь пробовал у себя такое сделать? Без разницы где, может на странице поиска, на странице спецпредложений или ещё где.

Я недавно реализовывал такую фичу для магазина <!-- m -->http://vkorobke.lg.ua<!-- m -->Решение простое: добавляем на страницу JS-функцию (у меня она называется "buyProduct"):
<script type="text/javascript">function buyProduct(id){        $.ajax({            type: 'post',            url: 'index.php?route=module/cart/callback',            dataType: 'html',            data: 'product_id='+id+'&quantity=1',            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();                });                    }                    });                    }</script>
в нужном нам контроллере (для главной страницы это /catalog/controller/common/home.php) находим место, где в шаблон передаётся массив товаров и добавляем передачу идентификатора:
$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,  'href'    => $this->model_tool_seo_url->rewrite($this->url->http('product/product&product_id=' . $result['product_id'])));
и добавляем в шаблон саму кнопку покупки, которая вызывает нашу функцию:
[url="#"]);return false;"  id="add_to_cart<?php echo $products[$j]['id']; ?>" class="buy">[/url]Ну и что бы работала анимация к атрибуту "id" изображений товаров дописываем наш идентификатор: id="image<?php echo $products[$j]['id']; ?>"
и работает https://opencartforum.com/public/style_emoticons/default/icon_question.gif
Простите за глупый вопрос, объясните по певому и третьему пункту, куда и где вставлять, я не очень понял, спасибо за понимание. :)
Надіслати
Поділитися на інших сайтах


timico, вот что получается в итоге после всех изменений:

http://opencart.studio-vk.com/catalog/v ... me.tpl.txt

http://opencart.studio-vk.com/catalog/c ... me.php.txt

Сравните эти файлы с оригинальными при помощи какой-нибудь программы сравнения файлов (например, есть такой плагин для Total Commander) — сразу увидите и будет понятно что и куда добавляется.

Надіслати
Поділитися на інших сайтах


.. но не работает - где-то есть ошибка

Ещё бы https://opencartforum.com/public/style_emoticons/default/icon_question.gif

Там кроме изменений в шаблоне нужно ещё изменения в контроллер вносить.

Уже несколько человек обращались ко мне за хелпом в данном вопросе, думаю пора уже эту фичу включать в сборку :)

Короче, вот файлы, которые я менял (специально сделал вариант для шаблона "default", у коробка там немного шаблон другой):

<!-- m -->http://opencart.studio-vk.com/catalog/v ... er.tpl.txt<!-- m -->

<!-- m -->http://opencart.studio-vk.com/catalog/v ... rt.tpl.txt<!-- m -->

<!-- m -->http://opencart.studio-vk.com/catalog/c ... rt.php.txt<!-- m -->

Все сделал по аналогии с этими тремя файлами и вроде бы все работает... НО...

Описываю ситуацию: на странице товара нажимаем кнопку добавить в корзину - товар улетел в корзину и если мы наводим мышь на кнопочку "удалить" ссылка имеет вид

[url="#"]x[/url]
и товар при клике удаляется... если после добавления в корзину любого товара не удалить его сразу а перейти на любую другую страницу сайта, то при наведении на кнопочку "удалить" ссылка имеет вид
[url="#"]Notice</b>: Undefined index:  id in [b]/home/funsibru/public_html/comcig/catalog/view/theme/default/template/module/cart.tpl[/b] on line [b]15[/b]);return false;" style="color: red; text-decoration: none; font-weight: bold;" title="Удалить">x[/url]
и товар при клике НЕ удаляется, а просто перебрасывает на главную... если после этого добавить к уже существующим товарам еще один и не переходить со страницы на которой купили товар на другие страницы, то кнопочки удалить вновь будут работать у всех товаров, и все товары будут удаляться. Как я понимаю, это не правильная работа - товар должен удаляться из карзины в правой колонке после любых прогулок по сайту.

При этом на <!-- m -->[url=http://opencart.studio-vk.com">http://opencart.studio-vk.com</a><!-- m --> в любой момент времени кнопочка удалить имеет вид

<a href="#" onclick="delProduct(45);return false;" style="color: red; text-decoration: none; font-weight: bold;" title="Удалить]x[/url]
и товар после всех путешествий по сайту прекрасно удаляется в любой момент...

UP: проблему решил - нужно внимательно!!! сравнить имеющиеся файлы с файлами-образцами. Пару строк не углядел.

Надіслати
Поділитися на інших сайтах


timico, вот что получается в итоге после всех изменений:

http://opencart.studio-vk.com/catalog/v ... me.tpl.txt

http://opencart.studio-vk.com/catalog/c ... me.php.txt

Сравните эти файлы с оригинальными при помощи какой-нибудь программы сравнения файлов (например, есть такой плагин для Total Commander) — сразу увидите и будет понятно что и куда добавляется.

Все работает. Спасибо!

А как бы еще в категории добавить тоже самое?

Надіслати
Поділитися на інших сайтах


timico, вот что получается в итоге после всех изменений:

http://opencart.studio-vk.com/catalog/v ... me.tpl.txt

http://opencart.studio-vk.com/catalog/c ... me.php.txt

Сравните эти файлы с оригинальными при помощи какой-нибудь программы сравнения файлов (например, есть такой плагин для Total Commander) — сразу увидите и будет понятно что и куда добавляется.

Все работает. Спасибо!

А как бы еще в категории добавить тоже самое?

А ты теперь выбери(добавь в корзину) несколько товаров для примера , затем перейди на страницу самой корзины . Ты увидишь что товары в самой корзине и товары в боковом модуле корзины совпадают . Теперь удали товар в этом боковом модуле который уже с данной доработкой . А потом сделай наоборот - удали товар не в боковом модуле а в самой корзине . И посмотри что будет в итоге этих действий .

.... Вот в этом и есть маленькая недоработка ! .... заказчика это будет очень сильно путать .

Надіслати
Поділитися на інших сайтах


Нда.. получается если находиться на странице самой корзины, то удаляя позиции в блоке справа - они удаляются только в нем (в блоке справа), но не в самой корзине. При этом если обновить страницу - то и в основной корзине товар исчезнет. А если удалять в самой корзине, то удаляется и там, и там ибо при нажатии в основной корзине "обновить" страничка таки обновляется.... Как исправить? Кто поможет?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

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