- Payment flow: the locale is no longer sent to Alma.
- Removed the `locale` field (`fr`) from the payment creation payload sent to the Alma API (`payments.create`).
- The InPage payment iframe no longer forces a locale (`Alma.InPage.initialize`); the `locale` field of the storefront configuration has been dropped.
- As a result, Alma now relies on the customer's browser language (error messages included) instead of forcing French.
- The display widgets (instalment badges on product / cart pages) stay localised in the merchant site language.
- Tests: migrated the `AlmaPaymentHandlerTest` and `OrderAmountFeeExclusionTest` suites to the Shopware 6.6 `AbstractPaymentHandler` API (they still targeted the old 6.5 API). Full backend suite green (255 tests, 0 errors; previously 27 pre-existing errors).
- Added Shopware 6.7 compatibility (the plugin already passed Store review on 6.6):
- Broadened the `shopware/core` and `shopware/storefront` composer constraints to `~6.6.0 || ~6.7.0`.
- Validated end-to-end with `shopware-cli extension validate --check-against highest --store-compliance --full` against Shopware 6.7.10.2 (latest 6.7): 0 errors.
- Confirmed that the migrations done in 1.1.0 (extension of `AbstractPaymentHandler`, `technicalName` on every payment method, Vue 3 strict bindings, attribute-based routing) and in 1.1.2 (removal of `Context::createDefaultContext()` / `SystemSource`, Symfony HTTP client in the commission report) already cover what 6.7 enforces.
- Confirmed that the `ScheduledTaskHandler` constructor already forwards a non-null logger to the parent, matching the new 6.7 requirement.
- Cleaned residual `eslint(@typescript-eslint/no-unused-vars)` warnings in `catch` blocks and one test file.
- Silenced stylelint validation on the third-party Alma SDK CSS bundled under `scss/vendor/_alma-widgets.scss` (no source change to vendor styling).
- Aligned with the Shopware Store automated review feedback (Round #8):
- Removed `!important` declarations from the administration SCSS override (specificity is now carried by a doubled meaningful class).
- Removed two `console.error` calls in the API key detail page; the toast notification flow is now the only error surface.
- Migrated the daily commission report cURL call to the Symfony HTTP client (`http_client`) for proper transport-error handling and testability.
- Removed inline `style=` attributes from the storefront Twig templates (footer banner, PDP widget, checkout data container) and moved the styling to dedicated SCSS classes (`.alma-plugin-info`, `.alma-checkout-data`).
- Added `parent()` calls on every overridden Twig block of the checkout summary total template so the Alma fee row remains additive over the core layout.
- Stopped instantiating `new Context(new SystemSource())` outside CLI / scheduled-task code: `ConfigService::getApiKey()` now takes a `Context` from its caller, threaded through `AlmaClient` and every public method that needs an API client (`getClient`, `getMerchantId`, `fetchPayment`, `partialRefund`, `fullRefund`); the IPN webhook controller receives the `Context` injected by Shopware's `ApiRequestContextResolver`.
- The daily commission report scheduled task handler now uses `Context::createCLIContext()` (the documented CLI / scheduled-task pattern).
- Fixed administration crash on the configuration page when no API key is selected (`sw-entity-multi-id-select` no longer receives a null value).
- Fixed Vue 3 strict event propagation on plan selection and amount fields so the API key dropdown selection and the per-plan min/max amounts are persisted on save.
- Fixed authorization on the Alma fee-plans admin endpoint so the configuration page loads the available plans without a 401 retry.
- Fixed the storefront eligibility widgets so the "Click to find out more" message and the entire widget zone open the Alma details modal as a fullscreen overlay (the Alma SDK CSS was missing from the storefront bundle).
# 1.0.3
- Renamed plugin namespace from AlmaShopwarePayment to SASALMA to match the Shopware Store technical name.
- Changed license from MIT to proprietary to match Shopware Account configuration.