Part 1 - The Product Page.
This summer the OncePressed T-Shirt store began using the
Printfection API with happy results. We were initially only using it as a kind of showroom for store sections, though, and when it came to business, we reverted to Printfection for the product customization page, cart and ordering.
I am happy to announce that OncePressed now supports the

API through product customization and cart handling and gracefully hands off the process to Printfection to accept payments (there is no other option for this and frankly, I am happy not to have to run a secure server and handle credit cards.)
In the process of reverse-engineering the Printfection product page (where sizes and colors are chosen) we lost a few features, then went one better.
Printfection version.
API Version. One casualty of our implementation was the tabs above the product image. Of the three, "Detailed Images," "Pricing" and "Size Chart" (we've got a replacement for this) Size Charts will be missed the most. Another casualty is the ability to order more than one sized product at once. This doesn't seem like a very commonly needed featured and can be worked-around.
Improvements we've added are mostly gathered through the addition of
FancyBox, the jQuery answer to LightBox. A "Zoom-It" link is our answer to the "Detailed Images" tab as alluded to above. The greatest improvement provided by using FancyBox is

the requirement of full-page reloads to see product options. (I'll be blogging about my new-found love for FancyBox, , in another post. Could I please have more Kool-aid?)
Much of the complexity of the code behind the Product page was reduced, but the biggest remaining problem? Page load time. This hurts. The reason? Too many API calls. Printfection has the advantage of being able to make speedy local SQL calls. It takes on the order of 15-20 API calls (the more colors, the more calls) to build a product page and this is mostly tied up in the generation of the Javascript which provides the ability to dynamically change prices based on size and color. This is a feature I just couldn't give up. My next experiments will involve moving any delay-able calls later in load time to allow the page to render and to add a Spinner as they complete. This will relieve customer anxiety with an explanation of load times and give them a chance to hit Back if they already don't what they see. (I believe it's better to send the customer on look at another product than to annoy them into leaving.)
In summary: We are very happy with our simpler product page, but wish it were faster. Efforts in that direction will be our next project.
Please post any questions or contact me directly. I am happy to share what I've learned.
Up next ... Part 2: The Shopping Cart!
Labels: php, printfection, tech-speak
Read more!