Email спасибо ваш заказ отправлен. Спасибо за покупку в нашем интернет магазине! Страница “Спасибо за покупку“

Нам понадобятся следующие страницы:

  • Страница регистрации с формой для регистрации
  • Страница активации аккаунта
  • Страница восстановления пароля
  • Страница сброса пароля

Форма входа на сайт будет размещаться на всех страницах сайта (например, в хедере).

Вот такую страницу регистрации мы хотим получить:

Здесь тип учетной записи будет определять, в какую группу мы зарегистрируем пользователя. Так же полем для идентификации (username) будет электронная почта.

Добавим на страницу вызов сниппета Register :

[[!Register? &submitVar=`register-btn` &activationResourceId=`27` &activationEmailTpl=`Email.Activation` &activationEmailSubject=`Вы зарегистрированы на сайте example.com` &placeholderPrefix=`reg.` &successMsg=`

Спасибо за регистрацию. На вашу электронную почту [[!+reg.email]] отправлено письмо со ссылкой на активацию аккаунта. Пройдите по этой ссылке, чтобы завершить регистрацию.
` &usernameField=`email` &usergroupsField=`reg_type` &customValidators=`valueIn` &validate=`username:blank, reg_type:valueIn=^Readers;Writers;Idlers ^, fullname:required:minLength=^6^, password:required:minLength=^6^, password_confirm:password_confirm=^password^, email:required:email` ]] [[!+error.message:default=`[[!$Register.Form]]`]]

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

Разберем параметры вызова:

&submitVar=`register-btn` - указывает атрибут name тега input . То есть сниппет сработает, только если отправлена форма кнопкой с определенным именем.

&activationResourceId=`42` - забегая вперед, 42 – это идентификатор страницы, на которой мы будет активировать пользователя.

&activationEmailTpl=`Email.Activation` - чанк с письмом активации, о нем позже.

&placeholderPrefix=`reg.` - указывает, что все плейсхолдеры, за редким исключением (об этом дальше), которые создаются в данном сниппете, должны начинаться с «reg.».

&successMsg – сообщение, которое выведется при успешной отправке формы. Заметьте, что в нем можно указывать значения из формы и любые другие теги. Данное сообщение запишется в плейсхолдер [[!+error.message]]. Довольно странное название, да и в документации на данный момент ошибка. Там написано [[!+reg.error.message]], но из кода компонента следует, что это не так.

&usernameField=`email` - указывает, что в качестве имени пользователя будет использоваться поле email.

&usergroupsField=`reg_type` - определяет поле, устанавливающее группу, в которую будет добавлен новый пользователь.

&customValidators=`valueIn` - указывает дополнительные валидаторы, которые нужно создать вручную.

&validate – валидаторы задаются через запятую для каждого поля, а если требуется несколько валидаторов для одного поля, то они еще разделяются двоеточием. Разберем их отдельно:

username:blank – нехитрая ловушка для спама, означает, что поле username должно остаться пустое.

reg_type:valueIn=^Readers;Writers;Idlers^ - ограничиваем возможные группы тремя указанными. В изначальной поставке такого нет и злые хацкеры могут зарегиться, например, под группой Administrator (если вы ее не переименовали).

fullname:required:minLength=^6^ - поле fullname должно быть не пусто и содержать хотя бы 6 символов.

password:required:minLength=^6^ - аналогично для пароля.

password_confirm:password_confirm=^password^ - пароли должны совпадать.

email:required:email – электронная почта должна быть не пуста и являться собственно почтой.

Конструкция [[!+error.message:default=`[[!$Register.Form]]`]] выводит сообщение об успешной отправке формы или чанк формы, если вы только зашли на страницу или заполнили ее неправильно.

Создадим вышеупомянутый валидатор valueIn . Для этого создаем сниппет с названием valueIn и следующим кодом:

$valueIn = explode(";", $param); return in_array($value, $valueIn);

Теперь требуется создать чанк Register.Form . В данном случае он будет следующим (используется Bootstrap 3):

[[!+reg.error.fullname:notempty=`
[[!+reg.error.fullname]]
`]]
[[!+reg.error.email:notempty=`
[[!+reg.error.email]]
`]]
[[!+reg.error.password:notempty=`
[[!+reg.error.password]]
`]]
[[!+reg.error.password_confirm:notempty=`
[[!+reg.error.password_confirm]]
`]]

Все поля обязательны для заполнения

В этой форме замечу несколько вещей, касающихся MODX:


– форма обрабатывается на той же странице, на которой показывается.

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

