Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  


AgriculturaAsigurariComertConfectiiContabilitateContracteEconomie
TransporturiTurismZootehnie


Proiectarea generala a unui magazin virtual - PHP

Comert

+ Font mai mare | - Font mai mic



Proiectarea generala a unui magazin virtual

Obiectivele noului sistem



Proiectarea generala are ca obiectiv elaborarea conceptiei logice a sistemului informatic, definirea acestuia din punct de vedere structural si functional.

Proiectarea generala presupune stabilirea componentelor sistemului informatic. Totodata proiectarea generala presupune analiza datelor de iesire, a bazei informationale de intrare, a documentelor pe care sunt consemnate datele de intrare, a legaturilor dintre ele si a functionalitatii sistemului astfel incat toate elementele sale sa formeze un intreg.

Structura generala a sistemului informatic cuprinde un ansamblu de intrari, prelucrari si iesiri definite in functie de obiectivele noului sistem.

Exista mai multe variante de abordare a proiectarii unui sistem informatic    : fie se poate pleca de la intrari, fie de la iesiri, fie se poate realiza o varianta mixta.

Analizand modul de obtinere a fiecarei informatii se determina baza informationala de intrare, apoi se realizeaza celelalte faze ale proiectarii.

Fazele proiectarii se parcurg in ordinea :

stabilirea obiectivelor;

proiectarea iesirilor;

proiectarea bazei informationale de intrare;

codificarea;

proiectarea documentelor de intrare;

proiectarea structurala si functionala;

elaborarea documentului.

Aceasta varianta prezinta avantajul furnizarii unui continut complet al bazei

informationale de intrare pentru obtinerea iesirilor solicitate.

Proiectarea unui magazin virtual

Pagina Web

Lansarea unui magazin virtual nu este o chestiune simpla, ci necesita multa munca si studiu aprofundat al situatiilor existente si al posibilitatilor viitoare. Ca si comertul clasic, vanzarile on-line constituie un proces care trebuie imbunatatit in mod continuu, iar la baza sa trebuie sa se afle un plan de afaceri bine pus la punct.

Foarte important este daca magazinul virtual reprezinta o extindere pe internet a unui magazin deja existent sau daca va efectua exclusiv comert electronic. In primul caz, exista deja experienta vanzarii. Mai mult, exista un sprijin solid pentru dezvoltarea retelei de distributie a vanzarilor efectuate on-line. In fapt, majoritatea magazinelor virtuale din spatiul Internet romanesc sunt extensii ale unor magazine sau retele de magazine clasice.

Asa cum un magazin clasic este situat intr-o constructie, la fel si pagina web, respectiva magazinul virtual, va trebui gazduit pe un server Web. Acesta va constitui spatiul comercial virtual, punctul de legatura dintre vanzator si clientii potentiali. Se poate apela la serviciile unei firme specializate in acest sens. In cazul in care vanzatorul nu poseda cunostinte, varianta a doua este cu siguranta mai adecvata si va da rezultate cu mult mai bune. Ar fi bine ca firma respectiva sa asigure si gazduirea web (si eventual inregistrarea domeniului). Vor trebui stabilite tehnologiile. Orice magazin virtual trebuie sa dispuna de un sistem complex de administrare a continutului care sa permita adaugarea, modificarea si stergerea produselor din baza de date (text si imagini). De asemenea, inregistrarea comenzilor si a datelor despre clienti intr-o baza de date este absolut necesara. Aditional poate fi creat si un sistem care sa semnaleze prin e-mail lansarea unei comenzi.

Tot acum este momentul oportun pentru a decide cine va indeplini aceste sarcini si cine si cum se vor prelua si onora comenzile de pe site Angajarea unui webmaster va constitui desigur un avantaj. Produsele trebuie organizate pe categorii (si eventual subcategorii) astfel incat clientii sa poata gasi cu cea mai mare usurinta ceea ce cauta. O atentie sporita trebuie acordata prezentarii produselor; mai ales imaginile trebuie sa fie de calitate exceptionala, altfel sansele ca vizitatorii sa cumpere scad considerabil.

Nu in ultimul rand va trebui sa fie realizat un sistem de ajutor ( help', intrebari frecvente') in cadrul site-ului. Nu trebuie pornit de la premisa ca vizitatorii magazinului sunt navigatori experimentati si au mai efectuat cumparaturi online. De asemenea, trebuie puse la dispozitie informatii detaliate despre livrarea produselor, garantie si post-garantie (daca este cazul) etc si trebuie sa aiba posibilitatea de a contacta firma in cazul in care mai au alte intrebari despre produse (alaturi de o adresa de e-mail, un formular de contact este o optiune foarte buna).

Plati

Un factor deosebit de important in cadrul comertului electronic il constituie plata. Pe web. Se poate vinde 24 de ore pe zi. 7 zile pe saptamana, peste tot in lume. In plus. Cumparatorii si potentialii clienti vor avea acces la informatii de ultima ora referitoare la produse, servicii, preturi sau disponibilitatea acestora. Pentru ca acest scenariu sa devina cu adevarat realitate, va trebui ca sistemul informatic implementat sa fie disponibil non-stop si in tot acest timp el va opera gestiunea comenzilor, facturarea, procesarea platilor si remiterea banilor.

Cu exceptia cazului in care activitatea se bazeaza pe principiul plata in avans' sau alte metode de plata off-line, obtinerea banilor rezultati in urma unei vanzari online presupune o serie de procese de interactiune cu banci sau alte institutii financiare. Platile cu ajutorul cartilor de credit (credit card), banilor electronici (e-cash, cecurilor electronice sau al cardurilor inteligente (smart card) sunt principalele modalitati de plata folosite in comertul electronic Acestea pot fi integrate in sistemul dumneavoastra informatic, sau oferite in regim outsource de un furnizor de servicii de comert (CSP - Commerce Service Provider) care va intermedia platile de la terti.

