Application de site E-Commerce [Code-Source]

Comme vous l’avez peut être vu passer sur twitter, j’ai du faire pour les cours une application e-commerce très basique. J’ai choisis de la faire avec Zend. Et du coup je partage le code ici ;) . Cette application est très simplifié : il n’y a qu’une page produit, avec la possibilité d’ajouter des produits dans un panier et ensuite de gérer son panier. Il y a aussi la toute la partie gestion des utilisateurs : connexion, enregistrement, déconnexion etc… Et enfin il y a une page paiement qui vérifie les informations de la carte bancaire.

Quelques points techniques abordés dans cette application :

  • Bootstrap (Zend_Application)
  • Controller, View, Model (MVC)
  • Mapping de base de données (ORM) (Zend_Db_Table)
  • Formulaires, Validations, Décorateurs (Zend_Form, Zend_Validate)
  • Layout et Aides de vue (Zend_View_Helper)
  • Authentification (Zend_Auth)
  • Session (Zend_Session)
  • Cookie
  • Zend_Text_Figlet (Bonus ca :) )

voila quelques screenshots :

Et enfin les sources à télécharger

Articles en rapport :

13 Commentaires

creatixmars 19th, 2010 at 23 h 47 min

Merci du code :) je vais voir ça, je souhaiterais faire un cms moi ^^

Gregmars 20th, 2010 at 22 h 36 min

Des qu’il est fait, je le poste ici si tu veux ;)

acaciamars 24th, 2010 at 18 h 04 min

j’ai besoin d’aide je veux developper un site de commerce electronique avec zend et je trouve beaucoup de difficulté dans la direction des pages et definition des url (je suis debutante)

Gregmars 24th, 2010 at 18 h 34 min

@acacia : n’hesites pas a regarder sur le site http://www.z-f.fr/ Il y a un très bon Forum :D

RedHmai 13th, 2010 at 11 h 50 min

Bonjour et merci d’avoir partager

Cependant pourquoi le dossier Form est dans le Dossier Models ?

RedHmai 13th, 2010 at 11 h 56 min

Le script sql ne marche pas

le voici corrigé

