- What is marshmallow/keen-delivery used for in Laravel?
- marshmallow/keen-delivery is a Laravel/PHP integration for Keen Delivery. It provides configuration helpers and a clean API wrapper for retrieving shipping rates, creating shipments, and managing delivery workflows, including label creation through sendynl/php-sdk. Use it to keep vendor SDK types out of controllers and jobs.
- How do I install marshmallow/keen-delivery via Composer?
- Install it with Composer using composer require marshmallow/keen-delivery. In Laravel, register the package service provider if your app does not use package discovery, and publish the package configuration if provided. Then set your Keen Delivery credentials in configuration or environment variables rather than hard-coding them.
- Which Laravel and PHP versions does marshmallow/keen-delivery support?
- The provided release context does not state explicit PHP or Laravel version constraints for marshmallow/keen-delivery. Check the package composer.json and README for the supported matrix before upgrading, especially if you are bumping to ^3.1.1. Validate against your application's runtime matrix in CI.
- How do I configure Keen Delivery API credentials in Laravel?
- marshmallow/keen-delivery exposes configuration helpers and a publishable config file for Keen Delivery integration. Publish the config and keep API credentials in environment-specific values instead of committing them. Consult the README for the exact configuration keys and required Keen Delivery account settings.
- Can marshmallow/keen-delivery create single and bulk shipping labels?
- The wrapper exposes label creation for single and bulk shipment workflows through sendynl/php-sdk. In v3.1.1, bulk labels explicitly send A6 paper type and top-left print position instead of relying on the SDK default. Confirm single-label and caller-override paths in your version if those matter to your fulfilment process.
- How do I retrieve shipping rates with Keen Delivery in Laravel?
- Use the package's API wrapper or facade/service class to request Keen Delivery shipping rates from Laravel domain code. Keeping calls inside the wrapper avoids coupling controllers and jobs directly to sendynl/php-sdk. Refer to the README for exact method names and payload shapes.
- Does marshmallow/keen-delivery let me customize paper type and print position?
- v3.1.1 explicitly supplies A6 paper type and top-left print position for bulk labels. The release context does not confirm whether those values are hard-coded defaults, configurable settings, or overridable per call. If you need A4 or 4x6 thermal output, inspect the wrapper configuration and test caller-supplied overrides before relying on them.
- What are the risks of upgrading marshmallow/keen-delivery to v3.1.1?
- Treat v3.1.1 as a small but behavior-sensitive upgrade: the release pins paper type and print position because sendynl/php-sdk v3 no longer defaults the paper type. The biggest risk is direct sendynl/php-sdk call sites that bypass the wrapper and now send no paper type. Grep for direct SDK usage, bump to ^3.1.1, render a real bulk label to PDF, and assert the outgoing payload in a test.
- How should I test Keen Delivery label generation in Laravel?
- Add a unit test that asserts the outgoing Keen Delivery request payload contains the expected paper type and print position. Also render at least one real bulk label to PDF and inspect paper size and print origin, because label output is hard to verify automatically. Cover single-label and bulk paths, plus any caller-supplied overrides, to catch silent regressions.
- How do I evaluate maintenance and alternatives for marshmallow/keen-delivery?
- marshmallow/keen-delivery is a thin Laravel adapter around sendynl/php-sdk, so its maintenance is tied to Keen Delivery API and SDK changes. Check Packagist and GitHub for release cadence, open issues, and PHP/Laravel constraints before adopting it. Alternatives include calling sendynl/php-sdk directly or using another Keen Delivery integration, but the wrapper remains useful as a single seam for vendor changes.