splash/shippingbo
Laravel integration for ShippingBo that wraps the ShippingBo API in a clean, configurable client. Manage orders, shipments, and logistics data from your PHP application with familiar Laravel conventions, simple setup, and straightforward syncing of fulfillment workflows.
Architecture fit. splash/shippingbo is an OpenAPI connector for ShippingBo, a French e-commerce OMS/WMS (order orchestration, stock, picking/packing, carrier labels). The artifact is almost certainly a thin, largely generated client — an HTTP transport plus DTOs mapping to ShippingBo's REST surface — not a domain-rich Laravel package. It fits only one narrow architecture slot: an outbound adapter in the inventory/fulfilment bounded context, sitting behind your own port interface. It should never be allowed to leak ShippingBo DTOs into application or domain code. If ShippingBo is not already your OMS/WMS of record, this package has no reason to enter the dependency graph.
Integration feasibility. Distributable via Composer from a GitLab VCS repository, which implies an auth token (gitlab-token in auth.json or CI-scoped credentials) on every developer machine and every build agent — an immediate CI/CD and secret-management obligation. There is no meaningful metadata: zero stars, zero dependents, score 0, no visible version constraints for PHP or Laravel/Illuminate. Expect to pin a commit SHA rather than a semver range. Feasibility is therefore "technically possible, procedurally awkward": the first hour of work is authentication plumbing, not integration.
Technical risk. High, and concentrated in provenance rather than code quality:
composer audit will tell you about transitive packages but not about this one's handling of bearer tokens, retries, or PII in logs.Key questions for the vendor/maintainer. Who owns this repository and under what SLA? Which ShippingBo API version and OpenAPI spec commit is it generated from? What is the authentication model (API key, OAuth client credentials, per-tenant tokens)? Are rate limits and 429/Retry-After handled, and is retry idempotent? Does it cover webhooks/subscriptions, or is polling the only option? What are the tested PHP and Laravel version ranges? Is there a tagged release compatible with our framework version, and what is the license? Is there an official ShippingBo SDK we should prefer instead?
Stack fit. Assume PSR-18/PSR-7 HTTP underneath, likely Guzzle, with a hand-written or generated client class. That is framework-agnostic and will run inside Laravel, but it is not a Laravel package in the idiomatic sense — do not expect config publishing, facades, queue integration, or Eloquent models. Treat it as a vendor SDK you happen to install with Composer.
Migration path. Do not integrate the package directly into controllers, jobs, or models. Define an internal port (ShipmentGateway, StockReader, OrderSubmitter) in your own namespace, implement it with an adapter that wraps splash/shippingbo, and bind it in a service provider. Everything downstream — sync jobs, webhook handlers, admin screens — depends only on the port. This makes the exit path a one-class swap to raw HTTP or an alternative SDK, which matters enormously given the adoption risk. Persist raw request/response payloads for a bounded retention window to support replay and reconciliation.
Compatibility. Pin the dependency to an exact commit or tag and mirror the repository into your own GitLab/GitHub organisation (vendor fork). Mirrored forks let you patch, audit, and survive upstream disappearance without touching every consumer's composer.json. Lock PHP and Laravel constraints in your root composer.json and add the package to your dependency-review allowlist.
Sequencing.
Maintenance. Budget for owning the fork. Realistically this is 2–4 hours per quarter of dependency review plus whatever ShippingBo API changes force. The absence of upstream semver means upgrades are manual diffs, not composer update. Assign a named owner; unowned generated connectors rot silently.
Support. GitLab issues on a low-traffic namespace are effectively best-effort or nonexistent. Your real support channel is ShippingBo's own API documentation and their account manager. Negotiate API access and a technical contact as part of the commercial relationship — that is worth more than the package.
Scaling. Scaling is bounded by ShippingBo's API rate limits, not by this package. Expect to run all syncs through queued jobs with per-tenant concurrency caps, exponential backoff with jitter on 429/5xx, and circuit breaking on repeated failures. Polling-based stock sync will dominate your job throughput; webhooks, if available, are strongly preferable and should be verified by signature and deduplicated by event ID.
Failure modes.
Ramp-up. The package itself is small; a mid-level Laravel developer can read it in an afternoon. The real ramp-up is ShippingBo domain literacy — the order lifecycle states, allocation rules, carrier and label semantics, and returns flow — which is days, not hours, and is not documented by this repository. Plan for one developer to spend a week on spike plus contract harness before committing, and treat a zero-adoption, zero-star dependency as a build-versus-buy decision in its own right: writing a focused 400-line HTTP client against the endpoints you need may be cheaper, safer, and more maintainable than adopting an unmaintained generated wrapper.
How can I help you explore Laravel packages today?