Назар Токар
Опубліковано: 22 Березня 2013
Оновлено: 6 Травня 2017

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

buyme

Что за скрипт?

Многие из читателей просили, а кто-то даже требовал подобный скрипт. Пришлось делать. Главная его задача – позволить на любом сайте добавлять возможность покупки товаров за один клик (на самом деле два, но так лучше звучит).

Скрипт прост и функционален, ничего лишнего традиционно в него я не добавлял. Единственное, что он умеет – уведомлять администратора сайта о новых заказах по электропочте и смс. Но делает он это прекрасно.

Я несколько недель тестировал его на рабочем интернет-магазине, в результате часть заказов, ранее делавшихся черех корзину, теперь проводятся через BuyMe, общая сумма заказов увеличилась. В процентном соотношении сказать сложно, выборка небольшая, играет роль сезонность и т.д. Дадите мне такую статистику – буду благодарен.

Возможности

Теперь о возможностях. Источником для этого скрипта был “Задать вопрос по товару”, который отправлял уведомление с именем и вопросом клиента на администраторскую почту. Как несложно понять, для работы с более-менее серьёзным магазином, этого мало. Ок, добавим функций. О них по порядку:

  1. Сохранение заполненных форм. После первого заполннения формы, данные пользователя сохраняются в cookies и при использовании скрипта во второй раз, поля “Имя” и “Контакты” уже будут заполнены. Исключения: клиент почистил или отключил куки.
  2. Отправка дополнительных полей товаров. Эту возможность можно использовать, если ваши товары могут быть в разных модификациях. Так, например, это объём для карты памяти, цвет холодильника, размер белья, вес пачки чая и т.д. Более того, можно использовать сколько угодно свойств, все они будут отправлены в уведомлении. Как это настроить: для названий полей добавляйте class=’b1c_caption’, а для выпадающего поля со свойством – class=’b1c_option’. Выбранные поля сохраняются в общем массиве и не теряются при отправке. На почте это будет выглядеть так:
    buyme-fields
  3. Название товара берётся автоматически из содержимого тега <h1>. Если вы хотите сократить название или отправлять себе, например, артикул, присвойте нужному объекту class=’b1c_name’.
  4. Настройка языка. Скрипт работает с тремя языками: русский, украинский и английский. Менять язык очень просто: для этого перед вызовом buyme.js нужно разместить такую строку:
    <script>var b1c_lang = "ru";</script>

    Меняйте ru на ua или en и язык всплывающей формы поменяется. Если не указывать эту настройку, язык формы по умолчанию – русский. Кроме формы язык сменится и в письме с уведомлением.

  5. Уведомление в смс. Если вы не хотите быть привязанным к компьютеру и можете себе позволить 5-10$ в месяц на уведомления, скрипт может отправлять уведомления о новых заказах в смс. О том, как это настроить, я напишу в разделе “Настройка”. Сообщение переводится в транслит и обрезается до 160 символов, чтобы каждый заказ умещался в одно смс. Отправляются только название товара, имя, телефон и адрес клиента. Если смс не настраивать, на работу скрипта это не повлияет и уведомления будут отправляться только на почту.
  6. Подключение в одну строку. Хорошая примета: если подключать скрипт в одну строку, больше шансов, что никто не ошибётся. Так и здесь: копируете одну строку себе в темплейт сайта и всё работает. Об этом далее.
  7. Работает на любом движке. То есть вообще на любом. Будь у вас WordPress, Joomla, Drupal, OSCommerce, VamShop, Magento, Simpla, PrestaShop, да хоть голый html – скрипт будет работать. Главное – поддержка php sendmail на сервере. В 99% случаев эта функция включена. Если нет – теребите своего хостера, а не меня.
  8. Нет проблем с кодировкой. Во всяком случае, я таковых не нашёл. Найдёте – пишите.

Как выглядит в работе

Главное окно формы скрыто до тех пор, пока клиент не нажмёт на кнопку покупки. После этого посредине экрана появляется форма:

buyme-form

По клику на “Оформить заказ” данные отправляются в php-скрипт, а он проверяет данные и отправляет заявку на почту и смс. Если поля не заполнены, выдаёт ошибку. Если всё ок, пишет, что запрос отправлен и вам перезвонят.

Как установить и настроить

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

Чтобы установить скрипт, воспользуйтесь инструкцией по установке Buyme.

Кстати, почитайте статью на тему Как удвоить продажи магазина при помощи одной кнопки.

Настройка СМС-уведомлений

