PHPackages                             fostercommerce/shipments - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. fostercommerce/shipments

ActiveCraft-plugin[Utility &amp; Helpers](/categories/utility)

fostercommerce/shipments
========================

A Craft CMS plugin that adds first-class shipments to Craft Commerce, splitting each completed order into one or more Shipment elements via a pluggable rules engine.

078↑515.4%PHP

Since May 29Pushed 1w ago1 watchersCompare

[ Source](https://github.com/FosterCommerce/shipments)[ Packagist](https://packagist.org/packages/fostercommerce/shipments)[ RSS](/packages/fostercommerce-shipments/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Shipments
=========

[](#shipments)

A Craft CMS plugin that adds first-class **shipments** to Craft Commerce, splitting each completed order into one or more shipments via an extensible rules engine.

What it does
------------

[](#what-it-does)

- Splits completed orders into one or more shipments based on configurable rules (e.g., backordered items get their own shipment automatically).
- Tracks each shipment on two axes: fulfillment status (what your warehouse is doing) and shipping status (what the carrier reports).
- Validates full coverage: every line item quantity on an order must be accounted for across its shipments before a save goes through.
- Sends notification emails when shipments hit specific statuses.
- Connects to fulfillment systems (ShipStation, ERPs, custom) through a provider framework with webhook support, status-code mapping, and a REST API.
- Adds a Shipments tab to the order edit page and a standalone Shipments element index in the CP.

Requirements
------------

[](#requirements)

- Craft CMS `^5.0`
- Craft Commerce `^5.0`
- PHP `^8.2`

Install
-------

[](#install)

```
composer require fostercommerce/shipments
./craft plugin/install shipments
```

See [`docs/installation.md`](./docs/installation.md) for the full installation and configuration guide.

Rules engine
------------

[](#rules-engine)

The plugin decides how to split an order into shipments using a configurable grouping source (single shipment, in-stock vs. backorder, line-item status, or shipping category). A built-in catch-all guarantees every completed order gets at least one shipment.

You can write your own rules. See [`docs/dev-guide/custom-rules.md`](./docs/dev-guide/custom-rules.md).

Permissions
-----------

[](#permissions)

In addition to `accessPlugin-shipments`:

- `shipments-viewShipments`, see the Shipments index and edit pages.
- `shipments-editShipments`, create and edit shipments (tracking, carrier, notes).
- `shipments-transitionShipments`, change fulfillment or shipping status.
- `shipments-deleteShipments`, delete shipments.
- `shipments-pushShipments`, push shipments to integrations via the per-shipment push button.
- `shipments-manageIntegrations`, manage integrations and status mappings.
- `shipments-manageEmails`, manage notification emails and their triggers.
- `shipments-manageSettings`, edit plugin settings and the shipment field layout.

See [`docs/reference/permissions.md`](./docs/reference/permissions.md) for the full reference.

Integration framework
---------------------

[](#integration-framework)

The plugin connects to fulfillment systems (ShipStation, Veeqo, ERPs) through a provider framework. Providers handle pushing shipments out, receiving webhook updates back, and translating between the remote system's status codes and the plugin's own status vocabulary. Status codes the plugin doesn't recognize surface on the Attention page for manual mapping.

The plugin ships no providers itself. They come from separate packages or your site module. See [`docs/dev-guide/custom-providers.md`](./docs/dev-guide/custom-providers.md) for how to build one.

GraphQL
-------

[](#graphql)

Read-only access to shipments with filters on order, status, tracking, carrier, and integration. Supports eager-loading orders, line items, and integration references.

See [`docs/reference/graphql.md`](./docs/reference/graphql.md) for the schema and query examples.

License
-------

[](#license)

Proprietary.

###  Health Score

24

—

LowBetter than 31% of packages

Maintenance64

Regular maintenance activity

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/9ac5b96165dd51aed8f0b9ea079d5d5beeb430a915cd07d645db0a228b0ac3aa?d=identicon)[fostercommerce](/maintainers/fostercommerce)

---

Top Contributors

[![sjcallender](https://avatars.githubusercontent.com/u/984311?v=4)](https://github.com/sjcallender "sjcallender (2 commits)")

### Embed Badge

![Health badge](/badges/fostercommerce-shipments/health.svg)

```
[![Health](https://phpackages.com/badges/fostercommerce-shipments/health.svg)](https://phpackages.com/packages/fostercommerce-shipments)
```

###  Alternatives

[blanchonvincent/cdn-light

ZF2 module v1.1.0 - Manage your own CDN with ZF2 application

103.6k](/packages/blanchonvincent-cdn-light)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
