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

Автоматический переброс в корзину - как?


Recommended Posts

Добрый день. OcStore 3.0

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

Заранее спасибо.

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


11.07.2022 в 17:47, wwizard сказал:

Добрый день. OcStore 3.0

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

Заранее спасибо.

суперкастом

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

в скрипт добавления в корзину добавить в саксесс 

window.location.href = "/index.php?route=checkout/checkout";
ну или ЧПУ
window.location.href = "/checkout/";
В зависимости от того где у Вас корзина.
Но это не очень продуктивное решение. Если человек хочет купить 2 товара ему после каждого "купить" назад в каталог возвращаться? 
А если у товара есть опции (тем более обязательные)? 
В общем сделать то не сложно, непонятно зачем :)
Надіслати
Поділитися на інших сайтах

у метода
cart.add есть

                if (json['redirect']) {
                    location = json['redirect'];
                }

 

есть ли в карточке товара  - надо смотреть по шаблону
$('#button-cart').on('click', function() {

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

  • 2 weeks later...

Внесу трішки роз'яснення для чайників тай для себе коли прийде час повторити щоб довго не шукав).

Для автоматичного переходу в корзину потрібно редагувати файл:

/catalog/view/theme/default/template/product/product.twig

після рядків

if (json['success']) {

....

$('#cart > ul').load('index.php?route=common/cart/info ul li');

додати

window.location.href = "/index.php?route=checkout/checkout";

оновити кєш і буде прцювати, але так не цікаво креще додати ще одну кнопку яка буде Купити а звичайні змінити ім'я на "В Кошик"

наприклад додати кнопку:

після

<input type="hidden" name="product_id" value="{{ product_id }}" />

<br/>

додати

 <button type="button" id="button-cart-buy" data-loading-text="{{ text_loading }}" class="btn btn-primary btn-lg btn-block">{{ button_cart_buy }}</button>

потім потрібно в Файлі перекладу /catalog/language/uk-ua/uk-ua.phg додати переклад та в інших мовах

$_['button_cart_buy'] = 'Купити';

та змінити

$_['button_cart'] = 'до Кошика'

потім додаємо скрипт для його роботи в product.twig

<script type="text/javascript"><!--
$('#button-cart-buy').on('click', function() {
    $.ajax({
        url: 'index.php?route=checkout/cart/add',
        type: 'post',
        data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
        dataType: 'json',
        beforeSend: function() {
            $('#button-cart-buy').button('loading');
        },
        complete: function() {
            $('#button-cart-buy').button('reset');
        },
        success: function(json) {
            $('.alert-dismissible, .text-danger').remove();
            $('.form-group').removeClass('has-error');

            if (json['error']) {
                if (json['error']['option']) {
                    for (i in json['error']['option']) {
                        var element = $('#input-option' + i.replace('_', '-'));

                        if (element.parent().hasClass('input-group')) {
                            element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
                        } else {
                            element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
                        }
                    }
                }

                if (json['error']['recurring']) {
                    $('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>');
                }

                // Highlight any found errors
                $('.text-danger').parent().addClass('has-error');
            }

            if (json['success']) {
                $('.breadcrumb').after('<div class="alert alert-success alert-dismissible">' + json['success'] + '<button type="button" class="close" data-dismiss="alert">&times;</button></div>');

                $('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');

                window.location.href = "/index.php?route=checkout/simplecheckout";
            }
        },
        error: function(xhr, ajaxOptions, thrownError) {
            alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
        }
    });
});
//--></script>

 

Також можливо додати таку кнопку в категорії та пошук, тільки common.js потрібно додати функцію

'buy': function(product_id, quantity) {
        $.ajax({
            url: 'index.php?route=checkout/cart/add',
            type: 'post',
            data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
            dataType: 'json',
            beforeSend: function() {
                $('#cart > button').button('loading');
            },
            complete: function() {
                $('#cart > button').button('reset');
            },
            success: function(json) {
                $('.alert-dismissible, .text-danger').remove();

                if (json['redirect']) {
                    location = json['redirect'];
                }

                if (json['success']) {
                    //$('#content').parent().before('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');

                    // Need to set timeout otherwise it wont update the total
                    setTimeout(function () {
                        $('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
                    }, 100);

                    //$('html, body').animate({ scrollTop: 0 }, 'slow');

                    //$('#cart > ul').load('index.php?route=common/cart/info ul li');
                    window.location.href = "/index.php?route=checkout/simplecheckout";
                }
            },
            error: function(xhr, ajaxOptions, thrownError) {
                alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
            }
        });
    },

Та додаємо кнопку чи в категоріях чи пошуку

<div class="button">
                <button type="button-buy" class="btn btn-primary btn-lg btn-block" onclick="cart.buy('{{ product.product_id }}', '{{ product.minimum }}');">{{ button_cart_buy }}</button>
               </div>

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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