Cea mai raspandita metoda de plata in comertul electronic este cea cu carte de credit Aceste tranzactii sunt protejate criptografic, iar modalitatea concreta de criptare face ca numai banca sau furnizorul de servicii pentru carduri de credit sa poata vedea numarul cartii de credit nu si comerciantul. Acest proces implica incheierea unor contracte cu institutii financiare, iar din punct de vedere tehnic presupune utilizarea unor tehnologii avansate de criptare si autentificare pentru securizarea mesajelor trimise prin internet Unul din primii pasi care trebuie facuti, este deschiderea unui cont la o institutie bancara care ofera servicii de tranzactionare online bazate pe carduri care vor trebui inchiriate pe o suma fixa, reprezentata de costul achizitionarii sau inchirierii echipamentelor si softului aferent necesare realizarii comunicarii securizate cu banca, precum si costuri variabile rezultate in urma comisioanelor percepute de banca la fiecare tranzactie. De regula institutia financiara va impune un volum minim de tranzactii lunare, percepand o suma minima platita indiferent de volumul vanzarilor.

Ca alternativa la implementarea unui sistem propriu, se poate apela la furnizori de servicii de plata (PSP) sau la furnizori de servicii de comert. PSP-ul actioneaza ca intermediar intre comerciant si posesorii de carduri oferind servicii de autorizare si plata online. El beneficiaza de conexiuni integrate online cu bancile care autorizeaza platile si realizeaza automat transferul banilor. Poate conferi clientilor statutul de comercianti web si, de regula, furnizeaza tot ceea ce este necesar pentru integrarea usoara a functiilor de procesare a cardurilor de credit in propriul site web. Pe langa o calitate mai buna a serviciilor oferite clientilor, cum ar fi suport tehnic permanent sau eliminarea unei parti semnificative a birocratiei specifice sectorului bancar, PSP-ii mai au si alte avantaje, cum ar fi: credibilitate financiara dovedita in fata bancilor ca urmare a unei relatii de mai lunga durata cu acestea (aspect extrem de important care lipseste de regula societatilor comerciale mai tinere), au contracte cu mai multi furnizori de carduri, opereaza cu mai multe banci, pot realiza conversia automata intre monedele diverselor tari si, nu in ultimul rand, practica un comision mult mai mic decat institutiile bancare.

Cumparatorul este pus in legatura online cu PSP-ul care-i va cere informatiile necesare pentru procesarea platii: tipul cardului, numarul acestuia, numele proprietarului si data expirarii cardului. Aceste informatii sunt transmise mai departe agentiei de carduri, impreuna cu suma totala de plata, comisionul, numarul de cont al magazinului si tipul tranzactiei dorite. Din acest moment tranzactia urmeaza calea obisnuita a oricarei tranzactii cu card de credit. Informatia este criptata si trimisa de catre procesorul de plati (PP) prin intermediul unei linii securizate de comunicatie catre un sistem de facilitati integrate numit INP (interchange network processor), fiecare marca de card de credit urmand a fi procesata de un INP distinct. Apoi se comunica pe o linie securizata cu banca, aceasta la randul ei contactand banca cumparatorului (cea care a emis card-ul folosit de client) pentru a verifica daca fondurile sunt disponibile, in caz afirmativ, tranzactia se finalizeaza si banca trimite un cod rezultat', sub forma unui numar de verificare catre PSP. PSP trimite mai departe acest cod catre softul care mijloceste cumparaturile si care proceseaza datele, anuntand apoi clientul ca tranzactia s-a efectuat cu succes sau a fost refuzata. Totul se intampla in interval de cateva secunde.

Din pacate, in Romania astfel de sisteme sunt implementate de foarte putine magazine virtuale. Solutiile alese de majoritatea comerciantilor pe internetul romanesc sunt plata ramburs, la livrare, prin mandat postal sau ordin de plata. Motivele sunt lesne de inteles, in consecinta, aceste magazine virtuale nu pot fi considerate comert electronic in toata puterea cuvantului, ci mai degraba cataloage de produse cu optiune de comanda online.

Promovare

Spre deosebire de un magazin clasic, in care potentialii clienti mai intra si din intamplare sau din curiozitate, pe web sansa ca cineva sa acceseze direct pagina este extrem de mica (pornind de la premisa ca nu a auzit niciodata de ea). Pentru a avea vizitatori, site-ul trebuie inscris la motoare de cautare si directoare web. Se poate apela si la publicitatea pe internet - bannere publicitare afisate pe diverse portaluri sau la marketingul prin e-mail. Bineinteles ca mai sunt si modalitatile clasice de promovare: spoturi TV sau radio, inserari in diverse publicatii, etc.

Actualizare

Informatiile nu trebuie lasate sa se invecheasca . Vizitatorii trebuie sa vada ca au in fata un site dinamic, cu continut mereu proaspat, sectiuni cu noutati, oferte speciale, concursuri sau alte facilitati asemanatoare ii va determina pe multi sa se intoarca cu placere la magazinul virtual astfel proiectat.

Mecanisme de plata electronica

Comertul electronic va putea evalua dincolo de un anumit nivel doar atunci cand consumatorii obisnuiti vor percepe un mecanism de plata electronic la fel de sigur ca cel obisnuit.

