Extensions › ShipStation

ShipStation Extension

Paid orders go to ShipStation on their own, and every shipment comes back with its tracking number. Add a key for labels, rates and stock. 13 parts.

Quick links

Where to find it:WP Admin › EasyCart › Extensions › ShipStation

On default is enabledOff default is disabledValue factory defaultAdvanced behind the fold

Getting started

Connect ShipStation

What you need, the store feed ShipStation reads, and which orders it gets.

Before you start

What the extension needs, and your ShipStation plan

no stored settings

What you need. A Premium license, with ShipStation installed from EasyCart › Extensions, which also installs WP EasyCart Premium. The settings page, the store feed and labels need WP EasyCart 6.0.2 or newer and WP EasyCart Premium 1.1.0 or newer; rates at checkout also need WP EasyCart PRO 6.0.2 or newer. And a ShipStation account on a plan with store imports and the API, which is Standard or higher.

Three ways in, pick what you need. The store feed, in Connect ShipStation below, is all most stores need: paid orders go to ShipStation and every shipment comes back with its tracking number. It needs no API key. An API v1 key only makes ShipStation import each order straight away. An API v2 key adds labels from the order screen, rates at checkout, stock and delivery updates.

In ShipStation. The Connect ShipStation section walks you through it: open Settings › Selling Channels › Store Setup › Connect a Store or Marketplace and choose Custom Store. Paste the URL, username and password it shows, type the five status words into the matching boxes exactly as shown, then press Test Connection and Connect in ShipStation. The Status row turns Connected once ShipStation has read the feed.

💡 Note: Your API keys are stored by WP EasyCart Premium. If Premium is deactivated, everything that needs a key pauses until it is active again. The store feed keeps working without any key.

Connect ShipStation

ShipStation reads your orders from this store as a Custom Store and posts each shipment back. No API key, and nothing that expires.

4 settings

Only answer over HTTPS

The feed sends customer names and addresses, so it refuses plain http:// requests. Turn it off only on a site that has no HTTPS at all.

On
Advanced

Check the connection

Check now calls the feed the way ShipStation does. It tells you when a firewall, a security plugin, Cloudflare, a cache or your host gets in the way, and what to change. Some hosts stop a site calling itself; then use Test Connection in ShipStation instead.

Button

New password

Make a new password makes the password ShipStation logs in with and shows it once, in the setup steps above. Only a scrambled copy is kept, so a lost password means making a new one. The old password stops working at once, so paste the new one into ShipStation straight away.

Button

Switch to the store feed now

Only shows on a store upgraded from the classic connection. Switch now stops sending orders the classic way. Orders placed so far stay in the ShipStation store they went to; new orders come through the feed. Press it once the Custom Store is connected in ShipStation.

Button
Connect ShipStation, with the setup steps and the status words to paste.
Connect ShipStation, with the setup steps and the status words to paste.

Moving from the classic connection

For stores that used version 1 of the extension

no stored settings

Version 1 pushed each paid order to ShipStation with your API key. After the update, that classic connection keeps running, so no order is missed while you set up the store feed. The Status row shows Classic connection on until then, and EasyCart screens remind you to finish.

Add the Custom Store in ShipStation as described above. Once ShipStation has read the feed twice, at least ten minutes apart, or you press Switch now, the switch happens on its own. Orders up to that point stay in the ShipStation store they were sent to, and newer orders come through the feed. Until the switch the feed stays empty, so no order reaches ShipStation twice.

Your API key and order key prefix carry over. The switch matters because ShipStation keys now expire every few months, and the feed never does.

Orders

Which orders ShipStation sees, and what it gets. Orders with nothing to ship ( downloads, gift cards ) never go.

14 settings

Statuses that count as paid

Orders in these statuses wait in ShipStation’s Awaiting Shipment. Pick none to use every paid status except the shipped ones and Ready for Pickup.

Every paid status

Statuses held in ShipStation

Orders in these statuses wait in ShipStation’s On Hold, so nobody ships them yet.

On Hold, Pending Approval

Statuses cancelled in ShipStation

An order moved to one of these is cancelled in ShipStation, so nobody ships it. An order deleted in EasyCart is cancelled there too.

Denied, Error, Refunded, Cancelled

Send unpaid orders

Bank transfer and other pending orders show in ShipStation’s Awaiting Payment. Off, an order appears once it is paid.

Off

Leave out local pickup orders

Orders the customer collects from the store stay out of ShipStation.

On

Order number prefix

Shown before the order number in ShipStation. WEB- shows order 1042 as WEB-1042. Up to 10 characters.

None

Order key prefix ( unique per store )

Keeps this store’s orders apart from other stores on the same ShipStation account. One is made for you. Letters and numbers only, up to 20. Changing it makes ShipStation see every order as new, so set it once and leave it.

Made for you
Advanced

ShipStation custom field 1

What goes into ShipStation’s custom field 1: nothing, the coupon code, PO number, payment method, payment terms, EasyCart order ID, the first 100 characters of the customer’s notes, the gift recipient’s email, or the subscription and shipment number. Custom fields show in ShipStation’s order grid, and its automation rules can use them.

