Opencart, Заказ в 1 клик



Сегодня мы за 5 минут внедрим в наш интерне-магазин кнопку "Заказ в 1 клик". Для начала, давайте разберём способы заказа в интернет-магазине:

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

Первый вариант реализован в стандартном функционале. Второй вариант, на мой взгляд, бесполезен, потому что дублирует модуль "Перезвоните мне", да и диктовать свои реквизиты по телефону+ ждать звонка оператора ещё то удовольствие. По этому реализовывать будем третий вариант.

Открываем шаблон товара: /catalog/view/theme/default/template/product/product.tpl Находим строчку с заголовком товара:

<h1><?php echo $heading_title; ?></h1>

И выше неё вставляем кнопку:

<input type="button" class="btn btn-primary btn-lg btn-block" value="Купить и оформить" id="oneclickbuy">

Далее, переходим вниз, к секции с яваскриптом и выше функции:

$('#button-cart').on('click', function() {

Вставляем следующий код:

$('#oneclickbuy').click(function()
  {
  $('#button-cart').trigger('click');
  setTimeout(function()
    {
    if($("div").is(".alert-success"))
      {
      location='/index.php?route=checkout/checkout';
      }
    }, 1000);
  });

Всё, готово.

Opencart, Заказ в 1 клик

Работает это следующим образом:

При клике на кнопку "Купить и оформить" вызывается событие "click" для стандартной кнопки "Добавить в корзину".
Ждём 1 секунду, чтобы отработал ajax запрос.
Проверяем, появилось ли сообщение об успешном добавлении товара в корзину, и, если появилось, перенаправляем пользователя на страницу оформления заказа.

Пример, как обычно, можно посмотреть на тестовом магазине: opencart.allwebstuff.info


Сообщество: AWS

Комментариев(12)


ID: #360   Создан:
Автор: Александр

Классно! Сегодня-завтра попробую, как раз искал это на Вашем сайте!)) Спасибо!

ID: #361   Создан:
Автор: ololoev
>>360

Спасибо. Очень приятно, когда кому-то нужна моя работа)

ID: #362   Создан:
Автор: ololoev

Все таки заказ в 1 клик это как раз попап форма в которой надо ввести имя и тел с отправкой менеджеру по нажатию кнопки отправить. На форме должно быть указано название товара. Потому как зачастую людям лень заполнять какие то поля в корзине ... из практики такие заказы прилетают почти каждый день

ID: #363   Создан:
Автор: Александр

Спасибо! Полезная статья! У меня к вам вопрос близкий к теме) У нас опенкарт 2.0.2.0 , перенесли на новый домен и хостинг. Все гуд, все работает. Но появилась такая проблема - при нажатии на кнопку "Подтвердить заказ" в оформлении заказа, в кнопке остается текст "Loading..." и через 5-8 сек заказ оформляется (а должен почти моментально, как работало на старом хостинге). На новом хостинге техподдержка ответила таким образом:

"Здравствуйте, у вас при нажатии кнопки создаётся несколько процессов которые блокируют друг друга. Один из них следит за завершением двух уже созданных и продолжается лишь когда они завершаться. Но при этом, судя по всему, проверяет он это только раз в несколько секунд. В итоге он ждёт очень долго.

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

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

Может быть вы что-то подскажете где и что посмотреть?)

ID: #364   Создан:
Автор: ololoev
>>363

Пока не посмотрю сам сайт- помочь точно не смогу. Нетронутый opencart, при оформлении заказа, отправляет всего 2 запроса на /index.php?route=payment/cod/confirm и на /index.php?route=checkout/success. Так что скорее всего у Вас стоит какой-то модуль оформления заказа и соответственно он поломался...

ID: #365   Создан:
Автор: Александр

Оказывается, дело было в сервере, все поправили, спасибо!)

ID: #367   Создан:
Автор: Ринат

Спасибо, за ваши советы. Возникли вопросы по этой статье. Как сделать чтобы кнопка "Заказать и оформить" была в стиле шаблона? Сейчас это обычная серая кнопка. И как ее правильно спозиционировать? Хотелось бы ее прижать к правому краю контейнера. И главное, функция полностью не отрабатыватеся, т.е. кнопка просто добавляет товар в корзину.

ID: #368   Создан:
Автор: Анастасия

Спасибо за полезную статью. А как сделать, чтобы ещё перенаправление на страницу оформления заказа шло?

ID: #369   Создан:
Автор: ololoev

Ринат, Если шаблон свёрстан правильно, то кнопка должна автоматически принимать стиль шаблона. В противном случае, придётся стилизовать кнопку вручную. Тоже самое и с позиционированием.

Анастасия, Если Вы всё сделали правильно, то редирект должен быть автоматический.


$('#oneclickbuy').click(function()
  {
  $('#button-cart').trigger('click');
  setTimeout(function()
    {
    if($("div").is(".alert-success"))
      {
      location='/index.php?route=checkout/checkout';
      }
    }, 1000);
  });

Этот кусочек кода редиректит на оформление заказа.

ID: #370   Создан:
Автор: алекс

подскажите бесплатный модуль для 2.1.0.1 заказ в 1 клик, буду признателен

ID: #371   Создан:
Автор: ololoev
>>370

Если <a href="http://www.opencart.com/index.php?route=extension/extension&path=5&filter_search=One%20click%20checkout&filter_license=0&page=1">тут</a> не найдёте, то значит таких нет.

ID: #366   Создан:
Автор: Сергей
>>365

Здравствуйте. Александр, а как исправили проблему на новом сервере?

Всего: 12 комментариев на 1 страницах

Ваш комментарий будет анонимным. Чтобы оставить не анонимный комментарий, пожалуйста, зарегистрируйтесь



Сообщества