plata prin Internet - de indata ce a fost pus in functiune un sistem de vanzari on-line, comerciantul va putea vinde 24 ore pe zi, 7 zile pe saptamana, peste tot in lume pe unde a ajuns Internetul. Mai mult, cumparatorii si clientii potentiali vor avea acces la informatii de ultima ora referitoare la produse, servicii, preturi si disponibilitatea acestora. Dar comerciantul va trebui sa se asigure ca sistemul informatic sa fie disponibil non-stop si in tot acest timp el va opera gestiunea comenzilor, facturarea, procesarea platilor si remiterea banilor;

solutiile de plata in timp real - cu exceptia cazurilor off-line, obtinerea banilor rezultati in urma unei vanzari de tip on-line presupune o serie de procese de interactiune cu banci sau alte institutii financiare. In prezent achitarea unei facturi se realizeaza cu ajutorul cartilor de credit (credit card), banilor electronici (e-cash), cecurilor electronice sau al cardurilor inteligente (smart card) care sunt principalele metode de plata folosite in comertul electronic. Metodele de plata pot fi integrate fie la nivelul comerciantului, in sistemul informatic al acestuia, fie oferite outsource de un furnizor de servicii de comert (CSP - Commerce Service Provider) care va gestiona/intermedia platile de la terti;

cartea de credit - reprezinta cea mai utilizata forma de plata prin Internet. Utilizarea acesteia este simpla: clientii care navigheaza in cadrul unui sit web si decid sa achizitioneze un produs sau serviciu trebuie sa introduca informatiile despre cartea de credit prin intermediul unui formular HTML. Continutul completat (tipul cardului, numarul acestuia, numele proprietarului si data expirarii cardului) este trimis sitului web, unde informatia este colectata si trimisa la banca. Daca situl comerciantului are stabilita o legatura directa cu banca, atunci este posibila plata pe loc in cazul in care exista credit suficient pentru a plati bunurile comandate. Tranzactiile on-line care folosesc plata cu carduri sunt protejate criptografic, iar modalitatea concreta de criptare asigura faptul ca numai banca sau furnizorul de servicii pentru carti de credit vor putea avea acces la numarul cartii de credit, nu si comerciantul. O prima faza implica incheierea unor aliante /contracte cu institutii financiare, utilizand tehnologii avansate de criptare si autentificare pentru securizarea mesajelor trimise prin Internet. Comerciantul trebuie sa-si deschida un cont la o banca oferind servicii de tranzactionare on-line bazata pe carduri. Tehnologia de criptare folosita in mod curent este SSL (Secure Socket Layer) elimina cu succes posibilitatea ca un intrus sa obtina numarul cardului, presupunand ca el intercepteaza datele astfel criptate. Dezavantajul consta in faptul ca SSL nu permite comerciantului sa se asigure ca persoana care foloseste cardul intr-o tranzactie este chiar detinatorul acestuia. De asemenea, SSL nu ofera nici o cale prin care clientul sa afle daca situl comerciantului este cu adevarat autorizat sa accepte plata cu carti de credit si ca nu este doar un sit pirat, proiectat cu scopul de a colectiona datele despre astfel de carduri (crackers). Problema a fost rezolvata prin aparitia unor noi tehnologii denumite SET (Security Electronic Transaction), dezvoltata de MasterCard si Visa. Set rezolva problema autentificarii prin asignarea unor certificate digitale atat clientului, cat si comerciantului. Set ofera o securitate sporita fata de cea traditionala. Pentru a nu mai da acces comerciantului la numarul de card al clientului, SET il cripteaza de o maniera care asigura faptul ca doar consumatorul si institutiile financiare abilitate au acces la el. Fiecare dintre actorii implicati intr-o tranzactie (comerciant, client sau institutie financiara) foloseste certificatul SET privat, care joaca si rol de autentificare, in conjunctie cu cheile publice asociate certificatelor care identifica pe ceilalti actori. In practica, o companie terta (Verisign) ofera serviciul de a furniza certificate digitale clientilor sai, detinatorii de carti de credit. Cat priveste comerciantul, procesul este similar: in momentul efectuarii unei cumparaturi on-line, inainte de a se realiza vreun schimb de date in vederea demararii tranzactiei, software-ul care integreaza tehnologia SET valideaza identitatea comerciantului si a detinatorului cartii de credit, procesul de validare consta in verificarea certificatelor emise de furnizori autorizati de astfel de servicii;

facturile de plata (e-invoice) - cartile de credit reprezinta cea mai comuna solutie in modelul B2C si B2B. Volumul tranzactiilor in sectorul B2B este mult mai mare fata de volumul tranzactiilor efectuate prin intermediul cartii de credit. Un alt motiv este ca majoritatea companiilor au utilizat deja acest instrument in forma sa clasica si schimbarea modalitatii de plata ar impune o reorganizare a proceselor economice, care ar necesita costuri prea mari. Procedura de plata prin e-invoice este urmatoarea - valoarea tranzactiei necesare este transmisa automat la furnizori printr-un sistem informatic, acestea raspund printr-o factura care urmeaza a fi platita prin diferite mijloace. Sunt necesare metode securizate pentru filtrarea accesului la bazele de date interne ale companiei. Standardul EDI (Electronic Data Interchange) ofera o infrastructura in acest scop. Problema majora o constituie legislatia comerciala a fiecarei tari care ar trebui sa recunoasca valabilitatea facturilor electronice. Avantajele facturii electronice tin de reducerea costurilor pentru transmitere si de micsorarea posibilitatilor de aparitie a erorilor;

