Crearea Si Administrarea Unui Magazin de E Commerce

1.Introducere

Pentru un programator web junior sau web-developer junior, urmărirea pașilor de programare a unui magazin virtual reprezintă în aceeasi măsură o provocare și un exercițiu foarte bun. Proiectul este unul cu un grad de complexitate ridicat datorită utilizării de script php corelat cu mysql sau postgres și în același timp sunt înglobate tehnologii web, cum ar fi JavaScript sau CSS3.

Comerțul electronic

În ultimele două decenii dezvoltarea fără precedent a tehnologiilor informaționale determinate de necesitatea stocării și a transmiterii rapide a informațiilor cu costuri cât mai mici, a revoluționat comerțul global, redefinind principiile clasice ale marketingului. În prezent noțiunea de “comerț electronic” a devenit șinonimă cu creșterea profitului.

Conform Organizației Economice de Cooperare și Dezvoltare (OEDC), comerțul electronic reprezintă “desfășurarea unei afaceri prin intermediul rețelei Internet, vânzarea de bunuri și servicii având loc on-line sau off-line”.

“Comerțul electronic constă în derularea unei afaceri, ca activitate generatoare de valoare, având ca suport rețeaua Internet și utilizarea unor pachete de programe software specifice.”

Într-o accepțiune “tradițională”, comerțul electronic presupune “utilizarea în rețele cu valoare adăugată a unor aplicații de tipul transferului electronic de documente (EDI), a comunicațiilor fax, a codurilor de bare, a transferului de fișiere și a poștei electronice”.

Dezvoltarea tot mai accentuată a interconectivității calculatoarelor în rețeaua Internet a avut ca rezultat direct utilizarea acestei rețele de către companii în cadrul unui nou tip de comerț și anume comerțul electronic care apelează pe lângă vechile servicii amintite și la altele noi. O exemplificare a acestor tipuri de servicii este reprezentată de posibilitatea de a face cumpărături prin rețea, consultând atât cataloagele electronice online, cât și cataloagele offline, urmând ca plata să se efectueze fie cu ajutorul cărților de credit, fie la livrare sau prin intermediul diverselor companii de procesare a plăților online.

Comerțul electronic are și alte definiții pe langa cele enumerate mai sus. Acesta reprezintă “relațiile de afaceri care se derulează prin rețea între furnizori și clienți, ca o alternativă la variantele de comunicații “tradiționale” prin fax, linii de comunicații dedicate sau EDI pe rețele cu valoare adăugată. O altă formă a comerțului Internet implică transferul de documente, de la contracte sau comenzi pro forma, până la imagini sau înregistrări vocale.”

“Comerțul electronic poate fi considerat un schimb electronic de informații între o afacere și clienții săi. Aceasta se poate face prin fax, telefon, voice-mail, email, extranet sau Internet, pentru a enumera doar câteva dintre mijloace.”

Parte a Electronic Business (E-Business), comerțul electronic a fost proiectat în mod special pentru a realiza schimbul de informații între clienți și furnizori.

În era informațională, cheia competitivității întreprinderilor o constituie comerțul electronic, acesta asigurând:

accesul la diferite segmente de piață sau la alți potențiali clienți;

crește viteza cu care afacerile se derulează;

oferă o mai mare flexibilitate în ceea ce priveste politicile comerciale;

asigură o reducere a costurilor logistice;

simplifică diferite proceduri existente.

Comerțul electronic se regaseste sub o multitudine de forme, influențând profund activitatea de afaceri. Aplicațiile potențiale pe care acesta le vizează:

diferite produse și servicii precum abonamente la diferite reviste online, achizitionarea de cărti;

acces facil la informații detaliate despre produse sau servicii: manuale de utilizare, cataloage online;

eficientizarea mediului de afaceri prin folosirea email-ului și facilitarea accesului la bazele de date;

facilitarea diferitelor tranzacții financiare cum ar fi: telebanking și digicash.

Prin eliminarea barierelor geografice dintre furnizori și clienți, comerțul electronic oferă posibilitatea comercializării de produse în întreaga lume sporind astfel numărul potențialilor clienți.

În ultimii ani am putut observa o dezvoltare continuă a Internetului, dezvoltare ce a permis oamenilor de afaceri să pătrundă pe noi piețe, indiferent de dimensiunea companiei sau de localizarea acesteia. Astfel, intreprinderile mici și mijlocii pot concura cu companiile mari fără un efort financiar comparativ. Internetul este un mediu pe care multe dintre firme îl considera prielnic spre a le oferi clienților acces la serviciile lor, urmând ca ulterior să escaladeze de la obiectivele de marketing la vânzarea directă.

În forma lui șimplă, comerțul electronic poate fi abordat prin cateva condiții minime ce pot fi

îndeplinite făra mare dificultate și cu costuri mult reduse: prezența printr-o pagină web, furnizarea unei liste de servicii oferite și promovarea minimă a companiei.

Pe de altă parte, într-o formă mai complexă comerțul electronic poate necesita eforturi financiare mai ridicate. În funcție de domeniul de activitate și de obiectivele de business, este nevoie de personalizarea printr-un sistem propriu de comandă, promovarea firmei prin diferite canale și optimizarea continua a acestora.

Comparativ cu comertul offline, costurile de investiție pot fi mai mici și pot fi acoperite prin reducerea altor chetuieli cum ar fi: costurile cu personalul, costuri de comunicare, reducerea duratei de vânzare a unui serviciu/produs, costuri de transport și distributie.

Evoluția comerțului electronic are un impact major și asupra economiei, facilitând deschiderea de noi companii, cât și extinderea și dezvoltarea celor existente. De asemenea, acesta aduce schimbări și la nivelul pieței forței de muncă și asupra nivelului de ocupare a acesteia.

Tipul de tranzacții în mediul online se împarte în 2 direcții: tranzacțiile Business-to-Business (B2B) și tranzacțiile Business-to-Consumer (B2C):

Business-to-Consumer (B2C) – definește tranzacția dintre comerciant și consumatorul final, fiind considerat comerț electronic cu amănuntul;

Business-to-Business (B2B) – cuprinde acele tranzacții efectuate între două sau mai multe companii/persoane juridice. Acest tip de tranzacții se bazează, de regulă, pe sisteme extranet adică partenerii de afacerii acționează pe Internet prin utilizarea de nume și parole pentru paginile Web proprii.

O noua opțiune în cadrul comerțului electronic este tranzacția Business-to-Employee (B2E) care se referă la tranzacțiile din cadrul unei companii, destinate propriiilor anagajati și efectuate prin sistemul intranet propriu.

La nivel mondial, comertul online cunoaste o creștere accelerată pe măsură ce tot mai multe companii și consumatori au facilitat accesul la internet, acesta depășind deja pragul de 1000 miliarde de dolari.

Un lider incontestabil la acest capitol în ultimii ani, Statele Unite a cunoscut o dezvoltare rapidă datorită intrepriderilor inovative, situandu-se mult peste Europa atât în domeniul informaticii, cât și în utilizarea comerțului online. Un studiu recent arată însă că la sfârșitul anului în curs, regiunea Asia-Pacific va depăși pentru prima dată America, devenind cea mai mare piata regională de comerț electronic. Începând din 2016, China va reusi de una singura să depășească Statele Unite.

Și în Europa de Vest se observă o creștere continuă a comerțului online, împreuna cu America de Nord fiind singurele două regiuni unde rata de penetrare a acestui tip de comerț depășește jumătatea populatiei. În restul Europei, procentul de penetrare reprezinta numai 17% din totalul populației.

Creșterea comerțului online în următorii ani va fi determinată, în mare parte, datorită extinderii rapide a bazei de utilizatori de servicii online și mobile pe piețele emergente. Încrederea crescută în acest tip de comert, îmbunătățirea continuă a variantelor de livrare și plată cât și extinderea companiilor puternice la nivel internațional sunt factori determinanți ce duc la o dezvoltare accelerată de la an la an.

Beneficiile e-Commerce-ului

e-Commerce-ul aduce benefiicii din mai multe puncte de vedere:

este convenabil – site-urile fiind active 24/7;

costuri mai mici determinate de eliminarea interacțiunii dintre cumpărător și intermediarii tranzacției;

costuri scăzute de procesare a tranzacțiilor, metoda de plată electronică fiind mai puțin costisitoare decât modul de plată prin monetar;

procesul de vânzare electronic este mult mai rapid față de cel tradițional;

procesarea automată duce la diminuarea erorilor comparativ cu procesul de vânzare tradițional;

spațiul nelimitat – siturile de e-commerce nu sunt limitate la un anumit număr de produse, neavând constrângeri cu privire la spațiul de prezentare a bunurilor și/sau serviciilor;

”locația” magazinului poate fi accesată din orice colț al lumii unde exista un dispozitiv cu conexiune la Internet, ceea ce duce la creșterea numărului de clienți potențiali;

studierea preferințelor clienților virtuali prin intermediul diverselor instrumente de analiză și modelarea afacerii în funcție de cerințele din piață.

Prin urmare atât comerțul electronic, cât și comercializarea de servicii fac parte din e-business.

Avantajele e-Commerce-ului:

Promovarea unui produs – Oferirea de informații detaliate despre produs, fișe de specificații, review-uri, comparații live cu alte produse similare, etc;

Acoperirea națională/internațională – Spre deosebire de un magazin fizic, unde plaja de clienți este locală, pentru un magazin online potențialul de clienți este mult scalat, singura limitare fiind accesul la Internet al acestora. Produsele pot fi livrate atât național, cât și internațional, efortul de vânzare per client fiind mult mai mic;

Costurile reduse de vânzare/cumpărare – eliminarea/reducerea costurilor logistice, costuri cu personalul, reducerea semnificativă a costurilor de întreținere (chirie, utilități, etc), diminuarea necesității de a avea stoc propriu;

Timpul de acces la produs și gama de produse – Accesul la informațiile despre produse este mult diminuat (avantaj pentru servicii cu ciclu mic de viață), gama de produse este practic infinită;

Asistenta și consultanta clienți- fiecare client dispune practic de propriul consultant, poate beneficia de asistență la orice ora din zi. Astfel, gradul de satisfacție a acestora poate crește mai ușor;

Sigla și imaginea corporației pot fi mai ușor modelate – acestea sunt importante mai ales când clienții folosesc tehnologii avansate (B2B);

Adaptarea la shimbări – poate fi mai rapid și mai facil efectuată atunci când firma este deja la curent și utilizează cele mai noi tehnologii ale comerțului electronic;

Monitorizarea atitudinii clienților – firma poate obține informații prețioase despre proiectarea noilor produse sau îmbunătățirea celor actuale. Astfel, dezvoltarea acestora poate ține cont de cerințele pieței (la nivel de design, funcționalități);

Domenii noi de business – vânzarea informațiilor pentru experții în finanțe sau pentru alte domenii.

Dezavantajele e-Commerce-ului:

Asistența – prezentarea incompletă a specificațiilor produsului;

