Old World Polish Pottery

With this site the owner can manage inventory and
sales for the online storefront as well as the in-store transactions. With
drupal commerce we've completely tied the in-store checkout experience into
the website so we can easily see if any of our one-of-a-kind items have sold
online just minutes before someone would purchase it in the retail store. We
can keep inventory accurate up to the second. To accomplish the in-store
functionality we implemented barcode printing, scanning, credit card swiping,
and receipt printing among other things.

Details
Started with 640 products, imported thousands of shapes and patterns from
various pottery manufacturers to allow creating a product from a shape and
pattern. Took several months to build but was mainly done by one person with
some help on certain parts from another person. A major benefit of having
products defined by a shape and pattern is that we can show customers
matching shapes with different patterns or matching patterns on different
shapes. This allows us to highlight matching pieces to make sets.
Construction was mainly done by one person and took several months. Major
time was spent on price auto calculation and making the views display
products that are defined by prices and shapes in categories that appear and
disappear based on stock availability. We associate product categories and
shape descriptions with shapes and those are associated with products which
are associated with product displays. So views needed to use relationships
heavily with can cause optimization issues.
We also spent a good amount of time trying to integrate the navigation menu
with Masonry blocks display of products and categories. We also integrated
the storyboard slideshow in this same Masonry block view. The are many many
details for a site that ends up looking extremely simple and is fairly fast,
which I think is a good accomplishment.

We modified the following modules to make custom modules :
Jzebra - allows us to print directly to an EPL supporting printer. We use
this to allow one click printing of barcodes are receipts.
Gift Wrap - We customized this module to allow us more fields and a live
preview of the gift message in a custom font.
Barcode Scanner - This allows us to use javascript to detect barcode scans
and with rules we can add items to the shopping cart. We customized this
module because it was buggy.
Authnet - Our payment gateway had an authorize.net emulation mode so we used
the authorize.net module and modified it to support the barcode strip
payments that we were doing in store.
Cash Checkout - We made a custom cash/check checkout method to use in-store.
This provides input area for amount received and tells how much change to
return. These values are also stored in the payment when complete so we can
print them on the receipts.
Calculated Ship rate - we have shipping based on a percentage of the order,
but this must exclude taxes and shipping line items so we don't induce
calculation bugs. There is a minimum ship amount, then a percentage of the
cart total up to a maximum ship amount. After that amount, the shipping
becomes free. So people see how much more they need to buy to receive free
shipping.

Custom Pricing, Taxes, Checkout, or Shipping Rules
Prices can be automatically calculated using a formula that uses a base price
and several markups. The markups can be by manufacturer, pattern, and artist.
The auto price can be overridden and also a sale price can be used to slash
out the regular price and show the reduced price.
The taxes are based on purchaser location and in-store sales.
The shipping is calculated using a percentage of the cart items, up to a
point where it becomes free. In store purchases are set to complete unless
they are to be shipped. Email notifications are sent when orders are placed
online. In-store purchases can be shipped to home or friends as a gift as
well.

Company / Freelancer
Carlisle Printing, Dustin Yoder and Jeff Schlabach