Skip to main content

How Real-Time Rates Work

On the /checkout/review page, Site Store Pro performs the following steps to present shipping options:
1

Calculate cart weight

Sums item_qty × item_weight for all shippable items in the cart.
2

Fetch shipping options

Calls buildShippingOptions(), which queries all active shipping plugins in parallel for flat-rate and real-time API rates.
3

Merge and sort

Combines all returned rates and sorts them low-to-high by price.
4

Display as radio buttons

The merged rate list is rendered as selectable radio buttons at checkout review.
5

Write to order record

The selected option’s amount and name are written to the order record when the order is placed.
Graceful degradation: If a carrier API is unreachable, the plugin silently returns an empty array and logs the error to storage/logs/laravel.log. Checkout is never blocked by a carrier API failure.

FedEx Plugin

Slug: fedex-api | API: FedEx REST API v1 (OAuth2 client credentials)
SOAP credentials are not compatible with this plugin. You must register at developer.fedex.com and create a REST API project to obtain the required Client ID and Client Secret.

Setup

1

Create a FedEx REST API project

Go to developer.fedex.com → My Projects → Create a Project → Shipping → Rate API. Copy your Client ID and Client Secret.
2

Find your FedEx Account Number

Your 9-digit FedEx Account Number appears on any FedEx invoice or in your FedEx account profile.
3

Configure in Admin

Go to Admin → Plugins → Shipping Rates - FedEx REST API → Settings. Enter your Account Number, Client ID, Client Secret, Origin ZIP, and Rate Markup. Enable the service checkboxes for the services you want to offer. Click Save Settings.
4

Activate the plugin

Switch to the Activation tab and click Activate Plugin.
5

Test at checkout

Add a shippable product to the cart and proceed to /checkout/review. If no rates appear, check storage/logs/laravel.log for FedEx Auth Error.

Settings Reference

Service Toggles

Enable individual services to control which options appear at checkout: Domestic: FedEx_Ground, FedEx_Ground_Home_Delivery, FedEx_Express_Saver, FedEx_2_Day_Air, FedEx_2_Day_Air_AM, FedEx_Priority_Overnight, FedEx_Standard_Overnight, FedEx_First_Overnight International: FedEx_International_Priority, FedEx_International_Economy, FedEx_International_First Freight: FedEx_1_Day_Freight, FedEx_2_Day_Freight, FedEx_3_Day_Freight

UPS Plugin

Slug: ups-api | API: UPS REST Rating API v2205 (OAuth2)
The UPS Shop endpoint returns all eligible services in a single API request, making UPS rate lookups efficient regardless of how many services you enable.

Setup

1

Create a UPS REST API app

Go to developer.ups.com → My Apps → Add App and select Rating. Copy your Client ID and Client Secret.
2

Configure in Admin

Go to Admin → Plugins → UPS → Settings. Enter your Client ID, Client Secret, Account Number (optional, for negotiated rates), Origin ZIP, Origin Country Code, and Rate Markup. Enable the services you want to offer.
3

Activate the plugin

Switch to the Activation tab and click Activate Plugin.
4

Test at checkout

Proceed to /checkout/review. If no rates appear, check storage/logs/laravel.log for UPS Auth Error or UPS Rate API Error.

Settings Reference

Service Toggles

Domestic: UPS_Ground, UPS_Ground_Saver, UPS_3_Day_Select, UPS_2nd_Day_Air, UPS_2nd_Day_Air_AM, UPS_Next_Day_Air_Saver, UPS_Next_Day_Air, UPS_Next_Day_Air_Early International: UPS_International_Economy, UPS_International_Expedited, UPS_Worldwide_Express, UPS_Worldwide_Express_Plus, UPS_Worldwide_Saver

USPS Plugin

Slug: usps-api | API: USPS REST API v3 (OAuth2)
The legacy USPS Web Tools XML/SOAP API was deprecated in January 2024. Register at developer.usps.com for v3 credentials.
Unlike UPS, USPS makes one API call per enabled service. Enable only the services you actually offer to keep checkout review page load times fast.

Setup

1

Create a USPS REST API app

Go to developer.usps.com → My Apps → Add App and select Prices and International Prices. Copy your Consumer Key (Client ID) and Consumer Secret.
2

Configure in Admin

Go to Admin → Plugins → USPS → Settings. Enter your Client ID, Client Secret, Origin ZIP (US addresses only), and Rate Markup. Enable the services you want to offer.Recommended starting set: Priority Mail + Priority Mail Express + Ground Advantage.
3

Activate the plugin

Switch to the Activation tab and click Activate Plugin.
4

Test at checkout

Proceed to /checkout/review. If no rates appear, check storage/logs/laravel.log for USPS Auth Error or USPS Plugin Exception.

Service Toggles

Domestic: International:

Performance Note

Each additional enabled USPS service adds approximately 200–400 ms to the checkout review page load time. Enable only the services you plan to offer.

Plugin System

Plugin discovery, the Admin Panel, and PluginManager API.

Custom Plugins

Build your own shipping plugin using the drop-in plugin system.