Setting the stage
We live in a time where more and more goods are purchased online. May it be your airline ticket or the diapers for your newborn, many things are often cheaper and more conveniently purchased online. As comfortable it is for the customer buying things this way, as challenging it can be for the seller. They need to have an online presence that is easy to use and need to have all goods in stock to sell and send them quickly.
This means that selling physical products requires sufficient storage space on-site, people that handle picking, packing and shipping and someone that handles returned goods. All this factors can sum up to a costly venture, especially when you don't have any infrastructure from other sales channels already.
The PHP-YellowCube interface is part of all YellowCube extensions for PHP based web stores
What is order fulfillment?
This is where YellowCube comes in handy. YellowCube is a fulfillment service offered and run by Swiss Post. But what is a fulfillment service anyway? In the case of YellowCube it means everything to do with the storing and shipping of the products you sell on your store. This means receiving and storing of the products, handling of the inventory, picking, packing, shipping and handling of returns.
How to implement it into your web shop?
So far so good, but how does this translate into real life? Liip has, in close collaboration with Swiss Post, developed a PHP-YellowCube-SDK and also the integration for Magento and Drupal web shops. The PHP-YellowCube interface provides an object-oriented wrapper to the SOAP based interface provided by Swiss Post. The code is readily available on Github. Please feel free to contribute to the PHP-YellowCube-SDK, as well as the Magento extension or the Drupal extension.
Now that we know about the SDK, we need to know how the basic process works. I want to show you what needs to happen in order to implement YellowCube successfully into a web shop. The process is agnostic to a certain integration, so I won't go into details how it is integrated in a specific shop extension. I will explain the basic process, which applies to all web shop integrations in the same manner (more or less).
Go with the flow
The flowcharts below show you the process and the different “actors” involved (swim-lanes). The red coloured lanes represent the web shop and the yellow lanes show the services provided by YellowCube and exposed by our SDK.
First we need to have products in our web shop. For simplicity lets assume that all the products in our web shop are products handled by YellowCube.
Feeding data into the systemOnce we've created a product in the web shop, we need to let YellowCube know that it has to be handled by it. The “ ART” service provides just that. Of course you need to update your product information from time to time, this is also achieved by using the “ART” service.
As soon as the products are stored in the YellowCube storage facility, it will know the amount of products ready for shipping ( BAR). Since it is possible that products can be delivered any time by the supplier to YellowCube, it is possible that there are still more products in stock which haven't been accounted for just yet. It is best to sync the stock only once a day so you can manually update your inventory amount if needed (because you know it will be in stock again the next day, but YellowCube employees just haven't come around just yet to check the articles into the system). Human intuition trumps technical precision sometimes.
Shipping the goods
Now that all the products are synced between your store and YellowCube, let's take a look at how a customer order is handled. When a customer has placed an order and the payment is settled, the shipment is triggered (usually by human interaction). For the shipment, the web shop has to create some sort of shipping slip which has to be sent along with the shipping order to YellowCube. This is handled by the WAB service. When this is done, we have to wait if the shipping order was successfully accepted by YellowCube. This can take up to an hour, so the shop has to check regularly for the order status. The shipping request is now properly accepted by the YellowCube system and we have to wait for the shipping order to be processed. This again can take a couple of hours, so the web shop has to make sure it checks back on the order reply ( WAR) regularly. After some time we get a reply that the shipping has been successfully processed by YellowCube and the web shop (and customer) will be provided with a tracking number, given that the products will not be picked up at location.
This in principle is the basic process. Of course there is more to it, like handling of returns and disabling of products and so on. If you want tho know more about how it works, don't hesitate to contact us or find more information on YellowCube directly at Swiss Post.