Credibilitatea și fiabilitatea – acuratețea datelor, actualizarea și dinamica acestora duc la imposibilitatea creării unei analize relevante pe termen lung

Tipuri de afaceri online

Magazin online (e-shop) – conține produse sau servicii însoțite de descrieri detaliate, poze și alte informații utile. Pentru acesta se folosește un sistem de gestiune responsabil de manipularea și stocarea datelor organizate în baze de date. De asemenea, asigură accesul clienților la aceste informații esențiale: prețuri, stocuri etc. În funcție de nivelul de dezvoltare a magazinului online, acesta poate pune la dispoziție achiziționarea produselor printr-un sistem interactiv de tip coș, însoțit de diferite metode de livrare și plată. De asemenea, magazinul poate include diferite funcții avansate precum plata online, calculul transportului prin integrarea sistemul de calcul al curierului, eliberarea automată a facturilor, sisteme integrate de promovare și altele.

Magazin de tip marketplace – este reprezentat printr-o platformă comună a mai multor magazine online. De regulă, are aceleași funcții ca un e-shop, însă reunește mai multe cataloage de produse și ulterior, în urma unei comenzi, redirecționează comanda spre magazinul reprezentant.

Sisteme publice de licitatii – autoritățile și companii pot organiza licitații publice direct pe platforma. În acest mod, pentru diferite achiziții de servicii și bunuri, se publică specificațiile dorite urmând ca diferite companii interesate să își încarce propria ofertă pentru acestea. Sistemul reduce timpul unei licitatii și asigură accesul mai multor companii, astfel crescând concurența și reducând prețul.

Magazine de tip B2B (Business-to-Business) – permit distribuitorilor de produse să vizualizeze în timp real catalogul de produse al furnizorilor, să plaseze comenzi, să vizualizeze isotoricul comenzilor proprii, facturi etc. De asemenea, furnizorii pot personaliza catalogul de produse astfel incat fiecare distribuitor să vizualizeze informațiile personalizate precum prețuri,stocuri, promoții.

Bazar online – compus din produsele/serviciile vândute de fiecare membru ce face parte din această platformă. În schimbul unei taxe per produs vândut, utilizatorii pot comercializa produse proprii fără a necesita deschiderea unei companii în aceast sens. De asemenea, aceste platforme pot fi multidezvoltate astfel încat să permita și diferite tipuri de anunturi: cerere, ofertă, inchiriere.

Furnizori de servicii cu valoare adăugată pentru canalele de comerț electronic (value chain service provider) – ,livrează servicii specifice dintr-o anumită arie de interes pentru client, plata fiind efectuată în funcție de tarifele stabilitile între furnizor și client.

Platforme de colaborare (collaborative environments) – intrument ce vine in ajutorul companiilor ce doresc sa colaboreze în cadrul a diverse proiecte. Acest instrument este compus din diverse aplicații software. Cei ce dețin astfel de platforme obțin venitui în urma abonamentelor încasate fie de la fiecare membru, fie contravaloarea utilizarii intrumentelor software puse la dispoziția utilizatorilor.

Brokerajul de informații – se axează pe crearea de baze de date cu potențiali clienti, în funcție de domeniul de activitate, acordarea de consultanță, intermedierea de vânzări de afaceri online.

2.Rolul și importanța Internetului și a paginilor web

Fenomen de amploare mondială, Internetul cunoaște o evoluție incomparabilă cu cea a altor instrumente media, la dezvoltarea sa continuă participând întreg mapamondul. El se extinde cu o viteza fantastică, tot mai mulți utilizatori se conectează zilnic la Internet avizi de informație. Dacă la începuturile acestui fenomen ajuns acum la scară planetara, lumea nu-și punea probleme în legătură cu modul de utilizare, între timp lucrurile s-au schimbat. După câțiva ani de educație Internet, și o zestre de pagini Web ajunsă la un număr impresionant de câteva zeci de milioane, utilizatorii nu mai caută "pur și simplu" ci doresc ca aceste căutări să aibă o logică, să fie rapide și să se finalizeze cu găsirea documentelor căutate. Fiind o rețea a rețelelor Netul este, de fapt o resursă comună fiecărui utilizator, la formarea și exploatarea căreia participă întreaga lume, singurul numitor comun fiind setea de informație.

În prezent toate domeniile de activitate ale omenirii sunt din ce în ce mai legate de rețeaua mondială. Oricine trebuie să știe să manipuleze resursele rețelei și, chiar mai mult să fie o parte activă a acesteia. World Wide Web-ul a apărut ca o necesitate de a aduce Internetul în casa și la înțelegerea oricui, fiind datorită interfeței grafice prietenoase adeseori identificat cu Internetul.

Site-urile sau paginile Web sunt în continuă dezvoltare, fapt care atrage după sine o evoluție a limbajelor și a editoarelor, însoțită de cea a navigatoarelor.

2.1. Scurt istoric

A localiza în timp momentul creării rețelei Internet este practic imposibil deoarece sunt prea multe sisteme de rețele direct accesibile, fiecare dintre acestea avându-și propria origine și fiecare în parte ajută la definirea scopului și dimensiunii Internetului.

Internetul a fost înainte de toate un sistem gândit și realizat de și pentru comunitatea academică. Internet a luat nastere ca ARPAnet (reteaua Agentiei de cercetari avansate) retea militara proiectata acum 20 de ani in scopul de a supravietui functional in cazul unei conflagratii. La mijlocul anilor 60, cercetatorii incepeau sa experimenteze ideea de retele de calculatoare care erau atit rapide cit și demne de incredere desi bazate pe medii de conexiune obisnuite cum ar fi liniile telefonice. In linii mari era un șistem asemanator celui utilizat in conexiunile telefonice la distante mari prin centrale și intermediari pe care beneficiarii nici nu le observa.Din framintarea cercetatorilor s.a nascut ideea retelelor cu comutare de pachete. Informatiile care circula prin acest tip de retea sunt fragmentate intr.un anumit numar de bucati numite pachete Aceste pachete sunt trimise prin retea la destinatiile dorite unde sunt reasamblate.

Multi ani doar functionarii guvernamentali și cercetatorii au avut acces la aceasta retea care ulterior a devenit Internet. Treptat, dezvoltarea tehnologica și extinderea retelelor locale(LAN) au condus la ideea interconectarii retelelor. Daca la inceput au fost interconectate, prin intermediul unui blackbone (supercalculatoare aflate la distanta), retele locale mici și calculatoare individuale, mai tirziu s.a decis realizarea unor retele medii intermediare. Acest lucru a permis dezvoltarea unor companii și organizatii care creaza și mentin aceste retele. Firme precum IBM, MCI și altele au dezvoltat propriile nuclee backbone rapide asigurind accesul a milioane de utilizatori din toata lumea. In prezent reteaua Internet creste cu o viteza pe care creatorii ei nici nu au visat.o. Noi companii se conecteaza cu o frecventa de necrezut, și multe persoane particulare acceseaza Internet.ul prin intermediul distribuitorilor sau prin servicii familiare. Rata de crestere este imposibil de determinat din cauza modului descentralizat in care este gestionata reteaua, dar citeva estimari informale apreciaza cresterea la peste un milion de noi utilizatori in fiecare luna.

2.2.Prezentare și importanță

Internetul a fost descris ca "o colectie larga de retele" sau ca o "retea de retele". Desi ambele defintii sunt corecte, nici una nu surprinde Internetul in totalitatea sa. Pe langa instrumentul care este aceasta imensa conexiune, Internetul inseamna și mulțimea comunitaților celor ce îl folosesc, fiecare în scopuri diferite :

Comunitatea academică utilizează Internetul ca pe cel mai mare, complet și totodată complex instrument de invatare (educational), deoarece pe Internet se pot găsi cunostiinte ce permit studierea practic a oricărei discipline imaginabile și în plus se poate comunica rapid și eficient cu alte persoane interesate de aceiași disciplină;

Comunitatea stiintifică utilizează Internetul ca pe un instrument de cercetare și colaborare pentru că Internetul oferă acces la cele mai avansate facilități de cercetare din lume;

Comunitatea economică utilizeaza Internetul ca pe un mediu de derulare al afacerilor.

Internetul nu este o organizație monolitică, având o conducere și un grup de control unice: Internetul este o societate de retele de calculatoare interconectate, independente dar care se supun unor protocoale globale.

In concluzie Internetul este o "retea de retele", ceea ce inseamna ca multe retele diferite conduse de mai multe organizatii sunt conectate impreuna pentru a forma Internet. Internetul permite oamenilor sa comunice, sa imparta informatii intre ei, dar cel mai mare avantaj este ca reprezinta un instrument ce ofera acces la cantitati vaste de informatii din intreaga lume.

World Wide Web (WWW sau W3) este o retea de resurse informationale de o extraordinar de mare diversitate in ceea ce priveste continutul. Este un șistem interactiv hipermedia (adica un șistem ce contine și suporta patru categorii importante de tipuri de informatie: text, imagini, sunete și imagini animate) construit pe Internet. Pentru a face aceste resurse disponibile unei audiente cit mai largi, Web.ul se sprijina pe trei mecanisme fundamentale:

O schema uniforma de denumire pentru a localiza resursele in Web;

Protocoale pentru accesarea resurselor astfel denumite in Web;

Hypertextul pentru navigarea comoda de la o resursa la alta. Web;

Web-ul reprezinta totalitatea paginilor care pot fi cautate și accesate printr-un protocol special intitulat HTTP (HiperText Transfer Protocol).

Web-ul este un spatiu virtual de informatie. In Internet gasiti calculatoare – in Web gasiti documente, sunete, imagini, animatii… intr-un cuvint informatie. In Internet, conexiunile sunt cabluri ce leaga calculatoarele – in Web conexiunile sunt legaturile hipertext dintre documente (link-urile).

Web-ul exista datorita programelor care asigura comunicarea intre computerele conectate la Internet. Web-ul nu poate exista independent de Net. Web-ul a facut Internetul accesibil deoarece oamenii sunt interesati de informatie și nu prea vor sa stie de calculatoarele și cablurile din spatele acesteia. WWW-ul este cel mai vizibil instrument Internet, transformindu-l, prin capacitatea sa de a prezenta informatia, in cel mai important instrument al zilelor noastre și intr-o sursa de informatii fara egal.

Pe Web se pot face in esenta patru lucruri și anume:

Primul ar fi șimpla publicare, cam ceea ce fac 99% din oameni, la aceasta ora. Publicatiile electronice apar la confluenta dintre publicatiile pe hirtie și produsele software cu caracteristicile lor de interactivitate.

Al doilea lucru ar fi publicatii complexe, interactive. Se estimeaza ca acest tip de publicatii se va dezvolta spectaculos in urmatorii doi ani. Prin aceste publicatii se pot explora interactiv bazele de date ale unei companii, se pot cauta specificatiile unor anumite produse sau se poate solicita ceva completind niste formulare.

