Commit graph

41012 commits

Author SHA1 Message Date
Rafikooo
07409b4b80
Use PSR-6 cache pools directly for ORM 3.x compatibility
(cherry picked from commit 8fd759784a)
2026-06-17 14:33:43 +02:00
Rafikooo
d2b81c09cb
Align data-fixtures version in AddressingBundle
(cherry picked from commit 4bc86730f8)
2026-06-17 14:33:43 +02:00
Rafikooo
f2c28b746f
Allow doctrine/data-fixtures ^2.2 for persistence ^4 support
(cherry picked from commit 3102ec010c)
2026-06-17 14:33:43 +02:00
Rafikooo
84f6b4eedc
Use datetime_immutable Doctrine type for DBAL 4.x compatibility
(cherry picked from commit 07130603b1)
2026-06-17 14:33:43 +02:00
Rafikooo
6c30d0cf6e
Align doctrine-bundle version in bundle composer.json files
(cherry picked from commit 8861205149)
2026-06-17 14:33:43 +02:00
Rafikooo
e204f6a602
Move DBAL 3.x/4.x compatibility ignore to global phpstan config
(cherry picked from commit 2c61ba6353)
2026-06-17 14:33:43 +02:00
Rafikooo
c97ce1af28
Force DBAL 3.x for DoctrineBundle 2.x tests
DBAL 4.x has stricter type checking that doesn't accept DateTimeImmutable
in datetime fields. Until the codebase is fully compatible with DBAL 4.x,
we need to use DBAL 3.x for DoctrineBundle 2.x tests.

(cherry picked from commit 4abdd1c2a0)
2026-06-17 14:33:43 +02:00
Rafikooo
20bcf71b99
Remove auto_generate_proxy_classes config for DoctrineBundle 3.x compatibility
This option was removed in DoctrineBundle 3.0 as it became a no-op
when using native lazy objects (introduced in ORM 3.x/DBAL 4.x).