cecurile electronice (Internet cheques) - NetCheque - un sistem dezvoltat la Information Sciences Institute of the University of Southern California - www.usc.edu . Cumparatorul si vanzatorul trebuie sa aiba un cont deschis pe situl NetCheque. Pentru asigurarea securitatii este folosita identificarea prin protocolul Kerberos si parola. Pentru a plati prin cec, trebuie instalata la client un software special care lucreaza asemenea unui carnet de cecuri. Un client poate trimite un cec criptat prin intermediul acestui software. Comerciantul poate ridica banii de la banca sau poate folosi cecul digital pentru o tranzactie cu alt furnizor. Un cont special din retea verifica validitatea cecului si in caz afirmativ trimite un mesaj de accept comerciantului care va livra apoi bunurile. Exemple: PayNow, serviciu dezvoltat de CiberCash - www.cibercash.com sau echech - www.echeck.org

cartile de debit (debit cards) necesita introducerea unui numar personal de identificare (PIN) si utilizarea unui dispozitiv hardware care sa citeasca informatia pe banda magnetica a cartilor de credit. - nu este posibila pe Internet. Posibil sa fie inlocuite benzile magnetice cu cipurile electronice folosite pentru smart card-uri, ce vor inlocui cartile de credit.

banii electronici (e-cash) - utilizeaza un software pentru a salva pe disc magnetic echivalentul banilor lichizi intr-o forma digitala. Avantajul acestui sistem il reprezinta costul transferului de bani care este aproape nul (costul conexiunii la Internet). Pentru a primi bani este necesara accesarea unei casierii automate (virtuale) disponibile pe web sau deplasarea la un automat bancar, de unde pot fi ridicati banii electronici direct din contul bancii sau prin sistemul de plata cu carte de credit. Dificultatea folosirii e-cash reprezinta implementarea unei securitati care sa garanteze ca acestea nu pot fi alterati. Utilizarea tehnologiilor de criptare, a semnaturilor digitale, si a semnaturilor electronice ajuta la reducerea posibilitatilor de frauda care sa faca imposibil de utilizat mai mult de o singura data. O alta conditie este ca banii electronici nu trebuie sa dezvaluie identitatea persoanei care a platit cu ei, trebuie sa fie anonimi. Sistemul de plata nu trebuie sa aiba ca intermediar o banca, doar intre cei doi parteneri implicati. Exemple:

www.digicash.com
www.cybercash.com
www.milicent.digital.com

cardul inteligent (smart card) este popular in Europa Occidentala. Permite stocarea informatiilor suplimentare despre clienti in afara de pastrarea banilor pe cipul cardului. Banii de pe card sunt salvati intr-o forma criptata si sunt protejati printr-o parola. Pentru a plati este necesara introducerea acestuia intr-un terminal hardware. Dispozitivul necesita o cheie speciala emisa de banca pentru a se transfera banii in alta directie. Putem merge la banca, incarca cardul si sa platim prin Internet. Avantaje: securitate, simplitatea utilizarii, efectuarea directa fara intermediari, costul scazut al tranzactiilor. Mondex - Marea Britanie, Geld-Karte - Germania.

Momentul efectuarii platii electronice

Plata inainte de tranzactie - un sistem de acest gen functioneaza prin salvarea banilor digitali pe un disc sau pe un smart card - care poate fi considerat ca o forma digitala a banilor obisnuiti. Un fisier care contine banii digitali este numit portofel virtual (virtual wallet) si pot fi folositi oricand pentru a plati on-line produse si servicii. Avantajul portofelului virtual consta in faptul ca este anonim. Dezavantaj - daca este pierdut, banii sunt pierduti.

Plata pe loc necesita accesul direct la baza de date interna a bancii si a ofertantului de plata electronica, iar securitatea trebuie sa fie implementata mai strict (cartile de debit);

Plata dupa tranzactie. Sistemul cartilor de credit este cea mai comuna forma de asemenea plata.

E-commerce-ul romanesc la sfarsitul anului 2004

Conform Visa International: in trimestrul II 2004, s-au efectuat circa 7500 de tranzactii comerciale online unde romanii au cheltuit aproximativ 1 milion $ dintre care: 44% din suma s-a cheltuit in SUA, 20% in Italia, 15% in Anglia, iar restul in magazine din alte tari. Valoarea medie a unei tranzactii a fost de circa $13

Tot conform Visa International: In aceeasi perioada, in magazinele virtuale romanesti, s-au cheltuit circa. 8.000$, cu o medie de 2 tranzactii / zi.

Cei care au cheltuit cel mai mult au fost cetatenii americani (31%) urmati de britanici (30%).

Conform RomCard: 700.000 detinatori de carduri, 30 comercianti configurati pentru tranzactii online si 4 banci ofera suport in Romania pentru tranzactii online (Alpha Bank, BCR, BCIT si Raiffeisen) prin programele Verified by Visa si 3D Secure.

Proiectarea si programarea in PHP a magazinului virtual

Obiective

Site-ul proiectat are ca obiectiv promovarea si vanzarea on-line de produse de imbracaminte ce se afla in stocul magazinului Moda Fashion. Fiecare vanzare va fi precedata de o comanda, care va trebui confirmata pentru ca livrarea sa aiba loc. Confirmarea se va face prin e-mail, astfel ca serverul pe care magazinul va fi instalat va trebui sa fie capabil sa trimita si sa receptioneze e-mail-uri.

Structura magazinului si baza de date

Structural, magazinul este compus din trei sectiuni:

Sectiunea de prezentare;

Sectiunea de client;

Sectiunea de administrare.