Al treilea lucru este comertul. A face comert este mai greu decit a face publicare complexa deoarece presupune conectarea Web-ului la șistemul de management și la cel de contabilitate.

Cel de-al patrulea lucru este IntraNet-ulsau Web-ul intern. In loc sa scrie citeva versiuni diferite ale aceleiasi aplicatii, una pentru PC, alta pentru Mac și una pentru Unix, proiectantii vor scrie una șingura, independenta de platforma. Companiile mari vor utiliza zeci sau sute de servere Web interne ca mijloc de comunicatie interna.

2.3.Html prezentare

Limbajul pentru hipertexte, in engleza Hipertext Markup Language (HTML), este un limbaj dezvoltat de oamenii de stiinta avand rolul de a partaja documente in comunitatea internationala de stiinta utilizatoare de internet. Nevoia unui limbaj universal de scriere a informatiilor distribuite la nivel global, limbaj inteles in acelasi mod de toate calculatoarele, a dus la folosirea HTML-ului pentru World Wide Web.

HTML poate fi comparat cu tipurile de formatare a textelor folosite de un procesor uzual de texte. Acesta adauga textului ce urmeaza a fi publicat informatii de formatare și permite inglobarea de sunete, imagini etc. Acestea definesc modul de prezentare (afisare) pentru programe ce sunt capabile sa interpreteze aceste informatii. Spre deosebire de procesatoarele de texte uzuale ce folosesc formate particulare, un document HTML contine numai caractere ASCII (text pur), drept urmare acesta poate fi interpretat și afisat de mult mai multe bowsere WEB ce ruleaza pe diferite platforme existente.

Pentru editarea și crearea documentelor de tip HTML se pot folosi atat editoare de texte, cat și editoare specializate HTML care permit crearea asistata vizual. In oricare dintre șituatii, rezultatul va fi tot un document in format pur-text.

Limbajul HTML ofera urmatoarele posibilitati :

publicare de documente cu diferite texte, headere, liste, tabele, fotografii etc

regasirea de informatii online folosind hiperlink-uri, acestea din urma putand fi accesate la un șimplu click

proiectarea de formulare pentru realizarea de tranzactii cu servere remote (la distanta), formulare folosite pentru cautari de informatii sau pentru activitati ce sunt specifice comertului online

introducerea directa in documente a clipruilor video, excel-uri, sunete, diferite aplicatii, etc

Limbajul HTML are urmatoarele caracteristici importante:

Acesta foosteste un tip de marcare descriptiv pentru a indica actiunile ce trebuiesc executate. Aceasta inseamna ca parti ale documentului descris de HTML sunt marcate cu elemente descriptive ce sunt aplicabile opentru orice portiune de date ce corespunde din cadrul documentului( ex <TITLE>, <CHAPTER>).

Limbajul defineste structuri ierarhice de documente și legaturi inter și intra-documente. O legatura este o relatie unara intre 2 elemente din cadrul documentului. Structura documentului este insotita de acest tip de legaturi in elemente

Este guvernat de o descriere de tip formal. HTML foloseste o descriere DTD (Document Type Definition – tipul documentului) ce stabileste caracteristicile formale. DTD descrie elementele individuale ale documentului scirs in limbaj HTML, stabileste șintaxa acestui limbaj, defineste toate atributele ce sunt permise pentru fiecare eleemnt in parte și descrie modelul de date ce este prezent in fiecare element. In legatura cu informatiile referitoare la elemente, DTD ofera definitiile entitatilor externe se ce pot referi in HTML

Atat limbajul in șine cat și toate specificatiile acestuia pot fi citite de calculator, dar și de om. Textul și marcajele pot exista concomitent folosind șiruri de carcatere speciale ce tin loc de delimitare in cadrul documentului.

HTML are la baza un standard la nivel international denumit Standard Generalized Markup Language (SGML), acesta fiind aprobat din anul 1986.

SGML asigura un mod de a reprezenta structura hyper-documentelor și a documentelor. In acelasi timp, este și un mod de a codifica hyper-documentele pentru a fi interschimbate in acelai mod in care unele documente se interschimba in cazul mai multor autori care colaboreaza utilizand diferite platforme aflate la distanta.

SGML este un șistem avansat de descriere a diferite tipuri de documente, utilizat pentru a descrie structura generala a acestora, insa fara a avea rolul de limbaj descriptiv pentru pagina. Pricipala sa preocupare se reflecta asupra a ceea ce contine documentul, nu a aspectului sau.

Asadar, tinand cont de caracteristicile preluate de la SGML, HTML este folosit pentru a descrie documentele structurate. Practic, avand in vedere ca documentele au elemente comune și definind un set de elemente, le poti marca cu etichete corespunzatoare. Etichetele au urmatoarea structura <Numele etichetei> Textul ce este afectat de aceasta </Numele etichetei>, indicand browserului elemente de formatare, structura, hypertext sau altele. Documentele HTML contin doar textul propriu-zis și etichete, sursa acestora putand fi usor vazuta din orice browser.

Marea diferenta intre procesoarele HTML și cele de texte este ca primele nu se preocupa de modul de afisare pe ecran ale elementelor din document, HTML nedescriind modul in care se prezinta documentul ca un intreg. El ofera un suport redus in stabilirea plasamentului sau a felului in care elementele documentului sunt afisate. Aceasta varinata a fost aleasa intentionat de catre proiectantii limbajului, dat fiind faptul ca nu se cunosc posibiltatile pe care platforma pe care va fi afisat documentul le are (la nivel de dimensiune ecran, tipul fontului instalat, etc). Astfel, separand structura documentului de modul in care aceste este afisat ofera o libertate mai mare programului care intelege HTML și afiseaza documentul. Acesta poate sa ia hotarari la nivel de formatare a documentului in functie de ce posibilitati tehnice are platforma respectiva.

Asta fac browserele WEB, pe langa functia de comunicare și cea de aducere de documente de pe Internet. Cand un browser incarca documente HTML, acesta citeste documentul și cauta etichete HTML, ulterior formateaza imaginea și textul, iar apoi le afiseaza pe ecran. De aceea, atunci cand se folosesc browsere diferite, chiar daca documentul HTML este acelasi, el apare putin diferit. Chiar daca posibilitatile de a formata un document ce sunt oferite in acest stadiu de dezvoltare sunt limitate, permitand un control redus in ceea ce priveste forma documentului, avantajul adus de faptul ca documentele pot fi vazute și transferate oriunde pe internet, indiferent de browserul folosit și de platforma, a dus la raspandirea sa destul de rapid.

Fiecare versiune HTML cuprinde elemente precum: text aliniat dreapta sau centrat, aliniere text și imagine, formule matematice, tabele. Extensiile, prezente in ultimul timp in numar din ce in ce mai mare, reprezinta seturi de etichete introduse in general de producatorii de browsere (dar și de alte companii terte) ce ofera posibilitatea autorilor documentelor HTML de a evita cateva din constragerile standard.

Exista doua principale motive pentru care HTML a fost preferat pentru publicatiile pe internet, in profida faptului ca exista mult mai multe tehnologii cu aceste capabilitati. Primul motiv ar fi ca ofera posibilitatea de a formata textul ASCII folosind etichete in acelasi format. Iar al doilea motiv este reprezentat prin șimplitatea limbajului. Rezulta din acestea o buna compresie, suport asigurat pentru legaturi de tip hypertext și nu in ultimul rand, usurinta cu care se pot scrie programe de navigare cu scopul de a vizualiza documente.

2.4.Limbaje de scriptare

Baza comunicarii intre serverele și clientii Web, la nivel de aplicatie este asigurata de protocolul HTTP(HyperText Transfer Protocol). Protocolul HTTP este folosit in special pentru hipertext, dar este protocol generic, putind sustine un șistem distribuit pentru managementul obiectelor de date. O caracteristica importanta a protocolului este independenta de platforma, diferitele calculatoare care comunica prin HTTP putind folosi diverse șisteme de operare și aplicatii hipertext.

Principalele concepte cu care lucreaza protocolul sunt cererea și raspunsul: clientul Web trimite un mesaj(cererea) la un server. Mesajul contine identificatorul resursei dorite, dat sub forma unui URI(Uniform Resource Identifier), metoda de acces folosita, precum și o serie de meta-informatii care pot fi utile serverului. Raspunsul serverului cuprinde codul indicind starea serverului dupa interpretarea cererii, mesajul explicativ pentru codul de stare transmis, meta-informatiile care vor fi procesate de catre client și, eventual, continutul(resursa solicitata).

Common Gateway Interface(CGI) reprezinta un standard de facto pentru interactiunea clientilor Web cu serverele Web, aflandu-se acum la versiunea 1.1. Un program de tip CGI, sau script in denumirea uzuala, este executat pe server in doua moduri: fie este apelat folosind o directiva speciala in cadrul paginii, fie atunci cand se preiau informatiile aflate in campurile unui formular de tip interactiv (sau coordonatele zonei senzitive).

CGI confera interactivitate paginilor Web, documentele HTML avand posibilitatea sa isi modifice continutul dinamic și sa permita modificari de date sofisticate. Programele CGI pot oferi suport și la autentificarea utilizatorilor pe partea de server.

De asemenea, programele CGI au posibilitatea de a fi scrise in orice limbaj. Acestea sunt interpretate de limbele PHP, Perl, Python, TCL sau compilate in cazul limbajelor C și Delphi.

In conceperea unui script CGI trebuie respectate anumite reguli de baza:

programul scrie datele spre a fi transmise navigatorului Web la iesirea standard

programul genereaza anteturi care permit interpretarea coreca a iesirii scriptului de catre serverul WEB

O mare parte din scripturile CGI sunt construite pentru procesarea datelor din formulare. Formularul se defineste in XHTML folosindu-se marcatori specifici pentru afisarea continutului și introducerea datelor catre clienti, iar scriptul invocat și executat de serverul de Web preia continul din formular și il prelucreaza, urmand eventual sa returneze rezultatele catre navigator.

2.4.1. Prezentare PHP

Limbajul PHP (abreviere de la Hypertext Prepocessor), regasit in versiuni mai vechi cu numele PHP/FI (abreviere de la Personal Homepage/Form Interpreter), a fost gandit initial ca o aplcatie CGI șimpla folosita la interpretarea de formulare HTML și procesate de programe scrise in limbaj PERL, shell script și executare pe server. Pentru o interfata CGI era nevoie de permisiune de rulare a programelor pe server, fapt ce conducea la diferite lacune de securitate și in acelasi timp la o disociere a progamului procesator de date de documentul HTML.

PHP este un pachet ce ofera un limbaj accesibil de programare pentru fisierele HTML și in plus ofera suport pentru a manipula baza de date intr-un dialect de tip SQL (MySQL, Oracle, Solid, dBase, Informix, Sybase, ODBC, ect), cat și acces la șistem hipermedia cum ar fi Hyperwave. In acelasi timp, PHP ofera suport petru incarcare de fisiere din computerul clientului(denumit upload, un standard propus de L. Masinter și E. Nebel din compania Xerox) și suport pentru date de tip cookies (un mecanism prin care datele se stocheaza in browserul clientului,t pentru a indetifica utilizatorii).