CREATE TABLE IF NOT EXISTS `produits` (
`produitId` int(20) NOT NULL AUTO_INCREMENT,
`nom` varchar(20) NOT NULL,
`description` text NOT NULL,
`prix` float NOT NULL,
PRIMARY KEY (`produitId`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=51 ;

INSERT INTO `produits` (`produitId`, `nom`, `description`, `prix`) VALUES
(1, ‘Produit N° 0′, ‘Description N° 0′, 13),
(2, ‘Produit N° 1′, ‘Description N° 1′, 11),
(3, ‘Produit N° 2′, ‘Description N° 2′, 11),
(4, ‘Produit N° 3′, ‘Description N° 3′, 5),
(5, ‘Produit N° 4′, ‘Description N° 4′, 16),
(6, ‘Produit N° 5′, ‘Description N° 5′, 1),
(7, ‘Produit N° 6′, ‘Description N° 6′, 1),
(8, ‘Produit N° 7′, ‘Description N° 7′, 12),
(9, ‘Produit N° 8′, ‘Description N° 8′, 14),
(10, ‘Produit N° 9′, ‘Description N° 9′, 12),
(11, ‘Produit N° 10′, ‘Description N° 10′, 10),
(12, ‘Produit N° 11′, ‘Description N° 11′, 19),
(13, ‘Produit N° 12′, ‘Description N° 12′, 15),
(14, ‘Produit N° 13′, ‘Description N° 13′, 11),
(15, ‘Produit N° 14′, ‘Description N° 14′, 15),
(16, ‘Produit N° 15′, ‘Description N° 15′, 10),
(17, ‘Produit N° 16′, ‘Description N° 16′, 4),
(18, ‘Produit N° 17′, ‘Description N° 17′, 15),
(19, ‘Produit N° 18′, ‘Description N° 18′, 6),
(20, ‘Produit N° 19′, ‘Description N° 19′, 13),
(21, ‘Produit N° 20′, ‘Description N° 20′, 11),
(22, ‘Produit N° 21′, ‘Description N° 21′, 6),
(23, ‘Produit N° 22′, ‘Description N° 22′, 10),
(24, ‘Produit N° 23′, ‘Description N° 23′, 17),
(25, ‘Produit N° 24′, ‘Description N° 24′, 7),
(26, ‘Produit N° 25′, ‘Description N° 25′, 1),
(27, ‘Produit N° 26′, ‘Description N° 26′, 0),
(28, ‘Produit N° 27′, ‘Description N° 27′, 8),
(29, ‘Produit N° 28′, ‘Description N° 28′, 17),
(30, ‘Produit N° 29′, ‘Description N° 29′, 20),
(31, ‘Produit N° 30′, ‘Description N° 30′, 17),
(32, ‘Produit N° 31′, ‘Description N° 31′, 9),
(33, ‘Produit N° 32′, ‘Description N° 32′, 11),
(34, ‘Produit N° 33′, ‘Description N° 33′, 7),
(35, ‘Produit N° 34′, ‘Description N° 34′, 15),
(36, ‘Produit N° 35′, ‘Description N° 35′, 6),
(37, ‘Produit N° 36′, ‘Description N° 36′, 9),
(38, ‘Produit N° 37′, ‘Description N° 37′, 16),
(39, ‘Produit N° 38′, ‘Description N° 38′, 19),
(40, ‘Produit N° 39′, ‘Description N° 39′, 3),
(41, ‘Produit N° 40′, ‘Description N° 40′, 8),
(42, ‘Produit N° 41′, ‘Description N° 41′, 8),
(43, ‘Produit N° 42′, ‘Description N° 42′, 1),
(44, ‘Produit N° 43′, ‘Description N° 43′, 2),
(45, ‘Produit N° 44′, ‘Description N° 44′, 19),
(46, ‘Produit N° 45′, ‘Description N° 45′, 16),
(47, ‘Produit N° 46′, ‘Description N° 46′, 13),
(48, ‘Produit N° 47′, ‘Description N° 47′, 3),
(49, ‘Produit N° 48′, ‘Description N° 48′, 10),
(50, ‘Produit N° 49′, ‘Description N° 49′, 20);

CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`email` varchar(30) NOT NULL,
`password` varchar(50) NOT NULL,
`nom` varchar(20) NOT NULL,
`prenom` varchar(20) NOT NULL,
`adresse` text NOT NULL,
`codePostale` int(7) NOT NULL,
`ville` varchar(20) NOT NULL,
`telMobile` varchar(20) NOT NULL,
`telFixe` varchar(20) NOT NULL,
`newsletter` int(2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1 ;

RedHmai 13th, 2010 at 12 h 10 min

Les shorts PHP tags sont décoseillés…
dite j’ai pas compris à quoi sert ‘screen’ dans
$this->headLink()->appendStylesheet($this->baseUrl().’/styles/design.css’,'screen’) ?

Dhyjuin 3rd, 2010 at 23 h 43 min

Pas méchant, mais… C’est un peu du grand n’importe quoi ton appli :x

Gregjuin 4th, 2010 at 12 h 26 min

Ah, mais c’est pas du tout une appli « fonctionnelle » … y’a juste plein de petit bout de code sympa pour ceux qui débute avec le zf…

Gregjuin 4th, 2010 at 12 h 30 min

@RedH : Le dossiers Form est dans le dossier model, car quand j’ai commencé l’application, j’avais fais comme ca. C’est vrai que maintenant ca ne se fait plus comme ca !

Le script SQL fonctionnait chez moi :S je suis sous linux, voila peut etre la différence.

Ou sont les short Tag ?

Sinon « $this->headLink()->appendStylesheet($this->baseUrl().’/styles/design.css’,’screen’) » est une ligne qui se place dans le layout pour ajouter un lien dans la section head de la page pour lier un css

Dhyjuin 14th, 2010 at 23 h 58 min

C’était la partie ‘screen’ qui n’était pas comprit, et j’avoue que je ne connais pas non plus ce paramètre, à quoi correspond t-il?

Gregjuin 15th, 2010 at 15 h 43 min

le screen, c’est pour dire que c’est le css qui est affiché sur un écran. tu peux mettre un print aussi (par exemple) qui est le css de … l’impression ;)

eldojuin 16th, 2010 at 16 h 46 min

http://localhost/public/produits

Parse error: parse error in D:\wamp\www\application\layouts\scripts\layout.phtml on line 41

excuser moi, ça fait un bail que je tente de travailler sur ce projet zend.
Mais impossible de trouver la solution à ce probleme

je ne vois pas d’erreur dans le code. mais rien ne s’affiche .
si cela est arrivé à quelqu’un d’entre vs, merci de me depanner

Laisser un commentaire

Votre commentaire :