2.1. Sectiunea de prezentare se adreseaza vizitatorului obisnuit, neinregistrat, care poate afla informatii despre magazin, poate avea acces la catalogul de produse si poate afla mai multe detalii despre firma, magazin sau un anume produs prin completarea unui formular. Raspunsul va fi trimis prin e-mail utilizatorului. Principalele pagini care sunt accesibile acestui tip de utilizator (guest) sunt: index.php, magazine.php, produse.php si contact.php. Pentru a avea acces la comenzi, un oaspete al magazinului virtual va trebui sa se inregistreze, folosind pagina usernou.php.

2.2. Sectiunea de client este disponibila utilizatorilor inregistrati. Acestia au posibilitatea, pe langa facilitatile obisnuite oferite unui oaspete, sa comande produse. Pentru aceasta ei au la dispozitie un cos de cumparaturi in care pot adauga sau din care pot scoate produse pe parcursul navigarii. La sfarsit pot trimite comanda printr-un singur click. Paginile principale aflate la dispozitia unui client sunt comanda.php si mod_user.php, unde clientii au acces la datele personale, pe care le pot modifica dupa dorinta, inclusiv parola de acces.

2. Sectiunea de administrare este accesibila administratorului magazinului virtual, care poate fi un angajat cu acces la produsele magazinului, nu neaparat programatorul magazinului. Un administrator are acces la toate paginile magazinului, in plus el putand adauga sau modifica produse, vizualiza comenzi si formulare de contact ale utilizatorilor, modifica date, niveluri de acces ale utilizatorilor ori stergere utilizatori, raspunde la mesaje sau stergerea lor, prelucrare comenzi sau stergere manuala a acestora in cazul in care nu sunt confirmate. De asemenea, un administrator nu are acces la parola unui utilizator, el neputandu-se loga ca si client folosind numele si parola acestuia. Este o procedura normala in e-commerce, toate parolele fiind stocate criptat in baza de date, dandu-i clientului impresia de siguranta. Oricum, un administrator are acces la intreaga baza de date, putand manipula informatia dupa dorinta.

2. Baza de date folosita este cea apartinand serverului MySQL si contine 7 tabele: useri, dateuseri, categorii, produse, cart,    comanda, contact.

Tabela useri este de tip MyISAM si are urmatoarele campuri:

Camp

Tip

Proprietati

Nul

Setare de baza

Extra

id 

bigint(4)

Nu 

auto_increment 

nume 

varchar(16)

Nu 

parola 



varchar(16)

Nu 

level 

tinyint(1)

Nu 

id - id-ul unic al utilizatorului, fiind si index primar

nume - numele utilizatorului, asa cum va fi el recunoscut de sistem. Scriptul de inregistrare va obliga acest camp sa aiba o dimensiune intre 6 si 16 caractere.

parola - parola criptata a utilizatorului. Si in acest caz, scriptul va conditiona dimensiunea parolei intre 6 si 16 caractere.

level: nivelul de acces: 0 - administrator, 1 - client

Tabela dateuseri este de tip MyISAM si are urmatoarele campuri:

Camp

Tip

Proprietati

Nul

Setare de baza

Extra

id 

bigint(20)

Nu 

auto_increment 

nume 

varchar(70)

Nu 

firma 

varchar(100)

Nu 

localitate 

varchar(50)

Nu 

email 

varchar(100)

Nu 

telefon 

varchar(20)

Nu 

mobil 

varchar(20)

Nu 

fax 

varchar(20)

Nu 

user 

varchar(20)

Nu 

data 

date

Nu 

id - indexul primar al tabelei;

nume - numele complet al clientului;

firma - camp facultativ, reprezinta firma careia ii apartine clientul;

localitate - localitatea de resedinta;

email - adresa de e-mail a clientului;

telefon - camp facultativ, destinat pentru memorarea telefonului fix al clientului, pentru contactare;

mobil- camp facultativ, destinat pentru memorarea telefonului mobil al clientului, pentru contactare;

fax - camp facultativ, destinat pentru memorarea faxului clientului, pentru contactare;

user - numele de utilizator, identic cu campul nume din tabela useri;

data - data inregistrarii clientului.

Tabela categorii este de tip MyISAM si are urmatoarele campuri:

Camp

Tip

Proprietati

Nul

Setare de baza

Extra

id 

bigint(20)

Nu 

auto_increment 

numecat 

text

Nu 

id - indexul primar al tabelei;

numecat - numele categoriei.

Tabela produse este de tip MyISAM si are urmatoarele campuri:

Camp

Tip

Proprietati

Nul

Setare de baza

Extra

id 

bigint(20)

Nu 

auto_increment 

categorie 

text

Nu 

nume 

text

Nu 

cod 

varchar(15)

Nu 

pret 

varchar(20)

Nu 

um 

varchar(10)

Nu 

culoare 

text

Nu 

marime 

varchar(20)

Nu 

fisier 

text

Nu 

fisierm 

text

Nu 

tag 

varchar(20)

Nu 

descriere 

text

Nu 

vitrina 

tinyint(2)

Nu 

unicat 

tinyint(2)

Nu 

id - indexul primar al tabelei;

categorie - categoria in care se afla produsul, avand corespondent in campul    numecat al tabelei categorii;

cod - codul produsului;

pret - pretul produsului;

um - valuta;

culoare - culoarea produsului;

marime - marimea produsului;

fisier - numele fisierului care stocheaza imaginea produsului;

fisierm - numele fisierului de dimensiune redusa care stocheaza imaginea produsului;

tag - eticheta produsului - aceasta poate avea una din urmatoarele valori: de vanzare, indisponibil, oferta si special, valori implementate prin program;

descriere - camp de tip text, care memoreaza caracteristici distincte ale produsului;