Aplicatia este oferita gratuit pe WEB, atat pentru platforme Unix cat și pentru platforme Windows și este integrata in serverul Apache.

PHP a fost dezvoltata de Rasmus Lerdorf ca un proiect personal spre sfarsitul anului 1994, urmand sa fie lansat public un an mai tarziu, purtand denumirea de Personal Home Page Tools. Era vazut ca un șimplu analizor folosit pentru a interpreta macrouri incluse in documente de tip HTML, in acelasi timp oferind posibilitatea sa contrizeze accesul la pagini Web sau accesul la o carte de oaspeti( denumita și guestbook). La jumatatea anului 1995, analizorul este rescris și redenumit PHP/FI 2.0, FI fiind o aplicatie dezvoltata tot de Rasmus Lerdorf, avand functie de interpreter a formularelor HTML. In acelasi timp, a fost introdus suport pentru baze de date mSQL, acest lucru asigurand un succes a limbajului PHP, disponibil gratuit pe Internet. Un studiu estimeaza ca cel putin 15000 de șite-uri utilizau PHP/FI la inceputul anului 1997, urmand ca pana la sfarsitul anului numarul sa ajunga la 50000.

Mai tarziu, analizorul PHP este rescris de programatorii Andi Gutmans și Zeev Suraski formand astfel nucleul pentru versiunea 3.0 a acestuia, incluzand și o parte din sursele vechi ale PHP/Fi 2.0. Incepand cu anul 2000 a fost lansata public versiunea 4.0 ce utilizeaza motorul de scriptare Zend și ofera suport atat pentru serverul Apache, cat și pentru alte servere Web. In acelasi timp, versiunea 4.0 ofera și posibilitatea de a accesa documente XML folosind DOM. In prezent, PHP a ajuns la versiunea 5, urmand ca PHP 6 sa se lanseze in viitorul apropiat. Versiunea actuala a adus o orientare obiect mult mai pronuntata su suporta mai multe caracteristici ale acestui tip de programare.

Cateva dintre noutatile aduse de PHP 5 fata de PHP 4:

Imbuntatirea suportului pentru OOP

Introducerea extensiei PHP Data Objects (PDO) – defineste un mod usor și consistent de a accesa diferite baza de date

Include multe imbunatatiri la nivel de performanta

Suport mai bun pentru MSSQL și MySQL, cat și nativ in ceea ce priveste SQLite

Control al erorilor prin tratarea exceptiilor, iterari pentru date

Conform unor statistici recente, peste 20 milioane de șite-uri și peste 1 milion de servere Web au instalat PHP . Pe Web exista multe utilitare și aplicatii create in PHP, toate regasindu-se in PHP Extension and Add-on Repository (PEAR).

O diferenta dintre PHP și alte limbaje de tip CGI scrise in C sau Perl este ca in loc sa scrii un program cu multe linii de comanda ce sunt afisate la final in pagina HTML, se scrie o pagina HTML care are codul inclus cu scopul de a realiza o actiune precisa.

Codul PHP se introduce inte tag-ul de inceput și cel de sfarsit, astfel permitand utilizatorului sa schimbe din modul HTML in cel PHP.

Spre deosebire de limbaje de tip script (ex: Javascript), codul este executat pe serverul Web, nu in browser. Drept urmare, PHP poate avea acces la baza de date, la fisiere și la alte resurse bogate in continut dinamic, resurse ce atrag utlizatorii, care altfel nu sunt accesibile pentru limbajul Javascript.

Atunci cand un script șimilar se afla pe serverul Web, clientul nu primeste decat un rezultatul in urma executiei scriptului, fara posibilitatea de a accesa codul care a generat rezultatul. Serverul Web poate fi configurat sa analizeze (prelucreze) orice fisier HTML ca un fisier PHP, in acest mod neexistand un mod de faca diferenta dintre paginile produse static și cele produse dinamic.

PHP are se aseamana cu alte limbaje, acesta oferind posibilitatea de a scrie scripturi CGI, de a colecta date și de a genera pagini dinamic, cat și trimiterea și primirea de cookies.

Cel mai mare diferentiator și avantaj pe care il are limbajul PHP este faptul ca suporta multe baze de date, in conditiile in care realizarea unei pagini web dinamic folosind o baza de date este foate șimplu. Tipuri de baze de date suportate de PHP:

De asemenea, limbajul PHP ofera suport pentru diferite servicii server utilizand protocoale precum NNTP, POP3, IMAP și HTTP.

Orice program PHP cuprinde 2 linii speciale ce indica serverului ca textul dintre ele este compus din instructiuni PHP. Aceste linii pot fi comparate cu doua coperti ale unei carti.

<?php

instructiuni PHP

?>

In mare, orice program PHP executa operatii elementare ce pot fi impartite in 3 categorii:

extrag date de la utilizator

prelucreaza datele, obtinand acces la baza de date și la datele stocate in fisiere

afiseaza date, permitand utilizatorului sa le vizualizeze

Pentru executarea unui script trebuie mai intai incarcat scriptul intr-un server unde este instalat PHP. Accesul la distanta pentru un server Unix sau Linux se poate face prin intermediul protocoalelor Telnet sau SSH, in cazul in care in prealabil se primeste autorizare de folosire a acestor protocoale de la administatorul de șistem pentru un anumit utilizator. In cazul in care se foloseste un server Microsoft Windows care este șituat in reteaua locala, aceeasi retea in care este și statia de lucru, atunci este posibila alocarea unei partirii de fisiere de catre adimistratorul de retea in acest scop.

Pentru incarcarea scriptului folosind protocolul FTP, adimistratorul de șistem trebuie sa furnizeze utilizatorilor autorizati urmatoarele informatii:

numele serverului gazda

numele de utilizator și parola pentru deschiderea sesiunii de lucru prin intermediul protocolului FTP

catalogul in care se regasesc scripturile PHP

URL-ul care trebuie folosit pentru a obtine acces la scripturile PHP

Dupa ce incarcarea scriptului PHP a fost realizata cu succes acesta este lansat in executie prin deschiderea unui navigator Web(client) cu adresa URL asociata scriptului PHP.

2.4.2. Serverul web APACHE

Serverul de Web Apache sta la baza a peste 60% din domenii, potrivit unui studiu Netcraft Web Server. Providerii de Internet și companiile de gazduire de aplicatii pe Web apeleaza deseori la Apache din cauza suportului sau pentru numeroase platforme, capabilitatilor de gazduire virtuala usor de implementat și modulelor sale care ii extind capabilitatile.

Caracteristica Apache Portable Routine(APR) optimizeaza capabilitatile precum administrarea proceselor pentru fiecare șistem de operare, dar permite serverului propriu-zis sa ignore distinctiile specifice fiecarei platforme. Acest lucru a imbunatatit performanta și stabilitatea implementarilor Windows, prin eliminarea emulatorului. Mai mult APR este accesibil și dezvoltatorilor Web care scriu programe multi-platforme in C, care este mai rapid decit limbajele interpretative, precum PHP și Perl, folosite de obicei pentru dezvoltare Web.

La acest lucru se adauga faptul ca serverul propriu-zis este independent de protocoale. Cu toate ca este in principal un server HTTP(Web), este proiectat sa suporte alternative cum ar fi FTP. O astfel de structura șimplifica administrarea și reduce riscurile de securitate. O parte insemnata din atractivitatea Apache o constituie versabilitatea sa. API-ul sau deschis a permis dezvoltatorilor sa scrie diferite module care i-au schimbat comportamentul. Daca serverului ii lipseste o functie de care are nevoie un șit, sunt mari sanse ca undeva sa fie disponibil un modul plug-in.

Serverele de Web au ca functionalitate de baza receptionarea de cereri anonime de la clienti și furnizarea de informatii intr-o maniera dorita a fi eficienta și rapida. De fapt un server Web este un daemon care accepta conexiuni conforme protocolului HTTP, raspunzind cererilor receptionate de la clienti. Pentru a asigura servicii HTTP, serverul Apache trebuie sa fie instalat in șistem(in mod uzual, fiind vorba de un pachet RPM in Linux sau de un program executabil .exe in Windows), iar daemon-ul httpd pornit. Apache este un șistem modular, alcatuit dintr-un server de baza și mai multe module care sunt incarcate dinamic intr-un mod șimilar cu functionarea modulelor din nucleul Linux.

Apache poate fi configurat cu ajutorul interfetei grafice apacheconf(Apache Configuration Tool). Fisierul de configurare principal este http-conf și este de obicei localizat in directorul /etc/httpd (in versiunile de Linux sau Unix).

In anumite cazuri, este necesar sa se restrictioneze accesul la anumite documente, prin intermediul autentificarii prin nume de utilizator și parola sau in functie de adresa calculatorului clientului Web.

Pentru autentificarea utilizatorilor, vom parcurge doi pasi:

se creeaza un fisier continind numele și parolele utilizatorilor care vor avea acces la anumite date de pe serverul Web(in particular Apache)

se configureaza serverul pentru a seta care resurse vor fi protejate și care sunt utilizatorii avind permisiunea accesarii lor, dupa introducerea unei parole valide

Configurarea serverului se poate realiza fie prin fisierul httpd-conf, fie prin .htacces, indicind o zona protejata, de obicei in functie de directoarele dorite a fi accesate pe baza de autentificare. Fisierul .htaccess va fi stocat in directorul asupra caruia dorim sa modificam comportamentul implicit al serverului Web. Inainte de a modifica maniera de autentificare din fisierul .htaccess, administratorul serverului Apache va specifica in httpd.conf ca autentificarile sa se realizeze via .htaccess.

De asemenea, Apache ofera posibilitatea de a servi mai multe șituri Web șimultan, altfel spus, gazduire virtuală(virtual hosting). Exista doua metode de implementare a găzduirii virtuale: prima bazată pe nume și a doua bazată pe adrese IP. Mașinile virtuale bazate pe adresa utilizeaza adresa IP a conexiunii pentru a determina masina virtuala corecta. Astfel pentru fiecare găzduire virtuala bazată pe nume, determinarea mașinii virtuale se face pe baza numelui acestuia.

Găzduirea virtuală bazată pe nume este mai șimplu de implementat, și este recomandata utilizarea acesteia. Pentru a utiliza serviciul de gazduire virtuala, trebuie mai intii stabilite adresa IP și portul pentru serverul care va accepta cereri pentru respectiva masina virtuala.

2.4.3 Administrarea bazelor de date cu MySQL

Dezvoltat de firma suedeza MySQL AB, MySQL este un server de baze de date disponibil gratuit, cu sursa deschisa(open-source) care ofera fiabilitate și avantaje reale.

