- Can I use setono/post-nord-bundle in a Laravel application?
- No. It is a Symfony bundle that depends on symfony/http-kernel, symfony/config, and symfony/dependency-injection, and Laravel's container does not load bundle Extension or CompilerPass classes. For Laravel, install setono/post-nord-php-sdk directly and wrap it in your own service provider behind a ShippingCarrier or PostNordShipmentGateway interface.
- How do I install and configure the PostNord bundle in a Symfony app?
- Require the package with Composer, register it in config/bundles.php, and add a config/packages/setono_post_nord.yaml file containing your API credentials and sandbox or environment toggle. There is no Flex recipe indicated, so expect manual registration and hand-written configuration. Budget roughly half a day including sandbox validation before you wire it into fulfilment code.
- Does the bundle do anything beyond configuring API credentials and aliasing services?
- Based on the technical assessment, it is essentially a thin dependency-injection wiring layer: a configuration tree for credentials and environment plus service definitions for the PostNord SDK client. The real shipping, label, and tracking functionality lives in setono/post-nord-php-sdk. If the bundle is under about 100 lines, evaluate whether depending on it is worth it versus wiring the SDK yourself.
- Which PostNord APIs and countries does this package actually cover?
- Coverage is not documented in the provided metadata and depends entirely on the underlying SDK. You need to confirm whether label and PDF generation, booking, tracking, returns, and pickup-point search are supported, and where coverage stops. PostNord entitlements differ by country such as DK, SE, NO, and FI and require a customer agreement, so validate with a short spike before estimating.
- Which Symfony and PHP versions are supported by this bundle?
- The provided metadata shows no documented Symfony or PHP support policy and no visible CI matrix. Symfony 7.x and PHP 8.3+ compatibility, plus transitive conflicts against Guzzle, PSR-7, and PSR-18 versions in your composer.lock, are unknown. Test installation on a branch against your exact dependency set before committing.
- Is there a working PostNord sandbox, and does it behave like production?
- Sandbox availability and coverage must be confirmed directly with PostNord, because the bundle only toggles the environment setting. Behaviour parity for label formats, address validation, and cut-off rules is not guaranteed. Validate real responses in the sandbox before trusting delivery estimates for shipping-label generation.
- Is this package actively maintained and safe to use in production?
- Adoption signal is effectively zero with 0 stars, 0 dependents, and no tutorials or community answers, and the bus factor is one maintainer, Setono. The last release on 2024-06-10 is recent enough to look alive but shows no sustained cadence, and there is no evidence of a test suite or CI matrix. Because label generation sits on the critical fulfilment path, plan internal ownership and a fork or vendor budget.
- Does the bundle leak PostNord SDK DTOs into my domain code?
- This is not verified from the metadata, and if it does expose raw SDK classes, carrier-specific types will bleed into order and fulfilment code. Place your own PostNordShipmentGateway adapter in front of the bundle and keep SDK types out of domain and application layers. Otherwise swapping to Bring, DHL, Budbee, or Posti later becomes a refactor rather than a configuration change.
- Is there a test suite or CI I can rely on for my own contract tests?
- The provided information shows no evidence of a test suite, CI matrix, or recorded fixtures, so treat the package as unproven rather than endorsed. You will need to write your own contract tests against sandbox responses and carrier-specific edge cases. Keep those tests at your adapter boundary so they survive a future SDK or carrier change.
- Can I scope PostNord credentials per tenant, warehouse, or shipping agreement?
- The bundle configuration appears global, covering credentials, environment, and possible defaults, with no documented multi-tenant scoping. If you need per-tenant or per-agreement credentials, build your own factory or resolver around the SDK client. Confirm by reading the bundle's Extension class before designing your integration.