О том, как настроить уведомления в смс, читайте в отдельном посте: Настройка SMS для уведомлений в скриптах Callme и Buyme.

Возможные проблемы

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

Требования к хостингу и движку сайта

Абсолютно любой движок и хостинг.

Сколько стоит скрипт?

Вы можете пользоваться скриптом бесплатно, если оставляете мой копирайт на нём. Вы также можете поддержать разработку, пожертвовав сумму, которую считаете нужной, электронными деньгами (wm, яд, qiwi) или на карту. Реквизиты здесь.

Сеошники и люди, которые боятся оставлять исходящую ссылку с сайта: ссылка создаётся динамически в js, соответственно, ссылочного веса не переносит.

От автора

Это важный для меня скрипт, я долго работал над ним, вложил в него немало сил. Пожалуйста, отпишитесь в комментарии о том, как он помог вам в работе или какое впечатление у вас от BuyMe. Спасибо.

Демо и скачать

В демо-версии для примера есть два выпадающих списка: цвет корпуса и карта памяти. Но вообще их может быть любое количество.

А скачать скрипт можно тут:

Ваши пожелания, советы, вопросы очень ждут в комментариях чуть ниже.

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

PSS: Проверка правописания на розетке – выполнено:

rozetka-ok

← Тисни «Лайк», щоб читати нас у Фейсбуці
    Поширити у Фейсбуці
    Надіслати у Messenger
    Надіслати в Telegram
    Надіслати у WhatsApp
    Зберегти в Pocket

    Додати коментар

    Такий e-mail вже зареєстровано. Скористуйтеся формою входу або введіть інший.

    Ви вказали некоректні логін або пароль

    Вибачте, для коментування необхідно увійти.

    63 коментаря

    спочатку нові
    за рейтингом спочатку нові за хронологією

    Назар, я разобрался. Все работает. Спасибо Вам

    Уважаемый Назар, подскажите что я делаю не так? Вот что я сделал:

    1 - Скопировал в корень сайта еще одну папку callme со всем содержимым и переименовал ее в callmeukr.

    2 - В этой папке переименовал js в jsukr и в ней callme.js в callmeukr.js

    3 - В index.php шаблона вписал код активации именно этого варианта скрипта(на укр. языке):

    4 - В материале сайта добавил класс к кнопке: <a class="callmeukr_viewform"

    На русском все работает, а на украинском не работает кнопка.

    Что у меня не так здесь скажите пожалуйста?

    Я добился того что у меня по отдельности два скрипта работают.

    В index.php я прописал код (ставлю пробелы так как код не пропускает)

    И в материале сайта когда указываю класс копки <a class="callme_viewform" то открывается на украинском форма.

    А когда ставлю то открывается на русском. Когда оба эти кода ставлю вместе то открывается только русский. Где нужно поставить этот код чтоб определяло именно для украинского украинский а для русского русский. Формы уже работают но работают по отдельности. Понял что в классе кнопки нельзя менять callme на callmeukr. Псле таких изменений форма не работает. Помогите пожалуйста

    Автор
    Назар Токар

    Используйте теги code и pre, чтобы код не удалялся. Если кода много, есть jsfiddle.

    Автор
    Назар Токар

    Если обе кнопки работают, то в чём вопрос?

    @Назар Токарь, может нужно в материале сайта добавить к классу кнопки путь именно к украинской форме? То есть что-то дописать?

    @Назар Токарь, и для украинского вторая строка

    Когда они в две строки, то сайт отображает форму которая вторая в строке(ниже). Если я меняю их местами(ту что біла снизу ставлю наверх) то форма соответственно меняется так-же на другую. Обе работают. И русская и украинская.

    @Назар Токарь, Да. Спасибо. В продолжении разговора. В index.php я ставлю вот такой код для русского первая строка:

    Здравствуйте, подскажите пожалуйста, как сделать CallMe и BuyMe чтоб работали на трех языках? Если сайт на русском, то они на русском, а если на украинском или английском, то они соответственно на тех языках. Заране спасибо Вам большое

    Автор
    Назар Токар

    @Иван, вы можете устанавливать три копии скрипта для каждой версии сайта и запускать соответсвующую в нужных разделах.

    @Назар Токарь, Спасибо что так быстро ответили. У меня хранится Buy me и CallMe в корне сайта. У меня один шаблон. В котором настроены языки через админ панель. Куда конкретно нужно скопировать три версии этих плагинов(скриптов) в корень сайта туда же где и первый? Но только присвоить им названия CallMe_ukr и так же для BuyMe_ukr? И как к ним потом обратиться с помощью вызова скрипта например при установке кнопки в материале сайта. (Стандартный способ обращения к кнопке и ее активацию я понял уже)

    Автор
    Назар Токар

    @Иван, место сохранения роли не играет. А как вызывать, зависит от шаблона. Думаю, в одной из следующих версий сделаю разные конфиги с разными языками, но на данный момент только так как я написал.

    Простите что побеспокоил вопросом по смене с URL на "Страница с заказом". Разобрался сам.

    Напишу, может кому-то нужно будет.

    В файле buyme.js находим строку 212 с текстом : frmCs.push("URL"); и, вместо URL изменяем на нужный нам. Должно выглядеть вот так: frmCs.push("Страница с заказом");

    Потом сохраняем в кодировке UTF-8.

    Все текст поменяется.

    Ставлю Ваш скрипт buyme на тестовый сайтик:

    Кнопка появляется но при нажатии ничего не происходит.

    Вроде все делал по Вашей инструкции, в чем может быть проблема?

    http://mex.bl.ee/index.php?route=product/product&product_id=40" rel="nofollow">

    П.с. Пользуюсь Вашем скриптом Callme все работает на ура большое за него спасибо !

    Автор
    Назар Токар

    @Alex, хотя в инструкции в блоге вся инфа и была полной, смотрите там.

    Автор
    Назар Токар

    @Alex, обновил инструкцию, в ней была не вся инфа, обновите у себя код.

    Не возможно скачать, уже десять раз набираю сайт и имэил а в ответ введите адрес сайта и имаил.

    Автор
    Назар Токар

    @Tal, js и cookies разрешены?

    Скрипт работает, все круто, все нравится, но! В google
    chrome не работает. По нажатию кнопки просто ничего не происходит.
    Можно это как-то исправить?

    Приветствую! Прикрутил к симпле buyme, все работает, но в почту приходит "Заказ на null" и далее уже все нормально. Я так понимаю там должно было быть название товара, но скрипт по каким-то причинам его не берет.

    @Евгений, нужно блок с товаром завернуть в класс bm_good

    Автор
    Назар Токар

    @Alex, ага, а название в b1c_name

    Назар, спасибо за скрипт, а подскажите как его синхронизировать с virtuemart 2, чтобы рядом с кнопкой "Купить" в категории товара была кнопка "Купить в один клик"?

    Автор
    Назар Токар

    А я писал тему на форуме как раз. Посмотрите.

    @Дедушка, можно ссылочку на тему

    Автор
    Назар Токар

    Можно самостоятельно поискать например. Я не у компа.

    @Дедушка, а как решать проблему связанный с кодировке internet explorer-ом?

    Автор
    Назар Токар

    @Дарек, издеваетесь? Я отвечал вам на этот вопрос 16 июня.

    @Дедушка, извиняюсь но (jQuery.getJSON("/buyme/index.php", { заменить на jQuery.getJSON("/buyme/index.php", { contentType: "text/html; charset=utf-8", И удалить эту строку: jQuery.ajaxSetup({'beforeSend' : function(xhr) { xhr.overrideMimeType('text/html; charset=utf-8'); }, });) этим способом скрипт перестаёт работать. Может другие решения есть?

    Автор
    Назар Токар

    @Дарек, если всё сделать правильно, всё работает. Я перед тем, как предложить решение, проверил его.

    Последнее сообщение автора Bootch72 в этой теме как раз об этом, куда нужно добавить строчку в файле default.php находиться он /components/com_virtuemart/views/productdetails/default.php

    Добрый день. Спасибо за полезности!

    В процессе возникло несколько вопросов:

    Как изменить "Чтобы оформить заказ, заполните форму. В течение пары часов с вами свяжется менеджер и уточнит детали заказа, а также время доставки." ?

    Как добавить дополнительное поле для воода данных в форме отправки заказа?

    Автор
    Назар Токар

    Текст меняется в lang/ru/form.html

    А про новое поле я только что писал на форуме. Ищите.

    Нашел подробную инструкцию о добавлении поля в Callme, как добавить поле в BuyMe не нашел.. Если туплю киньте в меня ссылкой

    Вопрос снимаю. Разобрался сам

    Здравствуйте спасибо за скрипты очень полезные.

    По проблеме письма приходят, но почему то не закрывается окно отправки сообщения. И если не секрет когда будет анонс новой версии? Очень интересует вопрос 2-и и более товаров на одной странице.

    Александр

    У меня проблема с почтой. Не хочет мне приходить письмо. Хостинг поддерживает php sandmail. В index.php email изменил. Но все без результатно. Что я делаю не так. в index.php в $to указал адрес на который должно придти письмо. В $from от какого ящика придет.

    И такая же проблема с Callme. Письмо не приходит.

    Александр

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

    Автор
    Назар Токар

    Я писал: этот функционал будет в одной из след версий.

    Александр

    Назар, здравствуйте! Я Вам очень благодарен за данный скрипт. Очень крутая вещь. Но у меня один вопрос, есть к примеру 2 товара. Условно назовем из товар1 и товар2. Если покупатель зайдет на мой интернет-магазин и нажмен "Купить" товар1 то вылезет Ваша форма, клиент её заполнит и все хорошо, заказ пришел на почту, но.... Если он нажмет на товар2, вылезет так же форма, он её заполняет, ко мне на почту приходит письмо, но я не смогу отличить какой товар у меня заказали. Толи товар1, толи товар2. Собственно вопрос, как привизать Вашу форму к определенному товару? Можно по названию или номеру. Чтобы когда мне приходило письмо о заказе, там была еще одна графа: "Что именно заказали." Спасибо. Буду с нетерпением ждать ответа.

    Автор
    Назар Токар

    Ой, почитайте пожалуйста или свежие комментарии, я же об этом писал.

    Спасибо, написал на форум

    Не шлет смс (buyme) На E-mail приходит как положено, а вот СМС на номер нет.. На этом же сайте тестирую Callmе, вот с ним все супер и на E-mail и по смс ...

    Ввел Id и ключ, $frm = "BuyMe"; номер без + ... все как доктор прописал =) Если есть мысли на этот счет, поделитесь пожалуйста

    Автор
    Назар Токар

    Ярослав, пишите подробно вопрос на форум.

    Назар, подскажи, как назначить кнопке на самой форме другой стиль? Стиль class="b1c", я делаю большой яркой кнопкой "Купить", а на форме кнопка остается такая-же - слишком большая для неё.

    Автор
    Назар Токар

    Илья, просто в форме добавьте кнопке свой класс и опишите его с CSS. Если я правильно понял вопрос, так вы сделаете кнопку с любым внешним видом.

    Автор
    Назар Токар

    В style.css

    В каком файле можно поменять цвет кнопок?

    Скрипт очень полезный, оставил пока в том состоянии как есть. В любом случае, можно получить контакты клиента (что крайне важно) и уточнить детали заказа по телефону. Ко всему, сайт на стадии наполнения.

    Буду ждать полноценного решения для Simpla CMS.

    Назар молодец!

    Назар, ещё один момент: в Simpla есть такая вещь как связанные товары, которые отображаются на странице продукта и имеют тот же класс, соответственно получают кнопку... При клике на такой кнопке, в заказе получаем ID основного продукта, взятый в h1. Не имеет ли смысл найти решение для Simpla и выложить отдельный тьюториал? id}" href="products/{$product->url}">{$product->name|escape} Название продукта берётся отсюда, + нужна привязка к контейнеру родителя. Я готов ввести дополнительный класс, который будет выводить в текстовом виде ID продукта, но как сделать привязку к родителю и изменить Ваш код - я не знаю (к сожалению не силён в программировании). Это решение позволило бы использовать скрипт в полной мере и в product.tpl и в products.tpl. В качестве площадки для экспериментов можете использовать мой сайт. Помогите пожалуйста.

    http://brigadir.pro" rel="nofollow">Ссылка на сайт. В настройках SMS забиты телефон в международном формате (без +), ID и Security Key из ByteHand в buyme/index.php. Письма приходят чётко, SMS - нет. На счету 10 бонусных RUR.

    Автор
    Назар Токар

    Юрий, а где ссылка на сайт и настройки?

    Назар, добрый день и огромное спасибо за скрипт!

    К сожалению, не работает отправка SMS.

    Настройки скрипта произведены в точности с мануалом.

    Прошу помочь.

    поле для ввода адреса и коммента ресайзится вправо (криво выглядит)

    в письме УРЛ приходит обычной строкой, желательно чтобы ссылкой приходило

    Автор
    Назар Токар

    Дмитрий, скриншот покажите. Ссылкой ок.

    Автор
    Назар Токар

    Начинающий, приведите какие-то примеры.

    Начинающий

    Спасибо огромное! Хотелось бы видеть стилей для разнообразия, как в CallMe.

    Автор
    Назар Токар

    Юрий по клику на "скачать" откроется форма, куда нужно ввести свою почту. Туда придёт ссылка на архив.

    Не работает ссылка? Или как скачать скрипт BuyMe