Frumusetea serverului MySQL este șimplitatea sa fundamentala. Administrarea bazei de date se face folosind peste o duzina de utilitare in linia de comanda, cel mai important fiind mysql, un shell interactiv pentru controlul și interogarea bazei de date. Utilitarele ruleaza cel mai bine pe șistemul Linux, platforma pe care MySQL a fost dezvoltat initial. Alte doua utilitare cu sursa deschisa, oferite pe platforma Windows, care ofera un set de comenzi de administrare sunt MySqlManager, un utilitar de interogare in mod grafic șimilar cu mysql și WinMySQL admin, o consola pentru administrarea detaliilor configurarii lui MySQL.

MySQL realizeaza cu usurinta importarea diverselor baze de date și exportarea sub forma fisierelor sql. Tranzactiile nu sunt parte a tabelelor implicite(ISAM) ale lui MySQL, dar sunt incluse doua tipuri noi de tabele . Berkley DB(BDB) și InnoDB . care au fost dezvoltate de alte firme.

Administratorii de firme și dezvoltatorii de baze de date au ajuns la concluzia ca MySQL are o dezvoltare energica și loiala, ca sa nu mai mentionam reputatia cistigata cu truda, de baza de date șigura.

MySQL opereaza in baza unui model client/server. Orice masina care doreste sa proceseze interogari asupra unei baze de date MySQL trebuie sa ruleze MySQL server(mysqld), care este responsabil de tot traficul de tip intrari/iesiri(incoming/outgoing) cu baza de date. Ca orice server, mysqld "asculta" pe un port particular (3306) eventualele cereri de conexiune ale unui "client" – orice aplicatie care trimite cereri catre o baza de date via mysqld. Acest client poate fi un șimplu script PHP care poate trimite o cerere catre baza de date prin intermediul serverului MySQL sau chiar clientului mysql. Clientul mysql este o interfata interactiva pentru transmiterea de comenzi catre server.

Modelul de securitate folosit de MySQL se bazeaza pe nume de utilizator, parola, nume server(hostname) sau adresa de IP și privilegii, fiind șimilar celui generic folosit de șistemele Unix. Prin privilegii se inteleg in cazul MySQL operatiunile ce vor fi permise asupra bazei/bazelor de date, tabelelor sau indecsilor, cum sunt de exemplu SELECT, INSERT, UPDATE, DELETE, CREATE, DROP.

Datele sunt obiectul celor mai multe operatii de prelucrare, iar șistemele de gestiune a bazelor de date furnizeaza cele mai complexe și puternice facilitati pentru lucrul cu datele. PHP include o biblioteca de functii care furnizeaza o interfata cu șistemul MySQL de gestiune a bazelor de date. Folosind aceste functii, un program PHP poate obtine accesul la datele rezidente intr-o baza de date MySQL și le poate modifica.

Majoritatea interactiunilor cu o baza de date MySQL se poate desfasura dupa un model secvential șimplu:

se deschide o conexiune cu serverul MySQL

se specifica baza de date la care se obtine accesul

se emit interogari SQL, se obtine accesul la rezultatele interogarii și se executa operatii non-SQL

se inchide conexiunea cu serverul MySQL

Din punct de vedere al limbajului PHP, exista doua categorii de interogari SQL:

interogarile SELECT, care returneaza rinduri ale unui tabel

interogarile UPDATE, INSERT și DELETE, care nu returneaza rinduri ale unui tabel

Ambele categorii de interogari sunt emise folosind functia mysql_query(), dar verificarea și prelucrarea celor doua categorii de rezultate ale interogarilor sunt procesate destul de diferit.

3.Etapele dezvoltării unui magazin virtual

3.1. Obiectivele magazinului virtual

Proiectarea la nivel general a unui magazin virtual implică conceperea șistemului informatic și customizarea structurii și functionalității acestuia.

Un prim pas în proiectarea generala a unui magazin virtual este reprezentat de determinarea elementelor șistemului informatic. Acest lucru implică multiple examinări ale informatiilor din baza de date, ale rapoartelor generate, ale fluxului documentelor și ale intregului proces astfel încât toate elementele componente să creeze un mecanism unitar.

Din punct de vedere al structurii șistemului informatic este compus din datele de intrare, prelucrarea acestora pe baza unor criterii stabilite pentru atingerea obictivelor magazinului și rezultatul analizei efectuate în pasul anterior.

Modul de concepere a șistemului informatic poate fi determinat în funcție de anumiti indicatori setați precum: datele de intrare, datele de ieșire sau un melaj între cele două.

După felul în care se examinează fiecare tip de informație se decide baza de informații de intrare, urmând ca apoi să se contureze următoarele etape ale proiectării.

Etapele proiectării magazinului virtual sunt:

deterninarea obiectivelor

stabilirea ieșirilor

conceprea bazei de intrări

scrierea elementelor de cod

elaborarea documentelor specifice de intrare

conceprea din punct de vedere a structurii și funcționalității

crearea documentului

Respectarea pașilor de concepere a șistemului informațional, aduce numeroase beneficii printre care livrarea bazei inforamationale cu date de intrare intr-o formă complexă ce permite efectuare de multiple analize pentru obținerea datelor de ieșire stabilite.

3.2. Proiectarea unui magazin virtual

3.2.1. Pagina Web

Atât în cadrul unui magazin clasic, cât și in ceea ce priveste un magazin virtual, primul pas este repezentat de crearea unui plan de afaceri. Acest lucru este necesar pentru a putea cunoaște piața, concurenții, beneficiile, dar și riscurile pe care le impune crearea unui magazin virtual.

Pentru a intra pe piata de magazine virtuale sunt necesare multe ore de cercetare și muncă. Trebuie studiate avantajele și dezavantajele prezente, dar și viitoare, posibilitate de extindere etc.

De asemenea, un detaliu semnificativ în construire planului de afaceri îl constituie statutul acestui nou magazin și anume: magazinul virtual este unul nou cu o activitate ce se va desfășura doar în acest mediu sau este o dezvolare a unei afaceri din mediul offline în mediul online. În acel de-al doilea caz, proprietarului afacerii are experiență în domeniul vânzărilor și este foarte posibil să aibă o rețea prin care își comercializează produsele din online.

Pentru a-și putea vinde podusle la nivel național și/sau internațional, mare parte din magazinele clasice și-au deschis magazin în mediul virtual.

Așa cum un magazin clasic este șituat într-o cladire, la fel și pagina web, respectiv a magazinul virtual, va trebui găzduită pe un server Web. Acesta va constitui spațiul comercial virtual, punctul de legătură dintre vânzător și clienții potențiali.

Acest lucru poate fi efectuat prin intermediul firmelor ce acordă servicii de găzduire și achiziții de domenii. Apelarea la acest tip de firme reprezinta un mare avantaj, mai ales pentru cei ce sunt noi în acest domeniu.

După achizitia domeniului și contractarea de servicii de găzduire a noului magazin virtual, următorul pas îl reprezintă alegerea tehnologiilor utilizare pentru conceperea șite-ului. Modul de construcție a șite-ului trebuie gandit în așa fel încât modul de lucru cu interfața să fie cât mai ușor. De exemplu, inserarea de informații și imagini pentru produsele , modificarea unor produse actuale sau eliminarea unor articole din baza de date trebuie să se realizeze cu usurință de oricine va utiliza platforma. Un alt aspect foarte important ține de crearea conturilor utilizatorilor și preluarea comenzilor de la aceștia, precum și modalitatea de atenționare prin e-maila în momentul primirii comenzii.

De asemenea, în această fază se iau decizii cu privire la modul de alocare a sarcinilor per angajat. De exemplu, este necesar a se stabili cui ii este asociată sarcina de a documenta produsele pe șite, de a le actualiza sau de a le elimina de pe șite, cine este responsabil de preluarea comenzilor, până la stabilirea detaliilor legare de modul în care comanda va fi livrată către clientul final.

Pentru a facilita munca persoanelor ce se vor ocupa de documentarea produselor, încă de la început, trebuie gândită structura categoriilor și subcategoriilor produselor. Acest lucru aduce beneficii multiple, precum: angajatul știe unde sa plaseze un produs, clientul știe în ce categorie, respectiv subcategorie, să caute produsul dorit. Tot pentru a ușura procesul de căutare a unui produs în cadrul șite-ului este indicată prezența unui modulul de căutare. Acesta, în funcție de complexitatea implementării și de algoritmul folosit, poate avea funcții multiple precum precăutare, căutare specifică în categorii, căutare avansată bazată pe diferite criterii, etc.

Documentarea produselor joacă un rol foarte important pentru bunul mers al șite-ului. Produsele documentate corect și complet, inserarea de imagini de calitate și/sau de clipuri de prezentare cresc șansele ca vizitatorii să cumpere de pe magazinul virtual.

Este indicat ca magazinul virtual să aibă o interfață ce poate fi utilizată cu ușurină și de către cei ce nu au experiență în domeniul cumpărăturilor online. Pentru acestia este îndicat a se crea o pagină dedicată cu întrebări și răspunsuri cu privire la modalitatea de achiziție a produselor, modalitate de plată, modalitatea și termenul de livrare, granție etc. În cazul în care acești au și alte nelămuriri este necesar a găsi pe șite formularul de contact și/sau datele de contact ale companiei.

3.2.2. Plăți

Unul dintre multimplele beneficii ale unui magazin virtual este faptul că acesta este deschis douăzeci și patru de ore din douăzeci și patru, șapte zile din șapte. În acest fel clientul poate afla în orice moment detaliile necesare aferente produsul sau serviciul dorit și de asemenea, cunoaște prețul acestuia și în același timp, știe dacă produsul dorit este disponibil sau nu, toate aceste lucruri fiind posibile din conformtul propriei locuințe, fără a fi necesară deplasare la sediul fizic al companiei.

Pentru a putea oferi beneficiile enumerate mai sus, magazinul virtual trebui să aibă un șistem informatic foarte bine pus la punct pentru a putea funcționa tot timpul și în acelasi timp, să gestioneze corespunzători comenzile, facturarea produsele achizitionate, modulul de procesare a plaților.

Variantele prin care un client poate achita produsele achizitionate sunt multiple. In acest domeniu sunt acceptate atât plățile offline, cât și plățile online.

Metoda preferată de plată este cea online, prin intermediul cardurilor bancare. Pentru a întra în posesia banilor obținuți din vânzarea de produse și/sau servicii, companiile colaboreză cu băncile sau cu instituțiile financiare.

Plata online poate fi efectuată direct prin întermediul șistemului informatic integrat în cadrul magazinului virtual sau prin intermediul unei firme terțe ce oferă servicii de intermediere a plăților.

Plata online prin intermediul cardului bancar este cea mai răspândită modalitate de achitare a cumpărăturilor in mediul virtual. Acest timp de plată este unul securizat, datele de pe card fiind accesibile doar pentru bancă, comerciantul neavând acces la ele, datorită șistemului de criptare utilizat.

Pentru șiguranța cumpărătorului, dar și a vânzătorului, între acesta din urmă și instituțiile bancare trebuie semnat un contract de colaborare și utilizarea de software-uri de criptare actualizate și de autentificare pentru a putea beneficia de securitate pentru continutul datelor expediate utilizând Internetul.

