Быстрый заказ на email для Prestashop 1.6

Как всегда, готовых решений без смс и регистрации в сети не нашёл. Есть платные модули от 40$ — это наверное будет самым лучшим вариантом для тех, кто не разработчик. Есть бесплатный универсальный скрипт Buyme, но ссылка на страницу автора и пердолинг с установкой всё портит.
Сразу предупрежу: мой вариант крайне топорный. Это всё, что я мог выдать за рабочий день (специфика подхода конторы-заказчика в том, что больше одного рабочего дня на разработку чего-либо — это ну ооооочень много) с нулевым знанием архитектуры движка и при этом не вызывая у себя рвотных позывов, так что прошу прощения заранее. Да, и про обновление модуля корзины (blockcart) после установки можно забыть.

Итак, схема работы пользователя с быстрым заказом следующая: жмём кнопку «В корзину», появляется окно. Справа — стандартное содержимое («Оформление заказа», «Продолжить покупки» и пр.), а слева — фото товара, и небольшая форма для ввода имени/телефона. После заполнения жмём кнопку «Быстрый заказ», видим страницу «Спасибо за ваш заказ blah blah blah» и потом редирект на главную через три секунды.

Насиловать Редактировать мы будем шаблон модуля blockcart, что находится в themes/default-bootstrap/modules/blockcart/ (default-bootstrap — название текущей темы, здесь и далее — все изменения для стандартного шаблона; если оно по-другому выглядит у вас — не удивляйтесь). Открываем файл blockcart.tpl и ищем отображение левой части всплывающего окна «Товар был успешно добавлен в вашу корзину». В стандартном шаблоне он начинается с блока <div class=»product-image-container layer_cart_img»> заканчивается блоком <div class=»layer_cart_cart col-xs-12 col-md-6″>

Добавляем туда элементы формы для имени, телефона и кнопки быстрого заказа, получается вот что:

				<div class="product-image-container layer_cart_img">
				</div>
<form action="/themes/default-bootstrap/modules/blockcart/ju_fast.php" method="post">
				<div class="layer_cart_product_info">
					<span id="layer_cart_product_title" class="product-name"></span>
					<span id="layer_cart_product_attributes"></span>
<input name="name_g" id="name_g" type="hidden" value="">
					<div>
<input name="name_b1" id="name_b1" placeholder="Имя" type="text">
					</div>
					<div>
<input name="phone_b1" id="phone_b1" placeholder="Телефон" type="text">
					</div>
					<div>
<input type="submit" value="Быстрый заказ" id="fsell_done">
					</div>
</form>
				</div>
			</div>
			<div class="layer_cart_cart col-xs-12 col-md-6">

Подсвеченные строки и есть код, который я вставил. Всё остальное как было в шаблоне. Далее опускаемся в самый низ документа и добавляем:

<script>
          $("#fsell_done").hover(
      function () {
var str_gname = $("span#layer_cart_product_title").text();
$("#name_g").val(str_gname);
      }
    );
</script>

Это у нас костыль, который передаёт скрытому полю в форме название заказанного товара. В принципе, можно и без него, но тогда на телефон придётся садить экстрасенса. Теперь нам нужен обработчик формы, который будет заставлять наших рабов продавать всё это работать. Создаём текстовый файлик ju_fast.php (я сделал прямо в директории с модулем; если вы эстет и перфекционист — создавайте его где следует) и добавляем туда (код буду выкладывать по частям, с пояснениями; просто скопируйте все части в один файл и будет результат) сначала это:

<?php
$fsell_name = ($_POST['name_b1']);
$fsell_phone = ($_POST['phone_b1']);
$fsell_productname = ($_POST['name_g']);

$headers   = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/html; charset=utf-8";
$headers[] = "From: jms.in.ua <robot[at]lalala.com.ua>";
$headers[] = "Subject: Быстрый заказ с сайта";
$headers[] = "X-Mailer: PHP/".phpversion();
        $title = 'Subject: Быстрый заказ с сайта';
        $to = 'MYMAIL[at]MAIL.UA';
$sys_date = date("d/m/y");
$sys_time = date("H:i");

$mess = '
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>Быстый заказ</title>

<style type="text/css">
.auto-style1 {
	border-collapse: collapse;
	border-style: solid;
	border-width: 1px;
	background-color: white;
}
.auto-style2 {
	background-color: #CCCCCC;
}
</style>

</head>
<body>

<table class="auto-style1" style="width: 80%" align="center">
	<tr>
		<th class="auto-style2" colspan="2" valign="middle">
		<h4>Быстрый заказ с сайта</h4>
		</th>
	</tr>
	<tr>
		<td style="width: 25%"><strong>Телефон:</strong></td>
		<td>'.$fsell_phone.'</td>
	</tr>
	<tr>
		<td style="width: 25%"><strong>Имя:</strong></td>
		<td>'.$fsell_name.'</td>
	</tr>
	<tr>
		<td style="width: 25%"><strong>Товар:</strong></td>
		<td>'.$fsell_productname.'</td>
	</tr>
	<tr>
		<td style="width: 25%"><strong>Дата:</strong></td>
		<td>'.$sys_date.'</td>
	</tr>
	<tr>
		<td style="width: 25%"><strong>Время:</strong></td>
		<td>'.$sys_time.'</td>
	</tr>
</table>

</body>
</html>
';
mail($to, $title, $mess, implode("\r\n", $headers));

Этот кусок у нас отвечает за отправку письма на вашу почту. Ахтунг! Кусок MYMAIL@MAIL.UA заменить на адрес своего ящика, иначе нихт арбайтен. Ну и «at» замените на @ само собой. Далее будет строчка

header('Refresh: 3; URL=http://jms.in.ua');

Она отвечает за задержку в 3 секунды с последующей переадресацией сайт (в данном случае jms.in.ua, но вы конечно же, замените его на свой). Чтобы пользователь не отложил кирпичей после нажатия на кнопку, ему желательно подставить страницу-заглушку, с которой его и будем переадресовывать. Для этого добавим:

echo '

<!DOCTYPE HTML>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7 " lang="ru"><![endif]-->
<!--[if IE 7]><html class="no-js lt-ie9 lt-ie8 ie7" lang="ru"><![endif]-->
<!--[if IE 8]><html class="no-js lt-ie9 ie8" lang="ru"><![endif]-->
<!--[if gt IE 8]> <html class="no-js ie9" lang="ru"><![endif]-->
<html lang="ru">
	<head>
		<meta charset="utf-8" />
	<title>Быстрый заказ - Мой сайт</title>

	</head>
	<body id="cms" class="cms cms-2 cms-articles hide-left-column hide-right-column lang_ru">
	
<div class="rte" style="height: 200px;">
		<h2 style="text-align: center; font-size: 450%; color: black;">Спасибо за ваш заказ.<br>Мы свяжемся с вами как можно скорее.</h2>
	</div>
<br />

</body>
</html>
';  

exit;

Простенько и неказисто конечно, но ради трёх секунд писать что-то большее… Я например порекомендую скпировать код с главной страницы, убрать оттуда всё лишнее вставив огромную надпись «Спасибо за ваш заказ. Мы свяжемся с вами как можно скорее.», тогда получится более-менее приемлемо.

Собственно, всё. Раскрашиваем форму по вкусу и ждём покупателей. Если чего не понятно — добро пожаловать в комментарии.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

12 + три =