
Ecommerce Shipping Software That Uses The Carriers You Already Have.
We are not another shipping tool to run alongside the ones you have. Connect UPS, FedEx and ShipStation to the backend that holds the order, and rates, address checks and status all happen against that order instead of a spreadsheet between two systems.
Rate, Fulfil, Update. One Record.
Rate
Quote On Your Own Accounts
Connect your UPS and FedEx credentials and the checkout quotes against them: your negotiated rates, the real cart weight, the real destination. Not a flat table you keep up to date by hand.
Fulfil
Keep The Tools You Have
ShipStation stays where it is. Orders flow to it and come back with tracking, so the warehouse works the way it already works and nobody re-keys an address.
Update
Everyone Sees The Same Status
Status lives on the order, so staff in the dashboard and the customer on your storefront are reading one record rather than two systems that disagree.
Your Rates, Not A Rate Table.
Quotes come from UPS and FedEx directly, on the accounts you already hold, against the destination and the actual weight of the cart. Whatever you have negotiated is what the checkout charges.
A rate table you maintain by hand is wrong the week a carrier changes its prices, and it is wrong quietly.
Addresses are validated by the carrier before an order is placed, so a typo is caught while the customer is still there to fix it.
Shipping Rates In The Docsimport dash from "@/lib/dash"
// Quoted by YOUR UPS and FedEx accounts, at your negotiated rates.
const { rates } = await dash.shipping.getRates({
to_postal: "78701",
to_state: "TX",
to_country: "US",
weight_oz: 5.0,
})
// [
// { serviceName: "UPS Ground", carrierCode: "ups",
// shipmentCost: 8.50, transitDays: 5 },
// { serviceName: "FedEx 2Day", carrierCode: "fedex",
// shipmentCost: 12.99, transitDays: 2 },
// ]
One Status, Two Audiences.
ShipStation keeps doing the fulfillment. What changes is that the order it ships against is the same record your staff open in the dashboard and your customer sees on your storefront, so the answer to “where is it” is the same answer in both places, at the same time. That record is the one described on order management.
That is the part a second shipping tool cannot give you: not more features, but one record instead of two that drift.
Shipping In The Docs// Catch a bad address before it becomes a bad label.
// Validated against the carrier itself, not a regex.
const { valid } = await dash.shipping.validateAddress({
address_line1: "123 Main St",
city_locality: "Austin",
state_province: "TX",
postal_code: "78701",
})
// Where the parcel is, on the order it belongs to
const tracking = await dash.shipping.track(
"1Z999AA10123456784",
"ups",
)
What Else Is Already On It
Carrier Address Validation
Checked against UPS or FedEx themselves, not a pattern match, so a bad address surfaces before it becomes an undeliverable parcel.
Per-State Product Rules
Restrict what ships where at the organization level, then override it per product, the same per-product rules described on inventory management. A catalog that may not be sold into every state stops being a manual check somebody has to remember.
One Backend, Many Storefronts
Every storefront on the organization rates and ships through the same configuration. Set it once, not once per site.
Works With
Connect the accounts you already have. Nothing here resells you postage.
UPS
Connect your own UPS credentials and the checkout quotes against them, at whatever you have negotiated.
FedEx
The same, on FedEx. Either carrier can be the one your storefront rates against, or you can run them side by side.
ShipStation
If fulfilment already runs through ShipStation, keep it there. We rate and ship through your account rather than around it.
It Reads From The Same Records
Orders
One Status, Two Audiences
A label bought here moves the same record order managementworks from.
Questions People Ask
What is ecommerce shipping software?
It is what turns an order into a parcel: quoting a rate at checkout, validating the address, buying the label and tracking what happens next. DashForDevs is not a separate shipping product. It connects the carrier accounts you already hold to the backend that holds the order, so all of that happens against the order itself rather than in a second system you keep in sync.
Which carriers do you support?
UPS and FedEx directly, on your own credentials, and ShipStation for fulfillment. Through ShipStation you also get whatever carriers you have connected in your own ShipStation account, which is why we do not publish a list. That list is yours, not ours.
Do I need my own carrier account?
Yes, and that is deliberate. Rates are quoted on your UPS or FedEx credentials, so whatever you have negotiated is what your checkout charges. Nothing here resells you postage or takes a cut of it.
Can I keep using ShipStation?
Keep it. Orders rate and ship through your ShipStation account rather than around it, so the warehouse keeps working the way it already works and nobody re-keys an address into a second tool.
Does it check addresses before shipping?
Addresses are validated against UPS or FedEx themselves, not a pattern match, and it happens before the order is placed, so a typo surfaces while the customer is still there to correct it rather than when a label will not print.
Can I stop certain products shipping to certain states?
Yes. Restrictions are set at the organization level and can be overridden per product, so a catalog that may not be sold into every state stops being a manual check somebody has to remember.
How do customers see where their order is?
The status and the tracking details live on the order, and your storefront reads the same record your staff do. There is no second system for the customer-facing view to disagree with.
Ship The First Order This Week.
Take your keys, point a storefront at the backend, and rate a real cart against a real carrier.