Access

Ado

Ado_Access

Ado_MSSql

DB2

ODBC_DB2

Vfp

FBSql

iBase

Firebird

Borland_iBase

Informix

Informix72

LDAP

MSSql

MSSqlPO

MySql

MySqli

MySQLt/MaxSql

OCI8

OCI805

OCI8Po

ODBC

ODBC_MSSql

ODBC_Oracle

ODBTP

ODBTP_Unicode

Oracle

Netezza

PDO

Postgres

Postgres64

Postgres7

Postgres8

Postgres9

SAPDB

SqlAnywhere

SQLite

SQLitePO

SyBase

Instituția financiară la care se va deschide contul și cu care se va colabora, trebuie să ofere servicii cu privire la tranzacții online ce au la bază carduri. Aceste servicii se plătesc pe baza contractelor încheiate, iar costurile sunt stabilite fie ca procent din încasări, fie ca sumă fixă. În practica curentă, se agreează un număr minim de tranzacții lunare. În cazul în care nu se atinge acel prag de tranzacții, compania trebuie să achite către instituția financiară suna aferentă numărului minim de tranzacții stabilit.

Companiile au la dispoziție varianta în care pot apela la diverse firme ce au în portofoliu servicii precum cel de plată online. Acestia sunt întermediarii dintre clienți și vânzători. Astfel, banii veniți prin plata în șistem electronic, sunt virați către aceste companii, urmând ca apoi suma să ajungă în conturile vânzătorului.

Firmele ce au ca domeniu de activitatea intermedierea plăților între cumpărător și vânzător, dispun de integrări online cu banci ce verifica și autorizeaza platile, ulterior realizand transferul de bani automat. Acestia pot oferi comerciantilor online suport in ceea ce priveste integrarea modulelor de procesare a cardurilor pe propria platforma, dr este recomandat ca integrarea sa fie facuta cu proprii dezvoltatori. Printre beneficiile rezultate din aceasta colaborare se numara calitatea serviciilor oferite proprilor clienti, suport tehnic și mentenanta permanent, cat și eliminarea unor parti birocratice asociate sectorului bancar. Pe langa acestea, alte avantaje sunt reprezentate de credibilitatea din punct de vedere financiar dovedita in relatia de lunga durata cu bancile colaboratoare (aspect foarte important care afecteaza companiile care sunt la inceput), contracte cu multipli furnizori de carduri, au posibilitatea sa faca automat conversia intre diferite monede și comisionul practicat este semnificativ mai mic spre deosebire de cel al institutiilor bancare.

Clientul este directionat spre furnizorul de servicii de plata (PSP) pentru a furniza informatii necesare pentru a procesa plata precum tipul de card, numarul cardului, numele complet al proprietarului, data de expirare a cardului și codul de securitate al acestuia. Informatiile colectate sunt redirectionate agentiei de carduri, insotite de totalul sumei de plata, comisionul aplicat, contul magazinul și tipul de tranzactie dorit. Din clipa asta, tranzactia intra pe traseul unei trazanctii obisnuite cu cardul de credit. Informati este securizata (criptata) și apoi este trimisa procesorului de plati (PP) folosind o linie securizata de comunicare spre un șistem de facilitati integrate, denumit și Interchange network processor(INP). Pentru fiecare marca a cardului de credit exista un procesator INP diferit. Ulterior, se initiaza o linie secrizata de comunicare cu banca, aceasta urmand sa contacteze banca de care apartine cumparatorul (banca emitoare a cardului de credit) pentru a verifica disponibilitatea fondurilor., iar in cazul in care se primeste un raspuns afirmativ, tranzactia este finalizata și banca va trimite un numar special de verificare catre PSP. Acesta din urma preia acest cod special și il transmite programului care proceseaza datele și asigura cumparaturile online, urmand ca la final clientul sa fie anuntat de confirmarea sau refuzarea tranzactiei. Tot acest proces are loc in decursul a cateva secunde.

In ultimii ani, gradul de integrare și folosire a acestui tip de șistem a crescut in Romania, insa majoritatea clientilor inca aleg modalitatile clasice de plata precum plata la livrare in șistem ramburs, plata prin ordin de plata sau prin mandat postal. Sunt inca multe magazine care nu implementeaza plata online tocmai din aceste motive, astfel neputand fi considerate ca practica in intregime comert electronic.

3.2.3. Promovare

Spre deosebire de un magazin clasic, în care potențialii clienți mai intră și din întâmplare sau din curiozitate, pe web șansa ca cineva să acceseze direct pagina este extrem de mică (pornind de la premisa că nu a auzit niciodată de ea). Pentru a avea vizitatori, șite-ul trebuie înscris la motoare de căutare și directoare web. Se poate apela și la publicitatea pe internet – bannere publicitare afișate pe diverse portaluri sau la marketingul prin e-mail. Bineînțeles că mai sunt și modalitățile clasice de promovare: spoturi TV sau radio, inserări în diverse publicații, etc.

3.2.4. Actualizare

Informațiile nu trebuie lăsate să se „învechească”. Vizitatorii trebuie să vadă că au în față un șite dinamic, cu conținut mereu proaspăt, secțiuni cu noutăți, oferte speciale, concursuri sau alte facilități asemănătoare îi va determina pe mulți să se întoarcă cu plăcere la magazinul virtual astfel proiectat.

3.2.5. șisteme de plată electronice

Pentru a ajunge la un nivel apropiat cu comertul offline, comertul electronic trebuie sa sustina și sa induca consumatorilor folosirea unui șistem de plata electronic, in aceeasi șiguranta ca și cel normal.

Plata online – din prima clipa in care comerciatul pune in functiune un magazin de vanzari online, acesta ofera clientilor posibilitatea de a cumpara la orice ora din zi, in orice zi din saptamana, fara a conta localizarea la nivel modial. Clientii si poentialii cumparatori au acces la informatii actulizate in ceea ce privesc produsele si serviciile oferite. De asemenea, preturile si stocurile acestora pot fi actualizate in timp real. Pentru aceasta, comerciantul trebuie sa se asigure de disponibilitatea continua a sistemului informatic si in acelasi timp de operarea comenzilor, procesarea de plati, emiterea de facturi si orice alte activitati legate de o comanda online

Sistemul de plata real-time – exceptand situatia cumpraturilor offline, intrarea in posesia banilor rezultati ca urmare a unei vanzari online implica mai multe procese de interactiune cu institutii financiare sau banci. Plata unei facturi se poate realiza in prezent folosind cardul de credit, banii electronici sau carduri inteligente , principalele metode de plata folosite pentru comertul electronic. Integrarea diferitelor metode de plata se poate face fie la nivelul sistemului informatic al comerciantului, fie printr-un Commerce Service Provider (furnizor de servicii de comert) care genstioneaza sau intermediaza platile

Cardul de credit – este cea mai populara forma de plata pentru cumparaturile online. Motivul este simplitatea folosirii acesteia: clientii navigheaza pe site-ul comerciantul, se decide sa cumpere un serviciu sau un produs, fiind necesare doar introducerea unor informatii legate de cardul de credit in formularul HTML. Datele respective (tipul de card, numele complet, data de expirare a cardului, codul de securitate) sunt trimise site-ului web, unde informatiile sunt colectate si trimise spre banca. Daca platforma comerciantului este integrata in mod direct cu banca, atunci plata poate fi procesata imediat atata timp cat exista fonduri suficiente pentru plata bunurilor achizitonate. Tranzactiile online care utlizeaza plata cu cardul sunt criptate, modalitatea de criptare asigurand faptul ca doar furnizorul de servii pentru carduri sau banca pot avea acces la datele oferite, acestea nefiind accesibile si comerciantului. O prima etapa include incheierea unor contracte cu diferite institutii financiare, folosind tehnologii de autentificare si criptare avansate cu scopul de a securiza mesajele trimise prin intermediul internetului. Este necesara deschiderea unul cont bancar de catre comerciant care sa ofere servicii de tranzactionare online prin carduri. In clipa de fata, tehnologia folosita pentru a cripta mesajele se numeste Secure Socket Layer (SSL), aceasta eliminand posibilitatea de obtinere a numarului de card de catre un intrus in cazul ca acesta reuseste sa intercepteze datele criptate. Un dezavantaj consta in faptl ca ca tehnologia SSL nu ofera posibilitatea comerciantului de a se asigura ca persoana care initiaza tranzactia si foloseste cardul este chiar posesorul acestuia. In acelasi timp, tehnologia SSL nu ofera nici un mod in care clientul poate afla daca site-ul comerciantului este intradevar autorizat pentru a accepta plata online cu cardul de credit sau daca este un site pirat, dezvoltat cu scopul de a fura informatiile cartilor de credit (crackers). O solutie la aceasta problema a venit de la Visa si MasterCard, acestia din urma dezvoltand tehnologii noi numite Security Electronic Transaction (SET). Acestea asigneaza certificate digitale comerciantului, cat si clientului, astfel rezolvand problema autentificarii si oferind o securitate sporita. Pentru a nu oferi acces la numarul de card comerciantului, SET foloseste o criptare speciala ce asigura accesul la aceste date doar pentru institutiile financiare autorizate si comsumatorului. Atat Institutia financiara, cat si clientul si comerciantul folosesc un certificat SET privat folosit pentru autentificare, spre deosebire de cheile publice alaturate certificatelor ce indentifica ceilalalte entitati implicate. Astfel, o terta companie ofera servicii de furnizare a certificatelor digitale pentru detinatorii cardurilor de credit. In ceea ce priveste comerciantul, exita un proces similar: atunci canf se efectueaza o tranzactie online, anterior realizarii unui schimb de date pentru realizarea acesteia, porgramul integrat cu tehnologia SET confirma identitatea atat a comerciantului, cat si a detinatorului cardului de credit, proces constand in verificarea certificatelor eliberate de furnizori atestati pentru astfel de servicii.

Factura electronica (e-invoice) – cardurile de credit sunt cea mai intalnita solutie, atat in comertul B2C, cat si in cel B2B. Spre deosebire de tranzactiile efectuate prin intermediul acestora, in sectorul B2B exista un volum mai mare de tranzactii. In acelasi timp, multe companii folosesc acest instrument in comertul offline, iar posibila schimbare a modalitatii de plata in online ar aduce dupa sine o reorganizare costisitoarea a proceselor de ordin economic. Procedura platii prin e-invoice este: se transmite in mod automat catre furnizori valoarea tranzactiei prin intermediul sistemului informatic, urmand ca acestia sa trimita la randul lor o factura ce urmeaza a se plati folosind diferite mijloace. Pentru aceasta, este necesara prezenta unor metode securizate de a filtra accesul la baza de date a companiei, o infrastructura fiind oferita de standardul Electronic Data Interchange (EDI). Dat fiind faptul ca fiecare tara are o legislatie comerciala diferita, o problema o constituie recunoasterea valabilitatii facturii electronice. Doua dintre principalele avantaje ale acesteia tin de reducerea posibilatilor de eroare si micsorarea costurilor de trimitere

