bigcommerce/api
A PHP client for the BigCommerce API with OAuth authentication and ready-made resources for catalog, orders, customers, carts, and store data. Simplifies building integrations and apps against BigCommerce REST endpoints.
Architecture fit
Bigcommerce\Api\V3 (OpenAPI-generated API classes and models) alongside a deprecated legacy Bigcommerce\Api\Client for v2 endpoints. There is no Laravel service provider, facade, config publishing, or container binding.6.x.y range; the correct pin target is now 3.3.12 exactly.Integration feasibility
firebase/php-jwt to ^7.0 to remediate CVE-2025-45769. Two practical consequences: (a) if we constrain firebase/php-jwt directly anywhere in the app (common when signing BigCommerce Customer Login JWTs or verifying our own tokens), Composer resolution must be checked — the SDK's ^7.0 constraint will conflict with a hard ^6.0 pin; (b) firebase/php-jwt 6→7 is a major bump, so any first-party code calling JWT::encode/JWT::decode needs a review pass for signature-algorithm and exception-handling changes.Technical risk
^7.0) rather than a hard requirement, an environment that resolves to firebase/php-jwt 6.x can still install 3.3.12 and remain exposed. Pinning the SDK version is not sufficient — we must assert the resolved JWT version in composer.lock and fail CI if it is below 7.x.Client. Risk of building on a deprecated surface if developers follow stale samples.Key questions
firebase/php-jwt directly anywhere (Customer Login JWT, internal token signing), and if so what is our current constraint and call-site compatibility with 7.x?Stack fit
config/bigcommerce.php fed by environment variables (store hash, client ID/secret, access token), a BigCommerceServiceProvider registering a manager class that lazily builds Configuration → ApiClient → per-resource API objects (CatalogApi, OrdersApi, CustomersApi), and thin repository/service classes that wrap the generated clients so the rest of the app never imports Bigcommerce\Api\V3 directly.HandlerStack containing retry-with-backoff, structured logging, and a request-level throttle, rather than calling the SDK's default client.RateLimited jobs so throttling is visible in Horizon rather than manifesting as silent 429 retries.Migration path
Bigcommerce\Api\Client.Client, isolate it behind the same wrapper interface first, then replace call sites resource-by-resource, starting with read-only catalog calls..env-inline credentials into encrypted storage with a documented rotation procedure before going further.firebase/php-jwt to ≥7.0, run the composer audit and the full test suite, and only then proceed. This is a small, low-risk change and should not be batched with functional work.Compatibility
3.3.12) rather than a caret range for the first release cycle.composer show firebase/php-jwt or a lock-file assertion in CI) and an composer audit gate that fails the build on high-severity advisories.Firebase\JWT usage and confirm call-site compatibility with 7.x; if we have a hard ^6.0 pin for our own reasons, resolve it consciously rather than letting Composer pick.Sequencing
firebase/php-jwt to 7.x, run the audit and existing tests, deploy. No functional changes bundled.Maintenance
Support
composer audit in CI, Packagist advisories) and who is accountable for triaging them within a defined SLA.Scaling
Failure modes
firebase/php-jwt resolves to 6.x. Mitigation is a lock-file assertion plus composer audit, not the SDK pin alone.Ramp-up
composer update can have security consequences.How can I help you explore Laravel packages today?