Вы здесь

Как получить контакты гостя в корзине покупок?

0

Здравствуйте.
В Drupal Commerce есть такая замечательная вещь как корзина покупок. Видим, что человек поместил в корзину, видим, что не закончил заказа, - пишем/звоним ему и доводим заказ до оплаты (или не доводим=).

Но это отлично работает только с зарегистрированными посетителями, которые авторизировались и кладут всё в корзину от своего имени. Вопрос - как быть с гостями? Их полузаказы есть в корзине, а связаться с ними никак нельзя.

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

Придумал такую схему:
ШАГ 0. Пользователь поместил товар в корзину. (тут ничего не могу сделать).
ШАГ 1. Пользователь заходит в корзину и видит корзину. (тут ничего не могу сделать).
ШАГ 2. Пользователь переходит к оформлению заказа, где на первой же панели у меня Billing information с телефоном и поле с email. Здесь делаем JS скрипт, который отслеживает заполнение полей с телефоном и email и аяксом отправляет их на почту менеджера. То есть в инпутах по событию onchange.

Это даст приемлемый на 70% результат. Все кто дошли до этапа заполнения контактов, но почему-то не пошли дальше (и даже не отправили эту форму с контактами), - мы всё равно получим их контакты и сможем связаться с ними. Почему на 70%, потому что есть минусы:
1. Да, можно отправлять контакты вместе с именем и другими полями, но невозможно идентифицировать что именно заказал клиент. То есть нельзя сопоставить корзину покупок и полученные на email контакты (разве что субъективно по времени). Для решения проблемы на панель оформления заказа можно дублировать корзину и JS-ом вычленять товары и отправлять их тоже, но дублировать корзину в форму заказа для нас не подходит. (Да, её можно скрыть CSS - это костыльный, но всё же рабочий вариант).
2. Отправляться это письмо будет всегда, независимо от того, закончил этот клиент заказ или нет. То есть менеджерам дополнительно придётся всегда руками проверять есть ли законченный заказ с такими контактами или это наш искомый случай незаконченного заказа. Не трагедия, но всё же неудобно.
3. Самое главное. Работает только в том случае, когда клиент добрался до оформления заказа и ввёл контакты в форму. Если клиент бросил заказ на этапе помещения товара в корзину (шаг 0) или рассматривания корзины (шаг 1) или дошёл до формы указания контактов, но так и не ввёл в поля контакты - то ничего мы не получим!

Основных вопросов 2:

  1. Можно ли как-то разумно (!) получить контакты пользователя ещё на шагах 0 или 1? (вариант с баннерами мол оставьте мыло получите скидку, рассматриваем - но всё же хотелось бы, чтобы этот процесс был более органичным и естественным).

  2. Есть ли возможность добавить новое поле в сущность "Корзина покупок", в которое скриптом добавлять нужные значения в нужный мне момент. То есть, чтобы не отправлять контакты на почту, а добавить их к текущей корзине покупок. Как это может быть реализовано?

Заранее благодарю всех участвующих в обсуждении.

Версия Drupal: 
7.x
Связанные проекты: 
Drupal Commerce
Вопрос задан 15.05.2016 - 17:26
Аватар пользователя Quty
Quty
33

Ответы

1

То есть нельзя сопоставить корзину покупок и полученные на email контакты (разве что субъективно по времени).

Дак отправить номер order (взять можно через drupal ajax) корзины с остальными данными и всё.

Ответы на вопросы:
1) Как? Нормального варианта я не вижу.
Можно конечно после действия показать мини-форму с контактными данными, но это лишь оттолкнет покупателя.
2) Cookies, не?

Ну и ИМХО. По мне так звонок менеджера магазина, после того как я ничего не заказал с сайта, был бы как минимум странным. И скорее всего отпугнул бы.

Ответ дан 17.05.2016 - 03:04
Аватар пользователя SAM
SAM
212

Здравствуйте, SAM.
Спасибо за Ваш ответ.

Про order ID действительно не догадался. Да, так будет правильно.

Расскажите, пожалуйста, подробнее про второй вопрос и cookies. Не представляю как это можно реализовать через cookies. Предположим человек зашёл в корзину и смотрит на помещённые туда товары. Мне нужно чтобы скрипт выполнил операцию и добавил в соответствующий заказ значение, к примеру, "Lorem ipsum" в дополнительное поле "BlaBla" (или каким то другим способом привязал это значение к корзине). И чтоб в итоге (самое главное) это значение было доступно администратору в разделе "Корзина покупок", чтоб вместе с помещёнными в корзину товарами было доступно и это значение.

По поводу звонка после неоконченного заказа, да, это несколько "удивляет" клиентов. Но лучше показаться странным и всё таки в диалоге выцепить 3 заказа из 10, чем просто забить и отпустить все 10 заказов, не показавшись странным.

Комментарий оставлен 17.05.2016 - 15:02

Я не совсем понимаю что Вам надо.
Вам надо просто программно добавить товар что-ли? Инфы куча.

В общем как я это вижу. Пишем js-скрипт, который:

  • Смотрит, где юзер находиться (пишем значения в куки, впринципе вообще все дальше по тексту)
  • При заполнении юзером необходимых полей (.keyup()) пишем тоже в куку. Ну и так далее.
  • Ну и там просто отправляем при закрытии окна, если не нажата кнопка заказа.

Просто используем куки как хранилище данных.

Комментарий оставлен 19.05.2016 - 11:03

Я думал я довольно подробно описал в задании, что именно нужно.
Нужно не товар добавить. Нужно получить контакты гостя и привязать их к "корзине покупки" (!) ДО МОМЕНТА ОФОРМЛЕНИЯ ЗАКАЗА, чтобы эти контакты были доступны администратору в корзине покупки соответствующего заказа - до того как эта корзина покупок стане полноценным заказом.

Комментарий оставлен 19.05.2016 - 16:01

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

Забудьте их. Вопрос основной такой:
Как администратору получить контакты гостя до того, как он закончит оформление заказа?

Комментарий оставлен 19.05.2016 - 16:11

Если надо в админке друпала, то можно при выходе с сайта отправить drupal ajax запрос (который добавит их в корзину, в какое-нибудь поле) с данными из примера выше.

Комментарий оставлен 19.05.2016 - 19:48

Так вот в этом собственно и состоит техническая часть вопроса.
Прошу помощи, как именно организовать это самое поле в корзине покупок (куда записывать эти данные) и как произвести запись через Drupal Ajax?
Буду Вам очень благодарен, если в виде ответа, расскажите об этом чуть подробнее.

Комментарий оставлен 19.05.2016 - 21:54

Давно я возился с корзиной коммерца, так что не подскажу про доп. поле.
Про запрос:

  • Через hook_menu создает адрес для ajax_deliver типа bla/%/% (ну % сколько надо параметров, можно вроде массив).
  • Далее там же в callback пишем функцию, которая принимает аргументы с пути что выше. Ну и далее уже класть их в нужное поле.

Инфа есть в инете по созданию drupal ajax path.

Комментарий оставлен 20.05.2016 - 04:59