Shipstation Integration

If there are developers interested in making a shipstation integration I would be interested in potentially sponsoring this functionality.

The use case is this:

We have some ecommerce companies that want to keep stock in ERPNext and that stock needs to be updated between various sales channels. (amazon, ebay, shopify, walmart, etc…)

Because there is no present way to sync the inventory counts to those external channels we are hoping we can use shipstation.com as a viable middleware.

The premise is that orders that come in through amazon, shopify, EDI solutions, etc… already populate to shipstation from existing integrations. If we could originate some orders from the ERPNext ecommerce module as well which would then populate for outbound shipment to shipstation that would be a step forward. (The tracking information from shipstation would also have to be written back to ERPNext once the item ships.)

Further the inventory would have to be synched from whichever side has the “master” inventory. It could go from ERPNext to shipstation, which is preferred, but if that is not feasible then the shipstation data would need written back to ERPnext.

Shipstation is a high functioning low cost solution used by thousands of ecommerce companies and without an effective method of shipping ERPNext is not ready for e-commerce.

If there is a better way for me to work through this idea let me know. I am open to whatever ideas can solve this problem.

Cheers!

Steve

4 Likes

Is anybody working on this already?

1 Like

Nobody we know of…

Hi there, I’m putting a “bump” here as I’ve run into this exact need. I have a supplier that is willing to drop-ship for me, but I need to push into ShipStation for them.

I assume there are no further update(s)?

ShipStation has a pretty friendly API. I would imagine any well-rounded developer could put something up for you without intensive time or resources required.

I recently started working on a label integration using ShipEngine, which is an API-only platform made by the ShipStation team. Going well and easy to implement so far.

Hey @dealproc we’ve actually made a Shipstation Integration for ERPNext. You can find it here -

It uses GitHub - agritheory/shipstation-client: Python bindings for the ShipStation API to communicate with Shipstation
(For our app we use a custom fork that has a fix the above repo does not)

Fair warning -

  1. It’s opinionated
  2. It has no documentation

We’ll do a proper write-up on Monday, but meanwhile here’s some basic setup instructions -

Install the app on your site. If it’s a fresh site, it will create the custom fields during setup, if you install it on an existing site, you will have to run -

bench execute --site <sitename> shipstation_integration.setup.setup_shipstation

This will add the custom fields it needs. Once that’s done, you can create a new “Shipstation Settings” document from the Desk and fill the details. After you save it, click on “Get Carriers”. This will populate the child table with the stores. You will then need to configure each field in each child table row for the integration to work correctly. There’s is a scheduler hook that fetches data every hour. There’s also buttons in Shipstation Settings that get the orders / data for the last 24 hours. You don’t need to use the “Get Items” button as items are generated on the go if not found in the system.

5 Likes

I am still coordinating with the business that had mentioned ShipStation as a method to accept orders. It is disappointing that they are requesting I use Shopify or similar, which is not my overall end-goal. Knowing this is possible, a follow-up question: How would this work where a vendor is using ShipStation and I need to allow them to pull orders to fulfill?

If you have a customization for fixing things… can you explain those items, @vjFaLk?

If you can look at the Docker work that @revant_one built, there are a few items that run as “tasks” which you may want to investigate as well, for anyone deploying on k8s. If needed, once I understand your plugin and how it works, I may see if I can adapt what was done for the base site(s) to support your integration in k8s. Just my $0.02 (USD???) on this.

this command can be converted into a k8s Job.

bench execute command is available in containers.

Infact any custom python script can be written as a k8s configmap and executed as part of a Job using the frappe py env.

e.g.

/home/frappe/frappe-bench/env/python /path/to/script.py

Hey I’m not sure what you mean by this exactly? Our integration can currently pull Orders from Shipstation and also fetch Shipments (optionally). If Shopify has been connected to Shipstation, we can then fetch Shopify orders via Shipstation.

I’m not sure which customizations you’re talking about?

We’re not currently planning to make any K8s related changes to our app, but we would be happy to accept contributions.

Also, we’ve added a README to our code.

1 Like

AH, ok… I think I know my confusion… my thought was using ERPNext’ shopping cart, then have ShipStation “pull” the order information to do fulfillments. I take it from your responses that ERPNext is a client of ShipStation, rather than being the source of truth.

In our experience other channels are generating much more inputs into Shipstation which is why we followed this route.

We tested the ERPNext shopping cart and eCommerce elements for a couple years, but the experience accumulated showed us that using purpose built ecommerce platforms like Shopify or WooCommerce is a better. The number of specialty ecommerce components that are build into those front end tools is HUGE and a good integration can make ERPNext the back end of the financial and operational parts of the business, but the front end ecommerce is not viable at scale today without massive development work and time IMHO.

1 Like

sorry for the extreme delay in this, but thank you for the response.

so this allows us to use shipstation with erpnext e-commerce?

This shipstation integration appears to support pull rather than push.

  • Sync multiple ShipStation accounts with a single ERPNext instance.
  • Configure individual stores in each ShipStation account to different companies, warehouses, cost centers and account heads.
  • Periodically fetch products, orders and shipments from all ShipStation accounts.
  • Identify stores connected to the Amazon marketplace, and add hooks for other Frappe applications to process Amazon orders.
  • Shipping label generation (can be enabled per Shipstation account)

In other words, can it be configured to arrange for shipment collections based on Delivery Notes created within ERPNext, and fulfilled with an existing logistics partner account, DPD, Parcelforce, UPS, etc?