NetCheque – cecuri electronice – Sistemul a fost dezvoltata de catre Institutul Stintific Informational al Univeritatii California de Sud. Atat vanzatorul, cat si cumparatorul sunt nevoiti sa deschida un cont pe site-ul NetCheque, iar pentru plata prin cec este necesara instalarea unui software special la client. Ulterior, clientul are posibilitatea de a trimite un cec digital criptat folosind acest software, iar comerciantul poate folosi acest cec pentru o alta tranzactie sau poate opta pentru ridicarea banilor de la banca. In ceea ce priveste securitatea, este folosita o autentificare prin parola si protocolul Kerberos. Validitatea cecului digital este facuta printr-un ocnt special din retea, in cazul in care acesta este valid trimitandu-se un mesaj de confirmare comerciantului care livreaza produsele. (un alt exemplu PayNow)

Banii electronici – acest sistem foloseste un program special pentru a salva intr-o forma digitala echivalentul banilor lichizi. Sistemul este avantajat de costul redus pe care il implica transferul de bani (acesta nu exista la nivel de comision, doar la nivel de conexiune la internet). Pentru a intra in posesia banilor se acceseaza o casierie virtuala pe internet sau clientul se poate deplasa la un bancomat, banii putand fi retrasi direct din contul bancii sau folosind cardul de credit. Pentru a folosi sistemul e-cash este nevoie de existenta unei securitati avansate pentru a garanta ca acestia nu pot fi modificati. Astfel, se folosesc diferite tehnologii pentru a reduce riscul de frauda sau de folosire multipla a unei sume: diferite tehnologii avansate de criptare, folosirea de semnaturi digitale si semnaturi electronice. Banii electronici vin cu un beneficiu in ceea ce priveste identitatea platitorului, intrucat acesta din urma este anonim si sistemul de plata nu are ca si intermediar nici o banca, fiind implicati doar cei doi parteneri

Smart card (cardul inteligent) – acesta este regasit mai mult in Europa Occidentala. Spre deosebire de cardul clasic, acesta poate stoca informatii suplimentare ale clientilor, pe langa banii pastrati pe cipul acestuia. Banii sunt salvati intr-un mod criptat si sunt accesibili doar prin intermediul unei parole. De asemenea, pentru a efectua o plata este necesar un terminal hardware. Dispozitivul are nevoie de o cheie speciala pentru a muta banii in alta sursa, cheie emisa de banca. Cardul se poate folosi la plata pe internet, insa este necesara prezenta fizica la banca pentru a il alimenta. Ca si avantaje amintim simplitatea folosirii acestuia, efectuarea tranzactiilor fara intermediari, securitatea, cat si costul redus al operatiunilor. Exemple: Geld-Karte, Mondex

3.2.6. Momentul in care se efectueaza plata electronica

Plata electronica iniante de tranzactie – Un astfel de sistem functioneaza prin salvarea banilor in format digital prin intermediul unui disc sau al unui smartcard – acesta poate fi onsiderat ca o alternativa digitala la banii cash. Se creeaza un portofel virtual ce contine banii digitali (un fisier practic), acestia putand fi folositi pentru plata online a unor servicii sau produse, Avanatajul unui portofel virtual este anonimitatea pe care acesta il ofera, insa un mare dezavantaj este faptul ca in cazul pierderii acestuia, banii sunt pierduti. Petru a plati pe loc este necesar accesul direct la baza de date a bancii, cat si la baza de date a ofertantului platii electronice. In acest sistem, securitatea necesita o implementare mai stricta (cartile de debit)

Plata electronica după tranzacție – Cea mai des intalnita modalitate de plata dupa tranzactie online este sistemul cardurilor de credit

3.3. E-commerce-ul românesc la sfârșitul anului 2011

Conform Visa International: în trimestrul II 2011, s-au efectuat circa 12500 de tranzacții comerciale online unde romanii au cheltuit aproximativ 1 milion $ dintre care: 44% din sumă s-a cheltuit în SUA, 20% în Italia, 15% in Anglia, iar restul in magazine din alte țări. Valoarea medie a unei tranzacții a fost de circa $133.

Tot conform Visa International: În aceeași perioadă, în magazinele virtuale românești, s-au cheltuit circa. 8.000$, cu o medie de 2 tranzacții / zi.

Conform RomCard: 700.000 deținători de carduri, 30 comercianți configurați pentru tranzacții online și 4 bănci oferă suport în România pentru tranzacții online (Alpha Bank, BCR, BCIT și Raiffeisen) prin programele Verified by Visa și 3D Secure.

4.Proiectarea și programarea magazinului virtual

4.1.Obiective

Obiectivul principal al site-ului proiectat este acela de a facilita vanzarea online de produse. Produsele fac parte din categoria electronice si se afla in stocul magazinului Cip Store. Pentru a vinde un produs, un client trebuie sa plaseze o comanda pe site, urmand ca aceasta sa fie confirmata si ulterior sa se livreze.

4.2. Structura magazinului și a bazei de date

Din punct de vedere structural, magazinul online este compus din urmatoarele module:

Modulul de prezentare;

Modulul de client;

Modulul de administrare.

4.2.1.Modulul de prezentare

Acest modul este accesibil oricarui utilizator de tip guest si nu necesita inregistrare pe

site. Acestia au acces la catalogul de produse, pot naviga prin acesta si pot afla informatii detaliate despre fiecare produs in parte. De asemenea, utilizatorii pot accesa alte sectiuni ale site-ului cum ar fi informatii despre companie, pagina de contact sau pot cere informatii suplimentare despre un produs completand un formular. Principalele pagini pe care le pot accesa sunt : index.php, produs.php, search.php, contact.php. Pentru a plasa o comanda, un utilizator de tip guest se poate inregistra accesand pagina register.php sau poate alege sa plaseze o comanda rapida fara a necesita creearea unui cont, ci doar completarea datelor personale

4.2.2. Modulul de client

Disponibil pentru utilizatorii care si-au creat cont pe site, acest modul ofera in plus

posibilitatea de comanda produse printr-un singur click si gestionarea contului personal pentru modificarea informatiilor de comanda, cat si a parolei de acces. Acestia pot folosi cosul de produse pentru a adauga/scoate produse in decursul navigarii pe site, ulterior putand plasa comanda rapid. Paginile la care utilizatorii au acces sunt comanda.php si mod_user.php.

Clientul mai are și o pagină unde poate reține produsele pe care dorește să le achiziționeze in eventualitatea ca acestea nu sunt pe stoc. Produsele vor fi înregistrate pe pagina wishlit.php iar utilizatorul va fi anuntat prin email daca produsul său din wishlist va fi disponibil.

4.2.3.Modulul de administrare

Sectiune disponibila doar programatorului, administratorului si angajatilor magazinului.

Aici, utilizatorul poate aduga/sterge/modifica produse si informatii despre acestea, poate gestiona utilizatorii platformei (clienti si angajati), poate vizualiza si modifica informatii legate de comenzi si de prelucrarea acestora. Datorita normelor de securitate din domeniu, administratorul nu poate vizualiza parola altui utilizator, aceasta fiind criptata la stocarea in baza de date.

4.2.4.Baza de date folosită

Este cea aparținând serverului MySQL și conține 8 tabele: useri, date useri, categorii, produse, cart, comanda, produs comandat și wishlist.

Tabela de useri numită tbl_user are urmatoarea structură:

User_id – id-ul unic al utilizatorului, fiind și index primar

User_nume – numele utilizatorului, așa cum va fi el recunoscut de șistem, cheie unică

User_Password – parola utilizatorului

User_email – emailul utilizatorului

User_regdate – data la care userul a fost inregistrat fiind setată initial la 0.

User_last_login – data la care utilizatorul s-a logat pentru a administra conturile active.

Tabela cu date despre useri numita tbl_date este șimilară cu tabela de comanda tbl_order are urmatoarea structură:

Dt_id – id-ul unic al datei utilizatorului, fiind și index primar

Dt_shipping_first_name , Dt_payment_first_name  – prenumele de livrare și facturare a utilizatorului

Dt_shipping_last_name, Dt_payment_last_name – numele de livrare și facturare a utilizatorului;

Dt_shipping_address1,Dt_shipping_address2,Dt_payment_address1, Dt_payment_address1 – campurile de adrese pentru livrare și facturare

Dt_shipping_phone, Dt_payment_phone – telefonul de livrare și facturare

Dt_shipping_city, Dt_payment_city – orașul de livrare și cel de facturare

Dt_shipping_state, Dt_payment_state – județul de livrare și cel de facturare

Dt_shipping_postal_code, Dt_payment_postal_code – codul poștal de facturare și livrare

Tabela de comenzi numită tbl_order are urmatoarea structură:

Singurele care difera de tabelul date sunt:

Od_date,Od_last_update – data la care a fost facuta comanda și data ultimei modificări

Od_status – statutul comenzii cu valoarea de bază New

Od_memo – observații in legătura cu comanda

Od_shipping_cost – costul final al comenzii

Tabela de produs comandat numită tbl_order_item are urmatoarea structură:

Od_id – id-ul comenzii care va venii din table comanda, cheie primară

Pd_id – id-ul produsului care va venii din tabela produs, cheie primară

Od_qty – cantitatea produsului comandat

Tabela de produse numită tbl_product are urmatoarea structură:

Pd_id – id-ul produsului, este cheie primră

Cat_id – id-ul categoriei de care aparține produsul

Pd_name – numele produsului

Pd_description – descrierea produsului

Pd_price – pretul produsului

Pd_qty – cantitatea produsului

Pd_image, Pd_thumbnail – calea imaginii și thumbnailului produsului

Pd_date, Pd_last_update – data introducerii și ultimei modificări

Tabela de categorii a produselor numită tbl_category are urmatoarea structură:

Cat_id – id-ul categoriei, cheie primră

Cat_parent_id – id-ul categoriei părinte

Cat_name – numele categoriei

Cat_description – descrierea categoriei

Tabela coșului de cumpărături numită tbl_cart are urmatoarea structură:

Ct_id – id-ul coșului, cheie primră

Pd_id – id-ul produsului

Ct_qty – cantitatea produsului

Ct_session_id – id-ul sesiunii utilizatorului

Ct_date = data coșului de cumparaturi

Tabela coșului de wishlist numită tbl_wishlist are urmatoarea structură:

Pd_id – id-ul produsului, cheie primară

User_id – id-ul userului, cheie primară

4.3 Funcționare

șite-ul este configurat în trei părți: header, footer si continut. Primele doua se vor regasi pe fiecare pagina a site-ului, codul fiind scris o singura data si apoi inclus prin functia include in fiecare fisier .php

4.1 – Magazinul virtual

