From 09a719fda62eea66420d603e2f8c9e8069d0df31 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 31 Jul 2024 16:50:59 +0200 Subject: [PATCH 01/29] [WIP] PIM training raw draft --- docs/trainings/commerce/pim/000_syllabus.md | 68 +++++++ .../commerce/pim/011_product_modeling.md | 185 ++++++++++++++++++ .../commerce/pim/012_product_shelving.md | 43 ++++ .../commerce/pim/013_product_displaying.md | 150 ++++++++++++++ .../commerce/pim/021_product_pricing.md | 8 + 5 files changed, 454 insertions(+) create mode 100644 docs/trainings/commerce/pim/000_syllabus.md create mode 100644 docs/trainings/commerce/pim/011_product_modeling.md create mode 100644 docs/trainings/commerce/pim/012_product_shelving.md create mode 100644 docs/trainings/commerce/pim/013_product_displaying.md create mode 100644 docs/trainings/commerce/pim/021_product_pricing.md diff --git a/docs/trainings/commerce/pim/000_syllabus.md b/docs/trainings/commerce/pim/000_syllabus.md new file mode 100644 index 0000000000..69a99cf23d --- /dev/null +++ b/docs/trainings/commerce/pim/000_syllabus.md @@ -0,0 +1,68 @@ +--- +description: PIM training +--- + +[[% include 'snippets/experience_badge.md' %]] [[% include 'snippets/commerce_badge.md' %]] +# PIM (Product Information Management) + +## Syllabus + +In this training, you learn how to create complex products, to quote their prices, and to organize them in catalogs, using the build-in features. + +| Section | Estimated | Description | +|:------------------------------------------------|----------:|:------------------------------------------------------------------------------| +| [Product modeling](011_product_modeling.md) | X minutes | Learn about product types, products and product variants. | +| [Product shelving](012_product_shelving.md) | Y minutes | Organize your products with categories and catalogs. | +| [Product displaying](013_product_displaying.md) | Z minutes | Template the product page. | +| [Product pricing](021_product_pricing.md) | N minutes | Manage currencies and VAT rates, compute prices. (TODO: discount needs users) | + +## Requirements + +### Previous knowledge + +- [Content management](content_management.md) + - [Content types](content_types.md) and [content items](content_model.md#content-items) + - [Taxonomy](taxonomy.md) +- [Templating](templating.md) + +### Ibexa DXP edition + +[[= product_name_headless =]] is the minimal edition required for this training. + +- [[= product_name_headless =]] [[= latest_tag_4_6 =]] +- [[= product_name_exp =]] [[= latest_tag_4_6 =]] +- [[= product_name_com =]] [[= latest_tag_4_6 =]] + +TODO: Make sure that everything used is in Ibexa DXP Headless scope, so to speak, ibexa/product-catalog +TODO: Trainees working on Ibexa DXP Commerce could pick examples from ibexa/storefront but others mustn't be frustrated of having installed an inferior edition. + +!!! note + + You can use [`experience-skeleton`'s DDEV feature](ddev_interactive_launcher.md#experience) + + For more suggestions about your training environment, see [Training environment](trainings.md#training-environment). + +### Cluster elements + +This training needs a reverse proxy for HTTP cache. For a local installation, Varnish is recommended. + +| Service | Required | Value | +|--------------:|:--------:|:-------------| +| Search engine | No | (Legacy) | +| Cache pool | No | (Filesystem) | +| HTTP cache | No | | + +### Starting state + +To follow this training, you must install code, config and data on top of a fresh installation. + +1. Download the [starting state archive](download/a_late_training.start.zip). +1. Put this archive at the root of your [[= product_name =]] training installation. +1. In a terminal, run the following commands at the root of your [[= product_name =]] training installation: + ```bash + unzip a_late_training.start.zip + tail -n+2 config/append_to_services.yaml >> config/services.yaml + rm config/append_to_services.yaml + php bin/console ibexa:migrations:migrate --file=a_late_training_content_types.yml --siteaccess=admin + php bin/console ibexa:migrations:migrate --file=a_late_training_contents.yml --siteaccess=admin + ``` diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md new file mode 100644 index 0000000000..7236cb7118 --- /dev/null +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -0,0 +1,185 @@ +--- +description: "PIM training: Product modeling" +edition: experience +page_type: training +--- + +# Product modeling + +## Product types + +The product type base concept is close to the content type one. +Like a content type structures a family content items, a product type structures products. + +See a first conceptualisation of what a product is, and what a product type is, in [Documentation > PIM (Product management) > Products](products.md). + +In fact, a product type is really a content type from the hidden system group `product` with a field of type “Product specification” (`ibexa_product_specification`). + +The presence of an `ibexa_product_specification` field is what distinct product type from content type. +Don't remove this field from a product type (or it will become a unreachable hidden content type). +Don't add such field to a content type (or it will become an uneditable broken product type). + +TODO: What happens if you have several `ibexa_product_specification` fields? + +You can trick the system URL to display a product type as a content type but know that this is dangerous and mustn't be exposed to final users. +Always prefer the dedicated route (as the Back Office does) `/product-type/view//contenttype/` (`ibexa.content_type.view`) is doable. You could even edit it from there. But this is strongly not recommended. + +TODO: move to somewhere in the exercise +If you're curious, after having created a product type, you can run the following SQL query to see the database representation. + +```sql +SELECT cg.group_id, cg.group_name, g.is_system, c.id, c.identifier, c.version + FROM ezcontentclass AS c + JOIN ezcontentclass_classgroup AS cg ON c.id = cg.contentclass_id AND c.version = cg.contentclass_version + JOIN ezcontentclassgroup AS g ON cg.group_id = g.id + ORDER BY cg.group_id ASC, c.id ASC +; +``` + +The "Product specification" field type (`ibexa_product_specification`) brings in the power of attributes. + +Notice that you don't need to add a field or an attribute for price. +Prices are handled by a particular side mechanism, the price engine, which is treated later in the training with VAT, currencies, etc. + +## Attributes VS Fields + +Like fields, attributes are typed. + +Unlike fields, attributes are never translatable. +Attributes are product constant properties. +Attributes values can't be translated because those properties don't change with the language. +Only the display of those properties changes with the language. See the following concept examples: + +- The color of a product is the same whatever the language is, only the corresponding color name is translated. +- The radius of a sphere doesn't depend on the language, only its numeral representation need translation according to local length units. + +TODO: Later in the training, in the templating part, is shown how to localize the attributes. + +Unlike fields, attributes are first defined outside the product types. +Attributes and attribute groups are to be reused from product type to product type. + +An attribute can be used to make product variant. + +TODO: Best practices: +How to think product types? +How to not have a product type per product? +How to not want a "god" product type trying to cover everything? + +TODO: Variants +TODO: attribute value display translation + +## Product and product variants + +Technically, a product is a content item. + +But a variant isn't. + +TODO: Continue content VS product VS variant + +## Exercise: Bikes and bike parts modeling + +Exercise: Think about attributes and content type to sell full bicycles and bicycle parts. + +The following is an example of a bicycle feature model sketch. +As you can see, it's a rich and complex matrix. +And it doesn't involve different brands and models for the same feature yet. + +- Bicycle: + - Frameset: + - Frame: + - Size: [XS, S, M, L, XL] + - Shape/Features: [Diamond, Step-through, Diamond w/ suspension, Folding, Recumbent, Cargo, Tandem, …] + - Material: [Steel, Aluminium, Titanium, Carbon, Wood, Bamboo, Mixed, …] + - Paint job: […] + - Fork + - Size: [XS, S, M, L, XL] + - Suspension: yes/no + - Paint job: […] + - Handlebar: + - Shape: [Standard, Drop, Bullhorn, Flat, Riser, …] + - Paint job: […] + - Saddle: + - Shape: [Thin, Large, Noseless, …] + - Cushion material: [Foam, Gel, …] + - Cover material: [Spandex, Vinyl, Kevlar, Leather, …] + - Paint job: […] + - Saddlepost: + - Material: [Steel, Aluminium, Titanium, Carbon, Wood, Bamboo, Mixed, …] + - Type: [Rigid, Suspension, Dropper, …] + - Attachment: [Quick release, Bolt/nut, Anti-thief, …] + - Gears: + - Front gears: + - Speed count: [1…3] + - Type: [Single, External, Hub internal, Crank gearbox, …] + - Control transmission: [Bowden cable, Hydraulic, Electronic, …] + - Control type: [Lever, Ring, …] + - Control placement: [Handlebar, Frame, …] + - Rear gears: + - Speed count: [1…8] + - Control type: [Bowden cable, Hydraulic, Electronic, …] + - Type: [Single, External, Hub internal, Crank gearbox, …] + - Control transmission: [Bowden cable, Hydraulic, Electronic, …] + - Control type: [Lever, Ring, …] + - Control placement: [Handlebar, Frame, …] + - Transmission: [Chain, Belt, Shaft, …] + - Wheel set: + - Rear wheel: + - Axle attachment: [Quick release, Bolt/nut, Thru, Anti-thief, …] + - Diameter: [622 mm (road 700C, mountain 29″), 584 mm (road 650B, mountain 27.5″), 559 mm (mountain 26″), 406 mm (mountain 20″), …] + - Type: [Standard spokes, G3 spokes, Disc, …] + - Brake: [Caliper, Disk, Roller, Drum, …] + - Rim material: [Aluminium, Steel, Carbon, …] + - Tire shape: [City, Race, Mountain, Fat, Mixed, …] + - Tire insert: [Clincher/Tube, Tubular, Tubeless, Foam, Solid, …] + - Paint job: […] + - Front wheel: + - Same as rear: ☑yes/☐no + - Axle attachment: [Same as rear, Quick release, Bolt/nut, Thru, Anti-thief, …] + - Diameter: [Same as rear, 622 mm (road 700C, mountain 29″), 584 mm (road 650B, mountain 27.5″), 559 mm (mountain 26″), 406 mm (mountain 20″), …] + - Type: [Same as rear, Standard spokes, G3 spokes, Disc, …] + - Brake: [Same as rear, Caliper, V, Disk, Roller, …] + - Rim material: [Same as rear, Aluminium, Steel, Carbon, …] + - Tire shape: [Same as rear, City, Race, Mountain, Fat, Mixed, …] + - Tire insert: [Same as rear, Clincher/Tube, Tubular, Tubeless, Foam, Solid, …] + - Paint job: [Same as rear, Same as rear, …] + - Electric assistance: + - Electric assistance: ☐yes/☑no + - Motor placement: [Front wheel, Rear wheel, Crank, …] + - Battery placement: [Center, Rear, …] + - Regulation: [EU pedelec, EU speed pedelec, …] + +A bad practice would be to try to have a unique product type for modeling all the bikes from the catalog. +For example, series of product won't necessarily vary on the same attributes. +TODO: To have one product type per base product can happen. + + + + +Mountain Bike (MTB) +- MTB 4 series + - Fuji (3776€) (MTBS4-4) + - Frame: [Diamond, Step-through] + - TODO + - Matterhorn (4478€) (MTBS4-5) + - Annapurna (8091€) (MTBS4-6) + - Frame: [Diamond w/ suspension] + - Etna (3369€) (MTBS4-7) +- MTB 5 series + - Kilimanjaro (5895€) (MTBS5-0) + - Stádda (1392€) (MTBS5-1) + - Aconcagua (6960€) (MTBS5-2) + - Ventoux (1910€) (MTBS5-3) + - Castor (4225€) (MTBS5-4) + + +- Create the attribute groups +- Create the attributes +- Create the product types +- Create the products + +TODO: Variants +TODO: [Create custom product code generator strategy](create_product_code_generator.md) + +Your new products are in the "Uncategorized products" section of the **Products** admin page. +It's now time to fix this in the next chapter. diff --git a/docs/trainings/commerce/pim/012_product_shelving.md b/docs/trainings/commerce/pim/012_product_shelving.md new file mode 100644 index 0000000000..5b3df9f1dc --- /dev/null +++ b/docs/trainings/commerce/pim/012_product_shelving.md @@ -0,0 +1,43 @@ +--- +description: "PIM training: Product shelving" +edition: experience +page_type: training +--- + +# Product shelving + +There is several ways to group and sort products. TODO + +## Catalogs + +[Catalogs](catalogs.md) group products by filtering on product data. + +TODO: What having several catalogs implies (navigation, customer experience,…) +TODO: How catalogs are displayed? Move this concern to "Product displaying" +TODO: [Create custom catalog](create_custom_catalog_filter.md) + +## Categories + +Product categories are tags in the `product_categories` [taxonomy](taxonomy.md). + +If you're curious, you can find the `product_categories` taxonomy configuration in `vendor/ibexa/product-catalog/src/bundle/Resources/config/prepend.yaml`. + +TODO: Something interesting to do using the Taxo API? + +Exercise: + +- Create a "Mountain Bike" category with two child categories "4 Series" and "5 Series" +- Categorize the products from previous chapter's exercise into the right series: + +- Mountain Bike + - 4 Series + - Fuji + - Matterhorn + - Annapurna + - Etna + - 5 Series + - Kilimanjaro + - Stádda + - Aconcagua + - Ventoux + - Castor diff --git a/docs/trainings/commerce/pim/013_product_displaying.md b/docs/trainings/commerce/pim/013_product_displaying.md new file mode 100644 index 0000000000..018068e221 --- /dev/null +++ b/docs/trainings/commerce/pim/013_product_displaying.md @@ -0,0 +1,150 @@ +--- +description: "PIM training: Product displaying" +edition: experience +page_type: training +--- + +# Product displaying + +How to display a price is kept for the next chapter. + +The "add to cart" and other sale features are not part of this training which stay focused on what is available in the Ibexa DXP Headless. + +## Routes + +Like every content item, it is viewable through its friendly URL Alias, or at the route `/view/content/{contentId}/{viewType}/{layout}/{locationId}` (`ibexa.content.view`). + +An alternative route is also available, dedicated for Back Office, `/product/{productCode}` (`ibexa.product_catalog.product.view`). + +You may notice that the Back Office automatically redirect the `ibexa.content.view` route to the "`full`" view type to the `ibexa.product_catalog.product.view` route, while the front office don't. +On contrary, a front office will probably throw an error if accessed through a `ibexa.product_catalog.product.view` URL: "The route is not allowed in the current SiteAccess". + +So, be aware, and don't mix up Back Office and front office URLs. + +Product variants are not content items. +TODO: Introduce ways to access product variant + +## Rights + +To be able to view products, "Content / Read" policy isn't enough even if products are content items. + +The policy "Product / View" give access to products. It is limited by product types. + +Exercise: Add "Product / View" policy to "Anonymous" role, allow all your product type. + +TODO: "Product Type / View" could be needed. I needed it for `isBaseProduct` `{{ dump((content|ibexa_get_product).isBaseProduct) }}` + +## Templates + +### Matchers + +* All products + +`Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\IsProduct` + +https://doc.ibexa.co/en/latest/templating/templates/view_matcher_reference/#product + +https://doc.ibexa.co/en/latest/api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-ViewMatcher-ProductBased-IsProduct.html + +```yaml +ibexa: + system: + : + content_view: + product: + template: '@ibexadesign/full/product.html.twig' + match: + '@Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\IsProduct': ~ +``` + +* Products of a given type + +`Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\ProductType` + +```yaml + bike: + template: '@ibexadesign/full/bike.html.twig' + match: + '@Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\ProductType': ['bike', 'mountain_bike', 'racing_bike'] + electric_bike: + template: '@ibexadesign/full/electric_bike.html.twig' + match: + '@Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\ProductType': ['electric_bike'] +``` + +* Products of a given code + +`Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\ProductCode` + +```yaml + 4_series: + template: '@ibexadesign/full/bike.html.twig' + match: + '@Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\ProductCode': ['MTBS4-4', 'MTBS4-5', 'MTBS4-6', 'MTBS4-7'] + 5_series: + template: '@ibexadesign/full/bike.html.twig' + match: + '@Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\ProductCode': ['MTBS5-0', 'MTBS5-1', 'MTBS5-2', 'MTBS5-3', 'MTBS5-4'] +``` + +* TODO: Availability + +### Content fields and product attributes + +Fields are displayed as usual. + +For the particular case of `ibexa_product_specification` field type, you can take a look at +`vendor/ibexa/product-catalog/src/bundle/Resources/views/themes/standard/product_catalog/field_type/product.html.twig` + +TODO: But variant aren't content items… + +### Twig functions + +[Product Twig functions](product_twig_functions.md) + +`ibexa_get_product` returns a [`ProductInterface`](TODO/api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Values-ProductInterface.html) + +### Commerce's `storefront` theme + +Ibexa DXP Commerce has a default design for displaying product: `storefront` + +When using Commerce, you should prefer building on top of this design. + +SiteAccess from group `storefront_group` has this design. + +Template rules are defined in `vendor/ibexa/storefront/src/bundle/Resources/config/prepend.yaml`. +You can read there how the product `full` view is defined using the `IsProduct` matcher. + +The product default template is +`vendor/ibexa/storefront/src/bundle/Resources/views/themes/storefront/storefront/product.html.twig`. +You can override it with a template located as `templates/themes//storefront/product.html.twig`. + +## TODO: Exercise + +/product-catalog/TODO?code=TODO + +```html+twig +{{ ibexa_render_field(content, 'product_specification') }} + +{% set product = content|ibexa_get_product %} +{% set code = app.request.get('code')|default(product.code) %} +{% if code != product.code and product.isBaseProduct %} + {% for variant in product.getVariantsList %} + {% if code == variant.code %} + {% set product = variant %} + {% endif %} + {% endfor %} +{% endif %} + + + + {% for attribute in product.attributes %} + {% set definition = attribute.getAttributeDefinition() %} + + + + + {% endfor %} + +
{{ definition.getName() }}{{ attribute|ibexa_format_product_attribute }}
+``` diff --git a/docs/trainings/commerce/pim/021_product_pricing.md b/docs/trainings/commerce/pim/021_product_pricing.md new file mode 100644 index 0000000000..421720e4b5 --- /dev/null +++ b/docs/trainings/commerce/pim/021_product_pricing.md @@ -0,0 +1,8 @@ +--- +description: "PIM training: Product pricing" +edition: experience +page_type: training +--- + +[`ibexa_format_price`](https://doc.ibexa.co/en/latest/templating/twig_function_reference/product_twig_functions/#ibexa_format_price) +TODO: This is defined in vendor/ibexa/product-catalog/src/bundle/Twig/PriceExtension.php From e649798e8deefc21fbb56fa0d154907df06f8017 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 31 Jul 2024 18:57:47 +0200 Subject: [PATCH 02/29] [WIP] PIM training raw draft remove links to not existing files --- docs/trainings/commerce/pim/000_syllabus.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/trainings/commerce/pim/000_syllabus.md b/docs/trainings/commerce/pim/000_syllabus.md index 69a99cf23d..d3e6af8cc7 100644 --- a/docs/trainings/commerce/pim/000_syllabus.md +++ b/docs/trainings/commerce/pim/000_syllabus.md @@ -36,12 +36,6 @@ In this training, you learn how to create complex products, to quote their price TODO: Make sure that everything used is in Ibexa DXP Headless scope, so to speak, ibexa/product-catalog TODO: Trainees working on Ibexa DXP Commerce could pick examples from ibexa/storefront but others mustn't be frustrated of having installed an inferior edition. -!!! note - - You can use [`experience-skeleton`'s DDEV feature](ddev_interactive_launcher.md#experience) - - For more suggestions about your training environment, see [Training environment](trainings.md#training-environment). - ### Cluster elements This training needs a reverse proxy for HTTP cache. For a local installation, Varnish is recommended. From 60e5294e981bbee98673f3a824331657f97168dc Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 31 Jul 2024 19:06:51 +0200 Subject: [PATCH 03/29] [WIP] PIM training raw draft remove fake instructions --- docs/trainings/commerce/pim/000_syllabus.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/docs/trainings/commerce/pim/000_syllabus.md b/docs/trainings/commerce/pim/000_syllabus.md index d3e6af8cc7..a76ae6bbba 100644 --- a/docs/trainings/commerce/pim/000_syllabus.md +++ b/docs/trainings/commerce/pim/000_syllabus.md @@ -50,13 +50,4 @@ This training needs a reverse proxy for HTTP cache. For a local installation, Va To follow this training, you must install code, config and data on top of a fresh installation. -1. Download the [starting state archive](download/a_late_training.start.zip). -1. Put this archive at the root of your [[= product_name =]] training installation. -1. In a terminal, run the following commands at the root of your [[= product_name =]] training installation: - ```bash - unzip a_late_training.start.zip - tail -n+2 config/append_to_services.yaml >> config/services.yaml - rm config/append_to_services.yaml - php bin/console ibexa:migrations:migrate --file=a_late_training_content_types.yml --siteaccess=admin - php bin/console ibexa:migrations:migrate --file=a_late_training_contents.yml --siteaccess=admin - ``` +TODO: Experience clean install, or previous bike ride design and content? From b46decd84d43045c6ca050848a88548b757f47cd Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 31 Jul 2024 19:11:48 +0200 Subject: [PATCH 04/29] [WIP] PIM training raw draft fix link to PHP API Ref --- docs/trainings/commerce/pim/013_product_displaying.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/trainings/commerce/pim/013_product_displaying.md b/docs/trainings/commerce/pim/013_product_displaying.md index 018068e221..34e9cb1822 100644 --- a/docs/trainings/commerce/pim/013_product_displaying.md +++ b/docs/trainings/commerce/pim/013_product_displaying.md @@ -102,7 +102,7 @@ TODO: But variant aren't content items… [Product Twig functions](product_twig_functions.md) -`ibexa_get_product` returns a [`ProductInterface`](TODO/api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Values-ProductInterface.html) +`ibexa_get_product` returns a [`ProductInterface`](../../../../api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Values-ProductInterface.html) ### Commerce's `storefront` theme From c8f24644d2bfba603dc96e40b063e6ce0653a365 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 31 Jul 2024 19:18:11 +0200 Subject: [PATCH 05/29] [WIP] PIM training raw draft fix link to PHP API Ref --- docs/trainings/commerce/pim/013_product_displaying.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/trainings/commerce/pim/013_product_displaying.md b/docs/trainings/commerce/pim/013_product_displaying.md index 34e9cb1822..314067bbda 100644 --- a/docs/trainings/commerce/pim/013_product_displaying.md +++ b/docs/trainings/commerce/pim/013_product_displaying.md @@ -102,7 +102,7 @@ TODO: But variant aren't content items… [Product Twig functions](product_twig_functions.md) -`ibexa_get_product` returns a [`ProductInterface`](../../../../api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Values-ProductInterface.html) +`ibexa_get_product` returns a [`ProductInterface`](../../../api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Values-ProductInterface.html) ### Commerce's `storefront` theme From c898b9927209686683499e606a73a9c9c4a1f96d Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 31 Jul 2024 19:38:57 +0200 Subject: [PATCH 06/29] [WIP] PIM training: rework syllabus --- docs/trainings/commerce/pim/000_syllabus.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/trainings/commerce/pim/000_syllabus.md b/docs/trainings/commerce/pim/000_syllabus.md index a76ae6bbba..1e8ad30c12 100644 --- a/docs/trainings/commerce/pim/000_syllabus.md +++ b/docs/trainings/commerce/pim/000_syllabus.md @@ -2,7 +2,6 @@ description: PIM training --- -[[% include 'snippets/experience_badge.md' %]] [[% include 'snippets/commerce_badge.md' %]] # PIM (Product Information Management) ## Syllabus @@ -34,11 +33,12 @@ In this training, you learn how to create complex products, to quote their price - [[= product_name_com =]] [[= latest_tag_4_6 =]] TODO: Make sure that everything used is in Ibexa DXP Headless scope, so to speak, ibexa/product-catalog + TODO: Trainees working on Ibexa DXP Commerce could pick examples from ibexa/storefront but others mustn't be frustrated of having installed an inferior edition. ### Cluster elements -This training needs a reverse proxy for HTTP cache. For a local installation, Varnish is recommended. +This training can be run on the minimal stack. | Service | Required | Value | |--------------:|:--------:|:-------------| From 7ccac99600481bde40da074cecc66358db61a657 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Fri, 13 Sep 2024 16:21:10 +0200 Subject: [PATCH 07/29] 011_product_modeling.md: Fix list indent --- .../commerce/pim/011_product_modeling.md | 139 +++++++++--------- 1 file changed, 69 insertions(+), 70 deletions(-) diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index 7236cb7118..fbe2937726 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -86,68 +86,67 @@ As you can see, it's a rich and complex matrix. And it doesn't involve different brands and models for the same feature yet. - Bicycle: - - Frameset: - - Frame: - - Size: [XS, S, M, L, XL] - - Shape/Features: [Diamond, Step-through, Diamond w/ suspension, Folding, Recumbent, Cargo, Tandem, …] - - Material: [Steel, Aluminium, Titanium, Carbon, Wood, Bamboo, Mixed, …] - - Paint job: […] - - Fork - - Size: [XS, S, M, L, XL] - - Suspension: yes/no - - Paint job: […] - - Handlebar: - - Shape: [Standard, Drop, Bullhorn, Flat, Riser, …] - - Paint job: […] - - Saddle: - - Shape: [Thin, Large, Noseless, …] - - Cushion material: [Foam, Gel, …] - - Cover material: [Spandex, Vinyl, Kevlar, Leather, …] - - Paint job: […] - - Saddlepost: - - Material: [Steel, Aluminium, Titanium, Carbon, Wood, Bamboo, Mixed, …] - - Type: [Rigid, Suspension, Dropper, …] - - Attachment: [Quick release, Bolt/nut, Anti-thief, …] - - Gears: - - Front gears: - - Speed count: [1…3] - - Type: [Single, External, Hub internal, Crank gearbox, …] - - Control transmission: [Bowden cable, Hydraulic, Electronic, …] - - Control type: [Lever, Ring, …] - - Control placement: [Handlebar, Frame, …] - - Rear gears: - - Speed count: [1…8] - - Control type: [Bowden cable, Hydraulic, Electronic, …] - - Type: [Single, External, Hub internal, Crank gearbox, …] - - Control transmission: [Bowden cable, Hydraulic, Electronic, …] - - Control type: [Lever, Ring, …] - - Control placement: [Handlebar, Frame, …] - - Transmission: [Chain, Belt, Shaft, …] - - Wheel set: - - Rear wheel: - - Axle attachment: [Quick release, Bolt/nut, Thru, Anti-thief, …] - - Diameter: [622 mm (road 700C, mountain 29″), 584 mm (road 650B, mountain 27.5″), 559 mm (mountain 26″), 406 mm (mountain 20″), …] - - Type: [Standard spokes, G3 spokes, Disc, …] - - Brake: [Caliper, Disk, Roller, Drum, …] - - Rim material: [Aluminium, Steel, Carbon, …] - - Tire shape: [City, Race, Mountain, Fat, Mixed, …] - - Tire insert: [Clincher/Tube, Tubular, Tubeless, Foam, Solid, …] - - Paint job: […] - - Front wheel: - - Same as rear: ☑yes/☐no - - Axle attachment: [Same as rear, Quick release, Bolt/nut, Thru, Anti-thief, …] - - Diameter: [Same as rear, 622 mm (road 700C, mountain 29″), 584 mm (road 650B, mountain 27.5″), 559 mm (mountain 26″), 406 mm (mountain 20″), …] - - Type: [Same as rear, Standard spokes, G3 spokes, Disc, …] - - Brake: [Same as rear, Caliper, V, Disk, Roller, …] - - Rim material: [Same as rear, Aluminium, Steel, Carbon, …] - - Tire shape: [Same as rear, City, Race, Mountain, Fat, Mixed, …] - - Tire insert: [Same as rear, Clincher/Tube, Tubular, Tubeless, Foam, Solid, …] - - Paint job: [Same as rear, Same as rear, …] - - Electric assistance: - - Electric assistance: ☐yes/☑no - - Motor placement: [Front wheel, Rear wheel, Crank, …] - - Battery placement: [Center, Rear, …] - - Regulation: [EU pedelec, EU speed pedelec, …] + - Frameset: + - Frame: + - Size: [XS, S, M, L, XL] + - Shape/Features: [Diamond, Step-through, Diamond w/ suspension, Folding, Recumbent, Cargo, Tandem, …] + - Material: [Steel, Aluminium, Titanium, Carbon, Wood, Bamboo, Mixed, …] + - Paint job: […] + - Fork + - Size: [XS, S, M, L, XL] + - Suspension: yes/no + - Paint job: […] + - Handlebar: + - Shape: [Standard, Drop, Bullhorn, Flat, Riser, …] + - Paint job: […] + - Saddle: + - Shape: [Thin, Large, Noseless, …] + - Cushion material: [Foam, Gel, …] + - Cover material: [Spandex, Vinyl, Kevlar, Leather, …] + - Paint job: […] + - Saddlepost: + - Material: [Steel, Aluminium, Titanium, Carbon, Wood, Bamboo, Mixed, …] + - Type: [Rigid, Suspension, Dropper, …] + - Attachment: [Quick release, Bolt/nut, Anti-thief, …] + - Gears: + - Front gears: + - Speed count: [1…3] + - Type: [Single, External, Hub internal, Crank gearbox, …] + - Control transmission: [Bowden cable, Hydraulic, Electronic, …] + - Control type: [Lever, Ring, …] + - Control placement: [Handlebar, Frame, …] + - Rear gears: + - Speed count: [1…8] + - Control type: [Bowden cable, Hydraulic, Electronic, …] + - Type: [Single, External, Hub internal, Crank gearbox, …] + - Control transmission: [Bowden cable, Hydraulic, Electronic, …] + - Control type: [Lever, Ring, …] + - Control placement: [Handlebar, Frame, …] + - Transmission: [Chain, Belt, Shaft, …] + - Wheel set: + - Rear wheel: + - Axle attachment: [Quick release, Bolt/nut, Thru, Anti-thief, …] + - Diameter: [622 mm (road 700C, mountain 29″), 584 mm (road 650B, mountain 27.5″), 559 mm (mountain 26″), 406 mm (mountain 20″), …] + - Type: [Standard spokes, G3 spokes, Disc, …] + - Brake: [Caliper, Disk, Roller, Drum, …] + - Rim material: [Aluminium, Steel, Carbon, …] + - Tire shape: [City, Race, Mountain, Fat, Mixed, …] + - Tire insert: [Clincher/Tube, Tubular, Tubeless, Foam, Solid, …] + - Paint job: […] + - Front wheel: + - Same as rear: ☑yes/☐no + - Axle attachment: [Same as rear, Quick release, Bolt/nut, Thru, Anti-thief, …] + - Diameter: [Same as rear, 622 mm (road 700C, mountain 29″), 584 mm (road 650B, mountain 27.5″), 559 mm (mountain 26″), 406 mm (mountain 20″), …] + - Type: [Same as rear, Standard spokes, G3 spokes, Disc, …] + - Brake: [Same as rear, Caliper, V, Disk, Roller, …] + - Rim material: [Same as rear, Aluminium, Steel, Carbon, …] + - Tire shape: [Same as rear, City, Race, Mountain, Fat, Mixed, …] + - Tire insert: [Same as rear, Clincher/Tube, Tubular, Tubeless, Foam, Solid, …] + - Electric assistance: + - Electric assistance: ☐yes/☑no + - Motor placement: [Front wheel, Rear wheel, Crank, …] + - Battery placement: [Center, Rear, …] + - Regulation: [EU pedelec, EU speed pedelec, …] A bad practice would be to try to have a unique product type for modeling all the bikes from the catalog. For example, series of product won't necessarily vary on the same attributes. @@ -159,18 +158,18 @@ TODO: To have one product type per base product can happen. Mountain Bike (MTB) - MTB 4 series - Fuji (3776€) (MTBS4-4) - - Frame: [Diamond, Step-through] - - TODO + - Frame: [Diamond, Step-through] + - TODO - Matterhorn (4478€) (MTBS4-5) - Annapurna (8091€) (MTBS4-6) - - Frame: [Diamond w/ suspension] + - Frame: [Diamond w/ suspension] - Etna (3369€) (MTBS4-7) - MTB 5 series - - Kilimanjaro (5895€) (MTBS5-0) - - Stádda (1392€) (MTBS5-1) - - Aconcagua (6960€) (MTBS5-2) - - Ventoux (1910€) (MTBS5-3) - - Castor (4225€) (MTBS5-4) + - Kilimanjaro (5895€) (MTBS5-0) + - Stádda (1392€) (MTBS5-1) + - Aconcagua (6960€) (MTBS5-2) + - Ventoux (1910€) (MTBS5-3) + - Castor (4225€) (MTBS5-4) - Create the attribute groups From b8c22b1aa839a8118d341c672e50f733e7d9f9a7 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:00:13 +0200 Subject: [PATCH 08/29] 011_product_modeling.md: Continue bike modeling exercise --- .../commerce/pim/011_product_modeling.md | 47 +++++++++++-------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index fbe2937726..1ae338eaee 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -41,6 +41,7 @@ The "Product specification" field type (`ibexa_product_specification`) brings in Notice that you don't need to add a field or an attribute for price. Prices are handled by a particular side mechanism, the price engine, which is treated later in the training with VAT, currencies, etc. +But, also notice that VAT is set at Product Type level. ## Attributes VS Fields @@ -108,6 +109,9 @@ And it doesn't involve different brands and models for the same feature yet. - Material: [Steel, Aluminium, Titanium, Carbon, Wood, Bamboo, Mixed, …] - Type: [Rigid, Suspension, Dropper, …] - Attachment: [Quick release, Bolt/nut, Anti-thief, …] + - Pedals: + - Type: [Flat, Quill, Clipless, …] + - Foldable: yes/no - Gears: - Front gears: - Speed count: [1…3] @@ -116,7 +120,7 @@ And it doesn't involve different brands and models for the same feature yet. - Control type: [Lever, Ring, …] - Control placement: [Handlebar, Frame, …] - Rear gears: - - Speed count: [1…8] + - Speed count: [1…12] - Control type: [Bowden cable, Hydraulic, Electronic, …] - Type: [Single, External, Hub internal, Crank gearbox, …] - Control transmission: [Bowden cable, Hydraulic, Electronic, …] @@ -152,32 +156,37 @@ A bad practice would be to try to have a unique product type for modeling all th For example, series of product won't necessarily vary on the same attributes. TODO: To have one product type per base product can happen. +The exercise consists into modeling the following catalog of mountain bikes (MTB). +The catalog is split in series, each series got few base products with variations. +To simplify casual customer experience (and above all the exercise), the vendor don't give a lot of choices. +- Manufacturers, brands and models are predefined. +- Front and rear gears, transmission and shifting system are set in one bundle with predefined models. -Mountain Bike (MTB) -- MTB 4 series - - Fuji (3776€) (MTBS4-4) - - Frame: [Diamond, Step-through] - - TODO - - Matterhorn (4478€) (MTBS4-5) - - Annapurna (8091€) (MTBS4-6) - - Frame: [Diamond w/ suspension] - - Etna (3369€) (MTBS4-7) -- MTB 5 series - - Kilimanjaro (5895€) (MTBS5-0) - - Stádda (1392€) (MTBS5-1) - - Aconcagua (6960€) (MTBS5-2) - - Ventoux (1910€) (MTBS5-3) - - Castor (4225€) (MTBS5-4) +The following table shows only properties that can vary. When not all combinations are available, the product has multiple lines. +| Name | Code | Material | Frame shapes | Frameset + wheel sizes | Saddle | Paint job | Gears | Price | +|:------------|:-------------|:----------|:---------------------------|:-----------------------|:-----------------|:-----------------------|:-------|------:| +| Fuji | MTB-S4-4-1-* | Aluminium | Diamond | [S, M, L, XL] + 29″ | Thin | [Sakura, Ronin] | B-2x10 | 3776€ | +| Fuji | MTB-S4-4-2-* | Aluminium | [Diamond, Step-through] | [S, M, L] + 29″ | [Thin, Large] | [Sakura, Ronin] | B-1x10 | 3676€ | +| Fuji | MTB-S4-4-3-* | Aluminium | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | [Sakura, Ronin] | B-1x08 | 3666€ | +| Matterhorn | MTB-S4-5-* | Aluminium | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Snow, Rock] | B-2x12 | 4478€ | +| Annapurna | MTB-S4-6-* | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | Annapurna | A-3x12 | 8091€ | +| Etna | MTB-S4-7-1-* | Aluminium | [Diamond, Step-through] | [S, M, L, XL] + 29″ | [Thin, Large] | Etna | B-1x06 | 3369€ | +| Etna | MTB-S4-7-2-* | Aluminium | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | Etna | B-1x06 | 3339€ | +| Kilimanjaro | MTB-S5-0-* | Aluminium | Step-through w/ suspension | [S, M, L, XL] + 29″ | [Thin, Large] | [Shira, Mawenzi, Kibo] | A-2x12 | 5895€ | +| Stádda | MTB-S5-1-* | Aluminium | Step-through | XS + [26″, 27.5″] | Large | [Sunrise, Sunset] | C-1x03 | 1392€ | +| Aconcagua | MTB-S5-2-* | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | [Condor, Llama] | A-3x12 | 6960€ | +| Ventoux | MTB-S5-3-* | Aluminium | Step-through | XS + [26″, 27.5″] | [Thin, Large] | [Provence, Mistral] | C-1x04 | 1910€ | +| Castor | MTB-S5-4-* | Aluminium | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Castor, Pollux] | B-2x12 | 4225€ | -- Create the attribute groups +- Create the attribute group(s) - Create the attributes -- Create the product types +- Create the product type(s) - Create the products +- Create the variants -TODO: Variants TODO: [Create custom product code generator strategy](create_product_code_generator.md) Your new products are in the "Uncategorized products" section of the **Products** admin page. From 66cdec20aa81214ce409ee9bf4ff9fd071a9187a Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 2 Oct 2024 11:02:03 +0200 Subject: [PATCH 09/29] 021_product_pricing.md: Few notes for the future --- .../commerce/pim/021_product_pricing.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/trainings/commerce/pim/021_product_pricing.md b/docs/trainings/commerce/pim/021_product_pricing.md index 421720e4b5..7593a34e99 100644 --- a/docs/trainings/commerce/pim/021_product_pricing.md +++ b/docs/trainings/commerce/pim/021_product_pricing.md @@ -6,3 +6,21 @@ page_type: training [`ibexa_format_price`](https://doc.ibexa.co/en/latest/templating/twig_function_reference/product_twig_functions/#ibexa_format_price) TODO: This is defined in vendor/ibexa/product-catalog/src/bundle/Twig/PriceExtension.php + +## Regions and VAT + +### PIM configuration + +https://doc.ibexa.co/en/latest/pim/pim_configuration/#vat-rates + +### Product type configuration + +https://doc.ibexa.co/en/latest/pim/enable_purchasing_products/#vat-rates + +https://doc.ibexa.co/projects/userguide/en/latest/pim/product_types/ + +https://doc.ibexa.co/projects/userguide/en/latest/pim/create_product_types/ + +## Custom pricing + +TODO: exercise with custom prices for retailers. From 121f4b91563eca18fb0ce723c48b96a651a8c53e Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Fri, 4 Oct 2024 09:32:56 +0200 Subject: [PATCH 10/29] 011_product_modeling.md: Add a code generator example --- .../packages/ibexa_product_catalog.yaml | 8 ++ .../001_product_modeling/config/services.yaml | 14 ++++ .../Strategy/BikeCodeGenerator.php | 27 +++++++ .../ProductTypeCodeGeneratorDispatcher.php | 39 +++++++++ .../commerce/pim/011_product_modeling.md | 81 +++++++++++++++---- 5 files changed, 153 insertions(+), 16 deletions(-) create mode 100644 code_samples/trainings/commerce/pim/001_product_modeling/config/packages/ibexa_product_catalog.yaml create mode 100644 code_samples/trainings/commerce/pim/001_product_modeling/config/services.yaml create mode 100644 code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/BikeCodeGenerator.php create mode 100644 code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/ProductTypeCodeGeneratorDispatcher.php diff --git a/code_samples/trainings/commerce/pim/001_product_modeling/config/packages/ibexa_product_catalog.yaml b/code_samples/trainings/commerce/pim/001_product_modeling/config/packages/ibexa_product_catalog.yaml new file mode 100644 index 0000000000..4bfaa9cd6c --- /dev/null +++ b/code_samples/trainings/commerce/pim/001_product_modeling/config/packages/ibexa_product_catalog.yaml @@ -0,0 +1,8 @@ +ibexa_product_catalog: + engines: + default: + type: local + options: + root_location_remote_id: ibexa_product_catalog_root + product_type_group_identifier: 'product' + variant_code_generator_strategy: 'per_product_type_code_generator' diff --git a/code_samples/trainings/commerce/pim/001_product_modeling/config/services.yaml b/code_samples/trainings/commerce/pim/001_product_modeling/config/services.yaml new file mode 100644 index 0000000000..7ee033437f --- /dev/null +++ b/code_samples/trainings/commerce/pim/001_product_modeling/config/services.yaml @@ -0,0 +1,14 @@ +services: + # … + + App\CodeGenerator\Strategy\ProductTypeCodeGeneratorDispatcher: + arguments: + $defaultCodeGeneratorIdentifier: 'incremental' + $productTypeCodeGeneratorMap: + bike: 'bike' + tags: + - { name: 'ibexa.product_catalog.code_generator', type: 'per_product_type_code_generator' } + + App\CodeGenerator\Strategy\BikeCodeGenerator: + tags: + - { name: 'ibexa.product_catalog.code_generator', type: 'bike' } diff --git a/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/BikeCodeGenerator.php b/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/BikeCodeGenerator.php new file mode 100644 index 0000000000..852ffb9421 --- /dev/null +++ b/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/BikeCodeGenerator.php @@ -0,0 +1,27 @@ +hasBaseProduct()) { + throw new InvalidArgumentException('$context', 'missing base product'); + } + + $frameSize = $context->getAttributes()['frame_size']; + $wheelSize = $context->getAttributes()['wheel_diameter']; + $frameShape = $context->getAttributes()['frame_shape'][0]; + $gearBundle = $context->getAttributes()['gear_bundle']; + + return $context->getBaseProduct()->getCode() . "--$frameSize-$wheelSize-$frameShape-$gearBundle"; + } +} diff --git a/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/ProductTypeCodeGeneratorDispatcher.php b/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/ProductTypeCodeGeneratorDispatcher.php new file mode 100644 index 0000000000..5033e2db5a --- /dev/null +++ b/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/ProductTypeCodeGeneratorDispatcher.php @@ -0,0 +1,39 @@ +codeGeneratorRegistry = $codeGeneratorRegistry; + $this->defaultCodeGeneratorIdentifier = $defaultCodeGeneratorIdentifier; + $this->productTypeCodeGeneratorMap = $productTypeCodeGeneratorMap; + } + + public function generateCode(CodeGeneratorContext $context): string + { + if (!$context->hasBaseProduct()) { + throw new InvalidArgumentException('$context', 'missing base product'); + } + + $productTypeIdentifier = $context->getBaseProduct()->getProductType()->getIdentifier(); + $codeGeneratorIdentifier = array_key_exists($productTypeIdentifier, $this->productTypeCodeGeneratorMap) ? $this->productTypeCodeGeneratorMap[$productTypeIdentifier] : $this->defaultCodeGeneratorIdentifier; + + if ($this->codeGeneratorRegistry->hasCodeGenerator($codeGeneratorIdentifier)) { + return $this->codeGeneratorRegistry->getCodeGenerator($codeGeneratorIdentifier)->generateCode($context); + } else { + throw new InvalidArgumentException('$productTypeCodeGeneratorMap', "no code generator '$codeGeneratorIdentifier' registered"); + } + } +} diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index 1ae338eaee..43494724e2 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -159,6 +159,19 @@ TODO: To have one product type per base product can happen. The exercise consists into modeling the following catalog of mountain bikes (MTB). The catalog is split in series, each series got few base products with variations. +- Mountain Bike + - 4 Series + - Fuji + - Matterhorn + - Annapurna + - Etna + - 5 Series + - Kilimanjaro + - Stádda + - Aconcagua + - Ventoux + - Castor + To simplify casual customer experience (and above all the exercise), the vendor don't give a lot of choices. - Manufacturers, brands and models are predefined. @@ -166,28 +179,64 @@ To simplify casual customer experience (and above all the exercise), the vendor The following table shows only properties that can vary. When not all combinations are available, the product has multiple lines. -| Name | Code | Material | Frame shapes | Frameset + wheel sizes | Saddle | Paint job | Gears | Price | -|:------------|:-------------|:----------|:---------------------------|:-----------------------|:-----------------|:-----------------------|:-------|------:| -| Fuji | MTB-S4-4-1-* | Aluminium | Diamond | [S, M, L, XL] + 29″ | Thin | [Sakura, Ronin] | B-2x10 | 3776€ | -| Fuji | MTB-S4-4-2-* | Aluminium | [Diamond, Step-through] | [S, M, L] + 29″ | [Thin, Large] | [Sakura, Ronin] | B-1x10 | 3676€ | -| Fuji | MTB-S4-4-3-* | Aluminium | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | [Sakura, Ronin] | B-1x08 | 3666€ | -| Matterhorn | MTB-S4-5-* | Aluminium | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Snow, Rock] | B-2x12 | 4478€ | -| Annapurna | MTB-S4-6-* | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | Annapurna | A-3x12 | 8091€ | -| Etna | MTB-S4-7-1-* | Aluminium | [Diamond, Step-through] | [S, M, L, XL] + 29″ | [Thin, Large] | Etna | B-1x06 | 3369€ | -| Etna | MTB-S4-7-2-* | Aluminium | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | Etna | B-1x06 | 3339€ | -| Kilimanjaro | MTB-S5-0-* | Aluminium | Step-through w/ suspension | [S, M, L, XL] + 29″ | [Thin, Large] | [Shira, Mawenzi, Kibo] | A-2x12 | 5895€ | -| Stádda | MTB-S5-1-* | Aluminium | Step-through | XS + [26″, 27.5″] | Large | [Sunrise, Sunset] | C-1x03 | 1392€ | -| Aconcagua | MTB-S5-2-* | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | [Condor, Llama] | A-3x12 | 6960€ | -| Ventoux | MTB-S5-3-* | Aluminium | Step-through | XS + [26″, 27.5″] | [Thin, Large] | [Provence, Mistral] | C-1x04 | 1910€ | -| Castor | MTB-S5-4-* | Aluminium | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Castor, Pollux] | B-2x12 | 4225€ | +| Name | Base code | Material | Frame shapes | Frameset + wheel sizes | Saddle | Paint job | Gears | Price | +|:------------|:----------|:----------|:---------------------------|:-----------------------|:-----------------|:-----------------------|:--------:|------:| +| Fuji | MTB-S4-4 | Aluminium | Diamond | [S, M, L, XL] + 29″ | Thin | [Sakura, Ronin] | G02-2x10 | 3776€ | +| Fuji | MTB-S4-4 | Aluminium | [Diamond, Step-through] | [S, M, L] + 29″ | [Thin, Large] | [Sakura, Ronin] | G02-1x10 | 3676€ | +| Fuji | MTB-S4-4 | Aluminium | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | [Sakura, Ronin] | G02-1x08 | 3666€ | +| Matterhorn | MTB-S4-5 | Aluminium | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Snow, Rock] | G02-2x12 | 4478€ | +| Annapurna | MTB-S4-6 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | Annapurna | G01-3x12 | 8091€ | +| Etna | MTB-S4-7 | Aluminium | [Diamond, Step-through] | [S, M, L, XL] + 29″ | [Thin, Large] | Etna | G02-1x06 | 3369€ | +| Etna | MTB-S4-7 | Aluminium | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | Etna | G02-1x06 | 3339€ | +| Kilimanjaro | MTB-S5-0 | Aluminium | Step-through w/ suspension | [S, M, L, XL] + 29″ | [Thin, Large] | [Shira, Mawenzi, Kibo] | G03-2x12 | 5895€ | +| Stádda | MTB-S5-1 | Aluminium | Step-through | XS + [26″, 27.5″] | Large | [Sunrise, Sunset] | G04-1x03 | 1392€ | +| Aconcagua | MTB-S5-2 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | [Condor, Llama] | G01-3x12 | 6960€ | +| Ventoux | MTB-S5-3 | Aluminium | Step-through | XS + [26″, 27.5″] | [Thin, Large] | [Provence, Mistral] | G04-1x04 | 1910€ | +| Castor | MTB-S5-4 | Aluminium | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Castor, Pollux] | G03-2x12 | 4225€ | - Create the attribute group(s) - Create the attributes - Create the product type(s) - Create the products -- Create the variants +- Create the product variants + +The product variants codes can be generated automatically from the base product code +by the default 'incremental' code generator as product variants codes won't be used in the training. +But, if you're curious, you can read or implements as a bonus the following custom code generators. + +??? note "Bonus: Code generator" + + A code generator is associated to a whole catalog/repository. + + See how to [create custom product code generator strategy](create_product_code_generator.md). + + To be able to generate product variants' codes from their attributes, a filtering/dispatching code generator is needed. + + In `config/services.yaml`, the code generator services declaration looks like this: + ```yaml + [[= include_file('code_samples/trainings/commerce/pim/001_product_modeling/config/services.yaml', 0, None, ' ') =]] + ``` + The `ProductTypeCodeGeneratorDispatcher` is a code generator using other code generator depending on the product type. Its service receive a map associating product type itendifier to code generator type identifier. + It also have a default code generator for product type not in the map. + + ```php + [[= include_file('code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/ProductTypeCodeGeneratorDispatcher.php', 0, None, ' ') =]] + ``` + + The `BikeCodeGenerator` is a code generator dedicated to the `bike` product type. It must cover every `bike` attributes that can vary to ensure code unicity. + + ```php + [[= include_file('code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/BikeCodeGenerator.php', 0, None, ' ') =]] + ``` + + In `config/packages/ibexa_product_catalog.yaml` is set the use of `per_product_type_code_generator` for the `default` engine/repository: + ```yaml hl_lines="8" + [[= include_file('code_samples/trainings/commerce/pim/001_product_modeling/config/packages/ibexa_product_catalog.yaml', 0, None, ' ') =]] + ``` + +??? note "TODO: Possible solution(s)" -TODO: [Create custom product code generator strategy](create_product_code_generator.md) + TODO: Propose grouped attributes and product type(s), illustrate their usage with few products and product variants. Your new products are in the "Uncategorized products" section of the **Products** admin page. It's now time to fix this in the next chapter. From 67db240317ae47dfe0a3ba12ddca9cbede3421f9 Mon Sep 17 00:00:00 2001 From: adriendupuis Date: Fri, 4 Oct 2024 07:36:40 +0000 Subject: [PATCH 11/29] PHP CS Fixes --- .../src/CodeGenerator/Strategy/BikeCodeGenerator.php | 1 - .../Strategy/ProductTypeCodeGeneratorDispatcher.php | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/BikeCodeGenerator.php b/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/BikeCodeGenerator.php index 852ffb9421..5e84a1d29c 100644 --- a/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/BikeCodeGenerator.php +++ b/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/BikeCodeGenerator.php @@ -5,7 +5,6 @@ namespace App\CodeGenerator\Strategy; use Ibexa\Contracts\Core\Exception\InvalidArgumentException; -use Ibexa\Contracts\Core\Repository\Exceptions\NotImplementedException; use Ibexa\Contracts\ProductCatalog\Local\CodeGenerator\CodeGeneratorContext; use Ibexa\Contracts\ProductCatalog\Local\CodeGenerator\CodeGeneratorInterface; diff --git a/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/ProductTypeCodeGeneratorDispatcher.php b/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/ProductTypeCodeGeneratorDispatcher.php index 5033e2db5a..a918f00659 100644 --- a/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/ProductTypeCodeGeneratorDispatcher.php +++ b/code_samples/trainings/commerce/pim/001_product_modeling/src/CodeGenerator/Strategy/ProductTypeCodeGeneratorDispatcher.php @@ -12,10 +12,13 @@ final class ProductTypeCodeGeneratorDispatcher implements CodeGeneratorInterface { private CodeGeneratorRegistryInterface $codeGeneratorRegistry; + private string $defaultCodeGeneratorIdentifier; + private array $productTypeCodeGeneratorMap; - public function __construct(CodeGeneratorRegistryInterface $codeGeneratorRegistry, string $defaultCodeGeneratorIdentifier='incremental', array $productTypeCodeGeneratorMap=[]) { + public function __construct(CodeGeneratorRegistryInterface $codeGeneratorRegistry, string $defaultCodeGeneratorIdentifier = 'incremental', array $productTypeCodeGeneratorMap = []) + { $this->codeGeneratorRegistry = $codeGeneratorRegistry; $this->defaultCodeGeneratorIdentifier = $defaultCodeGeneratorIdentifier; $this->productTypeCodeGeneratorMap = $productTypeCodeGeneratorMap; From 6717a13ccc8ce45bcd0f4fbcf774158105846aed Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 9 Oct 2024 11:07:04 +0200 Subject: [PATCH 12/29] PIM training: Narrow down to modeling and sorting products. --- docs/trainings/commerce/pim/000_syllabus.md | 11 +- .../commerce/pim/013_product_displaying.md | 150 ------------------ .../commerce/pim/021_product_pricing.md | 26 --- 3 files changed, 5 insertions(+), 182 deletions(-) delete mode 100644 docs/trainings/commerce/pim/013_product_displaying.md delete mode 100644 docs/trainings/commerce/pim/021_product_pricing.md diff --git a/docs/trainings/commerce/pim/000_syllabus.md b/docs/trainings/commerce/pim/000_syllabus.md index 1e8ad30c12..0602ae5e96 100644 --- a/docs/trainings/commerce/pim/000_syllabus.md +++ b/docs/trainings/commerce/pim/000_syllabus.md @@ -1,5 +1,6 @@ --- description: PIM training +page_type: training --- # PIM (Product Information Management) @@ -8,12 +9,10 @@ description: PIM training In this training, you learn how to create complex products, to quote their prices, and to organize them in catalogs, using the build-in features. -| Section | Estimated | Description | -|:------------------------------------------------|----------:|:------------------------------------------------------------------------------| -| [Product modeling](011_product_modeling.md) | X minutes | Learn about product types, products and product variants. | -| [Product shelving](012_product_shelving.md) | Y minutes | Organize your products with categories and catalogs. | -| [Product displaying](013_product_displaying.md) | Z minutes | Template the product page. | -| [Product pricing](021_product_pricing.md) | N minutes | Manage currencies and VAT rates, compute prices. (TODO: discount needs users) | +| Section | Estimated | Description | +|:--------------------------------------------|----------:|:----------------------------------------------------------| +| [Product modeling](011_product_modeling.md) | X minutes | Learn about product types, products and product variants. | +| [Product shelving](012_product_shelving.md) | Y minutes | Organize your products with categories and catalogs. | ## Requirements diff --git a/docs/trainings/commerce/pim/013_product_displaying.md b/docs/trainings/commerce/pim/013_product_displaying.md deleted file mode 100644 index 314067bbda..0000000000 --- a/docs/trainings/commerce/pim/013_product_displaying.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -description: "PIM training: Product displaying" -edition: experience -page_type: training ---- - -# Product displaying - -How to display a price is kept for the next chapter. - -The "add to cart" and other sale features are not part of this training which stay focused on what is available in the Ibexa DXP Headless. - -## Routes - -Like every content item, it is viewable through its friendly URL Alias, or at the route `/view/content/{contentId}/{viewType}/{layout}/{locationId}` (`ibexa.content.view`). - -An alternative route is also available, dedicated for Back Office, `/product/{productCode}` (`ibexa.product_catalog.product.view`). - -You may notice that the Back Office automatically redirect the `ibexa.content.view` route to the "`full`" view type to the `ibexa.product_catalog.product.view` route, while the front office don't. -On contrary, a front office will probably throw an error if accessed through a `ibexa.product_catalog.product.view` URL: "The route is not allowed in the current SiteAccess". - -So, be aware, and don't mix up Back Office and front office URLs. - -Product variants are not content items. -TODO: Introduce ways to access product variant - -## Rights - -To be able to view products, "Content / Read" policy isn't enough even if products are content items. - -The policy "Product / View" give access to products. It is limited by product types. - -Exercise: Add "Product / View" policy to "Anonymous" role, allow all your product type. - -TODO: "Product Type / View" could be needed. I needed it for `isBaseProduct` `{{ dump((content|ibexa_get_product).isBaseProduct) }}` - -## Templates - -### Matchers - -* All products - -`Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\IsProduct` - -https://doc.ibexa.co/en/latest/templating/templates/view_matcher_reference/#product - -https://doc.ibexa.co/en/latest/api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-ViewMatcher-ProductBased-IsProduct.html - -```yaml -ibexa: - system: - : - content_view: - product: - template: '@ibexadesign/full/product.html.twig' - match: - '@Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\IsProduct': ~ -``` - -* Products of a given type - -`Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\ProductType` - -```yaml - bike: - template: '@ibexadesign/full/bike.html.twig' - match: - '@Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\ProductType': ['bike', 'mountain_bike', 'racing_bike'] - electric_bike: - template: '@ibexadesign/full/electric_bike.html.twig' - match: - '@Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\ProductType': ['electric_bike'] -``` - -* Products of a given code - -`Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\ProductCode` - -```yaml - 4_series: - template: '@ibexadesign/full/bike.html.twig' - match: - '@Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\ProductCode': ['MTBS4-4', 'MTBS4-5', 'MTBS4-6', 'MTBS4-7'] - 5_series: - template: '@ibexadesign/full/bike.html.twig' - match: - '@Ibexa\Contracts\ProductCatalog\ViewMatcher\ProductBased\ProductCode': ['MTBS5-0', 'MTBS5-1', 'MTBS5-2', 'MTBS5-3', 'MTBS5-4'] -``` - -* TODO: Availability - -### Content fields and product attributes - -Fields are displayed as usual. - -For the particular case of `ibexa_product_specification` field type, you can take a look at -`vendor/ibexa/product-catalog/src/bundle/Resources/views/themes/standard/product_catalog/field_type/product.html.twig` - -TODO: But variant aren't content items… - -### Twig functions - -[Product Twig functions](product_twig_functions.md) - -`ibexa_get_product` returns a [`ProductInterface`](../../../api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Values-ProductInterface.html) - -### Commerce's `storefront` theme - -Ibexa DXP Commerce has a default design for displaying product: `storefront` - -When using Commerce, you should prefer building on top of this design. - -SiteAccess from group `storefront_group` has this design. - -Template rules are defined in `vendor/ibexa/storefront/src/bundle/Resources/config/prepend.yaml`. -You can read there how the product `full` view is defined using the `IsProduct` matcher. - -The product default template is -`vendor/ibexa/storefront/src/bundle/Resources/views/themes/storefront/storefront/product.html.twig`. -You can override it with a template located as `templates/themes//storefront/product.html.twig`. - -## TODO: Exercise - -/product-catalog/TODO?code=TODO - -```html+twig -{{ ibexa_render_field(content, 'product_specification') }} - -{% set product = content|ibexa_get_product %} -{% set code = app.request.get('code')|default(product.code) %} -{% if code != product.code and product.isBaseProduct %} - {% for variant in product.getVariantsList %} - {% if code == variant.code %} - {% set product = variant %} - {% endif %} - {% endfor %} -{% endif %} - - - - {% for attribute in product.attributes %} - {% set definition = attribute.getAttributeDefinition() %} - - - - - {% endfor %} - -
{{ definition.getName() }}{{ attribute|ibexa_format_product_attribute }}
-``` diff --git a/docs/trainings/commerce/pim/021_product_pricing.md b/docs/trainings/commerce/pim/021_product_pricing.md deleted file mode 100644 index 7593a34e99..0000000000 --- a/docs/trainings/commerce/pim/021_product_pricing.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -description: "PIM training: Product pricing" -edition: experience -page_type: training ---- - -[`ibexa_format_price`](https://doc.ibexa.co/en/latest/templating/twig_function_reference/product_twig_functions/#ibexa_format_price) -TODO: This is defined in vendor/ibexa/product-catalog/src/bundle/Twig/PriceExtension.php - -## Regions and VAT - -### PIM configuration - -https://doc.ibexa.co/en/latest/pim/pim_configuration/#vat-rates - -### Product type configuration - -https://doc.ibexa.co/en/latest/pim/enable_purchasing_products/#vat-rates - -https://doc.ibexa.co/projects/userguide/en/latest/pim/product_types/ - -https://doc.ibexa.co/projects/userguide/en/latest/pim/create_product_types/ - -## Custom pricing - -TODO: exercise with custom prices for retailers. From 4a66c6928830bcc88f52b86a37ad368bdf618829 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 9 Oct 2024 11:17:44 +0200 Subject: [PATCH 13/29] 011_product_modeling.md: Fix some vale warnings --- docs/trainings/commerce/pim/011_product_modeling.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index 43494724e2..e5c5394bef 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -16,13 +16,13 @@ See a first conceptualisation of what a product is, and what a product type is, In fact, a product type is really a content type from the hidden system group `product` with a field of type “Product specification” (`ibexa_product_specification`). The presence of an `ibexa_product_specification` field is what distinct product type from content type. -Don't remove this field from a product type (or it will become a unreachable hidden content type). -Don't add such field to a content type (or it will become an uneditable broken product type). +Don't remove this field from a product type (or it becomes a unreachable hidden content type). +Don't add such field to a content type (or it becomes an uneditable broken product type). TODO: What happens if you have several `ibexa_product_specification` fields? You can trick the system URL to display a product type as a content type but know that this is dangerous and mustn't be exposed to final users. -Always prefer the dedicated route (as the Back Office does) `/product-type/view//contenttype/` (`ibexa.content_type.view`) is doable. You could even edit it from there. But this is strongly not recommended. TODO: move to somewhere in the exercise @@ -41,7 +41,7 @@ The "Product specification" field type (`ibexa_product_specification`) brings in Notice that you don't need to add a field or an attribute for price. Prices are handled by a particular side mechanism, the price engine, which is treated later in the training with VAT, currencies, etc. -But, also notice that VAT is set at Product Type level. +But, also notice that VAT is set at product type level. ## Attributes VS Fields From a8702c865ff47c488c7c99a6e95ee101da1064d7 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 9 Oct 2024 14:46:20 +0200 Subject: [PATCH 14/29] =?UTF-8?q?011=5Fproduct=5Fmodeling.md:=20UK=20Alumi?= =?UTF-8?q?nium=20=E2=86=92=20US=20Aluminum?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commerce/pim/011_product_modeling.md | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index e5c5394bef..66418ad529 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -91,7 +91,7 @@ And it doesn't involve different brands and models for the same feature yet. - Frame: - Size: [XS, S, M, L, XL] - Shape/Features: [Diamond, Step-through, Diamond w/ suspension, Folding, Recumbent, Cargo, Tandem, …] - - Material: [Steel, Aluminium, Titanium, Carbon, Wood, Bamboo, Mixed, …] + - Material: [Steel, Aluminum, Titanium, Carbon, Wood, Bamboo, Mixed, …] - Paint job: […] - Fork - Size: [XS, S, M, L, XL] @@ -106,7 +106,7 @@ And it doesn't involve different brands and models for the same feature yet. - Cover material: [Spandex, Vinyl, Kevlar, Leather, …] - Paint job: […] - Saddlepost: - - Material: [Steel, Aluminium, Titanium, Carbon, Wood, Bamboo, Mixed, …] + - Material: [Steel, Aluminum, Titanium, Carbon, Wood, Bamboo, Mixed, …] - Type: [Rigid, Suspension, Dropper, …] - Attachment: [Quick release, Bolt/nut, Anti-thief, …] - Pedals: @@ -133,7 +133,7 @@ And it doesn't involve different brands and models for the same feature yet. - Diameter: [622 mm (road 700C, mountain 29″), 584 mm (road 650B, mountain 27.5″), 559 mm (mountain 26″), 406 mm (mountain 20″), …] - Type: [Standard spokes, G3 spokes, Disc, …] - Brake: [Caliper, Disk, Roller, Drum, …] - - Rim material: [Aluminium, Steel, Carbon, …] + - Rim material: [Aluminum, Steel, Carbon, …] - Tire shape: [City, Race, Mountain, Fat, Mixed, …] - Tire insert: [Clincher/Tube, Tubular, Tubeless, Foam, Solid, …] - Paint job: […] @@ -143,7 +143,7 @@ And it doesn't involve different brands and models for the same feature yet. - Diameter: [Same as rear, 622 mm (road 700C, mountain 29″), 584 mm (road 650B, mountain 27.5″), 559 mm (mountain 26″), 406 mm (mountain 20″), …] - Type: [Same as rear, Standard spokes, G3 spokes, Disc, …] - Brake: [Same as rear, Caliper, V, Disk, Roller, …] - - Rim material: [Same as rear, Aluminium, Steel, Carbon, …] + - Rim material: [Same as rear, Aluminum, Steel, Carbon, …] - Tire shape: [Same as rear, City, Race, Mountain, Fat, Mixed, …] - Tire insert: [Same as rear, Clincher/Tube, Tubular, Tubeless, Foam, Solid, …] - Electric assistance: @@ -179,20 +179,20 @@ To simplify casual customer experience (and above all the exercise), the vendor The following table shows only properties that can vary. When not all combinations are available, the product has multiple lines. -| Name | Base code | Material | Frame shapes | Frameset + wheel sizes | Saddle | Paint job | Gears | Price | -|:------------|:----------|:----------|:---------------------------|:-----------------------|:-----------------|:-----------------------|:--------:|------:| -| Fuji | MTB-S4-4 | Aluminium | Diamond | [S, M, L, XL] + 29″ | Thin | [Sakura, Ronin] | G02-2x10 | 3776€ | -| Fuji | MTB-S4-4 | Aluminium | [Diamond, Step-through] | [S, M, L] + 29″ | [Thin, Large] | [Sakura, Ronin] | G02-1x10 | 3676€ | -| Fuji | MTB-S4-4 | Aluminium | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | [Sakura, Ronin] | G02-1x08 | 3666€ | -| Matterhorn | MTB-S4-5 | Aluminium | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Snow, Rock] | G02-2x12 | 4478€ | -| Annapurna | MTB-S4-6 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | Annapurna | G01-3x12 | 8091€ | -| Etna | MTB-S4-7 | Aluminium | [Diamond, Step-through] | [S, M, L, XL] + 29″ | [Thin, Large] | Etna | G02-1x06 | 3369€ | -| Etna | MTB-S4-7 | Aluminium | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | Etna | G02-1x06 | 3339€ | -| Kilimanjaro | MTB-S5-0 | Aluminium | Step-through w/ suspension | [S, M, L, XL] + 29″ | [Thin, Large] | [Shira, Mawenzi, Kibo] | G03-2x12 | 5895€ | -| Stádda | MTB-S5-1 | Aluminium | Step-through | XS + [26″, 27.5″] | Large | [Sunrise, Sunset] | G04-1x03 | 1392€ | -| Aconcagua | MTB-S5-2 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | [Condor, Llama] | G01-3x12 | 6960€ | -| Ventoux | MTB-S5-3 | Aluminium | Step-through | XS + [26″, 27.5″] | [Thin, Large] | [Provence, Mistral] | G04-1x04 | 1910€ | -| Castor | MTB-S5-4 | Aluminium | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Castor, Pollux] | G03-2x12 | 4225€ | +| Name | Base code | Material | Frame shapes | Frameset + wheel sizes | Saddle | Paint job | Gears | Price | +|:------------|:----------|:---------|:---------------------------|:-----------------------|:-----------------|:-----------------------|:--------:|------:| +| Fuji | MTB-S4-4 | Aluminum | Diamond | [S, M, L, XL] + 29″ | Thin | [Sakura, Ronin] | G02-2x10 | 3776€ | +| Fuji | MTB-S4-4 | Aluminum | [Diamond, Step-through] | [S, M, L] + 29″ | [Thin, Large] | [Sakura, Ronin] | G02-1x10 | 3676€ | +| Fuji | MTB-S4-4 | Aluminum | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | [Sakura, Ronin] | G02-1x08 | 3666€ | +| Matterhorn | MTB-S4-5 | Aluminum | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Snow, Rock] | G02-2x12 | 4478€ | +| Annapurna | MTB-S4-6 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | Annapurna | G01-3x12 | 8091€ | +| Etna | MTB-S4-7 | Aluminum | [Diamond, Step-through] | [S, M, L, XL] + 29″ | [Thin, Large] | Etna | G02-1x06 | 3369€ | +| Etna | MTB-S4-7 | Aluminum | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | Etna | G02-1x06 | 3339€ | +| Kilimanjaro | MTB-S5-0 | Aluminum | Step-through w/ suspension | [S, M, L, XL] + 29″ | [Thin, Large] | [Shira, Mawenzi, Kibo] | G03-2x12 | 5895€ | +| Stádda | MTB-S5-1 | Aluminum | Step-through | XS + [26″, 27.5″] | Large | [Sunrise, Sunset] | G04-1x03 | 1392€ | +| Aconcagua | MTB-S5-2 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | [Condor, Llama] | G01-3x12 | 6960€ | +| Ventoux | MTB-S5-3 | Aluminum | Step-through | XS + [26″, 27.5″] | [Thin, Large] | [Provence, Mistral] | G04-1x04 | 1910€ | +| Castor | MTB-S5-4 | Aluminum | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Castor, Pollux] | G03-2x12 | 4225€ | - Create the attribute group(s) - Create the attributes From a2537b3ba82589e7a9911c428b6055af76280cf3 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 9 Oct 2024 14:57:41 +0200 Subject: [PATCH 15/29] 000_syllabus.md: Fix Ibexa.SpacingNestedList --- docs/trainings/commerce/pim/000_syllabus.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/trainings/commerce/pim/000_syllabus.md b/docs/trainings/commerce/pim/000_syllabus.md index 0602ae5e96..d41cc0a3d3 100644 --- a/docs/trainings/commerce/pim/000_syllabus.md +++ b/docs/trainings/commerce/pim/000_syllabus.md @@ -19,8 +19,8 @@ In this training, you learn how to create complex products, to quote their price ### Previous knowledge - [Content management](content_management.md) - - [Content types](content_types.md) and [content items](content_model.md#content-items) - - [Taxonomy](taxonomy.md) + - [Content types](content_types.md) and [content items](content_model.md#content-items) + - [Taxonomy](taxonomy.md) - [Templating](templating.md) ### Ibexa DXP edition From e6844a5222dedf821ca10b41c6037971b2fcc090 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Thu, 10 Oct 2024 17:11:59 +0200 Subject: [PATCH 16/29] PIM training: About data migration --- docs/trainings/commerce/pim/000_syllabus.md | 17 ++++---- .../commerce/pim/011_product_modeling.md | 9 ++-- docs/trainings/commerce/pim/021_migration.md | 41 +++++++++++++++++++ 3 files changed, 54 insertions(+), 13 deletions(-) create mode 100644 docs/trainings/commerce/pim/021_migration.md diff --git a/docs/trainings/commerce/pim/000_syllabus.md b/docs/trainings/commerce/pim/000_syllabus.md index d41cc0a3d3..37d989edcb 100644 --- a/docs/trainings/commerce/pim/000_syllabus.md +++ b/docs/trainings/commerce/pim/000_syllabus.md @@ -7,12 +7,13 @@ page_type: training ## Syllabus -In this training, you learn how to create complex products, to quote their prices, and to organize them in catalogs, using the build-in features. +In this training, you learn how to create complex products, and to sort them. -| Section | Estimated | Description | -|:--------------------------------------------|----------:|:----------------------------------------------------------| -| [Product modeling](011_product_modeling.md) | X minutes | Learn about product types, products and product variants. | -| [Product shelving](012_product_shelving.md) | Y minutes | Organize your products with categories and catalogs. | +| Section | Estimated | Description | +|:--------------------------------------------|----------:|:------------------------------------------------------------| +| [Product modeling](011_product_modeling.md) | X minutes | Learn about product types, products and product variants. | +| [Product shelving](012_product_shelving.md) | Y minutes | Organize your products with categories and catalogs. | +| [Product migration](021_migration.md) | Z minutes | Export your product model for deployment on other installs. | ## Requirements @@ -31,9 +32,7 @@ In this training, you learn how to create complex products, to quote their price - [[= product_name_exp =]] [[= latest_tag_4_6 =]] - [[= product_name_com =]] [[= latest_tag_4_6 =]] -TODO: Make sure that everything used is in Ibexa DXP Headless scope, so to speak, ibexa/product-catalog - -TODO: Trainees working on Ibexa DXP Commerce could pick examples from ibexa/storefront but others mustn't be frustrated of having installed an inferior edition. +TODO: Make sure that everything used is in Ibexa DXP Headless scope, so to speak, ibexa/product-catalog. It mustn't use features from ibexa/storefront. ### Cluster elements @@ -47,6 +46,6 @@ This training can be run on the minimal stack. ### Starting state -To follow this training, you must install code, config and data on top of a fresh installation. +To follow this training, you must install code, configuration, and data on top of a fresh installation. TODO: Experience clean install, or previous bike ride design and content? diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index 66418ad529..0fe4ad5f38 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -9,7 +9,7 @@ page_type: training ## Product types The product type base concept is close to the content type one. -Like a content type structures a family content items, a product type structures products. +Like a content type structures a family of content items, a product type structures products. See a first conceptualisation of what a product is, and what a product type is, in [Documentation > PIM (Product management) > Products](products.md). @@ -40,8 +40,10 @@ SELECT cg.group_id, cg.group_name, g.is_system, c.id, c.identifier, c.version The "Product specification" field type (`ibexa_product_specification`) brings in the power of attributes. Notice that you don't need to add a field or an attribute for price. -Prices are handled by a particular side mechanism, the price engine, which is treated later in the training with VAT, currencies, etc. +Prices are handled by a particular side mechanism, the price engine, which is not treated in this training. But, also notice that VAT is set at product type level. +The associations of VAT categories to regions are also stored by the `ibexa_product_specification` field. +TODO: This is demonstrated in migration. ## Attributes VS Fields @@ -55,8 +57,6 @@ Only the display of those properties changes with the language. See the followin - The color of a product is the same whatever the language is, only the corresponding color name is translated. - The radius of a sphere doesn't depend on the language, only its numeral representation need translation according to local length units. -TODO: Later in the training, in the templating part, is shown how to localize the attributes. - Unlike fields, attributes are first defined outside the product types. Attributes and attribute groups are to be reused from product type to product type. @@ -237,6 +237,7 @@ But, if you're curious, you can read or implements as a bonus the following cust ??? note "TODO: Possible solution(s)" TODO: Propose grouped attributes and product type(s), illustrate their usage with few products and product variants. + TODO: Materials as 1 attribute. Paintjobs as 2 attributes, one per series to reduce selection list length? 3 attributes groups, one common, one per series? Then 2 product types, one per series? Your new products are in the "Uncategorized products" section of the **Products** admin page. It's now time to fix this in the next chapter. diff --git a/docs/trainings/commerce/pim/021_migration.md b/docs/trainings/commerce/pim/021_migration.md new file mode 100644 index 0000000000..6552e3f9f3 --- /dev/null +++ b/docs/trainings/commerce/pim/021_migration.md @@ -0,0 +1,41 @@ +--- +description: "PIM training: Migration" +edition: experience +page_type: training +--- + +# Product model migration + +After having modeled your catalog organization on your local developer instance, +you may want/need to [generate migration files](exporting_data.md) to install the model on a shared instance +(for example a staging instance or the production instance) where the creation of the products will be done. + +Export attribute groups, attributes, and product types: + +``` bash +php bin/console ibexa:migrations:generate \ + --type=attribute_group --mode=create \ + --match-property=identifier --value=bike --value=mtb-s4 --value=mtb-s5 \ + --siteaccess=admin; + +# Where 2, 3, and 4 are the IDs of the attribute groups bike, mtb-s4, and mtb-s5 +php bin/console ibexa:migrations:generate \ + --type=attribute --mode=create \ + --match-property=attribute_group_id --value=2 --value=3 --value=4 \ + --siteaccess=admin; + +php bin/console ibexa:migrations:generate \ + --type=content_type --mode=create \ + --match-property=content_type_identifier --value=mtb-s4 --value=mtb-s5 \ + --siteaccess=admin; +``` + +Export product categories: + +``` bash +# Where 63 is the "Product Root Tag" Location ID (Product catalog > Categories) +php bin/console ibexa:migrations:generate \ + --type=content --mode=create \ + --match-property=parent_location_id --value=63 \ + --siteaccess=admin; +``` From 66f1408b61b97d3abd956376db8b1fed89d43b53 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:24:42 +0200 Subject: [PATCH 17/29] 011_product_modeling.md: few notes --- docs/trainings/commerce/pim/011_product_modeling.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index 0fe4ad5f38..0fb0184831 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -176,6 +176,7 @@ To simplify casual customer experience (and above all the exercise), the vendor - Manufacturers, brands and models are predefined. - Front and rear gears, transmission and shifting system are set in one bundle with predefined models. +- Paint jobs are predefined palette/colorscheme/color set, and patterns. The following table shows only properties that can vary. When not all combinations are available, the product has multiple lines. @@ -195,7 +196,7 @@ The following table shows only properties that can vary. When not all combinatio | Castor | MTB-S5-4 | Aluminum | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Castor, Pollux] | G03-2x12 | 4225€ | - Create the attribute group(s) -- Create the attributes +- Create the attributes (TODO: two ways in the BO, Attributes page, or attribute group "Attributes" tab) - Create the product type(s) - Create the products - Create the product variants From 64c0c129a994617b7afe48a977e5c29edca8907b Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:45:09 +0200 Subject: [PATCH 18/29] 011_product_modeling.md: few notes --- docs/trainings/commerce/pim/011_product_modeling.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index 0fb0184831..c3e27ed772 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -18,8 +18,7 @@ In fact, a product type is really a content type from the hidden system group `p The presence of an `ibexa_product_specification` field is what distinct product type from content type. Don't remove this field from a product type (or it becomes a unreachable hidden content type). Don't add such field to a content type (or it becomes an uneditable broken product type). - -TODO: What happens if you have several `ibexa_product_specification` fields? +You can't have more than one `ibexa_product_specification`, the laters won't be editable. You can trick the system URL to display a product type as a content type but know that this is dangerous and mustn't be exposed to final users. Always prefer the dedicated route (as the back office does) `/product-type/view/ Date: Tue, 15 Oct 2024 16:37:09 +0200 Subject: [PATCH 19/29] PIM training: draft ideas for APIs --- docs/trainings/commerce/pim/000_syllabus.md | 12 +++---- .../commerce/pim/011_product_modeling.md | 4 ++- .../commerce/pim/012_product_shelving.md | 29 ++++++++-------- ...1_migration.md => 021_product_exchange.md} | 33 +++++++++++++++++-- 4 files changed, 54 insertions(+), 24 deletions(-) rename docs/trainings/commerce/pim/{021_migration.md => 021_product_exchange.md} (55%) diff --git a/docs/trainings/commerce/pim/000_syllabus.md b/docs/trainings/commerce/pim/000_syllabus.md index 37d989edcb..7a524082e2 100644 --- a/docs/trainings/commerce/pim/000_syllabus.md +++ b/docs/trainings/commerce/pim/000_syllabus.md @@ -7,13 +7,13 @@ page_type: training ## Syllabus -In this training, you learn how to create complex products, and to sort them. +In this training, you learn how to create complex products locally, and to organize them. -| Section | Estimated | Description | -|:--------------------------------------------|----------:|:------------------------------------------------------------| -| [Product modeling](011_product_modeling.md) | X minutes | Learn about product types, products and product variants. | -| [Product shelving](012_product_shelving.md) | Y minutes | Organize your products with categories and catalogs. | -| [Product migration](021_migration.md) | Z minutes | Export your product model for deployment on other installs. | +| Section | Estimated | Description | +|:--------------------------------------------|----------:|:----------------------------------------------------------| +| [Product modeling](011_product_modeling.md) | X minutes | Learn about product types, products and product variants. | +| [Product shelving](012_product_shelving.md) | Y minutes | Organize your products with categories and catalogs. | +| [Product exchange](021_product_exchange.md) | Z minutes | Explore REST API, PHP API, and migrations. | ## Requirements diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index c3e27ed772..d6912186be 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -66,6 +66,8 @@ How to think product types? How to not have a product type per product? How to not want a "god" product type trying to cover everything? +TODO: Image field VS Product assets + TODO: Variants TODO: attribute value display translation @@ -83,7 +85,7 @@ Exercise: Think about attributes and content type to sell full bicycles and bicy The following is an example of a bicycle feature model sketch. As you can see, it's a rich and complex matrix. -And it doesn't involve different brands and models for the same feature yet. +And it doesn't even involve different brands and models for the same feature yet! - Bicycle: - Frameset: diff --git a/docs/trainings/commerce/pim/012_product_shelving.md b/docs/trainings/commerce/pim/012_product_shelving.md index 5b3df9f1dc..d82e53420a 100644 --- a/docs/trainings/commerce/pim/012_product_shelving.md +++ b/docs/trainings/commerce/pim/012_product_shelving.md @@ -22,22 +22,21 @@ Product categories are tags in the `product_categories` [taxonomy](taxonomy.md). If you're curious, you can find the `product_categories` taxonomy configuration in `vendor/ibexa/product-catalog/src/bundle/Resources/config/prepend.yaml`. -TODO: Something interesting to do using the Taxo API? - Exercise: -- Create a "Mountain Bike" category with two child categories "4 Series" and "5 Series" +- Create a "Bike" category, its child "Mountain Bike" category, with for the latter two children categories "4 Series" and "5 Series" - Categorize the products from previous chapter's exercise into the right series: -- Mountain Bike - - 4 Series - - Fuji - - Matterhorn - - Annapurna - - Etna - - 5 Series - - Kilimanjaro - - Stádda - - Aconcagua - - Ventoux - - Castor +- Bike + - Mountain Bike + - 4 Series + - Fuji + - Matterhorn + - Annapurna + - Etna + - 5 Series + - Kilimanjaro + - Stádda + - Aconcagua + - Ventoux + - Castor diff --git a/docs/trainings/commerce/pim/021_migration.md b/docs/trainings/commerce/pim/021_product_exchange.md similarity index 55% rename from docs/trainings/commerce/pim/021_migration.md rename to docs/trainings/commerce/pim/021_product_exchange.md index 6552e3f9f3..11a1b8ca9a 100644 --- a/docs/trainings/commerce/pim/021_migration.md +++ b/docs/trainings/commerce/pim/021_product_exchange.md @@ -1,10 +1,39 @@ --- -description: "PIM training: Migration" +description: "PIM training: Product exchange" edition: experience page_type: training --- -# Product model migration +# Product exchange + +## Remote PIM + +Even if this is outside the scope of this training, this is important to know that the products could be stored outside Ibexa DXP. +With a [remote PIM](pim_guide.md#remote-pim-support), Ibexa DXP role is to display them on the storefront and allow their purchase. + +## REST API + +TODO + +TODO: Exercise request through REST the bikes from "5 series" +TODO: /product/catalog/catalogs/{identifier}/products/view + +## PHP API + +[Product API](product_api.md) + +Notice that there is a `ProductServiceInterface` for reading and a `LocalProductServiceInterface for writing. +This is due to reading being available for both local and remote PIM, while writing is available only locally. + +[Criteria for `ProductServiceInterface::findProducts()`](product_search_criteria.md) + +[Catalog API](catalog_api.md) + +[Taxonomy API for product categories](taxonomy_api.md) + +TODO: Exercise: Write a command/controller listing all mountain bikes by series. + +## Product model migration After having modeled your catalog organization on your local developer instance, you may want/need to [generate migration files](exporting_data.md) to install the model on a shared instance From c1305c749625cdbf42abc7ebb485509444df5dad Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Wed, 16 Oct 2024 16:53:50 +0200 Subject: [PATCH 20/29] 011_product_modeling.md: About assets --- .../commerce/pim/011_product_modeling.md | 110 +++++++++++++----- .../commerce/pim/021_product_exchange.md | 9 +- .../Fuji-asset-collection-diamond-sakura.png | Bin 0 -> 67017 bytes .../pim/resources/Fuji-diamond-ronin.png | Bin 0 -> 61117 bytes .../pim/resources/Fuji-diamond-sakura.png | Bin 0 -> 61794 bytes .../commerce/pim/resources/Fuji-diamond.png | Bin 0 -> 37578 bytes .../pim/resources/Fuji-stepthrough-ronin.png | Bin 0 -> 59779 bytes .../pim/resources/Fuji-stepthrough-sakura.png | Bin 0 -> 60393 bytes .../commerce/pim/resources/G02-1.png | Bin 0 -> 39170 bytes .../commerce/pim/resources/G02-2.png | Bin 0 -> 58825 bytes 10 files changed, 87 insertions(+), 32 deletions(-) create mode 100644 docs/trainings/commerce/pim/img/Fuji-asset-collection-diamond-sakura.png create mode 100644 docs/trainings/commerce/pim/resources/Fuji-diamond-ronin.png create mode 100644 docs/trainings/commerce/pim/resources/Fuji-diamond-sakura.png create mode 100644 docs/trainings/commerce/pim/resources/Fuji-diamond.png create mode 100644 docs/trainings/commerce/pim/resources/Fuji-stepthrough-ronin.png create mode 100644 docs/trainings/commerce/pim/resources/Fuji-stepthrough-sakura.png create mode 100644 docs/trainings/commerce/pim/resources/G02-1.png create mode 100644 docs/trainings/commerce/pim/resources/G02-2.png diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index d6912186be..34a775ceb5 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -24,25 +24,26 @@ You can trick the system URL to display a product type as a content type but kno Always prefer the dedicated route (as the back office does) `/product-type/view//contenttype/` (`ibexa.content_type.view`) is doable. You could even edit it from there. But this is strongly not recommended. -TODO: move to somewhere in the exercise -If you're curious, after having created a product type, you can run the following SQL query to see the database representation. - -```sql -SELECT cg.group_id, cg.group_name, g.is_system, c.id, c.identifier, c.version - FROM ezcontentclass AS c - JOIN ezcontentclass_classgroup AS cg ON c.id = cg.contentclass_id AND c.version = cg.contentclass_version - JOIN ezcontentclassgroup AS g ON cg.group_id = g.id - ORDER BY cg.group_id ASC, c.id ASC -; -``` - The "Product specification" field type (`ibexa_product_specification`) brings in the power of attributes. -Notice that you don't need to add a field or an attribute for price. -Prices are handled by a particular side mechanism, the price engine, which is not treated in this training. -But, also notice that VAT is set at product type level. -The associations of VAT categories to regions are also stored by the `ibexa_product_specification` field. -TODO: This is demonstrated in migration. +### Product type default fields + +When creating a new product type, several fields are already present. + +| identifier | type | +|:----------------------|:--------------------------------| +| name | ezsting | +| product_specification | ibexa_product_specification | +| description | ezrichtext | +| image | ezimageasset | +| category | ibexa_taxonomy_entry_assignment | + +Prices are not part of this training but: + +- Notice that you don't need to add a field or an attribute for price. Prices are handled by a particular side mechanism, the price engine, which is not treated in this training. +- Also notice that VAT is set at product type level. The associations of VAT categories to regions are also stored by the `ibexa_product_specification` field. + +Product assets presented bellow are explaining why there is no need to add fields to handle more images of the product. ## Attributes VS Fields @@ -79,6 +80,22 @@ But a variant isn't. TODO: Continue content VS product VS variant +## Product assets + +Product assets are collection(s) of images associated to a base product and eventually to its variants. + +The default `image` field is for an introduction image to the base product. +It's the image appearing in the product catalog's list of products. + +Assets are the images appearing on the product page. + +In the PIM, product assets are more powerful than a relation list or other field type could be. + +A collection of assets is associated to attribute values used for variants. +When displaying a product variant, the application combines the asset collections which suit its attribute values. +For example, you can associate close-up photos of a feature to the checkbox representing its presence, +while associating full views of the products to each of its available colors. + ## Exercise: Bikes and bike parts modeling Exercise: Think about attributes and content type to sell full bicycles and bicycle parts. @@ -181,20 +198,20 @@ To simplify casual customer experience (and above all the exercise), the vendor The following table shows only properties that can vary. When not all combinations are available, the product has multiple lines. -| Name | Base code | Material | Frame shapes | Frameset + wheel sizes | Saddle | Paint job | Gears | Price | -|:------------|:----------|:---------|:---------------------------|:-----------------------|:-----------------|:-----------------------|:--------:|------:| -| Fuji | MTB-S4-4 | Aluminum | Diamond | [S, M, L, XL] + 29″ | Thin | [Sakura, Ronin] | G02-2x10 | 3776€ | -| Fuji | MTB-S4-4 | Aluminum | [Diamond, Step-through] | [S, M, L] + 29″ | [Thin, Large] | [Sakura, Ronin] | G02-1x10 | 3676€ | -| Fuji | MTB-S4-4 | Aluminum | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | [Sakura, Ronin] | G02-1x08 | 3666€ | -| Matterhorn | MTB-S4-5 | Aluminum | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Snow, Rock] | G02-2x12 | 4478€ | -| Annapurna | MTB-S4-6 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | Annapurna | G01-3x12 | 8091€ | -| Etna | MTB-S4-7 | Aluminum | [Diamond, Step-through] | [S, M, L, XL] + 29″ | [Thin, Large] | Etna | G02-1x06 | 3369€ | -| Etna | MTB-S4-7 | Aluminum | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | Etna | G02-1x06 | 3339€ | -| Kilimanjaro | MTB-S5-0 | Aluminum | Step-through w/ suspension | [S, M, L, XL] + 29″ | [Thin, Large] | [Shira, Mawenzi, Kibo] | G03-2x12 | 5895€ | -| Stádda | MTB-S5-1 | Aluminum | Step-through | XS + [26″, 27.5″] | Large | [Sunrise, Sunset] | G04-1x03 | 1392€ | -| Aconcagua | MTB-S5-2 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | [Condor, Llama] | G01-3x12 | 6960€ | -| Ventoux | MTB-S5-3 | Aluminum | Step-through | XS + [26″, 27.5″] | [Thin, Large] | [Provence, Mistral] | G04-1x04 | 1910€ | -| Castor | MTB-S5-4 | Aluminum | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Castor, Pollux] | G03-2x12 | 4225€ | +| Name | Base code | Material | Frame shape | Frameset + wheel size | Saddle | Paint job | Gears | Price | +|:------------|:----------|:---------|:---------------------------|:----------------------|:-----------------|:-----------------------|:--------:|------:| +| Fuji | MTB-S4-4 | Aluminum | Diamond | [S, M, L, XL] + 29″ | Thin | [Sakura, Ronin] | G02-2x10 | 3776€ | +| Fuji | MTB-S4-4 | Aluminum | [Diamond, Step-through] | [S, M, L] + 29″ | [Thin, Large] | [Sakura, Ronin] | G02-1x10 | 3676€ | +| Fuji | MTB-S4-4 | Aluminum | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | [Sakura, Ronin] | G02-1x08 | 3666€ | +| Matterhorn | MTB-S4-5 | Aluminum | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Snow, Rock] | G02-2x12 | 4478€ | +| Annapurna | MTB-S4-6 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | Annapurna | G01-3x12 | 8091€ | +| Etna | MTB-S4-7 | Aluminum | [Diamond, Step-through] | [S, M, L, XL] + 29″ | [Thin, Large] | Etna | G02-1x06 | 3369€ | +| Etna | MTB-S4-7 | Aluminum | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | Etna | G02-1x06 | 3339€ | +| Kilimanjaro | MTB-S5-0 | Aluminum | Step-through w/ suspension | [S, M, L, XL] + 29″ | [Thin, Large] | [Shira, Mawenzi, Kibo] | G03-2x12 | 5895€ | +| Stádda | MTB-S5-1 | Aluminum | Step-through | XS + [26″, 27.5″] | Large | [Sunrise, Sunset] | G04-1x03 | 1392€ | +| Aconcagua | MTB-S5-2 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | [Condor, Llama] | G01-3x12 | 6960€ | +| Ventoux | MTB-S5-3 | Aluminum | Step-through | XS + [26″, 27.5″] | [Thin, Large] | [Provence, Mistral] | G04-1x04 | 1910€ | +| Castor | MTB-S5-4 | Aluminum | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Castor, Pollux] | G03-2x12 | 4225€ | - Create the attribute group(s) - Create the attributes (TODO: two ways in the BO, Attributes page, or attribute group "Attributes" tab) @@ -241,5 +258,36 @@ But, if you're curious, you can read or implements as a bonus the following cust TODO: Propose grouped attributes and product type(s), illustrate their usage with few products and product variants. TODO: Materials as 1 attribute. Paintjobs as 2 attributes, one per series to reduce selection list length? 3 attributes groups, one common, one per series? Then 2 product types, one per series? +??? note "Bonus: Database schema" + + If you're curious, after having created product type(s), you can run the following SQL query to see the database representation: + + ```sql + SELECT cg.group_id, cg.group_name, g.is_system, c.id, c.identifier, c.version + FROM ezcontentclass AS c + JOIN ezcontentclass_classgroup AS cg ON c.id = cg.contentclass_id AND c.version = cg.contentclass_version + JOIN ezcontentclassgroup AS g ON cg.group_id = g.id + ORDER BY cg.group_id ASC, c.id ASC + ; + ``` + +Here are some assets for the Fuji bikes, and for the G02 bundles front gears: + +On Fuji, create the asset collections for the assets to be associated to the corresponding variants. +(Download the targets of the following links.) + +- [Fuji: Diamond frame + Ronin paint](Fuji-diamond-ronin.png) +- [Fuji: Diamond frame + Sakura paint](Fuji-diamond-sakura.png) +- [Fuji: Step-through frame + Ronin paint](Fuji-stepthrough-ronin.png) +- [Fuji: Step-through frame + Sakura paint](Fuji-stepthrough-sakura.png) +- [G02-2x10: Front gears](G02-2.png) +- [G02-1x10 and G02-1x8: Front gears](G02-1.png) + +For the Fuji base product generic image, use [this one](Fuji-diamond.png). + +??? note "TODO: Possible solution(s)" + + ![Fuji, example of asset collection for diamond frame shame with "Sakura" paint job.](Fuji-asset-collection-diamond-sakura.png) + Your new products are in the "Uncategorized products" section of the **Products** admin page. It's now time to fix this in the next chapter. diff --git a/docs/trainings/commerce/pim/021_product_exchange.md b/docs/trainings/commerce/pim/021_product_exchange.md index 11a1b8ca9a..4478dba7e3 100644 --- a/docs/trainings/commerce/pim/021_product_exchange.md +++ b/docs/trainings/commerce/pim/021_product_exchange.md @@ -9,7 +9,7 @@ page_type: training ## Remote PIM Even if this is outside the scope of this training, this is important to know that the products could be stored outside Ibexa DXP. -With a [remote PIM](pim_guide.md#remote-pim-support), Ibexa DXP role is to display them on the storefront and allow their purchase. +With a [remote PIM](pim_guide.md#remote-pim-support), Ibexa DXP role is to display them on the storefront, and, for the Commerce edition, to allow their purchase. ## REST API @@ -27,11 +27,18 @@ This is due to reading being available for both local and remote PIM, while writ [Criteria for `ProductServiceInterface::findProducts()`](product_search_criteria.md) +[Sort Clauses for `ProductServiceInterface::findProducts()`](product_sort_clauses.md) + +To create product types, use `ContentTypeFactoryInterface::createContentTypeCreateStruct`. +As you can see in [its `ContentTypeFactory::createContentTypeCreateStruct` implementation](https://github.com/ibexa/product-catalog/blob/main/src/lib/Local/Repository/ProductType/ContentTypeFactory.php#L39-L43), +this function is responsible for the default fields of a new product type. + [Catalog API](catalog_api.md) [Taxonomy API for product categories](taxonomy_api.md) TODO: Exercise: Write a command/controller listing all mountain bikes by series. +TODO: Exercise: "4 Series" has been discontinued. Create a "Retired product" category below root ## Product model migration diff --git a/docs/trainings/commerce/pim/img/Fuji-asset-collection-diamond-sakura.png b/docs/trainings/commerce/pim/img/Fuji-asset-collection-diamond-sakura.png new file mode 100644 index 0000000000000000000000000000000000000000..fb6e93dc1a65306a60148b9c01be4046cb847aa8 GIT binary patch literal 67017 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 i>abK-mJpG`A>;0zJW82xeAztb2v9bt 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 pcq8ctT;}aFo%`SYQK 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 R@WR8;om10NB`aSH{SVFkLI3~& literal 0 HcmV?d00001 diff --git a/docs/trainings/commerce/pim/resources/Fuji-diamond-sakura.png b/docs/trainings/commerce/pim/resources/Fuji-diamond-sakura.png new file mode 100644 index 0000000000000000000000000000000000000000..83a746da500365de405522889aba1cd39e890e4b GIT binary patch literal 61794 zcmd@6Ra6{b^ev2{p>dZG2<`+)fZ*<~jT7A6LU3u^-66O)?(PH$!2^Wg+PDM@;VXXs za~{rj&)XgM>5fs1-J_tos@C3ntvTmfi%3;v8B8=%G&ndoOgULebvQT#9XL4n0njVp z%m=qtb6|L7svsi?w*^NINB*nUjUPCJ>MX141_#GR^YR1lRU+aEoJ4V#Q<6eCK*K?U zhvVHF+k=Cngp-pL)AU+7?p}_kUGh7-7pj-p0jD;5eD+9GYLFX$PdCwmF%fb>u1~!5 z3M#Y2ju>Oo=X7-}BK;ivNwBXka8$c*>=GF|irqsp*zh$JFI!*htl4Te@AX7xcm%J@ z_iwCG4YEOe+-^|Fh-Pl1hsFkn5QwzFk0rPsPJ?7H zEwS-<{sfnI)_?1Fv(1Y|7T&K1dHy1d(@0IHm2bHuJ`0TMWo z_$DnueZa+l*O4hla9xH(Dq;XfjjU+x@avi*O&qnPOAH5S<6ano!%RA2O-uzzP(i2C z9TN9P-uV*8I#H*?%JDYV`OB9I|I%&FOIC>u?}%*>bekFt5y@W_#^Tiz%{rwCv1`#W z?$M!~cuxTLmqT*av0%ZmXcbnlW=j=kcGrWw$?FUW-0pBTB#zteyAt%uD}&|D_^g?Xx=znDck`@aU3K9z5m?8 z7_oxE)V>==xI|7)&c@6PuC%sJoAEAm;s33T%iHR)T5IplK z57Bvjg~;T_4+e&Y@Niqa1NJ%cYJzcYGs82+{cAX!yNEv_o2qbRQHNwS7h5W zp#A-QuZJDf*=4fcr|eIIr+?yRCB%u98onWkr+kc%_dVQ_C)QVw+Vk!%NLauez%lQ@ z!iVFpA^O+){FmWwKj5C2OxQ1q)sV-EN}MtA#R;k!Cr%@)%d--p8(_WS_5Vkfya{sZ z`onD0`5C*R98p0Xm7=81Hi%}zmbGz=9P9_CYk)xWB(LBU%u&^zK4q*v|6b~ia{@&^ zU-kae_OM&CkQI3cEGr6PDAA4v!^HcT(d~xLvugr@RsFk~^*g=HMf_QNkfy0Z`J0k2 z@ScS#vL{#)&V;+M9oES=*w=NLe;^jj7Xi=7&x9d!A9BbjwvUd`uI|acwms4I(=+g#ks74;Idv;JYN{F618=73=H4%B@laE{evy|#p=wWFH4npUR$TB4LBkd zHI=8<)D?3eYd*<)tf->7y-_QBtpNY$^84GoocyA>lfnhZxt^eefHJQnbzs+B9vxw03L=NcnUL~Y!l}%kr&Pp{sH(XpHEYs{16hfHoq9k&>d+S zUzKSul%Z3>q{VBn6m*{LnC*9=M^UNZc_;Qy-M&t}w>P!h&kq4TArn__*E~E4L!7~s zU;C&Dl+~H*3!@ng1$VzdF+ySayRH?ERcE!&%Jb6|BKh0A!1Tv$mp?`q25$4pe?9Dt z?=Y!5dmMKhzV-9UlYtQePSq$!WI#8~L^$6}@GZ@>YuCfFaH^_=kfUoJ0@J> zy2EftZXizlG89+%!KLH0$780zBlue!|3Z94k$SUEr4j^|54gQ==7mrddVJP&1#UYo zB@GZ&%K4?BO5_JBB*E!H*LKaD_-33dL2TVLG5JVJkme3^6g90J!usuuZF60FdnB#g zj|#!lB-(;e@)tYD^<^p2XDHHxe6eePcPI;0A2;~Qosj~t<+K` zvQag}-+t@b)1S(==eUsJ+MrcNA3+End{NXl?JFldNwi`lVF$O5KUY^JYL^C2R$J>^ zTf_Z(T>4E z5oLQ<{hcImy*6ES+60|t<7@h4ROzC`C@kz(h>B$zgkpNEM9yR~3&MPHMd~i1nabJI z`^>glGRY7ec@lWhtWsbp9JwTalZ>p<`?;{HQl@e9PnZSwMlD8~rt9g?s@LO5>qYmO zAGTB1#jBqCDW|QP*53mxwOzqJx2GmPK5yU{8(tjr7Hai_qQJDgD~E- z;m)rWUvb|RQKAxzg8g=*KLq7&v9%|3{b_BT+dn)M2Q-*~$qHav-wPbLzmyzDh4a2* zgi^Cs+!Neu{#k*+P1osN-$%uSTE=C0(ic3ZU>~orN-lm|q{{2ErDsgz}m4^MJ1DhKg zbVF7~yq^#{WY0gmut3;QIkxC#$h$zX`%p%t5Ans@vIRUP7wP8x)jqGF;E>N*cR0o0 z4V1g@pL-<4ZWPY{tU7IS#GEsuA>~`wII1CHZ{z z3%W8`aIb9A?cRX4xXUkAQugm!2~s_>VJ#;$_(}nshFR!q-(Fdx!y_v@x#wnnh!+x# z4#YEv8Uz4UT7}Fu&6@7ow0IA9WDkSxxniN9D? zx7T2;xNPE1QCRO-9%Al+>*H|DR@uQKq@+9XA#sl+_mi=gCl&~PlwAW&jI3z&q_DF- zC^i<;y~A)JQ?i%!@~q(WceWxuFCSn3i-`jM?FWps_C7hB=BQ-!K2-G%bo<;oKmKvp zO_qYadYL91gb5Er;N_HCqvy(0nz01kej67RLtz-zp_y<){IPVgGXfsw3bO6*-Rl0d z;Yoiqz4D*b4aaM3X*oYyL+tuD&hlf>SmevT6|e6l(kO8{FJ@jrYj^0$nxVaeQ_&KP zN)8W6Of*r-pX%sf0a)PMqwyC-6i*RbM;bffB7doR{_e5^et|ew8AXji%@`Mr_41xr zCvP9P?%G=@hn!;D>P)aN{kQL6geteqzzDsV9NFNld^Syl){JQc%XYBl_v6AS%?0s^ zUyj3>1c5_KJ%7_09IYp516zN4;X8F-&=;rNQ9S>t1s;%KyNX4T0e|Q788fF`qLeUO z^Hab1`~LfTJ}hkPi?uWVbb&pM9jE6%P8Z<;cj3IeyrRA9+HseEbLjwwTWi>mZhL@DSh=&Sc6|~&Ra~L*eluim{1e17bGLd<(B#M&KP=|T~=eU8m@uQUHDZ*UW5I!|aY-v65B z??mrk^v{!JllS-S4K-h<$?uE59-`c9x)>6x5fscF8v9tG%zB)!|GS`2Xs6+>Z+tI; zQhFkux|iHh6MP}M40^W~+|R7LWLFKTYz$7M)a+1A`#16NnZ`31 zG>sL1etrPjx3UT=prKkS_>6@WE+H83k1XJ6DPW5H>NN)m20$88BAKO#fN+}c1HqZv zSn#KKI&sJ`GTQ3C{T=>Vz!pRF&5XK;+&g1Qt&bL|4ssf1HZ{QucJslC)u2Xcdu|nK zW)m$HTCR~p(KFk5SU-fc@d~B)*5{y2_+fH(xxPWM-P!Y+ zZ2M~)ks{g&p24I&2X#{QZy5Y?Tot0rle8%#b#Lti9L^gFEE2n_OR_cVKWbgG9Yttg z<@rCQE^%~r4Sc)WCyAAgF-?qrSGRY?hrDPd+qx=+gTzHjm(R%R%8-xhK~QBRYp&LJ zC1jA7x9QY#Mc(D@99Y|ZlL`aBg?TgCo2QOcY39(kWer>duzz$q-$d{&6+11$l2qAT zP)gtZF5li2av?|GNB>9I0ttCVQ??^O2f4bMNuL-}*Fxk!gU_~?j5_17--?WE9FwK5 z5+8VWMifR2pYG@dX-$&@P?(pWe@pp3=I76!s)+eET=FkI6>PqMTf-~oya?O8z9Ts! zBj4&Cl(6^o`ML6|&ocnM+mSfe(Rs5 z*T@0rgCy1$5|l8FtFN!mg+dRkh+!Pv8{-AqxEa`u^B0$(=qoo2diXnosm}$G z^1?YV5+q#?Rkpp){U|25v~q)A2)O~Z(uc`3bk;@;oInbx2p=K$EszNTKy7*BLJAq{ zGX5iZ3x}@-r^8Pkj9SsrEG{UsJJ?abawJ2hVkAh40*rdxP$&fbA>XVcmhHp1l=xKB zs!MqGZu}@rNVay zwFCqN06Ybt5&&4~uo20oD*%zlK#@KWVq4$|0GSVbP{irmO)s{s#aEvEmPMz8WlCPvxUxFfs`a)TbNjPHPIpgNY?v=NLkv< z0Q1$)<+ae1q=3F}z!dwGN~u8vKA$?5`M&bKsroehUHP>k)*w#Y;H>!z2?%Vw@fM5R zCh3mFEVhZ-b&Ygym&~#ln(yOXm{h_K5&7kwiLGbxpND;vL#OMT4 z{UTdCG|1p2S^}MX_<#%IfS`}Ry$}KW*ftRcd<0DQr2qoXC5!<}vE**H91e1;7Gd=MI0M!!)*T1DlN5CG5pI!3l$+x1uqU<0V7D=*FzC})L6fx?dw(qOMD zQD}#bqPAeImB_REV1z9+|B7hDB*MO3^1H6p4ox`>uXByfalI$D)_0fXE_eN&9Jp12 zlOIg~?n>m@?eCt`Kl;tWvDde+68JKc z>wot?UM%W6ZKi4)scluZD4SeI0TSyaDyW(tlZh(9s(sT&D~hflhP3z;q1I81rnD&{ zJ+Rttt7>)PksL&@K)KAnHQZ>?5a%uWFf#J$^mlhOu={#}P&xEJFy~XCa#=`72qM5X zw*Ngn0uj8=uC_bu>B;Z-^wiYN4PP#a(eBlYqI?fQO2ff&XL&_(S;2)}V^`6H8Zol% zp^wsip}M4#AW9O(xTj&R6_v0RWgz2VHVaTo{bg?gsUY6C|JcF$Gl27c6f(q_A&CWk zJ-T$Tvm9_CLxj5&)b>cR$ztBr#WuqV7B!43lyz8#R_g-Lp?7`s_wTpf-EUtep}Sk? z`q9tc(UDmptivezMN}513fkpWwwZ(bI;QcCyBw973RByYu4B>)QB_oat`dIH*oJ#p z6&69e!+*pG&Q(rRAGm$_hOO9-zxzJ-T;)zXd^UMkxN_2BD}3nLY2BZUdh7Y(}gOD%++g zud){JG$YadL2_V6QJpXq@C4b}*#MCp%y#OD92}G&BPZY791Q0b5_&2@)-Idt_u>l1 zK?vIZn%{)`%D-K;jg4AFG;JT`M^T`im$M@kTi z;J+1T!)|o+d=$@H?0{ptpr`e!xS@Sk5PZh3Ic!im(FyBF(8DBp?o0k8X})lJ3YZXx zH!o}H>G9UZ(=#kO8a*d3&y<6NQb_{{Zvg9TgGO^HX?0*)t2_0av2@}rdDLf2Cw?bB zHxB~C|2lM_Mn$|^AgSoP!a0QpkH;W&qe{J3>-cZsX|F}Rnz`g656y5{8F z3vgaPOP?cUwoB!}z(o?X!20#G;-EMEkMNyTwzx2q;q8CZBF`I#2ttucta1maCaJ3C z3}b}{C`TBP-JoF{pb4b-t6a!fw?l}@A z1mH0nAe6lAjZT#~`Q-T!#9zPHNB=AmC4m*B;%uGxpJd|qRub1>|LJQlILa!*Uz(LH zNGi)FxP0;km9QpQOQl4rMgAgEWL(NbiB@F@Bq64p@_plahz?% z5aG*C%Tw_ND*moR`kw2%Lwdh>LQLxe^>vl!Z8~6axA8EiTNkz~+OQWl#1e;gU^-D{ z$7`RgCJQ1gsDvb^uvADInk;bZtkA%rw%s_}3JJ-L^=eoz%&_|9X!b9v^A<7H0hgWqm~ zGQP@-SuhKY$cj@J@a0LlwR8%Jj2~K7Xds-mb-xFkS+)LY-|=zN#W*I$yCv0qH`>@Q z`3^^^G}o|a+dj183U~V#?|F0Sx4L1Ihy3cDU-@^zqcNy_nM4Y%E`e=`Q#xYTZUj5XRXq!}I!l%r{i%}I+#Tgq|owd(~!cvQ*^ zVu6L~oXwx+UEdh42P4_O~qk(+4bV zZc_Q9Lr0U+0V%#~1JmJFq=deJ4j=4iXV0*ia~|(EZ^n3KGXZ0}ejuXKjm$1&?5sRe zXErGj;6h$7fX>p!Zp>;x25>CB8AXYtY~pkXEOHgosHPek;w9@2#p=zuyd)NQ1^k`P#=CFd7driu&OWcj4BwootlIrxFd)Xuub`TAf<4ag_|x zuj#v{X4WH3i?Q=f-TC_Lect3crYGwDXAwOYxM>%8mMUhv5=$&-vu$4%f3>$C?&8g! z#jnafp=r0tQjJNg4~nH4F)}oOkT*$>uQ&=wl;~rHqG_d!mt=9Ueiw!3YK|zJ;gU$x z99rvUeb8W?`v{fiyc~>U>G6(|FSAehyAj>%yc#wqXYc=g<>zW3h zi5yp`6T>^Zq_+l�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 Syb2$kPDM#WF;#);^M3$1Q0CVF literal 0 HcmV?d00001 diff --git a/docs/trainings/commerce/pim/resources/Fuji-stepthrough-ronin.png b/docs/trainings/commerce/pim/resources/Fuji-stepthrough-ronin.png new file mode 100644 index 0000000000000000000000000000000000000000..71c9ddb9b87cb2ca4578825163973f980caeada7 GIT binary patch literal 59779 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%0Av znG8btbOK58Y{b}Lp82@@`pgK{hXfc>Yuz5_tnt1cg&O;mKECVjL6`hoPiK|(#9ZC5 zQWZFC-5441t+jg;j41K3pJ09Rd!8}u)B5ZvIYvL%t*5&`VNZ{WhGqbyfk%GeCje>& zxpPyt)cX|4C8k(%g@i|bZ|I$p~rHikn)?JKRXTQ~CJv-<6@0qJ}%Z2&EAV;^TE3QSbg=}VU ziD?z{r(V_V;6REwUvYfe8br`PflqfHUL}CK;*}E11fB7{SlM=Cs3)UC>XbrDf?4m7v5tSSP5(ojlC(bA zw0LsN?v+U6g1H<(mQ$=G_MMrQpo`?*ATPfGr4*MRta!~eb!_uiKXVInw0lMYJedFYZwDkA-xfAtKk#FWx97jzd8yRnnvTbFK1W?$ zFAvs&27mAJKVeN2C0xW`6t-jzDVODl#PhqmQaCK#nPVyxm!|Dx@IDc-9&mqT{An$} zuy6_X=)8m~$a)zFr{oK!xZUzj71X;3F;I{J5By;LyUX`RA3)U@zn8iDadrsD$2WbX%64B9#{y8&JCyfk65nNuv zc%YJjaLN-nKEd3f%~g$|&cno)KESGQPEOP0^vw5OFn!_TG#j77l-b#P`JCvL&O+xG zn#n+r6`vgpsL3%~n6t^Nf4-nmepYPSDx>kaZrOU^9Fa8^+aZxsT@cDxT|Y7SakS`K zo`!$s58@SfLc*%R&GmXKb#P%=y8Oc;!)m4!rLWK@eXeTDFOf0GsD~tUsFc2!<_ChS z4mn7Z`1pzB__h^Io-n3Q6q$OrAn}&GH`0E}g0mh|U#Nw&f)?74gnC1s#iWR~7Vuuv zyGXw)bh4CDfcAUQxvOwG-(QT%c^m}|h(bwLWqUyod3^bR;{6?b{MRNCY`uTZLiZ7` zmsf!59~Gd$;K2qQuoO z*?*jQh<>lprbM?>XA`BDqv?L~(WtrLPFvtx*pt~fWhWNfsP7vW>jG4Q&Pn+ z5&n|P=&F;z67rAm`hk-kiXN`S?OuYaJ|}IgK{uwbg7J!Gbo{J37^%(BT92o?Z}$V^ zgU{ymlwoVt?}$6sCd~3(WM8apgWHxgmJA=|e_CSQwl|{48Q69H&xqJlm4Sf$4WwtV zgNC75GD}^D$aVl#f`hI$=-Zwjv%#c+KKPHYugkn6S!t==#r653-<37R2d+B-a;Z;3 z#HU$5X8iSeA+RqrYEXJ@Veo1<@3T^3|6Upnd-PMJ^Mh(j50AS81G!s+F?U4(H-`^M zWWxy$%ofI!N@qbuNl8by`J;I4vqOVP3yX3xOQ@l6-0Upw+}^mR1-m&)S8kZ}gC>c6 z8uC{19tHEcmF;HXsUFv33Lj%x`vEFxUv;K5Hhesad7`&2lSE`z6&d|kD9|O;(zJOy z(E&f^Dtp@(Xs&Pa^F1dk_xJa^z56~k#6##1V32p<*d~DOt*`fK3EGU+{JQS? z*gia&vqx5a{aEW(%Vw=t)&qM@w zcmLrzXor2$hb&8ED|JvxaGoubs!if1)W|LrvLdZye2J-#H>3RdIN`3s)N^P4Uip*g zCw6?wVn2x}9#>eg8#O9hZTx>{W*K$O-nj70U($s! zM^;pP&Hy0}P0!VDT&aMIsmycY82MYC|J7>GH4P99nLRQ$Y*Ctf{PI?jgV1^vW&;DQT(Mc7% z`i{~EP7pqy^yIoXNRMXyEISgZH`lvL{i~#og{XOG`p;0*OyYqQ7hnFvN zXU_nL2DyJQV$AH?R#T_>zSS?nr+EioPfe*_IiV4hwvPAU2rYgj*E3gpDz>I1A z@X(*wx_hV(+oFlny3kux}FvsqLICCi2jz%fMRtolU6L zCCOot|GIqqCpVu_-n|Qk0sX&z@vZm1M%pvOZJb)M2?nZ0x{S#^b1}`{hd2Cj627h$mP{h* zUt{sRU|~VtS}#-`J(`J^FYd!g$=ur;9~M@dj|+JN0?PFwV;)rd&%6~CB2)-z9bu>v zzL@O0i@`lQbXtPY7EU;RiawRC_vk)#DgU^hNx~_$5Br&1EPm4^$iSU1YXN?ruPHK`h`C?9B#KEdvJ4n*6v6R=*J^5 z$Nw}TkgoFW*Dpf1_3r&j`r9Geq5`0x?sDU`_%)PHnJOi9J^zT@d?(d4UjF)k+@xqb zb*7S#MJvIoW-E^pxa5J5rfwC^Iu?Y~D#hNumH5?3RWs9V9yErUy=;27s9Vl@T zy{?Ugn$1P3J@EcerIr;j0oGUf)}~vs_~>*kv~Cc zE^&4MC-B7?@;7%mQ4wL`awnh56^qtYB7!J>Ny%H~EHFfjO-;|VPXawWLZ0SJ!BCwk zfAZL3lP%5$r78q>feesh4?n-?>+9?8dc7k*S{U1aA2yG!o*uu5$U-xZkd6)*?0fiK z5b^q+dE~Y9QDoaUf0!i@%<*RSD7)d0>?b0kP~@y5YI^yR0bQNvjm45#|L{0E;?pD( zEy2IXC~C^DVDrF;5E4GTjZI9x{r*i1*VSb}H@h-liV{PLlDVxdMxS}z9#S0mat5W-`9{Wz9+nYzY z2zg?C1sdL-%lEEj-c%!xgx}-_hHJXLcPyzY)SYEeMytTl<_ez2QPM3ibO^wR3M&E50|Hy`u^YimXYl~T!QlfWmUuIvte^;WH zcme?RfQp>CkS3PJncK*)iCwSsZQmRpd;X-qYjJ3GS9dY|t_D$2>hd-ck&B?slnla3 z^dV!DNeAndLc1S!lyF$iUMghzN(+hq*3p-!oR5`e2!>h>9H=({(1z_NsT>Xi$xN)c zAtq9VZy$PA8OCuwX*`7g~IPL?0)-V=A;JR;kHYn2h})lzP&}kvOSmR^s#^B(|M}dFUn1T z#_%V$(c`$pszbc)&HNks)g%G;&cLX}y^wiM;T}<3T7nThyMN0+Tmk}Uq1+Oakbtqz zPY10zfKF}~9lS7@O`W#eW+6EhELB?87s>!LXXN0()oiH}4l)1~zuq=O)kdv+!oow% zXlv1tMt{kq=ySjBcWPSZgdVhFq( z-HheP__Fbz5PlT%oa?eVf@C*1ass_@9$iU-KeI`YoAD-hf+%md2EVJLc87;oy`bZZ z7EYNVolj?|f5P{T5tiQ(#8`~uH7dA539_?7Vst)pyDB8K2GAOGec^~vel>U1{w;p} zA`dBN{38`#&Nzn3JxmACz0W)1ljDXAF$v!-)zEh#PV+y$@53de6IS75X%m7pRb^n~vija1SK*gl1I%N#jTZLySU~Q8A!Y=R*u#e-kdit%z7ZU`?PX7(_wNaCe17C%@1W zi1LtSN*M&ku}3zF@$YD!dwZo}*eKYJC&G?FLTII1B5YNKplmx>&9UZtpZ`S|S z$HkFG4BXvqlZs7!Y#2`jVO$ectS|CXa!LD0f~aIAjw%!bwc5U%ghd!h&qVruGH8Y7QE>2I$ro0)lT=q!q zab4qx?-G}i8W<^lEREA|>$$s9d5T*tRlfW2Wq8p5twqyoX&*up4fV7*Y}G^*(FHqx z37SV7LUZW?*(}PyC8h+F?dMMfxL`yU7Z=ww>Z_iogMWGLqJ-nij%=YSUBLCBc`DGY zEL2Bq9Bo(`+f>&rUrogKH3n_x<^`asuDZH`9ycGT2FJ&pRjD+$n6nX)&qs}*M|SfAHr+@GxKbLOI>u8c(#Nuu(vco7a5AO7Igvy=0?x{y>X8lb#O;AxUEWO=!J zf8MhGm*zL{@qw}#(s)-Iz5fIGO=)RqTSv!t8ZklDU}3(WWF)OYH&;|qQBjhZdZKP$ zZb@FZB4oOi&Ye%IQ>Hq}s_)$0{o)5%LuU8f?3m*_4KkGOd2LEMD!C4FD2aR`C#6`o zJVRraBm3Om6^X8-SZ@cb?&BPq2@zQPh455>|)5t#=@i1M42=}Z!Xa^(03^?j`$9F&Z1k0%Qyx^V~@(!mbhgx4(_t?sgl~a zECj~%7SjcEpZK89xtpQ-SJSwO6ex-f9avdjxK0y~Qh8@yHTIeJ$xgLYTPn+j@m=Ts zLjJ6%|7dAQ4v*yfG(p4Q9a;Hgo8IJ}>pK)RCaXi>Iv61J5C*cm6h2lYz|G_r6bw^k z3xg?ZUOGsxjj8wCSyuG&jCZ{fG5rf`7YEImC* zpcMS(-sU9tSmCTfeU$n2``)7+GNCvM-JHsHHjP{|7BWHFh(rf_7PX2Tlf`bo=?wRb zZG&i8M(iH;r11m?00kZiiK8Tqtj$kOcqzjg2SWSs(vtpUa6q$RL=nf7Q1#ZLe{tG3 zX+FxqpU$+v;Tz1Au=@3ZilZ4}=3MS-BlwB&t$)E>onHa>h4i%UGe<;ulQ)%@eJq1Z z;-RzTJMl0>OTUci*2=C-GTG9%f#_^i2ct1}XZ{4dJ*C}{r$|X>&BbDfJ$o+KgkJA8 z_r^o1nFGy@hM&bR-P;oRa?5G_)m!6e*Q^YNL>ea2{lseRk&Nk<<+SQy%-l!R!gY>{ zbxNmdH>CTh9p1r@&$G85=y$&)Z<+u`+OgG}d{JjSa28!W=u+HrwK^7&kcb0M2H=7d zG$4Ghzf5c$1KtE5=n~bbNo%Os!sdg5VRo3TQgVCo-@cX5N+{~Ux`7^M2z}5gVd||_ z!Tru@ezgveSuGK{H zKlxs%5!M`T5y@7VtFo=lJH_r_SJD#~J-s9UZz8(jKJ)k2dq^A!uIK#}aw}Oj16|7Y ztNYGBKa-p*$&YMMUCqdw+!g-yBGTi&|G@G>`}g3OrjmT}dK<#dIP*A4HbO!q`nU4NaWHm{^(5-LbU0{o4ZEz>jD?7_aO$kAjpehrPfl%kdIRTsLB|y82ERd z|5wRGUEjrm?xp~RWd51GU0k85R!O5iq1~T`eBqCys*=_Pgh)~j%x|&8jo7Jb|Dh!1p@*C>Mp@?yCKw57FogH zgeNAnAh$rBG~LM6%O%7$1E=)eJNN59-nY>Tz_Q!BWQ7(m^+N&VOlX#S*?f<}uKRSc zs;XA6Ke)Nc3N_25d<@))fDSKx{yaD{qxn?gAt;X9jb+X_qsA(6qDh_E-r9DG82QAD zb9H@ONIoggs}2oRcpFMyY|0hJc@Hr$w$#=f?iYX&65LaXY6uP)HU>Y!G+zv537l1A z=7#4=gR}YIuV3!7AEiSVRsIJL;=vOb+-2Xt{M)jJ1bRcp%rWrb zF4ioUo)sc7e~nbxgY;N~6uPvxn)j>)Ugy!haCF3h^%(H%rKrN%@T76=q6TMr@;F&C zFUPMxkET9!C4uz?QNz3BwUbZe^W4tg#mET@OsflYrG{pzNX`#x;5Z>KRQE-{HbbHO z6fou5dW)o9XPx?+jF{ug(g@GSgX=6Hju@_OpeEu5*BrYX$A2ytRXP z-Cauu%zktGT&jCpbwYF(1#es!UATP41VWp9^Ijs;#w-fRY`qc@p5t+#@e@3tIa%y* zJ!uvTjP~i^#p~_E(sX#SZ!*aD7PWbC#)AsKc%_HdQu>+yzHuoA*-E{!JzDs%k?GZs zp{-_qbqw;)VpGe02^unACq@pV-Q@jbP`>U~#H*C}{&}SQieXFu9EO1bK@=n3!Q;c5 zIR-UX+xz$O_4=@rQ3Zo$(exjh+h<2YBWqb7t<5>Fb>`^dK?HphC5_W|qW}C+p#yc= zyK+aiRJjtizD;5T8a7^@uHh^q?OMg#M7=|Ua#&tzwRIz16Xl4~-Oh;$H_j6)N)C#M zVfm#>PqW&^!V1Ur6TP6ORolk9+~kiN<9}1rKQ!sJ#czGi?_qZ?(t|&PfoAwN)`I{? zCh9e(?DH5b*%Q!248I{Vk%;UYDPN8#^Q?4x5szhVKa!&U<|Ww$=QXYTG-cxJhL)r? zB5%u+$D`qb4*tf=zhBQ}4;Q%D*P z*hY~i2UJ}^djkBz|Jmn=2y|%CtpH0YR4*%?oxE34kd2|B0ns>x_PW>Ki#&f}oOmKu z9*fLz^g71I$si|SxsEe%kP~BFer&6kN*Wq6h*vCrDL7~qM{iY6OYrC^aZOt>Eh#y! z{iXHLh9I}}#lQFc)6=X!6APvlWLl}IA3x>uLTf>K{@B8X#k;Jp-2}0pqJ}G8Ku@e@ zm|G#Pi}R=Nlm8=>V&U+k;Tg*4OKIH^`{7aV$A#g6~1eKVq&GLP9ijw_&`7In*%etL;_7O z#i=rrVCgIgPR(n@4J{%L>aG%T@0AvVAEFuxmCV!X&Z6&ml%f)4zKM?eJ$%Mis<65J zdFc|9=+JlIdfn$0+FEYmALU*l<0c)Px7$l4OBiWGV@URb{uF9@BL?9vipBE(R&IhZ z2_E5^pML*hHO?ZHe@9MEPICG=IS%?k#QYsOD|krL!{#uj%zN@M3DA9?ed^myi-qQI z%3PWzLg9}eTLhK@VbtWT8$x*fzTNU~HY&{|SG@PHc=wtG(hR8=wIc@m|M1@h+mTI1Y1U7_0u|r&Oz9wR<~tvHw+I&|;DSXF7OFwY{## zuDgk$wTI#vRcL8y!N2QED!OjQ?N|vMwTt##H-nz-g%P4CH*6byj7a3g>H5b|BKwGP z%EMO;Z&>kD9e5F12pNxz=NtnrEX_c;-8shh_vT)SBo`H*jO6iGs=5Ezm5HH_2guvw z?-?;0JGXiof|uL-x9Q9>w-+aK3@Z9Phei)3MV?Rr+o+be1_kfKtJ!0sC*qqtu5omc zn{4uX$2}}QD`3^KJ}?Y$-Qy;q3zJ1ZHjzA*^E@$S}tk_VZ<^0ZxJd&KashRTR z!1yEUXRoGtJSFeBq#A^>yt|5#b6VafVi99HXM?3nLTnYLuYB(L-xEz8a)CzSUADW- znaf!2e${StKRz*mfe=r~08w7*DNRR!86ZXf;O^7Kq!BiS=(Se>YgL{T7Pt5EV}M(p z_jOia5B4D2!qdM`>*M#CV2+b2Y__>h8t04npnmIAJ>H*iwu5Z060Rj> z3@0v9f0CD0<<^ zAryH6k9PH)X)7yn^^NF4SxQzg)HT<n}J3BAzTMCTKZvh&wFHi`0zAphW(zW8f<2e_l}3mWwq=W$2HX`PM*$ z+`?gP7x|X<2g%nTVZ^$+KQ6Fp0+A4LL;Xq1arO7v+60hw*Td2=sd86vF@TK3M2RPx zvDsZO7EY){jtf5fSAkT8!7P5?g~oWtsod??JE`A4Lo4-79!7{3s%j%x_*pXR+xS90 ze4qp(crWF8{b3IPDWx|Og9LB56S(i1UpSNRo~$OEn#F+cB=m6xGjZ7N%pL?roy znU7xakaOm{_8^Q<6eV_&#Kf2}T$R_eWfXK1sD+JW2O`uT74`QzOoYb_IAaOdJyCS} zyP!O^{M4JUT`TO^e=Mb6>7T5bD+TR(`P9%-$70#R`bs_FegOsrUPR0itCEC$iN11c z$>dw{Ba(R;<=pg8WEY~M!zNOlXW}ime~8583*LK?oAr+{`wI{w5mI&yF04IQefreW zo&yW`BF8V1ypNXmeE`O)ae8UOLqSV`*_zKUf%PPKz7<_}R)`~ZMi8HzL|nirG;nU@ z^{<%?4=X>h@FV_*j?J2X3Eof(m_)HT%(RG$qC5fj(&$q>Gt`hilyM~toOrRF;9NM}BE`GgdI5ks^@32%kKE!lH8uX4OtvMVZVqyrcm17;0-DOdC z{FPM{d5xUyOk#*2BXWG|k0%{|E*-ulIuXqlN_;~(WBH50{-c+bJsP7p9_tIvfZjxs z*Qfv3nM@SX?E+BU`R|&Vv60Rj?{D}HsuX$1fFzFap zEabPdU+;;CT%9ywj7|vVPYZ&L#EAn`9=yRaB{2`@FRftI7a}nf5WX@3H>(qA(BtSL* zT3ASkC#kLuS-J}P{|@{1=DOAoqb9e)#y0=hs)Qq86Guiy0ud&HMzqH2xk2R6D_Km# zh`nMlX4VWJc`3!87Xn$b#2W3~cY^~9%R{N0U-{U^ozrScvJjWvA=D6>Kvo@NlO6f0 z-m=U$V_>i4PojaRb}v4bCz@4?Qi(%FMtG&KqqjGl>T1+}i`wbM4JulzFLK>Bfl|aV zYn|2HsKuTPBc5?<{j&-Q&$p*hl;S7~PcrmTtPfZH#1Rv;EjL@7H?9A!F);O@9|ls5 zPiNN_&4YTaTz-Q!g3?*+q>NO2o69`@iOOaq2g*Oe8VRs-l{u0WR66EYo8*S~(&21Aec(AFVou@;rAR5x%f$`tG5M|Hz6n$!4T;F(zf1+NC_#t|7B-# z*kg81s=W9*Pl9cRDJTpUlo$4iQxIci^N#RAryX%>yeX z9>chFdfL9R$xynmE-dU?sA_?5@E($j9swr5yt!Igz50;J*Mtl_x|cZcHr3t%Y8_6N67Qw9?UjIU0bR5)gKWKZMOpsMOt3-#CwqWi#&$vuB z8i?Olhdw)t94~JbJ;Dwn`Vg4wx{IOZPh!G)s+?b09M3J{0KgE&5t39xw#|l@^jiP9 z!d{G8l3g7)XXRLsU3Ehhd)$~h1(%|@K!57mm>#Cz3+Zq4vAE-!{oDAm5+YJ$jU!o< z<>ua27>k*<{6uk#lz3<3iQgxCy}`T!GG5^@#||6nc=Wdf{nAk4S<*;YeZ7XWbCvMt zqUKhy2daIJ_>$L!@7p^C^W;9))^j@Z=;9?FUfvh4?7&V0KyWZ&7oAqJ zLaCxhGG2BT0UOGiJ$LXtYel0(i!vFuj8UH7^fDI<2o*hCFDg(Su=Q=})W?-rH>}3P zB&e?^9&EmN0EH#w4)h=1>D~9i*LF}>4N!gI{rq{1v&ibHRl{>@o<;M#)E>`q7}X3~ zZb0n?(^K75nt&yVFzc9>HnOlCR^hU&7bM-qjH0WKC83_b?v4*u{Kvii(J%fe^85| za%!^!?FUEJ$ozXji7Qvjn~dsYy$48d)UbIn(K_WqC%3{U4?_lABPMyR>__ipj$uQ* zia8&UX;5nyQ4KPHy9#bCZLhZq_(UrzV4}zbB%kl!i`buosn4;RjcyS%03_z8HlnWe z`eM1@Y0w$?2_PI}o+!uW6_UOUv-_A;#mV>IcYfxA$?n}*Mpv6u^GK;-Fl#_2 zZ%?V1r+qLX-Y@4PzabT`NWp(Mj!B%j4{BlS<*}VhnfL8FI-nnv2mTRT>W+Aw?Fv^5 zVZay?uKjjBD2^6+SDbaxP&)mN|Dd(Mx#N@5`edn!;{INg{Mjjz^g($6Z+>%L1XIQhy@yrv?of1u>G_N;^P2l##m*OOw(;v;D1L+B)}9)+ho zjNFgCpyHSxAK^#Q(y2UVx7Q9)OvgBu)3MifL1Dqk$?e~1`L!i1O%ySJyhNKo(Y%Uf z?24_MgRWLe)-Z{mqZ2yM*0<-;$CUEpe2v42D;6bg2&Hp8(ow5%w{BIvQgpaMzj`4u z%SeOKfJS`QznZ|3@#-?1Q0%8j*^}~+k$p5QU=#H1`}FO*3Wb0`?ZTQ$q?7D!5(Q6Y z>fcd*hM{Mos~mSU7imjK;j)FvGlX9N(_rtzdn1i4Cm*70q{`Z_p~!fpv&*Tv2eN1eKaEFCc_Sl3v$7}$Hf_Mp1*nGT>5f*ddtL;6JMO(uG;)wi_Z~*AABI5# zBc6-e9Ct;Wnl*0g0em8Prs>m-c4MA{uuXTd?zp#$NCt9m(D5TsC}~zlazxoLPVQkg zOT9zYuBP(!C;WaV@B5z_LN<1GA{=yStiDYf@{vc%0XG2=vn1#xp{NY5O5{;_afKM7 z96w&pf9U^gAERJIu$T72dRin&-9+P63w=&>uhL1pz{Mk~M`zLTsjh6o)gg|-ihEOK z7!~scj%4aj!W4DN4Dr(zkYj&LHvb5%ktxCXY>J&aE7unI5~t9eP**v0+|?9UzoL2+k89 z!oZzu4{^HWx8}!E&!Bq(iWM!rRKW1G2K5JP?AMQDRhDBrzGEhw99-i;KG6O>U$R3ODGY3t1Rbw@~R&21C7wG@0db zszFPyW4d|sig}~K>frP+LDNGn(fXj-`e3?X%D=BAAH5k{HlJo)gDW60dS+NSz{e*N z^uGaD7ew$#_eK)rnZR%ACEbuM3PNxNDPv?~=fhji;cOsx1Je>btO(|wFi=~F1Ce_T zd_eA0RLIO~n=UxBn8&a?@!z}SUse%YS;+-&e&fIY-m-UK)h_-uIY2B+4vMz`P@<^F zl=UW>F}+(}JXb~}=TWmEus=e^9V5nsF_ISX^C#o%g+krM28D&IR?~zT;u91A>P?xX zNd9099_KO|q>!zMH3QNynh;k;VN8)eQJ zvv4~n@mXh0ZbzVMqcRe6xYTLlqf{d2Q8W3Vr*RgPiRud*q85b8I)vUM({3`Q2+Vj( z1aU)y8-g%|+u95wVn})Sjg--ztCou12~9odbSvoW{<<7EdVzw9_U_&9ApYMQjF&E>;|QG3d3o?9&mm=<1~>}WmpA_|fI+F5d-aF)uS4_tVw2o#7(tC**DJ1|dz z2)nw~eQ@v;KTG94si^4RID&Wi`(3hQbF6aAZB{kH8X`iO$@Z|xau1N{e>z`5pB+2H>vmW?rkhyjzV zH*enbZlcWWJQb6CXs%~<+>?#;D*K^U^#|3RzSNs7UIc+|jFZaiugh3jH#lYdH=QZt ze;V`uEpG+v6;^P9010RkM+a*X?_ZqPu>T~ps>?cGY!!fqrN8c>^a`XSVTFZ^kO`XS zMa-6}4F5NVbQPFM9s7KjF?rBaidM#f167enU|=Hf0%6(uUS~BRjt52UBP-V|AAQaNh#~|?A{C%#>`J&y$Agj%-qb&!? ziH{t;h4OY#?L};AZ2T2i!k}QJq^I9nv$6Ghc*$=v2=-Kr=JD;#M#CjhEsVyaB3( z+|}DaR%bW24On85Hnob1iooNACw9DMFZuV?z$dL=-pCn?dkTD%aOCa$;Rl5T1bF;9 z+cygMbAr9>yr3E`8Ese{sm&Pyr#B4!$iX>F@_r5UuwZ6gBaZb?g)c;4kATEzPa>x5 z-^5;EOw5h~)!yL)Gg8OK8T(ddsFQNlfKCMVz4+nlUy@L2AS?`qNk_joAHNT{B(}4& zlYDV!+MX0X;3wB<`|(NeX+p%jW5ndv2Fxd-Z=Yw-zq`PLxg`$5nCzXykId;3^Nwf` zJ={uZ!1z#d%|MZfNJ?Pzv(AlQj@Y{>%W;CWFTMQ1=^w291+3=L^vGZw36#+9i)KMX z#gCGHfiHdDwuHg|V%8|%+?TvOL}8kaj4;Rmn<_$_h>koY1LDuCs{^o`j=l|GzSS%j z84ss2<3$!Q83dBUudB=Byd9>j8%}Ddj?Z(D_At@)ztes+9fa0jD)7qQ^-Bk>sugg( z-QC@9?QCyt;UFeu=UyAc;DVRZ;P!Tz!}KpxD!WX&}SPG)81ap3oZ zyY(%fIVJ`hj%2N^<%rLqj`x6~9g;G>g7OF$N&I;agT6Fg^;^QM4D7PNFe2Gz*;wvI zN7Wo~{Tw6+bO4*j;o)KU7AuWbL9iNXO}qNPe7OtWK_DdiwDvTBO0=E9pr%$S$Qe~e>1UKoCZ=I8Fx!SNrAuOo(>`VmAKNdXQ zheSL;0gC(i$=OFxx@00PBf4RWr=$?cGo|FMA*!??7^`V#pTZ35XeRALbIc@Xn2g(|EkgocW$51ve9RMd-CMj(9n(i1e< zY~~yuix~UyW8V$5Pmo9t*+WB>dbPj6#2voa+tO?`tHgE~-T}F^t!?c}?Mbk3a-Wxe zRdt}FV}+e^@(|F5OuGX`;y!D~m$TSP=YqXpE)6hw( zP#V~?j<}OeBL+wfFeqUu-M)10PpVrVY%Rc&1=xz&RlDn0PiECQ)7}03W8nc^{T}1J z)%pRSdHu^Qu>K&0?Uq7Ob0jnX@9hQbO~?s{Xdp02Gk0~Z+3HM%d+I^Z4K2L8Oq{65 z$WOT+@>zORN&_YoEv%KJ+744Y$&UBZeA$kaO`B7>i|m-8c50YSd8 zm{cCehiX5r1Gg8v@?LODRDAU4#mD5H=f@aG*{E$gQ1`%N0{@IGj5fMZd`id~fSAeQ zi3tLVrXINBYY$x<9I(Ma?DmkHno9nV42SEgQfLwV0$2yZ+4f>0lqFReE+bt%&ZgCU z_#J;_S}O&@Hv|eL6jG9b*Qa{73mg=Fk|u5O5@SFyLm&_ga8mD`X8$avN_e|Q+JT9J zeEY;<$hgJ&4hWXg8l+IF!kPB0{g&in&S#&f$Nyg@`~kG^p!3=QO@9E|#FsCo>%VbP z^?=i&udn|#H|)pxnYY}Zq<49brTz!}# zK)17X{8}-6d`bu()P~UUz;Q7MN7StYG(=Wm!CABI^t;o0j~wo(C>l{$^JmXytnZF* zXBmO8pkdkB?Ac@ST*X3lX`m2--mfDB|NG6fXFM$b%&~y0aWIAe9k1N&;dlF^_M9I9 zrx8?OpuPkRk~vHXox^vBZATxVui=6M7fL7aN_3}N0M*(g#ld2&8Q25CSM(_KVj#S* zpduPJtpD$PXO{i;vWBNH;?{E=3FFJ|P@v|&JAQlQ-^IotBG)6B!7|$LsoLDKUf(Qy z2A1BN!gAe8!13TA^}@D=8PuK1F-s9VII+Q>$=LH0F3@go+*n``gh0p#@HUvK6S9Bm zv>s@s_U#_1X}x0M!Kl7v;6H;+y}$GK7AV!Ngr^8jsS^DEqW!T`8XiKbBDjkjLAiUi z6?DT6!40uMqC95y?dN7P=SVq9+2DO_1jVaWYP>sMJ zLR}0N!*(FlqhV40V^L!^oqG-90JyLFczdowZv~9w@^h5%&f9|iNr{Mx@=HjJ?VEj~ z1#r!c2mUI2uo%TvdKP2&fT3bqI{*~lXN9Z#H-*yVd&KYGzaNC7q#bko_NRg08=m}c zBV*%1C|zK{?NZ~w-`V)-LerHo92Ozi%EPt8n4)xI6V|Kx97wD11t;%We)#obQZV~n zp)t?K_wOiBhxwiElHHXGhz5&NsvdB&G3%}6hs_-LXNMhR`Izu3w@PGEyMQGq+BuuX zf(=IhPJy=zh}Z(QjFbsnncyeLlerhA6sU@ssl);v&T()w)4|2ifBQvYQ@|IE1NwvK z76FJGZ#i^OG4=0wWlKC3yy0sllvU@+d~UkaO#T?n0I2=|b3+#oN#|~S3MLEZK9X80 z-V;ANJ3IZrMBT0iu8}_-k1e-@uc z1&cD2y>Pq1_Fm^6ElT_S+6;6ze&+{tc@LiVuPvXSonbIterSllm4|@4(5(sq%q9b* z^4lAQHh4G56*TFmrA}jiy;qVjr1+}4^A#i4^gGRa(0Eze* zxCy{J_E3$Bkvi%wEv-5H%-f>lw#fW@*aLh+XY((65NvSpxjhWlIRuVc+S`w+2HIXZ z@NttfhQHuGmD_TN2c!^AcQ|PRr0(eGfcOWsayjzYXuXYp!O_j_&h7Po`!)YhyN=oy zE9l+~JLgt2F1`~|-U)BnHy!Ksb}IJ`oIB7X!n|RNfh+Yxu;xeKbU1hjqBc6s8z^ne zK)tJ14MJ9`0c-JaSb zI18a12Q?iNEOHno>sETGUsO9Za+Gv@eg^&3ZI9r0gaYU8#pPE1?XHB18PX(4h6rUYS0xmcp?kQ7 z9F$}h4kC1Ol3QJ4hDwrTPUe##!wtz5B05Tr43Q~>e81QI*1hZd{sayxQv+RHTLi47R+>-ymb=OyUO(ccs?50%trh*~5rC^Qbzg690irc5fSmI3 z2x7CJoUmQvf_QQw#2MwMi6XxCC2?zBU3)a1=1x!1JJm_K|P6V*J;_VQe5O&A; zLX}Be@k+GZQ`5eQ$~-vsvhu%uE@TuMY-RMoU-y2I5T<4 z(<+T$gEUCeSE_^XcVkl%!ZeAb!&KvR*?Tka7ol4&Yp+73z?6=Uj|T~8hpRT=-=R6f ztfJ0-VHsmQtHYTLQ*Cus!26@UL!c%EPa?q~i9Ln|*O$x<9#<57hSo<&Z{#t?G;qD1 z4y01AIVsVwnvrk^E=8QYIKtMWK(zPX8Pzm7tEh(lSwD4E)oO@D!XSW3189TmjPngU zA<%OY!p6C$gwXxtdZA)#wmY|iM%2TD543?8n(l)SHgSKzX%7=yM0FnVcJ&U`MhFuJ1gKePIMTPSzZ$#z1#hkvo_>#H1SEi_rfw&b$;kNZ1^=G^ zQD5RC@C6#lb!}}M&}}HHa2>w)DqVd*;LMrFcsq=$3hyY$d;d+IllHx5{r$^RKE38E zxILcDCVUq}YAW+?o}Qtg6y)yqQ&&;xwQ>EbF~DS^7B#F$_$*4|-4zY`-i3f2fzU?~ zZ(3B;duIqH4}p>6BcS3}FyXkN(Wsm+p<_YCZgSS4Ig6LqDaRRzP>}-eq zVoyTl=uT$!k2^yjII6{fWkSQ|)5OHh7*b?pq$`#ltl1z+#x=|tkvQnWJPZ3#CZ?gg z2)Xig24N^e1zMBX#6;9?cn-ag;jO2?qjJGx{Z&>lt$;upE1I?NZKk^&C6LY^yZ+W@ zh2zqE9BM2Ig&&FRSTQkfMcW$iCxC3X562F+gckY_)1fj-=x6m~EBVLn1P0DYuA4+QLF3jQxvhWg#-}WTlVE8I{cD&w5{*qinALR*Fr7 zXA_c=Cd%BXRJEM0N17ZDio2F$(bt3UeBX*XRx=8++6@O~ckc$TH79FovtAgWl!V<_ z*+_E)7ef$Zti#9t>Q~;zfiQm!Hi^!qA9=P*XtOW43WSBNSH)+rPP{aS* zlmTg1Ex8AjZOtTP<@J>wgM~=>xO65Yv0S$Rw$bV4r5~nP- z1Kf++(RQsvHTWhHm%0fm6hOv!Yf(sP3~^eN%(`{!Kn4^FDU)>rbW8*!=35Tzvim5F zMTW9X^7tRW`zoCQ^0&G+s70>_KRevdM0K8Z1oe ze(2u4yt_C;S0E=qCgz~Tt@n}EqSr3BlfHP{f;ESb@|Rby^Vs^daV{818V3>S7X+If zI|fAW*hIY(6K>)U&qhyypz;gq=Rl=`H3an4?GBtsz%rXu{a zjC-*NCQRAVuIm?|C9SO|pdq?`na*StHgW}W++E_i7F{Nnoim=HOl^S{3uIkFLV|QD zvfd3ItMuP(Dxa7)wmKsgAFQi?rsIQOKB$RuFw>+Ol4nmGC$0{6`D1Dn^=iG#jMLn6 z&@f;(Ko2791{<3yB4lV!$_bR+8owx~q!b2TiBVs*!>ZD?4)U*dH0+Vxus_idM!>W= z)D7pt+xcb)oYG2>MlB1U&R|EKSSD?8VfP9tLP`BMH3f{4=Y6gqp3eX2)wQI74M=}| z#%LBggR(=21~_t)!0CeMb%L+DfW%?OV6H+q`BWPelWQTHWn^S7ULE&iIUdMI9305m zCnPU&{t+d%6$Yk>EPC8`bTbi6y2&P2FudkN#i!iwoGzXm=Fu#d^34#>;@M)JnNW!= zCYVnP)AX2+b$Y=tKD)!Mc^02H&bn$vgP8B*$89+0u?jG>SUV`ySmFIbo_`T5hibdJ z_cm`zU<8pX5+SVYGWJd#+uZGhL+f?mGL(fQa>HSRgO1qL8W918XWro8s;k^-`omFT$Me+H_<5Rv!1VT&*IYT1Pn-bg75ptoxE%Ev? zP8fuECdL?H$|>cDhH3iZ&4f5>&-{s?F#*5W4-vZWr+u5oPZQ%e7NVkuLJC`<^DSr0 zOtpo)zV=dHQF7WLkx!nx2E8N$o{J(OV_yK?3i zHhGNRr%#eN-)q#f@FLI(M{t1|$5Tg(XfF&3qGQ)@JWtE+~QI3j(kS=(bkhOP@*S~g;CpBEl zX2~<7?G<)za!QP z(GEu2mHAG;=x&^re}belI=hlkTB4U3KaN#{Otu&V_qpcLZg`c)rgxmdRVj%c059Y=0ghWIgmXAp% zV6@5~4YS~GfAa*}mjDpFy!e6eL2y0@OhT&DCyI&)H})K zrWeO~+DH?>qXPX3f!ys+gzy4>mrye?zX+4y;@m`P=kMLAC`Aum-i@Gfa_Ot(dMCNH zAyGY7effp1R3L~ZEK(j?=4ubemH=b6+-t#J|@WXmI}Sc%FpxpiPSzj zGW52q^jzInU;iT_44ZpA+CEF!EUAY>|IppGQ}4Gw{+OlHB?dN8uD5QjbljP0kQB+6 z&d0L;fM!x$Ph7!{T)}{%WA3%xksD|=A62gZG5AC;_2$#U!hWBmfVqAFuY8T0;_R;n zJ*EH%`cF0~BP;`=q!nOpBrAQkH7Qsdj?*fW1oRnArqLLsHkXqr_&>{ zOv9ua_X{4gS>@RC3uKuzn0@o3A#-#=+4}(^sA~Yw$#(yl{$MYSmV4wTI@m z{2o_z4#er}7LyIF1s@%klw@Cl{<}OyAs|r^5wO?RCuzy>ag2oXn#~rTcXE;hO}wAq zTTA{}eTgVshH0Kus{R>&@%(dkRc8YOe@2RwHqVd{{-ss@y1L0zBM`FJrawzJbsD}{i5POzd6udnTb$EWaw&9u&cV&kfx0fUh>||dNrMGlWQ`Z3yCsyxTB&x3KEiK>}9E|fv{ONtXB!A|4bfYxT))kI+1e>EtY!7ADT;K4Z_&O}PuR z6<_mtbhOKRb7S-(RFjoF7wxTM^d&a128q<&7%t%m)(SnKU1MVeq|+})p>DxXE94-^S)K8*oCHaAMf%B`eJWnsrqcXK#~qz^HsN9AsD7ov_PFgVjzWweM{tFPHf#kr zt3oyeh0f>YDR!(;xt`*rbPn86BO_`Ld!%_yu)=zrO@ZfO!1K|M{o$g!daDJzm=#Um zMtuasq+%K{0KVfNYRZe08%8dfN^QW$pUOBTY+@}ab-SsnM@qr;BHv-F_eq^yUFZ_3 zXBbOG8B5$U;$cNEaN)3$%@>E>P2R+s@Jq$#verFLc_z&1X>r619|G5sg#!EX|1_wD}^I!mqyH7r8mwFNXHyC zkl>x3_qVXL9D)(If8V|qAV;2FUJqhqQBrickBlnG)b#!$2q9i4ORwpJW4=*f`p~06F6}@U}YZEA~>h9?|m1>+T z8{a zF@W)XI$5d=3vt^VUAB4BNk7gz{Y8IXusCqL6NsD|E^!m7qa(*Ns3LfqW5H=hjpTER z8`C?6d#+|e?HC*y(gSi$AP%p`X4;0QQ3T7r;DutEms;})!7z^MtzevRw{(NB7Sd^mx?i^Z<9uZ2P4E zBfcXyjnjWyoStVj=VAToYPmo0Y4W0c%!Bxc6Kc)xCLz|M4sZKK3gUD)$lKlBws8DP z^TI|9}=WN5t-9_c~MKzP`j#ewVA_bl%+q(BI4>275Zt0a)F7`!>Z9{+P zoKzEw8SweacYnag&B8QmxXWciZS3XIRQlN46RJ#=C&kYrgV?FxCl7ra>wAu0&QYBM z?@5B`yOpX@SPBGf=;c@(BiS$w1EN%0+n39nELQ*0H%|wdG}rF@hV%D^dIVm_Z4%G< z(qenAn0&UF{7#76I(QQ6#)uDfjvV9!9rnaIDBa!}zJ-fzrRo$0$ihO`=)Pq5lj35> z)izshb?)a9~ake1O z9RjH{Q7-?M9rL>RNT$gyVFR3as15(J`P&g2CL4s=1WO^kL{SqXjYOF5zWWp3nR~`- zUI_U4CM7@4+1YuN%oK{OLtfq}dB+dSNB+&)`ILAwaMUFgQ%`Ft|Ix2?Tc!8VK&egS%S@7CcA-1ozD|4$*XrIxs;kOlV~}IO!NFlGK)_HqI0RidIQU*P6yS+~ zYm+&!pqMJjgW=ZUsNkrUt6fEbC+N-)Jy$q5ZieT7@Lold9>7CXHw6`0)Ex{w3l9M~q!?b-(8sPYqE$a1jJ@_&vBZF_> zhJr$2FptbAaH894N9Q+bhM*Cv>QaRLCpku04e|`3DXBd5QYH=oj;4jHF^1l1iEEE) zc_JUgNv+{C0YrBGJ~M^*Oz-%ov@=quBDxG3T?pRaP?HlPyyqX)jq(5Q3myjNzyJ2% z7nwlW=imJw3v124hyUw>hD`GO3;$!u>!yEx_}>>gBHibQ|6>V3i2k?B|8@EQ^Va|C zDE_~(`hOk8|8D&M*H-_3+WO76L}*pVgZI@#d;GK4blNLtBmCVbfmZFyD7L(Np9LY1 zxi^^LfP-ubhXkBFDKQeP9sZVlc2tDu_KW7K=*@SL1HN%LrhzxUI99^J0y$<9IeqT1 z@7u1NX`||#3iB8J33$#hQiK3rtmC^dcnG?blp<*)7@>-T4hvo&F~CNTHzXiMnLb6i zSCQF7k3@Mo#6mA`=h1gXCQt`4Q{yI{WH!;x?p#1j1=jjtPVd4UX1!{_7x2a2sW=V7B1UoDZo7X`~rit{Q zUz9h*+y&zXBLQmKVqhwfW5)l`w>ABxfXF!I*(O5W z4MG(>qcY|V6u&4IJ6X{p`5V)pGw(tuTY7OMn7#)$_FtfS*A2{?)^@vz4mgW|OQxmk zrliWJy4^%%etxad<2G}$LY-Aa_TZ)w|MA44Odx}R_cJObfarstwsX3FfV$(|(|I`J zXCuSBRr}njeN#HPw)ViWN_OFLt>kYO=5>0&*F`;J3z6=hF%li=nJ(Y3oC-KoE2`q!9WV#zLKws^t&2f0-n1 z56}}7^V+or9((B6GgEjoWD^01`jZwYr29w7qQ$@`vAhTF!iUPLqy%*7<8^f@b{%^q zi8d3*oqfL~UHI)zNA4CgFjs~#J>(>6wWwqQN!*30uO!8gEA5F~I%T$Fsmb~H(&7I4 z_>m;G?u?ZHrFxDdMX`r>$MV12jt(g+pkNK{LJo1e+R$Wqe*?GcDHx(Vus?#x$CT2> zD4vN-CN6i{_Lo6JMs5&G#@jSc;YHaBwAc80Rr1N{^m{l6R##AqLpx5)i zj6)k?cyaq`rn+jp%ZR=%+Aru0Ytqq$Bp4xWNerh2?Jsf0$T3vEshJ%N&TM+E z5ll;tyf&*;Rulk@6hkMQ(?d2@MmjB_l>|j_kiBdSe@auFQRGS`ZNTbZQt__u^GuN-bZ~}H~KyCwC6A1HY>B* zm^fx>vm!NIO`AQZV&e?EvWlXgI6ERGR1SJW0c4aL(I*XT2Qm~ytUJGZ+^3aeSw%&k zbvX{h`TeC?$+QTJulX{b@LImR6AZ~Lcp52fI$KrX`Wb}xWW}5v^UK3qlgA!>Oqe zL^vKjkzuh-*t+s{EOXpOH*bu(y#kv_hGlxI8gr7#ANDNO@P?!o100KA^W%*U3m*hC z{=I~E`O`3}KciJ0*^g9WSL1|RLCe`MbP*zvv%|^ktwDd!b0=X9ItgD6FgVG3|8n4C z2wqs{NtB;N{U)s=+lmVwc!yqAD1heu=EKm3MY`QRmmV|3(|TRb->r_r`jNZaaZ zU*7{D)s72C5DC6+9Wm!`&r&Vv%i+kG2$$=jprBY-U6rfV?LRu=Zft6*1&sHu<$D?S zb7JW5zwevr_Kka&mmAG-Xsov2Ra-zC#6*PZkymuDX+aXfO@`5^YdaaQJ#g_E?K^}R zpM)9Tf^{VUt{vOFHelZg(!S2rrP@ok`xtNzB$go;8JB`6>I**U2Ms)U3?wbujG%2d z*ozoWWMPi!T_OOHtMr z@6z_z?eL@=(wgiMDDG`A!AuncL&N+<`}`Hhf+_3Vr9&V)hEElO>G9>7 z5l(YgaqAh~x*|H`4qK^Ha?yj?b-B5ASkNw9Ds4^7MKwH>MdvXt79KeK`V%0_XxLwwp+ePfc62tQ|M=TBMt za)BpxdW;@7jn)UENlnt|;Zz-H0b?BE>qdfm?LIYfy7@e)!=W3`*ELZw{3#mpMW4(4T}oedBZVL~NY*n)a*YNYufrwWi4c)Dn^ zi%+Ll{3Q zJ&%a}{l%|)?8lX^$N9u9jsBRuV(yyNYxU}-pd5CvZVI(rMY5v|YtT0_ZSVv!xGu<1 z7Jp1E8BTwL?xP2MUk}`h2WH(V(vf{wePVZ*gIP%{qSX4AMR40H*r`@ZAWNo76I`S( z>urWu1Vw)-i7cH2{d-0Lu5Ml79v>e+IUS;TW8fF*dp;%ab$vqD*w|>iBwQj4aJIje zNf5>a#S)VxVPWAHd^=aCN%0?|e%=3m+bI==!t&R^Co2S4E zzm|MD?fP9fE$dkql-2Rd{_sFbF;bcNb)xJC=Dmb-?efr#4YT`MqX%NO?`gwE_X9@1 zul%2`T)e!7{}YZkKtXKIzZ+k^Al3Dw&x)nw`tn8B?yLgaAR52&MkT(wOf2}OteqDf zL};EEoBEVR`-O>U8kMZITmF~yiRwwxP&{w?n0SY9=Gw{wqVGNht{>NSc$5EHI97Ad8;wy>%t zD5|_>pU0zQW(!Mh8Y47D6xkyA?M!<^cBlB@=ouyiVor#DulDqCbyDdht{J0Gm%=3vUHA_M@`_<6EBH3*RHRTX`8!mcefd|g>9$~PxiKqJsZ_`c$ z;P5T$^cLup6J-HU%Z54Qm@q5XA9#$V7$%9nK6|?ETI-9axoL}vcuWl3lxf~T z${3a8d}oQ950%bq2mg*F9%GCVC4M*p_lIQtl|Pq!>Us*m&3QF|K%mgq-F4G(%ude( zb>!EyKD~*IB0u*}_rJUA!hK1(cCf=##m&PN#hA4UB|pSqLk2-{m*`;Q;ube0%R&zuSqenKdD5J7rkXc3bS zu-hOGLCln>v-c4>QCQ%FlfRJ@afa(t(N^j3c<6|xE&Xjxs~QcT@xB)XVE2%_5MAi&;={ap;s6S{|3m|zyPuu#BcEr!4sON%O{yZ!CF0bGbcNW%#JGGz19qn^(erePf$}|$#LtXf_*aMWqJhs>~e?6>! z0q&v)Rx;$MDV}CSp3{NksiSr5d!4?1=8kM%m8Ze%DKgw?ugls4RZC(W%R{3LQL8iD zb@3ofNe~daIaHxANr4ka8W|FqY++jKw$`eoTfFNar$nkS-T%XV?KaPk!Nf~o9xHIb zH?mA%$an4G#ar$*aulplnGbe^FPBglc@M7m-g2L!K8<=<>iU#E0V**dcV#D6M*w*N$G3Qj^%<0lhB4&6 zA<>uXvYR%yM2?sTomz)XIY%tIg%$0aijcj=LB;D0NailwpEoB%_;JBW8iM!JK#C0} zg&;?duP+8dC)8%f?iKi}JO&=)gnW2M4C**dgb;TSpK| z9n>d=ih8{pO=@ib%hO+x5l$=UrvHPT2Q8ybQJl&SR5wm+BJJbt{AlUdT+B|lW{N0$7SxQNeB2C78_pc?Dt#`DzXkJRKxAEk-p zqmG?Cbo;Gb(yYN=ei~APqBLdTv(`rK9}%KAS;U&(dwuu95nxbEqGKejD>zX_rXs1q z3BM8OKq8+Ni=5B4RK)#mlUcTuwooOn;em2fgO#Y4l|+{0*x9zpuy;@n)f;o$bOUB-yBlB4w_$BX-0?^zjo ze!h;{y6Cwn*ZNE@&8EhL5%UCP<`xiywI=9Sq?>4LN5?DRm;#(WoMo13mk$HRLV zef(|SwDz@+r_*wOoleP4(-H_foRuWHhBI1c)LhosqD~K^qB`IiA_pJtt~4sO0ZvAy z#cX6x8(0$1UY0r5x|HMjYvK;1q#sqcUo;z6Y5eUfN+eRXIaO;mwr78UtV1SsM{w! z(f<26mhUk_*c5*00*2k$%2UL@`}XUtMVyJT%$JtoQK2Uv=F+82f~+)HXDPzH5oG7pBk`c-DW1Ndr!{FHb>9nTt(=MNyc4W2K9;1B6A#fW92(%k z>#2Hx*&QA_5Jk%ZCt&*iJ;3}ZSkp%Hn1XFGh;#tDm%u|_4HOTpRon8!=7_IpIPjaC zuFkc;Z)4!$1>#L}))ju}Qv0cB%C}>BG;ge7kSMa3;C8(~^OZAs)MB~IpGNX_DxMdF zwQ7x@0_>+HGgOA|bKfW6M;DF21T67A03PA2nS0_kLOQ*H@PaA=>e+xPJe$Q16HAEH z&zwm-aVNZ@uMQNA4h)%N^Z=py%1ItY04V95oJer5(a@f7J$;XISII%L1wl^bMMoNe zZTYK6;wHotZ_*WteqY`%Mk?cfbhmRIOE?F@9WXoa!q2V?)b=7TU-kfGgFJSynzI=} zDPqkSu1!5)4My%oiu_3s*qVXS&gPjnA#6nVw}Wa{jLN1n1N!M}zZk9a#JKQTD{P zMwzBF;8JaXF7@AeoS6uvsW>%5A|zy^cxD$_dQZinM)&)+t|$%xT)!#0-EKZ0?ImAA zJ?aJse(>`tq3JGi9>ns04Mq6d7z-^6iJ>8bB5TtYa*oO{CrJYzAi45?0@Ej=g{spg z%st?g*2(!No)xP)sCR80lL6rThhw2#6FwP|?xXP@^bQLCc)nj@Dx_zEq_iu6I4iAk+PF_kJzRWRW5DG~& zGD);7h)SQ6WX<-oY6&QQ2y}6mesK%I3cId6^!qbyla5ZvHX4!wp{2u0mqW1Z4Zs7$ z*`6nzt`Js--1@fQ!-rS)_Kx}LoMARSwE9HgxS;tLSZ1;(zQh1qd){{WN=JLS6G`ItgP<>Z6j!rxegXyc9D z%7zuTRYe2UhhcU2&jF@>w=jc}c*(~te`NTzY8CkEytyVC^tms;G&n-m+{YA2yWVfZ zf6!694<}XAP)mp0mUY`R6LzXSe|d{#2wPM`rc?!v5}!+azUJ*`87;xkRP4#n^oZDT zjcD&+|BXy@XQ6RX0s^D1uHghXHVe>UM%<9K5v=!RTX&cLmEYK{N)uD$gQ~U7#m?21 zf4e))(|$B*v!Xu4iXT!m&HK>n{_m@bGm|YccnQ!&Tv*F=n zC;4tpFm8|2&b@cuiajJIg|7*{Y4oAU&=ugqR7jMno|Xpm3E|8E)6Q;l{z1SKmaEG& z?5wc*q?j{hfrtTMwXHEIjx&nuuQz9!k}~s~b5Sb6iHStJt5b^O&Jy>gFQg=aTnb(m zbfE-eu|HO%`}g05zi@dx=gY9#W_56+PaCBlSsQuA-Tn6sPM?^SNBd1hwY0R-kKRNV zw*Me%fff)mBMUikUf?+i=bc!QTLS5m-$roHz5Sa-qN>$z5uC6GiQ*0Xtt7V8IK&pW zhbV8JD2t-$8Yo+#s~(Xe)4~9~{SwaG4K6wCVe-Oc03krJ@;ic==?1eW)sCyD3>x2x zq?Qr6XJD<(7+*sTkzVMZ{(9LS`sC&vI{qjTRrF5xKy^*+*+0S%I1(YWCK085^*e$E5%5bAHh8hjfw4oXbED4wfiqIPFnCW1dDGgE zEamkY-QKxXIskN>c%O~xwPh@rWhzRU_qMvgg3;Jg0AOMZrP{T%dVvn438UMBCAKmK z^8>!M-8H}Dx4*=lTO-`jZqDCSl9^Wtc|bxKZj zgH^qLPPFbsx`r>bF**h)_dPQp3JRMpt!PQ#ruZp)7?Ojo)V*$)ahh;(YIR$it%Z%r zP$ayr;W1i1Yuj_u*21{$ERXx9@M2X-vrK4K*6<$cFe!};*Yb@En)Q0N=7iZZi5EhH zNN4jWTQ89=bdsjfk{nUn(3OlfPOJ19_Fg&uEqm}8PFW&m2pm;KO_~~}Ku#I^iwMYA zAqMh+7K{WC-QthvF~qvwsJ*WCS7HzMF$y)_=&}aV?(RB=WOz%>aLa8jgkmXCEENGM z>n5{A)Q@M|uHFlal#G{rAe<>0Tn#7p$sNxrd(X+vW^k>(th*;_iY+l9do0>(pE1$T zs~NwH3qEy5^5pF`%p)S(!|0!DovEV8*EBxxd<~mlbwWi7c-0nA_lUQ#h8HJkm-O7Z zuFC6H1U3gkG0-vP&*~nxAg16T%V@(if=8bfbK6{Bjn+nI;>{iR$JuI?9X}4p8nX%Q zo5Ff+k@V&@Dl{y<$@L}CyO#$#O}wC3b-RYsFBM;{;t&e6JpBE31RQh8%LfUz4izotY4jspV?^VN0Tv zF{o3lfjPgv^^5VeMy%Yd3d@&zg0;>DTWX@YVfms{4F_#Jq3OM_f-Axo2|9mtiEPet z?7CV*ANEKLvvbz!SEU|yn0#VUGTPb}UM>t-Hbj}$g7n1`s+*cIROE)tl0)&^bn$et z6$Yk%?j2*fsfje4z`EmqV>Cx2FK_bu`bBv^JAVW5+s8qC@-P&7C6%1(e8}E~hV*9z zo>~lO=oDzDbP47jkj9a9!hh6(40A&#W1`Zc1HFi9?`Vp*EsGh|#w>~D5X_NyU1B(N z8T;D)_{h}Nm9WK^8W1Tj^o-0XhoqZk2iq5Agp?J^qqQ2|M$DNq)|T|7W2Cn%IPp8fx_hUG0UC$rP7=%I!TwBhPI*zSJ_gIefcn^{mD$pWK4uSIi1i5 zaB4Dy0{xr>lN09IfSLHut%gwk+<1{E5Ts9JsTZJ;MH2Pfmd?1D`hpx!+VMMJcOg2mRmy=rv@$RBB%8UdBk9D87c>q zl*U$`q(DsC_^b1H-_2jTiOROk_Krl8f~a%W4VlAjYtf1M;(@{Tl5Td=MUe<`lh9jti}fiG*9PF&L))Nc*Z-byp`+<2Q;0b_e68A3b$-Zw#oi ze(Tl68kPii^u2y&%M;r`+y2Es6VbdoU#9AmW0Q-|Il(rKe^BKvf+y~kX@T>3YacH^ z(+tict0z^}A!}NPrD`6{%}1Y*=zlic+?1F@Bg>1-hn#>-F*?ODLO$LaiB>wbCKqTOrW2))4~>VS57*Soy1$F(Xl1n} zCLWS^*E_XN{W(~Ko0wYdZx<2DELaC&YrpF3Y6z8)2roEu{Vb?2LLJ9Pj>RVdGJWq! z+UOvVagiEX?pP8$UBK}9!!`baCF-%3r#csruS!u218!(atJJ-tZc)$cGnb^q@XYM# zIC5^wAF}jWGC|pP|5Cp~0{!{mPc+?BGU9?EU(joKMzaQ;jLt~k3OFf@yoe%QA71Xy zL@uE<>AV%zE-Ep&TQD>%Bq{#&3-l4v$G3E4Xe}}zjG!K%M;2nB6hvgg`@wSUdxMOT*3-^NXKC!KAExxnA%7H= z+8%v4ijE0tA!)i4i62c|YP+N8W0vIlqt^R8Y2p=GQwe1tMEoz?J@;`Gy(!{VRh=J4 zN}MePH~}RGE_=gcl{0me2_+bwdxGa=Z^R1n8MbEVf{40_y`lgc)@>EBB={oNWbT$o zS8oC8hX%{x!f&c$eP**{Bcy1d{HRczivC=23OaA<>!ohm5$Ab92T&xd$$ZKW z=}bsdXryG4Z_g0q`IRLVXWNMa^t~uYx2z{BJzY8mlidbDqgvUo2a(c0lp@u1wIFkt ztnd6qV99ya*Zaxr=zDEj6K0$Gi759-H5CxGWbqnp?fp|5L(XxkCzIUktCvT6w^K_> z_~3^1X^eFkA+)UR2RmGfcUBK{Pjv{-1IME!#GGFt5YWZZT8=W4eNsC0laEL%ID*jh zPgo^}L#4e*U{95%s5G04``_KbvdEt4;hJ2Q{gP2x%YcBX@d9m;ALmx$i_;?gEfY9 zyQLc8YU}P{>)NKihM1cqXC+;KSG9nv@sT5a)>!X)2;6f%yI9EuvqF>0z2OhPydqB` z%;BeRK=8=ZQLxcKfF;PT+gilc&xkc5;Bqr%mK?Yk1!H*8ko+`^<>Z4ZRD#F+Dsgr3`(*6QX05VJXLWi9C)l^GVAnKCx3 zA!54X@QR;!g-lj7SSat#7KzZ;^s#8-b&&PMqa3Gja* ze1nvZ=jF9e#W==DZIrckV-9rqqcWSE3cj{PYO)V#PU?Jr*8;9y>Ki%RZod7)clnu# z`iO=;XQaPB`NwB`lm>AZ#$2o3LN$;qdl#rP+7Y8*cB@Cmp+jI zPWQ5=wi(dVVf7mjE!j*7W>p!+fer8kD!1jjomo^ElgEYPjWfWV|7^q1NL z8O29IH9868$v)0X{q)2=a*@1;3=PS<9l?m{VckiiuAjwkkz9uYH$+Mu9q6)D>-tVO z4C(-})~Z_7<@EgJ!4Vv;$E8V$fSvE8o7u9|akY7>4${lsmXMw(&G0n4UYO6S6UzqO z*B8eH>g=Jw#NuiBiCTobJN_>7H+^Ctfm_8@_5P+ z%n z(u;_XD9nYnNThI&qa*lX9@MDs-?OHS0wQun7l1_K$bUqm%YS!493foTAn&K0sp9Th zm^GDlBEC(1Ai5uSrtMrrIz`{MEMe{*UkgEzE}OMBa`Nq-$$SBM^Riv@eT%2)C==NmCUb*_w(bu< zHR`>Zk3xJ-X$$hU)U%cmsAy(v$^>`|Qt-sB3Vz8uyp%usP11Pjk=W!QCx8xUBlB6n z5KN1}>u<_C6bduT_Fl#$=Asa)hgKZ2Tm%0O@9g%AXkATVuTMSpG4UBfBJY=) zFXD8P(nic#YyRz3B5Jc07~cB3ty$Wb(CP(fMU+>KcjqqvB5p%FN#M!#Pl9*0-zmPSQu?pk5)UJ(_bT z#j7nLRy<&b;7C-#^0JgnwpU>X2gl)Z^&x=ozFR>~O-`SnV#G%D;4Yt6L6>Tts$wW~ zbja;5&L`(+$Yx^Bo;lA`M~;SCF`1Q#Nw&j{QM%1~aFB#T%RAs^{oYpL>&q;Kq|~dQ zSj*OzUFi14hb*tI3|Q7i43)5myuU@r5q`V#t1Y^tua7ssC+@2eHUR%1EN2hjpra|J zWhIMRqo3+?sOh8CZ(-YO zvIEX_|M}V2NV=S9>1tNPjBhvu5IZ^s3ANV->1WWiDmE02V>d1`Qn~Q$wW>OC6(!}E z3$qsqp=u8{!5Br_(^Z2N>lEg!#mU=mqB9y;VF~OQjvSIXG4i``MErW#*QMn9A4?UAn|S_~-aI0$Ca`#od{QC42+k;&uh@T?)TDpk#cmso;iOYSPCNc$O6L zzR13ZNTKIV)CSK)70in0(MlXDlU#lvDYD0r*GX&ky+ly66B5M5sqyTKwpzzI6$PvWETDbu%B@S`t?$>xz* z!GW5V8^|}FG)rw7)4YBE9zg6obx!&eMGfl*N>aE=fco*oO@6pU zI8L`YAW{q~BvXDgUhUp(D=$t+Tb(Vdghe_7X_$3Z3@oZKZ`(4uz{0MIP8+s&+Co|AxkMTNXk^ ziQPYp%wF;`kvIJGYlhZPm;2!&>OyVt3Gyflf0f9U-zRTv3sKny3Pl1O8Do*MO4Q+V z(~`BsEzx1L(#+LmO-EPwm@RRrDPN2=e%6g|oN8OJ4o|$x;LnNJa$5*jpz_V@e~I@`TFse20s8(+Gr^G}<#x<#Z<;keG*!B>mJQqPQj zUyqXnbdCz?m7;T!Hw9B52MH0P6!eTiAw`8YustlFJuWPaNG&>IQl58Otd$|`^|xgZ zMf4Wi3EGq#+5QmHx%TX>MJ5Isrr8HNaT+^it-g8_;pnWtC{;flJ~w7syHOXodPk1+ zA=)1whL-iw=F7G>EFQYKcz=kSmXBArzH+W^MHEXiyb-^^Rd;XGnjVuTQj#=e&(~!| zFf4t82zSo%Mm#4b!S{;#sQroh5(h`dOz+>d0sTLg!kH!_I}Aznc+3|>((92q)=5$Q zTFGG8(?w79mT{S@Pt%M^r8dU6-l4Gr(T(GyRN7Q60`* zFybqkp(ZKTDS~1!_TI#WJ_iFzTM<9E7}e)Sie_8?n5}XFO`OZxj&0fc0~z=c^S}Bf zII#HvVBC9l6IoT_foMyX>S{D|fyc=jpCxa0d*FVOR_9HNPYyEud%bE)o*I-$u@*!r zGr?}bw4SV`rW#M@0Ml9spYp#$cu_mz6{FD;lRs&5UfA86MrRG!%9WPAn0UjxDt|s+A)4$^4L@NB}kUgL7DE!}$?I zZ-16ndsa+dvQ?+IJZf3| z!=!o4iXLM)E5Y8aH5G6fex<(};oA(G5?x|t!`*1KrJq85snt}IR@rZTSxBnA(i*lf-gY$h*X*$= z2t1Rc(5V#G-`*~zrZ#qckD9W_Y`@g04GXUW(xVSmb#__2j&S06HKT#3 zd9YZKzS{P@d71P~u9Bw1@5us#+fXoDlI)jh@cv(n!xdQJ8@56LG7PTgz@7r)VaL4< z!kNapb(ms3>+?QL*G*1^D$Fuh(Oh8<0etv7DbFE@-YbajWov%$(MIla>MaG4OKdS( z+YZ-m9e&ZJL=j2lk9>3fD9unFwmG6x%-tIp#tMg0d^Ol~YW&a1YAmOtqvLwTY`aBp3l>nSsg4dNGpByA&8Ed$jEojCVKU73Lp>bf0VXd<^F5$1lHj>62;_ z6pCbO@ogx`Tn*x*afMVFE`&RTs+-uWOy%D4JF=6%@zzh~AgTIzn%7R>B6*$x}sTs+IMD2KN>UN5emLnluWy}DK@-#Y(Q~h%@$O+)2=VDX`f6i)L zUshX-RNTd3OwYRM7W&XK;qq`zCQaV6>UFt{t&g3|V&fmz>vQ?-Tow^pp}{SmZ>44d=c7yLss z!w0RdUqkjHU>hqQthQlYnAWnFYZg-wxSd*|(k?2NJMk1P#jyT>IAT=jijKLN2(ikG zr9fRi)9Xq|j0)({*gGUQwDPmL&mT1l_<_=s=t(Z{emdJ7i*%W(v`!Wa*}^{hxM%9V z%$ZU%v-;|FJjk`YK)KdF+dFzjZa7O}ZJz_Y8Xcfa)z)e}-$k*|b848(P%SB)xAnT& zB^2R_JC&}DS(-geamS0TlxB_732AQC)-)kzt(|mL8O)&5G^u>+SeiHTHica@2|fFj zcT}_~ogkUTmxO1^!|O@u_S1oJ3v*%db7LE35gx2R7&WjY0ZKsVg;`lVf8KlS)s$Mi z(+iPSUbBIxZqT-MH;>aTyZh_7w8(ke2d^J2A(zDGczhVXm2cZo&rFa~3fpOxcX&P;=g?ZOhr zkLoUHfq3e>HJyu-E8)ths{!zm>w_q7LPOfa`g0z4a~|2$5L>t*YLK6Is6Z1bll)#y z8g2S|s@Qt_9VkwICnjtsP7cDt#h8?82uBmeUsV6{vkmBQL8i1*QSr#hqCTEFNk+N7 zl08tj+*H|O>j#@ACQ~xhCcO@MaEv*lfm}ZeXK# z%R+#;hB(W%PzCl#`@8@Hi3wH`x)|fceeRmU4L+1C?#8cVf6iWVWfR!zo?>Ms@L}hH z?Zu^;@?99zqdFc?vEe>!k3Gp#NzUC~?V6R|Uk8U{xY551ql>Tp!5M8_;H)>O1` z3wu2S%>5U?p|sc5;7Y6iNkLZ3mLf{U1*K2niv`s48D(fkfOh+PUJn^br>*gfm(e}O z2exG)z^BJNWZDO@gw)+&X0Mq&O?~xO-`o-Pw-oG!P=v3G2NZ8hh%5R=0nJn525VOz z@%WIMHfLl|&@%xeCPn~kU4nnieI9S*UL8wsY)7yx^EOE1h5h{*CO8|(+0zxX;8So3 zFdJ#pBPWpqv@jHbt3}8pEmc6H6blvcyF7ztc zNPz*Ha`Yh>0(AZD74?ogcT|L49Yy#A=}*pn%w%GGhV!)`!!Nu^13i|+6XO#a6z9C@ zs=So(r{k-J^&=?mI(GIH+D$G4W3UD@JfGUO;j=>{>p5k{>H{fLa_H|lmZvMS<{`pd zthBz3>Ljy$c^$(meDW1yrEj)oS;-TC7ye46|UZ=8{a^|kAJ zN~=D))LlloVEDh<7#`g5T22hKB-%eZxlFSRPg}zEJ7T{^V!*Yykx#b-uUdz!E=zlg z_gag~No2{f+xSq_Kf#q1X0;zF=5^FK&n6d|4$~H(z;{q9vu66WH$wWCStM9ONcTx0 z%v|<=Fc-dWYX~YEi^xxx2D0+h?UJ#em^QhuE$J*IoprD4{;o+Ds#*D%I~{pNE16 zIP7DFKJ$)Dr?CD=az7#5`cRIe@Utc3yoDHU5Gl_r$OK9vJu4fpl&!C=Xe zws0a19zg6KMf8QmmB zJTJMIyIzZ%{^Fm_J+VX|KUMJumLL^F3h8!L=ctB!blpn-w=Y&Sh=~G+l`}}bHO5k; zs4NsCV}cV` zVGNe*p&Z^^xxyLisUK&hC4hu8$DfgGi26nrqqV`)vgkBZPD=zvY^1!J!HL z`SVKv6nnCJ!;$PrZTd8b4e66Q+{1_*AP}QSN$>5p6_IW*Q^!c!C=(aTFO;XuZ_512 zsf$hs+#)b*mXe5HwU1J5L)>j$;9RKo7o!(Nl-Y6JpBWC5@In2C(p6>afB2bZ^RYRb z*e>7TkrnjxHq?y-l_Gmm|NPF{Xm;|*eT_3U0Rh5DkT-nGE-Pise7pAtG(_`A6lzI9 zV}G3gd7?`@T8EIDf)7KE9bU$e)5U{P$^IuN?WS3p8`8c|R6 ztD=3VSRS|?eK%l~%gyj~NIzG&}J(JnlBDRkiRhy z#a>es^m#R`O#UgBfAEKF-C~G9Hf@?JgT<%Y6Kj0g8tpJG%vXE#>wlGza5hY3#Rq!B ze8M!rRG;yB)l3v+4`d}^GK9I*18yiUIJC?ec^w-x%IBXQ%o7GGjx01vyU>cL04`wx zcdnw(T*aSCa1%wl`cY?L2g!$ z`{nIOD@=p=Qe>*9zz%`|iKDbhqja0`!t~D?M)gYoeum`bcRE_TvsPXa{k<8slOF$iTsd+d4-zY1D|bLpQb~1-ht)9 z_$}i>FG8s^W4ty?ksEa?hH%&e{LccqcbS>24o+sDRM+#Tq^g$!nUslK7iVesebH+P zs3Ln=_ex1BFrO+zuv3~kFB#<-yn`Uh2X#lc|jtxAO$!qDCG`9X)A=fcRa#I>;Bn74b>Y9bL7 zC;n7k7^;QKQv30pwEdg;OT|f*|1%4)mmG3ZAnIP46pPt>6l7J9uPjcu%@emsPLz_6| z&>=z@Wo!*E))KKwK>pj;ghtMt3(MLjvMbe(rUT%MGtJWE^7wem-)ur)dPwjW$;|8t zBEBg+UuB!=UPEuhMjI1#r`*-j0?8~XkYOvYbMRAsfgZpmANWKjByK@{ENZ8Y%<-OA zm-A6B{SyVYGRzx7*5%tq4KQ`t;)vPp-HF;G0ezK+JyEqPK~5rmGUHmQ%EkUkyx|35 z{zWWKk`6+^KAoLFY6Y%*QNDU4dix3M=zyk*?G9f*PNDK*ZmTI&2CH>#Cj+OZ$18+| z)Qa_2dmzwQ2)7{|{aWJ;a|?g%w&(t*f)N;g`I=aXqo1l@Qm|)GC`XMz!<`pfjBopA zeE5ZX_A{T+Bqk#xso(LufK~RNEElf zrEk~pHc`QnmqG(F+e@e2MeOQ@J&_wR{+2FFTF9x73~RCsmiLO>1YHUwXT5nMD`#L? zN45tjXgLzHXQzbA3Fym}NB#7v?>c@!^2zSI2CAeGng%0}tjYqHU<(*z(EeS64;)!OlkNT9<7gqUd|t@TP(Sn8Ao3QeNDbO=`{`cL zlraR%%IcTK!#IYtcYzZ2E^^%xnIZ*4v54Tn6knS=oR5)PpG#28fpZ(PkW(qLyP{0y zJ!q-JRdz&?z7EF2Kt}%4@0sZI6T+Vl^xBBbaQ1&3fNMg{5Ab^p&Q_rvrwB>bJSVSIo<{#y>Q!m}i0L?aQM9-^TXZ`w2%X+B%TsRW{{y zNQG417Y7u#=GzHzE$a4BMtp^sN#mL)?1+*jNz!FWPV40QLd4tW`b=5jLPW@o!pINt zBFvksKxYtesa1WpSrC^X(Ao!=#lJ|GIxlr6(Z;S^g*T%Xi9^En=_+b&FRkoOjTvgz zmA*c)ho!P&56h(AN9>e%&L1YimMxS6dDfZ}84GGiA9qPV_FDUYxeP0+A1VzG&*OSY z{WtR$Lz{wpTiX_B-eeRWX2>R#$Tf^^gqNr>3-MN6l=JqjyW`f4UEz$Coim15*O_`K z3$jZXG{`gCiPT5>%((Sx7NeC6L3m!K;#G*hCb<#Hq0=fQpt6sw+Y4PAeUa1<~FW!29`d}4@(t% z{YaA9r9l#Nq*gN$4cZ~uGKNb;xo)nZH@R^`wg=f-z3}R-!t(E7*kM0{VZy5%p%4MS zZnzzKdkuPB57lz}$hfu$q!JNQllFp6tpXfnH0eK<&-*Y|Gt=XNcx`hOLFa@_$1_um zoFNy)g%>Rkd)6h>KwtLVT{oSI$@EBoZHe))=6_!o9FQ_8mGJnTLls0Z2()<;H7iKv zP|(&;=i}f(tKk{w(o0tzzp-)S^H{PoIR)I)$!Tw`rsUTRJgqDcu@3Y9SQ{;q7}n+L za{tmcMXcH7?f?0vhL2K0=u>wXgUNFOln7V$K#!xtl5Nkgz4(vVJ!6v`il%G?U_b+# zYxq~1oCtOB$?tBnk{Hm&Hm^CR*DCmm8xZ_v)bxx0{zYVfkVA5G=+n~VJC{bsJiPnz z!KzUojp_C>Dp9g*N!}z$ubRGGP3eN&dvo5Xcl!Hdu$W>#_7XOH*_*(!LOMsN`>bxS zDQR?bwY^=NR*8h9P|t9Pb~Os3{B#$v_m^F>KOyHOrAxIg_QVu{raVh**MtY;9v07hT*ILh%+mEcEiJ9@tw_JU&fcVqjV<8b6NYWfndso|PD@rA zgtHSCq>qpR6O+YB$>5f5gnk{p>WOIz@q-^&rC)B|Oq*j?D#0D^!(@nI^c#~Y?1K?$ zh71Xy4gT{}wak|E^B<9(@o=&7dE1_hvG|(Agvn{hJ54bQu?TrOT)Yh){O^iEay1>Z zeu(Y(di!;KnVSxI2$oD8;e}?#bt)o5a^3jKlcjT$mYl5kaW(oa=wW*}HTG2-wp`-J zWnl%%!jfB4G)+t(Q2&V?Age@KsVt>a9}m?Ks%#iHu_2chb-DgN*H>o%hhh=dyp@|S zM`4z!imh_U74k=;29s=VCSvLyOLtalAU}?7MnVoAxkZoz4|TLHjlK|p?o~U_WFeHZ z^>l<>{hv@TKM~G*+f#|l`KOk`yLaB}#LV-!?IS6HBVHQRkt{w=7nrr$UD?H1}?yS$Dkrw}nG(ZED0F zOedhcO@A-(8w|J{1-+WRRA~hLGGh&iD*uT$m8k^69MhM9KZI!2wBLT}{viHlSPCyP z_E#-Z+l%Q(4*Jw_den2Ig@%AN-F1!7k^>Mt6gj32 zXl9oz*SGsIn1%d8+V`POkB@tSh-&#{*!A;3d$IB7!$BE;MFhbhg!PJ*{sMcff^5ZH zT~TiVC@GU8?8wNzRHIB5eYC*J-bhHui63BCX0Zfo39c()^Q%=+zY@cj8liW3eIa>302Z{WzN_8l^ms*GcOODH#gP?O&oJI zYsqI-8OH{)+65%(>SIxN7{&|VojgUa4^K-x&*5*ee50>lIyP)jshXqRak@Kl)2MdG zRyUc(in-dX6)nSG!NZZ|FOb|N#b4>N!)3s`Msm6)WbTYy;7)%boQbs(8QCI3Kf{6# zKYIsFYk-zwkmk}X(V@LvyV|{vuk=BQ&!;<}GNFIgq)Uc1!!)|l6o-{J4CJU zT~Y>{Bpcs{h_-N}0Rs}UI5_vt3CSv!H*xL6zVDJZ3XM9~N_0z|oLu^b$`@edIZp;H z;IM+JvGle`jDP>WM9h~@U+L>HEhjzqoYPElzvn1&2)GZwjbLV+tkI<_oZuQ zo~$)>^R%>Neo_hHtu=$fGLb-h=p1+ERkFsxwO=!Kv$xNGIgpDtYnav|)uNxGO^YZE zB*UVtLCK^FPVcj)D^88;!?ijdV4b@7UNm$3De)t2X_Qb$07>!3M?88vl?S2kRikfqKqHJZVrBrV*-PS z2o=7nq;T!b&L>`{O`bHOX48m)i=>&AVqPHo@Dv@KW3VZ^?$!G&&Yd*Phy$UfEP zjI1e}DcsMYL;F}Di%vwgK6X!6!VKrUCTM(oV`qHMBc@7gFk5Qj3}egHhMI;!O(1cV zShGl}V)OEBwt~*Op&j;y{@`4-GI@xDS;fbott@h6C-Wy_3FkZQnaue#X0pC&zm~a@ z=J9cv5ASQY(a_^0qz!~46Cn6CLc=hmoE_bY0dQe>$Jtb+%ay;IyyF~ro~A0%B~^bc z9c$Zh>85?C%?K2px20q=C*ho?k!9tDb^lVQq8mH2fp}gkwpcQ4%_Y0ze3gx=@vkf9 zQGAdTnhDsH5F&3P!2CcC)NIkn)n-H~K@G1IkMJa54UdE&G=s#kjNwE-4OhGU!K2<% zmHoyPLdK%Yp2isrUB~|HLmSt9E7986$MYiN4wKUZYy`EYevW8AIvw;--`TPX@;py!K^gSh+l~rG0(nZ zh+UGvC&wIHk}tk#I-0GHek`~@R*JkA2tA=f?Tl20lz4{DWI|O~DIPjQm4dlB@TD&t zP93}LyS0XO-ah(<;D;_+8*Y~!TzhE@n*ngi((F<|Tc>x=>9F;O6OLoA!NY4m4wc#Gnj<$xO@=wmD1E*dMUmN4Zp8dh{C|o#E>d#v z1Rc4`sR&DrHpr5wT+-Del0exuYrl2odG66p(trU5u586~chF$qVS+t^M6s*0rp>}# zN+pUkq^{m^0lh69ujxGUYH=Q_68i#&5*$6X>f_(17@v`31gy}cv$MiU)AaXP&}7x& ztqDB*kB`aL5bF%aRE<>r4${WGT^i31=|R;+ZxM}57o!K+MRT}d52b~((7h1OEVss;l8IgBtW}J_rcI;epSUtqxjoi*QKVwrzeh>`JX)R8v3CAoM z3!6SppvSS~|KI`rwoP1czP|YXe33L|;Ak6HidOAstQ#yj2tn~lpMp4N4f*$d&bnTg zNw*R=EiKKZb(J-j3K}06PAP@UH7i_f!)TTF7F@e-QKnYda@(;GYA14MCa7+~_@-K^ zRH;?hWsR^nJI90;QN2eU{HTkEVyY94^*K~7)U8xu_H@w7{a0bo(4x%6?sPj6jFe|m z^K*gB8vjG`jJY_5?{o&TqGb2s?V;$LFdVK~OzOxE;WB^7d8jyiT$WggWLbQHS}FO1 zZ;((<#D|39H>~XP#(xpaFItlIheD}eG(%2;&CGSMSvQ_!?<}H=SP5L9e#eeGczH$E z&6$stJ8{<-=Hs#&;9sytGQ3GLc6mvRQ>6{t&Pte95c#RQ<0>R>WA$Ik7vkFb+Mu=5 zg^4sF38OmILxaST!W!2W3BeAGbhXhBLj7+HIK7d@cMH1HweI1ikj3oL=A2S&3u61L zHy`1{Ty$q11XJx=U}joS4d)K8T?`@B3#FRn9E2#$%*@{x4uJ{8^dXq^dVJHgYX41% z1`JI?AgU0Y#+8`Ct?nJC4F{g9F$s84a61O&GZnMx&Mje&g)G}JQL+S{(Z%z~yAj5T zi?V8r@lj>ORg}1M8hfHo9d-M6ym1 zvwF6@DB6v5Y#+AJtD<8k)*TCfaAoCcbQ+%Ch0JulF_bi^`Rt-V=)LLEtl}#qw!xB- zfxom((7a6$I?9_Nml5g^5-KyhzQeH;BuZemlflTz@ni$vKEJ!8(EVG?{5S-eFLbD0 zopoKMuIixL8R4LkOBIsx`-N3aEwLYF7oIZ1Xhu9+@$DM^M9io?ok+u+VM%%(=2eZ$ zEmsu7$Q|_CVEb|7n)P#!^o*F9{oh6q<}eOL;ErA-*)jIZi(@O8s39=m9b zu(!}ip@wvo96n+eq{=6FH3kb~_Z*++mL1@|)9I89VyU!Jd^=y?QHCi7%vqY++6tF! z)hadVQslNTJ*W3MLdAezlR}NzgBF^B+W1UhOs0t{40uTlQgUy)mi2=k90 zKU#4Sx@4h<)geGXk}41-vow4i2-#l7C9lE{p7EbFydBjVX@YuLYcpE3i7h=d0J#tKq z4*#^dRjXSG{f{CIY3`H;Gb$k~i^|t&SoR|N$}_P}EpYBHGW*LqZJ!QxV6vk(T>rP7 zlDCw>1^4L5vXw?;rb6oYE~>R$qbx|d|GZ%aj9=ccb|Ps1B8W=ND8c7Y`2 z!K~h8-+*~pirLFO8%XBD!cTaTY*i&2-~{DN_2K(~OQ}8H2r!AL}`+sjl&SCD@&2<1wk|zzB^6>F(Zf}Pa6i~#*#`5s< zQ>2aTuW6Ofy-Cl==-zPn+eJ?pgBc^0k&{D{AcGzuk)EARg&VbT?S=6yl(s65O?Kuj zKsd!deFsmW%tlVq_w|`Ts2d5TFM6jh=9Ic&_g%kKaMwjodiZQLU3jl3B_UN!OOJhC zmkymW2Y%P-O>7OR7+2ivB7=Cv(3?VdvIc%d0}V0$feqbKd+tMaM}wkq8RGYUlRgVu z@UxcI16P2_hi+jQ-TTmYYBV(Ob4p~giLq)*w4=t>-CI>Y5nDyzWJkO=18sRQ4(yW& zOf;c`ib7JMmLz#BvXX1;(3LgCC8wJpE%jnmy6z;kgFSjB(Jm%7^qcwbq;KD2JAKn7 zdsrtPIXsjg-(b~4X+Cn}4>XJ~YJe*{YF$ zI}M+)fiuuRGVetx#p*dabmKi9ByR$n zYAwf`VuI%b^|oHL!^tr5k%Ibk@}%uJI{2)4Y(vFE-EK(TQlVO@gP-5{#s-YQDv*@BBgW=Ff&FYj zb9u?9mcXLlv+7b#H7_BWS@F8&#a#KQBo8wAhuvD5U=;Mz>>@ue1y1bx<^9*O(Wir( zl6+b(c`dBoa1&K0B!b8c#(faH>eQh$i4Z;qNKi%}xS@5r_x+95(?gV{w}APtU<(hE zh)#h`fUGo@I-05lg(}4WMqJReFFI&Uvu+QFULKf941J0*hBaQPB z6XTmV9zyU34Gn0aVvMUzqUBSR*S64KSO*L4-}P2AnN`V{87wVxrPkM^HW(ER3GMSbWcE)}V_JDmKc*tU9*K zJHDHa5_X27Q!!P|{1#a<+S8QanAR-ZUAC~|YlQceEY7r2*>DL6?E`^tui|CeKShT~HQ>ZqR{oSrR{j z+B4EgEub+z-wlTPj92Q5q6B0>GRHEK&mJz1Y)h4;A-yX-rfR9zC-ydmaGd|}w}(Sc zv&3crfx4usL-T5%xw&QaS|Oy|vA#KmJ8j3DBUWtfd#4z*WF)JX9=AIVR=_+=n6j?v z@pANiTSYyDD^7_wD`NjA3Zb|)tU6)5b>j+1-kD?6F;c-&1)@c2Q~wN@(@H^|v|{&c zFm-x+U2QW5hQ9c+dETQwJPX-3>cK(WT0eBI#r1AX5@;zR9h`fdJwCT^Ml2l8Wqe8- zDf+xXc$OLTe;QLEgxqOMuSzQIQVk&3c~3%8S6A0NQ=)wTdT)Ny|F|<0z-59&+TSm^ zySJ+yGr{(6oyck{nOh}-3f+9J${2rcFnNXhzz=^6?{EzE-s{6@&uBl^gonH^(l zA#p3uh}m+*#QXQ|X>C$T($RzrtB*r0Rv)kD`o2$4BQN=4Zm~c8(PruMDjzDp;w^c6 zyo1hBVlQYg0>Q_iI!%US_-PZWUo6m;Uh@3tTjP?zP%oQ&AbNxYOy>wwL=8J@26tLkqyxt^knOE+9jfyt9o%k9lcq0?=PK|EnIb&Nx zP!spQP4u0i>VwBIaC;thF=FT zb_en}ZfP3o3q3Kq~28*Do5* z@(EkEO-}jJY2@gs1NXMmyd45D^K%T;ZRoLT9#yIdnAsI^ZB`iM3R@o>lNjtudFsHR z*tNISmT=%FEJ#*N01|vW_(?pd@;SMJsmW8aIqMYQ211=Q)t$nHuU@JFW;BG6^8HT! zko~(SBQ37cCyomjAVeTs@*%N^ErqZQLm4Rj;S;~M>7M=K`!(z8pLG`lKJvlCByedyI$}Kc_y)qy<~dKE%2z{{ui#B= zI4BeZ6~D33oguXQ({2F18}R&q@VHciJZsF!&rgXfYc3GNmQkqBd`N!%QB^1{Dz^+% z10t}z%kM`?J)vS`?W(Y>BdyR!TdnAfjAu%3rr%9^P;H7W6y|tVPVXGyiCBuge~G-L z7NN~ziN8luN0$h*PH|==!T~!oT;rC0H334FZb^UnY%b(GYIorw7W@OvTc+~4vbuK$ zIdLMiGAx)IE*5FGgC)tzsLlNR%8ckN$RFVcXvhXvf zIl8A4BSm8*wNKLHaJN;BxwWo(L7oJsjRSL-KpUFGCoH&T__)enwkppiuHx$C1iaW< zaYe4>1Jit}vobP_z&8y}cz76bWMt%lB^LH)8%ahY%l|S135YXE0sY1a;8dxTHmJyw58DXnMR?E+xd45HdvFiV&SMnk3K<#ixV&v!o3hsZe_8;Y365QB z)N*#mi#hu65{qxr1s?5xl$Yt-BCV!e80{O0a@LgDFsbY6qy;^DVsyW*M7(>pC7?dx z7%lM|2uwME}g~|Q8nqTZMp{?CZH}%L%_vqcY zI*d^XDR_oDy}4cD0lM21axJ=l_NUoPwyCyUBcN2x%F1H=_|X~IrU6^n{(}Sh^78W0 z@o`Ml@N*9V^_c%vw-Zoh^|-mapNjU0In3oALF>`#rb4B~fo;x=Yeq+G!A!{h7RKy* zJ0UA%OFzXJ2H*HwCQGX$9zBk(W@vK&$snB1SD|;4XAeH3qho5!xI8OM7PpK;m3>f& z+JlxBx$p&2GU)`ZdBC&Kj5{F0I*|Voq3qGS@aE?H;khYX9g_1%_uISak{5L>&A)79myN&k zveoxe)@dLdWH`gZt;_w*<<()X@mB4v{n>YMtT#G7u?5Q1eNOYbrL$6cXCx#JB9zzz zyta`YPt!V-EA7ao5*Xwu)#srJate}4u{Ti0LMba7v_n3z?Ke~$S^i%iO9ifd ze0)Z`yWbuj9s;wfoa<}X)YR1UEF$DVp6qeDtZTSZE8LBGIYEv;bSqt2KLO_B*eNvqV37B! zNUi={m<)L^*8){(^NHGwu?HsX%b8cnSSQLa4E=i;PNd}O3$zC&8+sZX{kDy4 zLNQ_yb=K^%Ky|W5(!{jRr|sR(9VU)u?;sFiJ)~vxI-`aq%d3`ccB`XGd2^qRp>hgp zrg(gc8*J99J)#|RdMRcF_%uo84osFE3|g zYkxZAyY^DJ-kK>uvn>sHUliLs4Sq!#PLV${oAKDS(1{mw6Q=0`=ciqv2~=PizyPU0 zlpK>&v2IAtnmvl*EgCBVlfqLD%5r_Ya*=8$=_lGrcRpC=Q~O&yjALt?br;_A2cITi z1BcdMjk?sCLbn69t%-r^vM`vZnM*9b;U04A8)%xP4bx z5A09JDld zd&D+<#eMuvyX4rnM)od&H}b{FD*vB0&t7HW=e|0N36Gm20^q%C;qIO`GoubrxsG9z z^Je{uQ5p}IN7R2FcPMD{3o%6B^L7dp{=DB=kp0N=*9w~gomVb9!J0FolJOsT@8H@n z7dXZrw6mFth#4IAQK7lYAM9*(9mYd&_e`&7so`{#pA7PLe*Co37WDNxQ&~lw^Ds63ub{QA30;VD?@WVMg~ayuv-pmc_+SHEaq8 zHB(x$fwy0MbWpB7BQ|IzRoX^6cZT8F^Ua)G= z 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
69Vp59ndq4b5w_sghd`zLiCf+4c}8 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

qSg;n8yU2Aeo~cpUN9w}& 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 EKRY7$_W%F@ literal 0 HcmV?d00001 From 69ceb262782180263dd222383c438167953e9cfe Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Thu, 17 Oct 2024 12:18:31 +0200 Subject: [PATCH 21/29] 021_product_exchange.md: Reorganize TOC, continue PHP API --- .../commerce/pim/011_product_modeling.md | 6 +- .../commerce/pim/021_product_exchange.md | 117 +++++++++++++----- 2 files changed, 87 insertions(+), 36 deletions(-) diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index 34a775ceb5..928dca7676 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -25,6 +25,7 @@ Always prefer the dedicated route (as the back office does) `/product-type/view/ To view it through `/contenttypegroup//contenttype/` (`ibexa.content_type.view`) is doable. You could even edit it from there. But this is strongly not recommended. The "Product specification" field type (`ibexa_product_specification`) brings in the power of attributes. +When defining the product model, the product schema, you go back and forth between attributes and product types. ### Product type default fields @@ -67,10 +68,7 @@ How to think product types? How to not have a product type per product? How to not want a "god" product type trying to cover everything? -TODO: Image field VS Product assets - TODO: Variants -TODO: attribute value display translation ## Product and product variants @@ -96,7 +94,7 @@ When displaying a product variant, the application combines the asset collection For example, you can associate close-up photos of a feature to the checkbox representing its presence, while associating full views of the products to each of its available colors. -## Exercise: Bikes and bike parts modeling +## Exercise: Bike modeling Exercise: Think about attributes and content type to sell full bicycles and bicycle parts. diff --git a/docs/trainings/commerce/pim/021_product_exchange.md b/docs/trainings/commerce/pim/021_product_exchange.md index 4478dba7e3..73f7d5ca22 100644 --- a/docs/trainings/commerce/pim/021_product_exchange.md +++ b/docs/trainings/commerce/pim/021_product_exchange.md @@ -11,40 +11,11 @@ page_type: training Even if this is outside the scope of this training, this is important to know that the products could be stored outside Ibexa DXP. With a [remote PIM](pim_guide.md#remote-pim-support), Ibexa DXP role is to display them on the storefront, and, for the Commerce edition, to allow their purchase. -## REST API - -TODO - -TODO: Exercise request through REST the bikes from "5 series" -TODO: /product/catalog/catalogs/{identifier}/products/view - -## PHP API - -[Product API](product_api.md) - -Notice that there is a `ProductServiceInterface` for reading and a `LocalProductServiceInterface for writing. -This is due to reading being available for both local and remote PIM, while writing is available only locally. - -[Criteria for `ProductServiceInterface::findProducts()`](product_search_criteria.md) - -[Sort Clauses for `ProductServiceInterface::findProducts()`](product_sort_clauses.md) - -To create product types, use `ContentTypeFactoryInterface::createContentTypeCreateStruct`. -As you can see in [its `ContentTypeFactory::createContentTypeCreateStruct` implementation](https://github.com/ibexa/product-catalog/blob/main/src/lib/Local/Repository/ProductType/ContentTypeFactory.php#L39-L43), -this function is responsible for the default fields of a new product type. - -[Catalog API](catalog_api.md) - -[Taxonomy API for product categories](taxonomy_api.md) - -TODO: Exercise: Write a command/controller listing all mountain bikes by series. -TODO: Exercise: "4 Series" has been discontinued. Create a "Retired product" category below root - ## Product model migration -After having modeled your catalog organization on your local developer instance, -you may want/need to [generate migration files](exporting_data.md) to install the model on a shared instance -(for example a staging instance or the production instance) where the creation of the products will be done. +After having modeled your catalog organization on your developer instance, +you may want/need to [generate migration files](exporting_data.md) for backup, or to install the model on a shared instance +(for example a staging instance or the production instance) where the creation of the final products is then done. Export attribute groups, attributes, and product types: @@ -75,3 +46,85 @@ php bin/console ibexa:migrations:generate \ --match-property=parent_location_id --value=63 \ --siteaccess=admin; ``` + +## REST API + +TODO + +TODO: Exercise request through REST the bikes from "5 series" +TODO: /product/catalog/catalogs/{identifier}/products/view + +## PHP API + +There are several services to read or modify the product model, the products, and other product related features. + +### Attribute groups and attributes + +[Product API > Attributes](product_api.md#attributes) gives example about attribute groups and attributes reading and writing. + +Notice that there are `AttributeGroupServiceInterface` and `AttributeDefinitionServiceInterface` for reading, +and `LocalAttributeGroupServiceInterface` and `LocalAttributeDefinitionServiceInterface` for writing. +This is due to reading being available for both local and remote PIM, while writing is available only locally. +This `Local` prefix in names of services allowing to write is recurrent. + +### Product types + +[Product API > Product types](product_api.md#product-types) illustrates how to access product types through the `ProductTypeServiceInterface`. + +To create product types, you could use +\Ibexa\ProductCatalog\Local\Repository\ProductType\ContentTypeFactoryInterface::createContentTypeCreateStruct +(`vendor/ibexa/product-catalog/src/lib/Local/Repository/ProductType/ContentTypeFactoryInterface.php`). +Notice that this interface isn't in a `Contract` namespace, which means that its behavior could change in a future minor version. +As you can see in its `ContentTypeFactory::createContentTypeCreateStruct` implementation, +this function is responsible for the default fields of a new product type. + +### Product and product variants + +[Product API > Products](product_api.md#products) gets examples of products and product variants reading and writing. + +Notice again that there is a `ProductServiceInterface` for reading and a `LocalProductServiceInterface` for writing, +to distinguish what is available on both local and remote PIM, and what is available only locally. + +About product search with `ProductServiceInterface::findProducts()`, also see the following references: + +- [Criteria](product_search_criteria.md) +- [Sort Clauses](product_sort_clauses.md) + +#### Product assets + +[Product API > Products > Product assets](product_api.md#product-assets) has an example of asset reading. + +[`AssetServiceInterface`](../../../api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-AssetServiceInterface.) is used to read product assets, +and [`LocalAssetServiceInterface`](../../../api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Local-LocalAssetServiceInterface.html) to write some. + +An asset collection as seen in the back office is represented by an associative array of tags (with attribute identifiers as keys), +and related getters and setters are named `getTags()` and `setTags` (for example, `AssetInterface::getTags()` or `AssetUpdateStruct::setTags()`). + +Write a command that display the assets of the 4 Series Fuji. + +```php + $fuji = $this->productService->getProduct('MTB-S4-4'); + $assets = $this->assetService->findAssets($fuji); + dump($assets); +``` + +Notice that `AssetServiceInterface::findAssets()` returns an `AssetCollectionInterface`. +`AssetCollectionInterface` isn't an asset collection as in the back office. It's just a traversable storing a list of assets without any hierarchy. +You can take a look at +\Ibexa\Bundle\ProductCatalog\UI\AssetGroup\AssetGroupCollectionFactory::createFromAssetCollection() +(`vendor/ibexa/product-catalog/src/bundle/UI/AssetGroup/AssetGroupCollectionFactory.php`). +to see how the back office transform the flat asset list into an "Assets collection for variant" list. + +### Catalogs + +[Catalog API](catalog_api.md) + +### Categories + +[Taxonomy API for product categories](taxonomy_api.md) + +### TODO: Exercises + +TODO: Exercise: Write a command/controller listing all mountain bikes by series. + +TODO: Exercise: "4 Series" has been discontinued. Create a "Retired product" category below root, move… From af9c1bb84560cf88683f8b5213c7604cafac233f Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Thu, 17 Oct 2024 12:22:02 +0200 Subject: [PATCH 22/29] 021_product_exchange.md: Fix Contracts namespace name --- docs/trainings/commerce/pim/021_product_exchange.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/trainings/commerce/pim/021_product_exchange.md b/docs/trainings/commerce/pim/021_product_exchange.md index 73f7d5ca22..9e090e0b39 100644 --- a/docs/trainings/commerce/pim/021_product_exchange.md +++ b/docs/trainings/commerce/pim/021_product_exchange.md @@ -74,7 +74,7 @@ This `Local` prefix in names of services allowing to write is recurrent. To create product types, you could use \Ibexa\ProductCatalog\Local\Repository\ProductType\ContentTypeFactoryInterface::createContentTypeCreateStruct (`vendor/ibexa/product-catalog/src/lib/Local/Repository/ProductType/ContentTypeFactoryInterface.php`). -Notice that this interface isn't in a `Contract` namespace, which means that its behavior could change in a future minor version. +Notice that this interface isn't in the `Ibexa\Contracts` namespace, which means that its behavior could change in a future minor version. As you can see in its `ContentTypeFactory::createContentTypeCreateStruct` implementation, this function is responsible for the default fields of a new product type. From c226798d4525487efe25d2e23ebc0727324f2d95 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Thu, 17 Oct 2024 12:25:42 +0200 Subject: [PATCH 23/29] 021_product_exchange.md: minor change --- docs/trainings/commerce/pim/021_product_exchange.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/trainings/commerce/pim/021_product_exchange.md b/docs/trainings/commerce/pim/021_product_exchange.md index 9e090e0b39..8da9c307c1 100644 --- a/docs/trainings/commerce/pim/021_product_exchange.md +++ b/docs/trainings/commerce/pim/021_product_exchange.md @@ -15,7 +15,7 @@ With a [remote PIM](pim_guide.md#remote-pim-support), Ibexa DXP role is to displ After having modeled your catalog organization on your developer instance, you may want/need to [generate migration files](exporting_data.md) for backup, or to install the model on a shared instance -(for example a staging instance or the production instance) where the creation of the final products is then done. +(for example a staging instance, or the production instance where the creation of the final products is then done). Export attribute groups, attributes, and product types: From ef42e4ee9b8a1cd89f13f00b67610e909cd7e7de Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Thu, 17 Oct 2024 17:00:28 +0200 Subject: [PATCH 24/29] 021_product_exchange.md: Start REST API ToC, sort routes --- .../commerce/pim/021_product_exchange.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/docs/trainings/commerce/pim/021_product_exchange.md b/docs/trainings/commerce/pim/021_product_exchange.md index 8da9c307c1..d22f1bb6bb 100644 --- a/docs/trainings/commerce/pim/021_product_exchange.md +++ b/docs/trainings/commerce/pim/021_product_exchange.md @@ -47,15 +47,95 @@ php bin/console ibexa:migrations:generate \ --siteaccess=admin; ``` +TODO: What about product migration limitation, and product variant migration inexistence? + ## REST API +Thanks to REST API, [[= product_name =]]'s PIM can be shared with other applications. + +### Attribute groups and attributes + +| CRUD action | Method verb | Route | +|-------------|-------------|----------------------------------------| +| Create | POST | /product/catalog/attribute_groups | +| Read | GET | /product/catalog/attribute_groups/{id} | +| Update | PATCH | /product/catalog/attribute_groups/{id} | +| Delete | DELETE | /product/catalog/attribute_groups/{id} | + +TODO: GET /product/catalog/attribute_types +TODO: GET /product/catalog/attribute_types/{identifier} + +TODO: DELETE /product/catalog/attribute_groups/translation/{id}/{languageCode} + +| CRUD action | Method verb | Route | +|-------------|-------------|---------------------------------------------| +| Create | POST | /product/catalog/attributes | +| Read | POST | /product/catalog/attributes/view | +| Read | GET | /product/catalog/attributes/{id} | +| Update | PATCH | /product/catalog/attributes/{id}/{group_id} | +| Delete | DELETE | /product/catalog/attributes/{id} | + +TODO: DELETE /product/catalog/attributes/translation/{id}/{languageCode} + +### Product types + +| CRUD action | Method verb | Route | +|-------------|-------------|-----------------------------------------------------| +| Create | POST | /product/catalog/product_types | +| Read | GET | /product/catalog/product_types/{id} | +| Read | GET | /product/catalog/product_types/is_used/{identifier} | +| Read | POST | /product/catalog/product_types/view | +| Update | PATCH | /product/catalog/product_types/{id} | +| Delete | DELETE | /product/catalog/product_types/{id} | + +### Product and product variants + +| CRUD action | Method verb | Route | +|-------------|-------------|------------------------------------------------------| +| Create | POST | /product/catalog/products/{productTypeIdentifier} | +| Read | GET | /product/catalog/products/{code} | +| Read | POST | /product/catalog/products/view | +| Read | POST | /product/catalog/catalogs/{identifier}/products/view | +| Update | PATCH | /product/catalog/products/{code} | +| Delete | DELETE | /product/catalog/products/{identifier} | + +| CRUD action | Method verb | Route | +|-------------|-------------|--------------------------------------------------------------| +| Create | POST | /product/catalog/product_variants/{baseProductCode} | +| Create | POST | /product/catalog/product_variants/generate/{baseProductCode} | +| Read | GET | /product/catalog/product_variant/{code} | +| Read | POST | /product/catalog/product_variants/view/{baseProductCode} | +| Update | PATCH | /product/catalog/product_variants/{code} | +| Delete | DELETE | /product/catalog/product_variants/{code} | + +#### Product assets + TODO +### Catalogs + +| CRUD action | Method verb | Route | +|-------------|-------------|---------------------------------------------| +| Create | POST | /product/catalog/catalogs | +| Create | POST | /product/catalog/catalogs/copy/{identifier} | +| Read | GET | /product/catalog/catalogs/{identifier} | +| Read | POST | /product/catalog/catalogs/view | +| Update | PATCH | /product/catalog/catalogs/{identifier} | +| Delete | DELETE | /product/catalog/catalogs/{identifier} | + +### Categories + +TODO + +### TODO: Exercises + TODO: Exercise request through REST the bikes from "5 series" TODO: /product/catalog/catalogs/{identifier}/products/view ## PHP API +[[= product_name =]]'s PIM can be extended, accessed through custom controllers, command lines, or whatever you imagine, thanks to the PHP API. + There are several services to read or modify the product model, the products, and other product related features. ### Attribute groups and attributes From a3f4afd115ad6c42d587d07c4906d22bb6fcadf5 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Fri, 18 Oct 2024 09:49:49 +0200 Subject: [PATCH 25/29] 021_product_exchange.md: Fix a link to PHP API Ref --- docs/trainings/commerce/pim/021_product_exchange.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/trainings/commerce/pim/021_product_exchange.md b/docs/trainings/commerce/pim/021_product_exchange.md index d22f1bb6bb..b25d202f15 100644 --- a/docs/trainings/commerce/pim/021_product_exchange.md +++ b/docs/trainings/commerce/pim/021_product_exchange.md @@ -174,7 +174,7 @@ About product search with `ProductServiceInterface::findProducts()`, also see th [Product API > Products > Product assets](product_api.md#product-assets) has an example of asset reading. -[`AssetServiceInterface`](../../../api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-AssetServiceInterface.) is used to read product assets, +[`AssetServiceInterface`](../../../api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-AssetServiceInterface.html) is used to read product assets, and [`LocalAssetServiceInterface`](../../../api/php_api/php_api_reference/classes/Ibexa-Contracts-ProductCatalog-Local-LocalAssetServiceInterface.html) to write some. An asset collection as seen in the back office is represented by an associative array of tags (with attribute identifiers as keys), From 566f1b2a737984d68d0ede310607efe706fde6fb Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Fri, 18 Oct 2024 17:26:49 +0200 Subject: [PATCH 26/29] 011_product_modeling.md: More about translation --- .../commerce/pim/011_product_modeling.md | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index 928dca7676..77326e1ff3 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -50,10 +50,12 @@ Product assets presented bellow are explaining why there is no need to add field Like fields, attributes are typed. -Unlike fields, attributes are never translatable. +Unlike fields, attributes are not translatable in the product. +Attributes are translated from their definition. Attributes are product constant properties. -Attributes values can't be translated because those properties don't change with the language. -Only the display of those properties changes with the language. See the following concept examples: +Attributes values can't be translated from the product because those properties don't change with the language. +Only the display of those properties changes with the language. +See the following concept examples: - The color of a product is the same whatever the language is, only the corresponding color name is translated. - The radius of a sphere doesn't depend on the language, only its numeral representation need translation according to local length units. @@ -63,21 +65,20 @@ Attributes and attribute groups are to be reused from product type to product ty An attribute can be used to make product variant. -TODO: Best practices: -How to think product types? -How to not have a product type per product? -How to not want a "god" product type trying to cover everything? - -TODO: Variants - ## Product and product variants Technically, a product is a content item. But a variant isn't. +A variant has simpler representation +refering to the base product +and declaring values for the variable attributes. TODO: Continue content VS product VS variant +A variant doesn't need translation. +It combines base product's and attributes' translations. + ## Product assets Product assets are collection(s) of images associated to a base product and eventually to its variants. @@ -94,6 +95,11 @@ When displaying a product variant, the application combines the asset collection For example, you can associate close-up photos of a feature to the checkbox representing its presence, while associating full views of the products to each of its available colors. +Assets are not translatable. +If a product is not the same from a region to another, from a language to another, this isn't the same product. +For example, if you want to be able to select the language of the instruction manual whatever the user's region, +you could set this choice in a selection attribute, then load a preview asset to each of its values. + ## Exercise: Bike modeling Exercise: Think about attributes and content type to sell full bicycles and bicycle parts. @@ -269,6 +275,13 @@ But, if you're curious, you can read or implements as a bonus the following cust ; ``` +??? note "Bonus: Translation" + + - Add a language to your installation (Admin > Languages > Add language). + - Translate your attribute groups and attributes using the "Translations" tab when you displaying a group or an attribute in the back office. + - Translate your product types. + - Translate your base products. + Here are some assets for the Fuji bikes, and for the G02 bundles front gears: On Fuji, create the asset collections for the assets to be associated to the corresponding variants. From 196a557de1b291bc91e66c4073a28ca1e2b253dd Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Fri, 18 Oct 2024 17:34:59 +0200 Subject: [PATCH 27/29] composer.json minimum-stability dev ``` Your requirements could not be resolved to an installable set of packages. Problem 1 - Root composer.json requires ibexa/product-catalog 5.0.x-dev -> satisfiable by ibexa/product-catalog[5.0.x-dev (alias of dev-main)]. - ibexa/product-catalog dev-main requires ibexa/core-search ~5.0.x-dev -> found ibexa/core-search[dev-main, 5.0.x-dev (alias of dev-main)] but it does not match your minimum-stability. - ibexa/product-catalog 5.0.x-dev is an alias of ibexa/product-catalog dev-main and thus requires it to be installed too. ``` --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 34e5554136..d0ec35b3b8 100644 --- a/composer.json +++ b/composer.json @@ -69,5 +69,6 @@ }, "config": { "allow-plugins": false - } + }, + "minimum-stability": "dev" } From 922483299e24b748516b011ab140d90dccff9136 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Fri, 18 Oct 2024 18:08:21 +0200 Subject: [PATCH 28/29] Revert "composer.json minimum-stability dev" This reverts commit 196a557de1b291bc91e66c4073a28ca1e2b253dd. --- composer.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/composer.json b/composer.json index d0ec35b3b8..34e5554136 100644 --- a/composer.json +++ b/composer.json @@ -69,6 +69,5 @@ }, "config": { "allow-plugins": false - }, - "minimum-stability": "dev" + } } From 44d73693c211799a0305ea8cb2258217b9dabeb3 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Tue, 19 Nov 2024 13:34:52 +0100 Subject: [PATCH 29/29] 011_product_modeling.md: Add Series column --- .../commerce/pim/011_product_modeling.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/trainings/commerce/pim/011_product_modeling.md b/docs/trainings/commerce/pim/011_product_modeling.md index 77326e1ff3..31591d4059 100644 --- a/docs/trainings/commerce/pim/011_product_modeling.md +++ b/docs/trainings/commerce/pim/011_product_modeling.md @@ -202,20 +202,20 @@ To simplify casual customer experience (and above all the exercise), the vendor The following table shows only properties that can vary. When not all combinations are available, the product has multiple lines. -| Name | Base code | Material | Frame shape | Frameset + wheel size | Saddle | Paint job | Gears | Price | -|:------------|:----------|:---------|:---------------------------|:----------------------|:-----------------|:-----------------------|:--------:|------:| -| Fuji | MTB-S4-4 | Aluminum | Diamond | [S, M, L, XL] + 29″ | Thin | [Sakura, Ronin] | G02-2x10 | 3776€ | -| Fuji | MTB-S4-4 | Aluminum | [Diamond, Step-through] | [S, M, L] + 29″ | [Thin, Large] | [Sakura, Ronin] | G02-1x10 | 3676€ | -| Fuji | MTB-S4-4 | Aluminum | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | [Sakura, Ronin] | G02-1x08 | 3666€ | -| Matterhorn | MTB-S4-5 | Aluminum | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Snow, Rock] | G02-2x12 | 4478€ | -| Annapurna | MTB-S4-6 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | Annapurna | G01-3x12 | 8091€ | -| Etna | MTB-S4-7 | Aluminum | [Diamond, Step-through] | [S, M, L, XL] + 29″ | [Thin, Large] | Etna | G02-1x06 | 3369€ | -| Etna | MTB-S4-7 | Aluminum | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | Etna | G02-1x06 | 3339€ | -| Kilimanjaro | MTB-S5-0 | Aluminum | Step-through w/ suspension | [S, M, L, XL] + 29″ | [Thin, Large] | [Shira, Mawenzi, Kibo] | G03-2x12 | 5895€ | -| Stádda | MTB-S5-1 | Aluminum | Step-through | XS + [26″, 27.5″] | Large | [Sunrise, Sunset] | G04-1x03 | 1392€ | -| Aconcagua | MTB-S5-2 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | [Condor, Llama] | G01-3x12 | 6960€ | -| Ventoux | MTB-S5-3 | Aluminum | Step-through | XS + [26″, 27.5″] | [Thin, Large] | [Provence, Mistral] | G04-1x04 | 1910€ | -| Castor | MTB-S5-4 | Aluminum | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Castor, Pollux] | G03-2x12 | 4225€ | +| Series | Name | Base code | Material | Frame shape | Frameset + wheel size | Saddle | Paint job | Gears | Price | +|:---------|:------------|:----------|:---------|:---------------------------|:----------------------|:-----------------|:-----------------------|:--------:|------:| +| 4 Series | Fuji | MTB-S4-4 | Aluminum | Diamond | [S, M, L, XL] + 29″ | Thin | [Sakura, Ronin] | G02-2x10 | 3776€ | +| 4 Series | Fuji | MTB-S4-4 | Aluminum | [Diamond, Step-through] | [S, M, L] + 29″ | [Thin, Large] | [Sakura, Ronin] | G02-1x10 | 3676€ | +| 4 Series | Fuji | MTB-S4-4 | Aluminum | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | [Sakura, Ronin] | G02-1x08 | 3666€ | +| 4 Series | Matterhorn | MTB-S4-5 | Aluminum | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Snow, Rock] | G02-2x12 | 4478€ | +| 4 Series | Annapurna | MTB-S4-6 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | Annapurna | G01-3x12 | 8091€ | +| 4 Series | Etna | MTB-S4-7 | Aluminum | [Diamond, Step-through] | [S, M, L, XL] + 29″ | [Thin, Large] | Etna | G02-1x06 | 3369€ | +| 4 Series | Etna | MTB-S4-7 | Aluminum | [Diamond, Step-through] | XS + 27.5″ | [Thin, Large] | Etna | G02-1x06 | 3339€ | +| 5 Series | Kilimanjaro | MTB-S5-0 | Aluminum | Step-through w/ suspension | [S, M, L, XL] + 29″ | [Thin, Large] | [Shira, Mawenzi, Kibo] | G03-2x12 | 5895€ | +| 5 Series | Stádda | MTB-S5-1 | Aluminum | Step-through | XS + [26″, 27.5″] | Large | [Sunrise, Sunset] | G04-1x03 | 1392€ | +| 5 Series | Aconcagua | MTB-S5-2 | Carbon | Diamond w/ suspension | [S, M, L, XL] + 29″ | [Thin, Noseless] | [Condor, Llama] | G01-3x12 | 6960€ | +| 5 Series | Ventoux | MTB-S5-3 | Aluminum | Step-through | XS + [26″, 27.5″] | [Thin, Large] | [Provence, Mistral] | G04-1x04 | 1910€ | +| 5 Series | Castor | MTB-S5-4 | Aluminum | Diamond | [S, M, L, XL] + 29″ | [Thin, Large] | [Castor, Pollux] | G03-2x12 | 4225€ | - Create the attribute group(s) - Create the attributes (TODO: two ways in the BO, Attributes page, or attribute group "Attributes" tab)