Вход / Регистрация

Создайте сайт прямо сейчас!

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



  • Персональный перечень способов заработка на сайте именно вашей тематики
  • Аудит юзабилити сайта бесплатно $20
  • Набор скриптов на сумму $40 для увеличения продаж
  • Аудит юзабилити интернет магазина бесплатно $60

Как получить бонусы?


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

После оплаты одного из пакетов, отправьте запрос на info@ucozmagazines.ru с указанием адреса созданного сайта.

Данные предыдущего заказа в корзине пользователя

О чем здесь?

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

Что это дает?

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

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

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

Установка решения

Зайдите в шаблон страницы служебных форм и добавьте в него следующий скрипт:

function getUserFields(){
 $.get('/shop/invoices', function(rI){
 var url = $('.col_inv_id', rI).eq(0).children('a').attr('href');
 if(url) {
 $.get(url, function(rO){
 $('.order-field', rO).each(function(){
 var fid = $(this).data('field'), fval = $(this).text().trim();
 if(fid && fval) {
 $('#order-fld-'+fid).val(fval);
 }
 });
 });
 } else {
 // здесь можно вывести сообщение о том, что заказов не найдено
 }
 });
}
Данные предыдущего заказа в корзине пользователя

Теперь в удобном месте добавьте кнопку:

<button onclick="getUserFields()">Загрузить данные из прошлого заказа</button>
Данные предыдущего заказа в корзине пользователя

Сохраните шаблон.

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

<?if $ORDER_FIELD_1$ or $ORDER_FIELD_EDIT_1$ ?> $ORDER_FNAME_1$ <div class="order-field" data-field="1"><strong><?if $ORDER_FIELD_EDIT_1$?>$ORDER_FIELD_EDIT_1$<?else?>$ORDER_FIELD_1$<?endif?></strong></div><?endif?>
 <?if $ORDER_FIELD_2$ or $ORDER_FIELD_EDIT_2$ ?> $ORDER_FNAME_2$ <div class="order-field" data-field="2"><strong><?if $ORDER_FIELD_EDIT_2$?>$ORDER_FIELD_EDIT_2$<?else?>$ORDER_FIELD_2$<?endif?></strong></div><?endif?> 
 <?if $ORDER_FIELD_3$ or $ORDER_FIELD_EDIT_3$ ?> $ORDER_FNAME_3$ <div class="order-field" data-field="3"><strong><?if $ORDER_FIELD_EDIT_3$?>$ORDER_FIELD_EDIT_3$<?else?>$ORDER_FIELD_3$<?endif?></strong></div><?endif?> 
 <?if $ORDER_FIELD_4$ or $ORDER_FIELD_EDIT_4$ ?> $ORDER_FNAME_4$ <div class="order-field" data-field="4"><strong><?if $ORDER_FIELD_EDIT_4$?>$ORDER_FIELD_EDIT_4$<?else?>$ORDER_FIELD_4$<?endif?></strong></div><?endif?> 
 <?if $ORDER_FIELD_5$ or $ORDER_FIELD_EDIT_5$ ?> $ORDER_FNAME_5$ <div class="order-field" data-field="5"><strong><?if $ORDER_FIELD_EDIT_5$?>$ORDER_FIELD_EDIT_5$<?else?>$ORDER_FIELD_5$<?endif?></strong></div><?endif?> 
 <?if $ORDER_FIELD_6$ or $ORDER_FIELD_EDIT_6$ ?> $ORDER_FNAME_6$ <div class="order-field" data-field="6"><strong><?if $ORDER_FIELD_EDIT_6$?>$ORDER_FIELD_EDIT_6$<?else?>$ORDER_FIELD_6$<?endif?></strong></div><?endif?> 
 <?if $ORDER_FIELD_7$ or $ORDER_FIELD_EDIT_7$ ?> $ORDER_FNAME_7$ <div class="order-field" data-field="7"><strong><?if $ORDER_FIELD_EDIT_7$?>$ORDER_FIELD_EDIT_7$<?else?>$ORDER_FIELD_7$<?endif?></strong></div><?endif?> 
 <?if $ORDER_FIELD_8$ or $ORDER_FIELD_EDIT_8$ ?> $ORDER_FNAME_8$ <div class="order-field" data-field="8"><strong><?if $ORDER_FIELD_EDIT_8$?>$ORDER_FIELD_EDIT_8$<?else?>$ORDER_FIELD_8$<?endif?></strong></div><?endif?> 

Здесь нужно изменить код в соответствии с количеством полей, которые вы используете в магазине. Можно изменить внешний вид полей, главное, чтобы в контейнере с классом order-field лежало содержимое поля, а сам контейнер имел атрибут data-field="1" ("1" в данном случае id поля).

Данные предыдущего заказа в корзине пользователя

Когда закончите, сохраните шаблон и проверяйте работу скрипта. Установка завершена.

Дополнительно

Заполнение полей при открытии страницы

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

$.get('/shop/invoices', function(rI){
 var url = $('.col_inv_id', rI).eq(0).children('a').attr('href');
 if(url) {
 $.get(url, function(rO){
 $('.order-field', rO).each(function(){
 var fid = $(this).data('field'), fval = $(this).text().trim();
 if(fid && fval) {
 $('#order-fld-'+fid).val(fval);
 }
 });
 });
 } else {
 // здесь можно вывести сообщение о том, что заказов не найдено
 }
});

Главное разместить код после полей оформления заказа.

Возможность выбора заказа, из которого нужно подставить поля

Для этого потребуется выполнить решение с помощью uAPI магазина. В качестве альтернативы есть скрипт записи адресов доставки в профиль .

Если не работает

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

Статьи по теме

Сергей    24.08.2016    4644    3.8 из 5.0 (5)

Оцените материал:

Обсуждение

Всего комментариев: 0

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Данные предыдущего заказа в корзине пользователя
Данные предыдущего заказа в корзине пользователя