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

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


!Shoorf

Recommended Posts

Хотел сделать кнопки "Купить" к каждому товару (в виде зеленой кнопочки). Прочитал всю тему, хотел приступить, но все ссылки не рабочие! https://opencartforum.com/public/style_emoticons/default/dry.gif

Люди добрые! Напишите пожалуйста подробный мануал по реализации данной функции. Для особо "одаренных".

Заранее СПАСИБО! Буду очень благодарен! Думаю и не только я :)

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


  • 1 month later...

Сам разбирался долго поэтому для "Одареных"

Opencart 1.4.9.x

OcStore 0.1.7 0.1.8 0.1.9

catalog/view/theme/default/template/product/category.tpl

добавить/заменить после

<a class="button_add_small" href="<?php echo $products[$j]['add']; ?>" title="<?php echo $button_add_to_cart; ?>" > </a>

добавить: <a href="#" onclick="buyProduct(<?php echo $products[$j]['id']; ?>);return false;" id="add_to_cart<?php echo $products[$j]['id']; ?>" class="buy"></a>

----

catalog/controller/products/category.php

добавить после $this->data['products'][] = array(

это:

'id'      => $result['product_id'], /*это та самая строчка*/

-----

catalog/view/theme/default/template/common/header.tpl

Добaвляем между тегами <head> ******* </head>

это:

<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').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/view/theme/default/template/product/category.tpl

заменить это <a href="<?php echo $products[$j]['href']; ?>"><img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" /></a><br />

на это

<a href="<?php echo $products[$j]['href']; ?>"><img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" id="image<?php echo $products[$j]['id']; ?>" /></a>
Надіслати
Поділитися на інших сайтах


  • 2 months later...

Если у товара есть дополнительные опции, то при нажатии на плюсик товар попадает в корзину без них. Пытался сделать так, чтоб при добавлении в корзину доп. опции принимали значения по умолчанию, но не получилось.

Решил внести небольшие изменения - может кому-то пригодятся:

Если у товара нет доп. опций - то добавляем товар сразу в корзину, если есть, то открываем страницу с описанием товара для выбора доп. опций.

Для этого открываем \catalog\view\theme\(Имя_шаблона)\template\module\(файл модуля (например latest_home.tpl)

и заменяем строку <a href="#" class="button_add_small" onclick="buyProduct(<?php echo $products[$j]['id']; ?>);return false;" title="<?php echo $button_add_to_cart; ?>" id="add_to_cart<?php echo $products[$j]['id']; ?>"> </a>

на

<?php if (empty( $products[$j]['options'])) { ?>

<a href="#" class="button_add_small" onclick="buyProduct(<?php echo $products[$j]['id']; ?>);return false;" title="<?php echo $button_add_to_cart; ?>" id="add_to_cart<?php echo $products[$j]['id']; ?>"> </a>

<?php } else { ?>

<a class="button_add_small" href="<?php echo $products[$j]['add']; ?>" title="<?php echo $button_add_to_cart; ?>" > </a>

<?php } ?>

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

  • 4 weeks later...

Всем здравствуйте.

Всё получилось сделать кроме одного нюанса.

Делаю например изменения для файлов:

catalog/controller/module/latest.php

catalog/view/theme/default/template/module/latest_home.tpl

catalog/view/theme/default/template/module/latest.tpl

Для последних двух совершенно одинаковые изменения, но почему-то когда модуль расположен на главной (latest_home.tpl) - всё прекрасно работает, а когда справа (latest.tpl) - не работает (никакой реакции при нажатии на плюсик)! То же самое и с "bestseller" и "featured".

Подскажите пожалуйста, как решить проблему?

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


Делаю например изменения для файлов:

catalog/controller/module/latest.php

catalog/view/theme/default/template/module/latest_home.tpl

catalog/view/theme/default/template/module/latest.tpl

Для последних двух совершенно одинаковые изменения, но почему-то когда модуль расположен на главной (latest_home.tpl) - всё прекрасно работает, а когда справа (latest.tpl) - не работает

Проблему решил своими силами.

Если кому интересно в чём был косяк, то изменяемые строки выглядят вот так:

<a class="button_add_small" href="#" onclick="buyProduct(<?php echo $product['id']; ?>);return false;"  id="add_to_cart<?php echo $product['id']; ?>" class="buy"> </a>
вместо

<a class="button_add_small" href="#" onclick="buyProduct(<?php echo $products[$j]['id']; ?>);return false;"  id="add_to_cart<?php echo $products[$j]['id']; ?>" class="buy"> </a>
и

<a href="<?php echo $products[$j]['href']; ?>"><img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" id="image<?php echo $product['id']; ?>" /></a><br />
вместо

<a href="<?php echo $products[$j]['href']; ?>"><img src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" id="image<?php echo $products[$j]['id']; ?>" /></a><br />
то есть заменяем "$products[$j]['id']" на "$product['id']"
Надіслати
Поділитися на інших сайтах


  • 2 months later...

Ещё бы :)

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

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

Короче, вот файлы, которые я менял (специально сделал вариант для шаблона "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 -->

знаю что здесь решили вопрос "В корзине добавляем напротив каждого товара - кнопку удалить (пример сайт Вкоробке )." но ссилки на файлы битые, можно повторно залить их или здесь же на форуме описать как это сделать
Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

не нужно.

Все подробно описано здесь. Достаточно к картинке добавить идентификатор. Цитирую:

Т.е., правим шаблон вывода продуктов. Там где тег img, добавляем id.

Было:

Стало:

Подскажите пожалуйста, как сделать, чтобы картинка товара "перелетала" в корзину в 1.5.х?

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


  • 2 months later...

это не "купить", а добавить в корзину. посмотрел как народ извращался, ппц.

можно же проще добавить в корзину.

а в новых версиях это уже "из-коробки"

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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