22
Jan

Dynamic business card design module with Paypal IPN integration

Business card design with AJAX and PHPOverview

My client was a small printing firm in the Vancouver area who wanted to give their customers the ability to design, order and re-order business cards online. In the printing trade this is known as ‘web to print’ and is big surprisingly business (i.e. expensive). So the idea was to create something that was simple, intuitive, easy to use and which streamlined the ordering process. It was one of those projects that you think is going to be easy but that becomes surprisingly complex with the customer requiring different fonts on different parts of the page, different colors for different parts of the page, image resizing (which meant image re-sampling) for logos,  right / center / left justification, ‘bleed’ allowances, shipping cost calculators, etc.

Languages and protocols used

  • XHTML / CSS, PHP / MySql. Javascript, jquery, AJAX, JSON. Paypal IPN protocol. MIME

Project Features

  • Dynamic business card design with the ability to change the business card text, template, font (per line), font-color (per line) and logo on the fly with no page reloads.
  • Seamless ordering process with Paypal IPN (Instant Payment Notification) integration. The order process (database entry, sending of emails, etc. ) is completed dynamically upon notification of payment from Paypal. The system also includes notification authentication as well as payment processing error tracking, notification and logging.
  • Object oriented PHP enabling easy re-use and fonfiguration for new templates and designs.
  • Email notification of new orders to customer and administrator with the new design as an attachment in MIME format.
  • Dynamic pricing and shipping cost calculator based on distance from vendor.
  • Lightweight order management and CRM system.
  • Administration (pricing, etc.) interface.
About James
I'm all-round developer with a background in enterprise development using C++. I'm a client and server side web developer with a particular interest in making the web as interesting and usable as possible with seamless client / server interaction using jQuery and AJAX.