
Everybody loves free-bees, and I guess that most people regret having paying for having their goods brought home to them by mail or something. Well, ok there may be some reason in paying for the service of having your goods transported, so people may be prepared for that, but the shamelessly high rates are a showstopper to many. At lease there are some indications to that in Denmark:
http://www.altomdata.dk/index.php?module=Pagesetter&func=viewpub&tid=1&pid=7699
http://www.erhvervsbladet.dk/article/20080804/news04/708030012/
http://www.dynamicweb.dk/Nyheder-887.aspx?PID=4986&NewsID=1532
In many cases the rates for delivering goods insist that you buy goods of a considerable price. There's not much sense in spending 50 % on freight, if the goods are not equivalently cheaper buying online. That doesn't seem to produce a lot of value. Then, if the goods are cheap, there's almost no limit to what you pay for delivery.
Well, at least that goes for me. Some months ago I ordered some kayaking equipment from an American online store. Due to the low dollar rate there were substantial savings compared to the prices in Denmark, so I didn't hesitate paying $ 75.72 for shipping my $ 244.90 package from Utah, USA to Denmark with FedEx International Priority. Even with the high shipping price it was cheaper than buying the goods in Denmark, and get this: The goods dispatched on Tuesday and arrived at my door step on Friday the same week! Put that in your pipe and smoke it, Royal Danish Mail. I don’t suppose the package spent very much time in TaulovJ
I should probably mention that the package didn't go unnoticed through customs, and about a month after receiving the goods, I received a bill from Danish Customs Service for a good 100 euros. My savings were strongly reduces, but still a bit cheaper.
There are a couple of interesting points in this little story. I didn't at all mind paying an incredibly high freight rate, as I felt that the purchase in all still provided me with more value, than had I bought the goods in Denmark. Actually, the high rate made my buy even more than I'd initially planned, because the goods were cheap, thus reducing the freight rate per item.
So what can online stores do to come about this obstacle for selling low value products? Obviously, whining about it doesn't appear to do much good, so maybe we can use the high rates to our advantage. Well, Amazon has an idea on that too, so let's see if we can do some imitation of that in eCommerce.
What I'm talking about is the "Wait!-Add-9.75 pounds-to-your-order-to-qualify-for-Free-Super-Saver-Delivery" feature on their website. In the following, let's just call it "Free Delivery" for the sake of ease.
Some of the products available at Amazon are "Eligible for Free UK delivery". Sadly for me it only concerns domestic transactions, but I can still rip-off the functionality.
We can achieve this by using a combination of the technologies that the Extensibility API provides for us as developers, but first we need to agree on how we should inform the user that there are money to be saved if they add more to the basket. We could use all kinds of template extenders, but in my opinion the most obvious choice would be to use an OrderTemplateExtender. This type has all information about the current cart available, and we're able to embed cart on a page template to display anywhere on the site. Deducting the shipping fee is a standard feature in eCommerce, so we don't need to do anythingc custom here. If we wanted to reduce the shipping price, we could use a FeeProvider, but free shipping is a standard featyre.
Let's start by making a new class that inherits from the OrderTemplateExtender class.
Remember that the OrderTemplateExtender allows us to modify the template content both before and after it has been rendered by eCommerce. In this case there's no point in us messing with the template before eCommerce is done, so we wait until afterwards.
Now, a tricky part. The tricky part is not the implementation, but the business rules that apply. There could be hundreds of ways for you to resolve when an order is eligible for free delivery. You may not even know it, before the order is complete or at least when the customer has chosen its delivery method of choice as it's normally the case with eCommerce. But let's face it - how many delivery options do you actually offer your customers, and how much variation is there in the choices they actually make? There may be one main carrier for domestic packages and one for foreign. If you have multiple carriers that both support domestic and foreign transportation, it just might get a bit more complicated.
In this example let's just assume that we only have one carrier and that we only deal with domestic freight - keep it simple.
We want to display the amount the user should add to the basket in order to get free delivery as a result of deducting the amount that is already in the basket from the FreeFeeAmount entered in setup screen of the shipping type. If the result is positive, we want to be able to display a message to the customer about the possibilities of receiving free shipping.
First we need to identify the shipping method. Still assuming that there's only one method in the system, iterating through the list would cause only one method to be returned:
Now we know what the order amount limit to qualify for free shipping is, and what the shipping price is. Now let's see how far the amount in the basket is from free delivery.
And react to whatever the result is.
Finally we want to show the price of shipping no matter result.
We provide AddMoreForFreeShipping to let the frontend developer deside whether or not to display a message by using the If Defined template method. The prices are stored in PriceInfo objects, since this provides us with a huge amount of subtags in the template, as we know from regular eCommerce price tags. This is done by the RenderPriceInfo method of the Renderer object in the end.
That's all! Now you've made a motivation for your customers to purchase more goods per transaction. You could take this even further by analyzing the content of the cart and based on products here you could display a list of related products that are within a reasonable price range of what is left to put in the basket. It's a simple extention, but actually a very strong motivator for purchasing even more. And I'll bet your customers will love paying for more products rather than for shipping.
The code for this example is available for download using the link below.
Comments
This article has no comments You need to be logged in to use this feature