Coupon code

ShipStation custom field 2

The same choices, for custom field 2.

PO number
Advanced

ShipStation custom field 3

The same choices, for custom field 3.

Payment method
Advanced

Send product images

Pickers see each item’s picture in ShipStation and on packing slips.

On

Send discounts as a line

The order’s discount shows as its own line, so ShipStation’s totals match the order.

On

Send the order’s private notes

Your team’s private notes on the order go to ShipStation’s internal notes. The customer’s notes always go.

Off

Send the last 30 days again

Send again marks every order from the last 30 days as changed. ShipStation reads them again on its next import and updates what it has. Use it after changing the settings above.

Button
Orders, which orders ShipStation sees and what it gets.
Orders, which orders ShipStation sees and what it gets.

⚠️ Careful: Leave the order key prefix alone once ShipStation has your orders. A new prefix makes every order look new to ShipStation, and they arrive a second time.

Everyday shipping

Shipments come back

What happens when ShipStation ships, how to follow an order, and monthly boxes.

When ShipStation ships

Each shipment comes back to the order with its items, carrier and tracking number.

2 settings

Who emails the customer

EasyCart sends your shipped email with the tracking link as each shipment comes back. Choose ShipStation to use ShipStation’s own shipping email instead. The extension never sends both.

EasyCart

Mark the order shipped

Moves the order to Shipped once everything in it has shipped. When only part of an order ships, the order screen and the email show what went, and the status waits for the rest.

On
When ShipStation ships, who emails the customer.
When ShipStation ships, who emails the customer.

💡 Note: If you keep EasyCart as the sender, leave ShipStation’s own shipment emails off for this store, so customers get one email, not two.

Following an order

The ShipStation card, the orders list and Send to ShipStation again

no stored settings

Every order screen has a ShipStation card. It says whether the order is In ShipStation and when ShipStation last read it, Waiting for the next import, or Not sent and why: local pickup, nothing to ship, not paid yet, or a draft. A monthly subscription order lists each box with its date.

Send to ShipStation again, on the card and in the order’s More menu, marks the order changed so ShipStation reads it again on its next import, or straight away with an API v1 key. Edits, cancellations and refunds reach ShipStation on their own; use this when an order looks out of date there.

The Orders list has a ShipStation column and a filter for In ShipStation, Not in ShipStation yet and Not sent. Tick orders and choose Send to ShipStation again from the bulk actions to resend several at once.

When ShipStation ships, the package lands on the order with its items, carrier and tracking number. ShipStation packs its own way, so the items it shipped become one package, and whatever is left keeps waiting.

Subscriptions

A subscription paid every 3 months or every year can ship a box every month. Each month becomes its own ShipStation order, held until its date.

4 settings

Ship subscriptions monthly

Off: each payment is one shipment. Every subscription: a plan paid every 3 months ships 3 monthly boxes, a yearly plan 12. Chosen products: only the products you pick below. Weekly and daily plans always ship with each payment.

Off

Products that ship monthly

Shown when Ship subscriptions monthly is Chosen products. Search for the subscription products whose payments cover several months.

None

Ship each month on

The same day of the month as the order, or a fixed day from 1 to 28. The first box always ships right away; later boxes wait in ShipStation’s On Hold until their date.

Order day

Cancel the boxes still to come when the subscription ends

When the customer cancels the subscription, the months not yet due are cancelled in ShipStation. Boxes already shipped are not touched.

On
Subscriptions, with monthly shipping off.
Subscriptions, with monthly shipping off.

Activity

ShipStation’s visits to the store feed, shipments that came back, and anything that went wrong.

no stored settings

The last section of the settings page lists ShipStation’s latest visits: each import, with how many orders it read, and each shipment that came back, with its order number. A visit that failed is marked, with the reason, such as a shipment for an order this store does not know.

When ShipStation goes quiet. If ShipStation has not read the feed for six hours, the Status row turns Quiet, and EasyCart screens show a notice when orders changed in that time. Check that automatic import is on for this store in ShipStation, then press Check now. The same notices warn you when a key is about to expire or ShipStation stops accepting it.

Activity, before ShipStation first reads the feed.
Activity, before ShipStation first reads the feed.

With an API key

Labels, rates and stock

Optional keys for faster imports, labels from the order screen, rates at checkout and stock.

Import right away ( API v1 key )

Optional. ShipStation imports on its own every couple of hours; with an API v1 key, each paid order asks it to import straight away.

6 settings

API v1 key

From ShipStation › Settings › Account › API Settings › API v1 › Generate. Only the account owner can make keys. WP EasyCart Premium stores it encrypted, so after saving the box only shows dots and the last four characters.

Empty

API v1 secret

The secret made with the key. Saving checks both with ShipStation and warns you if ShipStation turns them down.

Empty

Key expires on

ShipStation keys last 3, 6 or 12 months, and ShipStation shows the date next to the key. Enter it here and you get a reminder on EasyCart screens two weeks before.

Empty

Import right after each paid order

After each paid or changed order, asks ShipStation to import the store feed straight away, at most every few minutes, instead of waiting for its own schedule.

On

ShipStation store

