Download the PHP package justinholtweb/craft-carrier-ups without Composer

On this page you can find all versions of the php package justinholtweb/craft-carrier-ups. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package craft-carrier-ups

Carrier for UPS

UPS for Carrier, the shipping-carrier gateway for Craft Commerce 5, through the UPS OAuth REST APIs at onlinetools.ups.com.

This package translates the UPS APIs and nothing else. Packing, checkout, label storage, bulk printing, tracking schedules, the Access Point picker and the log all live in Carrier.

What it does

Rates Live rates for one service, or every service at once when a method shops. Negotiated (account) rates when your account has them, with transit days and an estimated delivery date
Labels Domestic and international, multi-package (one 1Z and one label per package)
Label formats ZPL (4×6 thermal) and PNG. PNG is only offered when PHP's GD extension is installed (see below)
Returns Print Return Labels (UPS return service 9)
International The commercial invoice is built from Carrier's customs lines. Choose who pays duties: the recipient (DDU) or your account (DDP)
Void The whole shipment, by its lead 1Z
Tracking Full scan history, mapped onto Carrier's statuses, with who signed
Access Points Search for UPS Access Points near an address for the checkout picker, and ship to the chosen one
Collections On-call pickups, with the pickup request number (PRN) as the reference
Address validation Street-level validation with UPS's suggested corrections and residential/commercial classification
Accessorials Signature, adult signature, Saturday delivery, residential delivery

Ships from the United States and Puerto Rico, in pounds and inches.

No PDF labels

UPS's Ship API produces GIF, ZPL, EPL and SPL images. It cannot produce a PDF or a PNG. This package offers:

UPS can supply PDFs through a separate Label Recovery API, but its request shape could not be confirmed without a live account, so PDF (and reprinting) is not offered rather than offered unreliably.

Setting up

  1. Install Carrier, then this package: composer require justinholtweb/craft-carrier-ups and php craft plugin/install carrier-ups.
  2. At developer.ups.com, sign in with your UPS account and create an app. Add these products: Authorization (OAuth), Rating, Shipping, Tracking, Locator, Pickup and Address Validation. Link your UPS shipper account to the app.
  3. Copy the app's Client ID and Client Secret. Store both in environment variables.
  4. In Carrier → Connections, add a UPS connection:
    • Environment: Sandbox uses UPS's Customer Integration Environment (wwwcie.ups.com), with the same app. Sandbox labels are not valid for shipping.
    • Client ID and Client secret: from step 3.
    • UPS account number: your six-character shipper number. Labels are billed to it, and it unlocks negotiated rates.
    • Use negotiated rates: on by default. Accounts without contract rates get published rates.
    • Declare each parcel's value: off by default. Turning it on buys UPS declared-value coverage above the included $100, which UPS charges for.
    • International duties and taxes: who pays.
  5. Press Test connection. It requests a fresh access token from UPS, which proves the client ID and secret.

UPS access tokens last one hour (cut from four hours on 1 April 2026). Carrier caches them and fetches a new one a minute before they expire.

Make sure your checkout collects a phone number. UPS requires one for international recipients. Commerce addresses have no phone field, so map one in Carrier's settings.

Access Points

The UPS Access Point locator is searched live around the customer's address, so there is nothing to import. Points whose name says "Locker" are listed as lockers, and every other point as a shop. When a method requires a pickup point, the label is addressed to the chosen Access Point ("hold for pickup at a UPS Access Point"). The point's address is looked up again by its id when the label is bought, because Carrier only stores the id.

Access Point delivery is not priced separately. The checkout shows the door-to-door rate for the same service.

Returns

A return label swaps the parties: the customer's address becomes the ship-from and your store becomes the ship-to, and it is billed to your account. UPS allows one package per return from the United States and Puerto Rico, so a multi-parcel return is refused with a message saying so.

Unverified

This package was written against the official UPS OpenAPI specifications (version v2409) without a live account. These points are marked UNVERIFIED in the code and should be checked in the sandbox before you go live:

Requirements

Craft CMS 5.3+, Craft Commerce 5, Carrier 5, PHP 8.2+. PHP's GD extension for PNG labels.

Licence

The Craft License. See Carrier, which is commercial.


All versions of craft-carrier-ups with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
craftcms/cms Version ^5.3.0
justinholtweb/craft-carrier Version ^5.0.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package justinholtweb/craft-carrier-ups contains the following files

Loading the files please wait ...