fostercommerce / shipstationconnect
A Craft CMS plugin for integrating Craft Commerce with ShipStation
Package info
github.com/FosterCommerce/shipstation-connect
Type:craft-plugin
pkg:composer/fostercommerce/shipstationconnect
Requires
- php: ^8.2
- craftcms/cms: ^5.0
- craftcms/commerce: ^5.0
- jms/serializer: ^3.31
Requires (Dev)
- craftcms/phpstan: dev-main
- craftcms/rector: dev-main
- fostercommerce/ecs: dev-main
- fostercommerce/rector: dev-main
- phpstan/phpstan: ^1.11
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-beta.1
- v2.x-dev
- 2.1.1
- 2.1.0
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- v1.x-dev
- 1.5.0
- 1.4.0
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.7
- 1.2.6
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- dev-refactored-docs
- dev-feature/shipments-provider
This package is auto-updated.
Last update: 2026-08-24 15:32:52 UTC
README
ShipStation Connect
A plugin for Craft Commerce that integrates with a ShipStation Custom Store.
Overview
- Sends completed Commerce orders to ShipStation, so shipping is handled there instead of in Craft.
- Marks an order shipped in Craft when it ships from ShipStation, and records the carrier, service, and tracking number on the order.
- Runs on ShipStation's schedule. ShipStation requests orders changed inside a date range, so there is no export step in Craft.
- Sends the whole order: line items with quantities, prices, weights, photos, and options, plus shipping and billing addresses, phone number, and totals.
- Routes orders to separate ShipStation stores from a field on the order (one store per brand, for example).
Requirements
- Craft CMS
^5.0 - Craft Commerce
^5.0 - PHP
^8.2
Install
composer require fostercommerce/shipstationconnect ./craft plugin/install shipstationconnect
Then set a username and password under ShipStation Connect -> Settings, and create a custom store in ShipStation pointing at the URL that page shows.
See docs/installation.md for the full guide.
Order export
ShipStation calls the plugin's URL and gets back the completed orders that changed inside the date range it asks for, oldest first, one page at a time. There is no queue job and no stored export: every request reads Commerce live.
An order that has no line items, no customer, or no shipping address is left out of the response rather than breaking the run.
See order export.
Shipping notifications
When ShipStation reports a shipment, it calls the same URL with the carrier, service, and tracking number. The plugin sets the order to your shipped status and writes the three values into a Matrix field on the order, where your templates and emails can read them.
Multiple stores
If you run more than one ShipStation store, point a Dropdown field on the order at the store it belongs to. The settings page then lists one URL per option, and each ShipStation store only ever sees its own orders.
See multiple ShipStation stores.
Customizing what is sent
Every order passes through an event before it is serialized, so a site module can overwrite any field, fill the custom fields, or write internal notes. A second event lets you replace the query that finds an order when a shipping notification comes back.
See customizing exported orders.
Documentation
See docs/.
License
Proprietary. See LICENSE.md.
Credits
Brought to you by Foster Commerce.
