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/).
|
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
|
## [0.17.4] - 2026-09-15
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
"name": "boboko/core",
|
"name": "boboko/core",
|
||||||
"description": "Core module — authentication and shared panel behaviour",
|
"description": "Core module — authentication and shared panel behaviour",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"version": "0.17.4",
|
"version": "0.17.5",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Modules\\Core\\": "src/"
|
"Modules\\Core\\": "src/"
|
||||||
|
|||||||
Reference in New Issue
Block a user