Bump Version to 0.20.1
This commit is contained in:
@@ -4,6 +4,43 @@ 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.20.1] - 2026-09-24
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- `Modules\Core\Catalog\Support\ProductDocumentLocalizer::withLocalizedFields()` — a translated
|
||||||
|
attribute (name, description, ...) saved blank for the current locale kept the empty string
|
||||||
|
instead of falling back to the store's default language, since `??` only falls back on a
|
||||||
|
missing/null key, not an empty one. A product with no English copy yet showed a blank
|
||||||
|
title/description on `/en/` instead of its Greek content.
|
||||||
|
- `Modules\Core\Command\WipeCatalogCommand` — now also deletes every `CartLine` referencing a
|
||||||
|
`product_variant` purchasable as part of the wipe (line items only, `Cart` records themselves
|
||||||
|
are left alone). Previously, any cart still holding a line for a wiped variant crashed the
|
||||||
|
entire storefront on every page load (`PricingManager::for()` throws when the variant a line
|
||||||
|
points at no longer exists) until those dangling lines were removed by hand.
|
||||||
|
- `Modules\Core\Command\MigrateImportCommand` now asks which language a Shopify export file's
|
||||||
|
own text is written in before importing, instead of silently assuming it matches the store's
|
||||||
|
default language — the two are independent facts, and a mismatch used to save every imported
|
||||||
|
product's name/description under the wrong language. Backing class renamed `DefaultLocale` →
|
||||||
|
`Modules\Core\MigrateImport\Services\ImportLocale` to stop implying that assumption.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- `Modules\Core\MigrateImport` reorganized to match every other module's layout
|
||||||
|
(`Contracts/`, `DTOs/`, `Jobs/`, `Models/`, `Services/`) instead of loose files at each
|
||||||
|
namespace root — no behavior change, but every `use` of `Importer`, `ImportSpec`,
|
||||||
|
`ImporterFactory`, `ImportLocale`, `RunMigrateImportJob`, `ShopifyExportImporter`,
|
||||||
|
`ShopifyCsvReader`, `ProductGroup`, `JudgeMeExportImporter`, and `JudgeMeCsvReader` moved to
|
||||||
|
its new namespace.
|
||||||
|
- `Modules\Core\MigrateImport\Shopify\Services\ShopifyExportImporter::import()` now dispatches
|
||||||
|
one `Jobs\ImportShopifyProductJob` per product (via `Bus::batch()`) instead of importing every
|
||||||
|
product inline in a single queued job. A large export's variants, resolvers, and media
|
||||||
|
downloads accumulating in one long-lived process routinely exceeded `queue:work`'s
|
||||||
|
`--memory` limit; the worker died mid-run, the container restarted, and the entire import
|
||||||
|
started over from the first row every time, never actually finishing. Splitting into one job
|
||||||
|
per product resets memory between products, and a restart now only repeats whichever single
|
||||||
|
product was in flight. `Modules\Core\Catalog\Services\SkuBackfillService::backfill()` moved
|
||||||
|
from running right after the import loop to the batch's `then()` callback, since it must wait
|
||||||
|
for every product job to finish rather than firing the moment jobs are merely queued.
|
||||||
|
|
||||||
## [0.20.0] - 2026-09-23
|
## [0.20.0] - 2026-09-23
|
||||||
|
|
||||||
### 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.20.0",
|
"version": "0.20.1",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Modules\\Core\\": "src/"
|
"Modules\\Core\\": "src/"
|
||||||
|
|||||||
Reference in New Issue
Block a user