Twitter Виртуального Бреста Группа в одноклассниках

Как сделать Интернет-магазин?

 

Читать начало….

 

Мы подошли к очень интересной теме – виртуальная корзина. Не сомневаюсь, на очень многих сайтах Вы пробовали заказать выложенный там товар, и на всех работа корзины была реализована по-разному. Что надо стандартному посетителю от Интернет-магазина? Правильно, купить товар. А что ему для этого требуется? Удобная навигация, легкий и быстрый доступ к товарам, возможность изменить количество одного наименования товара в корзине, возможность удалить товар из корзины, информация о товаре (данные, параметры, фотография, наконец – цена!). Это – необходимый минимум – увеличение доступных функций отрицательно сказывается на быстродействии и существенно усложняет программу. Но – этого более чем достаточно для нас.

 

Итак, как можно хранить товары в корзине покупателя? Можно попросить его (покупателя, конечно) зарегистрироваться в системе, но для этого надо быть уверенным в необходимости нашего товара для покупателя. Чаще это не так :-). А поэтому не усложняйте жизни своим клиентам различного рода регистрациями. Подумайте – как относитесь к ним Вы сами, часто ли хочется оставлять свои данные на сомнительных :-) сайтах? Вот именно, очень не хочется. А значит, надо иметь очень веские причины, что бы ввести регистрацию. Такими причинами могут быть: наличие постоянного круга покупателей, ходовой товар… Впрочем, это уже не относится к теме статьи. Сделайте свой выбор сами. Только имейте ввиду – регистрацию тоже придется разрабатывать самому.

 

А мы же не будем останавливаться на регистрации, так как она в принципе ничего не меняет. Все равно Вам никуда не уйти от cookie… Ну вот, уже слышу :-) массу голосов с не очень лестными отзывами, типа «Опять, а мы то думали…». Да, и еще раз да! Давайте, я попробую привести ряд аргументов за использование этой технологии, а Вы решите сами – прав я или нет.

 

Что бы сделать это, нужно рассмотреть преимущества и недостатки нескольких конкурирующих технологий. Что можно противопоставить cookie? Из того, что попроще - Java script и сессии. Давайте рассмотрим все три по порядку.

 

Cookie – небольшие файлы, записываемые на Вашем компьютере сервером. Все браузеры поддерживают работу с ними, и поверьте – в этой технологии больше ограничений, чем возможностей. Например, нельзя записать в один cookie больше 4 килобайт данных, нельзя обратиться к чужому cookie, только к своему (созданному своим сервером), нельзя записать cookie куда либо в другое место, кроме как в отведенное пользователем. Нельзя, нельзя, нельзя… Конечно, все это при условии того, что Вы следите за безопасностью собственного компьютера и устанавливаете самое современное программное обеспечение. Кстати, практически во всех браузерах сookie по умолчанию включены, и если Вы смогли их выключить – сможете и включить. Сделать это можно в настройках программы-браузера. Очень большое количество сайтов использует в своей работе cookie, а часть из них просто не пустит Вас к себе без включенной их поддержки в браузере. Хорошо это или плохо – это так. Есть специальные программы – брандмауэры, отсекающие cookie или отказывающие сайту в доступе, так что выбор все равно остается за посетителем. Но – среднестатистический пользователь компьютера не отключает cookie, а для продвинутых стоит написать предупреждение на сайте.

 

Дальше – Java Script. Эта технология тоже достаточно распространена, но... Есть версии популярных браузеров, которые не поддерживают работу Java Script. Например – версии Opera. Правда, это не тот недостаток, на котором мне хотелось бы сделать акцент. Java Script технология клиентская, а это значит, что текст программы - скрипта надо передать браузеру. Само собой – увеличение времени загрузки и замедление работы программы Вам гарантировано. А плюс сюда еще требовательность к ресурсам компьютера, и мы получаем гремучую смесь. А ведь своего клиента надо уважать и немножко даже любить – как никак он платит нам за нашу работу. Так зачем же усложнять ему путь по сайту? Впрочем, есть тут и достоинства – если сервер не поддерживает программирование на своей стороне, остается воспользоваться только Java Script.

 

Сессии. Очень эффективный механизм, встроенный во многие современные языки программирования. Присутствует, например, в PHP версии 4.0 и выше. Позволяет передавать переменные от одного окна браузера к другому без их потери и без передачи методами POST или GET. Это на пальцах. В действительности – использует в своей работе уникальные идентификаторы, которые хранятся в тех же файлах cookie, так что нового в принципе ничего не несет, разве что повышается удобство работы… Если только знать как этим пользоваться :-) Само собой – требует поддержки cookie от браузера.

 

Вот они, конкуренты. На самом деле – выбор стоит между двумя: cookie или Java Script. Второе стоит выбирать только в случае, если Ваш хостинг не поддерживает программирование на стороне сервера ни на одном из языков. Это – практически все бесплатные службы хостинга. А на первом стоит останавливаться во всех других случаях, когда есть возможность отдать основную работу по обработке серверу. Впрочем, Ваш Java Script тоже будет работать с cookie, иначе оборвавшаяся так некстати связь с Интернетом лишит посетителя с трудом набитого в корзину товара.  Второй раз он (посетитель магазина) может этого и не сделать. Если используются cookie – вся корзина остается нетронутой, ведь она записана на компьютере клиента. Как видите, круг замкнулся, нам все равно от них никуда не деться :-) Итак – решение о выборе технологии зависит от возможностей хостинга.

 

Мы, как прогрессивные программисты, остановимся на cookie. Тем более, что у нас есть РНР,  а в нем очень просто устанавливать, удалять и считывать cookie. На практике это будет выглядеть так:

 