[[!+reg.error.email:notempty=`[[!+reg.error.email]]`]] – опять же в случае провала под полем отобразится сообщение об ошибке.

– обязательно указываем имя кнопки, если ранее устанавливали свойство &submitVar .


Теперь осталось создать чанк Email.Activation с письмом, которое сайт отправляет пользователю:

Спасибо за регистрацию! Чтобы активировать ваш аккаунт, пожалуйста, перейдите по следующей ссылке:

Активировать аккаунт на сайте Example.Com

После активации, вы сможете войти, указав электронную почту и пароль:

Логин: [[+email]]

Пароль: [[+password]]


Здесь можно использовать плейсхолдеры с именами полей формы. Заметьте, что они пишутся уже без «reg.». Так же добавляется плейсхолдер [[+confirmUrl]] , в котором уже сгенерирована ссылка для активации, даже ничего не нужно делать.


Последним штрихом в искусстве регистрации нового аккаунта с помощью компонента Login будет создание страницы активации. Используем для этой страницы пустой шаблон, а в контенте страницы нужно указать всего лишь вызов тега:

[[!ConfirmRegister? &redirectTo=`1`]]

где 1 – идентификатор страницы, на которую пользователь перейдет в случае успешной активации. При этом он уже будет залогиненным.


Приступим к настройке входа в профиль пользователя. Форма авторизации будет простая:

Добавим ее, вызвав в нужном месте:

[[!Login? &loginTpl=`Auth.Login` &logoutTpl=`Auth.Logout` &errTpl=`Auth.Login.Error` &actionKey=`action` &loginKey=`login` &redirectToPrior=`1` &logoutResourceId=`1`]]

Здесь мы указываем чанк с формой для входа, нарисованной выше (&loginTpl=`Auth.Login` ), чанк с кодом, показывающимся авторизованным пользователям (&logoutTpl=`Auth.Logout` ), небольшой чанк с выводом ошибки входа (&errTpl=`Auth.Login.Error` ). Далее следуют параметры:

&actionKey=`action` и &loginKey=`login` - основные идентификаторы для обработки запроса. Первый означает имя параметра в POST-запросе, а второй его значение. То есть форма должна передать значение $_POST["action"]="login", чтобы сниппет Login ее обработал.

&redirectToPrior=`1` - означает, что после входа мы переместимся на ту же страницу, с которой входили.

&logoutResourceId=`1` - при выходе из профиля мы перейдем на страницу с идентификатором 1.


Чанк Auth.Login :

[[!+errors]]

Форма обрабатывается на этой же странице. Если случилась ошибка, то она будет выведена ниже формы в плейсхолдере [[!+errors]]. Так же нужно не забыть ссылки на ресурсы с Регистрацией и восстановлением пароля. Заметьте, что в поле для электронной почты name=«username» – именно в это поле продублировал почту сниппет Register , и оно является для пользователей уникальным.


Чанк Auth.Logout:

