Bump Version to 0.17.5
This commit is contained in:
@@ -4,6 +4,75 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||
|
||||
## [0.17.5] - 2026-09-15
|
||||
|
||||
### Added
|
||||
- Greek translations for `Lunar\Models\Country`/`State` reference data (`lang/el/countries.php`,
|
||||
`lang/el/states.php`), keyed by the exact English spellings Lunar's own installer seeds for
|
||||
Greece (fetched from `data.lunarphp.io/countries+states.json`). Loaded via
|
||||
`loadTranslationsFrom()` under the `core::` namespace — a plain lang file, not
|
||||
`Modules\Core\Localization`'s DB-backed `TranslationService`, since this is fixed reference
|
||||
data, not admin-editable UI copy. A consuming app's storefront looks these up itself (e.g.
|
||||
`__('core::countries.'.$country->name)`) — core has no storefront UI of its own to wire this
|
||||
into.
|
||||
- `Modules\Core\Order\Filament\Extensions\OrderActionsExtension::fixCaptureAction()` — reroutes
|
||||
the backoffice "Capture" header action through `Modules\Core\Payment\Support\
|
||||
TransactionDriverAdapter::capture()`, the same app-level payment pipeline checkout-time captures
|
||||
use, instead of vendor Lunar's `Lunar\Models\Transaction::capture()` (which resolved
|
||||
`Lunar\Facades\Payments`, an entirely separate, unused driver registry, and never dispatched
|
||||
`Modules\Core\Payment\Events\PaymentCaptured`).
|
||||
- `Modules\Core\Payment\Drivers\StripePaymentDriver::cardMetaFromIntent()` — extracts card
|
||||
brand/last-four digits from the Stripe PaymentIntent's `latest_charge`, populated into
|
||||
`PaymentResult::$meta` and mapped onto `Transaction.card_type`/`last_four` by
|
||||
`Modules\Core\Order\Services\TransactionRecorder`. Fixes the admin activity log's "Payment of
|
||||
:amount on card ending :last_four" line rendering with no digits, on both checkout-time and
|
||||
manual captures. Only applies to transactions recorded after this change.
|
||||
- `PaymentMethod.name` and `Lunar\Shipping\Models\ShippingMethod.name` are now locale-keyed JSON
|
||||
columns, rendered in Filament via Lunar's own `Lunar\Admin\Support\Forms\Components\
|
||||
TranslatedText` — one input per configured `Language` row, same shape/resolution as
|
||||
Product/Collection names. Existing plain-string rows are preserved under the store's default
|
||||
language on migration. `ShippingMethod` has no model cast/`ModelManifest` extension point
|
||||
available (vendor table, `Contracts\ShippingMethod` exists but is never bound by the package),
|
||||
so its translation is decoded/encoded at the Filament field boundary and via the new
|
||||
`Modules\Core\Shipping\Support\ShippingMethodName::resolve()` helper, rather than a model cast.
|
||||
- `Modules\Core\Shipping\Contracts\DeclaresFulfillmentType` — lets a shipping rate driver declare
|
||||
whether it fulfils via carrier delivery or in-store pickup as a hardcoded fact about the driver
|
||||
(`AcsRateDriver`, `BoxNowRateDriver` both declare `'carrier'`), instead of asking a merchant to
|
||||
also pick "Carrier delivery" on every row regardless of driver. The merchant-facing "Fulfillment
|
||||
type" Select (`ShippingMethod.data['fulfillment_type']`) now only appears for
|
||||
table-rate-shipping's generic drivers (flat-rate, ship-by, free-shipping), which are genuinely
|
||||
ambiguous, and moved next to `charge_by` instead of trailing at the end of the form,
|
||||
disconnected from the decisions it relates to. `Modules\Core\Shipping\Support\
|
||||
FulfillmentType::resolve()`/`isStorePickup()` is the new single source of truth, replacing a
|
||||
direct `data['fulfillment_type']` read in `Order::isStorePickupOrder()`.
|
||||
|
||||
### Fixed
|
||||
- `Modules\Core\Order\Listeners\ApplyResolvedPaymentStatus` never advanced `Order::status` past
|
||||
`awaiting_payment` on a capture — only `paid`/`paid_at` were written, so a fully captured order
|
||||
could sit indefinitely at "awaiting payment" until a staff member manually clicked "Update
|
||||
Status". Now, on `PaymentCaptured` (not `PaymentAuthorized`), `status` advances to the next step
|
||||
in the order's flow, but only when it's still exactly `awaiting_payment`, so a duplicate/delayed
|
||||
capture event never regresses an order staff already moved further.
|
||||
- `Lunar\DataTypes\ShippingOption::$collect` (the flag `docs/checkout.md` documents as the
|
||||
mechanism for detecting a pickup option at checkout) was never actually set by any shipping rate
|
||||
driver — `Modules\Core\Shipping\Concerns\ResolvesFixedPricing` now populates it from the same
|
||||
`FulfillmentType` resolution `Order::isStorePickupOrder()` uses, closing a real gap between
|
||||
documented and actual behavior.
|
||||
|
||||
### Changed
|
||||
- `Modules\Core\Order\Filament\Extensions\OrderRefundActionsExtension` renamed to
|
||||
`OrderActionsExtension` — the class now fixes both the refund and capture header actions on the
|
||||
order page, not just refund.
|
||||
- Removed the `lunarphp/stripe` dependency in favour of depending on `stripe/stripe-php` directly.
|
||||
`Modules\Core\Payment\Drivers\StripePaymentDriver` had already replaced every bit of Lunar's own
|
||||
Stripe payment flow (checkout, webhook processing) with its own — all that remained load-bearing
|
||||
from the package was raw API-client access, amount conversion, and a correlation table, none of
|
||||
which are Lunar-specific. Added first-party replacements: `Modules\Core\Payment\Support\
|
||||
StripeManager`, `Modules\Core\Payment\Models\StripePaymentIntent`, `Modules\Core\Payment\Http\
|
||||
Middleware\StripeWebhookMiddleware`, and a first-party copy of the vendor's
|
||||
`create_stripe_payment_intents_table` migration (guarded with `Schema::hasTable()`). No behavior
|
||||
change for consuming apps.
|
||||
|
||||
## [0.17.4] - 2026-09-15
|
||||
|
||||
### Added
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"name": "boboko/core",
|
||||
"description": "Core module — authentication and shared panel behaviour",
|
||||
"type": "library",
|
||||
"version": "0.17.4",
|
||||
"version": "0.17.5",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Modules\\Core\\": "src/"
|
||||
|
||||
Reference in New Issue
Block a user