Perch Shop: Providing Flexible Checkout Options

With the beta of the new Perch Shop add-on well underway, we thought we’d talk about some of the design decisions we’ve made in building it, and how that in turn affects the solutions you are able to provide to your customers.

Earlier this week, our friends at Smashing Mag tweeted:

All too often, the design of something like ecommerce store software can leak through into your site design, resulting in a loss of control over the shopping experience you’d like to provide to your visitors. There is always going to be some level of compromise – even if building something completely bespoke. Factors like payment gateway flows exert force on your design process than can be impossible to push back on. There are, however, lots of places where the design should be completely flexible, and existing solutions don’t always make that easy.

How is Perch Shop different?

Perch generally takes a toolkit approach to content management. We don’t dictate how your site should work or how it should be structured. Instead, we give you the tools to piece things together yourself, to your own requirements. The same holds true for the Shop add-on. Want to output a list of products? No problem, here’s a perch_shop_products() page function, just tell it how you want to filter, sort and which template to use. How you use that to make a site is entirely up to you.

The same approach carries through to checkout. The underlying data structure requires that items be added to a cart, and that cart, along with a customer record and a shipping address gets passed to the checkout process. What does that mean for the user experience?

In a traditional, multiple product store with physical shipping, that might result in a flow like this:

  1. Customer views a product, clicks to add to the cart
  2. Customer views the cart, clicks to go to checkout
  3. Customer is prompted to enter their name and address, or login to retrieve an account
  4. Customer picks a shipping method
  5. Customer is sent to card payment screen

That’s all well and good, but what if your site sells one product, and maybe it’s a digital download of some kind? That flow with the cart and the shipping and whatnot would be frustrating.

To make things as flexible as possible, Perch Shop provides different ways to achieve each step the in the process.

Adding an item to the cart

You can obviously use a basic form to add an item to the cart. This is the traditional flow that you’ll have used hundreds of times before. We also provide a page function to add an item to the cart without needing any interaction from the user.

perch_shop_add_to_cart($productID=1234, $qty=1);

As displaying the cart itself is also optional (a call to `perch_shop_cart()` displays it) this enables you to add an item to the cart and be completely done with the cart step all in the background without the customer even knowing a cart exists.

Creating an account

There’s no real escape from needing a customer’s name and address. Even if you don’t plan to ship a physical product, you still need to know the customer’s details and location for tax reporting. If you’re going to be able to send them a receipt and support them in the future you need an email address.

The choice of how you do this is up to you. Behind the scenes, Perch uses the Members add-on to manage customer accounts, so every customer will get an account, but you may choose never to expose that to them. The difference ends up being whether you ask them to create a password or not.

If accounts are an integral part of your service (perhaps you’re selling access to a member’s website) then you may choose to make account creation a mandatory first step. If you’re doing casual web sales, you might never expose the functionality to the customer, no matter how many times they buy from you. The choice is yours.

One useful option would be to collect the details and complete payment, and then after payment give the customer the option to set a password for next time.

Providing tools, not shrink-wrapped solutions

Perch and Perch Runway are very much aimed at professional web designers and developers. We don’t know what the best solution is for your client’s project – that’s where your expertise working with the client comes into play.

What we do with Perch, and then by extension with Perch Shop, is to provide you with the tools to put together the best solution you can in partnership with your client to help ensure their project is as successful as it can be.