waaz / sylius-fedex-plugin
This FedEx plugin enables you to easily print shipping labels and show available pickup locations for customers to choose from.
Package info
github.com/StudioWaaz/SyliusFedexPlugin
Type:sylius-plugin
pkg:composer/waaz/sylius-fedex-plugin
Requires
- php: ^8.0
- bitbag/shipping-export-plugin: ^3.0
- nyholm/psr7: ^1.8
- setono/sylius-pickup-point-plugin: ^1.1
- sylius/sylius: ^1.11|^1.12|^1.13|^1.14
- symfony/http-client: ^5.4|^6.0
Requires (Dev)
- ext-json: *
- behat/behat: ^3.7
- behat/mink: ^1.9
- dmore/behat-chrome-extension: ^1.4
- dmore/chrome-mink-driver: ^2.8
- friends-of-behat/mink: ^1.9
- friends-of-behat/mink-browserkit-driver: ^1.4
- friends-of-behat/mink-debug-extension: ^2.0
- friends-of-behat/mink-extension: ^2.4
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.1
- friends-of-behat/symfony-extension: ^2.1
- friends-of-behat/variadic-extension: ^1.3
- phpstan/extension-installer: ^1.2
- phpstan/phpstan-doctrine: ^1
- phpstan/phpstan-strict-rules: ^1
- phpstan/phpstan-webmozart-assert: ^1
- phpunit/phpunit: ^9.5
- polishsymfonycommunity/symfony-mocker-container: ^1.0
- sylius-labs/coding-standard: ^4.0
- symfony/browser-kit: ^5.4|^6.0
- symfony/debug-bundle: ^5.4|^6.0
- symfony/dotenv: ^5.4|^6.0
- symfony/http-client: ^5.4|^6.0
- symfony/intl: ^5.4|^6.0
- symfony/runtime: ^5.4|^6.0
- symfony/web-profiler-bundle: ^5.4|^6.0
- symfony/webpack-encore-bundle: ^1.16
- vimeo/psalm: ^4|^5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-09-02 17:09:33 UTC
README
WaazSyliusFedexPlugin
This plugin allows you to integrate FedEx REST API into your Sylius store for shipping labels generation and pickup points / drop-off locations.
Features
- FedEx Shipping Labels Export (via
bitbag/shipping-export-plugin)- Integration with FedEx REST API v1 (
/ship/v1/shipments) - Generates labels in PDF or PNG format
- Automatically retrieves and assigns master tracking numbers
- Integration with FedEx REST API v1 (
- FedEx Pickup Points / Drop-off Locations (via
setono/sylius-pickup-point-plugin)- Searches nearest FedEx locations and drop-off points (
/location/v1/locations)
- Searches nearest FedEx locations and drop-off points (
- OAuth2 Token Handling with automatic caching
- Sylius 1.11, 1.12 & 1.13 compatible with native Symfony HTTP client (
symfony/http-client)
Installation
1. Install via Composer
composer require waaz/sylius-fedex-plugin
2. Enable the Plugin
Add the plugin to your config/bundles.php:
return [ // ... BitBag\SyliusShippingExportPlugin\BitBagSyliusShippingExportPlugin::class => ['all' => true], Setono\SyliusPickupPointPlugin\SetonoSyliusPickupPointPlugin::class => ['all' => true], Waaz\SyliusFedexPlugin\WaazSyliusFedexPlugin::class => ['all' => true], ];
3. Plugin Configuration
Create config/packages/waaz_sylius_fedex_plugin.yaml:
waaz_sylius_fedex: sandbox: true # true for sandbox/testing, false for production weight_unit: 'KG' # 'KG' or 'LB'
4. Enable FedEx Pickup Point Provider (Optional)
In config/packages/setono_sylius_pickup_point.yaml:
setono_sylius_pickup_point: providers: fedex: true
Shipping Gateway Configuration (Admin)
In Sylius Admin panel:
- Go to Shipping > Shipping gateways (
/admin/shipping-gateways/new/fedex). - Fill in your FedEx credentials:
- FedEx API Key (Client ID)
- FedEx Secret Key
- FedEx Account Number
- Environment (
sandboxorproduction) - Default Shipping Service (
FEDEX_GROUND,FEDEX_EXPRESS_SAVER,INTERNATIONAL_PRIORITY, etc.) - Drop-off Type (
REGULAR_PICKUP,BUSINESS_SERVICE_CENTER,DROP_BOX, etc.) - Packaging Type (
YOUR_PACKAGING,FEDEX_BOX,FEDEX_ENVELOPE, etc.) - Label format (
PDForPNG) and Stock type (PAPER_4X6,PAPER_8.5X11_TOP_HALF_LABEL, etc.) - Shipper Contact and Address details
Running Tests
- PHPUnit (Unit Tests):
vendor/bin/phpunit
- Behat (non-JS scenarios):
vendor/bin/behat --strict --tags="~@javascript"
- Behat (JS scenarios):
# 1. Start Chrome headless google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1 & # 2. Start test application web server APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon # 3. Run Behat vendor/bin/behat --strict --tags="@javascript"
- PHPStan:
vendor/bin/phpstan analyse -c phpstan.neon -l max src/
- Coding Standard (ECS):
vendor/bin/ecs check src
Author
- @ehibes for Studio Waaz
License
This plugin's source code is completely free and released under the terms of the MIT license.
