Release Notes - v1.0.0
🎉 Initial Release
We're excited to announce the first stable release of ShipTime PHP - a modern, robust PHP/Laravel client library for the ShipTime REST API v0.1.
✨ Features
Core Functionality
- Complete API Coverage - Full implementation of all public ShipTime API endpoints
- Modern PHP 8.1+ - Leverages latest PHP features including enums, readonly properties, and strict typing
- Laravel Integration - Seamless integration with Laravel 9.x, 10.x, 11.x, and 12.x via Service Provider
- Service-Oriented Architecture - Clean, maintainable code structure with dedicated service classes
API Services
- Orders Service - Create, list, and cancel orders
- Rates Service - Get shipping rates from multiple carriers
- Shipments Service - Create shipments, download labels and customs invoices
- Track Service - Real-time shipment tracking with detailed history
- Pickups Service - Schedule and manage carrier pickups
- Boxes Service - Access available box configurations
- Accounts Service - Retrieve account information and available services
- Location Service - Postal code lookup functionality
Data Transfer Objects (DTOs)
- 40+ Immutable DTOs with strict typing and validation
- 11 Enums for type-safe fixed values
- Automatic array conversion with
fromArray()andtoArray()methods
Error Handling
- Custom Exception Hierarchy for granular error handling
AuthenticationException(401)ValidationException(400)NotFoundException(404)ForbiddenException(403)ConflictException(409)ServerErrorException(5xx)
Developer Experience
- Comprehensive Documentation - Detailed README, API docs, and installation guide
- Working Examples - Ready-to-use code samples for common operations
- PHPUnit Tests - Unit tests for core functionality
- GitHub Actions CI - Automated testing across PHP 8.1, 8.2, 8.3
- PSR-4 Autoloading and PSR-12 Coding Standards
📦 Installation
composer require tigusigalpa/shiptime-php🚀 Quick Start
use Tigusigalpa\ShipTime\ShipTime;
$shiptime = new ShipTime(
apiKey: 'your_api_key',
apiSecret: 'your_api_secret'
);
// Get shipping rates
$rates = $shiptime->rates()->getRates($rateRequest);
// Create shipment
$shipment = $shiptime->shipments()->createShipment($shipRequest);
// Track package
$tracking = $shiptime->track()->track($shipmentId);📚 Documentation
- README - Complete usage guide
- Quick Start - Get started in 5 minutes
- API Documentation - Full API reference
- Installation Guide - Detailed setup instructions
- Examples - Working code samples
🔧 Requirements
- PHP 8.1 or higher
- Guzzle HTTP Client 7.x
- Laravel 9.x, 10.x, 11.x, or 12.x (optional, for Laravel integration)
🙏 Credits
Created by Igor Sazonov
📄 License
MIT License - see LICENSE file for details
🔗 Links
Full Changelog: Initial release
This release note includes:
- Clear version announcement
- Comprehensive feature list organized by category
- Installation instructions
- Quick start example
- Links to documentation
- Requirements
- Credits and license info
- Useful links for users