The Custom Store you added for this site. When the account has only one, it is found for you.

Find it for me

Check the key

Check now asks ShipStation for your stores with this key and says how many it found.

Button
Import right away, before an API v1 key is added.
Import right away, before an API v1 key is added.

Labels, rates and stock ( API v2 key )

Optional. Buy ShipStation labels from the order screen, show ShipStation rates at checkout, keep stock in step and get delivery updates. There is no test mode: every label is real.

8 settings

API v2 key

From ShipStation › Settings › Account › API Settings › API v2 › Generate. Stored encrypted by WP EasyCart Premium. Saving checks it with ShipStation and, with Delivery updates on, sets them up.

Empty

Key expires on

The date ShipStation shows next to the v2 key. You get a reminder two weeks before, because labels, rates at checkout and stock stop when it expires.

Empty

Ship from

The ShipStation ship-from location labels and rates at checkout start from. Leave it on ShipStation’s default unless you ship from several. Locations are made in ShipStation under Settings › Shipping › Ship From Locations.

ShipStation default

Label file

The file your labels come as: PDF, PNG image, or ZPL for thermal printers.

PDF

Label size

4×6 suits label printers. Letter prints on office paper.

4×6

Delivery updates

ShipStation tells the order when a package is in transit, out for delivery, delivered or has a problem, and a delivered package can move the order to Delivered. The updates arrive through WP EasyCart Premium. Tracking is also read back twice a day, in case one goes missing.

On

Check the key

Check now reads your carriers and ship-from locations, and lists them.

Button

Set up delivery updates again

Set up tells ShipStation where to send delivery updates again. You need it after the site’s address changes; the Status row warns you when it has.

Button
Labels, rates and stock, before an API v2 key is added.
Labels, rates and stock, before an API v2 key is added.

⚠️ Careful: ShipStation has no test mode. Every label bought from the order screen is real and charged to your ShipStation account, so void a test label straight away.

Buying a label from an order

Compare your ShipStation carriers, buy and print on the order screen

no stored settings

With an API v2 key, each package waiting to ship has a ShipStation label button, and Create shipping label lists ShipStation too. The label window compares every carrier on your ShipStation account, ShipStation’s own discounted ones included, from your ship-from location. Check the weight and size, pick a delivery confirmation if you want one, press Get rates, choose a rate marked cheapest or fastest, and buy. A package leaving the country gets a customs declaration from each product’s HS code and country of origin.

Once bought, the package carries the tracking number and new buttons:

Print label: opens the label file again.
Customs form: when the carrier made one.
Void: cancels a label you will not use. ShipStation asks the carrier for a refund; USPS refunds can take a few weeks.
Return label: makes a prepaid return label. The carrier charges it when it is used, or however it bills returns.

Without an API v2 key, ShipStation’s row in Create shipping label opens your ShipStation orders instead. Labels bought in ShipStation still come back to the order through the feed; void those in ShipStation.

Rates at checkout

Live rates from your ShipStation carriers, including ShipStation’s own discounted ones, as shipping choices at checkout.

4 settings

Show ShipStation rates at checkout

Offers the services you pick below as shipping choices at checkout, priced live for each cart. Needs the API v2 key, WP EasyCart PRO, and Live shipping rates as the store’s rate method under Settings › Shipping. If ShipStation does not answer within 8 seconds, checkout shows your other rates without it.

Off

Services to offer

The services from your ShipStation carriers to offer. Each one becomes its own live rate. The Status row counts how many are on.

None

Markup

Added to each rate, as a percent of it. Up to 500%.

0%

Handling fee

A fixed amount added to each rate, once per order.

0
Rates at checkout, waiting for the API v2 key.
Rates at checkout, waiting for the API v2 key.

Stock from ShipStation

Every hour, ShipStation Inventory’s stock is written to the products and option combinations with the same SKU. Only from ShipStation to EasyCart.

4 settings

Keep stock in step with ShipStation

Every hour, stock in ShipStation Inventory is written to the products and option combinations with the same SKU. Needs the API v2 key and ShipStation Inventory on your ShipStation plan. A product must track stock and have a SKU. Nothing is written back to ShipStation.

Off

Stock to use

Available is on hand minus what ShipStation has already set aside for orders. On hand is everything on the shelf.

Available

Only this inventory warehouse

A ShipStation inventory warehouse ID, to read only that warehouse. Leave it empty to add up every warehouse.

Every warehouse
Advanced

Read stock now

Read now reads stock straight away instead of waiting for the hourly read. The Status row then shows how many SKUs ShipStation has, how many products changed, and how many SKUs match no product.

Button
Stock from ShipStation, before the first read.
Stock from ShipStation, before the first read.

Keep going

Related panels

Order Management

Where each order’s packages and tracking live.

Shipping settings

Packages, the rate method and live rates.

Shipping rates

The rates your checkout offers.

Inventory & Shipping

Stock tracking and SKUs, which stock from ShipStation needs.

Try the PRO features free for 14 days

Anything marked PRO comes with WP EasyCart PRO or Premium. Take the whole thing for a run on your own store before you decide.

Updated on September 29, 2026