[]` &tpl=`User.HeaderBadge` &innerJoin=`{"modUserGroupMember":{"alias":"modUserGroupMember","on":"modUser.id = modUserGroupMember.member"}, "modUserGroup":{"alias":"modUserGroup", "on":"modUserGroupMember.user_group = modUserGroup.id"}}` &select=`{"modUserGroup":{"group_name": "modUserGroup.name"}}` ]]

Выход из профиля

Эта часть не обязательна, если все пользователи в одной группе. Но, чтобы отобразить группу пользователя, стандартных возможностей сниппетов, входящих в компонент Login, недостаточно. Можно написать простенький сниппет для получения названия группы на xPDO , а можно воспользоваться уже готовым сниппетом pdoUsers , входящим в пакет pdoTools . Параметры, указанные в этом сниппете:

&users=`[[+modx.user.id]]` - выбираем только текущего авторизованного пользователя.

&tpl=`User.HeaderBadge` - чанк, в котором мы выведем краткую информацию о пользователе.

&innerJoin – JSON с джойнами таблиц групп пользователей, описание выходит за рамки статьи. Главное это работает J.

&select – JSON, добавляющий в выборку поле modUserGroup.name с алиасом group_name.


Чанк с бейджиком пользователя User.HeaderBadge :

Вы вошли как [[+group_name]] [[+fullname]] Личный кабинет

Если бы нам не нужна была группа пользователя, то содержимое этого чанка можно было бы вставить сразу в чанк Auth.Logout . Здесь можно выводить плейсхолдеры с любыми полями modUser и modUserProfile плюс c помощью pdoUsers добавилось поле group_name .


В чанке Auth.Login.Error простой вывод ошибки:

[[+msg]]

С логином мы закончили. На этом этапе пользователь может зарегистрироваться и успешно войти. Но что, если он забыл пароль? В этом случае он жмякает на ссылку «Забыли пароль?» и переходит на страницу восстановления пароля, которую мы предварительно создаем и помещаем туда вызов:

[[!ForgotPassword? &tpl=`Auth.ForgotPass.Form` &submitVar=`forgotpass` &errTpl=`Auth.Login.Error` &sentTpl=`Auth.ForgotPass.Sent` &emailTpl=`Email.ForgotPass` &emailSubject=`Восстановление доступа к аккаунту на сайте Example.Com` &resetResourceId=`29`]]

Разберем параметры этого вызова:

&tpl=`Auth.ForgotPass.Form` - чанк формы, в которой пользователь введет свой email.

&submitVar=`forgotpass` - в случае сниппета ForgotPassword достаточно, чтобы параметр с таким названием был передан на сервер и не важно с каким непустым значением.

&errTpl=`Auth.Login.Error ` - вывод ошибки аналогично сниппету Login

&sentTpl=`Auth.ForgotPass.Sent` - в этом чанке содержится контент, который будет выведен в случае успешной отправки письма на смену пароля.

&emailTpl=`Email.ForgotPass` - собственно письмо содержится здесь.

&emailSubject =`Восстановление доступа к аккаунту на сайте Example.Com` - заголовок письма.

&resetResourceId=`29` - идентификатор ресурса, на котором будет производиться сброс пароля на новый.


Чанк Auth.ForgotPass.Form:

[[+loginfp.errors]]

Нового здесь только другой способ вывода ошибок в плейсхолдере [[+loginfp.errors]] и передача параметра, что именно эта форма сбрасывает пароль: .

Auth.ForgotPass.Sent:

Информация по восстановлению аккаунта выслана на указанный электронный ящик: [[+email]].

Здесь можно использовать данные из формы выше.


Email.ForgotPass:

[[+fullname]],

Чтобы активировать свой новый пароль, пожалуйста, перейдите по следующей ссылке:

Хочу новый пароль

Если все прошло успешно, вы сможете войти в свой профиль с помощью следующих данных:

Логин: [[+username]]

Пароль: [[+password]]

Спасибо,
Администрация сайта Example.Com

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


Завершающим штрихом осталось создать ресурс, на который пользователь будет переходить из письма для обновления пароля. В этом ресурсе нам нужен вызов:

[[!ResetPassword:empty=`

Вы не заказывали сброс пароля. Возможно вы ошиблись адресом. Вы можете перейти на Главную страницу сайта или воспользоваться меню выше.