isset ($name); - прочитать установленный cookie с именем name;

$ymktime (12, 50, 0, 12, 12, 2005); - установить время, до которого хранить cookie;
setcookie("name", $data, $y); - записать в cookie с именем name переменную $data;

setcookie("name); - удалить cookie с именем name;

 

Вот и все, что нам понадобится для работы со страшными cookie.

 

Раз технология выбрана – давайте применим ее на деле! Прайс у нас, если Вы помните, хранится в текстовом файле. Блок выборки данных оттуда есть. Осталось решить, что именно хранить в cookie. Можно – всю информацию о товаре, а можно только цифровой идентификатор и количество. Конкретный выбор надо сделать исходя из реальных условий. По принципу – что проще. Только надо учитывать, что цифровой идентификатор занимает не очень много места в памяти, но с ним больше хлопот в смысле программирования. Придется делать блок сопоставления идентификатора и выборки информации из файла прайса. Тут есть и еще один момент. Если прайс часто меняется, соответственно информация в корзине покупателя может быстро устареть и не соответствовать действительности. Значит, стоит подумать о контроле даты. Дату, когда посетитель положил товар в корзину, тоже придется хранить в cookie, так как больше негде. Если даты сильно различаются – стоит предупредить покупателя о несоответствии. Иначе могут произойти досадные казусы. Неприятно, когда заказ делается по недельной давности цене. Она ведь может не только упасть, но и увеличиться! Потом придется объясняться… Так что лучше позаботиться о таких вещах заранее. Хотя, если прайс более-менее постоянный, беспокоиться на стоит.

 

Цифровым идентификатором очень удобно выбрать номер позиции в прайсе. Этот номер, понятное дело, уникальный для каждого товара, а нам это и надо. И, кроме того – по номеру позиции легко извлечь информацию о товаре из текстового файла с прайсом. Достаточно считать весь файл в массив:

 

$file   = “price.txt”; // кстати, расширение файла может быть любым
$as   = file ( $file   );

 

И обратиться к строке массива с нужным индексом:

$info = $as[$id];

 

$id – идентификатор, который нам нужен. Правда, применяя данный метод, нам не избежать контроля дат, но это не так уж и плохо.

 

Вместе с идентификатором товара надо запоминать и количество товара. Соответственно, при первом заказе вводится число 1. Дальше желательно предоставить возможность произвольно (в ограниченных, конечно, рамках) менять это число. Для пересчета суммы понадобится кнопка, если она будет первой после формы – сработает и нажатие на клавишу Enter. Очень удобно – ввел новое количество товара и нажал Enter для пересчета.

 

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

 

Конечно, необходимо продумать, как именно выводить информацию о полной стоимости заказа. Не стоит забывать о скидках и подарках, если они, конечно, есть в Вашем Интернет-магазине. Хорошо впишутся сюда различные бонусы и информация о доставке. Если она бесплатная – напишите об этом. Лишним не будет.

 

Наконец… Оформление. Стандартные поля – имя, адрес, телефон, почтовый ящик и т.д. Кому что надо. Чем меньше, кстати, тем лучше. Обязательно должно быть поле «примечания» - оставьте клиенту возможность высказать свои пожелания. Тут же должна присутствовать вся информация о заказанном товаре и о его стоимости. Самая главная кнопку – «ЗАКАЗАТЬ». Если нет регистрации, можно введенные данные запомнить (а для чего мы говорили столько о cookie?) и при следующем заказе просто подставить. Клиент будет благодарен, поверьте.

 

После того, как заказ оформлен и подтвержден, первым делом… скажите спасибо клиенту за покупку. И – выведите еще раз информацию о заказе на экран. При этом не забывайте очистить корзину – она ведь уже отработала свое. Если был введен адрес электронной почты – отправьте на него сообщение о заказе и самую разнообразную информацию, включая рекламу. Вот и все. По крайней мере, для покупателя.

 

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

 

Очень актуальным является момент своевременности обработки заказов. Я Вам подскажу очень хороший и, кстати, современный метод, позволяющий практически мгновенно узнавать о заказе. И это без необходимости постоянно сидеть в Интернете и даже выходить в него раз в день. Удивлены? А на самом деле все просто. Нам понадобится простой… пейджер. Практически все операторы предоставляют возможность отправить электронное сообщение на свой пейджер из Интернета. Как правило, адрес для отправки выглядит так: номер_пейджера@адресператора. Или приблизительно так. Если на этот адрес отправить письмо, оно придет на Ваш пейджер. А из PHP, например, очень просто отправлять электронные сообщения на почтовые ящики. Идея ясна, надеюсь? Кстати, неплохим вариантом может быть SMS на сотовый телефон, но надо уточнять у оператора, поддерживает ли их сеть такую возможность. Например, Белорусский VELCOM пока еще нет.

 

Как видите, на заказ можно отреагировать практически сразу, как только онпоступит. Это повышает доверие клиентов к магазину и положительно сказывается на репутации. Вот, как мне кажется, и все для начала.

 

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

 

Если Вам пришлись по сердцу идеи, изложенные в данной статье, Вы можете оценить работу описываемого здесь Интернет-магазина по адресу http://204040.com Может быть, даже что-нибудь купите :-) Еще раз хочется напомнить – статья ориентирована в первую очередь на то, что бы дать начальную информацию о технологиях, применяемых в Интернет-магазинах. Тот или иной описанный здесь блок может быть реализован по-другому. Исследуйте, экспериментируйте, творите… Успехов Вам в бизнесе!

 

Андрей Кухарчик

https://virtualbrest.ru

admin@virtualbrest.com

Внимание: статья написана в 2002 году, многое переосмыслено !!!