PHPackages                             popphp/pop-shipping - 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. [API Development](/categories/api)
4. /
5. popphp/pop-shipping

ActiveLibrary[API Development](/categories/api)

popphp/pop-shipping
===================

Pop Shipping Component for Pop PHP Framework

3.0.1(6mo ago)39031BSD-3-ClausePHPPHP &gt;=8.3.0CI passing

Since Jul 20Pushed 6mo ago1 watchersCompare

[ Source](https://github.com/popphp/pop-shipping)[ Packagist](https://packagist.org/packages/popphp/pop-shipping)[ Docs](https://github.com/popphp/pop-shipping)[ RSS](/packages/popphp-pop-shipping/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (2)Versions (16)Used By (0)

pop-shipping
============

[](#pop-shipping)

[![Join the chat at https://discord.gg/TZjgT74U7E](https://camo.githubusercontent.com/acad7b0eeb78b78d08ffd2b85681ab243436388b5f86f8bcb956a69246e53739/68747470733a2f2f6d656469612e706f707068702e6f72672f696d672f646973636f72642e737667)](https://discord.gg/TZjgT74U7E)

- [Overview](#overview)
- [Install](#install)
- [Create Auth Client](#create-auth-client)
- [Create Shipping Adapter](#create-shipping-adapter)
- [Get Rates](#get-rates)
- [Get Tracking](#get-tracking)
- [Validate Address](#validate-address)

Overview
--------

[](#overview)

Pop Shipping is a helpful component to manage different shipping APIs from common shipping providers. With it, you can get shipping rates as well as track packages. Currently, the supported shipping providers are:

- FedEx
- UPS

Also, it provides address validation through the Google Maps API.

[Top](#pop-shipping)

Install
-------

[](#install)

Install `pop-shipping` using Composer.

```
composer require popphp/pop-shipping

```

Or, require it in your composer.json file

```
"require": {
    "popphp/pop-shipping" : "^3.0.0"
}

```

[Top](#pop-shipping)

Create Auth Client
------------------

[](#create-auth-client)

### FedEx

[](#fedex)

```
$authClient = Pop\Shipping\Auth\Fedex::createAuthClient(
    'CLIENT_ID', 'SECRET', 'ACCOUNT_ID'
);
```

### UPS

[](#ups)

```
$authClient = Pop\Shipping\Auth\Fedex::createAuthClient(
    'CLIENT_ID', 'SECRET', 'ACCOUNT_ID'
    );
```

#### Authenticate and store token

[](#authenticate-and-store-token)

```
if ($authClient->hasTokenDataFile(__DIR__ . '/../data/access.json')) {
    $authClient->fetchAuthToken(__DIR__ . '/../data/access.json');
} else {
    $authClient->authenticate(__DIR__ . '/../data/access.json');
}
```

Create Shipping Adapter
-----------------------

[](#create-shipping-adapter)

### FedEx

[](#fedex-1)

```
$adapter = Pop\Shipping\Adapter\Fedex::createAdapter($authClient);
```

### UPS

[](#ups-1)

```
$adapter = Pop\Shipping\Adapter\Ups::createAdapter($authClient);
```

Get Rates
---------

[](#get-rates)

```
$shipping = new Pop\Shipping\Shipping($adapter);

$shipping->setShipTo([
    'first_name'  => 'John',
    'last_name'   => 'Doe',
    'address1'    => '123 Main St',
    'city'        => 'Some Town',
    'state'       => 'FL',
    'zip'         => '12345',
    'residential' => true,
]);

$shipping->setShipFrom([
    'first_name' => 'Jane',
    'last_name'  => 'Doe',
    'address1'   => '456 Main St',
    'city'       => 'Main Town',
    'state'      => 'GA',
    'zip'        => '54321'
]);

$shipping->addPackage(new Pop\Shipping\Package(34, 24, 12, 65, 1000));

print_r($shipping->getRates());
```

Get Tracking
------------

[](#get-tracking)

```
$shipping->addTrackingNumbers([
    '11111111111111',
    '11111111111112',
    '11111111111113'
]);
print_r($shipping->getTracking());
```

Validate Address
----------------

[](#validate-address)

```
$google = new Pop\Shipping\Adapter\Google('GOOGLE_API_KEY');
$google->setOriginalAddress([
    'address1'    => '123 Bad St.',
    'city'        => 'Wrong Town',
    'state'       => 'FL',
    'postal_code' => '12345'
]);

if ($google->validate()) {
    echo 'Address has been confirmed.'
} else {
    print_r($google->getSuggestedAddress());
}
```

[Top](#pop-shipping)

###  Health Score

49

—

FairBetter than 95% of packages

Maintenance67

Regular maintenance activity

Popularity18

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity86

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 92.3% 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.

###  Release Activity

Cadence

Every ~341 days

Recently: every ~791 days

Total

12

Last Release

192d ago

Major Versions

v2.x-dev → 3.0.02025-08-04

PHP version history (3 changes)2.0.0PHP &gt;=5.4.0

3.0.0PHP &gt;=8.2.0

3.0.1PHP &gt;=8.3.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/c19dee900e9e20039c723cc403f76b5c22ac2dddb3f86773ae64fb082d4949e2?d=identicon)[nicksagona](/maintainers/nicksagona)

---

Top Contributors

[![nicksagona](https://avatars.githubusercontent.com/u/898670?v=4)](https://github.com/nicksagona "nicksagona (48 commits)")[![pollen8](https://avatars.githubusercontent.com/u/28268?v=4)](https://github.com/pollen8 "pollen8 (4 commits)")

---

Tags

shipping ratesshipping apitrack packages

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/popphp-pop-shipping/health.svg)

```
[![Health](https://phpackages.com/badges/popphp-pop-shipping/health.svg)](https://phpackages.com/packages/popphp-pop-shipping)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M478](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M271](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

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