`? &tpl=`Auth.ForgotPass.Reset`]]

Этот код выведет сообщение, если вдруг кто-то забредет на данную страницу повторно или просто случайно. А если пароль успешно сброшен, выведется сообщение из чанка Auth.ForgotPass.Reset:

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

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


1. Создаем страницу регистрации и добавляем на нее вызов сниппета Register .

2. Создаем чанки с формой регистрации Register.Form и письмом активации Email.Activation .

3. Создаем страницу подтверждения регистрации и размещаем на ней вызов сниппета ConfirmRegister .

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

5. Создаем чанк с формой входа Auth.Login , чанк с информацией об авторизованном пользователе Auth.Logout , чанк с сообщением об ошибке Auth.Login.Error .

6. Создаем страницу восстановления пароля и размещаем на ней вызов сниппета ForgotPassword .

7. Создаем чанк Auth.ForgotPass.Form с формой для восстановления пароля, чанк Auth.ForgotPass.Sent с сообщением об успешной отправке письма, чанк Email.ForgotPass с письмом на сброс пароля.

8. Создаем ресурс с окончательным сбросом пароля и размещаем в нем вызов сниппета ResetPassword .

9. Создаем чанк Auth.ForgotPass.Reset с сообщением об успешном сбросе пароля.

На этом все. Буду рад любым дополнениям и замечаниям.

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

Когда, как и зачем благодарить подписчиков в email рассылке, расскажем в нашей статье на примерах известных брендов.

Спасибо за подписку

Приветствуйте новых пользователей благодарностью за подписку. Дайте им понять, что вы цените проявленный интерес к вашей компании.

Хорошим жестом благодарности может стать купон-скидка, который еще и повысит шансы на совершения покупки.

Представьте свой бренд новичку, расскажите о рассылке в деталях: когда выходит новостной дайджест, когда бывают распродажи и т.д. Или любезно предложите ему самостоятельно выбрать темы в настройках email рассылки. Именно так магазин одежды и аксессуаров Neiman Marcus приветствует новых подписчиков.

Спасибо за покупку

Приобретение клиентом товара или заказ услуги – самый подходящий момент поблагодарить за это. Такие письма ни в коем случае не покажутся заискиванием. Совместите приятное с полезным: поблагодарите за покупку в письме-подтверждении заказа.

Статистика по метрикам благодарственной email рассылки подтверждает, что ее читают и кликают. По данным компании Remarkety письмо «Спасибо за покупку» в среднем имеет показатели open rate — 42%, click rate – 18%, количество повторных покупок из письма достигает 10%. Для наглядности приведем статистику по средним показателям открываемости и кликабельности во всех отраслях: средний open rate – 10%, click rate – 2%.


Идеи для письма «Спасибо за покупку»:

  1. Подберите простой заголовок

Тема должна сразу показать покупателю, о чем это письмо. Наиболее эффективные варианты для заголовков: «Спасибо за ваш заказ», «Подтверждение заказа». Можно , добавив имя пользователя и название компании: «Алина, спасибо за ваш заказ в магазине Золотая туфелька «, так сразу понятно, от кого пришло письмо.

  1. Подарите скидочный купон

После того, как покупатель совершил покупку, не стоит ждать сложа руки, когда он вновь пожелает что-то приобрести. Подарите в благодарственном письме скидку на следующую покупку, как это делает кондитерская The Brilliant Bakers в примере ниже.

Статистика говорит о том, что купоны на скидку могут более чем в три раза поднять коэффициент конверсии. Убедитесь, чтобы в письме с купоном стояла дата истечения срока. Это может быть 5-10 дней. Не ставьте слишком большой период, потому что пользователь может отложить покупку и забыть про нее.

  1. Порекомендуйте другие товары

Письмо благодарность за покупку может содержать ваши дружеские рекомендации с другими товарами. В продажах эта тактика давно известна под названием cross-sell – перекрестные продажи, когда при покупке фотоаппарата продавец предлагает карту памяти, или при ноутбуке – мышь.

  1. Попросите оценить покупку

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

Спасибо за активность в соцсетях

Email рассылка – это не единственный канал связи, с помощью которого ваши клиенты черпают информацию. Есть также социальные сети. Компания Brand Analytics на регулярной основе проводит исследования социальных сетей в России. Их данные говорят о том, что аудитория активных авторов насчитывает 37 млн человек . И эти авторы сгенерировали 588 млн сообщений за месяц.

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

Не забывайте благодарить подписчиков за то, что они лайкают и расшаривают информацию о вашей компании в социальных сетях. Вот как это делает компания натуральных цитрусовых добавок к чаю True Citrus . Они сегментируют подписчиков по мере возрастания их активности в социальных сетях на три группы: True Fan, Super Sharer, Social VIP и раздают бонусы согласно этим статусам.

Спасибо, что посетили семинар или вебинар

Если пользователь посетил ваше мероприятие, онлайн или офлайн – это еще один повод отправить письмо-благодарность.

Что оно может содержать?

  • Итоги события: о посетителях и экспертах, об инсайтах участников и т.д.
  • Благодарность спонсорам.
  • Видео, фотографии. Они напомнят всем, кто присутствовал о торжественной или уютной атмосфере. К тому же, каждый из нас любит искать себя на фотоснимках подобных мероприятий. А те, кто отсутствовал, увидят, как было хорошо и в следующий раз точно не пропустят.
  • Полезные материалы. Это может быть электронная книга, полезные чек-листы, видео, или подкаст того, что вы вещали.

Благодарите просто так!

Говорите своим подписчикам «спасибо» чаще, а повод всегда найдется.

Если взять годовщину основания компании – это, казалось бы, ваш праздник. Но если копнуть глубже, именно клиенты поддерживают существование вашего бренда. Значит email «Спасибо, что вы с нами» будет уместен.


Пользователь нажал на кнопку «Купить» и совершил заказ, в ответ он увидел стандартное послание «Спасибо Ваш заказ отправлен». Думаете на этом цель страницы «Спасибо за заказ» выполнена? Мы утверждаем, что нет, ведь удачно оформленная, она может повысить лояльность ваших клиентов, увеличить средний чек и даже спровоцировать повторные продажи. И это не магия, а простое следование 5 правилам. Предлагаем вам полезные советы по оптимизации таких страниц.

Еще раз покажите информацию о заказе

Подведите итог заказа: укажите его комплектацию и стоимость, проще говоря «покажите чек». Пусть ваш покупатель убедиться, в правильном оформлении своего заказа. Также мы рекомендуем указать контактные телефоны и способы связи с менеджерами магазина, если Клиенту вдруг понадобится внести изменения в комплектацию покупки или получить дополнительную информацию. Забота о покупателе никогда не бывает лишней, поверьте это лучше чем сухое «Спасибо за заказ».

Отправляйте e-mail уведомление

Кроме демонстрации информации о заказе на странице отправляйте e-mail подтверждение на электронную почту покупателя. Например, укажите в заголовке "Название магазина: подтверждение вашего заказа №129", а в теле самого письма всю информацию о товарах, стоимости, сроках и способах доставки. К тому, же в этом сообщении вы можете предложить покупателю присоединиться к вашим социальным сетям, или подписаться на e-mail рассылку.

Используйте cross-продажи

Для увеличения суммы чека, предложите покупателю сопутствующие товары. Например: "Вы только что купили этот кухонный комбайн? А как насчет того, чтобы посмотреть к нему дополнительные насадки для приготовления колбас и кебабов. Или ситечка для отжима соков?» Эти предложения будут отлично работать при грамотном подходе к формированию товарных связок. Можно запрограммировать автоматический подбор сопутствующих товаров.

Повышайте лояльность

Используйте пригласительные системы для друзей текущих Клиентов. После совершения покупки Клиент приглашает друзей совершить покупки, и они получают дополнительные скидки. Такие предложения легко распространяются через социальные сети и приносят результаты. Например:

Будьте социальны!

Приглашайте пользователей стать вашими подписчиками на Facebook, Вконтакте и в других социальных сетях. Ведь они уже совершил у вас покупку - столь ценный актив нельзя терять. Для привлечения используйте фразу, подчеркивающую преимущества участия, например "Следите за нашими скидками и распродажами". Так вы продолжаете общение с лояльными Клиентами и получаете шанс стимулировать повторные покупки. Что также значимо, развиваете дополнительный канал продвижения услуг и товаров магазина. Внедрение этих простых советов принесет результат для всех интернет-магазинов вне зависимости от тематики. Успешных продаж! По материалам www.e-pepper.ru

Апдейт (2018 год):

Клиент только что приобрел у вас товар и оформил заявку. Отлично! Это лучший момент для того, чтобы предложить ему подписаться на вашу рассылку новостей. Лучшего момента просто невозможно себе представить, поскольку прямо сейчас клиент доверяет вам и готов к взаимодействию.
Именно после оформления заказа на странице благодарности можно значительно увеличить базу своих подписчиков, которые затем будут снова и снова конвертироваться в покупателей. Причем, люди, которые уже совершили заказ, априори более лояльны и с большей охотой снова купят у вас какой-либо товар.

Форма подписки на рассылку должна быть простой и понятной. Если адрес электронной почты уже был введен пользователем (а скорее всего это так и есть), можно обойтись одной кнопкой. При этом очень важно объяснить, что именно вы будете рассылать, какую именно информацию и с какой периодичностью. Чем больше конкретной информации вы дадите, тем лучше.
Как обычно, следует также дополнительно оговорить, что от подписки клиент может отказаться в любой момент с помощью одного или двух кликов.
Дальше все просто. Имея на руках хорошую базу лояльных клиентов (да еще и с персонализированными данными), появляется возможность создавать по-настоящему эффективные письма. При этом лучше не частить, а действовать наверняка. Например, прислать выгодное предложение клиенту перед праздниками. Почти наверняка человек задумывается о приобретении каких-либо подарков в этот момент, и если ваше предложение его заинтересует, он купит эти подарки именно у вас.

Страница благодарности - это отличная возможность повысить продажи, причем далеко не одним способом, и никто не запрещает придумывать новые.



Последние материалы раздела:

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

Только качественная и оригинальная косметика и парфюмерия - магазин Летуаль.ру. Сегодня для успешности в работе, бизнесе и конечно на личном...

Отслеживание DHL Global Mail и DHL eCommerce
Отслеживание DHL Global Mail и DHL eCommerce

DHL Global Mail – дочерняя почтовая организация, входящая в группу компаний Deutsche Post DHL (DP DHL), оказывающая почтовые услуги по всему миру и...

DHL Global Mail курьерская компания
DHL Global Mail курьерская компания

Для отслеживания посылки необходимо сделать несколько простых шагов. 1. Перейдите на главную страницу 2. Введите трек-код в поле, с заголовком "...