vitrina - camp cu doua valori, care stabileste daca produsul va fi afisat ca primul pe coperta catalogului, in dreptul categoriei corespunzatoare;

unicat - camp care stabileste daca produsul este unicat sau nu.



Tabela cart este de tip MyISAM si are urmatoarele campuri:

Camp

Tip

Proprietati

Nul

Setare de baza

Extra

id 

bigint(20)

Nu 

auto_increment 

user 

varchar(20)

Nu 

data 

date

Nu 

id_prod 

bigint(20)

Nu 

numeprod 

text

Nu 

buc 

int(4)

Nu 

nr_cart 

bigint(20)

Nu 

id - indexul primar al tabelei;

user - numele de utilizator, identic cu campul nume din tabela useri;

data - data comenzii;

id_prod - id-ul produsului comandat;

numeprod - numele produsului comandat, lasat aici pentru o mai rapida folosire a tabelei;

buc - numarul de produse comandate;

nr_cart - numarul de ordine al cosului de cumparaturi.

Tabela comanda este de tip MyISAM si are urmatoarele campuri:

Camp

Tip

Proprietati

Nul

Setare de baza

Extra

id 

bigint(20)

Nu 

auto_increment 

nr_cart 

bigint(20)

Nu 

data 

date

Nu 

valoare 

varchar(20)

Nu 

confirmat 

varchar(4)

Nu 

stare 

varchar(100)

Nu 

observatii 

text

Nu 

vazut 

varchar(4)

Nu 

id - indexul primar al tabelei;

nr_cart - numarul de ordine al cosului de cumparaturi, corespondent cu campul cu acelasi nume din tabela cart.

data - data comenzii;

valoare - valoarea totala a comenzii;

confirmat - camp disponibil pentru confirmare. Daca clientul trimite un e-mail de confirmare, acest camp va fi setat la valoarea da prin cod, altfel, comanda nu va putea fi confirmata si nu va fi luata in considerare

stare - starea onorarii comenzii - aceasta poate avea una din urmatoarele valori: aplicata, confirmata, in procesare si confirmata, valori implementate prin program;

observatii - camp aflat la dispozitia administratorului, pentru adnotari;

vazut - camp cu doua valori, indicand daca aceasta comanda a fost sau nu vizualizata de catre administrator, foarte util in cazul unui numar mare de comenzi, pentru ca se poate realiza foarte usor un filtru al vizualizarii.

Tabela contact este de tip MyISAM si are urmatoarele campuri:

Camp

Tip

Proprietati

Nul

Setare de baza

Extra

id 

bigint(20)

Nu 

auto_increment 

nume 

varchar(70)

Nu 

firma 

varchar(100)

Nu 

localitate 

varchar(50)

Nu 

email 

varchar(100)

Nu 

telefon 

varchar(30)

Nu 

mobil 

varchar(30)

Nu 

fax 

varchar(30)

Nu 

observatii 

text

Nu 

data 

varchar(20)

Nu 

ora 

varchar(20)

Nu 

vazut 

char(3)

Nu 

id - indexul primar al tabelei;

nume - numele vizitatorului din formularul Contact;

firma - firma vizitatorului, daca exista, din formularul Contact;

localitate - localitatea vizitatorului din formularul Contact;

email - adresa de e-mail;

telefon - telefonul fix de contact al vizitatorului din formularul Contact;

mobil - telefonul mobil de contact al vizitatorului din formularul Contact;

fax - numarul de fax de contact al vizitatorului din formularul Contact;

observatii - textul de contact;

data - data trimiterii formularului;

ora - ora trimiterii formularului;

vazut - camp pentru filtrarea formularelor vazute de catre administrator.

Tabela contact poate deveni foarte importanta ca instrument al strategiei de marketing al magazinului virtual. Chiar daca se putea opta foarte usor pentru trimiterea formularului prin e-mail, a fost aleasa stocarea acestora in baza de date pentru a putea avea mai usor acces la problemele clientilor. Stiind ca o casuta de mail poate deveni foarte aglomerata de e-mailuri nesolicitate, problema ar fi ca, in cazul unui numar foarte mare de mesaje, unele din ele sa devina potential pierdute. Stocarea acestora intr-o tabela provoaca atat atentionarea administratorului, cat si necesitatea ca acesta sa le citeasca, ele fiind marcate ca necitite initial, starea acestora schimbandu-se numai dupa acesta le deschide.

Functionare

Site-ul este structurat sub forma de tabel, fiind impartit in trei parti: header, continut si footer. Header-ul si footer-ul se vor repeta in fiecare pagina, functia include("nume_fisier.php") permitand scrierea codului doar o singura data, includerea acestuia facandu-se foarte usor.

Structura fiecarei pagini va fi urmatoarea:

<?

include ("header.php");

// instructiuni script php

include ("footer.php");

?>

Scripturile vor implica folosirea anumitor functii, cum ar fi, de exemplu aceea de conectare la baza de date MySQL, sau folosirea unor variabile globale. Acestea vor fi memorate intr-un fsier de functii, numit taxe_func.php, ce se va include in fiecare pagina. Din acest motiv, includerea acestui fisier va avea loc in codul fisierului header.php. De asemenea, va fi inclus un fisier numit stil.inc, care va contine cod css, pentru stabilirea stilului codului html generat de scripturi. Acest fisier respecta specificatiile css si are urmatorul continut:



<style>

H1

H2

H3

H4

H5

A

A:Hover

HR

</style>

Astfel, daca administratorul decide sa schimbe formatul afisarii informatiei in pagina, nu va trebui decat sa modifice o linie din acest fisier pentru a avea rezultatul scontat de-a lungul intregului site.

