php создание интернет магазина с нуля
Делаем простейшее подобие интернет-магазина.
Хотя, конечно, вернее будет назвать это «система заказа товаров на сайте».
Но, глядя на сайты многочисленных российских фирм, которые работают
именно по такому принципу (www.dostavka.ru, www.depo.ru, www.wstore.ru),
мы тоже с пафосом назовем набор простеньких скриптов «ИНТЕРНЕТ-МАГАЗИН».
Что для этого потребуется: любой web-сервер, поддерживающий работу с cgi.
Вполне подойдет apache, eserv, pws. Установленный php версий 3.0.х — 4.0.х,
установленный сервер баз данных mysql (хотя, не имеет значения какой именно —
но этот пример написан исходя из того, что установлен именно mysql).
Платформа не имеет особого значения. Это будет работать и на win32, и на unix.
Что мы хотим получить: чтобы пользователи, путешествуя по нашему сайту,
могли заказать интересующие их товары, и чтобы этот заказ попал к нам в руки.
А дальше уже начинается обычная работа менеджеров.
Определим задачи:
1) Каждый пользователь при заходе на сайт должен получить уникальный идентификатор.
Мы же должны знать кто именно заказывает товары?
2) Для каждого пользователя у нас должна хранится виртуальная «корзина»,
где будет учитываться что заказано и в каком кол-ве.
3) В конце концов, весь заказ отправляется по e-mail менеждеру (с информацией кто, когда,
что и сколько заказал) и самому пользователю сделавшему заказ.
Делаем таблицы для базы данных товаров. Здесь нужна оговорка — идеальный случай,
если у вас каждый товар имеет свой уникальный код.
По всем правилам именно так и должно быть.
У вас не так? Сделайте поле auto_increment — сильно облегчите жизнь.
Вообщем, будем счиатать что с базой товаров у Вас все ок.
Для определенности, рассмотрим самый простой случай — у вас всего одна таблица с
примерно такой структурой:
Но никакой разницы принципиальной нет, конечно же.
1) Делаем файл, в котором у нас каждому пользователю присваивается идентификатор:
2) Делаем таблицу для хранения «корзины» заказов:
Поле activated пригодится для проверки когда была добавлена запись в таблицу
и удаления, если, к примеру, это произошло больше недели назад.
2.1) Делаем файл который добавляет в эту нашу таблицу информацию:
2.2) С учетом этого, теперь наш файл который выводит информацию
из базы данных выглядит примерно так:
2.3) Делаем файл basket.php3 — он у нас ответственный за добавление записей
в корзину и просмотр этой корзины:
3) Теперь осталось сформировать текст письма:
4) … и отправить письма (клиенту и менеджеру)
Да, необходимый комментарий. Я на первой странице своего сайта
указывал что это просто СОВЕТЫ, а никак не готовые решения.
И что необходимо почитать кое-что еще прежде чем браться за написание.
В данном случае, я намекаю на статью «приемы безопасного программирования на php».
Вот посмотрите листинг следующего файла и прочитайте то,
о чем я говорю — сразу станет ясно где дыра…
Ну что? Разумеется, опасность в том, что этому скрипту можно подсунуть
ЛЮБЫЕ данные и он их отправит спокойно..
Выход: не пересылать с предыдущей страницы содержимое заказа,
а формировать его непосредственно в этом скрипте.
Вообще, надо стараться таскать за собой как можно меньше данных.
Также, НИКОГДА не повредит проверка того, с какой страницы пришел запрос.
5) Все. Мы получили все что хотели. Теперь осталось только сделать функцию
которая будет чистить таблицу shop_tmp от старых заказов. Но это уже сами.
6) Перед всеми операциями с базой данных вызывается файл
для соединения с базой данных такого вида:
ps. Еще раз повторяю — все что здесь написано я проверил —
ЭТО работает. Если у вас не так — вы просто что-то неправильно сделали…
pps. По просьбам трудящихся, дописан пункт 4.
И немного поправлен пункт три..
PHP практика: «Создание интернет-магазина»
Практический курс веб-программирования с использованием PHP.
На данном этапе я предполагаю, что Вы имеете некоторые знания html и завершили курс «PHP теория: «Основные инструменты и подходы».
Для того, чтоб справиться с этой задачей относительно быстро и качественно, в первых двух занятиях мы познакомимся ближе с шаблоном проектирования MVC и построим собственный каркас приложения. Его можно успешно использовать не только в текущем проекте, но и в других.
Следующие 6 уроков отведены под создание интернет-магазина с базовым наборов функций: каталог товаров, корзина, кабинет пользователя, панель администратора и т.д.
P.S. Хочу обратить Ваше внимание на то, что, несмотря на небольшую общую продолжительность практики, курс является достаточно сложным и требует большого количество времени на прохождение. В уроках я практически не пишу код, а объясняю заранее написанный.
Уроки
Урок 1: Реализация MVC #1
Урок 2: Реализация MVC #2
Второе занятие по созданию MVC каркаса сайта. Мы модифицируем компонент Router для работы с «красивыми» URL адресами страниц, реализуем модель и вид.
Урок 3: Создание интернет-магазина #1
В этом занятии начинается работа над первым более-менее серьезным сайтом. В уроке мы рассмотрим структуру реализуемого проекта, начнем работать над главной страницей сайта, страницами каталога, категории, товара.
Урок 4: Создание интернет-магазина #2
В уроке мы добавим на сайт постраничную навигацию по товарам, регистрацию пользователей, научимся использовать автоматическую загрузку классов.
Урок 5: Создание интернет-магазина #3
Относительно короткое и несложное занятие отведено для работы над личным кабинетом пользователя, механизмом авторизации и редактированием личных данных.
Урок 6: Создание интернет-магазина #4
В этом уроке мы добавим на сайт форму обратной связи, список товаров в корзине, рассмотрим что такое AJAX и как делается экспорт-импорт базы данных при помощи phpmyadmin.
Урок 7: Создание интернет-магазина #5
На этот раз работаем над разделом «Оформить заказ». Также в занятии показано что такое блок-схемы и как использовать формат json для хранения данных в БД.
Урок 8: Создание интернет-магазина #6
Финальное и одно из самых продолжительных занятий в практической части. В нем мы будем работать над панелью администратора, также Вы увидите как можно применять на своих сайтах cycle2 слайдер, как реализуется загрузка изображений на сервер.
Советы для тех, кто заканчивает или закончил курс PHP Start:
Telegram канал о PHP
Прокачивайте знания в программировании получая информацию в нашем канале
PHP Center
Новости курса PHP Start
Периодически я обновляю материалы сайта. Подпишитесь и будьте в курсе последних новостей.
Преподаватель
Виктор Зинченко
Профессионально занимаюсь веб-разработкой 5 лет. Имею опыт в проектировании и программировании сложных систем, рефакторинге, администрировании серверов, веб-безопасности.
Занимался созданием онлайн-магазинов, медиа ресурсов, порталов промо-акций, социальных сетей и др.
В 2013 году получил сертификат по знанию PHP от компании Zend (создателей языка).
Создание PHP+MySQL сайта: от простого к сложному — шаг первый
Для создания перспективного, расширяемого и эффективного сайта любой сложности следует начинать с простого. Это процесс нелёгкий, требует определённых базовых знаний PHP и MySQL, но если его рассмотреть по пунктам — то можно составить своего рода «рабочий план», который пригодится при создании новых сайтов. Подготовим «ядро» и базу для проекта. Вначале это будет обычный сайт визитка, но потом, добавляя функционал, его можна превратить во что угодно. Итак, приступим.
1. Подготовка базы данных. Создаём первую таблицу в БД MySQL
Создаём новую базу данных, например «mysite». Лично я привык работать с кодировкой UTF-8, по-этому сразу оговорюсь: проследите, чтобы все текстовые файлы сайта, сама база, таблицы и поля таблиц были в одной кодировке.
В новой базе делаем таблицу. Назовём её «pages». В этой таблице будут храниться статические страницы будущего сайта и информация о них. Таблица должна содержать следующие поля:
Сразу после создания таблицы вставляем в неё значения для главной страницы сайта. В поле «page_alias» для главной страницы предлагаю вставить значение «home». Метатеги — соответственно тематике всего сайта. Таким же образом можно посоздавать другие страницы, например «О компании» с алиасом «about» и своими метатегами, или «Контакты» с алиасом «contacts» и т.д.
2. Создаём файл конфигурации сайта
function close() <
mysql_close($this->link);
>
Этот файл пока содержит только простой класс подключения к базе данных, но в дальнейшем в него можно добавлять разные полезные функции, которые будут доступны из любого места в коде сайта. Не забудьте изменить логин и пароль к Вашей базе.
Если Вы работаете в среде Windows, я могу порекоммендовать использовать редактор Notepad++. В этом редакторе есть нумерация строк, и он легко переводит текст из одной кодировки в другую. ВНИМАНИЕ! Если Вы работаете в кодировке UTF-8 — конвертируйте файлы в UTF-8 without BOM — это поможет избежать проблем в будущем.
3. Создаём index.php — главный контроллер сайта
Файл конфигурации создан. Теперь в корневой папке сайта создаём index.php — это и будет основной скрипт сайта, своего рода «главный контроллер». Содержание файла index.php:
// ГЛАВНЫЙ КОНТРОЛЛЕР
switch ($_GET[option]) <
case «page»:
include($_SERVER[DOCUMENT_ROOT].»/com/page.php»);
break;
default:
include($_SERVER[DOCUMENT_ROOT].»/com/home.php»);
break;
>
include ($_SERVER[DOCUMENT_ROOT].»/template.php»);
$db->close();
4. Создаём компонент вывода обычной страницы
Создаём в папке «com» файл «page.php». Содержимое файла следущее:
5. Создаём компонент вывода главной страницы
Главная страница у нас в базе данных хранится под псевдонимом «home», и пока по своей структуре не отличается от обычных страниц сайта — это просто статья. Тем не менее создадим для неё отдельный компонент — на перспективу, так сказать.
Содержимое компонента «home.php» в папке «com» почти совпадает с содержимым компонента обычной страницы, за исключением строки запроса к базе и названия компонента. Строка запроса теперь выглядит так:
$query = «SELECT * FROM wx_pages WHERE page_alias=’home’ LIMIT 1»;
6. Создаём шаблон дизайна всего сайта
В корневой папке также должны быть папки «css» и «images» для элементов дизайна. В файле /css/style.css — можно настроить стили по своему усмотрению.
RewriteEngine On
RewriteBase /
Пишем интернет магазин на php | php скрипт интернет магазина
Здравствуй уважаемый читатель блога LifeExample, в связи с моим не высоким опытом в современных web технологиях, и великим желанием его наверстать, предлагаю тебе дорогой читатель понаблюдать за процессом моего обучения. С публикацией данной статье о том как собственноручно написать интернет магазин, я начинаю цикл статей уроков, каждый из которых не только расскажет о конкретном модуле и скрипте интернет магазина, но и познакомит нас с новыми технологиями веб программирования.
Прочтение талмуда учебников и чужих примеров скриптов, занятие полезное, но как показывает практика малоэффективное. Как правило, после прочтения литературы, закрепляется меньше знаний, нежели после изучения материала методом проб и ошибок в процессе программирования собственноручно. Именно поэтому процесс моего и, наверное, твоего читатель, обучения будет состоять из двух частей.
Забегая вперед скажу, что у меня получилось реализовать задуманное, и как результат хочу представить вашему вниманию проект Moguta.CMS, который развился из цикла моих уроков.
В первой части мы поставим себе импровизированную, но востребованную задачу (написать php скрипт интернет магазина), и выделим некоторый ряд подзадач к ней.
Вторая часть обучения будет заключаться в анализировании чужих вариантов решения поставленной задачи и выведении собственных гипотез. В эту часть также входит сам процесс программирования, в ходе которого я буду выкладывать на блоге результаты выполнения работы т.е. все скрипты интернет магазина, для общественной критики.
Уже написанные уроки с готовыми php скриптами интернет магазина:
Лирическое отступление. (Ленивым можно не читать)
Раньше люди ходили на заводы работали на государство, приносили домой деньги и все были довольны, пока в тяжелые годы после перестройки не произошло разделение рабочего социального слоя на «Коммерсантов» и «Работяг».
КОММЕРСАНТ (от франц. commercant) — лицо, занимающееся частной торговлей, коммерцией, осуществляющее торговое предпринимательство.
В результате такого разделения простые люди стали работать на дядю коммерсанта, или как принято теперь на Бизнесмена. Многие хотели также открыть собственное дело и работать на себя, но далеко не у всех были возможности. В настоящий момент времени желание открыть свое дело, наконец пересеклось с возможностью и любой жизненный обыватель может за один день получить статус бизнесмена. Возможно, вы уже догадались, что говорю я о бизнесе в интернете, а именно об интернет магазине.
Постановка задачи:
Необходимо, написать платформу для валидного интернет магазина отвечающего запросам потребителя.
Платформа должна включать в себя:
Я считаю, что при выполнении поставленных подзадач, можно будет ознакомиться с престижными технологиями нашего времени.
Технологии, которые должны быть разобраны в результате выполнения задачи:
Готовым решением поставленной задачи будет являться, некая пародия на cms систему, отвечающая требованиям простенького интернет магазина. Все разработанные php скрипты интернет магазина будут выложенны в общий доступ.
Части статей я буду публиковать по мере изучения материала, надеюсь тебе читатель будет интересно писать интернет магазин на PHP, собственными силами.
Скачать скрипт интернет магазина можно будет частями, по мере публикации уроков.
Интернет магазин с нуля. Часть 1: Начало
В первую очередь эта статья предназначена тем, кто планирует или только рассматривает вариант запуска своего бизнеса.
Оглядываясь на 15 летний опыт работы в IT c бизнес процессами, решил, написать данный мануал. Это будет серия статей, так как материал выходит объемистый.
Статья имеет целью предостеречь начинающих бизнесменов и, возможно, будет полезна тем, кто уже давно трудится на ниве интернет торговли, так как предлагаемая модель легко масштабируется с небольшими изменениями и поправками на объем товарооборота.
Открыт для конструктивной критики и буду рад оказать помощь, если она вам потребуется.
Статья содержит названия некоторых продуктов и компаний, ссылки я не даю так как это может быть воспринято как реклама. Всё, продукты, что я указываю, это опыт работы и не является рекламой.
Буду рад если вы поделитесь своими наработками с теми или иными сервисами.
Я не буду касаться того, какой товар вам следует продавать или какие услуги стоит оказывать. Этот выбор за вами. Мы возьмем за аксиому, что товар уже выбран и профит (начальный) просчитан.
Выбор CMS для интернет магазина
Дам несколько советов по выбору движка для магазина. Мне лично нравится PrestaShop, но он сложноват для начинающих, и у него есть большой недостаток, нет нормальной связки с 1С за, подчеркиваю, приемлемые деньги.
Существует мошеннический модуль 1c-prestashop (у них несколько сайтов), остерегайтесь этих ребят, читайте отзывы.
Рабочие решения стоят неподъемно дорого для стартующего бизнеса. Поэтому обязательно выбирайте CMS для своего магазина с рабочей связкой с 1С или другими учетными системами. Перед запуском, обязательно протестируйте выгрузку и загрузку данных.
Самая распространённая ERP у нас 1С, поэтому я строю эту статью на работу с ней, но, в принципе, всё актуально и для других систем.
Помимо функционала при выборе CMS обратите внимание на наличие адаптивного дизайна под мобильные платформы.
Итак, начнем с необходимого и примерного расчета покупки\владения
CMS: цена зависит от вашего выбора.
Хостинг: даже для начального уровня лучше использовать VDS, то есть свой сервер, в одной из частей я расскажу пошагово, как настроить, здесь или в своём блоге (в сети куча статей с тем, как настроить свой сервер, и не уверен, что на хабре нужна ещё одна, но на своем блоге будет не лишняя).
На сервере у нас будет настроен веб сервер и IP АТС на базе Asterisk (для безопасности лучше разделить на два сервера), так как без телефонии и своего микро колцентра нам не обойтись. Мы пропишем прохождение звонка клиента, сделаем приветствие и настроим IVR (голосовое меню).
Стоимость VDS под начальные нужды варьируется от 1000 до 1500 рублей в месяц.
Телефония: телефонный номер вашего города можно дёшево купить на zadarma цена варьируется от 120р до 1000р месяц в зависимости от региона, так же стоит завести и Московский номер, так как покупателям из других городов удобнее звонить в Москву. Будем исходить из 240р в месяц за два номера.
Номер нам нужен для входящей связи, для исходящей, на начальном уровне, дешевле всего использовать транк от Мегафона. Учтите, что подавляющее большинство покупателей указывают при покупке именно свой сотовый номер, из этого мы должны исходить при выборе оператора для исходящей связи. У Мегафона на Мультифоне это 1.5р минута на любой номер страны. Подробнее смотрите на профильном сайте Мультифона Кстати на Мегафон, также можно завести городской номер, стоимость 150р. месяц. Остальные операторы, к сожалению, не предоставляют такую возможность для начального уровня, если я не прав, поправьте в комментариях.
Для работы с ним вам нужно купить симкарту с любым тарифом (лучше без абонентской платы), активировать и настроить услугу Мультифон, после чего подключить транк к своей АТС. Подробнее техническую сторону мы рассмотрим ниже.
СМС: Любой уважающий себя магазин ведет оповещение своих клиентов о стадиях заказа по e-mal, СМС и телефону.
СМС оповещение у нас будет вестись из CMS магазина, при заказе, а также из 1С при дальнейших изменениях заказа (заказ оформлен, оплата получена, передан в транспортную компанию (отправлен), прибыл в место вручения и т.д.) статусы заказа, а также скрипты оповещения мы также подробно рассмотрим.
Email: проще всего использовать одного из бесплатных провайдеров почты: Yandex или Google. Следует привязать свой домен к одному из них и создать необходимое количество ящиков. Это бесплатно. Подробная инструкция есть на их сайтах.
Расчет стоимости доставки
Одна из сложностей в интернет торговле, это правильно рассчитать полную стоимость доставки исходя из заказа клиента, в стоимость входят: страховка на купленный товар; стоимость доставки от самой транспортной компании или, что чаще Почты России (рассчитывается исходя из веса и размеров посылки, а также адреса доставки); стоимость упаковочных материалов (картон, пузырьковая пленка и другие); стоимость работы по упаковке (человеко-часы затраченные на упаковку); доставка посылок до терминала транспортной компании или отделения почты.
Всю эту стоимость мы возлагаем на покупателя напрямую, то есть он видит стоимость доставки при заказе или косвенно закладываем в цену товара полностью (бесплатная доставка) или частично.
Каждую единицу товара мы должны измерить и взвесить. Иначе рассчитать стоимость доставки нельзя.
При выборе смотрим на наличие модуля для нашей CMS и на тариф.
edost
Яндекс.Доставка
CheckOut
Delivia
Apiship
ERP или учетная система
Я исхожу из того, что мы используем 1С, нам подойдет «Управление торговлей». Стоимость 17400 руб., но покупать её или взять где-то бесплатно, это на вашей совести), я лично за покупку, так спокойнее. Есть ещё вариант поинтереснее: «Управление торговлей и взаимоотношениями с клиентами (CRM). 2.0» от Рарус, цена: 23 600 руб. Из плюсов: интеграция с телефонией и простой способ построения бизнес процессов, но нужен он лично вам на начальном этапе или нет, решайте сами.
Работа с Почтой России
Большая часть заказов отправляется именно через эту компанию, и лучше заключить договор и подключить «Партионную почту», это отдельная тема и хлебнуть горя при работе с этой шарашкой компанией вам придется. Я отдельно опишу, пошагово, свой опыт работы и постараюсь предостеречь от ошибок и возможных осложнений.
Для онлайн общения с клиентами удобно использовать чат, доступных сервисов сейчас немало, мне нравится jivosite и за него не обязательно платить. Бесплатных функций достаточно.
Их сейчас развелось множество, перепробовал почти все, пока остановился на moneta
В любом случае, лучше работать с несколькими агрегаторами, так как сбои бывают, и в этом случае нужно иметь возможность, оперативно переключится на резервного. Да и распределять разные оплаты (у одного меньше комиссия для оплаты через карту, у другого через Webmoney и т.д.) никто не запрещает. И это несмотря на то, что каждый будет заманивать вас меньшим процентом при условии единоличного присутствия на вашей площадке. Устойчивость к сбоям в данном случае дороже.
Если вы планируете отправлять товары заграницу (а почему нет), то лучше подключить PayPal.
Да и чуть не забыл…
На начальном этапе конечно ИП и УСН как налогообложение. Возможно и ООО завести, но, тут сложнее с бухгалтерией и оформлением. Хотя если вы стартуете бизнес с коллегой, для нормального дележа прибыли лучше зарегистрировать ООО. Чтобы не было потом проблем.
Без юридической регистрации вам закрыт путь в системы онлайн оплаты (я имею в виду нормальные) и невозможность заключения договора с компаниями. И естественно нарушение закона «О подземной коммерции» никто не отменял.
Всего этого инструментария нам достаточно для старта. Хочу предостеречь от подключения всяких сервисов, типа перезвона за пять секунд, слежки за пользователями и доставания их в соц сетях, жесткого спама с призывом вернутся и сделать заказ и т.д.
Чаще всего это раздражает и не работает, но при этом стоит немало. Лучше не распылять свои ресурсы и вложить их в качественный запуск, а нужны вам эти «мега сервисы» или нет, вы решите позднее в процессе вдумчивого их изучения и на основе полученного опыта работы.
Далее мы с вами займемся построением бизнес модели и детального расчета добавленной стоимости, то есть нашими затратами. После подробного описания процесса, приступим к реализации проекта. Рассмотрим IT составляющую (даже если вы не намерены админить свой VDS вы должны понимать как это выглядит и сколько следует платить админу). Коммерцию, маркетинг, рекламу, ведение ТМЦ (учет товара и других ценностей), кассовую дисциплину (работу с финансовыми инструментами), работу с транспортными компаниями (в том числе самовывоз, курьерскую доставку в своём городе) и т.д.