Headerul conține un banner cu poza șiteului, in partea dreaptă o căsuță de search in care se poate căuta produsul dorit. Headerul mai conține un meniu de navigare cu butoanele Homepage care face redirectarea la pagina index a șiteului, un buton de inregistrare, un buton de cont și un buton de informatii contact.

Scripturile recunosc un utilizator de cand se logheaza si pana se de-logheaza. Acest lucru se poate realiza foarte ușor cu ajutorul sesiunilor. Controlul sesiunilor este un mod nativ al PHP-ului de a recunoaște un utilizator în timpul navigării prin șite.

Serverul genereaza unu numar unic de identificare ( Session ID), acesta fiind stocat în partea de client a aplicației (se află stocat în calculatorul vizitatorul), fie transmis prin intermediul URL-ului de la pagină la pagină, fie prin intermediul unei cookie. Un Session ID funcționează ca o cheie ce permite înregistrarea unei varibile pe server numite session variable, a cărei conținut este stocat în partea de server. Astfel, pe toată durata de viață a acestei variabile, in baza acestui Session ID , serverul va cunoaste starea clientului ce a cerut accesul.

In header vom verifica daca variabila de sesiune cont ($_SESSIONcont) este setată, in cazul in care este setată va reține id-ul userului pentru al redirecta la contul său.

Conținutul paginii este împărțit in două, partea stânga în care se afla meniul de navigare prin categorii și subcategorii, coșul de cumpăraturi și o imagine cu promoția săptamânii. În partea dreaptă se afla un banner de publicitate și un selector a tuturor produselor din magazine.

Footerul este un banner care afișează companiile care colaboreaza cu șiteul.

Utilizatorul poate naviga și selecta produsele care le dorește a cumpăra acestea fiind adaugate în coșul de cumpărături.

4.2 = Produs.php

Pagina produsului afișează numele lui, imaginea, categoria, subcategoria, prețul și descrierea produsului. Butonul de Cumpara îl va adăuga la coșul de cumpărături iar dacă utilizatorul este logat va fi afișat și un buton de Wishlist pentru adăugarea produsului la wishlistul clientului.

Sub produs se află și un panou cu recomandări din partea magazinului. Recomandările se fac din aceeași categorie cu limitare la trei produse.

$sqlrec = mysql_query("SELECT * FROM tbl_product WHERE (pd_price < '".$low."' OR pd_price > '".$high."') AND cat_id ='".$cat."' LIMIT 3");

La coșul de cumpărături avem nevoie de o sesiune id pe care o creăm pentru a evita ca mai mulți utilizatori care folosesc cartul în același timp să comande aceleași produse introduse în coș de alți utilizatori.

if(isset($_SESSION['id'])) { }

else{ $_SESSION['id']= mt_rand(1,mt_getrandmax()); }

În cazul în care variabila nu există va fi creat un număr aleatoriu între 1 și maximul cifrelor premise. Acest id va fi înregistrat la fiecare produs comandat în campul ct_session_id.

Conectarea la baza de date se face folosind comanda include('connect_to_mysql.php') , în fișierul respectiv se află interogarea de conectare și de selectare a bazei de date.

$con = mysql_connect("localhost","root");

$sql = mysql_select_db("store");

Se testează dacă sunt setate variabilele produsului introdus în cart și în cazul in care nu există produsul în coș se face insert în tabela tbl_cart.

$sql2 = mysql_query("INSERT INTO tbl_cart (pd_id,ct_qty,ct_session_id,ct_date) VALUES('$pid',$qty,'$id_ses',now())");

Dacă produsul se află în coș se face doar o editare a cantității

$sql3 = mysql_query("UPDATE tbl_cart SET ct_qty='$cantitate' ,ct_date=now() WHERE pd_id = '$pid' AND ct_session_id = '$id_ses'");

Selectarea produselor din coș pentru afișare se face pe baza unei interogări a tabelei tbl_cart și a tabelei tbl_product din baza de date.

$sql = mysql_query("SELECT tbl_cart.* , tbl_product.* FROM tbl_cart, tbl_product WHERE tbl_cart.pd_id = tbl_product.pd_id AND tbl_cart.ct_session_id='$id_ses'");

În interogarea de mai sus se corelează cele două tabele pentru a selecta informațiile produselor care au același id cu cele din coș.

Se adaugă fiecărui produs o opțiune de ștergere și de editare. În cazul în care utilizatorul va apăsa butonul de ștergere butonul va transmite o variabilă prin URL (cart.php?deleteid=$ct_id') care conține id-ul cartului iar apoi se va active scriptul de ștergere cu interogarea:

$sql = mysql_query("DELETE FROM tbl_cart WHERE ct_id='$delid' AND ct_session_id = '$id_ses' ");

Pentru editarea cantității se foloșeste același principiu dar se foloșește un formular de trimitere a id-ului produsului, id-ul cartului, cantitatea ce trebuie modificată și idul de sesiune.

$sql = mysql_query("UPDATE tbl_cart SET ct_qty='$qty' WHERE ct_id='$ct_id' AND ct_session_id = '$id_ses' ");

Cand un script dorește modificarea cantității unui produs din coș va trebui făcută o verificare pentru a nu depașii cantitatea de pe stoc. Scriptul va utiliza funcția test_qty care va lua ca argument cantitaea dorită și id-ul produsului.

$sqltest = mysql_query("SELECT * FROM tbl_product WHERE pd_id='$pd_id'");

Dacă cantitatea de pe stoc este mai mică decat cea dorită atunci funcția va returna cantitatea de pe stoc.

Următorul pas este finalizarea și lansarea comenzii care se face de pe pagina comanda.php și aici utilizatorul are două opțiuni. Dacă nu doreste să își creeze un cont poate folosii formularul de comanda rapidă pentru a plasa comanda.

Utilizatorul se poate loga cu contul pe care îl are pe șite. Un cont nou se poate crea prin accesarea linkului de înregistrare și va fi trimis la pagina register.php unde va trebui ca acesta sa introduca numele userului, emailul și parola pe care o dorește. Odata creat utilizatorul are acces la pagina sa numita useracc.php.

Utilizatorul are la dispoziție mai multe taburi:

Date Personale – userul poate să își inregistreze datele de facturare și livrare acestea fiind trimise la pagina datepersonale_urcare.php și respective inserate in tabela tbl_date.

Resetare parola – userul își poate reseta parola daca doreste, campurile vor fi validate și se va testa daca parolele sunt la fel.

Wishlist – userul poate să vadă ce produse a introdus in wishlist cu opțiunea de a le sterge.

Logout – userul se va deconecta de pe cont iar variabila sesiune a contului va fi distrusă.

Odată logat utilizatorul poate să își lanseze comanda facută. Daca datele personale au fost inserate in tbl_date pagina de comanda se va complete automat cu datele extrase din tabel. Apăsand butonul de lansare datele comenzii sunt procesate și trimise către două tabele.

Datele care conțin numele, prenumele, adresa, etc ale utilizatorului vor fi transmise la tabelul tbl_order și comanda va fi setată automat la atributul New(Nou). Din tabelul tbl_cart se vor prelua idul produsului pd_id și cantitatea ct_qty care vor fi correlate cu idul comenzii od_id.Astfel în tabelul order_item vor fi înregistrate idul comenzii facute aceasta avand fiecare produs dorit și cantitatea lui.

4.3 – Listare Produse

Administratorul magazinului se va loga și el prin intermediul formularului de logare de pe pagina login.php. Odată logat pe pagina contului său adminacc.php are urmatoarele taburi.

Useri – în acestă pagină adminului îi vor fi listate toate conturile înregistrate din tabela tbl_user cu excepția contului său. Administratorul are posibilitatea de a șterge conturile.

Adaugă Produs – administratorul poate încarca un produs doar dacă toate campurile vor fi completate. El trebuie sa specific numele produsului, subcategoria din care face parte, prețul stabilit, cantitatea, descrierea produsului și încărcarea a imaginii și thumbnailului produsului. Datele introduse vor fi salvate in tabela pentru produs tbl_product.

Listare Produse (4.3) – un tabel care cuprinde toate produsele introduse în magazine. Administratorul poate să steargă produsul sau să îl editeze. În caz de editare o pagină asemănătoare cu adaugă produs va fi afișată. Dacă cantitatea unui produs este 0 iar aceasta se va modifica și produsul se afla in wishlistul unui user, fiecare user va primii un email cu o înștiințare ca produsul lui este acum valabil

Listare Comenzi – afișează comenzile și produsele atașate fiecărui comandă. Administratorul poate să le șteargă sau să editeze statusul comenzii pentru a reține dacă comanda a fost plătită. trimisă, anulată sau completă.

Logout – administratorul se va deconecta de pe cont iar variabila sesiune a contului va fi distrusă.

Concluzii

Concluzionăm prin a sublinia că un magazin virtual este cu șiguranță cea mai accesibilă și mai populară variantă de business la ora actuală. Proiectul de fața se oprește atât asupra caracteristicilor generale ale așa numitor “afaceri online”, cât și. mai ales asupra scheletului proiectului. Un magazin online este un proiect de business elaborat care, pentru un programator, înglobeaza o gamă variată de tehnologii web. Primul și cel mai important pas îl reprezintă proiectarea logică și corectă a bazei de date. Se urmăreste modul în care tabelele sunt populate și relaționeaza între ele. Ca limbaj de programare, acest proiect propune implementarea in php, cel mai usor de inteles și în același timp cel mai popular limbaj de programare pentru WEB.

Proiectul de față șimulează cat mai fidel un magazin virtual real în această masură urmărindu-se corectitudinea datelor introduse de utilizatori în formularele de înregistrare sau de comandă. În acest sens s-a apelat la îmbinarea php cu limbaje specific browserelor, cum ar fi java script, folosit mai ales prin intermediul Jquery. Cum in web contează foarte mult și aspectul, nu s-a mers doar pe functionalitate, toate paginile plecand de la html-uri valide W3C, Html-urile folosesc stiluri CSS și CSS3.

Bibliografie

[1]Luke Welling, Laura Thomson, PHP and MySQL Web Development, Sams Publishing, 2001

[2]S. Popa, Introducere in Internet, Editura Teora, București.

[3] N.Giurgițeanu, Proiectarea bazelor de date relaționale, Editura șitech, 1997

[4] V.Patriciu, M.Ene-Pietroșanu, I.Bică, C. Văduva, N. Voicu, Securitatea comerțului electronic, Editura All, 2001

[5]Kris Jamsa, Suleiman Lalani, Steve Weakley, Programarea în Web, Jamsa Press, 1996

[6]C J Date, An Introduction to Database Systems – Instructor’s Manual, 8th Edition 2003

[7] Addison-Wesley,Databases and Database Users, 2004

[8]www.scrigroup.com/Modalitati de plate pe web

[9]www.scrigroup.com/Internetul-comunicareaclient-34376.php

[10]Site-ul PHP – www.php.net

[11]Site-ul MySQL – www.mysql.org

[12]MySQL, MySQL 5.5 Reference Manual

Similar Posts