ShipEngine – The Power of API’s in Global B2B Commerce

Do you ever wonder how Amazon gets packages to your doorstep so quickly?

magic

Shipping is big business. But delivering billions of dollars worth of packages a day doesn’t happen by magic or self learning machines.

Instead, it’s the incredible power of shipping platforms like ShipEngine that make B2B and B2C commerce possible.

Shipping is at the core of E-commerce.  Without shipping, no business could send or receive their packages.

It’s not just planes and trucks that deliver shipments.

A Brief History

My first web integration was done with Shipstation back in 2009 when FedEX and UPS primarily used SOAP as their main API protocol and DHL was virtually non-existent in that space.

Before Shipstation, I had compiled a series of bespoke integrations into a PHP interface dashboard to automate many of the shipping, packing, and label operations. 

Was it a little clunky? You bet! Let’s just say trying to create shipping integrations before Shipstation was…well, similar to something below.

code

Over the last 10 years, I have personally tried various types of shipping vendors including 3PLs and  3rd party APIs from various vendors, all of which short due to the lack of a graphical interface or weak API and documentation.

ENTER SHIPENGINE

logo

“ShipEngine’s No. 1 feature is that we offer a multi-carrier API,” says James Messinger, product director at ShipEngine. “You can invest time, money and resources into integrating with every carrier out there, or you can integrate once with ShipEngine and shop rates, buy shipping labels and track packages across all carriers.”

If you want to hear more from the ShipEngine Director of Engineering and the Head of Product, feel free to register for their presentations on Friday, May 17 at our upcoming Hackathon.

Although we used Shipstation for years, ShipEngine was newer to us, and our team wanted to get first-hand experience using the API. 

Let’s dive into it.

gif

Step 1 – Signing up

The last thing anyone wants to deal with is a long and complicated process just to create an account. Thankfully, signing up for ShipEngine was a breeze.

First things first, head over to shipengine.com and click the FREE signup button.

shipping

Step 2 – Creating an account

This second step is filing in your info to create your account. You’ll select your country, enter in your name, company name, and email and it’s onto the next step.

shipping

Step 3 – Verifying your email

Once you’ve completed the form above, an email will be sent to your inbox, from that email you’ll be able to confirm your account.

shipping

3. Logging in to ShipEngine

Now we are getting to the good part. We are logging into ShipEngine and unlocking the key to global shipping made easy.

shipping

CHECKOUT THE API

The ShipEngine API Documentation page will tell you everything you need to know about shipping, rates, tracking, and address validation. They have even provided starter guides for each.

Logging into your dashboard, navigate to the “Connections Tab”.  This is where you’ll find all of the services you are currently connected to.

You’ll notice Stamps.com is listed along with a carrier ID. Take note of this career id, as it will be important later. 

Additionally, you can move the popup module around the screen or out of way, another reason why the ShipEngine interface is awesome!  

shipping

Now, let’s say we want to ship from the Walt Disney Company in California to General Assembly in NYC at 10 East 21st – ultimately where our Hackathon event will be taking place. 

REMEMBER: You need to change both your API KEY and your Carrier ID that we noted before, otherwise you will get a “carrier id not found” alert like below.

code

You can also store the JSON credentials in a file and then make the appropriate call in the api-key request.

Below is the code snippet:

code

The JSON Response will provide a treasure trove of information from a single carrier ID in this case.

The more carrier IDs you retrieve, the more data you get back. Since you are just getting started with it, you may want to stick with simpler calls for now.

BULK OPERATIONS

From Shipping and Registration, to printing labels and paying for postage, there are thousands of functions you could use to accomplish your objectives all within ShipEngine.

While making simple rate request API calls can be fun and exciting, the real power for a B2B business is being able to integrate third party systems for bulk operations, as many companies shipping logistics are complex.

In normal circumstances, B2B shipping rules and regulations are not standard. Each vendor or company may have different requirements depending on where and how they ship, and what rules are in place. 

HYPOTHETICAL SCENARIO

Let’s say you have a client who wants to understand the following over the previous month:

  1. How many sales orders were processed?
  2. How many labels were created?
  3. What was the lowest level of service used for each carrier?
  4. Which carrier was used?

BUSINESS CASE:

Ideally for every order created, a label should exist.  In this scenario, the client is trying to decide whether to eliminate a shipping carrier and wants to know which carriers are shipping the most orders at the lowest level of service.

By doing so, the business could potentially negotiate a better rate with the carrier.

We could process each of the requests using single commands below.

In CURL we can request the data from the system in the following manner  using our API key.

curl https://api.shipengine.com/v-beta/sales_orders?order_source_id=9f1807cc-0a04-46ab-96fd-7371d37d68e0&sort_dir=desc&sort_by=order_date&page=1&page_size=1 -X GET \
  -H "api-key: ElJkhJuQIRoFq/kDEblco4LpZqRCdYNIoAVG7SywSXw" \
  -H 'content-type:application/json'

We’ll get our traditional JSON response for each output.

However that would be highly inefficient.

Instead there are a few options:

OPTION #1

1. We could create an executable file called “shipengineoperations.sh” placing multiple curl commands in sequence.

2. We would then make it executable with chmod +x shipengineoperations.sh

3. We would then run the file ./shipengineoperations.sh or /path/to/file/yourfile.sh

OPTION #2

You can also chain request with && or execute in parallel using &.

SAMPLE #1 : Curl request #1 && Curl request #2 etc etc

SAMPLE #2 : Curl request #2 & Curl request #2 etc etc

WHAT’S NEXT?

At this point, you have all of this data based on the users requirements.

You can either create a web interface to display the data to the user or send the data to another third party system using native command-line tools or a web tool like zapier.com

By using ShipEngine you can completely change the way your business runs by seamlessly intergating your carriers and; making a complex process simple.

If you are as excited about ShipEngine as we are, come join ShipEngine and Open Source ERPS on May 17, in NYC.

With eight categories and more than 16K in prizes at our Hackathon, you’re bound to find a way to successfully integrate ShipEngine into your application.

Leave a Comment