Онлайн магазин с PHP и MySQL – Увод

онлайн магазин

онлайн магазин

Тъй като напоследък се занимавам предимно с няколко онлайн проекта и общо взето само това ми е в главата, реших да напиша една поредица от няколко учебни статии в тази насока.
Мисля да започна с един опростен скрипт за онлайн магазин, като всичко в него ще е с учебна цел, колкото да се схване принципа. Съответно, не препоръчвам по никакъв начин използването му в продукционна среда, в този съвсем опростен вид, в който няма да бъде обърнато внимание  на сигурността.

Разбира се, онлайн магазин може да се изгради и с готова система. Защо тогава изобщо трябва да се занимаваме с тези неща? Причините не са малко. На първо място, за да се научим и да сме наясно как се случват нещата. Ако  използваме готова система, също е добре да знаем принципа и на работа. Ако напишем сами скриптовете си, те ще бъдат специално разработени за нашите нужди. Така ще си облекчим работата в последствие, ще постигнем много по-добра скорост, по-малко излишен код, по-добра гъвкавост, по-добри възможности за дизайн и т.н. И не на последно място, ще знаем точно какво и къде се случва – когато в бъдеще пожелаем да променим някоя дреболия, всичко ще стане много
по-лесно, отколкото с готовата система. Няма нищо лошо в готовите системи, когато чрез тях целим да спестим време, а не знания и умения.

Каква технология ще използваме?

Без да се замисляме, се спираме на най-широко разпространената релационна база данни MySQL и на най-използвания скриптов език – PHP.
Предполага се, че четящите статията ще имат елементарни познания в тази насока, защото няма да изпадам в кой знае какви подробности.
В примерите ще използвам възможно най-малко маркъп(html), за да бъдат по-лесни за разчитане.

Какво ще представлява онлайн магазина, който ще създадем?

За бъде всичко достатъчно прегледно, няма да пишем скрипта с тенденция за универсалност, а ще си изберем нещо конкретно. Тъй като блогът е с компютърна насоченост, нека магазинът бъде за компютърни компоненти.

За целта, продуктите трябва да бъдат организирани в категории и подкатегории, като основните категории няма да съдържат продукти, а само подкатегории, в които вече ще бъдат продуктите. Също така, ще предвидим възможност, един си същи компонент да бъде включен в повече от една категория.

Освен това, добре ще бъде и всеки продукт да бъде привързан към конкретен производител, за да може в бъдеще да се извършват подходящи сортировки.

За простота, няма да използваме система за регистрация на потребители.

Също така, няма да използвам Javascript, Ajax и др., а маркъпът ще бъде
елементарен, тъй като идеята е да се схване server side скриптинга и работата с базата данни.

Дървовидната структура на категориите и продуктите искаме да изглежда така:

1. Основна категория Компоненти за настолни компютри
+1.1. Подкатегория Дънни платки
…..+
……|–– 1. Продукт MB ASRock G41M-VS3
……|–– 2. Продукт MB ASUS P8H61-M
……|–– 3. Продукт MB Biostar P43B-A7
……|–– 4. …………….
+1.2. Подкатегория Процесори
…..+
……|–– 1. Продукт Intel Celeron G440
……|–– 2. Продукт AMD Athlon II x2 250
……|–– 3. Продукт Intel Core i5 650
……|–– 4. …………
+1.3. Подкатегория Видеокарти
……+
……|––- 1……………..
……|––- 2………
……|––- 3……
……..

2. Основна категория Периферни устройства
+2.1. Подкатегория Принтери
……+
……|–– 1. Продукт HP Deskjet 1000
……|–– 2. Продукт Xerox Phaser 3010
……|–– 3. Продукт Samsung ML-1675
……|–– 4. ………
+2.2. Скенери
……+
……|–– 1. HP Scanjet G2710
……|–– 2. …….
……|–– 3. ….
……..

3. Основна категория компоненти за лаптопи
+3.1. Подкатегория Батерии за лаптопи
……+
……|–– 1. Продукт Acer 3UR18650Y-2-QC261
……|–– 2. Продукт Acer BATBL50L6
……|–– 3. Продукт Compaq 337657-001
+3.2. Подкатегория Зарядни за лаптопи
……+
……|–– 1. Продукт ACER PA-1650-02
……|–– 2. Продукт Lenovo 90W, 20V
……|–– 3. Продукт DELL HA65NS1-00
+3.3. Подкатегория Матрици за лаптоп
……+
……|–– 1. Продукт 15″ XGA 6870S-0083H
……|–– 2. Продукт 14.1″ XGA LTN141XB-LO2
……|–– 3. Продукт 12.1″ XGA IAXG02L
……..

4. Основна категория Цели конфигурации
+4.1. Подкатегория  Лаптопи
……+
……|–– 1. Продукт Dell D430
……|–– 2. Продукт IBM T60p
……|–– 3. Продукт Toshiba A200
+4.2. Подкатегория Настолни компютри
……+
……|–– 1. Продукт Конфигирация 1
……|–– 2. Продукт Конфигурация 2
……|–– 3. Продукт ……..

……..

и т.н……..

Надявам се, че става ясно от схемата.

Добре е всяка категория да има заглавие, описание, картинка, да съдържа
информация за броя налични продукти, дата на създаване и т.н. Вариантите са много, в случая гледаме да опростим нещата и няма да създаваме излишни екстри. Освен това, ако категорията е подкатегория на някоя основна, това трябва да бъде означено. По-нататък ще стане ясно как.

Всеки компонент трябва да има задължително заглавие, цена, снимка/снимки ,описание, както и да е известно към коя категория принадлежи. Добре е също да има дата на добавяне, опция за промоция, брой в наличност, марка(производител), продадени бройки, брой разглеждания и т.н. Възможностите са много, ние ще използваме основните, за да бъдат по-прости и бързи нещата.

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

В базата данни ще създадем и една таблица с производители/марки, за да можем да привързваме продуктите към тях.

На практика, базата данни на един работещ онлайн магазин съдържа доста повече таблици, но принципът е един и същ, затова ще се спрем само на основните.

Защо са ни необходими толкова много таблици? Не може ли продуктите да бъдат в една таблица с едно поле, в което да се съдържа цялата информация за продукта?
Може разбира се, но след това няма да могат да се извършват никакви
сортировки, като избор на категория, марка, ценови диапазон и т.н. Няма да могат да се извеждат и дървовидни менюта.

Нека тук да приключим с Увода и да пристъпим към втората част на статията – изработка на онлайн магазин – създаване на базата данни и нейните таблици.

© 2012, Ваньо Контев. Всички права запазени. Копирането на статията е разрешено само с връзка към първоизточника!

Публикувано в web, web програмиране, Линукс, Мрежи и сървъри, Онлайн проекти с етикети , , , , , . Постоянна връзка.

Коментарите са забранени.