(cherry picked from commit 2c0b64e89c)
2026-06-17 14:33:42 +02:00
Rafikooo
260e14acfc
Require api-test-case ^5.3.5 (supports doctrine-bundle 3.x)
(cherry picked from commit f1da6da147)
2026-06-17 14:33:42 +02:00
Rafikooo
9f0edadf09
Allow doctrine/persistence ^3.3 || ^4.0
(cherry picked from commit 34e3d57043)
2026-06-17 14:33:42 +02:00
Rafikooo
f1e6d2ac35
Fix CI: whitelist MariaDb1027Platform in composer-require-checker
(cherry picked from commit dd8e57e5f3)
2026-06-17 14:33:42 +02:00
Rafikooo
f906fcba7f
Fix CI: Day/Hour DQL + QueryBuilder::select() for DBAL 4
(cherry picked from commit e20abd232d)
2026-06-17 14:33:42 +02:00
Rafikooo
a6972e5ae5
Add DBAL 3.x/4.x compatibility layer
(cherry picked from commit 23cc3a128b)
2026-06-17 14:33:42 +02:00
Rafikooo
cefe6f70a5
Add doctrine_bundle to CI matrix for testing both versions
(cherry picked from commit 966c64798b)
2026-06-17 14:33:41 +02:00
Rafikooo
ff84b9561d
Allow doctrine/doctrine-bundle ^2.0 || ^3.0
(cherry picked from commit a477872e88)
2026-06-17 14:33:41 +02:00
Kamil Grygierzec
499d84b607
[XML2PHP] StateMachineAbstraction (#19063)
Some checks are pending
Continuous Integration (Minimal) / Static checks (push) Waiting to run
Continuous Integration (Minimal) / Tests (MariaDB) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Frontend (push) Blocked by required conditions
Continuous Integration (Minimal) / Packages (push) Blocked by required conditions
| Q               | A
|-----------------|-----
| Branch?         | 2.3
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations? | no<!-- don't forget to update the UPGRADE-*.md file
-->
| Related tickets | extracted from
https://github.com/Sylius/Sylius/pull/18803, partially
https://github.com/Sylius/Sylius/issues/18490
| License         | MIT

<!--
 - Bug fixes must be submitted against the 2.2 branch
 - Features and deprecations must be submitted against the 2.3 branch
 - Make sure that the correct base branch is set

To be sure you are not breaking any Backward Compatibilities, check the
documentation:

https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html
-->


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **Refactor**
* Migrated state machine service configurations from XML format to
PHP-based configuration files for improved maintainability and
consistency.
* Updated the service loader to support PHP file-based configuration
instead of XML.

* **Tests**
* Streamlined test coverage to focus on YAML-based service configuration
validation paths.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-17 13:12:49 +02:00
Kamil Grygierzec
dc63ff6b72
Remove symfony/proxy-manager-bridge and friendsofphp/proxy-manager-lts (#19062)
| Q               | A
|-----------------|-----
| Branch?         | 2.3
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations?   | no
| Related tickets | https://github.com/Sylius/Sylius/pull/18971,
https://github.com/Sylius/Sylius/issues/18760
| License         | MIT

This re-targets the already-open #18971 (originally against `symfony-8`)
onto `2.3`, since `2.3` is the development branch for the next release.
The original commit is cherry-picked as-is to preserve authorship.

`symfony/proxy-manager-bridge` and `friendsofphp/proxy-manager-lts` are
removed — they are no longer needed, as lazy services rely on PHP's
native lazy proxies from `symfony/var-exporter` (default since Symfony
6.4).

Adds an `UPGRADE-2.3.md` note under **Dependencies**.

<!--
 - Bug fixes must be submitted against the 2.2 branch
 - Features and deprecations must be submitted against the 2.3 branch
 - Make sure that the correct base branch is set

To be sure you are not breaking any Backward Compatibilities, check the
documentation:

https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html
-->


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
  * Added upgrade guidance for dependency changes in version 2.3.

* **Chores**
* Removed proxy manager bridge dependencies; lazy services now use
native PHP lazy proxies for improved performance and reduced external
dependencies.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-17 13:09:35 +02:00
Kamil Grygierzec
bc650c0606
Remove consolidation/robo dependency and refactor packages builds (#19060)
| Q               | A
|-----------------|-----
| Branch?         | 2.3
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations? | no<!-- don't forget to update the UPGRADE-*.md file
-->
| Related tickets | https://github.com/Sylius/Sylius/pull/18903,
https://github.com/Sylius/Sylius/issues/18760
| License         | MIT

This PR backports the robo removal already done on the `symfony-8`
branch (#18903) to `2.3`, as it makes sense to have it on `2.3` already

<!--
 - Bug fixes must be submitted against the 2.2 branch
 - Features and deprecations must be submitted against the 2.3 branch
 - Make sure that the correct base branch is set

To be sure you are not breaking any Backward Compatibilities, check the
documentation:

https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html
-->


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Refactored CI/CD workflows to dynamically discover and test packages
instead of using a task runner approach.
* Simplified package test execution with per-package working directories
and conditional test execution.
* Removed external task runner dependency to streamline the build
pipeline.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-17 12:39:06 +02:00
TheMilek
e6b7657122
[XML2PHP] StateMachineAbstraction 2026-06-17 06:24:02 +02:00
Grzegorz Sadowski
1624f51569
Document removal of proxy-manager packages in UPGRADE-2.3 2026-06-16 14:28:39 +02:00
Pascal CESCON - Amoifr
6b1b99b3fa
Remove symfony/proxy-manager-bridge and friendsofphp/proxy-manager-lts
These packages are no longer needed as Symfony 8 uses PHP 8.4 native
lazy proxies instead of the third-party proxy-manager library.
2026-06-16 14:23:36 +02:00
Mateusz
8a9700cbbf Add BC layer for IRIConverter constructor change 2026-06-16 13:59:34 +02:00
Grzegorz Sadowski
f4920e4c1d
[CI] Do not fail nightly on unstable Symfony 8 packages build 2026-06-16 13:59:13 +02:00
Grzegorz Sadowski
dcc76cea4a
[CI] Drop RoboFile.php export-ignore after robo removal 2026-06-16 13:58:56 +02:00
TheMilek
4ba3e39262
[Symfony 8] Remove robo dependency
(cherry picked from commit 7510df5c39)
2026-06-16 13:56:57 +02:00
Mateusz
3b9b02265d Move discriminator subclass test resources to apiBundle test app 2026-06-16 13:00:06 +02:00
mamazu
d2adc9e156 Reworking the upgrade guide
Some checks failed
Continuous Integration (Minimal) / Static checks (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MariaDB) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Has been cancelled
Continuous Integration (Minimal) / Frontend (push) Has been cancelled
Continuous Integration (Minimal) / Packages (push) Has been cancelled
2026-06-16 10:35:42 +02:00
mamazu
4f0c12a7dc Replacing getName with attributes 2026-06-16 10:16:07 +02:00
Marek Rzytki
a306ace096 Add Taxon documentation to OpenAPI specification 2026-06-16 09:10:18 +02:00
Valentin Salmeron
92694338b6 Fix SyliusUiBundle compiler passes priority 2026-06-15 10:17:56 +02:00
mamazu
b82b6a07f0 Finishing the PR with all grids
Some checks failed
Continuous Integration (Minimal) / Static checks (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MariaDB) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Has been cancelled
Continuous Integration (Minimal) / Frontend (push) Has been cancelled
Continuous Integration (Minimal) / Packages (push) Has been cancelled
2026-06-14 21:13:19 +02:00
mamazu
0f72863478 Merge remote-tracking branch 'upstream/2.3' into php-grid-configuration
Some checks are pending
Continuous Integration (Minimal) / Static checks (push) Waiting to run
Continuous Integration (Minimal) / Tests (MariaDB) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Frontend (push) Blocked by required conditions
Continuous Integration (Minimal) / Packages (push) Blocked by required conditions
2026-06-14 19:29:31 +02:00
Mateusz
6b7d0037fc Add API contract test for discriminator subclass IRI generation 2026-06-12 14:17:07 +02:00
Grzegorz Sadowski
f8a27841f2
[DX] Break footer menu and shipment general templates into smaller hooks 2.2 (#19056)
Some checks failed
Continuous Integration (Minimal) / Static checks (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MariaDB) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Has been cancelled
Continuous Integration (Minimal) / Frontend (push) Has been cancelled
Continuous Integration (Minimal) / Packages (push) Has been cancelled
| Q               | A
|-----------------|-----
| Branch?         | 2.2
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| Deprecations?   | 
| Related tickets | 
| License         | MIT

<!--
 - Bug fixes must be submitted against the 2.2 branch
 - Features and deprecations must be submitted against the 2.3 branch
 - Make sure that the correct base branch is set

To be sure you are not breaking any Backward Compatibilities, check the
documentation:

https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html
-->
2026-06-12 09:36:04 +02:00
Mateusz
c01747140e [DX] Break footer link groups into individual hookable templates 2026-06-12 08:37:38 +02:00
Mateusz
4e2f6be26f [DX] Break footer menu and shipment general templates into smaller hooks 2026-06-12 08:37:38 +02:00
Rafał Jaskulski
2b27c22cca
[CS][DX] Refactor (#19023)
Some checks are pending
Continuous Integration (Minimal) / Static checks (push) Waiting to run
Continuous Integration (Minimal) / Tests (MariaDB) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Frontend (push) Blocked by required conditions
Continuous Integration (Minimal) / Packages (push) Blocked by required conditions
This PR has been generated automatically.
For more details see
[refactor.yaml](/Sylius/Sylius/blob/2.1/.github/workflows/refactor.yaml).
2026-06-11 07:31:13 +02:00
Sylius Bot
97ea3445af [CS][DX] Refactor
Some checks failed
Continuous Integration (Minimal) / Static checks (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MariaDB) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Has been cancelled
Continuous Integration (Minimal) / Frontend (push) Has been cancelled
Continuous Integration (Minimal) / Packages (push) Has been cancelled
2026-06-11 03:06:37 +00:00
Kamil Grygierzec
dd5184bd91
[Fix] Product Summary using wrong variant resolver (#19047)
Some checks are pending
Continuous Integration (Minimal) / Packages (push) Blocked by required conditions
Continuous Integration (Minimal) / Static checks (push) Waiting to run
Continuous Integration (Minimal) / Tests (MariaDB) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Frontend (push) Blocked by required conditions
| Q               | A
|-----------------|-----
| Branch?         | 2.2
| Bug fix?        | yes
| New feature?    | no
| BC breaks?      | no
| Deprecations?   | no
| Related tickets | 
| License         | MIT

I encountered an issue where I'm using my own specific
`sylius.resolver.product_variant`, I discovered that the component
Product Summary was using the default resolver instead of the composite
one.

The PR is aiming to fix this.
2026-06-10 21:38:31 +02:00
Kamil Grygierzec
340fce0744
[DX] Catalog price display (#19032)
Some checks failed
Continuous Integration (Minimal) / Static checks (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MariaDB) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Has been cancelled
Continuous Integration (Minimal) / Frontend (push) Has been cancelled
Continuous Integration (Minimal) / Packages (push) Has been cancelled
| Q               | A
|-----------------|-----
| Branch?         | 2.3
| Bug fix?        | no
| New feature?    | yes
| BC breaks?      | no
| Deprecations?   | yes
| Related tickets | mentioned in #18142
| License         | MIT

## Summary

This PR implements **Alternative A** proposed in #18142 — a dedicated
`CatalogPricesCalculatorInterface` to semantically separate catalog
display pricing from cart/order pricing.

The original PR introduced a plain service alias without any PHP-level
distinction. After review feedback from @diimpp, the approach was
refined: instead of an invisible alias, we introduce a **real PHP
contract** that communicates intent and enables clean decoration via
Symfony's DI.

## Problem

Sylius currently uses a single `sylius.calculator.product_variant_price`
for both catalog display and cart/order processing. Decorating it to
customize catalog display (e.g. B2B list prices, EU OSS VAT, Omnibus
compliance) inevitably affects cart totals, order recalculation, and the
promotion engine — a tight coupling that every other major PHP
e-commerce framework (Magento, Shopware, PrestaShop, WooCommerce) has
already solved.

## Solution

### New interface

```php
namespace Sylius\Component\Core\Calculator;

/**
 * Calculates prices for catalog display purposes (product listings, detail pages, API responses).
 *
 * This is intentionally distinct from ProductVariantPricesCalculatorInterface used in cart/order
 * processing, allowing independent customization of display pricing (e.g., B2B list prices,
 * EU Omnibus Directive compliance, geo-pricing, OSS VAT destination-based rules).
 *
 * Decorate this interface to customize catalog display pricing without any risk of side effects
 * on cart totals, order processing, or promotion engines.
 */
interface CatalogPricesCalculatorInterface extends ProductVariantPricesCalculatorInterface
{
}
```

`ProductVariantPriceCalculator` implements both interfaces — **zero
functional change** for existing installations.

### Catalog-facing consumers updated

| Service / Class | Context |
|---|---|
| `sylius.twig.extension.price` / `PriceExtension` | Twig price filters
|
| `sylius_api.normalizer.product_variant` / `ProductVariantNormalizer` |
API serialization |
| `sylius_shop.twig.component.product.price` / `PriceComponent` | Shop
price component |
| `sylius_shop.twig.component.product.card` / `CardComponent` | Shop
product card |
| `sylius.provider.product_variant_map.price` /
`ProductVariantPriceMapProvider` | JS variant switching |
| `sylius.provider.product_variant_map.original_price` /
`ProductVariantOriginalPriceMapProvider` | JS variant switching |
| `sylius.provider.product_variant_map.lowest_price` /
`ProductVariantLowestPriceMapProvider` | JS variant switching |

### Cart/order consumers intentionally unchanged

| Service | Context |
|---|---|
| `sylius.order_processing.order_prices_recalculator` | Cart/order
processing |
| `sylius.filter.promotion.price_range` | Promotion engine |

## Result

Developers can now decorate **only catalog display pricing** without
touching cart totals:

```php
$services
    ->decorator(CatalogPricesCalculatorInterface::class)
    ->class(MyB2BCatalogPriceCalculator::class)
;
```



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Deprecations**
* Passing the legacy product-variant pricing calculator into
catalog-facing classes now emits deprecation warnings; implementors
should migrate to the new catalog-focused calculator interface (required
in Sylius 3.0).

* **Refactor**
* Introduced a catalog-focused price calculator interface and adapted
core components to accept it.

* **Chores**
* Core service wiring updated to use the new catalog calculator for
catalog/listing/price components.

* **Documentation**
  * Added upgrade guide section with migration instructions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-09 11:42:21 +02:00
Francis Hilaire
85a9294c3f
fix: wrong position of the deprecations 2026-06-09 11:23:55 +02:00
Francis Hilaire
41c5b4f3bc
[DX] Wire CatalogPricesCalculatorInterface to all catalog-facing services
Register sylius.calculator.product_variant_catalog_price (same implementation as
sylius.calculator.product_variant_price, independently decoratable) and wire it
to all catalog display consumers:

- sylius.twig.extension.price (Twig price filters)
- sylius_api.normalizer.product_variant (API serialization)
- sylius_shop.twig.component.product.price (shop price component)
- sylius_shop.twig.component.product.card (shop product card)
- sylius.provider.product_variant_map.price (JS variant switching)
- sylius.provider.product_variant_map.original_price
- sylius.provider.product_variant_map.lowest_price

Cart/order consumers (OrderPricesRecalculator, PriceRangeFilter) intentionally
remain on sylius.calculator.product_variant_price.

# Conflicts:
#	src/Sylius/Bundle/ApiBundle/Resources/config/services/serializers.xml
#	src/Sylius/Bundle/CoreBundle/Resources/config/services.xml
#	src/Sylius/Bundle/CoreBundle/Resources/config/services/product_variant_map.xml
#	src/Sylius/Bundle/CoreBundle/Resources/config/services/templating.xml
#	src/Sylius/Bundle/ShopBundle/Resources/config/services/twig/component/product.xml
2026-06-03 18:37:04 +02:00
Francis Hilaire
5379ccd3ae
[Core] Introduce CatalogPricesCalculatorInterface for catalog display pricing
Add a dedicated interface for catalog-facing price calculations, distinct from
ProductVariantPricesCalculatorInterface which is used in cart/order processing.

This semantic contract allows developers to decorate catalog display pricing
independently (e.g. EU OSS VAT, B2B list prices, Omnibus Directive compliance)
without risk of side effects on cart totals or order processing.

ProductVariantPriceCalculator now implements both interfaces, preserving full
backward compatibility while satisfying both injection points.
2026-06-03 18:26:14 +02:00
Francis Hilaire
6a7c5cf6e3
Use composite service instead of the default one to allow other tagged service to resolve the right product variant 2026-06-03 17:56:05 +02:00
Mateusz
509e354a0a Use ResourceClassResolver in IriConverter to fix discriminator subclass IRI generation 2026-06-03 13:48:38 +02:00
Kamil Grygierzec
bc95be8333
feat(fixtures): Allow translations on product attributes & values (#19004)
Some checks failed
Continuous Integration (Minimal) / Static checks (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MariaDB) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Has been cancelled
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Has been cancelled
Continuous Integration (Minimal) / Frontend (push) Has been cancelled
Continuous Integration (Minimal) / Packages (push) Has been cancelled
| Q               | A
|-----------------|-----
| Branch?         | 2.3
| Bug fix?        | no
| New feature?    | yes
| BC breaks?      | no
| Deprecations?   | no
| Related tickets | 
| License         | MIT

<!--
 - Bug fixes must be submitted against the 1.14 or 2.1 branch
 - Features and deprecations must be submitted against the 2.2 branch
 - Make sure that the correct base branch is set

To be sure you are not breaking any Backward Compatibilities, check the
documentation:

https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html
-->

Currently, we are not able to define product attributes and product
options in several locales.
This PR allows us to use the same system we already defined in Taxon
fixtures.

Example:
```yaml
dress_option:
    name: product_option
    options:
        custom:
            -   name: 'Dress height'
                code: 'dress_height'
                values:
                    dress_height_petite: 'Petite'
                    dress_height_regular: 'Regular'
                    dress_height_tall: 'Tall'
                translations:
                    fr_FR:
                        values:
                            dress_height_petite: 'Petite'
                            dress_height_regular: 'Moyenne'
                            dress_height_tall: 'Grande'
```

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Product attributes and options now support per-locale display names
and per-locale option value labels via a translations configuration.

* **Fixtures**
* Fixture schemas accept a translations section for attributes and
options.
* Sample fixtures updated with en_US/fr_FR translations for attributes
and option values.

* **Tests**
* Added/updated tests verifying locale-dependent names and
locale-specific option value labels.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/Sylius/Sylius/pull/19004)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-03 13:03:35 +02:00
Loïc Frémont
922ed066c1 Apply suggestions from code review 2026-06-02 16:01:19 +02:00
Kamil Grygierzec
297e5a06ba
ECS fixes (#19043)
Some checks are pending
Continuous Integration (Minimal) / Static checks (push) Waiting to run
Continuous Integration (Minimal) / Tests (MariaDB) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Frontend (push) Blocked by required conditions
Continuous Integration (Minimal) / Packages (push) Blocked by required conditions
| Q               | A
|-----------------|-----
| Branch?         | 2.3
| Bug fix?        | no
| New feature?    | no
| BC breaks?      | no
| License         | MIT
2026-06-02 15:48:04 +02:00
Tomasz Kaliński
0e881718f6 ECS fixes 2026-06-02 15:20:07 +02:00
Kamil Grygierzec
8069a6c36d
[UPMERGE] 2.2 -> 2.3 (#18955)
Some checks are pending
Continuous Integration (Minimal) / Static checks (push) Waiting to run
Continuous Integration (Minimal) / Tests (MariaDB) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Javascript Tests (MySQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Tests (PostgreSQL) (push) Blocked by required conditions
Continuous Integration (Minimal) / Frontend (push) Blocked by required conditions
Continuous Integration (Minimal) / Packages (push) Blocked by required conditions
This PR has been generated automatically.
For more details see
[upmerge_pr.yaml](/Sylius/Sylius/blob/2.3/.github/workflows/upmerge_pr.yaml).

**Remember!** The upmerge should always be merged with using `Merge pull
request` button.

In case of conflicts, please resolve them manually with usign the
following commands:
```
git fetch upstream
gh pr checkout <this-pr-number>
git merge upstream/2.3 -m "Resolve conflicts between 2.2 and 2.3"
```

If you use other name for the upstream remote, please replace `upstream`
with the name of your remote pointing to the `Sylius/Sylius` repository.

Once the conflicts are resolved, please run `git merge --continue` and
push the changes to this PR.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added admin "show" pages for products, customers, orders, shipments
and catalog promotions.
* Checkout blocks placing orders when selected payment method is
unavailable for the active channel.

* **Bug Fixes**
  * Address updates accept province-name-only inputs.
  * Flash alert class mapping corrected.
* Restored missing admin show titles and missing-translation UI
indicators.

* **Tests**
* Added UI/API and unit tests plus fixtures for channel-based payment
eligibility and province/address behaviors.

* **Documentation**
* Updated upgrade notes covering locale resolution and payment-method
eligibility.

* **Chores**
  * Mailer manager services made public.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 14:15:27 +02:00