На три этажа вниз и два вверх соседи слушают бодрый ликвид фанк, а это значит, что я взялся за насилие над кодом и готовлю для вас что-то новенькое. Внимательные читатели блога отлично знают, о чём речь. Речь о 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

Коменти

Иван

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

Иван

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

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 я ставлю вот такой код для русского первая строка:
<script type="text/javascript" charset="utf-8" src="/callme/js/callme.js"></script>

Иван

@Назар Токарь, и для украинского вторая строка <script type="text/javascript" charset="utf-8" src="/ukrainian/callme/js/callme.js"></script>
Когда они в две строки, то сайт отображает форму которая вторая в строке(ниже). Если я меняю их местами(ту что біла снизу ставлю наверх) то форма соответственно меняется так-же на другую. Обе работают. И русская и украинская.

Иван

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

Назар Токарь

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

Иван

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

Назар Токарь

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

Иван

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

Назар Токарь

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

Иван

Простите что побеспокоил вопросом по смене с URL на “Страница с заказом”. Разобрался сам.
Напишу, может кому-то нужно будет.
В файле buyme.js находим строку 212 с текстом : frmCs.push(“URL”); и, вместо URL изменяем на нужный нам. Должно выглядеть вот так: frmCs.push(“Страница с заказом”);
Потом сохраняем в кодировке UTF-8.
Все текст поменяется.

Alex

Ставлю Ваш скрипт buyme на тестовый сайтик:
Кнопка появляется но при нажатии ничего не происходит.
Вроде все делал по Вашей инструкции, в чем может быть проблема?

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

Назар Токарь

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

Назар Токарь

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

Tal

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

Назар Токарь

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

саша

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

Евгений

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

Alex

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

Дедушка

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

Руслан

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

Дедушка

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

Руслан

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

Дедушка

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

Руслан

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

Дарек

@Дедушка, а как решать проблему связанный с кодировке 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'); }, });) этим способом скрипт перестаёт работать. Может другие решения есть?

Дедушка

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

Павел

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

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

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

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

Дедушка

Текст меняется в 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 и выложить отдельный тьюториал? <a>id}" href="products/{$product-&gt;url}"&gt;{$product-&gt;name|escape}</a> Название продукта берётся отсюда, + нужна привязка к контейнеру родителя. Я готов ввести дополнительный класс, который будет выводить в текстовом виде ID продукта, но как сделать привязку к родителю и изменить Ваш код – я не знаю (к сожалению не силён в программировании). Это решение позволило бы использовать скрипт в полной мере и в product.tpl и в products.tpl. В качестве площадки для экспериментов можете использовать мой сайт. Помогите пожалуйста.

Юрий

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

Дедушка

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

Юрий

Назар, добрый день и огромное спасибо за скрипт!
К сожалению, не работает отправка SMS.
Настройки скрипта произведены в точности с мануалом.
Прошу помочь.

Dmitry Luchkin

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

Дедушка

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

Дедушка

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

Начинающий

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

Дедушка

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

Юрий

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

Дедушка

Алексей, с вопросами по работе пожалуйста пишите сюда:
http://qbx.me/viewforum.php?f=9

Алексей

Добрый день. В первую очередь хотел бы поблагодарить Вас за ту работу которую Вы делаете. Столкнулся с скриптами и прочими новыми для меня словами совсем недавно, поэтому простите если спрошу очевидные вещи. Пробывал установить себе Ваш скрипт покупки в один клик. Столкнулся с несколькими проблемами первая после того как разархивировал скачений архив к себе в корневую папку сайт перестал работать. Поковыряв понял что файл index.php с архива подменил тот который стоял раньше. Ну это понял все вернул на место. Создал в корневой папке новую под названием buyme и туда распаковал архив. Но никак не могу понять куда именно нужно вставить строчку . Я пользуюсь Simpla вхожу в админпанель и пытаюсь эту строчку вставить в Index.php. Прошу подскажите что я делаю не так и не нужно ли эту строчку ограничивать еще дополнительными командами там body например? Спасибо

Антон

От жеж йопт …. УРА :)
Пошёл качать, офигительно огромная благодарность за проделанную работу.

P.S. Движок для форума юзаю PHPBB3, бесплатный в первую очередь, стабильный, с антиспамом встроенным и вариациями (очень полезная штука – три заготовки сделал и как только одну пробили и пошли боты регистрироваться, то переключаешь на другой антиспам и всё). Двуязычность не подскажу … надо гуглить, но накрайняк просто поставить два форума с двумя базами, а устанавливается довольно нормально … само собой можно вставлять видео, фото, собственные теги делать и т.д.
Больше всех нравиться конечно vBulletin, но он платный и кажись около 300 баксов …