Scripturile vor trebui sa recunoasca un utilizator din momentul logarii, pana in cel al de-logarii. Acest lucru se poate realiza foarte usor prin intermediul sesiunilor. Controlul sesiunilor reprezinta o modalitate nativa a PHP-ului de a recunoaste un utilizator in timpul navigarii prin site.

Sesiunile in PHP sunt date de un numar unic de identificare generat de server (Session ID) si stocat in partea de client a aplicatiei (se afla stocat in calculatorul) vizitatorului, fie prin intermediul unei cookie, fie transmis prin intermediul URL-ului de la pagina la pagina. Un ID Session functioneaza ca o cheie ce permite inregistrarea pe server a unei variabile numite session variable, a carei continut este stocat in partea de server. Astfel, pe toata durata de viata a acestei variabile, serverul va "sti", bazat pe Session ID, starea clientului ce a cerut accesul. Astfel, daca un client se logheaza folosind un username si o parola, se va crea o variabila numita valid_user, generand un cookie pe calculatorul clientului, pana la de-logarea acestuia sau avand o durata de viata temporal stabilita. Acest lucru se face prin folosirea functiilor PHP session_register(), respectiv session_destroy().

In cazul nostru, exista doua fisiere, auth.php si auth_admin.php, care gestioneaza starea a doua variabile, $valid_user si $valid_admin, pentru un client (utilizator de nivel 1) si administrator (utilizator de nivel 0). Daca se include unul din acest fisiere intr-o pagina, scriptul acestora va verifica starea variabilelor de sesiune generate, cu ajutorul variabilelor globale $_SESSION, cu ajutorul instructiunilor de atribuire $_SESSIONa'userid's=$valid_user; si $_SESSIONa'password's=$password

La o prima logare, fisierul login.php va avea un cod de genul:

$query ='select * from useri '.' where nume='$userid' '.' and parola=password('$password')';

$result =mysql_query($query) or die ('invalid Query');

$nr=mysqli_num_rows($result);

In acest caz, s-a interogat tabela useri, unde s-a cautat numele de utilizator si parola acestuia pentru corespondenta acestora cu doua variabile transmise de formularul de logare:

In continuare se verifica daca numarul de linii rezultate din interogare este mai mare ca zero, ceea ce inseamna ca utilizatorul si parola exista:

if (mysqli_num_rows($result)>0 )

Valorile pentru $userid si $password se vor stoca asadar pe server ca si variabile globale $_SESSIONa'valid_user's, respectiv $_SESSIONa'password's.

Fisierul auth.php va verifica starea acestor variabile. In cazul in care nu le identifica, va proceda la afisarea unui mesaj de logare. Daca le gaseste, le va pasa mai departe scriptului ca doua variabile obisnuite, cea de nume fiind folosita pentru afisarea in orice moment, in pagina, a username-ului clientului logat. Este de la sine inteleasa utilitatea unei asemenea proceduri: daca un utilizator acceseaza o pagina ce presupune identificare, scriptul va realiza acest lucru si va verifica identitatea clientului.

Ulterior, pe toata durata sesiunii, in header va fi afisat, in locul obisnuitei interogari de logare:

urmatoarea fereastra:

daca username-ul a fost popescu. Acest lucru indica vizual si transparent faptul ca utilizatorul este logat si recunoscut de catre scripturile ce ruleaza pe server in acel moment, pe toata durata sesiunii.

Scriptul din fisierul logout.php va realiza distrugerea tuturor variabilelor de sesiune create:

$result =session_unregister('valid_user');

session_destroy();

adica utilizator, precum si ale cosului de comenzi si ale comenzii, daca acestea au existat:

if ($_SESSIONa'cart's)

if ($_SESSIONa'com's)

Structurarea magazinului virtual propune vizitatorului parcurgerea anumitor pasi: vizitare, inregistrare si comanda produselor.

Vizitarea propune mai multe pagini, printre care cea de start - index.php - care prezinta magazinul virtual, cea de imagini din magazinul fizic si cea a catalogului, pagini ilustrate in continuare:

index.php

magazine.php

produse.php

In interiorul catalogului, fiecare categorie va contine mai multe produse, in functie de stocul curent aflat in baza de date:

Fiecare imagine din categorie va contine un link spre caracteristicile produsului respectiv (gama de marimi, culori, pret, descriere, etc).

De asemenea, utilizatorul, chiar si cel neinregistrat va putea completa un formular de contact, in sectiunea contact.php

contact.php

Navigarea intre aceste pagini se face cu ajutorul unui meniu grafic, realizat cu ajutorul tehnologiei Javascript:

Pentru accesul la alte sectiuni, utilizatorul trebuie fie sa se logheze, fie sa se inregistreze. Inregistrarea presupune accesul link-ului "Utilizator nou" din header sau prin doi pasi, accesarea aceluiasi link din pagina login.php, disponibila in meniu.

Pagina de inregistrare arata in felul urmator:

Formularul retine datele deja introduse si incarca din nou aceasta pagina, corespunzator variabilei $submitadduser salvate odata cu apasarea butonului "Inregistrare". Daca exista, inseamna ca s-a apasat butonul, iar sectiunea din script va verifica datele introduse: in primul rand va verifica existenta campurilor obligatorii, precum si marime lor, avand in vedere ca atat username-le cat si parola au lungimi minime si maxime bine determinate. Folosind functia valid_email($email) se va verifica validitatea semantica a adresei de e-mail:

function valid_email($address)

