JS: Бесплатный интернет магазин
Большинство скриптов интернет магазинов громоздки и сложны в настройке, впрочем для крупного магазина это не такие уж большие проблемы - заплатил и нет проблем. А вот для создания мини интернет магазина на основе simpleCart(js) особых знаний и временных затрат не потребуется.
SimpleCart(js) не требует базы данных, все заказанные товары хранятся в cookies покупателя. Название, изображение, описание и цена продуктов и расположение корзины задаются с помощью специальных html тегов. Товары в корзину попадают без перезагрузки страницы. В скрипт встроены модули оплаты PayPal и Google checkout, которые в России бесполезны, но добавить наши платежные системы особого труда не составит.
Настройка simpleCart(js)
simpleCart.currency - валюта
simpleCart.checkoutTo - способ оплаты
simpleCart.taxRate - процент налогов
simpleCart.shippingFlatRate - сумма за доставку, добавляемая к общей цене товаров в корзине
simpleCart.shippingQuantityRate - сумма за доставку, добавляемая к каждому товару в корзине
Подробная документация по установке и настройке находится на сайте simpleCart(js).
Перевод на рубли
Задать simpleCart.currency = RUR
Заменить в районе 543-ей строки файла simpleCart.js:
case JPY:
return "¥";
на это:
case RUR:
return "руб.";
В конец 29-ой строки добавить перед ";"
,RussianRouble=RUR=" руб."
Расположение валюты после цены:
Number.prototype.toCurrency=function(){return(arguments[0]?arguments[0]:"$")+this.withCommas();};
заменить на:
Number.prototype.toCurrency=function(){return this.withCommas()+(arguments[0]?arguments[0]:"$");};
Российские платежные системы
Cделать оплату деньгами не сложно - нужно лишь отправить данные о заказе на сервер, как описано ниже, а там уже скрипт платежной системы будет работать.
Отправка заказа на e-mail.
SimpleCart(js) в стандартной поставке слать заказы на почту не умеет, поэтому его придется дорабатывать самим. На основе стандартного примера Я покажу как это сделать.
Разобьем процесс доработки на несколько этапов:
1. после нажатия на кнопку "оформить заказ", перейти на страницу с размещенной по центру корзиной и формой с данными покупателя.
2. при отправке данных клиента на сервер цеплять к ним данные о товарах.
3. на сервере отделить данные о клиенте и товарах, для товаров сделать цикл.
4. слать все на мыло.
Итак, Поехали!
1. В index.html ищем ссылку на оформление заказа и заменяем ее класс на любой другой, а в адресе ссылки пишем расположение страницы оформления заказа.
//было
<a href="javascript:;" class="simpleCart_checkout">checkout</a>
//стало
<a href="form.html" class="my_checkout">checkout</a><br/>
Теперь делаем саму страницу с формой. Необходимо указать правильное расноложение файла checkout.php.
<div class="simpleCart_items" ></div>
SubTotal: <span class="simpleCart_total"></span>
Tax: <span class="simpleCart_taxCost"></span>
Shipping: <span class="simpleCart_shippingCost"></span>
Final Total: <span class="simpleCart_finalTotal"></span> <br />
<form action="checkout.php" method='post' id='form'>
<p><h4>ФИО:</h4>
<input id="email" type="text" name="fio" size="100">
<h4>Адрес:</h4>
<textarea id="mess" rows="4" name="adres" cols="75"></textarea>
<h4>Ваш e-mail:</h4>
<input id="email" type="text" name="email" size="50">
<input type="submit" value="Отправить" name="submit" onClick="emailCheckout(this.form)"></p>
</form>
2. При отправке формы будет выполнена функция emailCheckout(this.form), которая отправит данные о самом заказе.
<script type="text/javascript">
function emailCheckout(form){
var me = simpleCart;
counter = 1;
form.appendChild( me.createHiddenElement( "currency", me.currency ) );
for( var current in me.items ){
var item = me.items[current];
form.appendChild( me.createHiddenElement( "name_" + counter, item.name ) );
form.appendChild( me.createHiddenElement( "quantity_" + counter, item.quantity ) );
form.appendChild( me.createHiddenElement( "price_" + counter, item.price ) );
form.appendChild( me.createHiddenElement( "tax_rate_" + counter, me.taxRate ) );
var descriptionString = "";
for( var field in item){
if( typeof( item[field] ) != "function" &&
field != "id" &&
field != "quantity" &&
field != "price" )
{
descriptionString = descriptionString + ", " + field + ": " + item[field];
}
}
descriptionString = descriptionString.substring( 1 );
form.appendChild( me.createHiddenElement( "item_description_" + counter, descriptionString) );
counter++;
}
}
</script>
3. Посланные данные теперь нужно обработать в файле checkout.php и послать их на мыло.
<?php
$to = 'somemail@gmail.com'; //куда слать письмо
if ( $_SERVER['REQUEST_METHOD']=='POST' )
complete_mail($to);
function complete_mail($to) {
$fio = substr(htmlspecialchars(trim($_POST['fio'])), 0, 150);
$adres = substr(htmlspecialchars(trim($_POST['adres'])), 0, 1000);
$email = substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
unset( $_POST['fio'] );
unset( $_POST['adres'] );
unset( $_POST['email'] );
unset( $_POST['submit'] );
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
{ output_err(0); }
else if(empty($fio))
{ output_err(1); }
else if(empty($adres))
{ output_err(2); }
else if(empty($_POST['name_1']))
{ output_err(3); }
else {
$content .= "ФИО: ".$fio."\nАдрес: ".$adres."\nE-mail: ".$email."\n\n\nИмя\tКол-во\tЦена\tНалоги\t Описание\n";
$c=0;
foreach ( $_POST as $k => $v ){
if ( $c == 5 ) {
$content .= "\n";
$c = 0;
} else {
++$c;
}
$content .= $v."\t";
}
$subject = 'Заказ с сайта ' . $_SERVER['SERVER_NAME'];
mail($to, $subject, $content, "From:" . $email);
echo "Заявка отправлена.";
}
}
function output_err($num) {
$err[0] = 'ОШИБКА! Неверно введен e-mail.';
$err[1] = 'ОШИБКА! Не введены контакты.';
$err[2] = 'ОШИБКА! Не введен адрес.';
$err[3] = 'ОШИБКА! Вы ничего не заказали.';
echo '<p>'.$err[$num].'</p>';
}
?>
После отправки письма или ошибке, выведется сообщение на белом фоне, чтобы его облагородить создайте страницу с соответствующим сообщением, а в скрипте сделайте следующие изменения:
echo "Заказ отправлен!";
//заменить на
header('Location: http://test.ru/done.html');
$err[0] = 'ОШИБКА! Неверно введен e-mail.';
//заменить на
$err[0] = header('Location: http://test.ru/bademail.html');
Подписаться на RSS комментариев к этой записи
Ранее JS: HTML редактор | Позже Изучение ООП в PHP 5.
- Похожие записи
- JS: Чистые скрипты
- JS: HTML редактор

Готового скрипта отправки на почту нет, но его не очень сложно написать самому. В течении недели думаю выложу, пока времени нет.
Принцип работы:
1. после нажатия на кнопку "оформить заказ", перейти на страницу с размещенной по центру корзиной и формой с данными покупателя.
2. при отправке данных клиента на сервер цеплять к ним данные о товарах.
3. на сервере отделить данные о клиенте и товарах, для товаров сделать цикл.
4. слать все на мыло.
нужно в 29 строчку добавить ,RussianRubl=RUR="RUR" это для руских рублей
mail ($to, $subject, $content, "From:" . $email,"Content-type:text/html; charset = windows-1251")