Daca una din conditii nu este indeplinita, scriptul va returna o eroare, determinand utilizatorul sa reintroduca datele eronate. Daca acestea au fost corectate, scriptul va afisa un mesaj de confirmare si serverul va inregistra in tabelele useri si dateuseri noul utilizator, invitand utilizatorul sa se logheze cu username-ul si parola alese, pentru a putea fi inregistrat in variabilele de sesiune.

In continuare, utilizatorul are acces la partea de comenzi, unde poate naviga si comanda, cosul de cumparaturi retinand produsele cu ajutorul unei variabile de sesiune numite "cart":

Dupa alegerea tuturor produselor, utilizatorul va hotari daca realizeaza comanda, o modifica sau o anuleaza. Pentru primele doua optiuni, va alege link-ul din partea dreapta a paginii: "Comanda sau modifica":

Aici se poate modifica o anumita cantitate de produse sau se poate elimina un produs din cosul de cumparaturi. Dupa verificare, se poate trece la validarea comenzii, primul pas fiind acela al apasarii butonului "Valideaza". In acest moment, in tabela comanda se va insera o noua inregistrare, cu datele cart-ului utilizat. Vizual, inregistrarile din aceasta tabela arata astfel:

id

nr_cart

data

valoare

confirmat

stare

observatii

vazut

Editare

Sterge

NU

submitted

DA

Editare

Sterge

NU

submitted

NU

Editare

Sterge

NU

submitted

NU

Editare

Sterge

NU

submitted

NU

Editare

Sterge

NU

submitted

NU

Editare

Sterge

NU

submitted

NU

Odata cu scrierea in tabela a comenzii, scriptul trimite un e-mail la adresa clientului pentru o noua confirmare:

$queryaddcmd=mysql_query('insert into comanda set nr_cart='$cart', valoare='$total', vazut='$vazut', stare='$stare', data='$data', confirmat='$confirmat'')or die ('Nu pot insera in comanda');

session_unregister('com');

session_destroy;

session_unregister('cart');

session_destroy;

echo '<tr><td align=center><h3>Comanda trimisa. Va multumim. <br>

In scurt timp veti primi un e-mail pe adresa cu care v-ati inregistrat, <br>

pentru a confirma comanda</h3></td></tr>

<tr><td align=t'centert'><a href=t'produse.phpt'>Catalog Charisma</a></td></tr>

<tr><td align=t'centert'><a href=t'login.phpt'>Pagina ta</a></td></tr>

<tr><td align=t'centert'><a href=t'logout.phpt'>Logout</a></td></tr>

//trimitere e-mail pentru confirmarea comenzii

$queryuser=mysql_query('select * from dateuseri where user='$valid_user'') or die ('Nu pot selecta din dateuseri');

$rown=mysqli_fetch_array($queryuser);

$nume=$rowna'nume's;

$email=$rowna'email's;

$nm='Moda Fashion';

$nme='modafashionidainet.ro';

$to = $email;

$secret='modafashion';

$from= stripslashes($nm).'<'.stripslashes($nme).'>';

$subject='Confirmare comanda Moda fashion;

$idconf=md5($email.$cart.$secret);

$html_data='Stimate <strong>'.$nume.'</strong>, <br>

Ati comandat mai multe produse pe site-ul magazinului <a href=t'https://www.modafashion.dap.rot'><strong>Moda Fashion</strong></a><br>

Pentru confirmarea comenzii dvs. va rugam sa apasati <a href=t'https://www.modafashion.dap.ro/comconfirm.php?email=$email&cart=$cart&idconf=$idconft'>aici</a> <br>

Va multumim ca ati comandat de la noi!<br>

Cu stima,<br>

$ownername,<br>

<em>- executive manager -</em>';

E-mail-ul va contine un hash (un text unic generat de script) care va fi decodat cu ajutorul paginii comconfirm.php. Variabila $idconf este un string criptat, format din alaturarea e-mailului, numarului cartului si unei variabile secrete, stabilite anterior. Toate aceste valori, luate separat sunt transmise in text, mai putin cheia secreta (in cazul nostru criptarea cuvantului "modafashion"). Criptarea acestor trei elemente alaturate ne da un cod de felul urmator:

idconf=9ba0174b7ed54e7fbc33dbd8d18db97e, care este rezultatul functiei:

$idconf=md5($email.$cart.$secret);

La decriptare, cunoscandu-se atat e-mail-ul clientului, cat si numarul cartului, acestea fiind transmise in clar in link-ul e-mailului, si de asemenea cunoscandu-se cheia secreta, se va putea reface usor variabila $idconf, pentru confirmare.

Administrarea site-ului se face prin accesarea meniului admin.php. Toate legaturile ce privesc administrarea vor avea inclus fisierul authadmin.php, care va determina autentificarea ca administrator a utilizatorului sau afisarea unui formular de autentificare (loginadmin.php). Odata autentificat, administratorul are acces la mai multe pagini:

utilizatori - se pot modifica datele despre utilizatori, precum si parola sau nivelul de acces al acestora

categorii - se pot adauga, modifica sau sterge categorii de produse

adauga produse - se pot adauga produse, in functie de categoriile existente:

modifica produse - permite modificarea caracteristicilor produselor

mesaje - afiseaza mesajele primite prin intermediul formularului de contact. Acestor mesaje li se poate raspunde, sau se pot sterge.

comenzi - se pot vizualiza comenzile, detaliat, se poate vedea starea lor, daca o comanda este validata de client sau nu, se poate modifica starea onorarii sale, se poate raspunde clientului punctual, sau pur si simplu se poate sterge aceasta comanda:

logout - realizeaza de-logarea administratorului





Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 4365
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved