diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 72b06911e81..681197bfa4b 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,13 +1,15 @@
+## PR labels
+
+When the PR is ready for review, add a **TW review needed** label. This lets us keep track of PRs that need to be merged and merge them in time.
+
+
## PR Description
-Add a meaningful description here that will let us know what you want to fix with this PR or what functionality you want to add.
+Describe the context for your changes and the changes you've made.
+
+## Tickets
-## Steps before you submit a PR
-- Please add tests for the code you add if it's possible.
-- Please check out our contribution guide: https://docs.spryker.com/docs/dg/dev/code-contribution-guide.html
-- Add a `contribution-license-agreement.txt` file with the following content:
-`I hereby agree to Spryker\'s Contribution License Agreement in https://github.com/spryker/spryker-docs/blob/HASH_OF_COMMIT_YOU_ARE_BASING_YOUR_BRANCH_FROM_MASTER_BRANCH/CONTRIBUTING.md.`
+If changes are associated with a ticket, add a docs ticket here.
-This is a mandatory step to make sure you are aware of the license agreement and agree to it. `HASH_OF_COMMIT_YOU_ARE_BASING_YOUR_BRANCH_FROM_MASTER_BRANCH` is a hash of the commit you are basing your branch from the master branch. You can take it from commits list of master branch before you submit a PR.
## Checklist
- [x] I agree with the Code Contribution License Agreement in CONTRIBUTING.md
diff --git a/Rakefile b/Rakefile
index e2557aabc42..d9d199c37d8 100644
--- a/Rakefile
+++ b/Rakefile
@@ -84,11 +84,11 @@ commonOptions = {
/twitter.com\/[\.\w\-\/\?]+/,
/www.optimise-it.de\/[\.\w\-\/\?]+/,
/blackfire.io\/[\.\w\-\/\?]+/,
+ /www.cdata.com\/[\.\w\-\/\?]+/,
/dixa.com\/[\.\w\-\/\?]+/,
/rxjs.dev\/[\.\w\-\/\?]+/,
/www.blackfire.io\/[\.\w\-\/\?]+/,
/linux.die.net\/[\.\w\-\/\?]+/,
- # check next url's
/redisdesktop.com\/[\.\w\-\/\?]+/,
/xdebug.org\/[\.\w\-\/\?]+/,
/www.javaworld.com\/[\.\w\-\/\?]+/,
@@ -96,10 +96,12 @@ commonOptions = {
/code.visualstudio.com\/[\.\w\-\/\?]+/,
/www.jetbrains.com\/[\.\w\-\/\?]+/,
/docs.spring.io\/[\.\w\-\/\?]+/,
- "http://redisdesktop.com/",
- "https://developer.computop.com/display/EN/Test+Cards",
- "https://www.centralbank.cy/",
- "https://www.facebook.com/Spryker/"
+ /redisdesktop.com\/[\.\w\-\/\?]+/,
+ /developer.computop.com\/[\.\w\-\/\?]+/,
+ /www.centralbank.cy\/[\.\w\-\/\?]+/,
+ /dashboard.algolia.com\/[\.\w\-\/\?]+/,
+ /www.facebook.com\/[\.\w\-\/\?]+/
+
],
:ignore_files => [],
:typhoeus => {
@@ -153,7 +155,8 @@ task :check_pbc do
/docs\/pbc\/\w+\/[\w-]+\/202307\.0\/.+/,
/docs\/pbc\/\w+\/[\w-]+\/202403\.0\/.+/,
/docs\/pbc\/\w+\/[\w-]+\/202400\.0\/.+/,
- /docs\/pbc\/\w+\/[\w-]+\/202311\.0\/.+/,
+ /docs\/pbc\/\w+\/[\w-]+\/202311\.0\/.+/,
+ /docs\/pbc\/\w+\/[\w-]+\/202505\.0\/.+/,
/docs\/pbc\/\w+\/[\w-]+\/202404\.0\/.+/
]
run_htmlproofer_with_retry("./_site", options)
diff --git a/_archive/release-notes/release-notes-202212.0/release-notes-202212.0.md b/_archive/release-notes/release-notes-202212.0/release-notes-202212.0.md
index f580fc06f97..626d557e7c4 100644
--- a/_archive/release-notes/release-notes-202212.0/release-notes-202212.0.md
+++ b/_archive/release-notes/release-notes-202212.0/release-notes-202212.0.md
@@ -48,7 +48,7 @@ Adapting your offerings to your customers' needs and locales is crucial for prov
#### Number formatting in the Storefront
-For an effortless shopping experience, the localized number formatting is available throughout the Storefront for any user locale. Whether it is a catalog, product details page, cart, checkout, or customer account, your customers and guests can now enjoy their known number format. This helps to avoid any confusion about pricing or quantities.
+For an effortless shopping experience, the localized number formatting is available throughout the Storefront for any user locale. Whether it's a catalog, product details page, cart, checkout, or customer account, your customers and guests can now enjoy their known number format. This helps to avoid any confusion about pricing or quantities.
##### Documentation
diff --git a/_archive/release-notes/release-notes-202212.0/security-release-notes-202212.0.md b/_archive/release-notes/release-notes-202212.0/security-release-notes-202212.0.md
index 050e7456f94..e47bd5740c2 100644
--- a/_archive/release-notes/release-notes-202212.0/security-release-notes-202212.0.md
+++ b/_archive/release-notes/release-notes-202212.0/security-release-notes-202212.0.md
@@ -60,7 +60,7 @@ spryker/twig (3.17.0 or earlier)
## Missing validation of the wishlist name on adding an item
-Due to the way the characters are handled, it was possible to abuse the name in a way that the constructed URL linked to another resource of the shop instead of the wishlist.
+Because of the way the characters are handled, it was possible to abuse the name in a way that the constructed URL linked to another resource of the shop instead of the wishlist.
**Changes:**
Wishlist module:
@@ -330,7 +330,7 @@ composer update codeception/codeception
Make sure that for the codeception/codeception module, the current version is equal to or later than 4.1.22.
## Known vulnerabilities in frontend dependencies
-- The datatables.net package is vulnerable to Prototype Pollution due to an incomplete fix.
+- The datatables.net package is vulnerable to Prototype Pollution because of an incomplete fix.
- Known Regular Expression Denial of Service (ReDoS) vulnerabilities in the hosted-git-info package.
- Known vulnerabilities in the lodash package (Command Injection, ReDoS, Prototype Pollution).
- Known vulnerabilities in the ssri package (ReDoS).
diff --git a/_config.yml b/_config.yml
index 26493d6e3d2..2ffe8aca783 100644
--- a/_config.yml
+++ b/_config.yml
@@ -136,6 +136,7 @@ versions:
'202311.0': '202311.0'
'202404.0': '202404.0'
'202410.0': '202410.0'
+ '202505.0': '202505.0'
# versioned categories - these must match corresponding directories
versioned_categories:
diff --git a/_data/sidebars/about_all_sidebar.yml b/_data/sidebars/about_all_sidebar.yml
index a720602855f..4c6ce3c49ab 100644
--- a/_data/sidebars/about_all_sidebar.yml
+++ b/_data/sidebars/about_all_sidebar.yml
@@ -7,6 +7,8 @@ entries:
- title: Releases
url: /docs/about/all/releases/product-and-code-releases.html
nested:
+ - title: Security release notes 202412.0
+ url: /docs/about/all/releases/security-release-notes-202412.0.html
- title: Release notes 202410.0
url: /docs/about/all/releases/release-notes-202410.0.html
- title: Security release notes 202409.0
diff --git a/_data/sidebars/ca_dev_sidebar.yml b/_data/sidebars/ca_dev_sidebar.yml
index 0045b08fe7f..37feda18228 100644
--- a/_data/sidebars/ca_dev_sidebar.yml
+++ b/_data/sidebars/ca_dev_sidebar.yml
@@ -135,7 +135,7 @@ entries:
nested:
- title: Assets, logs, or pipelines are not visible in AWS Management Console
url: /docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/assets-logs-or-pipelines-are-not-visible-in-aws-management-console.html
- - title: Deployment fails due to a failed docker authentication
+ - title: Deployment fails because of a failed docker authentication
url: /docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/deployment-fails-due-to-a-failed-docker-authentication.html
- title: Jenkins does not restart
url: /docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/jenkins-does-not-restart.html
diff --git a/_data/sidebars/dg_dev_sidebar.yml b/_data/sidebars/dg_dev_sidebar.yml
index 4fb226f82db..26ccd59c6ee 100644
--- a/_data/sidebars/dg_dev_sidebar.yml
+++ b/_data/sidebars/dg_dev_sidebar.yml
@@ -909,6 +909,8 @@ entries:
- title: Internationalization and multi-store
nested:
+ - title: Adding stores in a multi-database setup
+ url: /docs/dg/dev/internationalization-and-multi-store/adding-stores-in-a-multi-database-setup.html
- title: Handling internationalization
url: /docs/dg/dev/internationalization-and-multi-store/handling-internationalization.html
- title: Managing glossary keys
@@ -1620,8 +1622,23 @@ entries:
url: /docs/dg/dev/acp/integrate-acp-payment-apps-with-spryker-oms-configuration.html
- title: Retaining ACP apps when running destructive deployments
url: /docs/dg/dev/acp/retaining-acp-apps-when-running-destructive-deployments.html
- - title: APIs and overview diagrams for payment service providers
- url: /docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.html
+ - title: APIs and flows for payment service providers
+ url: /docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/apis-and-flows-for-payment-service-providers.html
+ nested:
+ - title: Asynchronous API for payment service providers
+ url: /docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/asynchronous-api-for-payment-service-providers.html
+ - title: Configure and disconnect flows for payment service providers
+ url: /docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/configure-and-disconnect-flows-for-payment-service-providers.html
+ - title: Headless express checkout payment flow for payment service providers
+ url: /docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-express-checkout-payment-flow-for-payment-service-providers.html
+ - title: Headless payment flow for payment service providers
+ url: /docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-payment-flow-for-payment-service-providers.html
+ - title: Hosted payment page flow for payment service providers
+ url: /docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/hosted-payment-page-flow-for-payment-service-providers.html
+ - title: OMS payment flow for payment service providers
+ url: /docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/oms-payment-flow-for-payment-service-providers.html
+ - title: Synchronous API for payment service providers
+ url: /docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/synchronous-api-for-payment-service-providers.html
# - title: Develop an app
# url: /docs/dg/dev/acp/develop-an-app/develop-an-app.html
# nested:
diff --git a/_data/sidebars/pbc_all_sidebar.yml b/_data/sidebars/pbc_all_sidebar.yml
index 03aa37107c4..c30ce3fe1bf 100644
--- a/_data/sidebars/pbc_all_sidebar.yml
+++ b/_data/sidebars/pbc_all_sidebar.yml
@@ -46,7 +46,7 @@ entries:
- title: Set up
url: /docs/pbc/all/business-intelligence/amazon-quicksight-third-party-integration/set-up-amazon-quicksight.html
- title: Install
- url: /docs/pbc/all/business-intelligence/amazon-quicksight-third-party-integration/install-amazon-quicksight.html
+ url: /docs/pbc/all/business-intelligence/amazon-quicksight-third-party-integration/install-amazon-quicksight.html
- title: "Best practices: working with analytics"
url: /docs/pbc/all/business-intelligence/amazon-quicksight-third-party-integration/best-practices-working-with-analytics.html
- title: Refresh analytics datasets
@@ -1247,6 +1247,8 @@ entries:
- title: Add fields to Back Office forms
url: /docs/pbc/all/dynamic-multistore/base-shop/add-fields-to-back-office-forms.html
+ - title: Enable / Disable Dynamic Multistore
+ url: /docs/pbc/all/dynamic-multistore/base-shop/enable-dynamic-multistore.html
- title: Delete stores
url: /docs/pbc/all/dynamic-multistore/base-shop/delete-stores.html
- title: Import stores
@@ -1477,6 +1479,10 @@ entries:
nested:
- title: Marketplace Merchant
url: /docs/pbc/all/merchant-management/marketplace/install-and-upgrade/install-features/install-the-marketplace-merchant-feature.html
+ - title: Marketplace Merchant + Promotions & Discounts
+ url: /docs/pbc/all/merchant-management/marketplace/install-and-upgrade/install-features/install-the-marketplace-merchant-promotions-and-discounts-feature.html
+ include_versions:
+ - "202505.0"
- title: Marketplace Merchant B2B Contract Requests
url: /docs/pbc/all/merchant-management/marketplace/install-and-upgrade/install-features/install-the-marketplace-merchant-b2b-contract-requests-feature.html
include_versions:
@@ -1939,6 +1945,10 @@ entries:
url: /docs/pbc/all/offer-management/marketplace/install-and-upgrade/install-features/install-the-marketplace-product-offer-marketplace-product-feature.html
- title: Marketplace Product Offer + Quick Add to Cart
url: /docs/pbc/all/offer-management/marketplace/install-and-upgrade/install-features/install-the-marketplace-product-offer-quick-add-to-cart-feature.html
+ - title: Marketplace Product Offer + Promotions & Discounts feature
+ url: /docs/pbc/all/offer-management/marketplace/install-and-upgrade/install-features/install-the-marketplace-product-offer-promotions-and-discounts-feature.html
+ include_versions:
+ - "202505.0"
- title: Product Offer Shipment Availability
url: /docs/pbc/all/offer-management/marketplace/install-and-upgrade/install-features/install-the-product-offer-shipment-availability-feature.html
- title: Product Offer Shipment
@@ -2303,20 +2313,12 @@ entries:
url: /docs/pbc/all/payment-service-provider/base-shop/payments-feature-overview.html
- title: Install and upgrade
nested:
- - title: Install features
- nested:
- - title: Payments
- url: /docs/pbc/all/payment-service-provider/base-shop/install-and-upgrade/install-the-payments-feature.html
-
- - title: Install Glue APIs
- nested:
- - title: Payments
- url: /docs/pbc/all/payment-service-provider/base-shop/install-and-upgrade/install-the-payments-glue-api.html
-
- - title: Upgrade modules
- nested:
- - title: Payment
- url: /docs/pbc/all/payment-service-provider/base-shop/install-and-upgrade/upgrade-the-payment-module.html
+ - title: Install the Payments feature
+ url: /docs/pbc/all/payment-service-provider/base-shop/install-and-upgrade/install-the-payments-feature.html
+ - title: Install the Payments Glue API
+ url: /docs/pbc/all/payment-service-provider/base-shop/install-and-upgrade/install-the-payments-glue-api.html
+ - title: Upgrade the Payment module
+ url: /docs/pbc/all/payment-service-provider/base-shop/install-and-upgrade/upgrade-the-payment-module.html
- title: Import and export data
url: /docs/pbc/all/payment-service-provider/base-shop/import-and-export-data/payment-service-provider-data-import-and-export.html
@@ -2334,12 +2336,20 @@ entries:
- title: View payment methods
url: /docs/pbc/all/payment-service-provider/base-shop/manage-in-the-back-office/view-payment-methods.html
+ - title: Define return URLs for payments
+ url: /docs/pbc/all/payment-service-provider/base-shop/define-return-urls-for-payments.html
+ include_versions:
+ - "202410.0"
- title: Debug payment integrations locally
url: /docs/pbc/all/payment-service-provider/base-shop/debug-payment-integrations-locally.html
- title: Hydrate payment methods for an order
url: /docs/pbc/all/payment-service-provider/base-shop/hydrate-payment-methods-for-an-order.html
- title: Interact with third party payment providers using Glue API
url: /docs/pbc/all/payment-service-provider/base-shop/interact-with-third-party-payment-providers-using-glue-api.html
+ - title: Payment method strategies
+ url: /docs/pbc/all/payment-service-provider/base-shop/payment-method-strategies.html
+ include_versions:
+ - "202410.0"
- title: Retrieve and use payment details from third-party PSPs
url: /docs/pbc/all/payment-service-provider/base-shop/retrieve-and-use-payment-details-from-third-party-psps.html
- title: "Payments feature: Domain model and relationships"
@@ -2426,6 +2436,14 @@ entries:
url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/payone/app-composition-platform-integration/configure-payone.html
- title: Disconnect Payone
url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/payone/app-composition-platform-integration/disconnect-payone.html
+ - title: Payment method flows
+ nested:
+ - title: PayOne Credit Card payment flow
+ url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/payone/app-composition-platform-integration/payment-method-flows/payone-credit-card-payment-flow.html
+ - title: PayOne PayPal Express payment flow in headless applications
+ url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/payone/app-composition-platform-integration/payment-method-flows/payone-paypal-express-payment-flow-in-headless-applications.html
+ - title: Payone PayPal payment flow
+ url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/payone/app-composition-platform-integration/payment-method-flows/payone-paypal-payment-flow.html
- title: Manual integration
url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/payone/manual-integration/payone-manual-integration.html
@@ -2596,10 +2614,23 @@ entries:
url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/install-and-configure-stripe-prerequisites.html
- title: Connect and configure
url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/connect-and-configure-stripe.html
- - title: Project guidelines
- url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe.html
- title: Disconnect
url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/disconnect-stripe.html
+ - title: Project guidelines
+ url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe/project-guidelines-for-stripe.html
+ nested:
+ - title: Embed the Stripe payment page as an iframe
+ url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe/embed-the-stripe-payment-page-as-an-iframe.html
+ - title: Implement Stripe checkout as a hosted payment page
+ url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe/project-prerequisites-for-implementing-Stripe-checkout-as-a-hosted-payment-page.html
+ - title: OMS configuration for Stripe
+ url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe/oms-configuration-for-stripe.html
+ - title: Processing refunds with Stripe
+ url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe/processing-refunds-with-stripe.html
+ - title: Sending additional data to Stripe
+ url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe/sending-additional-data-to-stripe.html
+ - title: Stripe checkout with third-party frontends
+ url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe/stripe-checkout-with-third-party-frontends.html
- title: Unzer
url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/unzer/unzer.html
@@ -3829,10 +3860,23 @@ entries:
url: /docs/pbc/all/search/base-shop/third-party-integrations/algolia/integrate-algolia.html
- title: Configure Algolia
url: /docs/pbc/all/search/base-shop/third-party-integrations/algolia/configure-algolia.html
+ - title: Customize Algolia
+ url: /docs/pbc/all/search/base-shop/third-party-integrations/algolia/customize-algolia.html
+ include_versions:
+ - "202410.0"
- title: Disconnect Algolia
url: /docs/pbc/all/search/base-shop/third-party-integrations/algolia/disconnect-algolia.html
- - title: Getting access to Algolia dashboard
+ - title: Getting access to Algolia Dashboard
url: /docs/pbc/all/search/base-shop/third-party-integrations/algolia/getting-access-to-algolia-dashboard.html
+ - title: Integrate Algolia Personalization
+ url: /docs/pbc/all/search/base-shop/third-party-integrations/algolia/integrate-algolia-personalization.html
+ include_versions:
+ - "202410.0"
+ - title: Algolia Personalization with headless frontends
+ url: /docs/pbc/all/search/base-shop/third-party-integrations/algolia/algolia-personalization-with-headless-frontends.html
+ include_versions:
+ - "202410.0"
+
- title: Visual Search powered by OpenAI
url: /docs/pbc/all/search/base-shop/third-party-integrations/visual-search-powered-by-openai/install-visual-search-powered-by-openai.html
include_versions:
diff --git a/_drafts/acp-apps-development/develop-an-app/app-manifest.md b/_drafts/acp-apps-development/develop-an-app/app-manifest.md
index 646f99a3158..3d3e42a9560 100644
--- a/_drafts/acp-apps-development/develop-an-app/app-manifest.md
+++ b/_drafts/acp-apps-development/develop-an-app/app-manifest.md
@@ -119,7 +119,7 @@ For the manifest, make sure to follow these conditions:
|description | Full description of the app. New line symbols and HTML tags are not allowed. | "description": "BS PAYONE GmbH is headquartered in Frankfurt am Main and is one of the leading omnichannel-payment providers in Europe. In addition to providing customer support to numerous Savings Banks (Sparkasse) the full-service payment service provider also provides cashless payment transaction services to more than 255,000 customers from stationary trade to the automated and holistic processing of e-commerce and mobile payments." |
|developedBy | Optional. Provides information about who developed the App. | "developedBy": "Spryker Systems GmbH" |
|url | URL to a homepage of the application provider (not visible in the AppCatalog). | "url": "https://www.payone.com/DE-en" |
-|isAvailable | Shows if the application is currently available. Possible values:
false — the application is not available, it isn't possible to connect and configure it.
true — the application is available, it’s possible to connect, configure, and use it.
| "isAvailable": true |
+|isAvailable | Shows if the application is currently available. Possible values:
false — the application is not available, it's not possible to connect and configure it.
true — the application is available, it’s possible to connect, configure, and use it.
| "isAvailable": true |
|businessModels | An array of suite types that are compatible with the application. Possible values:
B2C
B2B
B2C_MARKETPLACE
B2B_MARKETPLACE
| See *businessModels example* under this table. |
|categories | An array of categories that the application belongs to. Possible values:
BUSINESS_INTELLIGENCE
CONSENT_MANAGEMENT
LOYALTY_MANAGEMENT
PAYMENT
PRODUCT_INFORMATION_MANAGEMENT
SEARCH
TAX
USER_GENERATED_CONTENT
| See *categories example* under this table. |
|pages | Adds additional content to the application detail page. This part contains an object with a page type and its blocks. Possible page types (object keys):
Overview
Legal
Each page can contain no or multiple blocks. Each block should be specified by an object with the following keys:
title — header of the block;
type — the way the data is displayed. Possible values:
list
text
data — information that is displayed inside the block. Can be a string, if *type=text*, or an array of strings if *type=list*.
| See *pages example* under this table. |
diff --git a/_drafts/acp-apps-development/develop-an-app/sync-api.md b/_drafts/acp-apps-development/develop-an-app/sync-api.md
index 2e6b2014b31..e79aafa1658 100644
--- a/_drafts/acp-apps-development/develop-an-app/sync-api.md
+++ b/_drafts/acp-apps-development/develop-an-app/sync-api.md
@@ -7,7 +7,7 @@ redirect_from:
- /docs/acp/user/sync-api.html
---
-[Sync API](https://github.com/spryker-sdk/sync-api/) is the synchronous API that Spryker supports. In the Spryker terminology, it is also known as [Glue API](/docs/dg/dev/glue-api/{{site.version}}/old-glue-infrastructure/glue-rest-api.html) with its [REST API B2C Demo Shop](/docs/dg/dev/glue-api/{{site.version}}/old-glue-infrastructure/rest-api-marketplace-b2c-demo-shop-reference.html) and [REST API B2B Demo Shop](/docs/dg/dev/glue-api/{{site.version}}/old-glue-infrastructure/rest-api-b2b-demo-shop-reference.html) endpoints. The schema files we use follow the [OpenAPI specification](https://swagger.io/specification/).
+[Sync API](https://github.com/spryker-sdk/sync-api/) is the synchronous API that Spryker supports. In the Spryker terminology, it's also known as [Glue API](/docs/dg/dev/glue-api/{{site.version}}/old-glue-infrastructure/glue-rest-api.html) with its [REST API B2C Demo Shop](/docs/dg/dev/glue-api/{{site.version}}/old-glue-infrastructure/rest-api-marketplace-b2c-demo-shop-reference.html) and [REST API B2B Demo Shop](/docs/dg/dev/glue-api/{{site.version}}/old-glue-infrastructure/rest-api-b2b-demo-shop-reference.html) endpoints. The schema files we use follow the [OpenAPI specification](https://swagger.io/specification/).
Spryker uses schema files to generate code for your project, including predefined test cases. The purpose of doing so is to let you focus on building your business logic without caring about the boilerplate code.
## Code generation
diff --git a/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-debugging-in-devvm/configuring-debugging-in-devvm.md b/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-debugging-in-devvm/configuring-debugging-in-devvm.md
index c637166ee18..a190347ec97 100644
--- a/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-debugging-in-devvm/configuring-debugging-in-devvm.md
+++ b/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-debugging-in-devvm/configuring-debugging-in-devvm.md
@@ -99,7 +99,7 @@ Define servers in PhpStorm:
1. In PhpStorm, go to **Preferences** > **Languages & Frameworks** > **PHP** > **Servers**.
2. Add a new server:
1. Select **+**.
- 2. Enter a **Name**. For example, `zed.mysprykershop.com` (it is used in CLI below).
+ 2. Enter a **Name**. For example, `zed.mysprykershop.com` (it's used in CLI below).
3. For **Host**, enter `~^zed\.de\..+\.local$`.
4. Select **Use path mappings**.
5. For **Absolute path on server**, select `/data/shop/development/current`.
diff --git a/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-spryker-with-devvm/configuring-spryker-after-installing-with-devvm.md b/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-spryker-with-devvm/configuring-spryker-after-installing-with-devvm.md
index 5df93698045..68a85f3ac4a 100644
--- a/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-spryker-with-devvm/configuring-spryker-after-installing-with-devvm.md
+++ b/_drafts/deprecated-devvm/installing-spryker-with-development-virtual-machine/configuring-spryker-with-devvm/configuring-spryker-after-installing-with-devvm.md
@@ -37,7 +37,7 @@ We will soon deprecate the DevVM and stop supporting it. Therefore, we highly re
## Configuring Git
-If you want to commit from within the VM, it is recommended to set the right Git preferences:
+If you want to commit from within the VM, it's recommended to set the right Git preferences:
```bash
git config --global user.email "your.email@domain.tld"
diff --git a/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-installation-fails-or-project-folder-can-not-be-mounted-due-to-sip.md b/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-installation-fails-or-project-folder-can-not-be-mounted-due-to-sip.md
index 92ac6ab5715..5ee07635002 100644
--- a/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-installation-fails-or-project-folder-can-not-be-mounted-due-to-sip.md
+++ b/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-installation-fails-or-project-folder-can-not-be-mounted-due-to-sip.md
@@ -1,6 +1,6 @@
---
-title: Mac OSX - Installation fails or project folder can not be mounted due to SIP
-description: Learn how to fix the issue when installation fails on MacOS or project folder can not be mounted due to SIP
+title: Mac OSX - Installation fails or project folder can not be mounted because of SIP
+description: Learn how to fix the issue when installation fails on MacOS or project folder can not be mounted because of SIP
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/mac-osx-installation-fails-or-project-folder-can-not-be-mounted-due-to-sip
@@ -21,7 +21,7 @@ related:
## Description
-Sometimes, installation fails or project folder can not be mounted due to SIP on MacOS.
+Sometimes, installation fails or project folder can not be mounted because of SIP on MacOS.
## Cause
diff --git a/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-iterm2-locale-error.md b/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-iterm2-locale-error.md
index 17308ba628b..6905a50891e 100644
--- a/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-iterm2-locale-error.md
+++ b/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-iterm2-locale-error.md
@@ -13,7 +13,7 @@ redirect_from:
- /v6/docs/mac-osx-iterm2-locale-error
- /v6/docs/en/mac-osx-iterm2-locale-error
related:
- - title: Mac OSX - Installation fails or project folder can not be mounted due to SIP
+ - title: Mac OSX - Installation fails or project folder can not be mounted because of SIP
link: docs/scos/dev/troubleshooting/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-installation-fails-or-project-folder-can-not-be-mounted-due-to-sip.html
- title: Mac OSX - Wrong curl version error
link: docs/scos/dev/troubleshooting/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-wrong-curl-version-error.html
diff --git a/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-wrong-curl-version-error.md b/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-wrong-curl-version-error.md
index 7846abf857d..3c180d98a2e 100644
--- a/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-wrong-curl-version-error.md
+++ b/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-wrong-curl-version-error.md
@@ -13,7 +13,7 @@ redirect_from:
- /v6/docs/mac-osx-wrong-curl-version-error
- /v6/docs/en/mac-osx-wrong-curl-version-error
related:
- - title: Mac OSX - Installation fails or project folder can not be mounted due to SIP
+ - title: Mac OSX - Installation fails or project folder can not be mounted because of SIP
link: docs/scos/dev/troubleshooting/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-installation-fails-or-project-folder-can-not-be-mounted-due-to-sip.html
- title: Mac OSX - iterm2 (locale error)
link: docs/scos/dev/troubleshooting/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-iterm2-locale-error.html
diff --git a/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/troubleshooting-spryker-in-vagrant-installation-issues.md b/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/troubleshooting-spryker-in-vagrant-installation-issues.md
index f41e6ac36d7..3780e48a04a 100644
--- a/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/troubleshooting-spryker-in-vagrant-installation-issues.md
+++ b/_drafts/deprecated-devvm/troubleshooting-spryker-in-vagrant-issues/troubleshooting-spryker-in-vagrant-installation-issues.md
@@ -36,7 +36,7 @@ When you [install Spryker with Vagrant](/docs/dg/dev/set-up-spryker-locally/inst
MacOS issues:
* [Mac OSX: iterm2 (locale error)](/docs/dg/dev/troubleshooting/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-iterm2-locale-error.html)
- * [Mac OSX: Installation fails or project folder can not be mounted due to SIP](/docs/dg/dev/troubleshooting/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-installation-fails-or-project-folder-can-not-be-mounted-due-to-sip.html)
+ * [Mac OSX: Installation fails or project folder can not be mounted because of SIP](/docs/dg/dev/troubleshooting/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-installation-fails-or-project-folder-can-not-be-mounted-due-to-sip.html)
* [Mac OSX: Wrong curl version error](/docs/dg/dev/troubleshooting/troubleshooting-spryker-in-vagrant-issues/macos-issues/mac-osx-wrong-curl-version-error.html)
Windows issues:
diff --git a/_drafts/docs-updates.md b/_drafts/docs-updates.md
index 1a9bc951a1d..6179031074f 100644
--- a/_drafts/docs-updates.md
+++ b/_drafts/docs-updates.md
@@ -66,7 +66,7 @@ In February 2024, we have added and updated the following pages:
- [Merchant Portal Agent Assist feature overview](/docs/pbc/all/user-management/202404.0/marketplace/merchant-portal-agent-assist-feature-overview.html).
- [Finilizing upgrades](/docs/ca/devscu/finilizing-upgrades.html): Learn how you can make sure everything works correctly after upgrading a module.
- [Manage Stripe configurations in the ACP catalog](/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/connect-and-configure-stripe.html).
-- [Project guidelines for the Stripe app](/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe.html).
+- [Project guidelines for the Stripe app](/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe/project-guidelines-for-stripe.html).
### Updated pages
diff --git a/_drafts/drafts-dev/database-schema-guide/201811.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/201811.0/catalog-schema.md
index 966e67f6c44..edd9e889886 100644
--- a/_drafts/drafts-dev/database-schema-guide/201811.0/catalog-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/201811.0/catalog-schema.md
@@ -53,7 +53,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value
**Structure:**
* Attributes are identified by the key (e.g. "material").
-* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata
+* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata
* Super-Attributes must be declared here with `is_super=true`.
* **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data.
@@ -212,7 +212,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca
* **Base Unit**
- An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item")
- - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
+ - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
* **Sales Unit**
@@ -253,7 +253,7 @@ Even when the product is marked as splittable, Spryker may still save them into
### Packaging Units
{% info_block infoBox %}
-A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant:
+A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant:
{% endinfo_block %}
![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png)
@@ -269,7 +269,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a
**Structure:**
-* A Packaging Unit is represented by a Concrete Product
+* A Packaging Unit's represented by a Concrete Product
* The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount.
- `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples
@@ -373,7 +373,7 @@ Spryker ships with several price related features. Here is an overview:
| Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. |
| Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- |
| Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. |
-| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it is also possible that a price-per-business is fixed and the promotion price is ignored.
|
+| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it's also possible that a price-per-business is fixed and the promotion price is ignored.
|
{% info_block errorBox %}
The Promotional price feature is currently under development.
{% endinfo_block %}
diff --git a/_drafts/drafts-dev/database-schema-guide/201811.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/201811.0/sales-schema.md
index bba8dde9f73..b43e142146e 100644
--- a/_drafts/drafts-dev/database-schema-guide/201811.0/sales-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/201811.0/sales-schema.md
@@ -48,7 +48,7 @@ It is currently not possible to realize splits with Sales Order Items that have
### Customer Data
-The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes.
+The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes.
![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png)
**Structure**:
diff --git a/_drafts/drafts-dev/database-schema-guide/201903.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/201903.0/catalog-schema.md
index 0eb14398d5d..29ab746cbee 100644
--- a/_drafts/drafts-dev/database-schema-guide/201903.0/catalog-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/201903.0/catalog-schema.md
@@ -52,7 +52,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value
**Structure:**
* Attributes are identified by the key (e.g. "material").
-* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata
+* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata
* Super-Attributes must be declared here with `is_super=true`.
* **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data.
@@ -210,7 +210,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca
* **Base Unit**
- An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item")
- - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
+ - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
* **Sales Unit**
@@ -251,7 +251,7 @@ Even when the product is marked as splittable, Spryker may still save them into
### Packaging Units
{% info_block infoBox %}
-A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant:
+A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant:
{% endinfo_block %}
![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png)
@@ -267,7 +267,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a
**Structure:**
-* A Packaging Unit is represented by a Concrete Product
+* A Packaging Unit's represented by a Concrete Product
* The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount.
- `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples
@@ -371,7 +371,7 @@ Spryker ships with several price related features. Here is an overview:
| Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. |
| Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- |
| Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. |
-| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it is also possible that a price-per-business is fixed and the promotion price is ignored.
|
+| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it's also possible that a price-per-business is fixed and the promotion price is ignored.
|
{% info_block errorBox %}
The Promotional price feature is currently under development.
{% endinfo_block %}
diff --git a/_drafts/drafts-dev/database-schema-guide/201903.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/201903.0/sales-schema.md
index 28910b77f4c..2a77f17d998 100644
--- a/_drafts/drafts-dev/database-schema-guide/201903.0/sales-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/201903.0/sales-schema.md
@@ -48,7 +48,7 @@ It is currently not possible to realize splits with Sales Order Items that have
### Customer Data
-The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes.
+The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes.
![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png)
**Structure**:
diff --git a/_drafts/drafts-dev/database-schema-guide/201907.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/201907.0/catalog-schema.md
index 617e89d94db..92d71cba07d 100644
--- a/_drafts/drafts-dev/database-schema-guide/201907.0/catalog-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/201907.0/catalog-schema.md
@@ -52,7 +52,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value
**Structure:**
* Attributes are identified by the key (e.g. "material").
-* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata
+* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata
* Super-Attributes must be declared here with `is_super=true`.
* **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data.
@@ -210,7 +210,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca
* **Base Unit**
- An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item")
- - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
+ - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
* **Sales Unit**
@@ -251,7 +251,7 @@ Even when the product is marked as splittable, Spryker may still save them into
### Packaging Units
{% info_block infoBox %}
-A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant:
+A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant:
{% endinfo_block %}
![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png)
@@ -267,7 +267,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a
**Structure:**
-* A Packaging Unit is represented by a Concrete Product
+* A Packaging Unit's represented by a Concrete Product
* The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount.
- `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples
@@ -371,7 +371,7 @@ Spryker ships with several price related features. Here is an overview:
| Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. |
| Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- |
| Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. |
-| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it is also possible that a price-per-business is fixed and the promotion price is ignored.
|
+| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it's also possible that a price-per-business is fixed and the promotion price is ignored.
|
{% info_block errorBox %}
The Promotional price feature is currently under development.
{% endinfo_block %}
diff --git a/_drafts/drafts-dev/database-schema-guide/201907.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/201907.0/sales-schema.md
index 5ebded26a10..e04160e0000 100644
--- a/_drafts/drafts-dev/database-schema-guide/201907.0/sales-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/201907.0/sales-schema.md
@@ -48,7 +48,7 @@ It is currently not possible to realize splits with Sales Order Items that have
### Customer Data
-The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes.
+The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes.
![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png)
**Structure**:
diff --git a/_drafts/drafts-dev/database-schema-guide/202001.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/202001.0/catalog-schema.md
index 4ad3f44846d..4ce6f5a6997 100644
--- a/_drafts/drafts-dev/database-schema-guide/202001.0/catalog-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/202001.0/catalog-schema.md
@@ -52,7 +52,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value
**Structure:**
* Attributes are identified by the key (e.g. "material").
-* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata
+* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata
* Super-Attributes must be declared here with `is_super=true`.
* **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data.
@@ -210,7 +210,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca
* **Base Unit**
- An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item")
- - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
+ - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
* **Sales Unit**
@@ -251,7 +251,7 @@ Even when the product is marked as splittable, Spryker may still save them into
### Packaging Units
{% info_block infoBox %}
-A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant:
+A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant:
{% endinfo_block %}
![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png)
@@ -267,7 +267,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a
**Structure:**
-* A Packaging Unit is represented by a Concrete Product
+* A Packaging Unit's represented by a Concrete Product
* The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount.
- `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples
@@ -371,7 +371,7 @@ Spryker ships with several price related features. Here is an overview:
| Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. |
| Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- |
| Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. |
-| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it is also possible that a price-per-business is fixed and the promotion price is ignored.
|
+| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it's also possible that a price-per-business is fixed and the promotion price is ignored.
|
{% info_block errorBox %}
The Promotional price feature is currently under development.
{% endinfo_block %}
diff --git a/_drafts/drafts-dev/database-schema-guide/202001.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/202001.0/sales-schema.md
index d3fe09fe0b0..ddb1afe9de0 100644
--- a/_drafts/drafts-dev/database-schema-guide/202001.0/sales-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/202001.0/sales-schema.md
@@ -48,7 +48,7 @@ It is currently not possible to realize splits with Sales Order Items that have
### Customer Data
-The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes.
+The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes.
![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png)
**Structure**:
diff --git a/_drafts/drafts-dev/database-schema-guide/202005.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/202005.0/catalog-schema.md
index dfeba60691f..678abdbd366 100644
--- a/_drafts/drafts-dev/database-schema-guide/202005.0/catalog-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/202005.0/catalog-schema.md
@@ -52,7 +52,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value
**Structure:**
* Attributes are identified by the key (e.g. "material").
-* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata
+* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata
* Super-Attributes must be declared here with `is_super=true`.
* **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data.
@@ -210,7 +210,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca
* **Base Unit**
- An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item")
- - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
+ - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
* **Sales Unit**
@@ -251,7 +251,7 @@ Even when the product is marked as splittable, Spryker may still save them into
### Packaging Units
{% info_block infoBox %}
-A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant:
+A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant:
{% endinfo_block %}
![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png)
@@ -267,7 +267,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a
**Structure:**
-* A Packaging Unit is represented by a Concrete Product
+* A Packaging Unit's represented by a Concrete Product
* The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount.
- `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples
@@ -371,7 +371,7 @@ Spryker ships with several price related features. Here is an overview:
| Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. |
| Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- |
| Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. |
-| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it is also possible that a price-per-business is fixed and the promotion price is ignored.
|
+| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it's also possible that a price-per-business is fixed and the promotion price is ignored.
|
{% info_block errorBox %}
The Promotional price feature is currently under development.
{% endinfo_block %}
diff --git a/_drafts/drafts-dev/database-schema-guide/202005.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/202005.0/sales-schema.md
index a8845a957ea..4e11182d2c5 100644
--- a/_drafts/drafts-dev/database-schema-guide/202005.0/sales-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/202005.0/sales-schema.md
@@ -48,7 +48,7 @@ It is currently not possible to realize splits with Sales Order Items that have
### Customer Data
-The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes.
+The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes.
![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png)
**Structure**:
diff --git a/_drafts/drafts-dev/database-schema-guide/202009.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/202009.0/catalog-schema.md
index 3950fb7fe37..3351227479d 100644
--- a/_drafts/drafts-dev/database-schema-guide/202009.0/catalog-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/202009.0/catalog-schema.md
@@ -52,7 +52,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value
**Structure:**
* Attributes are identified by the key (e.g. "material").
-* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata
+* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata
* Super-Attributes must be declared here with `is_super=true`.
* **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data.
@@ -211,7 +211,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca
* **Base Unit**
- An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item")
- - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
+ - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
* **Sales Unit**
@@ -252,7 +252,7 @@ Even when the product is marked as splittable, Spryker may still save them into
### Packaging Units
{% info_block infoBox %}
-A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant:
+A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant:
{% endinfo_block %}
![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png)
@@ -268,7 +268,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a
**Structure:**
-* A Packaging Unit is represented by a Concrete Product
+* A Packaging Unit's represented by a Concrete Product
* The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount.
- `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples
@@ -372,7 +372,7 @@ Spryker ships with several price related features. Here is an overview:
| Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. |
| Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- |
| Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. |
-| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it is also possible that a price-per-business is fixed and the promotion price is ignored.
|
+| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it's also possible that a price-per-business is fixed and the promotion price is ignored.
|
{% info_block errorBox %}
The Promotional price feature is currently under development.
{% endinfo_block %}
diff --git a/_drafts/drafts-dev/database-schema-guide/202009.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/202009.0/sales-schema.md
index 6cffc1e199f..3566ad2b6e3 100644
--- a/_drafts/drafts-dev/database-schema-guide/202009.0/sales-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/202009.0/sales-schema.md
@@ -48,7 +48,7 @@ It is currently not possible to realize splits with Sales Order Items that have
### Customer Data
-The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes.
+The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes.
![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png)
**Structure**:
diff --git a/_drafts/drafts-dev/database-schema-guide/202108.0/catalog-schema.md b/_drafts/drafts-dev/database-schema-guide/202108.0/catalog-schema.md
index c3f118c0c6d..8cc07b6e013 100644
--- a/_drafts/drafts-dev/database-schema-guide/202108.0/catalog-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/202108.0/catalog-schema.md
@@ -54,7 +54,7 @@ Any product can have any Attributes. The data is stored as pairs of keys / value
**Structure:**
* Attributes are identified by the key (e.g. "material").
-* The table `spy_product_attribute_key` can contain attribute keys so that it is possible to add metadata
+* The table `spy_product_attribute_key` can contain attribute keys so that it's possible to add metadata
* Super-Attributes must be declared here with `is_super=true`.
* **Data for PIM**: On the left side of `spy_product_attribute_key` you see the general attribute meta data that can be attached to the keys. (warning) This meta data is only used for the integrated PIM and does not work for imported data.
@@ -212,7 +212,7 @@ Products can be sold in different **Measurement Units**. For instance, apples ca
* **Base Unit**
- An Abstract Product can have a Base Unit (otherwise we assume that the product is sold as "Item")
- - The Base Unit is used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
+ - The Base Unit's used for all internal calculations of prices and stocks (e.g Cables are usually calculated in kilogram).
* **Sales Unit**
@@ -253,7 +253,7 @@ Even when the product is marked as splittable, Spryker may still save them into
### Packaging Units
{% info_block infoBox %}
-A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit is represented by one product variant:
+A shop can sell the same product in different Packaging Units, for example, to sell apples, options could be to sell apples as "Item", a "Bag" of apples or a "Pallet" of apples. Each Packaging Unit's represented by one product variant:
{% endinfo_block %}
![Packaging units](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Catalog+Schema/packaging-units.png)
@@ -269,7 +269,7 @@ A packaging unit contains multiple items of a product. For instance, a "Bag of a
**Structure:**
-* A Packaging Unit is represented by a Concrete Product
+* A Packaging Unit's represented by a Concrete Product
* The Packaging Unit has a type (like "Bag", "Pallet" or "Item) and a fixed or variable amount.
- `spy_product_packaging_unit_amount::default_amount` - E.g. a bag contains 10 apples
@@ -373,7 +373,7 @@ Spryker ships with several price related features. Here is an overview:
| Merchant Price | The same product is sold by different merchants. Each merchant provides its own price (like at Amazon Marketplace).In B2C Shops the Merchant Prices are usually used for all customers while in B2B scenarios there can be individual Merchant Prices that are only valid for a relationship between a Merchant and some Company Business Units. |
| Custom Amount Price(for Packaging Units) | With packaging units we will introduce a possibility to change the amount. There is always a default amount that is related to the price of the product variant. In case the customer changes another amount then the price is adapted.Example: A bag of 10 apples costs 5.-. The customer changes the amount to 12 apples then he pays 5 * 12/10 = 6.- |
| Price Types | Some products have multiple Price Types. For instance a mobile phone contract has a one-time price, a monthly fee and a working-price per minute. |
-| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it is also possible that a price-per-business is fixed and the promotion price is ignored.
|
+| Promotion price(~ former "Strike Price") | A temporal lower price that is shown as a strike price in shop.This can be configured in two ways per company/business-unit:
If the promotion price is lower than the price-per-business unit then it will be used (and vice-versa)
But it's also possible that a price-per-business is fixed and the promotion price is ignored.
|
{% info_block errorBox %}
The Promotional price feature is currently under development.
{% endinfo_block %}
diff --git a/_drafts/drafts-dev/database-schema-guide/202108.0/sales-schema.md b/_drafts/drafts-dev/database-schema-guide/202108.0/sales-schema.md
index f78061069ed..746da8346d2 100644
--- a/_drafts/drafts-dev/database-schema-guide/202108.0/sales-schema.md
+++ b/_drafts/drafts-dev/database-schema-guide/202108.0/sales-schema.md
@@ -50,7 +50,7 @@ It is currently not possible to realize splits with Sales Order Items that have
### Customer Data
-The Sales Order contains a copy of the Customer data so that it is not affected if the Customer makes changes.
+The Sales Order contains a copy of the Customer data so that it's not affected if the Customer makes changes.
![Customer data](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Database+Schema+Guide/Sales+Schema/customer-data.png)
**Structure**:
diff --git a/_drafts/drafts-dev/multistore-infrastructure-options.md b/_drafts/drafts-dev/multistore-infrastructure-options.md
index d47f7a33cb7..d86a65663a1 100644
--- a/_drafts/drafts-dev/multistore-infrastructure-options.md
+++ b/_drafts/drafts-dev/multistore-infrastructure-options.md
@@ -12,7 +12,7 @@ Multi-store setup 1: Database, search engine, and key-value storage are shared b
![multi-store setup 1](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/how-to-set-up-multiple-stores.md/multi-store-setup-configuration-option-1.png)
-Due to the resources being shared, the infrastructure costs are low. This setup is most suitable for B2C projects with low traffic and a small amount of data like products and prices.
+Because of the resources being shared, the infrastructure costs are low. This setup is most suitable for B2C projects with low traffic and a small amount of data like products and prices.
Multi-store setup 2: Each store has a dedicated search engine and key-value storage while the database is shared.
diff --git a/_drafts/drafts-dev/roadmap.md b/_drafts/drafts-dev/roadmap.md
index 633e7b0f8ff..654f7dced43 100644
--- a/_drafts/drafts-dev/roadmap.md
+++ b/_drafts/drafts-dev/roadmap.md
@@ -44,7 +44,7 @@ The roadmap contains features and not architectural items, enhancements, technol
|Click and Collect |
Select pickup as a delivery method
Pickup in-store or other locations like lockers, affiliates, or warehouses
Allow customers to select a pickup time
A pickup location and time is confirmed by email and a collection code
Define and manage pickup locations
Manage the capacity of pickup slots
|
|Service and appointment scheduling|
Scheduling pickup appointments for Click and Collect
Support for selling services that require an appointment
Maintaining vendor’s calendar and available slots
Appointment cancelation and rescheduling
|
|Pick and Collect application |
Mobile application for store employees to keep track of order picking and collection
Best picking route configured per location
Order by order or “wave” picking approaches
Generating and exporting pick lists as PDF or HTML
Product substitution rules
|
-|Multistore - channels and stores|Channels decouple *what* you sell from *how* it is presented. **Channels:**
Create separate channels for desktop and mobile
Define a separate URL, UI theme, time zone, currency, and locale
Together with the Storefront as a service, create different Storefronts without the overhead of duplicating store data in Spryker
**Stores:**
Define catalog, prices, and promotions
Define business logic
Define store settings
|
+|Multistore - channels and stores|Channels decouple *what* you sell from *how* it's presented. **Channels:**
Create separate channels for desktop and mobile
Define a separate URL, UI theme, time zone, currency, and locale
Together with the Storefront as a service, create different Storefronts without the overhead of duplicating store data in Spryker
**Stores:**
Define catalog, prices, and promotions
Define business logic
Define store settings
|
|API enhancements|
New front-end APIs for B2C and B2B
OAuth 2.0 implementation
Back-end APIs
|
|Back-Office UI improvements |
Backoffice UI optimized for productivity
Better search and filter options
Bulk actions support
Built on atomic design principals
Easy to extend and use
|
diff --git a/_drafts/for-commerce-quest/faq.md b/_drafts/for-commerce-quest/faq.md
index 0317ef69938..c3ab4bd8629 100644
--- a/_drafts/for-commerce-quest/faq.md
+++ b/_drafts/for-commerce-quest/faq.md
@@ -23,7 +23,7 @@ Yes. We refer to third-party integrations as industry partners. They include ser
## Which new trends does your OS support?
-As vendors of an operating system, our task is to ensure the quick development of apps. Since ROI timescales shorten increasingly and technology develops in ever quicker succession, it is difficult to look ahead even to 12 months. With this in mind, Spryker provides a starting point from which to develop applications in such areas as voice, chatbots, blockchain, AI, and more.
+As vendors of an operating system, our task is to ensure the quick development of apps. Since ROI timescales shorten increasingly and technology develops in ever quicker succession, it's difficult to look ahead even to 12 months. With this in mind, Spryker provides a starting point from which to develop applications in such areas as voice, chatbots, blockchain, AI, and more.
## What is Spryker's solution for omnichannel?
@@ -43,7 +43,7 @@ Capabilities are groups of features that are composed of modules, such as a cart
## How expensive is an average Spryker project?
-The price depends on the number of apps and on the type of app you are going to build. As a rule of thumb, it is possible to build and deploy a single slimline app for most standard use cases within a few weeks—for example, a voice app for Alexa or a simple chatbot. The aim is to keep each app simple and relevant and to lock away as much of it in the OS as possible. This means that building a standard, run-of-the-mill webshop with Spryker does not take longer than with other systems. Spryker's real strength, however, is the variety of apps. So, building a B2C case with 4-5 apps (for example, a shop, a web app, a chatbot, voice, and POS) using a standard system would be complex, very expensive, and frustratingly slow undertaking. Unlike standard systems, such a use case is part of Spryker's DNA. Besides, in IoT scenarios, Spryker is actually better than most of the other solutions due to the absence of dedicated technology.
+The price depends on the number of apps and on the type of app you are going to build. As a rule of thumb, it's possible to build and deploy a single slimline app for most standard use cases within a few weeks—for example, a voice app for Alexa or a simple chatbot. The aim is to keep each app simple and relevant and to lock away as much of it in the OS as possible. This means that building a standard, run-of-the-mill webshop with Spryker does not take longer than with other systems. Spryker's real strength, however, is the variety of apps. So, building a B2C case with 4-5 apps (for example, a shop, a web app, a chatbot, voice, and POS) using a standard system would be complex, very expensive, and frustratingly slow undertaking. Unlike standard systems, such a use case is part of Spryker's DNA. Besides, in IoT scenarios, Spryker is actually better than most of the other solutions because of the absence of dedicated technology.
## How might an MVP look like?
diff --git a/_drafts/for-commerce-quest/mvp-project-structuring.md b/_drafts/for-commerce-quest/mvp-project-structuring.md
index 1e918b6bdc6..391a2c83fd0 100644
--- a/_drafts/for-commerce-quest/mvp-project-structuring.md
+++ b/_drafts/for-commerce-quest/mvp-project-structuring.md
@@ -98,7 +98,7 @@ The following image below is an example of how to map functionality to assess th
{% endinfo_block %}
-Once functionality has been mapped, it is easier to assess the scope, importance, and cost of each feature.
+Once functionality has been mapped, it's easier to assess the scope, importance, and cost of each feature.
The next step is to map features to specific releases. With this method, you can formulate a fair assessment of the progression of your release scope and plan your work and resources accordingly.
@@ -137,7 +137,7 @@ Both methods result in a document listing the tasks, resources, and timeline nee
{% info_block infoBox "Examples:" %}
-The Data Export functionality is ideal to be tackled with the spike tickets approach because it is a single functionality with no other external dependencies that need to be considered.
On the other hand, something like an ERP Connection that spans many processes and many edge cases needs in-depth analysis.
+The Data Export functionality is ideal to be tackled with the spike tickets approach because it's a single functionality with no other external dependencies that need to be considered.
On the other hand, something like an ERP Connection that spans many processes and many edge cases needs in-depth analysis.
So you would have a plan of attack workshops with the shop and ERP team and also with logistics and payment experts and combine the conclusions into a single plan.
@@ -156,7 +156,7 @@ Choose the launch scenario that best suits the nature of the functionality that
{% info_block infoBox %}
-For example, if the new feature has to do with financial or highly sensitive information, it is better to choose the more conservative canary appropriate.
+For example, if the new feature has to do with financial or highly sensitive information, it's better to choose the more conservative canary appropriate.
{% endinfo_block %}
diff --git a/_drafts/scalable-application-infrastructure-for-publish-and-sync-workers.md b/_drafts/scalable-application-infrastructure-for-publish-and-sync-workers.md
index c88cfe40d98..6ecc13f80d9 100644
--- a/_drafts/scalable-application-infrastructure-for-publish-and-sync-workers.md
+++ b/_drafts/scalable-application-infrastructure-for-publish-and-sync-workers.md
@@ -79,7 +79,7 @@ Symbols:
## RAM distribution
-To exclude runtime memory limit issues, the memory allocated to each worker is also managed by computational resource manager.
+To exclude runtime memory limit'ssues, the memory allocated to each worker is also managed by computational resource manager.
The amount of RAM available for workers is calculated based on `memory_get_usage();` and `ini_get('memory_limit');` and distributed evenly. Formula:
diff --git a/_includes/checking-elasticsearch-indices-via-a-cli.md b/_includes/checking-elasticsearch-indices-via-a-cli.md
index 57908f86c99..03cd8293c3d 100644
--- a/_includes/checking-elasticsearch-indices-via-a-cli.md
+++ b/_includes/checking-elasticsearch-indices-via-a-cli.md
@@ -1,10 +1,10 @@
-### Check ElasticSearch connection details
+### Check Elasticsearch connection details
Check `SPRYKER_SEARCH_HOST ` and `SPRYKER_SEARCH_PORT` values as follows:
{% include checking-a-service-connection-configuration.md %}
-### Check the health and status of ElasticSearch indices
+### Check the health and status of Elasticsearch indices
1. Connect to the environment’s VPN.
diff --git a/_includes/checking-elasticsearch-status-via-aws-management-console.md b/_includes/checking-elasticsearch-status-via-aws-management-console.md
index 7780884d2d6..865cbcd405d 100644
--- a/_includes/checking-elasticsearch-status-via-aws-management-console.md
+++ b/_includes/checking-elasticsearch-status-via-aws-management-console.md
@@ -1,8 +1,8 @@
1. In the AWS Management Console, go to **Services** > **Amazon OpenSearch Service**.
2. Select the desired environment.
3. On the page of the environment, check the following:
- - *Domain status:* If the status is *Active*, ElasticSearch is running.
- - *Cluster health*: If the status is *Green* or *Yellow*, ElasticSearch works properly.
+ - *Domain status:* If the status is *Active*, Elasticsearch is running.
+ - *Cluster health*: If the status is *Green* or *Yellow*, Elasticsearch works properly.
4. Below the *General information* pane, switch to the **Cluster health** tab.
diff --git a/_includes/dg/overriding-webpack-js-scss-for-zed-on-project-level.md b/_includes/dg/overriding-webpack-js-scss-for-zed-on-project-level.md
index 070667a4bc9..8cb212ea8b6 100644
--- a/_includes/dg/overriding-webpack-js-scss-for-zed-on-project-level.md
+++ b/_includes/dg/overriding-webpack-js-scss-for-zed-on-project-level.md
@@ -44,7 +44,7 @@ oryxForZed.getConfiguration(myCustomZedSettings)
```
The `oryx-for-zed` building settings must be expanded with a path to ZED modules on the project level (`entry.dirs`).
-Due to `mergeWithStrategy`, the default config with core paths is expanded with a path to the project level.
+Because of `mergeWithStrategy`, the default config with core paths is expanded with a path to the project level.
{% info_block infoBox %}
diff --git a/_includes/pbc/all/glue-api-guides/202311.0/items-response-attributes.md b/_includes/pbc/all/glue-api-guides/202311.0/items-response-attributes.md
index 52784388981..fd25941e044 100644
--- a/_includes/pbc/all/glue-api-guides/202311.0/items-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202311.0/items-response-attributes.md
@@ -5,7 +5,7 @@
| items | groupKey | String | Unique item identifier. The value is generated based on product properties. |
| items | abstractSku | String | Unique identifier of the abstract product owning this concrete product. |
| items | amount | Integer | Amount of the products in the cart. |
-| items | unitPrice | Integer | Single item price without assuming if it is net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. |
+| items | unitPrice | Integer | Single item price without assuming if it's net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. |
| items | sumPrice | Integer | Sum of all items prices calculated. |
| items | taxRate | Integer | Current tax rate in per cent. |
| items | unitNetPrice | Integer | Single item net price. |
diff --git a/_includes/pbc/all/glue-api-guides/202311.0/orders-response-attributes.md b/_includes/pbc/all/glue-api-guides/202311.0/orders-response-attributes.md
index e5c5bef8f35..7eb753fc7c6 100644
--- a/_includes/pbc/all/glue-api-guides/202311.0/orders-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202311.0/orders-response-attributes.md
@@ -64,7 +64,7 @@
| items.taxRate | Integer | Current tax rate, in percent. |
| items.unitNetPrice | Integer | Single item net price. |
| items.sumNetPrice | Integer | Sum total of net prices for all items. |
-| items.unitPrice | Integer | Single item price without assuming if it is new or gross. *This price should be displayed everywhere when a product price is displayed. It allows switching tax mode without side effects*. |
+| items.unitPrice | Integer | Single item price without assuming if it's new or gross. *This price should be displayed everywhere when a product price is displayed. It allows switching tax mode without side effects*. |
| items.unitTaxAmountFullAggregation | Integer | Total tax amount for a given item, with additions. |
| items.sumTaxAmountFullAggregation | Integer | Total tax amount for a given sum of items, with additions. |
| items.refundableAmount | Integer | Available refundable amount for an item (order only). |
@@ -104,7 +104,7 @@
| RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION |
| --- | --- | --- |
| salesUnit | Object | List of attributes defining the sales unit to be used for item amount calculation. |
-| conversion | integer | Factor to convert a value from sales to base unit. If it is "null", the information is taken from the global conversions. |
+| conversion | integer | Factor to convert a value from sales to base unit. If it's "null", the information is taken from the global conversions. |
| precision | integer | Ratio between a sales unit and a base unit. |
| measurementUnit | string | Code of the measurement unit. |
| name | String | Name of the measurement unit. |
diff --git a/_includes/pbc/all/glue-api-guides/202311.0/shipments-response-attributes.md b/_includes/pbc/all/glue-api-guides/202311.0/shipments-response-attributes.md
index c47614a21d0..a86d767e894 100644
--- a/_includes/pbc/all/glue-api-guides/202311.0/shipments-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202311.0/shipments-response-attributes.md
@@ -16,8 +16,8 @@
| shipments | shippingAddress.iso2Code | String | Specifies an ISO 2 Country Code to use. |
| shipments | shippingAddress.company | String | Specifies the customer's company. |
| shipments | shippingAddress.phone | String | Specifies the customer's phone number. |
-| shipments | shippingAddress.isDefaultShipping | Boolean | If true, it is the default shipping address of the customer. |
-| shipments | shippingAddress.isDefaultBilling | Boolean | If true, it is the default billing address of the customer. |
+| shipments | shippingAddress.isDefaultShipping | Boolean | If true, it's the default shipping address of the customer. |
+| shipments | shippingAddress.isDefaultBilling | Boolean | If true, it's the default billing address of the customer. |
| shipments | shippingAddress.idCompanyBusinessUnitAddress | String | The unique identifier of a business unit address used for this shipment. |
| shipments | selectedShipmentMethod | Object | Describes the shipment method for the shipment. |
| shipments | selectedShipmentMethod.id | String | The unique identifier of the shipment method. |
diff --git a/_includes/pbc/all/glue-api-guides/202404.0/items-response-attributes.md b/_includes/pbc/all/glue-api-guides/202404.0/items-response-attributes.md
index 52784388981..fd25941e044 100644
--- a/_includes/pbc/all/glue-api-guides/202404.0/items-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202404.0/items-response-attributes.md
@@ -5,7 +5,7 @@
| items | groupKey | String | Unique item identifier. The value is generated based on product properties. |
| items | abstractSku | String | Unique identifier of the abstract product owning this concrete product. |
| items | amount | Integer | Amount of the products in the cart. |
-| items | unitPrice | Integer | Single item price without assuming if it is net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. |
+| items | unitPrice | Integer | Single item price without assuming if it's net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. |
| items | sumPrice | Integer | Sum of all items prices calculated. |
| items | taxRate | Integer | Current tax rate in per cent. |
| items | unitNetPrice | Integer | Single item net price. |
diff --git a/_includes/pbc/all/glue-api-guides/202404.0/orders-response-attributes.md b/_includes/pbc/all/glue-api-guides/202404.0/orders-response-attributes.md
index e5c5bef8f35..7eb753fc7c6 100644
--- a/_includes/pbc/all/glue-api-guides/202404.0/orders-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202404.0/orders-response-attributes.md
@@ -64,7 +64,7 @@
| items.taxRate | Integer | Current tax rate, in percent. |
| items.unitNetPrice | Integer | Single item net price. |
| items.sumNetPrice | Integer | Sum total of net prices for all items. |
-| items.unitPrice | Integer | Single item price without assuming if it is new or gross. *This price should be displayed everywhere when a product price is displayed. It allows switching tax mode without side effects*. |
+| items.unitPrice | Integer | Single item price without assuming if it's new or gross. *This price should be displayed everywhere when a product price is displayed. It allows switching tax mode without side effects*. |
| items.unitTaxAmountFullAggregation | Integer | Total tax amount for a given item, with additions. |
| items.sumTaxAmountFullAggregation | Integer | Total tax amount for a given sum of items, with additions. |
| items.refundableAmount | Integer | Available refundable amount for an item (order only). |
@@ -104,7 +104,7 @@
| RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION |
| --- | --- | --- |
| salesUnit | Object | List of attributes defining the sales unit to be used for item amount calculation. |
-| conversion | integer | Factor to convert a value from sales to base unit. If it is "null", the information is taken from the global conversions. |
+| conversion | integer | Factor to convert a value from sales to base unit. If it's "null", the information is taken from the global conversions. |
| precision | integer | Ratio between a sales unit and a base unit. |
| measurementUnit | string | Code of the measurement unit. |
| name | String | Name of the measurement unit. |
diff --git a/_includes/pbc/all/glue-api-guides/202404.0/product-management-attributes-response-attributes.md b/_includes/pbc/all/glue-api-guides/202404.0/product-management-attributes-response-attributes.md
index 4fb04c5cbca..dcc73ec6cb4 100644
--- a/_includes/pbc/all/glue-api-guides/202404.0/product-management-attributes-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202404.0/product-management-attributes-response-attributes.md
@@ -1,7 +1,7 @@
| RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION |
| --- | --- | --- | --- |
| product-management-attributes | allowInput | Boolean | Indicates if custom values can be entered for this product attribute. |
-| product-management-attributes | isSuper | Boolean | Indicates if it is a super attribute or not. |
+| product-management-attributes | isSuper | Boolean | Indicates if it's a super attribute or not. |
| product-management-attributes | inputType | String | Input type of the product attribute, for example, text, number, select, etc. |
| product-management-attributes | localeName | String | Name of the locale. |
| product-management-attributes | values | Array | Possible values of the attribute. |
diff --git a/_includes/pbc/all/glue-api-guides/202404.0/sales-units-response-attributes.md b/_includes/pbc/all/glue-api-guides/202404.0/sales-units-response-attributes.md
index 60dbf068e5c..8cc43153b2f 100644
--- a/_includes/pbc/all/glue-api-guides/202404.0/sales-units-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202404.0/sales-units-response-attributes.md
@@ -1,6 +1,6 @@
| RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION |
| --- | --- | --- | --- |
-| sales-units | conversion | integer | Factor to convert a value from sales to base unit. If it is "null", the information is taken from the global conversions. |
+| sales-units | conversion | integer | Factor to convert a value from sales to base unit. If it's "null", the information is taken from the global conversions. |
| sales-units | precision | integer | Ratio between a sales unit and a base unit. |
| sales-units | is displayed | boolean | Defines if the sales unit is displayed on the product details page. |
| sales-units | is default | boolean | Defines if the sales unit is selected by default on the product details page. |
diff --git a/_includes/pbc/all/glue-api-guides/202404.0/shipments-response-attributes.md b/_includes/pbc/all/glue-api-guides/202404.0/shipments-response-attributes.md
index 7529ec9285e..5f30bc5a106 100644
--- a/_includes/pbc/all/glue-api-guides/202404.0/shipments-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202404.0/shipments-response-attributes.md
@@ -14,8 +14,8 @@
| shipments | shippingAddress.iso2Code | String | Specifies an ISO 2 Country Code to use. |
| shipments | shippingAddress.company | String | Specifies the customer's company. |
| shipments | shippingAddress.phone | String | Specifies the customer's phone number. |
-| shipments | shippingAddress.isDefaultShipping | Boolean | If true, it is the default shipping address of the customer. |
-| shipments | shippingAddress.isDefaultBilling | Boolean | If true, it is the default billing address of the customer. |
+| shipments | shippingAddress.isDefaultShipping | Boolean | If true, it's the default shipping address of the customer. |
+| shipments | shippingAddress.isDefaultBilling | Boolean | If true, it's the default billing address of the customer. |
| shipments | shippingAddress.idCompanyBusinessUnitAddress | String | The unique identifier of a business unit address used for this shipment. |
| shipments | selectedShipmentMethod | Object | Describes the shipment method for the shipment. |
| shipments | selectedShipmentMethod.id | String | The unique identifier of the shipment method. |
diff --git a/_includes/pbc/all/glue-api-guides/202410.0/items-response-attributes.md b/_includes/pbc/all/glue-api-guides/202410.0/items-response-attributes.md
index 52784388981..fd25941e044 100644
--- a/_includes/pbc/all/glue-api-guides/202410.0/items-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202410.0/items-response-attributes.md
@@ -5,7 +5,7 @@
| items | groupKey | String | Unique item identifier. The value is generated based on product properties. |
| items | abstractSku | String | Unique identifier of the abstract product owning this concrete product. |
| items | amount | Integer | Amount of the products in the cart. |
-| items | unitPrice | Integer | Single item price without assuming if it is net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. |
+| items | unitPrice | Integer | Single item price without assuming if it's net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. |
| items | sumPrice | Integer | Sum of all items prices calculated. |
| items | taxRate | Integer | Current tax rate in per cent. |
| items | unitNetPrice | Integer | Single item net price. |
diff --git a/_includes/pbc/all/glue-api-guides/202410.0/orders-response-attributes.md b/_includes/pbc/all/glue-api-guides/202410.0/orders-response-attributes.md
index e5c5bef8f35..7eb753fc7c6 100644
--- a/_includes/pbc/all/glue-api-guides/202410.0/orders-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202410.0/orders-response-attributes.md
@@ -64,7 +64,7 @@
| items.taxRate | Integer | Current tax rate, in percent. |
| items.unitNetPrice | Integer | Single item net price. |
| items.sumNetPrice | Integer | Sum total of net prices for all items. |
-| items.unitPrice | Integer | Single item price without assuming if it is new or gross. *This price should be displayed everywhere when a product price is displayed. It allows switching tax mode without side effects*. |
+| items.unitPrice | Integer | Single item price without assuming if it's new or gross. *This price should be displayed everywhere when a product price is displayed. It allows switching tax mode without side effects*. |
| items.unitTaxAmountFullAggregation | Integer | Total tax amount for a given item, with additions. |
| items.sumTaxAmountFullAggregation | Integer | Total tax amount for a given sum of items, with additions. |
| items.refundableAmount | Integer | Available refundable amount for an item (order only). |
@@ -104,7 +104,7 @@
| RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION |
| --- | --- | --- |
| salesUnit | Object | List of attributes defining the sales unit to be used for item amount calculation. |
-| conversion | integer | Factor to convert a value from sales to base unit. If it is "null", the information is taken from the global conversions. |
+| conversion | integer | Factor to convert a value from sales to base unit. If it's "null", the information is taken from the global conversions. |
| precision | integer | Ratio between a sales unit and a base unit. |
| measurementUnit | string | Code of the measurement unit. |
| name | String | Name of the measurement unit. |
diff --git a/_includes/pbc/all/glue-api-guides/202410.0/product-management-attributes-response-attributes.md b/_includes/pbc/all/glue-api-guides/202410.0/product-management-attributes-response-attributes.md
index 4fb04c5cbca..dcc73ec6cb4 100644
--- a/_includes/pbc/all/glue-api-guides/202410.0/product-management-attributes-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202410.0/product-management-attributes-response-attributes.md
@@ -1,7 +1,7 @@
| RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION |
| --- | --- | --- | --- |
| product-management-attributes | allowInput | Boolean | Indicates if custom values can be entered for this product attribute. |
-| product-management-attributes | isSuper | Boolean | Indicates if it is a super attribute or not. |
+| product-management-attributes | isSuper | Boolean | Indicates if it's a super attribute or not. |
| product-management-attributes | inputType | String | Input type of the product attribute, for example, text, number, select, etc. |
| product-management-attributes | localeName | String | Name of the locale. |
| product-management-attributes | values | Array | Possible values of the attribute. |
diff --git a/_includes/pbc/all/glue-api-guides/202410.0/sales-units-response-attributes.md b/_includes/pbc/all/glue-api-guides/202410.0/sales-units-response-attributes.md
index 60dbf068e5c..8cc43153b2f 100644
--- a/_includes/pbc/all/glue-api-guides/202410.0/sales-units-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202410.0/sales-units-response-attributes.md
@@ -1,6 +1,6 @@
| RESOURCE | ATTRIBUTE | TYPE | DESCRIPTION |
| --- | --- | --- | --- |
-| sales-units | conversion | integer | Factor to convert a value from sales to base unit. If it is "null", the information is taken from the global conversions. |
+| sales-units | conversion | integer | Factor to convert a value from sales to base unit. If it's "null", the information is taken from the global conversions. |
| sales-units | precision | integer | Ratio between a sales unit and a base unit. |
| sales-units | is displayed | boolean | Defines if the sales unit is displayed on the product details page. |
| sales-units | is default | boolean | Defines if the sales unit is selected by default on the product details page. |
diff --git a/_includes/pbc/all/glue-api-guides/202410.0/shipments-response-attributes.md b/_includes/pbc/all/glue-api-guides/202410.0/shipments-response-attributes.md
index 7529ec9285e..5f30bc5a106 100644
--- a/_includes/pbc/all/glue-api-guides/202410.0/shipments-response-attributes.md
+++ b/_includes/pbc/all/glue-api-guides/202410.0/shipments-response-attributes.md
@@ -14,8 +14,8 @@
| shipments | shippingAddress.iso2Code | String | Specifies an ISO 2 Country Code to use. |
| shipments | shippingAddress.company | String | Specifies the customer's company. |
| shipments | shippingAddress.phone | String | Specifies the customer's phone number. |
-| shipments | shippingAddress.isDefaultShipping | Boolean | If true, it is the default shipping address of the customer. |
-| shipments | shippingAddress.isDefaultBilling | Boolean | If true, it is the default billing address of the customer. |
+| shipments | shippingAddress.isDefaultShipping | Boolean | If true, it's the default shipping address of the customer. |
+| shipments | shippingAddress.isDefaultBilling | Boolean | If true, it's the default billing address of the customer. |
| shipments | shippingAddress.idCompanyBusinessUnitAddress | String | The unique identifier of a business unit address used for this shipment. |
| shipments | selectedShipmentMethod | Object | Describes the shipment method for the shipment. |
| shipments | selectedShipmentMethod.id | String | The unique identifier of the shipment method. |
diff --git a/_includes/pbc/all/install-features/202307.0/enable-gift-cards.md b/_includes/pbc/all/install-features/202307.0/enable-gift-cards.md
index 031d6cb4247..fada0bdabb7 100644
--- a/_includes/pbc/all/install-features/202307.0/enable-gift-cards.md
+++ b/_includes/pbc/all/install-features/202307.0/enable-gift-cards.md
@@ -31,7 +31,7 @@ spryker/product-management:"^0.12.0"
| `GiftCardIsActiveDecisionRulePlugin` | Doesn’t allow using inactive Gift Cards. |`GiftCardDependencyProvider::getDecisionRulePlugins` | - |
| `GiftCardDiscountableItemFilterPlugin` |Restricts using a Gift Card for another Gift Cards in a cart. The plugin filters out Gift Cards from discountable items. |`DiscountDependencyProvider::getDiscountableItemFilterPlugins` | - |
| `GiftCardIsUsedDecisionRulePlugin` | As a part of the replacement strategy, this plugin does not allow using a Gift Card twice. |`GiftCardDependencyProvider::getDecisionRulePlugins` | Replacement |
-| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it is in the cart. | `CartDependencyProvider::getExpanderPlugins` | - |
+| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it's in the cart. | `CartDependencyProvider::getExpanderPlugins` | - |
| `GiftCardCheckoutDoSaveOrderPlugin` | Saves a Gift Card with populated data when an order is placed. Keeps Gift Card as an order payment method. | `CheckoutDependencyProvider::getCheckoutOrderSavers` | - |
| `GiftCardPaymentMethodFilterPlugin` | Now, every payment method is compatible with a Gift Card in the cart. The plugin filters out all incompatible payment methods from available ones during checkout payment methods step. | `PaymentDependencyProvider::getPaymentMethodFilterPlugins` | - |
| `GiftCardCheckoutPreConditionPlugin` | Confirms that a Gift Card is not used at the moment and that payment method amount assigned to the Gift Card is no more than the Gift Card amount itself.. | `CheckoutDependencyProvider::getCheckoutPreConditions` | - |
diff --git a/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore-the-prices-feature.md b/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore-the-prices-feature.md
index 59589943897..d8ca3aaee73 100644
--- a/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore-the-prices-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore-the-prices-feature.md
@@ -134,7 +134,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
{% info_block warningBox "Verification" %}
-Using the following data, make sure that when you add, update, or delete a store currency, it is exported to or removed from Storage.
+Using the following data, make sure that when you add, update, or delete a store currency, it's exported to or removed from Storage.
Storage type: Redis
Target entity: Store
diff --git a/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore.md b/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore.md
index 60231c68a8f..1a8ff669686 100644
--- a/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore.md
+++ b/_includes/pbc/all/install-features/202307.0/install-dynamic-multistore.md
@@ -91,7 +91,7 @@ We recommend making de.mysprykershop.com a mirror of eu.mysprykershop.com to pre
2. Enable dynamic store feature
-Due to a change in the ideology with shifting to the region instead of store configuration for deploy, you need to change the deploy file to enable it.
+Because of a change in the ideology with shifting to the region instead of store configuration for deploy, you need to change the deploy file to enable it.
To use the new region configuration, create a new deployment file, such as `deploy.dynamic-store.yml` (or `deploy.dev.dynamic-store.yml` for development environment).
You can check example deploy file for EU region:
@@ -119,7 +119,7 @@ image:
regions:
EU:
# Services for EU region. Use one of the following services: mail, database, broker, key_value_store, search for all stores in EU region.
- # Stores MUST not be defined in the deploy file as it was before due to their dynamic nature
+ # Stores MUST not be defined in the deploy file as it was before because of their dynamic nature
services:
mail:
sender:
@@ -648,7 +648,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
{% info_block warningBox "Verification" %}
-Ensure that, when a store created, updated, or deleted with local and country data. And it is exported to or removed from Redis.
+Ensure that, when a store created, updated, or deleted with local and country data. And it's exported to or removed from Redis.
Storage type: Redis
Target entity: Store
diff --git a/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-multiple-carts-glue-api.md b/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-multiple-carts-glue-api.md
index f1cbb92e007..f3045c5b42a 100644
--- a/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-multiple-carts-glue-api.md
+++ b/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-multiple-carts-glue-api.md
@@ -91,7 +91,7 @@ Make sure that the following endpoints are available:
{% info_block warningBox “Verification” %}
-Make sure that it is possible to create more than one cart.
+Make sure that it's possible to create more than one cart.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-navigation-glue-api.md b/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-navigation-glue-api.md
index e3218cda94c..c59ed7ec7b5 100644
--- a/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-navigation-glue-api.md
+++ b/_includes/pbc/all/install-features/202307.0/install-glue-api/install-the-navigation-glue-api.md
@@ -155,7 +155,7 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency
{% info_block warningBox “Verification” %}
-Now, it is possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.)
+Now, it's possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.)
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-agent-assist-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-agent-assist-feature.md
index eb6f824d95a..147ee90effd 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-agent-assist-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-agent-assist-feature.md
@@ -203,7 +203,7 @@ Add environment configuration for the agent security:
|----------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the agent is blocked if the number of attempts is exceeded for an agent. | Spryker\Shared\SecurityBlockerStorefrontAgent |
| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_TTL | Specifies the TTL configuration, the period when the number of unsuccessful tries is counted for an agent. | Spryker\Shared\SecurityBlockerStorefrontAgent |
-| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt an agent can make during the `SECURITY_BLOCKER_STOREFRONT:AGENT_BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerStorefrontAgent |
+| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt an agent can make during the `SECURITY_BLOCKER_STOREFRONT:AGENT_BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerStorefrontAgent |
**config/Shared/config_default.php**
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-approval-process-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-approval-process-feature.md
index 8aa896e550c..579ad7b6eb3 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-approval-process-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-approval-process-feature.md
@@ -139,9 +139,9 @@ quote_approval.remove,Cancel Request,en_US
quote_approval.remove,Anfrage Abbrechen,de_DE
quote_approval.cart.require_approval,"You can't place this order because of your purchasing limit, please send your cart for approval or contact your manager.",en_US
quote_approval.cart.require_approval,"Sie können diese Bestellung aufgrund Ihres Einkaufslimits nicht aufgeben. Senden Sie Ihren Einkaufswagen zur Genehmigung oder wenden Sie sich an Ihren Kontakmanager.",de_DE
-quote_approval.cart.waiting_approval,"You can't place this order due to pending approval request.",en_US
+quote_approval.cart.waiting_approval,"You can't place this order because of pending approval request.",en_US
quote_approval.cart.waiting_approval,"Sie können diese Bestellung aufgrund einer ausstehenden Genehmigungsanfrage nicht aufgeben.",de_DE
-quote_approval.create.approver_cant_approve_quote,"Selected approver cannot approve your request due to approver limit.",en_US
+quote_approval.create.approver_cant_approve_quote,"Selected approver cannot approve your request because of approver limit.",en_US
quote_approval.create.approver_cant_approve_quote,"Der ausgewählte Manager kann Ihre Anfrage aufgrund des Genehmigungslimits nicht genehmigen.",de_DE
quote_approval.create.you_cant_approve_quote,"You can't approve or decline this cart because it's amount higher that your Approver limit.",en_US
quote_approval.create.you_cant_approve_quote,"Sie können diesen Einkaufswagen nicht genehmigen oder ablehnen, weil dessen Betrag höher als ihr Genehmigungslimit ist.",de_DE
@@ -448,7 +448,7 @@ quote_approval_widget.cart.status.waiting,"Waiting",en_US
quote_approval_widget.cart.status.waiting,"Wartet",de_DE
quote_approval_widget.shared_cart_warning,"After a cart has been sent to approval, all of its shares will be dismissed.",en_US
quote_approval_widget.shared_cart_warning,"Nachdem der Warenkorb zur Genehmigung gesendet wurde, wird sein Sharing aufgehoben.",de_DE
-quote_approval_widget.limit_text,"Your purchase limit is %amount%. To spend more, request approval from your manager.",en_US
+quote_approval_widget.limit_text,"Your purchase limit's %amount%. To spend more, request approval from your manager.",en_US
quote_approval_widget.limit_text,"Ihr Einkaufsrahmen liegt bei %amount%. Um mehr auszugeben, fordern Sie bitte die Genehmigung bei Ihrem Manager an",de_DE
quote_approval_widget.no_limit_text,"You do not have a purchase limit",en_US
quote_approval_widget.no_limit_text,"Sie haben kein Einkaufslimit",de_DE
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-category-image-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-category-image-feature.md
index 1d9f41e6cab..f200dcf7690 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-category-image-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-category-image-feature.md
@@ -263,7 +263,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
{% info_block warningBox "Verification" %}
-Make sure that when a category image is created, updated, or deleted, it is exported or removed from Redis accordingly.
+Make sure that when a category image is created, updated, or deleted, it's exported or removed from Redis accordingly.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-category-management-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-category-management-feature.md
index e7ea07ca1dd..8894184c2c4 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-category-management-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-category-management-feature.md
@@ -710,7 +710,7 @@ Make sure that *category-node*, *category-tree* synchronization plugins works co
{% info_block warningBox "Verification" %}
-Make sure that when a category is created or edited through ORM, it is exported to Redis and Elasticsearch accordingly.
+Make sure that when a category is created or edited through ORM, it's exported to Redis and Elasticsearch accordingly.
| STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
| --- | --- | --- |
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-cms-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-cms-feature.md
index 5b2a2c6d1ab..46524e3a960 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-cms-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-cms-feature.md
@@ -779,7 +779,7 @@ cms-page--3,Placeholders Title & Content,1,1,1,/de/datenschutz,/en/privacy,Daten
cms-page--4,Placeholders Title & Content,1,0,1,/de/loremde,/en/lorem,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,"{% raw %}{{{% endraw %} chart('testChart', 'testChart') {% raw %}}}{% endraw %} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.","{% raw %}{{{% endraw %} chart('testChart', 'testChart') {% raw %}}}{% endraw %} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem."
cms-page--5,Placeholders Title & Content,1,1,0,/de/dolorde,/en/dolor,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Lorem ipsum,Lorem ipsum,"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.","Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem."
cms-page--6,Placeholders Title & Content,1,1,1,/de/demo-landing-page,/en/demo-landing-page,Demo Landing Page,Demo Landing Page,Demo Landing Page,Demo Landing Page,"demo,cms page, landing page","demo,cms page, landing page",This is a demo landing page with different content widgets.,This is a demo landing page with different content widgets.,"
DAS IST EINE GROßARTIGE LANDING PAGE
","
THIS IS A GREAT LANDING PAGE
","
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras non erat felis. Suspendisse nulla quam, dictum vitae malesuada a, ullamcorper eu urna. Sed diam tellus, feugiat iaculis consequat eu, commodo in dui. Integer ac ipsum urna. Aliquam rhoncus varius felis at dignissim. Nulla id justo id nunc lacinia efficitur. Etiam nec vehicula lorem. Phasellus ut lacus eu lorem luctus luctus. Quisque id vestibulum lectus, vel aliquam erat. Praesent ut erat quis magna varius tempor et sed sapien. Cras ac turpis id ligula gravida dignissim in sed nisl. Suspendisse scelerisque eros vel risus sagittis, in ultricies odio commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.
Duis nunc dolor, vestibulum eu cursus ut, facilisis eget justo. Ut quis placerat mauris. In cursus enim purus, a mollis felis cursus non. Mauris rutrum a ante a rutrum. Aliquam gravida tortor et cursus pharetra. Ut id sagittis arcu, eu convallis felis. Integer fermentum convallis lorem, eu posuere ex ultricies scelerisque. Suspendisse et consectetur mauris, vel rhoncus elit. Sed ultrices eget lacus quis rutrum. Aliquam erat volutpat. Aliquam varius mauris purus, non imperdiet turpis tempor vel. Donec vitae scelerisque mi.
Dies ist eine Liste von Produkten auf einer CMS Seite:
{% raw %}{{{% endraw %} product(['093', '066', '035', '083', '021','055']) {% raw %}}}{% endraw %}
Sed volutpat felis non elit elementum fermentum. Sed sit amet nunc lacinia ligula malesuada pretium. Duis imperdiet sem id nibh tristique, non convallis nunc luctus. Fusce congue vestibulum purus in rhoncus. Suspendisse eu nisl non diam ornare convallis. Nullam cursus, magna vitae porttitor consectetur, leo justo volutpat augue, vitae gravida eros metus ac diam. Donec iaculis diam at massa posuere posuere. Ut molestie, mauris nec tempus aliquam, massa mauris pellentesque ligula, eu mattis quam diam nec magna. Nunc ante odio, pulvinar ac nisl quis, efficitur eleifend enim. Nam consectetur placerat ligula, nec aliquet eros feugiat quis.
Sed eget imperdiet dolor. Nullam fringilla facilisis odio eu mattis. Morbi nibh erat, ornare et malesuada vel, commodo vel ligula. Donec maximus odio dolor, in aliquam mi tempus eu. Vivamus imperdiet imperdiet hendrerit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec quis dapibus libero, id sagittis dolor. Sed efficitur malesuada turpis sit amet efficitur. Etiam mattis ex elit, sit amet cursus sapien maximus id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
Dies ist eine Liste von Produkt-Gruppen auf einer CMS Seite:
{% raw %}{{{% endraw %} product_group(['095', '009', '052', '005', '188', '090', '084', '195']) {% raw %}}}{% endraw %}
Curabitur ipsum nulla, mollis vel tellus a, tristique tempor sapien. Mauris ut urna molestie, cursus nunc eget, lacinia erat. Donec efficitur, nisl a porta dapibus, nisi ipsum efficitur ipsum, eu auctor turpis ipsum vel sapien. Maecenas molestie risus odio. Suspendisse lobortis dapibus nisi non accumsan. Ut mattis tincidunt odio eu convallis. Nulla leo neque, scelerisque eu sagittis vitae, consectetur vel lacus. Aliquam erat volutpat. Nam euismod aliquet urna eget congue.
Dies ist ein Produkt-Set auf einer CMS Seite:
{% raw %}{{{% endraw %} product_set(['2_sony_set']) {% raw %}}}{% endraw %}","
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras non erat felis. Suspendisse nulla quam, dictum vitae malesuada a, ullamcorper eu urna. Sed diam tellus, feugiat iaculis consequat eu, commodo in dui. Integer ac ipsum urna. Aliquam rhoncus varius felis at dignissim. Nulla id justo id nunc lacinia efficitur. Etiam nec vehicula lorem. Phasellus ut lacus eu lorem luctus luctus. Quisque id vestibulum lectus, vel aliquam erat. Praesent ut erat quis magna varius tempor et sed sapien. Cras ac turpis id ligula gravida dignissim in sed nisl. Suspendisse scelerisque eros vel risus sagittis, in ultricies odio commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.
Duis nunc dolor, vestibulum eu cursus ut, facilisis eget justo. Ut quis placerat mauris. In cursus enim purus, a mollis felis cursus non. Mauris rutrum a ante a rutrum. Aliquam gravida tortor et cursus pharetra. Ut id sagittis arcu, eu convallis felis. Integer fermentum convallis lorem, eu posuere ex ultricies scelerisque. Suspendisse et consectetur mauris, vel rhoncus elit. Sed ultrices eget lacus quis rutrum. Aliquam erat volutpat. Aliquam varius mauris purus, non imperdiet turpis tempor vel. Donec vitae scelerisque mi.
This is a list of products in a CMS page:
{% raw %}{{{% endraw %} product(['093', '066', '035', '083', '021','055']) {% raw %}}}{% endraw %}
Sed volutpat felis non elit elementum fermentum. Sed sit amet nunc lacinia ligula malesuada pretium. Duis imperdiet sem id nibh tristique, non convallis nunc luctus. Fusce congue vestibulum purus in rhoncus. Suspendisse eu nisl non diam ornare convallis. Nullam cursus, magna vitae porttitor consectetur, leo justo volutpat augue, vitae gravida eros metus ac diam. Donec iaculis diam at massa posuere posuere. Ut molestie, mauris nec tempus aliquam, massa mauris pellentesque ligula, eu mattis quam diam nec magna. Nunc ante odio, pulvinar ac nisl quis, efficitur eleifend enim. Nam consectetur placerat ligula, nec aliquet eros feugiat quis.
Sed eget imperdiet dolor. Nullam fringilla facilisis odio eu mattis. Morbi nibh erat, ornare et malesuada vel, commodo vel ligula. Donec maximus odio dolor, in aliquam mi tempus eu. Vivamus imperdiet imperdiet hendrerit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec quis dapibus libero, id sagittis dolor. Sed efficitur malesuada turpis sit amet efficitur. Etiam mattis ex elit, sit amet cursus sapien maximus id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
This is a list of product groups in a CMS page:
{% raw %}{{{% endraw %} product_group(['095', '009', '052', '005', '188', '090', '084', '195']) {% raw %}}}{% endraw %}
Curabitur ipsum nulla, mollis vel tellus a, tristique tempor sapien. Mauris ut urna molestie, cursus nunc eget, lacinia erat. Donec efficitur, nisl a porta dapibus, nisi ipsum efficitur ipsum, eu auctor turpis ipsum vel sapien. Maecenas molestie risus odio. Suspendisse lobortis dapibus nisi non accumsan. Ut mattis tincidunt odio eu convallis. Nulla leo neque, scelerisque eu sagittis vitae, consectetur vel lacus. Aliquam erat volutpat. Nam euismod aliquet urna eget congue.
This a product set in a CMS page:
{% raw %}{{{% endraw %} product_set(['2_sony_set']) {% raw %}}}{% endraw %}"
-cms-page--7,Placeholders Title & Content,1,1,1,/de/ruecknahmegarantie,/en/return-policy,Rücknahmegarantie,Return policy,Rücknahmegarantie,Return policy,,,,,"
Rücknahmegarantie
","
Return policy
","
Option zur Rücksendung von Waren bis 30 Tage nach Erhalt
Unbeschadet Ihres gesetzlichen Widerrufsrechts bieten wir Ihnen die Möglichkeit, die Ware innerhalb von 30 Tagen nach Erhalt zurückzusenden. Mit dieser Rücksendeoption können Sie den Vertrag auch nach Ablauf der 14-tägigen Widerrufsfrist innerhalb von 30 Tagen nach Erhalt kündigen, indem Sie die Ware an uns zurücksenden (diese Frist beginnt mit dem Erhalt der Ware).
Wenn Sie unsere Waren zurücksenden, können Sie das Ihrer Bestellung beigefügte Rücksendeetikett verwenden oder das Etikett selbst von Ihrer Kundenkontoseite ausdrucken. Bitte wenden Sie sich an den Kundendienst, wenn Sie Probleme beim Herunterladen des Rücksendeetiketts haben oder keinen Zugang zu einem Drucker haben.
Ihre Ware gilt innerhalb von 30 Tagen als zurückgesandt, wenn Sie sie innerhalb dieser Zeit versenden. Ihre Ausübung dieser Rückgabeoption setzt jedoch voraus, dass die Ware vollständig im Originalzustand, intakt und unbeschädigt sowie in der Originalverpackung zurückgesandt wird. Bis zum Ablauf der Frist zur Ausübung des gesetzlichen Widerrufsrechts gelten ausschließlich die gesetzlichen Bestimmungen dieses Rechts. Die Möglichkeit, Waren zurückzusenden, schränkt Ihre gesetzlichen Gewährleistungsrechte, auf die Sie ohne Einschränkung Anspruch haben, nicht ein. Die Option zur Rücksendung von Waren gilt nicht für Geschenkgutscheine.
Das freiwillige Rückgaberecht von 30 Tagen besteht nicht für Verträge mit versiegelten Waren, die nach Lieferung entsiegelt wurden und aus hygienischen Gründen nicht für die Rücksendung geeignet sind.
Die gesetzlichen Gewährleistungsrechte bleiben vom freiwilligen 30-tägigen Rückgaberecht unberührt. Das freiwillige 30-tägige Rückgaberecht gilt nicht für den Kauf von Geschenkgutscheinen.
","
Option to return merchandise up to 30 days after receipt
Without prejudice to your statutory right of revocation, we offer you the option of returning the merchandise within 30 days of you receiving them. This return option allows you, even after the 14-day revocation period has expired, to cancel the contract by returning the merchandise to us, within 30 days of receiving them (this period commences upon your receipt of the merchandise).
If you are returning our merchandise, you can use the return shipping label enclosed with your order, or you can print the label out yourself from your customer account page. Please contact Customer Care if you have any problems downloading the return shipping label or you do not have access to a printer.
Your merchandise will be deemed returned within 30 days if you send it within such time. However, your exercise of this return option is preconditioned upon the merchandise being returned in full in its original condition, intact and undamaged, and in its original packaging. Until the period for exercising the statutory right of revocation expires, the statutory provisions governing this right shall apply exclusively. The option to return merchandise does not limit your statutory warranty rights, to which you remain entitled without qualification. The option to return merchandise does not apply to gift vouchers.
The voluntary 30 days return right does not exist for contracts subject to sealed goods which have been unsealed after delivery and which are not suitable for return due to hygienic reasons.
The statutory warranty rights remain unaffected from the voluntary 30 days return right. The voluntary 30 days right of return is not applicable to the purchase of gift vouchers.
"
+cms-page--7,Placeholders Title & Content,1,1,1,/de/ruecknahmegarantie,/en/return-policy,Rücknahmegarantie,Return policy,Rücknahmegarantie,Return policy,,,,,"
Rücknahmegarantie
","
Return policy
","
Option zur Rücksendung von Waren bis 30 Tage nach Erhalt
Unbeschadet Ihres gesetzlichen Widerrufsrechts bieten wir Ihnen die Möglichkeit, die Ware innerhalb von 30 Tagen nach Erhalt zurückzusenden. Mit dieser Rücksendeoption können Sie den Vertrag auch nach Ablauf der 14-tägigen Widerrufsfrist innerhalb von 30 Tagen nach Erhalt kündigen, indem Sie die Ware an uns zurücksenden (diese Frist beginnt mit dem Erhalt der Ware).
Wenn Sie unsere Waren zurücksenden, können Sie das Ihrer Bestellung beigefügte Rücksendeetikett verwenden oder das Etikett selbst von Ihrer Kundenkontoseite ausdrucken. Bitte wenden Sie sich an den Kundendienst, wenn Sie Probleme beim Herunterladen des Rücksendeetiketts haben oder keinen Zugang zu einem Drucker haben.
Ihre Ware gilt innerhalb von 30 Tagen als zurückgesandt, wenn Sie sie innerhalb dieser Zeit versenden. Ihre Ausübung dieser Rückgabeoption setzt jedoch voraus, dass die Ware vollständig im Originalzustand, intakt und unbeschädigt sowie in der Originalverpackung zurückgesandt wird. Bis zum Ablauf der Frist zur Ausübung des gesetzlichen Widerrufsrechts gelten ausschließlich die gesetzlichen Bestimmungen dieses Rechts. Die Möglichkeit, Waren zurückzusenden, schränkt Ihre gesetzlichen Gewährleistungsrechte, auf die Sie ohne Einschränkung Anspruch haben, nicht ein. Die Option zur Rücksendung von Waren gilt nicht für Geschenkgutscheine.
Das freiwillige Rückgaberecht von 30 Tagen besteht nicht für Verträge mit versiegelten Waren, die nach Lieferung entsiegelt wurden und aus hygienischen Gründen nicht für die Rücksendung geeignet sind.
Die gesetzlichen Gewährleistungsrechte bleiben vom freiwilligen 30-tägigen Rückgaberecht unberührt. Das freiwillige 30-tägige Rückgaberecht gilt nicht für den Kauf von Geschenkgutscheinen.
","
Option to return merchandise up to 30 days after receipt
Without prejudice to your statutory right of revocation, we offer you the option of returning the merchandise within 30 days of you receiving them. This return option allows you, even after the 14-day revocation period has expired, to cancel the contract by returning the merchandise to us, within 30 days of receiving them (this period commences upon your receipt of the merchandise).
If you are returning our merchandise, you can use the return shipping label enclosed with your order, or you can print the label out yourself from your customer account page. Please contact Customer Care if you have any problems downloading the return shipping label or you do not have access to a printer.
Your merchandise will be deemed returned within 30 days if you send it within such time. However, your exercise of this return option is preconditioned upon the merchandise being returned in full in its original condition, intact and undamaged, and in its original packaging. Until the period for exercising the statutory right of revocation expires, the statutory provisions governing this right shall apply exclusively. The option to return merchandise does not limit your statutory warranty rights, to which you remain entitled without qualification. The option to return merchandise does not apply to gift vouchers.
The voluntary 30 days return right does not exist for contracts subject to sealed goods which have been unsealed after delivery and which are not suitable for return because of hygienic reasons.
The statutory warranty rights remain unaffected from the voluntary 30 days return right. The voluntary 30 days right of return is not applicable to the purchase of gift vouchers.
"
```
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-company-account-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-company-account-feature.md
index c27d44c1c59..58d5498bedc 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-company-account-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-company-account-feature.md
@@ -329,7 +329,7 @@ Enable the following behaviors by registering the plugins:
| DefaultCompanyUserCustomerTransferExpanderPlugin | Sets a default company user for a Business on Behalf customer if a company user has not been selected yet. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer |
| IsOnBehalfCustomerTransferExpanderPlugin | Sets the `CustomerTransfer.IsOnBehalf` property so that other features can determine if the selected company user is a Business on Behalf company user. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer |
| CompanyUserAccessTokenAuthenticationHandlerPlugin | Provides functionality to log in a customer by an access token. | None | Spryker\Client\OauthCompanyUser\Plugin\Customer |
-| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it is already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer |
+| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it's already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer |
| CompanyUserAccessTokenOauthUserProviderPlugin | Provides a user transfer by a company user ID. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth |
| CompanyUserAccessTokenOauthGrantTypeConfigurationProviderPlugin | Provides the configuration of `CompanyUser` `GrantType`. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth |
| OauthCompanyUserInstallerPlugin| Creates new OAuth scope—adds `company_user scope` to the `spy_oauth_scope` table.) | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Installer |
@@ -729,7 +729,7 @@ business_on_behalf_widget.change_company_user,Change Company User,en_US
business_on_behalf_widget.change_company_user,Firmenbenutzer Profil ändern,de_DE
company_user.business_on_behalf.error.company_not_active,"You can not select this company user, company is not active.",en_US
company_user.business_on_behalf.error.company_not_active,"Sie können diesen Firmennutzer nicht auswählen da die Firma inaktiv ist",de_DE
-company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it is invalid.",en_US
+company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it's invalid.",en_US
company_user.business_on_behalf.error.company_user_invalid,"Sie können diesen Firmennutzer nicht auswählen da er ungültig ist",de_DE
customer_page.error.customer_already_logged_in,Customer already logged in.,en_US
customer_page.error.customer_already_logged_in,Der Kunde ist bereits eingeloggt.,de_DE
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-configurable-bundle-feature.md
index 4aae85c18e0..fc8c949fc1a 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-configurable-bundle-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-configurable-bundle-feature.md
@@ -605,7 +605,7 @@ class ConfigurableBundlePageSearchConfig extends SprykerConfigurableBundlePageSe
* from `spy_configurable_bundle_template_storage` table to Redis
* from `spy_configurable_bundle_template_page_search` table to Elasticsearch
-3. Make sure that when a configurable bundle template (or template slot) created or edited through ORM, it is exported to Redis or Elasticsearch accordingly.
+3. Make sure that when a configurable bundle template (or template slot) created or edited through ORM, it's exported to Redis or Elasticsearch accordingly.
| STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
| --- | --- | --- |
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-customer-access-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-customer-access-feature.md
index 1d3ce1cb6f4..4019eb1feb4 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-customer-access-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-customer-access-feature.md
@@ -170,7 +170,7 @@ class EventDependencyProvider extends SprykerEventDependencyProvider
{% info_block warningBox "Verification" %}
-Make sure that when a customer access rule is created, updated, or deleted, it is exported (or removed) to Redis.
+Make sure that when a customer access rule is created, updated, or deleted, it's exported (or removed) to Redis.
| TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
|-------------------------------------|------------------------------------|
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-discontinued-products-product-labels-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-discontinued-products-product-labels-feature.md
index 3528d1a6f74..6469c8e033c 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-discontinued-products-product-labels-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-discontinued-products-product-labels-feature.md
@@ -79,6 +79,6 @@ class ProductLabelDependencyProvider extends SprykerProductLabelDependencyProvid
{% info_block warningBox "Verification" %}
-Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it is assigned.
+Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it's assigned.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-file-manager-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-file-manager-feature.md
index e43b874a7b3..081598d2a2e 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-file-manager-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-file-manager-feature.md
@@ -439,6 +439,6 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
{% info_block warningBox "Verification" %}
-When a file data is created, updated, or deleted, make sure it is exported or removed from Redis accordingly.
+When a file data is created, updated, or deleted, make sure it's exported or removed from Redis accordingly.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-multiple-carts-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-multiple-carts-feature.md
index 62ca6a0c41f..f1d45297026 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-multiple-carts-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-multiple-carts-feature.md
@@ -331,7 +331,7 @@ Make sure that customer carts have unique names. If a customer creates a cart wi
Example:
-If the name "Shopping cart" already exists, it is changed to the following:
+If the name "Shopping cart" already exists, it's changed to the following:
* Shopping cart → Shopping cart 1
* Shopping cart → Shopping cart 2
@@ -427,7 +427,7 @@ Register the following plugins:
| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
|---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|---------------------------------|
-| GuestCartSaveCustomerSessionSetPlugin | Executed after the customer has been added to the session. Saves a guest customer quote to the database if it is not empty. Takes an actual customer quote from the database if the guest cart is empty. | Must be added before `GuestCartUpdateCustomerSessionSetPlugin`. | Spryker\Client\MultiCart\Plugin |
+| GuestCartSaveCustomerSessionSetPlugin | Executed after the customer has been added to the session. Saves a guest customer quote to the database if it's not empty. Takes an actual customer quote from the database if the guest cart is empty. | Must be added before `GuestCartUpdateCustomerSessionSetPlugin`. | Spryker\Client\MultiCart\Plugin |
**src/Pyz/Client/Customer/CustomerDependencyProvider.php**
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-order-management-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-order-management-feature.md
index 45e24eef709..d9a66b6470f 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-order-management-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-order-management-feature.md
@@ -631,7 +631,7 @@ By default, in state machine names, the following applies:
```csv
sales.error.customer_order_not_found,Customer Order not found.,en_US
sales.error.customer_order_not_found,Die Bestellung wurde nicht gefunden.,de_DE
-sales.error.order_cannot_be_canceled_due_to_wrong_item_state,Order cannot be canceled due to wrong item state.,en_US
+sales.error.order_cannot_be_canceled_due_to_wrong_item_state,Order cannot be canceled because of wrong item state.,en_US
sales.error.order_cannot_be_canceled_due_to_wrong_item_state,Die Bestellung kann wegen dem falschen Artikelstatus nicht storniert werden.,de_DE
oms.state.new,New,en_US
oms.state.new,Neu,de_DE
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-packaging-units-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-packaging-units-feature.md
index 14d64f65ddb..1c383df7774 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-packaging-units-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-packaging-units-feature.md
@@ -939,13 +939,13 @@ Add an item with packaging units to cart and check if the following statements a
* A packaging unit can be found for an item.
* The `amount`, `amountSalesUnit`, `amountLeadProduct` and `ProductPackagingUnit` fields in the `ItemTransfer` properties get fully populated.
* The amount restriction works as expected.
-* Availability is validated respectfully according to your lead product's and packaging unit's configuration.
+* Availability is validated respectfully according to your lead product's and packaging unit is configuration.
* Item grouping in cart works as expected.
* Variable amount changes affect unit prices in the `ItemTransfer` properties.
* The quantity and amount are merged correctly when the group key matches.
Go through the checkout workflow, make an order and check if the following statements are true:
-* Check if the stock is modified respectfully according to your lead product's and packaging unit's configuration.
+* Check if the stock is modified respectfully according to your lead product's and packaging unit is configuration.
* Check if the following fields in the `spy_sales_order_item` table are saved:
* `amount`
* `amount_sku`
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-persistent-cart-sharing-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-persistent-cart-sharing-feature.md
index b4572a69b99..974f52ce762 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-persistent-cart-sharing-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-persistent-cart-sharing-feature.md
@@ -292,6 +292,6 @@ Make sure, that when you're on a cart page, you can see the "Share Cart via Link
{% info_block warningBox "Verification" %}
-Login to Yves as Company User, add some product to the cart and go to the cart page. Make sure, that you can see the "Share Cart via Link" widget on a cart page. Make sure you can see an "External Users" radio button. Click on it. Make sure, that you can see the generated link for Preview access. Make sure, that you can see a "Copy" button near the link. Click on it. Make sure, that the link was copied to the clipboard (or a message that it's impossible due to some browser limitations). Copy the Cart Preview link and proceed with it. Make sure, that you are redirected to the Cart Preview page.
+Login to Yves as Company User, add some product to the cart and go to the cart page. Make sure, that you can see the "Share Cart via Link" widget on a cart page. Make sure you can see an "External Users" radio button. Click on it. Make sure, that you can see the generated link for Preview access. Make sure, that you can see a "Copy" button near the link. Click on it. Make sure, that the link was copied to the clipboard (or a message that it's impossible because of some browser limitations). Copy the Cart Preview link and proceed with it. Make sure, that you are redirected to the Cart Preview page.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-product-bundles-cart-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-product-bundles-cart-feature.md
index 434b47757ec..e909ff2abcf 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-product-bundles-cart-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-product-bundles-cart-feature.md
@@ -55,7 +55,7 @@ Make sure that the item counter of the cart widget shows the correct number—bu
## Alternative setup for handling large quantities of bundled products in the cart
When a bundle product is added to the cart with a large quantity (for example, 100-200 items), users may
-experience a slow-down in the cart operations handling or even may get an internal server error due to insufficient memory.
+experience a slow-down in the cart operations handling or even may get an internal server error because of insufficient memory.
To avoid a slow-down in the cart operations and internal server errors, an alternative set of plugins has been implemented:
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-product-bundles-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-product-bundles-feature.md
index b2d3beeefd5..c9cafadc2b8 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-product-bundles-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-product-bundles-feature.md
@@ -210,7 +210,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
{% info_block warningBox "Verification" %}
-Ensure that, when a product bundle is created, updated, or deleted, it is exported to or removed from Redis.
+Ensure that, when a product bundle is created, updated, or deleted, it's exported to or removed from Redis.
Storage type: Redis
Target entity: Product Bundle
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-product-category-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-product-category-feature.md
index f528dd0a1b0..55b924d04d3 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-product-category-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-product-category-feature.md
@@ -345,7 +345,7 @@ class EventBehaviorDependencyProvider extends SprykerEventBehaviorDependencyProv
{% info_block warningBox "Verification" %}
-When a category product assignment is changed through ORM, make sure it is exported to Redis.
+When a category product assignment is changed through ORM, make sure it's exported to Redis.
| STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
|--------------|-------------------------|--------------------------------------|
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-product-images-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-product-images-configurable-bundle-feature.md
index 92e36980ad9..23db51e003f 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-product-images-configurable-bundle-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-product-images-configurable-bundle-feature.md
@@ -153,7 +153,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
1. Make sure that when you added some data to tables `spy_product_image_set`, `spy_product_image_set_to_product_image`, `spy_product_image` with `fk_resource_configurable_bundle_template` and run `console trigger:event -r configurable_bundle_template_image` command, the changes are reflected in the `spy_configurable_bundle_template_image_storage` table.
2. Make sure that after step #4 or after `console sync:data configurable_bundle_template_image` command execution, the data s added to the `spy_configurable_bundle_template_image_storage` table and Redis.
-3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it is exported to Redis accordingly.
+3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it's exported to Redis accordingly.
4. Ensure that Elasticsearch document has been expanded by images property.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-product-sets-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-product-sets-feature.md
index 13dfc73c869..5a6d0a8f441 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-product-sets-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-product-sets-feature.md
@@ -117,7 +117,7 @@ Implement an installer in your project to put products together in sets represen
### Listing products sets on the Storefront
-The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it is possible to implement the same features with a custom implementation.
+The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it's possible to implement the same features with a custom implementation.
For a simple listing, the `ProductSet` module provides a Client API to list product sets from Elasticsearch. By calling the `ProductSetClient::getProductSetList()` method, a limited set of documents can be listed on the Storefront. The results are sorted in descending order based on the product sets' weight attributes.
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-quotation-process-approval-process-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-quotation-process-approval-process-feature.md
index a840cd76dcc..40d9b388049 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-quotation-process-approval-process-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-quotation-process-approval-process-feature.md
@@ -22,7 +22,7 @@ Register the following plugins:
| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
|---|---|---|---|
| QuoteApprovalQuoteRequestQuoteCheckPlugin | Checks if the "Request For Quote" button should be shown on the cart page or not. | None | Spryker\Client\QuoteApproval\Plugin\QuoteRequest |
-| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it is in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval |
+| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it's in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval |
| QuoteApprovalQuoteRequestPreCreateCheckPlugin | Checks if the quote doesn't have the status `waiting`. | None | Spryker\Zed\QuoteApproval\Communication\Plugin\QuoteRequest |
**src/Pyz/Client/QuoteRequest/QuoteRequestDependencyProvider.php**
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-back-office-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-back-office-feature.md
index 5192396b51b..f5639381776 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-back-office-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-back-office-feature.md
@@ -106,7 +106,7 @@ Add the following configuration to your project:
| AclConstants::ACL_DEFAULT_RULES | Default rules for ACL functionality, where you can open access to some modules or controller out of the box. | Spryker\Shared\Acl |
| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_TTL | Specifies the TTL configuration, the period when the number of unsuccessful tries is counted for a Back Office user. | Spryker\Shared\SecurityBlockerBackoffice |
| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the Back Office user is blocked if the number of attempts is exceeded for the Back Office. | Spryker\Shared\SecurityBlockerBackoffice |
-| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempts a Back Office user can make during the `SECURITY_BLOCKER_BACKOFFICE:BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerBackoffice |
+| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempts a Back Office user can make during the `SECURITY_BLOCKER_BACKOFFICE:BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerBackoffice |
**config/Shared/config_default.php**
@@ -155,7 +155,7 @@ $config[SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_A
Spryker offers two authentication strategies out of the box:
-* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_CREATE_USER_ON_FIRST_LOGIN`: If a user doesn't exist, it is created automatically based on the data from an external service.
+* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_CREATE_USER_ON_FIRST_LOGIN`: If a user doesn't exist, it's created automatically based on the data from an external service.
* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_ACCEPT_ONLY_EXISTING_USERS`: It accepts only existing users for authentication.
diff --git a/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-feature.md b/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-feature.md
index 22935032e68..f0832fda525 100644
--- a/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/install-the-spryker-core-feature.md
@@ -306,7 +306,7 @@ Add environment configuration for customer security:
|----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|
| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the agent is blocked if the number of attempts is exceeded for customer. | Spryker\Shared\SecurityBlockerStorefrontCustomer |
| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_TTL | Specifies the TTL configuration, the period when number of unsuccessful tries will be counted for customer. | Spryker\Shared\SecurityBlockerStorefrontCustomer |
-| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt a customer can make during the `SECURITY_BLOCKER_STOREFRONT:CUSTOMER_BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerStorefrontCustomer |
+| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt a customer can make during the `SECURITY_BLOCKER_STOREFRONT:CUSTOMER_BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerStorefrontCustomer |
**config/Shared/config_default.php**
diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-inventory-management-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-inventory-management-feature.md
index 4da32209f4f..e84bf35f3af 100644
--- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-inventory-management-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-inventory-management-feature.md
@@ -612,7 +612,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
Make sure the following actions take place as expected:
* The command `console sync:data merchant_profile` exports data from the `spy_product_offer_availability_storage` table to Redis.
-* When a product offer availability entity gets created or updated through ORM, it is exported to Redis accordingly.
+* When a product offer availability entity gets created or updated through ORM, it's exported to Redis accordingly.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-merchant-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-merchant-feature.md
index 06cf3d977ce..13e0aea4c71 100644
--- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-merchant-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-merchant-feature.md
@@ -971,17 +971,17 @@ To import data:
```
merchant_reference,contact_person_role,contact_person_title,contact_person_first_name,contact_person_last_name,contact_person_phone,banner_url,logo_url,public_email,public_phone,description_glossary_key.en_US,description_glossary_key.de_DE,banner_url_glossary_key.en_US,banner_url_glossary_key.de_DE,delivery_time_glossary_key.en_US,delivery_time_glossary_key.de_DE,terms_conditions_glossary_key.en_US,terms_conditions_glossary_key.de_DE,cancellation_policy_glossary_key.en_US,cancellation_policy_glossary_key.de_DE,imprint_glossary_key.en_US,imprint_glossary_key.de_DE,data_privacy_glossary_key.en_US,data_privacy_glossary_key.de_DE,is_active,fax_number
-MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","
Vertreten durch Geschäftsführer: Alexander Graf, Boris Lokschin Registergericht: Hamburg Registernummer: HRB 134310
",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800
-MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Video King
Gilzeweg 24 4854SG Bavel NL
Phone: +31 123 45 6789 Email: hi@video-king.nl
Represented by Managing Director: Max Mustermann Register Court: Amsterdam Register Number: 1234.4567
,
Video King
Gilzeweg 24 4854SG Bavel NL
Telefon: +31 123 45 6789 Email: hi@video-king.nl
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Amsterdam Registernummer: 1234.4567
,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733
+MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","
Vertreten durch Geschäftsführer: Alexander Graf, Boris Lokschin Registergericht: Hamburg Registernummer: HRB 134310
",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800
+MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Video King
Gilzeweg 24 4854SG Bavel NL
Phone: +31 123 45 6789 Email: hi@video-king.nl
Represented by Managing Director: Max Mustermann Register Court: Amsterdam Register Number: 1234.4567
,
Video King
Gilzeweg 24 4854SG Bavel NL
Telefon: +31 123 45 6789 Email: hi@video-king.nl
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Amsterdam Registernummer: 1234.4567
,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733
MER000006,Brand Manager,Ms,Michele,Nemeth,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-logo.png,support@sony-experts.com,+49 30 234567691,"Capture your moment with the best cameras from Sony. From pocket-size to professional-style, they all pack features to deliver the best quality pictures.
Discover the range of Sony cameras, lenses and accessories, and capture your favorite moments with precision and style with the best cameras can offer.","Halten Sie Ihren Moment mit den besten Kameras von Sony fest. Vom Taschenformat bis hin zum professionellen Stil bieten sie alle Funktionen, um Bilder in bester Qualität zu liefern.
-Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: München Registernummer: HYY 134306
,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600
+Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: München Registernummer: HYY 134306
,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600
MER000004,,,,,,,,,,,,,,,,,,,,,,,,0,
MER000003,,,,,,,,,,,,,,,,,,,,,,,,0,
MER000007,,,,,,,,,,,,,,,,,,,,,,,,0,
MER000005,Merchandise Manager,Mr,Jason,Weidmann,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-logo.png,support@budgetcamerasonline.com,+49 30 234567591,"DSLR and mirrorless cameras are by far the most popular with filmmakers on a tight budget when you can't afford multiple specialist cameras.
Budget Cameras is offering a great selection of digital cameras with the lowest prices.","DSLR- und spiegellose Kameras sind bei Filmemachern mit knappem Budget bei weitem am beliebtesten, wenn sie sich bestimmte Spezialkameras nicht leisten können.
-Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Hamburg Registernummer: HXX 134305
,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500
+Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Hamburg Registernummer: HXX 134305
,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500
```
diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-order-management-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-order-management-feature.md
index b4387ae9c6f..c4a0b3ee2a1 100644
--- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-order-management-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-order-management-feature.md
@@ -1100,7 +1100,7 @@ class ShopApplicationDependencyProvider extends SprykerShopApplicationDependency
Make sure that the Merchant State Machine is executed on merchant orders after the order has been split.
-Make sure that when retrieving an order in the *Sales* module, it is split by the merchant order and that the Order state is derived from the Merchant State Machine.
+Make sure that when retrieving an order in the *Sales* module, it's split by the merchant order and that the Order state is derived from the Merchant State Machine.
Make sure that after splitting the order into merchants' orders, their IDs are displayed on the order details page in Yves.
diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-offer-cart-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-offer-cart-feature.md
index ee343583186..9ce7e3141ee 100644
--- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-offer-cart-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-offer-cart-feature.md
@@ -84,7 +84,7 @@ class CartDependencyProvider extends SprykerCartDependencyProvider
Make sure that inactive product offers get removed from cart on reload.
-Make sure that it is only possible to have items in cart where the product offer reference belongs to the correct concrete product.
+Make sure that it's only possible to have items in cart where the product offer reference belongs to the correct concrete product.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-options-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-options-feature.md
index de77f65becd..e98c72d8766 100644
--- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-options-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-product-options-feature.md
@@ -372,7 +372,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
Make sure the following is true:
* Merchants can create product option groups and values in the Merchant Portal.
-* Merchant product option information is shown on a product details page when it is approved and active.
+* Merchant product option information is shown on a product details page when it's approved and active.
* Merchant product option information is displayed in the cart, checkout, and user account.
* Merchant product options are a part of the marketplace or merchant order, and all totals are calculated correctly.
diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-return-management-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-return-management-feature.md
index 0460b1b5037..38200ac77d6 100644
--- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-return-management-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-marketplace-return-management-feature.md
@@ -835,7 +835,7 @@ Make sure that when you create and process a return for merchant order items, it
| MARKETPLACE SM | DEFAULT MERCHANT SM | MAIN MERCHANT SM |
| --- | ---| --- |
| Used by an operator | Used by a third-party merchant. | Used by a main merchant. |
-| start-return (can be started by entering in the Return Flow; it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return
+| start-return (can be started by entering in the Return Flow; it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return
| execute return > returned | execute return (manually executable) > returned execute return (manually executable) > returned
| refund > refunded | refund (manually executable) > refunded | refund (manually executable) > refunded
| cancel return > return canceled | cancel return (manually executable) > return canceled | cancel return (manually executable) > return canceled
diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-merchant-opening-hours-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-merchant-opening-hours-feature.md
index 7ffc72236c2..04cc69a5541 100644
--- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-merchant-opening-hours-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-merchant-opening-hours-feature.md
@@ -274,7 +274,7 @@ class MerchantOpeningHoursStorageConfig extends SprykerMerchantOpeningHoursStora
1. Make sure that after step 1 the command `console sync:data merchant_opening_hours` exports data from the `spy_merchant_opening_hours_storage` table to Redis.
-2. Make sure that when merchant opening hours entities get created or updated through ORM, it is exported to Redis accordingly.
+2. Make sure that when merchant opening hours entities get created or updated through ORM, it's exported to Redis accordingly.
| TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
| ---------------- | ----------------- |
diff --git a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-merchant-switcher-feature.md b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-merchant-switcher-feature.md
index 0787f2b817b..d21adcef1df 100644
--- a/_includes/pbc/all/install-features/202307.0/marketplace/install-the-merchant-switcher-feature.md
+++ b/_includes/pbc/all/install-features/202307.0/marketplace/install-the-merchant-switcher-feature.md
@@ -106,7 +106,7 @@ Append glossary according to your configuration:
**data/import/common/common/glossary.csv**
```yaml
-merchant_switcher.message,Switch from %currentMerchant% to %newMerchant%? Due to different availability, not all products may be added to your shopping cart.,en_US
+merchant_switcher.message,Switch from %currentMerchant% to %newMerchant%? Because of different availability, not all products may be added to your shopping cart.,en_US
merchant_switcher.message,Wechseln von %currentMerchant% zu %newMerchant%? Aufgrund unterschiedlicher Verfügbarkeit können ggf. nicht alle Produkte in Warenkorb übernommen werden.,de_DE
merchant_switcher.message.product_is_not_available,"Product %product_name% (SKU %sku%) is not available from the selected merchant. Please remove it in order to proceed or switch the merchant.",en_US
merchant_switcher.message.product_is_not_available,"Produkt %product_name% (SKU %sku%) ist beim ausgewählten Händler nicht erhältlich. Bitte diesen Artikel entfernen, um fortzufahren oder den Händler zu wechseln.",de_DE
diff --git a/_includes/pbc/all/install-features/202311.0/enable-gift-cards.md b/_includes/pbc/all/install-features/202311.0/enable-gift-cards.md
index 031d6cb4247..fada0bdabb7 100644
--- a/_includes/pbc/all/install-features/202311.0/enable-gift-cards.md
+++ b/_includes/pbc/all/install-features/202311.0/enable-gift-cards.md
@@ -31,7 +31,7 @@ spryker/product-management:"^0.12.0"
| `GiftCardIsActiveDecisionRulePlugin` | Doesn’t allow using inactive Gift Cards. |`GiftCardDependencyProvider::getDecisionRulePlugins` | - |
| `GiftCardDiscountableItemFilterPlugin` |Restricts using a Gift Card for another Gift Cards in a cart. The plugin filters out Gift Cards from discountable items. |`DiscountDependencyProvider::getDiscountableItemFilterPlugins` | - |
| `GiftCardIsUsedDecisionRulePlugin` | As a part of the replacement strategy, this plugin does not allow using a Gift Card twice. |`GiftCardDependencyProvider::getDecisionRulePlugins` | Replacement |
-| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it is in the cart. | `CartDependencyProvider::getExpanderPlugins` | - |
+| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it's in the cart. | `CartDependencyProvider::getExpanderPlugins` | - |
| `GiftCardCheckoutDoSaveOrderPlugin` | Saves a Gift Card with populated data when an order is placed. Keeps Gift Card as an order payment method. | `CheckoutDependencyProvider::getCheckoutOrderSavers` | - |
| `GiftCardPaymentMethodFilterPlugin` | Now, every payment method is compatible with a Gift Card in the cart. The plugin filters out all incompatible payment methods from available ones during checkout payment methods step. | `PaymentDependencyProvider::getPaymentMethodFilterPlugins` | - |
| `GiftCardCheckoutPreConditionPlugin` | Confirms that a Gift Card is not used at the moment and that payment method amount assigned to the Gift Card is no more than the Gift Card amount itself.. | `CheckoutDependencyProvider::getCheckoutPreConditions` | - |
diff --git a/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore-the-prices-feature.md b/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore-the-prices-feature.md
index 59589943897..d8ca3aaee73 100644
--- a/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore-the-prices-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore-the-prices-feature.md
@@ -134,7 +134,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
{% info_block warningBox "Verification" %}
-Using the following data, make sure that when you add, update, or delete a store currency, it is exported to or removed from Storage.
+Using the following data, make sure that when you add, update, or delete a store currency, it's exported to or removed from Storage.
Storage type: Redis
Target entity: Store
diff --git a/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore.md b/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore.md
index de67be7fe88..9cf6f7e48c8 100644
--- a/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore.md
+++ b/_includes/pbc/all/install-features/202311.0/install-dynamic-multistore.md
@@ -88,7 +88,7 @@ We recommend making de.mysprykershop.com a mirror of eu.mysprykershop.com to pre
2. Enable dynamic store feature
-Due to a change in the ideology with shifting to the region instead of store configuration for deploy, you need to change the deploy file to enable it.
+Because of a change in the ideology with shifting to the region instead of store configuration for deploy, you need to change the deploy file to enable it.
To use the new region configuration, create a new deployment file, such as `deploy.dynamic-store.yml` (or `deploy.dev.dynamic-store.yml` for development environment).
You can check example deploy file for EU region:
@@ -116,7 +116,7 @@ image:
regions:
EU:
# Services for EU region. Use one of the following services: mail, database, broker, key_value_store, search for all stores in EU region.
- # Stores MUST not be defined in the deploy file as it was before due to their dynamic nature
+ # Stores MUST not be defined in the deploy file as it was before because of their dynamic nature
services:
mail:
sender:
@@ -622,7 +622,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
{% info_block warningBox "Verification" %}
-Ensure that, when a store created, updated, or deleted with local and country data. And it is exported to or removed from Redis.
+Ensure that, when a store created, updated, or deleted with local and country data. And it's exported to or removed from Redis.
Storage type: Redis
Target entity: Store
diff --git a/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-multiple-carts-glue-api.md b/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-multiple-carts-glue-api.md
index f1cbb92e007..f3045c5b42a 100644
--- a/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-multiple-carts-glue-api.md
+++ b/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-multiple-carts-glue-api.md
@@ -91,7 +91,7 @@ Make sure that the following endpoints are available:
{% info_block warningBox “Verification” %}
-Make sure that it is possible to create more than one cart.
+Make sure that it's possible to create more than one cart.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-navigation-glue-api.md b/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-navigation-glue-api.md
index e3218cda94c..c59ed7ec7b5 100644
--- a/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-navigation-glue-api.md
+++ b/_includes/pbc/all/install-features/202311.0/install-glue-api/install-the-navigation-glue-api.md
@@ -155,7 +155,7 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency
{% info_block warningBox “Verification” %}
-Now, it is possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.)
+Now, it's possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.)
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-agent-assist-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-agent-assist-feature.md
index eb6f824d95a..147ee90effd 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-agent-assist-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-agent-assist-feature.md
@@ -203,7 +203,7 @@ Add environment configuration for the agent security:
|----------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the agent is blocked if the number of attempts is exceeded for an agent. | Spryker\Shared\SecurityBlockerStorefrontAgent |
| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_TTL | Specifies the TTL configuration, the period when the number of unsuccessful tries is counted for an agent. | Spryker\Shared\SecurityBlockerStorefrontAgent |
-| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt an agent can make during the `SECURITY_BLOCKER_STOREFRONT:AGENT_BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerStorefrontAgent |
+| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt an agent can make during the `SECURITY_BLOCKER_STOREFRONT:AGENT_BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerStorefrontAgent |
**config/Shared/config_default.php**
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-approval-process-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-approval-process-feature.md
index 8aa896e550c..579ad7b6eb3 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-approval-process-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-approval-process-feature.md
@@ -139,9 +139,9 @@ quote_approval.remove,Cancel Request,en_US
quote_approval.remove,Anfrage Abbrechen,de_DE
quote_approval.cart.require_approval,"You can't place this order because of your purchasing limit, please send your cart for approval or contact your manager.",en_US
quote_approval.cart.require_approval,"Sie können diese Bestellung aufgrund Ihres Einkaufslimits nicht aufgeben. Senden Sie Ihren Einkaufswagen zur Genehmigung oder wenden Sie sich an Ihren Kontakmanager.",de_DE
-quote_approval.cart.waiting_approval,"You can't place this order due to pending approval request.",en_US
+quote_approval.cart.waiting_approval,"You can't place this order because of pending approval request.",en_US
quote_approval.cart.waiting_approval,"Sie können diese Bestellung aufgrund einer ausstehenden Genehmigungsanfrage nicht aufgeben.",de_DE
-quote_approval.create.approver_cant_approve_quote,"Selected approver cannot approve your request due to approver limit.",en_US
+quote_approval.create.approver_cant_approve_quote,"Selected approver cannot approve your request because of approver limit.",en_US
quote_approval.create.approver_cant_approve_quote,"Der ausgewählte Manager kann Ihre Anfrage aufgrund des Genehmigungslimits nicht genehmigen.",de_DE
quote_approval.create.you_cant_approve_quote,"You can't approve or decline this cart because it's amount higher that your Approver limit.",en_US
quote_approval.create.you_cant_approve_quote,"Sie können diesen Einkaufswagen nicht genehmigen oder ablehnen, weil dessen Betrag höher als ihr Genehmigungslimit ist.",de_DE
@@ -448,7 +448,7 @@ quote_approval_widget.cart.status.waiting,"Waiting",en_US
quote_approval_widget.cart.status.waiting,"Wartet",de_DE
quote_approval_widget.shared_cart_warning,"After a cart has been sent to approval, all of its shares will be dismissed.",en_US
quote_approval_widget.shared_cart_warning,"Nachdem der Warenkorb zur Genehmigung gesendet wurde, wird sein Sharing aufgehoben.",de_DE
-quote_approval_widget.limit_text,"Your purchase limit is %amount%. To spend more, request approval from your manager.",en_US
+quote_approval_widget.limit_text,"Your purchase limit's %amount%. To spend more, request approval from your manager.",en_US
quote_approval_widget.limit_text,"Ihr Einkaufsrahmen liegt bei %amount%. Um mehr auszugeben, fordern Sie bitte die Genehmigung bei Ihrem Manager an",de_DE
quote_approval_widget.no_limit_text,"You do not have a purchase limit",en_US
quote_approval_widget.no_limit_text,"Sie haben kein Einkaufslimit",de_DE
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-category-image-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-category-image-feature.md
index 1d9f41e6cab..f200dcf7690 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-category-image-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-category-image-feature.md
@@ -263,7 +263,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
{% info_block warningBox "Verification" %}
-Make sure that when a category image is created, updated, or deleted, it is exported or removed from Redis accordingly.
+Make sure that when a category image is created, updated, or deleted, it's exported or removed from Redis accordingly.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-category-management-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-category-management-feature.md
index e7ea07ca1dd..8894184c2c4 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-category-management-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-category-management-feature.md
@@ -710,7 +710,7 @@ Make sure that *category-node*, *category-tree* synchronization plugins works co
{% info_block warningBox "Verification" %}
-Make sure that when a category is created or edited through ORM, it is exported to Redis and Elasticsearch accordingly.
+Make sure that when a category is created or edited through ORM, it's exported to Redis and Elasticsearch accordingly.
| STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
| --- | --- | --- |
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-cms-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-cms-feature.md
index 5b2a2c6d1ab..46524e3a960 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-cms-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-cms-feature.md
@@ -779,7 +779,7 @@ cms-page--3,Placeholders Title & Content,1,1,1,/de/datenschutz,/en/privacy,Daten
cms-page--4,Placeholders Title & Content,1,0,1,/de/loremde,/en/lorem,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,"{% raw %}{{{% endraw %} chart('testChart', 'testChart') {% raw %}}}{% endraw %} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.","{% raw %}{{{% endraw %} chart('testChart', 'testChart') {% raw %}}}{% endraw %} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem."
cms-page--5,Placeholders Title & Content,1,1,0,/de/dolorde,/en/dolor,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Lorem ipsum,Lorem ipsum,"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.","Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem."
cms-page--6,Placeholders Title & Content,1,1,1,/de/demo-landing-page,/en/demo-landing-page,Demo Landing Page,Demo Landing Page,Demo Landing Page,Demo Landing Page,"demo,cms page, landing page","demo,cms page, landing page",This is a demo landing page with different content widgets.,This is a demo landing page with different content widgets.,"
DAS IST EINE GROßARTIGE LANDING PAGE
","
THIS IS A GREAT LANDING PAGE
","
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras non erat felis. Suspendisse nulla quam, dictum vitae malesuada a, ullamcorper eu urna. Sed diam tellus, feugiat iaculis consequat eu, commodo in dui. Integer ac ipsum urna. Aliquam rhoncus varius felis at dignissim. Nulla id justo id nunc lacinia efficitur. Etiam nec vehicula lorem. Phasellus ut lacus eu lorem luctus luctus. Quisque id vestibulum lectus, vel aliquam erat. Praesent ut erat quis magna varius tempor et sed sapien. Cras ac turpis id ligula gravida dignissim in sed nisl. Suspendisse scelerisque eros vel risus sagittis, in ultricies odio commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.
Duis nunc dolor, vestibulum eu cursus ut, facilisis eget justo. Ut quis placerat mauris. In cursus enim purus, a mollis felis cursus non. Mauris rutrum a ante a rutrum. Aliquam gravida tortor et cursus pharetra. Ut id sagittis arcu, eu convallis felis. Integer fermentum convallis lorem, eu posuere ex ultricies scelerisque. Suspendisse et consectetur mauris, vel rhoncus elit. Sed ultrices eget lacus quis rutrum. Aliquam erat volutpat. Aliquam varius mauris purus, non imperdiet turpis tempor vel. Donec vitae scelerisque mi.
Dies ist eine Liste von Produkten auf einer CMS Seite:
{% raw %}{{{% endraw %} product(['093', '066', '035', '083', '021','055']) {% raw %}}}{% endraw %}
Sed volutpat felis non elit elementum fermentum. Sed sit amet nunc lacinia ligula malesuada pretium. Duis imperdiet sem id nibh tristique, non convallis nunc luctus. Fusce congue vestibulum purus in rhoncus. Suspendisse eu nisl non diam ornare convallis. Nullam cursus, magna vitae porttitor consectetur, leo justo volutpat augue, vitae gravida eros metus ac diam. Donec iaculis diam at massa posuere posuere. Ut molestie, mauris nec tempus aliquam, massa mauris pellentesque ligula, eu mattis quam diam nec magna. Nunc ante odio, pulvinar ac nisl quis, efficitur eleifend enim. Nam consectetur placerat ligula, nec aliquet eros feugiat quis.
Sed eget imperdiet dolor. Nullam fringilla facilisis odio eu mattis. Morbi nibh erat, ornare et malesuada vel, commodo vel ligula. Donec maximus odio dolor, in aliquam mi tempus eu. Vivamus imperdiet imperdiet hendrerit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec quis dapibus libero, id sagittis dolor. Sed efficitur malesuada turpis sit amet efficitur. Etiam mattis ex elit, sit amet cursus sapien maximus id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
Dies ist eine Liste von Produkt-Gruppen auf einer CMS Seite:
{% raw %}{{{% endraw %} product_group(['095', '009', '052', '005', '188', '090', '084', '195']) {% raw %}}}{% endraw %}
Curabitur ipsum nulla, mollis vel tellus a, tristique tempor sapien. Mauris ut urna molestie, cursus nunc eget, lacinia erat. Donec efficitur, nisl a porta dapibus, nisi ipsum efficitur ipsum, eu auctor turpis ipsum vel sapien. Maecenas molestie risus odio. Suspendisse lobortis dapibus nisi non accumsan. Ut mattis tincidunt odio eu convallis. Nulla leo neque, scelerisque eu sagittis vitae, consectetur vel lacus. Aliquam erat volutpat. Nam euismod aliquet urna eget congue.
Dies ist ein Produkt-Set auf einer CMS Seite:
{% raw %}{{{% endraw %} product_set(['2_sony_set']) {% raw %}}}{% endraw %}","
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras non erat felis. Suspendisse nulla quam, dictum vitae malesuada a, ullamcorper eu urna. Sed diam tellus, feugiat iaculis consequat eu, commodo in dui. Integer ac ipsum urna. Aliquam rhoncus varius felis at dignissim. Nulla id justo id nunc lacinia efficitur. Etiam nec vehicula lorem. Phasellus ut lacus eu lorem luctus luctus. Quisque id vestibulum lectus, vel aliquam erat. Praesent ut erat quis magna varius tempor et sed sapien. Cras ac turpis id ligula gravida dignissim in sed nisl. Suspendisse scelerisque eros vel risus sagittis, in ultricies odio commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.
Duis nunc dolor, vestibulum eu cursus ut, facilisis eget justo. Ut quis placerat mauris. In cursus enim purus, a mollis felis cursus non. Mauris rutrum a ante a rutrum. Aliquam gravida tortor et cursus pharetra. Ut id sagittis arcu, eu convallis felis. Integer fermentum convallis lorem, eu posuere ex ultricies scelerisque. Suspendisse et consectetur mauris, vel rhoncus elit. Sed ultrices eget lacus quis rutrum. Aliquam erat volutpat. Aliquam varius mauris purus, non imperdiet turpis tempor vel. Donec vitae scelerisque mi.
This is a list of products in a CMS page:
{% raw %}{{{% endraw %} product(['093', '066', '035', '083', '021','055']) {% raw %}}}{% endraw %}
Sed volutpat felis non elit elementum fermentum. Sed sit amet nunc lacinia ligula malesuada pretium. Duis imperdiet sem id nibh tristique, non convallis nunc luctus. Fusce congue vestibulum purus in rhoncus. Suspendisse eu nisl non diam ornare convallis. Nullam cursus, magna vitae porttitor consectetur, leo justo volutpat augue, vitae gravida eros metus ac diam. Donec iaculis diam at massa posuere posuere. Ut molestie, mauris nec tempus aliquam, massa mauris pellentesque ligula, eu mattis quam diam nec magna. Nunc ante odio, pulvinar ac nisl quis, efficitur eleifend enim. Nam consectetur placerat ligula, nec aliquet eros feugiat quis.
Sed eget imperdiet dolor. Nullam fringilla facilisis odio eu mattis. Morbi nibh erat, ornare et malesuada vel, commodo vel ligula. Donec maximus odio dolor, in aliquam mi tempus eu. Vivamus imperdiet imperdiet hendrerit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec quis dapibus libero, id sagittis dolor. Sed efficitur malesuada turpis sit amet efficitur. Etiam mattis ex elit, sit amet cursus sapien maximus id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
This is a list of product groups in a CMS page:
{% raw %}{{{% endraw %} product_group(['095', '009', '052', '005', '188', '090', '084', '195']) {% raw %}}}{% endraw %}
Curabitur ipsum nulla, mollis vel tellus a, tristique tempor sapien. Mauris ut urna molestie, cursus nunc eget, lacinia erat. Donec efficitur, nisl a porta dapibus, nisi ipsum efficitur ipsum, eu auctor turpis ipsum vel sapien. Maecenas molestie risus odio. Suspendisse lobortis dapibus nisi non accumsan. Ut mattis tincidunt odio eu convallis. Nulla leo neque, scelerisque eu sagittis vitae, consectetur vel lacus. Aliquam erat volutpat. Nam euismod aliquet urna eget congue.
This a product set in a CMS page:
{% raw %}{{{% endraw %} product_set(['2_sony_set']) {% raw %}}}{% endraw %}"
-cms-page--7,Placeholders Title & Content,1,1,1,/de/ruecknahmegarantie,/en/return-policy,Rücknahmegarantie,Return policy,Rücknahmegarantie,Return policy,,,,,"
Rücknahmegarantie
","
Return policy
","
Option zur Rücksendung von Waren bis 30 Tage nach Erhalt
Unbeschadet Ihres gesetzlichen Widerrufsrechts bieten wir Ihnen die Möglichkeit, die Ware innerhalb von 30 Tagen nach Erhalt zurückzusenden. Mit dieser Rücksendeoption können Sie den Vertrag auch nach Ablauf der 14-tägigen Widerrufsfrist innerhalb von 30 Tagen nach Erhalt kündigen, indem Sie die Ware an uns zurücksenden (diese Frist beginnt mit dem Erhalt der Ware).
Wenn Sie unsere Waren zurücksenden, können Sie das Ihrer Bestellung beigefügte Rücksendeetikett verwenden oder das Etikett selbst von Ihrer Kundenkontoseite ausdrucken. Bitte wenden Sie sich an den Kundendienst, wenn Sie Probleme beim Herunterladen des Rücksendeetiketts haben oder keinen Zugang zu einem Drucker haben.
Ihre Ware gilt innerhalb von 30 Tagen als zurückgesandt, wenn Sie sie innerhalb dieser Zeit versenden. Ihre Ausübung dieser Rückgabeoption setzt jedoch voraus, dass die Ware vollständig im Originalzustand, intakt und unbeschädigt sowie in der Originalverpackung zurückgesandt wird. Bis zum Ablauf der Frist zur Ausübung des gesetzlichen Widerrufsrechts gelten ausschließlich die gesetzlichen Bestimmungen dieses Rechts. Die Möglichkeit, Waren zurückzusenden, schränkt Ihre gesetzlichen Gewährleistungsrechte, auf die Sie ohne Einschränkung Anspruch haben, nicht ein. Die Option zur Rücksendung von Waren gilt nicht für Geschenkgutscheine.
Das freiwillige Rückgaberecht von 30 Tagen besteht nicht für Verträge mit versiegelten Waren, die nach Lieferung entsiegelt wurden und aus hygienischen Gründen nicht für die Rücksendung geeignet sind.
Die gesetzlichen Gewährleistungsrechte bleiben vom freiwilligen 30-tägigen Rückgaberecht unberührt. Das freiwillige 30-tägige Rückgaberecht gilt nicht für den Kauf von Geschenkgutscheinen.
","
Option to return merchandise up to 30 days after receipt
Without prejudice to your statutory right of revocation, we offer you the option of returning the merchandise within 30 days of you receiving them. This return option allows you, even after the 14-day revocation period has expired, to cancel the contract by returning the merchandise to us, within 30 days of receiving them (this period commences upon your receipt of the merchandise).
If you are returning our merchandise, you can use the return shipping label enclosed with your order, or you can print the label out yourself from your customer account page. Please contact Customer Care if you have any problems downloading the return shipping label or you do not have access to a printer.
Your merchandise will be deemed returned within 30 days if you send it within such time. However, your exercise of this return option is preconditioned upon the merchandise being returned in full in its original condition, intact and undamaged, and in its original packaging. Until the period for exercising the statutory right of revocation expires, the statutory provisions governing this right shall apply exclusively. The option to return merchandise does not limit your statutory warranty rights, to which you remain entitled without qualification. The option to return merchandise does not apply to gift vouchers.
The voluntary 30 days return right does not exist for contracts subject to sealed goods which have been unsealed after delivery and which are not suitable for return due to hygienic reasons.
The statutory warranty rights remain unaffected from the voluntary 30 days return right. The voluntary 30 days right of return is not applicable to the purchase of gift vouchers.
"
+cms-page--7,Placeholders Title & Content,1,1,1,/de/ruecknahmegarantie,/en/return-policy,Rücknahmegarantie,Return policy,Rücknahmegarantie,Return policy,,,,,"
Rücknahmegarantie
","
Return policy
","
Option zur Rücksendung von Waren bis 30 Tage nach Erhalt
Unbeschadet Ihres gesetzlichen Widerrufsrechts bieten wir Ihnen die Möglichkeit, die Ware innerhalb von 30 Tagen nach Erhalt zurückzusenden. Mit dieser Rücksendeoption können Sie den Vertrag auch nach Ablauf der 14-tägigen Widerrufsfrist innerhalb von 30 Tagen nach Erhalt kündigen, indem Sie die Ware an uns zurücksenden (diese Frist beginnt mit dem Erhalt der Ware).
Wenn Sie unsere Waren zurücksenden, können Sie das Ihrer Bestellung beigefügte Rücksendeetikett verwenden oder das Etikett selbst von Ihrer Kundenkontoseite ausdrucken. Bitte wenden Sie sich an den Kundendienst, wenn Sie Probleme beim Herunterladen des Rücksendeetiketts haben oder keinen Zugang zu einem Drucker haben.
Ihre Ware gilt innerhalb von 30 Tagen als zurückgesandt, wenn Sie sie innerhalb dieser Zeit versenden. Ihre Ausübung dieser Rückgabeoption setzt jedoch voraus, dass die Ware vollständig im Originalzustand, intakt und unbeschädigt sowie in der Originalverpackung zurückgesandt wird. Bis zum Ablauf der Frist zur Ausübung des gesetzlichen Widerrufsrechts gelten ausschließlich die gesetzlichen Bestimmungen dieses Rechts. Die Möglichkeit, Waren zurückzusenden, schränkt Ihre gesetzlichen Gewährleistungsrechte, auf die Sie ohne Einschränkung Anspruch haben, nicht ein. Die Option zur Rücksendung von Waren gilt nicht für Geschenkgutscheine.
Das freiwillige Rückgaberecht von 30 Tagen besteht nicht für Verträge mit versiegelten Waren, die nach Lieferung entsiegelt wurden und aus hygienischen Gründen nicht für die Rücksendung geeignet sind.
Die gesetzlichen Gewährleistungsrechte bleiben vom freiwilligen 30-tägigen Rückgaberecht unberührt. Das freiwillige 30-tägige Rückgaberecht gilt nicht für den Kauf von Geschenkgutscheinen.
","
Option to return merchandise up to 30 days after receipt
Without prejudice to your statutory right of revocation, we offer you the option of returning the merchandise within 30 days of you receiving them. This return option allows you, even after the 14-day revocation period has expired, to cancel the contract by returning the merchandise to us, within 30 days of receiving them (this period commences upon your receipt of the merchandise).
If you are returning our merchandise, you can use the return shipping label enclosed with your order, or you can print the label out yourself from your customer account page. Please contact Customer Care if you have any problems downloading the return shipping label or you do not have access to a printer.
Your merchandise will be deemed returned within 30 days if you send it within such time. However, your exercise of this return option is preconditioned upon the merchandise being returned in full in its original condition, intact and undamaged, and in its original packaging. Until the period for exercising the statutory right of revocation expires, the statutory provisions governing this right shall apply exclusively. The option to return merchandise does not limit your statutory warranty rights, to which you remain entitled without qualification. The option to return merchandise does not apply to gift vouchers.
The voluntary 30 days return right does not exist for contracts subject to sealed goods which have been unsealed after delivery and which are not suitable for return because of hygienic reasons.
The statutory warranty rights remain unaffected from the voluntary 30 days return right. The voluntary 30 days right of return is not applicable to the purchase of gift vouchers.
"
```
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-company-account-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-company-account-feature.md
index c27d44c1c59..58d5498bedc 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-company-account-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-company-account-feature.md
@@ -329,7 +329,7 @@ Enable the following behaviors by registering the plugins:
| DefaultCompanyUserCustomerTransferExpanderPlugin | Sets a default company user for a Business on Behalf customer if a company user has not been selected yet. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer |
| IsOnBehalfCustomerTransferExpanderPlugin | Sets the `CustomerTransfer.IsOnBehalf` property so that other features can determine if the selected company user is a Business on Behalf company user. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer |
| CompanyUserAccessTokenAuthenticationHandlerPlugin | Provides functionality to log in a customer by an access token. | None | Spryker\Client\OauthCompanyUser\Plugin\Customer |
-| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it is already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer |
+| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it's already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer |
| CompanyUserAccessTokenOauthUserProviderPlugin | Provides a user transfer by a company user ID. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth |
| CompanyUserAccessTokenOauthGrantTypeConfigurationProviderPlugin | Provides the configuration of `CompanyUser` `GrantType`. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth |
| OauthCompanyUserInstallerPlugin| Creates new OAuth scope—adds `company_user scope` to the `spy_oauth_scope` table.) | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Installer |
@@ -729,7 +729,7 @@ business_on_behalf_widget.change_company_user,Change Company User,en_US
business_on_behalf_widget.change_company_user,Firmenbenutzer Profil ändern,de_DE
company_user.business_on_behalf.error.company_not_active,"You can not select this company user, company is not active.",en_US
company_user.business_on_behalf.error.company_not_active,"Sie können diesen Firmennutzer nicht auswählen da die Firma inaktiv ist",de_DE
-company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it is invalid.",en_US
+company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it's invalid.",en_US
company_user.business_on_behalf.error.company_user_invalid,"Sie können diesen Firmennutzer nicht auswählen da er ungültig ist",de_DE
customer_page.error.customer_already_logged_in,Customer already logged in.,en_US
customer_page.error.customer_already_logged_in,Der Kunde ist bereits eingeloggt.,de_DE
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-configurable-bundle-feature.md
index 4aae85c18e0..fc8c949fc1a 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-configurable-bundle-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-configurable-bundle-feature.md
@@ -605,7 +605,7 @@ class ConfigurableBundlePageSearchConfig extends SprykerConfigurableBundlePageSe
* from `spy_configurable_bundle_template_storage` table to Redis
* from `spy_configurable_bundle_template_page_search` table to Elasticsearch
-3. Make sure that when a configurable bundle template (or template slot) created or edited through ORM, it is exported to Redis or Elasticsearch accordingly.
+3. Make sure that when a configurable bundle template (or template slot) created or edited through ORM, it's exported to Redis or Elasticsearch accordingly.
| STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
| --- | --- | --- |
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-customer-access-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-customer-access-feature.md
index 1d3ce1cb6f4..4019eb1feb4 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-customer-access-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-customer-access-feature.md
@@ -170,7 +170,7 @@ class EventDependencyProvider extends SprykerEventDependencyProvider
{% info_block warningBox "Verification" %}
-Make sure that when a customer access rule is created, updated, or deleted, it is exported (or removed) to Redis.
+Make sure that when a customer access rule is created, updated, or deleted, it's exported (or removed) to Redis.
| TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
|-------------------------------------|------------------------------------|
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-discontinued-products-product-labels-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-discontinued-products-product-labels-feature.md
index 3528d1a6f74..6469c8e033c 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-discontinued-products-product-labels-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-discontinued-products-product-labels-feature.md
@@ -79,6 +79,6 @@ class ProductLabelDependencyProvider extends SprykerProductLabelDependencyProvid
{% info_block warningBox "Verification" %}
-Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it is assigned.
+Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it's assigned.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-multiple-carts-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-multiple-carts-feature.md
index 0a6f095f4f3..29a171b1cb3 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-multiple-carts-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-multiple-carts-feature.md
@@ -331,7 +331,7 @@ Make sure that customer carts have unique names. If a customer creates a cart wi
Example:
-If the name "Shopping cart" already exists, it is changed to the following:
+If the name "Shopping cart" already exists, it's changed to the following:
* Shopping cart → Shopping cart 1
* Shopping cart → Shopping cart 2
@@ -427,7 +427,7 @@ Register the following plugins:
| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
|---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|---------------------------------|
-| GuestCartSaveCustomerSessionSetPlugin | Executed after the customer has been added to the session. Saves a guest customer quote to the database if it is not empty. Takes an actual customer quote from the database if the guest cart is empty. | Must be added before `GuestCartUpdateCustomerSessionSetPlugin`. | Spryker\Client\MultiCart\Plugin |
+| GuestCartSaveCustomerSessionSetPlugin | Executed after the customer has been added to the session. Saves a guest customer quote to the database if it's not empty. Takes an actual customer quote from the database if the guest cart is empty. | Must be added before `GuestCartUpdateCustomerSessionSetPlugin`. | Spryker\Client\MultiCart\Plugin |
**src/Pyz/Client/Customer/CustomerDependencyProvider.php**
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-order-management-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-order-management-feature.md
index adeb4434371..40d4965e431 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-order-management-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-order-management-feature.md
@@ -643,7 +643,7 @@ By default, in state machine names, the following applies:
```csv
sales.error.customer_order_not_found,Customer Order not found.,en_US
sales.error.customer_order_not_found,Die Bestellung wurde nicht gefunden.,de_DE
-sales.error.order_cannot_be_canceled_due_to_wrong_item_state,Order cannot be canceled due to wrong item state.,en_US
+sales.error.order_cannot_be_canceled_due_to_wrong_item_state,Order cannot be canceled because of wrong item state.,en_US
sales.error.order_cannot_be_canceled_due_to_wrong_item_state,Die Bestellung kann wegen dem falschen Artikelstatus nicht storniert werden.,de_DE
oms.state.new,New,en_US
oms.state.new,Neu,de_DE
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-packaging-units-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-packaging-units-feature.md
index 1fa6fe44de6..6f00aab6c73 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-packaging-units-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-packaging-units-feature.md
@@ -934,13 +934,13 @@ Add an item with packaging units to cart and check if the following statements a
* A packaging unit can be found for an item.
* The `amount`, `amountSalesUnit`, `amountLeadProduct` and `ProductPackagingUnit` fields in the `ItemTransfer` properties get fully populated.
* The amount restriction works as expected.
-* Availability is validated respectfully according to your lead product's and packaging unit's configuration.
+* Availability is validated respectfully according to your lead product's and packaging unit is configuration.
* Item grouping in the cart works as expected.
* Variable amount changes affect unit prices in the `ItemTransfer` properties.
* The quantity and amount are merged correctly when the group key matches.
Go through the checkout workflow, make an order and check if the following statements are true:
-* Check if the stock is modified respectfully according to your lead product's and packaging unit's configuration.
+* Check if the stock is modified respectfully according to your lead product's and packaging unit is configuration.
* Check if the following fields in the `spy_sales_order_item` table are saved:
* `amount`
* `amount_sku`
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-persistent-cart-sharing-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-persistent-cart-sharing-feature.md
index b4572a69b99..974f52ce762 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-persistent-cart-sharing-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-persistent-cart-sharing-feature.md
@@ -292,6 +292,6 @@ Make sure, that when you're on a cart page, you can see the "Share Cart via Link
{% info_block warningBox "Verification" %}
-Login to Yves as Company User, add some product to the cart and go to the cart page. Make sure, that you can see the "Share Cart via Link" widget on a cart page. Make sure you can see an "External Users" radio button. Click on it. Make sure, that you can see the generated link for Preview access. Make sure, that you can see a "Copy" button near the link. Click on it. Make sure, that the link was copied to the clipboard (or a message that it's impossible due to some browser limitations). Copy the Cart Preview link and proceed with it. Make sure, that you are redirected to the Cart Preview page.
+Login to Yves as Company User, add some product to the cart and go to the cart page. Make sure, that you can see the "Share Cart via Link" widget on a cart page. Make sure you can see an "External Users" radio button. Click on it. Make sure, that you can see the generated link for Preview access. Make sure, that you can see a "Copy" button near the link. Click on it. Make sure, that the link was copied to the clipboard (or a message that it's impossible because of some browser limitations). Copy the Cart Preview link and proceed with it. Make sure, that you are redirected to the Cart Preview page.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-bundles-cart-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-bundles-cart-feature.md
index 434b47757ec..e909ff2abcf 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-product-bundles-cart-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-product-bundles-cart-feature.md
@@ -55,7 +55,7 @@ Make sure that the item counter of the cart widget shows the correct number—bu
## Alternative setup for handling large quantities of bundled products in the cart
When a bundle product is added to the cart with a large quantity (for example, 100-200 items), users may
-experience a slow-down in the cart operations handling or even may get an internal server error due to insufficient memory.
+experience a slow-down in the cart operations handling or even may get an internal server error because of insufficient memory.
To avoid a slow-down in the cart operations and internal server errors, an alternative set of plugins has been implemented:
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-bundles-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-bundles-feature.md
index b2d3beeefd5..c9cafadc2b8 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-product-bundles-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-product-bundles-feature.md
@@ -210,7 +210,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
{% info_block warningBox "Verification" %}
-Ensure that, when a product bundle is created, updated, or deleted, it is exported to or removed from Redis.
+Ensure that, when a product bundle is created, updated, or deleted, it's exported to or removed from Redis.
Storage type: Redis
Target entity: Product Bundle
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-category-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-category-feature.md
index f528dd0a1b0..55b924d04d3 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-product-category-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-product-category-feature.md
@@ -345,7 +345,7 @@ class EventBehaviorDependencyProvider extends SprykerEventBehaviorDependencyProv
{% info_block warningBox "Verification" %}
-When a category product assignment is changed through ORM, make sure it is exported to Redis.
+When a category product assignment is changed through ORM, make sure it's exported to Redis.
| STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
|--------------|-------------------------|--------------------------------------|
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-images-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-images-configurable-bundle-feature.md
index 92e36980ad9..23db51e003f 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-product-images-configurable-bundle-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-product-images-configurable-bundle-feature.md
@@ -153,7 +153,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
1. Make sure that when you added some data to tables `spy_product_image_set`, `spy_product_image_set_to_product_image`, `spy_product_image` with `fk_resource_configurable_bundle_template` and run `console trigger:event -r configurable_bundle_template_image` command, the changes are reflected in the `spy_configurable_bundle_template_image_storage` table.
2. Make sure that after step #4 or after `console sync:data configurable_bundle_template_image` command execution, the data s added to the `spy_configurable_bundle_template_image_storage` table and Redis.
-3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it is exported to Redis accordingly.
+3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it's exported to Redis accordingly.
4. Ensure that Elasticsearch document has been expanded by images property.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-offer-service-points-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-offer-service-points-feature.md
index 3648f5f66c4..f111df98182 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-product-offer-service-points-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-product-offer-service-points-feature.md
@@ -464,7 +464,7 @@ Make sure that the `product-offer-service` synchronization plugin works correctl
2. Run the `console sync:data -r product_offer_service` command.
3. Make sure that, in your system, storage entries are displayed with the `kv:product_offer_service:{store}:{product_offer_reference}` mask.
-Make sure when a product offer service is created via DataImport, it is exported to Redis accordingly.
+Make sure when a product offer service is created via DataImport, it's exported to Redis accordingly.
Make sure that, in Redis, data is displayed in the following format:
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-offer-shipment-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-offer-shipment-feature.md
index ea9933eab92..81c6f1883ce 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-product-offer-shipment-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-product-offer-shipment-feature.md
@@ -336,7 +336,7 @@ Make sure that `product-offer-shipment-type` synchronization plugin works correc
2. Run the `console sync:data -r product_offer_shipment_type` command.
3. Make sure that, in your system, storage entries are displayed with the `kv:product_offer_shipment_type:{store}:{product_offer_reference}` mask.
-Make sure that when a product offer shipment type relation is created or edited through BAPI, it is exported to Redis accordingly.
+Make sure that when a product offer shipment type relation is created or edited through BAPI, it's exported to Redis accordingly.
In Redis, make sure data is represented in the following format:
```json
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-product-sets-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-product-sets-feature.md
index 13dfc73c869..5a6d0a8f441 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-product-sets-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-product-sets-feature.md
@@ -117,7 +117,7 @@ Implement an installer in your project to put products together in sets represen
### Listing products sets on the Storefront
-The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it is possible to implement the same features with a custom implementation.
+The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it's possible to implement the same features with a custom implementation.
For a simple listing, the `ProductSet` module provides a Client API to list product sets from Elasticsearch. By calling the `ProductSetClient::getProductSetList()` method, a limited set of documents can be listed on the Storefront. The results are sorted in descending order based on the product sets' weight attributes.
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-quotation-process-approval-process-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-quotation-process-approval-process-feature.md
index a840cd76dcc..40d9b388049 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-quotation-process-approval-process-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-quotation-process-approval-process-feature.md
@@ -22,7 +22,7 @@ Register the following plugins:
| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
|---|---|---|---|
| QuoteApprovalQuoteRequestQuoteCheckPlugin | Checks if the "Request For Quote" button should be shown on the cart page or not. | None | Spryker\Client\QuoteApproval\Plugin\QuoteRequest |
-| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it is in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval |
+| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it's in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval |
| QuoteApprovalQuoteRequestPreCreateCheckPlugin | Checks if the quote doesn't have the status `waiting`. | None | Spryker\Zed\QuoteApproval\Communication\Plugin\QuoteRequest |
**src/Pyz/Client/QuoteRequest/QuoteRequestDependencyProvider.php**
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-service-points-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-service-points-feature.md
index a374116cb92..84aedff44ce 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-service-points-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-service-points-feature.md
@@ -1075,7 +1075,7 @@ Verify the `service-point` synchronization plugin works correctly:
{% info_block warningBox "Verification" %}
-* Make sure that, when a service point is created or edited through BAPI, it is exported to Redis accordingly.
+* Make sure that, when a service point is created or edited through BAPI, it's exported to Redis accordingly.
* Make sure that, in Redis, data is displayed in the following format:
```yaml
@@ -1148,7 +1148,7 @@ Verify the `service-type` synchronization plugin works correctly:
{% info_block warningBox "Verification" %}
-* Make sure that when a service type is created or edited through BAPI, it is exported to Redis accordingly.
+* Make sure that when a service type is created or edited through BAPI, it's exported to Redis accordingly.
* Make sure that, in Redis, data is displayed in the following format:
```json
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-shipment-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-shipment-feature.md
index 3771019e5ed..2ef8891c97f 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-shipment-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-shipment-feature.md
@@ -971,7 +971,7 @@ Make sure that `shipment-type` synchronization plugin works correctly:
2. Run the `console sync:data -r shipment_type` command.
3. Make sure that, in your system, storage entries are displayed with the `kv:shipment_type:{store}:{shipment_type_id}` mask.
-Make sure that when a shipment type is created or edited through BAPI, it is exported to Redis accordingly.
+Make sure that when a shipment type is created or edited through BAPI, it's exported to Redis accordingly.
In Redis, make sure data is represented in the following format:
```json
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-back-office-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-back-office-feature.md
index 5192396b51b..f5639381776 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-back-office-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-back-office-feature.md
@@ -106,7 +106,7 @@ Add the following configuration to your project:
| AclConstants::ACL_DEFAULT_RULES | Default rules for ACL functionality, where you can open access to some modules or controller out of the box. | Spryker\Shared\Acl |
| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_TTL | Specifies the TTL configuration, the period when the number of unsuccessful tries is counted for a Back Office user. | Spryker\Shared\SecurityBlockerBackoffice |
| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the Back Office user is blocked if the number of attempts is exceeded for the Back Office. | Spryker\Shared\SecurityBlockerBackoffice |
-| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempts a Back Office user can make during the `SECURITY_BLOCKER_BACKOFFICE:BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerBackoffice |
+| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempts a Back Office user can make during the `SECURITY_BLOCKER_BACKOFFICE:BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerBackoffice |
**config/Shared/config_default.php**
@@ -155,7 +155,7 @@ $config[SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_A
Spryker offers two authentication strategies out of the box:
-* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_CREATE_USER_ON_FIRST_LOGIN`: If a user doesn't exist, it is created automatically based on the data from an external service.
+* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_CREATE_USER_ON_FIRST_LOGIN`: If a user doesn't exist, it's created automatically based on the data from an external service.
* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_ACCEPT_ONLY_EXISTING_USERS`: It accepts only existing users for authentication.
diff --git a/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-feature.md b/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-feature.md
index 22935032e68..f0832fda525 100644
--- a/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/install-the-spryker-core-feature.md
@@ -306,7 +306,7 @@ Add environment configuration for customer security:
|----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|
| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the agent is blocked if the number of attempts is exceeded for customer. | Spryker\Shared\SecurityBlockerStorefrontCustomer |
| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_TTL | Specifies the TTL configuration, the period when number of unsuccessful tries will be counted for customer. | Spryker\Shared\SecurityBlockerStorefrontCustomer |
-| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt a customer can make during the `SECURITY_BLOCKER_STOREFRONT:CUSTOMER_BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerStorefrontCustomer |
+| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt a customer can make during the `SECURITY_BLOCKER_STOREFRONT:CUSTOMER_BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerStorefrontCustomer |
**config/Shared/config_default.php**
diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-inventory-management-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-inventory-management-feature.md
index 4da32209f4f..e84bf35f3af 100644
--- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-inventory-management-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-inventory-management-feature.md
@@ -612,7 +612,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
Make sure the following actions take place as expected:
* The command `console sync:data merchant_profile` exports data from the `spy_product_offer_availability_storage` table to Redis.
-* When a product offer availability entity gets created or updated through ORM, it is exported to Redis accordingly.
+* When a product offer availability entity gets created or updated through ORM, it's exported to Redis accordingly.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-merchant-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-merchant-feature.md
index 06cf3d977ce..13e0aea4c71 100644
--- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-merchant-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-merchant-feature.md
@@ -971,17 +971,17 @@ To import data:
```
merchant_reference,contact_person_role,contact_person_title,contact_person_first_name,contact_person_last_name,contact_person_phone,banner_url,logo_url,public_email,public_phone,description_glossary_key.en_US,description_glossary_key.de_DE,banner_url_glossary_key.en_US,banner_url_glossary_key.de_DE,delivery_time_glossary_key.en_US,delivery_time_glossary_key.de_DE,terms_conditions_glossary_key.en_US,terms_conditions_glossary_key.de_DE,cancellation_policy_glossary_key.en_US,cancellation_policy_glossary_key.de_DE,imprint_glossary_key.en_US,imprint_glossary_key.de_DE,data_privacy_glossary_key.en_US,data_privacy_glossary_key.de_DE,is_active,fax_number
-MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","
Vertreten durch Geschäftsführer: Alexander Graf, Boris Lokschin Registergericht: Hamburg Registernummer: HRB 134310
",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800
-MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Video King
Gilzeweg 24 4854SG Bavel NL
Phone: +31 123 45 6789 Email: hi@video-king.nl
Represented by Managing Director: Max Mustermann Register Court: Amsterdam Register Number: 1234.4567
,
Video King
Gilzeweg 24 4854SG Bavel NL
Telefon: +31 123 45 6789 Email: hi@video-king.nl
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Amsterdam Registernummer: 1234.4567
,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733
+MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","
Vertreten durch Geschäftsführer: Alexander Graf, Boris Lokschin Registergericht: Hamburg Registernummer: HRB 134310
",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800
+MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Video King
Gilzeweg 24 4854SG Bavel NL
Phone: +31 123 45 6789 Email: hi@video-king.nl
Represented by Managing Director: Max Mustermann Register Court: Amsterdam Register Number: 1234.4567
,
Video King
Gilzeweg 24 4854SG Bavel NL
Telefon: +31 123 45 6789 Email: hi@video-king.nl
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Amsterdam Registernummer: 1234.4567
,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733
MER000006,Brand Manager,Ms,Michele,Nemeth,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-logo.png,support@sony-experts.com,+49 30 234567691,"Capture your moment with the best cameras from Sony. From pocket-size to professional-style, they all pack features to deliver the best quality pictures.
Discover the range of Sony cameras, lenses and accessories, and capture your favorite moments with precision and style with the best cameras can offer.","Halten Sie Ihren Moment mit den besten Kameras von Sony fest. Vom Taschenformat bis hin zum professionellen Stil bieten sie alle Funktionen, um Bilder in bester Qualität zu liefern.
-Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: München Registernummer: HYY 134306
,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600
+Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: München Registernummer: HYY 134306
,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600
MER000004,,,,,,,,,,,,,,,,,,,,,,,,0,
MER000003,,,,,,,,,,,,,,,,,,,,,,,,0,
MER000007,,,,,,,,,,,,,,,,,,,,,,,,0,
MER000005,Merchandise Manager,Mr,Jason,Weidmann,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-logo.png,support@budgetcamerasonline.com,+49 30 234567591,"DSLR and mirrorless cameras are by far the most popular with filmmakers on a tight budget when you can't afford multiple specialist cameras.
Budget Cameras is offering a great selection of digital cameras with the lowest prices.","DSLR- und spiegellose Kameras sind bei Filmemachern mit knappem Budget bei weitem am beliebtesten, wenn sie sich bestimmte Spezialkameras nicht leisten können.
-Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Hamburg Registernummer: HXX 134305
,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500
+Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Hamburg Registernummer: HXX 134305
,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500
```
diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-order-management-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-order-management-feature.md
index b4387ae9c6f..c4a0b3ee2a1 100644
--- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-order-management-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-order-management-feature.md
@@ -1100,7 +1100,7 @@ class ShopApplicationDependencyProvider extends SprykerShopApplicationDependency
Make sure that the Merchant State Machine is executed on merchant orders after the order has been split.
-Make sure that when retrieving an order in the *Sales* module, it is split by the merchant order and that the Order state is derived from the Merchant State Machine.
+Make sure that when retrieving an order in the *Sales* module, it's split by the merchant order and that the Order state is derived from the Merchant State Machine.
Make sure that after splitting the order into merchants' orders, their IDs are displayed on the order details page in Yves.
diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-offer-cart-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-offer-cart-feature.md
index ee343583186..9ce7e3141ee 100644
--- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-offer-cart-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-offer-cart-feature.md
@@ -84,7 +84,7 @@ class CartDependencyProvider extends SprykerCartDependencyProvider
Make sure that inactive product offers get removed from cart on reload.
-Make sure that it is only possible to have items in cart where the product offer reference belongs to the correct concrete product.
+Make sure that it's only possible to have items in cart where the product offer reference belongs to the correct concrete product.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-options-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-options-feature.md
index 406fbea6c4b..07d625a9cdb 100644
--- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-options-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-product-options-feature.md
@@ -372,7 +372,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
Make sure the following is true:
* Merchants can create product option groups and values in the Merchant Portal.
-* Merchant product option information is shown on a product details page when it is approved and active.
+* Merchant product option information is shown on a product details page when it's approved and active.
* Merchant product option information is displayed in the cart, checkout, and user account.
* Merchant product options are a part of the marketplace or merchant order, and all totals are calculated correctly.
diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-return-management-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-return-management-feature.md
index 0460b1b5037..38200ac77d6 100644
--- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-return-management-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-marketplace-return-management-feature.md
@@ -835,7 +835,7 @@ Make sure that when you create and process a return for merchant order items, it
| MARKETPLACE SM | DEFAULT MERCHANT SM | MAIN MERCHANT SM |
| --- | ---| --- |
| Used by an operator | Used by a third-party merchant. | Used by a main merchant. |
-| start-return (can be started by entering in the Return Flow; it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return
+| start-return (can be started by entering in the Return Flow; it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return
| execute return > returned | execute return (manually executable) > returned execute return (manually executable) > returned
| refund > refunded | refund (manually executable) > refunded | refund (manually executable) > refunded
| cancel return > return canceled | cancel return (manually executable) > return canceled | cancel return (manually executable) > return canceled
diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-merchant-opening-hours-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-merchant-opening-hours-feature.md
index 7ffc72236c2..04cc69a5541 100644
--- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-merchant-opening-hours-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-merchant-opening-hours-feature.md
@@ -274,7 +274,7 @@ class MerchantOpeningHoursStorageConfig extends SprykerMerchantOpeningHoursStora
1. Make sure that after step 1 the command `console sync:data merchant_opening_hours` exports data from the `spy_merchant_opening_hours_storage` table to Redis.
-2. Make sure that when merchant opening hours entities get created or updated through ORM, it is exported to Redis accordingly.
+2. Make sure that when merchant opening hours entities get created or updated through ORM, it's exported to Redis accordingly.
| TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
| ---------------- | ----------------- |
diff --git a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-merchant-switcher-feature.md b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-merchant-switcher-feature.md
index 0787f2b817b..d21adcef1df 100644
--- a/_includes/pbc/all/install-features/202311.0/marketplace/install-the-merchant-switcher-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/marketplace/install-the-merchant-switcher-feature.md
@@ -106,7 +106,7 @@ Append glossary according to your configuration:
**data/import/common/common/glossary.csv**
```yaml
-merchant_switcher.message,Switch from %currentMerchant% to %newMerchant%? Due to different availability, not all products may be added to your shopping cart.,en_US
+merchant_switcher.message,Switch from %currentMerchant% to %newMerchant%? Because of different availability, not all products may be added to your shopping cart.,en_US
merchant_switcher.message,Wechseln von %currentMerchant% zu %newMerchant%? Aufgrund unterschiedlicher Verfügbarkeit können ggf. nicht alle Produkte in Warenkorb übernommen werden.,de_DE
merchant_switcher.message.product_is_not_available,"Product %product_name% (SKU %sku%) is not available from the selected merchant. Please remove it in order to proceed or switch the merchant.",en_US
merchant_switcher.message.product_is_not_available,"Produkt %product_name% (SKU %sku%) ist beim ausgewählten Händler nicht erhältlich. Bitte diesen Artikel entfernen, um fortzufahren oder den Händler zu wechseln.",de_DE
diff --git a/_includes/pbc/all/install-features/202311.0/unified-commerce/install-the-warehouse-picking-product-feature.md b/_includes/pbc/all/install-features/202311.0/unified-commerce/install-the-warehouse-picking-product-feature.md
index 79e4b8f996d..ed1a87d72fc 100644
--- a/_includes/pbc/all/install-features/202311.0/unified-commerce/install-the-warehouse-picking-product-feature.md
+++ b/_includes/pbc/all/install-features/202311.0/unified-commerce/install-the-warehouse-picking-product-feature.md
@@ -153,7 +153,7 @@ Make sure the `concrete-products` and `concrete-product-image-sets` resources ar
"is_active": true
},
"name": "Sony SmartWatch 3",
- "description": "Gear S2 X Atelier Mendini In einer wunderbaren Partnerschaft bringt Alessandro Mendini seinen Geschmack, Humor und Farbsinn in die Gestaltung der Gear S2 ein. Das Ergebnis ist eine Reihe von Zifferblättern und Armbändern, die Ihren persönlichen Stil zum Ausdruck bringen. Die wesentlichen Smartphone-Funktionen sind mit einer einfachen Drehung an der Gear S2 verfügbar. Drehen Sie leicht an der Blende, um lange E-Mails zu durchblättern, eine Karte zu vergrössern oder bei der Musikwiedergabe ein Stück zu überspringen. Mit jeder Drehung wird das Leben noch interessanter und bunter. Mit der Gear S2 können Sie sich sehr leicht um Ihre Gesundheit kümmern. Verfolgen Sie Ihre täglichen Aktivitäten, Ihren Puls und Ihren Wasserkonsum verglichen mit Ihrem Koffeinkonsum. Bleiben Sie fit mit zeitgerechten motivierenden Botschaften. Bleiben Sie auf dem Laufenden und fit. Und wenn es Zeit ist, die Smartwatch wieder aufzuladen, stellen Sie sie einfach auf eine drahtlose Ladestation.",
+ "description": "Gear S2 X Atelier Mendini In einer wunderbaren Partnerschaft bringt Alessandro Mendini seinen Geschmack, Humor und Farbsinn in die Gestaltung der Gear S2 ein. Das Ergebnis ist eine Reihe von Zifferblättern und Armbändern, die Ihren persönlichen Stil zum Ausdruck bringen. Die wesentlichen Smartphone-Funktionen sind mit einer einfachen Drehung an der Gear S2 verfügbar. Drehen Sie leicht an der Blende, um lange E-Mails zu durchblättern, eine Karte zu vergrössern oder bei der Musikwiedergabe ein Stück zu überspringen. Mit jeder Drehung wird das Leben noch interessanter und bunter. Mit der Gear S2 können Sie sich sehr leicht um Ihre Gesundheit kümmern. Verfolgen Sie Ihre täglichen Aktivitäten, Ihren Puls und Ihren Wasserkonsum verglichen mit Ihrem Koffeinkonsum. Bleiben Sie fit mit zeitgerechten motivierenden Botschaften. Bleiben Sie auf dem Laufenden und fit. Und wenn es Zeit'st, die Smartwatch wieder aufzuladen, stellen Sie sie einfach auf eine drahtlose Ladestation.",
"isSearchable": true,
"attributes": {
"color": "Weiß"
diff --git a/_includes/pbc/all/install-features/202404.0/enable-gift-cards.md b/_includes/pbc/all/install-features/202404.0/enable-gift-cards.md
index 031d6cb4247..fada0bdabb7 100644
--- a/_includes/pbc/all/install-features/202404.0/enable-gift-cards.md
+++ b/_includes/pbc/all/install-features/202404.0/enable-gift-cards.md
@@ -31,7 +31,7 @@ spryker/product-management:"^0.12.0"
| `GiftCardIsActiveDecisionRulePlugin` | Doesn’t allow using inactive Gift Cards. |`GiftCardDependencyProvider::getDecisionRulePlugins` | - |
| `GiftCardDiscountableItemFilterPlugin` |Restricts using a Gift Card for another Gift Cards in a cart. The plugin filters out Gift Cards from discountable items. |`DiscountDependencyProvider::getDiscountableItemFilterPlugins` | - |
| `GiftCardIsUsedDecisionRulePlugin` | As a part of the replacement strategy, this plugin does not allow using a Gift Card twice. |`GiftCardDependencyProvider::getDecisionRulePlugins` | Replacement |
-| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it is in the cart. | `CartDependencyProvider::getExpanderPlugins` | - |
+| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it's in the cart. | `CartDependencyProvider::getExpanderPlugins` | - |
| `GiftCardCheckoutDoSaveOrderPlugin` | Saves a Gift Card with populated data when an order is placed. Keeps Gift Card as an order payment method. | `CheckoutDependencyProvider::getCheckoutOrderSavers` | - |
| `GiftCardPaymentMethodFilterPlugin` | Now, every payment method is compatible with a Gift Card in the cart. The plugin filters out all incompatible payment methods from available ones during checkout payment methods step. | `PaymentDependencyProvider::getPaymentMethodFilterPlugins` | - |
| `GiftCardCheckoutPreConditionPlugin` | Confirms that a Gift Card is not used at the moment and that payment method amount assigned to the Gift Card is no more than the Gift Card amount itself.. | `CheckoutDependencyProvider::getCheckoutPreConditions` | - |
diff --git a/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore-the-prices-feature.md b/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore-the-prices-feature.md
index 59589943897..d8ca3aaee73 100644
--- a/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore-the-prices-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore-the-prices-feature.md
@@ -134,7 +134,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
{% info_block warningBox "Verification" %}
-Using the following data, make sure that when you add, update, or delete a store currency, it is exported to or removed from Storage.
+Using the following data, make sure that when you add, update, or delete a store currency, it's exported to or removed from Storage.
Storage type: Redis
Target entity: Store
diff --git a/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore.md b/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore.md
index 7df0274e324..b7bee8d2273 100644
--- a/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore.md
+++ b/_includes/pbc/all/install-features/202404.0/install-dynamic-multistore.md
@@ -103,7 +103,7 @@ image:
regions:
EU:
# Services for EU region. Use one of the following services: mail, database, broker, key_value_store, search for all stores in EU region.
- # Stores MUST not be defined in the deploy file as it was before due to their dynamic nature
+ # Stores MUST not be defined in the deploy file as it was before because of their dynamic nature
services:
mail:
sender:
@@ -643,7 +643,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
{% info_block warningBox "Verification" %}
-When a store’s data is created, updated, or deleted, including local and country information, make sure it is correctly exported to or removed from Redis.
+When a store’s data is created, updated, or deleted, including local and country information, make sure it's correctly exported to or removed from Redis.
Storage type: Redis
Target entity: Store
diff --git a/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-multiple-carts-glue-api.md b/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-multiple-carts-glue-api.md
index 3cd1d00c78f..a9e32dde44d 100644
--- a/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-multiple-carts-glue-api.md
+++ b/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-multiple-carts-glue-api.md
@@ -91,7 +91,7 @@ Make sure that the following endpoints are available:
{% info_block warningBox “Verification” %}
-Make sure that it is possible to create more than one cart.
+Make sure that it's possible to create more than one cart.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-navigation-glue-api.md b/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-navigation-glue-api.md
index a8810da82c8..7c60ed571ca 100644
--- a/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-navigation-glue-api.md
+++ b/_includes/pbc/all/install-features/202404.0/install-glue-api/install-the-navigation-glue-api.md
@@ -155,7 +155,7 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency
{% info_block warningBox “Verification” %}
-Now, it is possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.)
+Now, it's possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.)
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-agent-assist-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-agent-assist-feature.md
index b50a978d1e4..8e71466f008 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-agent-assist-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-agent-assist-feature.md
@@ -203,7 +203,7 @@ Add environment configuration for the agent security:
|----------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the agent is blocked if the number of attempts is exceeded for an agent. | Spryker\Shared\SecurityBlockerStorefrontAgent |
| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_TTL | Specifies the TTL configuration, the period when the number of unsuccessful tries is counted for an agent. | Spryker\Shared\SecurityBlockerStorefrontAgent |
-| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt an agent can make during the `SECURITY_BLOCKER_STOREFRONT:AGENT_BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerStorefrontAgent |
+| SecurityBlockerStorefrontAgentConstants::AGENT_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt an agent can make during the `SECURITY_BLOCKER_STOREFRONT:AGENT_BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerStorefrontAgent |
**config/Shared/config_default.php**
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-approval-process-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-approval-process-feature.md
index 8aa896e550c..579ad7b6eb3 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-approval-process-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-approval-process-feature.md
@@ -139,9 +139,9 @@ quote_approval.remove,Cancel Request,en_US
quote_approval.remove,Anfrage Abbrechen,de_DE
quote_approval.cart.require_approval,"You can't place this order because of your purchasing limit, please send your cart for approval or contact your manager.",en_US
quote_approval.cart.require_approval,"Sie können diese Bestellung aufgrund Ihres Einkaufslimits nicht aufgeben. Senden Sie Ihren Einkaufswagen zur Genehmigung oder wenden Sie sich an Ihren Kontakmanager.",de_DE
-quote_approval.cart.waiting_approval,"You can't place this order due to pending approval request.",en_US
+quote_approval.cart.waiting_approval,"You can't place this order because of pending approval request.",en_US
quote_approval.cart.waiting_approval,"Sie können diese Bestellung aufgrund einer ausstehenden Genehmigungsanfrage nicht aufgeben.",de_DE
-quote_approval.create.approver_cant_approve_quote,"Selected approver cannot approve your request due to approver limit.",en_US
+quote_approval.create.approver_cant_approve_quote,"Selected approver cannot approve your request because of approver limit.",en_US
quote_approval.create.approver_cant_approve_quote,"Der ausgewählte Manager kann Ihre Anfrage aufgrund des Genehmigungslimits nicht genehmigen.",de_DE
quote_approval.create.you_cant_approve_quote,"You can't approve or decline this cart because it's amount higher that your Approver limit.",en_US
quote_approval.create.you_cant_approve_quote,"Sie können diesen Einkaufswagen nicht genehmigen oder ablehnen, weil dessen Betrag höher als ihr Genehmigungslimit ist.",de_DE
@@ -448,7 +448,7 @@ quote_approval_widget.cart.status.waiting,"Waiting",en_US
quote_approval_widget.cart.status.waiting,"Wartet",de_DE
quote_approval_widget.shared_cart_warning,"After a cart has been sent to approval, all of its shares will be dismissed.",en_US
quote_approval_widget.shared_cart_warning,"Nachdem der Warenkorb zur Genehmigung gesendet wurde, wird sein Sharing aufgehoben.",de_DE
-quote_approval_widget.limit_text,"Your purchase limit is %amount%. To spend more, request approval from your manager.",en_US
+quote_approval_widget.limit_text,"Your purchase limit's %amount%. To spend more, request approval from your manager.",en_US
quote_approval_widget.limit_text,"Ihr Einkaufsrahmen liegt bei %amount%. Um mehr auszugeben, fordern Sie bitte die Genehmigung bei Ihrem Manager an",de_DE
quote_approval_widget.no_limit_text,"You do not have a purchase limit",en_US
quote_approval_widget.no_limit_text,"Sie haben kein Einkaufslimit",de_DE
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-category-image-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-category-image-feature.md
index 1d9f41e6cab..f200dcf7690 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-category-image-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-category-image-feature.md
@@ -263,7 +263,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
{% info_block warningBox "Verification" %}
-Make sure that when a category image is created, updated, or deleted, it is exported or removed from Redis accordingly.
+Make sure that when a category image is created, updated, or deleted, it's exported or removed from Redis accordingly.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-category-management-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-category-management-feature.md
index 781d68981fa..8d1a3105bc4 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-category-management-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-category-management-feature.md
@@ -712,7 +712,7 @@ Make sure that *category-node* and *category-tree* synchronization plugins works
3. Run the `console sync:data -r category_tree` command.
4. Check that, in your system, the storage entries are displayed with the `kv:category_node:{store}:{locale}:{id}` and `kv:category_tree:{store}:{locale}:{id}` masks.
-Make sure that, when a category is created or edited through ORM, it is exported to Redis and Elasticsearch accordingly.
+Make sure that, when a category is created or edited through ORM, it's exported to Redis and Elasticsearch accordingly.
| STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
|---------------|---------------|----------------------------------|
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-cms-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-cms-feature.md
index 5b2a2c6d1ab..46524e3a960 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-cms-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-cms-feature.md
@@ -779,7 +779,7 @@ cms-page--3,Placeholders Title & Content,1,1,1,/de/datenschutz,/en/privacy,Daten
cms-page--4,Placeholders Title & Content,1,0,1,/de/loremde,/en/lorem,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,"{% raw %}{{{% endraw %} chart('testChart', 'testChart') {% raw %}}}{% endraw %} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.","{% raw %}{{{% endraw %} chart('testChart', 'testChart') {% raw %}}}{% endraw %} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem."
cms-page--5,Placeholders Title & Content,1,1,0,/de/dolorde,/en/dolor,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Lorem ipsum,Lorem ipsum,"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.","Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem."
cms-page--6,Placeholders Title & Content,1,1,1,/de/demo-landing-page,/en/demo-landing-page,Demo Landing Page,Demo Landing Page,Demo Landing Page,Demo Landing Page,"demo,cms page, landing page","demo,cms page, landing page",This is a demo landing page with different content widgets.,This is a demo landing page with different content widgets.,"
DAS IST EINE GROßARTIGE LANDING PAGE
","
THIS IS A GREAT LANDING PAGE
","
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras non erat felis. Suspendisse nulla quam, dictum vitae malesuada a, ullamcorper eu urna. Sed diam tellus, feugiat iaculis consequat eu, commodo in dui. Integer ac ipsum urna. Aliquam rhoncus varius felis at dignissim. Nulla id justo id nunc lacinia efficitur. Etiam nec vehicula lorem. Phasellus ut lacus eu lorem luctus luctus. Quisque id vestibulum lectus, vel aliquam erat. Praesent ut erat quis magna varius tempor et sed sapien. Cras ac turpis id ligula gravida dignissim in sed nisl. Suspendisse scelerisque eros vel risus sagittis, in ultricies odio commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.
Duis nunc dolor, vestibulum eu cursus ut, facilisis eget justo. Ut quis placerat mauris. In cursus enim purus, a mollis felis cursus non. Mauris rutrum a ante a rutrum. Aliquam gravida tortor et cursus pharetra. Ut id sagittis arcu, eu convallis felis. Integer fermentum convallis lorem, eu posuere ex ultricies scelerisque. Suspendisse et consectetur mauris, vel rhoncus elit. Sed ultrices eget lacus quis rutrum. Aliquam erat volutpat. Aliquam varius mauris purus, non imperdiet turpis tempor vel. Donec vitae scelerisque mi.
Dies ist eine Liste von Produkten auf einer CMS Seite:
{% raw %}{{{% endraw %} product(['093', '066', '035', '083', '021','055']) {% raw %}}}{% endraw %}
Sed volutpat felis non elit elementum fermentum. Sed sit amet nunc lacinia ligula malesuada pretium. Duis imperdiet sem id nibh tristique, non convallis nunc luctus. Fusce congue vestibulum purus in rhoncus. Suspendisse eu nisl non diam ornare convallis. Nullam cursus, magna vitae porttitor consectetur, leo justo volutpat augue, vitae gravida eros metus ac diam. Donec iaculis diam at massa posuere posuere. Ut molestie, mauris nec tempus aliquam, massa mauris pellentesque ligula, eu mattis quam diam nec magna. Nunc ante odio, pulvinar ac nisl quis, efficitur eleifend enim. Nam consectetur placerat ligula, nec aliquet eros feugiat quis.
Sed eget imperdiet dolor. Nullam fringilla facilisis odio eu mattis. Morbi nibh erat, ornare et malesuada vel, commodo vel ligula. Donec maximus odio dolor, in aliquam mi tempus eu. Vivamus imperdiet imperdiet hendrerit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec quis dapibus libero, id sagittis dolor. Sed efficitur malesuada turpis sit amet efficitur. Etiam mattis ex elit, sit amet cursus sapien maximus id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
Dies ist eine Liste von Produkt-Gruppen auf einer CMS Seite:
{% raw %}{{{% endraw %} product_group(['095', '009', '052', '005', '188', '090', '084', '195']) {% raw %}}}{% endraw %}
Curabitur ipsum nulla, mollis vel tellus a, tristique tempor sapien. Mauris ut urna molestie, cursus nunc eget, lacinia erat. Donec efficitur, nisl a porta dapibus, nisi ipsum efficitur ipsum, eu auctor turpis ipsum vel sapien. Maecenas molestie risus odio. Suspendisse lobortis dapibus nisi non accumsan. Ut mattis tincidunt odio eu convallis. Nulla leo neque, scelerisque eu sagittis vitae, consectetur vel lacus. Aliquam erat volutpat. Nam euismod aliquet urna eget congue.
Dies ist ein Produkt-Set auf einer CMS Seite:
{% raw %}{{{% endraw %} product_set(['2_sony_set']) {% raw %}}}{% endraw %}","
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras non erat felis. Suspendisse nulla quam, dictum vitae malesuada a, ullamcorper eu urna. Sed diam tellus, feugiat iaculis consequat eu, commodo in dui. Integer ac ipsum urna. Aliquam rhoncus varius felis at dignissim. Nulla id justo id nunc lacinia efficitur. Etiam nec vehicula lorem. Phasellus ut lacus eu lorem luctus luctus. Quisque id vestibulum lectus, vel aliquam erat. Praesent ut erat quis magna varius tempor et sed sapien. Cras ac turpis id ligula gravida dignissim in sed nisl. Suspendisse scelerisque eros vel risus sagittis, in ultricies odio commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.
Duis nunc dolor, vestibulum eu cursus ut, facilisis eget justo. Ut quis placerat mauris. In cursus enim purus, a mollis felis cursus non. Mauris rutrum a ante a rutrum. Aliquam gravida tortor et cursus pharetra. Ut id sagittis arcu, eu convallis felis. Integer fermentum convallis lorem, eu posuere ex ultricies scelerisque. Suspendisse et consectetur mauris, vel rhoncus elit. Sed ultrices eget lacus quis rutrum. Aliquam erat volutpat. Aliquam varius mauris purus, non imperdiet turpis tempor vel. Donec vitae scelerisque mi.
This is a list of products in a CMS page:
{% raw %}{{{% endraw %} product(['093', '066', '035', '083', '021','055']) {% raw %}}}{% endraw %}
Sed volutpat felis non elit elementum fermentum. Sed sit amet nunc lacinia ligula malesuada pretium. Duis imperdiet sem id nibh tristique, non convallis nunc luctus. Fusce congue vestibulum purus in rhoncus. Suspendisse eu nisl non diam ornare convallis. Nullam cursus, magna vitae porttitor consectetur, leo justo volutpat augue, vitae gravida eros metus ac diam. Donec iaculis diam at massa posuere posuere. Ut molestie, mauris nec tempus aliquam, massa mauris pellentesque ligula, eu mattis quam diam nec magna. Nunc ante odio, pulvinar ac nisl quis, efficitur eleifend enim. Nam consectetur placerat ligula, nec aliquet eros feugiat quis.
Sed eget imperdiet dolor. Nullam fringilla facilisis odio eu mattis. Morbi nibh erat, ornare et malesuada vel, commodo vel ligula. Donec maximus odio dolor, in aliquam mi tempus eu. Vivamus imperdiet imperdiet hendrerit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec quis dapibus libero, id sagittis dolor. Sed efficitur malesuada turpis sit amet efficitur. Etiam mattis ex elit, sit amet cursus sapien maximus id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
This is a list of product groups in a CMS page:
{% raw %}{{{% endraw %} product_group(['095', '009', '052', '005', '188', '090', '084', '195']) {% raw %}}}{% endraw %}
Curabitur ipsum nulla, mollis vel tellus a, tristique tempor sapien. Mauris ut urna molestie, cursus nunc eget, lacinia erat. Donec efficitur, nisl a porta dapibus, nisi ipsum efficitur ipsum, eu auctor turpis ipsum vel sapien. Maecenas molestie risus odio. Suspendisse lobortis dapibus nisi non accumsan. Ut mattis tincidunt odio eu convallis. Nulla leo neque, scelerisque eu sagittis vitae, consectetur vel lacus. Aliquam erat volutpat. Nam euismod aliquet urna eget congue.
This a product set in a CMS page:
{% raw %}{{{% endraw %} product_set(['2_sony_set']) {% raw %}}}{% endraw %}"
-cms-page--7,Placeholders Title & Content,1,1,1,/de/ruecknahmegarantie,/en/return-policy,Rücknahmegarantie,Return policy,Rücknahmegarantie,Return policy,,,,,"
Rücknahmegarantie
","
Return policy
","
Option zur Rücksendung von Waren bis 30 Tage nach Erhalt
Unbeschadet Ihres gesetzlichen Widerrufsrechts bieten wir Ihnen die Möglichkeit, die Ware innerhalb von 30 Tagen nach Erhalt zurückzusenden. Mit dieser Rücksendeoption können Sie den Vertrag auch nach Ablauf der 14-tägigen Widerrufsfrist innerhalb von 30 Tagen nach Erhalt kündigen, indem Sie die Ware an uns zurücksenden (diese Frist beginnt mit dem Erhalt der Ware).
Wenn Sie unsere Waren zurücksenden, können Sie das Ihrer Bestellung beigefügte Rücksendeetikett verwenden oder das Etikett selbst von Ihrer Kundenkontoseite ausdrucken. Bitte wenden Sie sich an den Kundendienst, wenn Sie Probleme beim Herunterladen des Rücksendeetiketts haben oder keinen Zugang zu einem Drucker haben.
Ihre Ware gilt innerhalb von 30 Tagen als zurückgesandt, wenn Sie sie innerhalb dieser Zeit versenden. Ihre Ausübung dieser Rückgabeoption setzt jedoch voraus, dass die Ware vollständig im Originalzustand, intakt und unbeschädigt sowie in der Originalverpackung zurückgesandt wird. Bis zum Ablauf der Frist zur Ausübung des gesetzlichen Widerrufsrechts gelten ausschließlich die gesetzlichen Bestimmungen dieses Rechts. Die Möglichkeit, Waren zurückzusenden, schränkt Ihre gesetzlichen Gewährleistungsrechte, auf die Sie ohne Einschränkung Anspruch haben, nicht ein. Die Option zur Rücksendung von Waren gilt nicht für Geschenkgutscheine.
Das freiwillige Rückgaberecht von 30 Tagen besteht nicht für Verträge mit versiegelten Waren, die nach Lieferung entsiegelt wurden und aus hygienischen Gründen nicht für die Rücksendung geeignet sind.
Die gesetzlichen Gewährleistungsrechte bleiben vom freiwilligen 30-tägigen Rückgaberecht unberührt. Das freiwillige 30-tägige Rückgaberecht gilt nicht für den Kauf von Geschenkgutscheinen.
","
Option to return merchandise up to 30 days after receipt
Without prejudice to your statutory right of revocation, we offer you the option of returning the merchandise within 30 days of you receiving them. This return option allows you, even after the 14-day revocation period has expired, to cancel the contract by returning the merchandise to us, within 30 days of receiving them (this period commences upon your receipt of the merchandise).
If you are returning our merchandise, you can use the return shipping label enclosed with your order, or you can print the label out yourself from your customer account page. Please contact Customer Care if you have any problems downloading the return shipping label or you do not have access to a printer.
Your merchandise will be deemed returned within 30 days if you send it within such time. However, your exercise of this return option is preconditioned upon the merchandise being returned in full in its original condition, intact and undamaged, and in its original packaging. Until the period for exercising the statutory right of revocation expires, the statutory provisions governing this right shall apply exclusively. The option to return merchandise does not limit your statutory warranty rights, to which you remain entitled without qualification. The option to return merchandise does not apply to gift vouchers.
The voluntary 30 days return right does not exist for contracts subject to sealed goods which have been unsealed after delivery and which are not suitable for return due to hygienic reasons.
The statutory warranty rights remain unaffected from the voluntary 30 days return right. The voluntary 30 days right of return is not applicable to the purchase of gift vouchers.
"
+cms-page--7,Placeholders Title & Content,1,1,1,/de/ruecknahmegarantie,/en/return-policy,Rücknahmegarantie,Return policy,Rücknahmegarantie,Return policy,,,,,"
Rücknahmegarantie
","
Return policy
","
Option zur Rücksendung von Waren bis 30 Tage nach Erhalt
Unbeschadet Ihres gesetzlichen Widerrufsrechts bieten wir Ihnen die Möglichkeit, die Ware innerhalb von 30 Tagen nach Erhalt zurückzusenden. Mit dieser Rücksendeoption können Sie den Vertrag auch nach Ablauf der 14-tägigen Widerrufsfrist innerhalb von 30 Tagen nach Erhalt kündigen, indem Sie die Ware an uns zurücksenden (diese Frist beginnt mit dem Erhalt der Ware).
Wenn Sie unsere Waren zurücksenden, können Sie das Ihrer Bestellung beigefügte Rücksendeetikett verwenden oder das Etikett selbst von Ihrer Kundenkontoseite ausdrucken. Bitte wenden Sie sich an den Kundendienst, wenn Sie Probleme beim Herunterladen des Rücksendeetiketts haben oder keinen Zugang zu einem Drucker haben.
Ihre Ware gilt innerhalb von 30 Tagen als zurückgesandt, wenn Sie sie innerhalb dieser Zeit versenden. Ihre Ausübung dieser Rückgabeoption setzt jedoch voraus, dass die Ware vollständig im Originalzustand, intakt und unbeschädigt sowie in der Originalverpackung zurückgesandt wird. Bis zum Ablauf der Frist zur Ausübung des gesetzlichen Widerrufsrechts gelten ausschließlich die gesetzlichen Bestimmungen dieses Rechts. Die Möglichkeit, Waren zurückzusenden, schränkt Ihre gesetzlichen Gewährleistungsrechte, auf die Sie ohne Einschränkung Anspruch haben, nicht ein. Die Option zur Rücksendung von Waren gilt nicht für Geschenkgutscheine.
Das freiwillige Rückgaberecht von 30 Tagen besteht nicht für Verträge mit versiegelten Waren, die nach Lieferung entsiegelt wurden und aus hygienischen Gründen nicht für die Rücksendung geeignet sind.
Die gesetzlichen Gewährleistungsrechte bleiben vom freiwilligen 30-tägigen Rückgaberecht unberührt. Das freiwillige 30-tägige Rückgaberecht gilt nicht für den Kauf von Geschenkgutscheinen.
","
Option to return merchandise up to 30 days after receipt
Without prejudice to your statutory right of revocation, we offer you the option of returning the merchandise within 30 days of you receiving them. This return option allows you, even after the 14-day revocation period has expired, to cancel the contract by returning the merchandise to us, within 30 days of receiving them (this period commences upon your receipt of the merchandise).
If you are returning our merchandise, you can use the return shipping label enclosed with your order, or you can print the label out yourself from your customer account page. Please contact Customer Care if you have any problems downloading the return shipping label or you do not have access to a printer.
Your merchandise will be deemed returned within 30 days if you send it within such time. However, your exercise of this return option is preconditioned upon the merchandise being returned in full in its original condition, intact and undamaged, and in its original packaging. Until the period for exercising the statutory right of revocation expires, the statutory provisions governing this right shall apply exclusively. The option to return merchandise does not limit your statutory warranty rights, to which you remain entitled without qualification. The option to return merchandise does not apply to gift vouchers.
The voluntary 30 days return right does not exist for contracts subject to sealed goods which have been unsealed after delivery and which are not suitable for return because of hygienic reasons.
The statutory warranty rights remain unaffected from the voluntary 30 days return right. The voluntary 30 days right of return is not applicable to the purchase of gift vouchers.
"
```
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-company-account-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-company-account-feature.md
index c27d44c1c59..58d5498bedc 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-company-account-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-company-account-feature.md
@@ -329,7 +329,7 @@ Enable the following behaviors by registering the plugins:
| DefaultCompanyUserCustomerTransferExpanderPlugin | Sets a default company user for a Business on Behalf customer if a company user has not been selected yet. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer |
| IsOnBehalfCustomerTransferExpanderPlugin | Sets the `CustomerTransfer.IsOnBehalf` property so that other features can determine if the selected company user is a Business on Behalf company user. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer |
| CompanyUserAccessTokenAuthenticationHandlerPlugin | Provides functionality to log in a customer by an access token. | None | Spryker\Client\OauthCompanyUser\Plugin\Customer |
-| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it is already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer |
+| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it's already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer |
| CompanyUserAccessTokenOauthUserProviderPlugin | Provides a user transfer by a company user ID. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth |
| CompanyUserAccessTokenOauthGrantTypeConfigurationProviderPlugin | Provides the configuration of `CompanyUser` `GrantType`. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth |
| OauthCompanyUserInstallerPlugin| Creates new OAuth scope—adds `company_user scope` to the `spy_oauth_scope` table.) | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Installer |
@@ -729,7 +729,7 @@ business_on_behalf_widget.change_company_user,Change Company User,en_US
business_on_behalf_widget.change_company_user,Firmenbenutzer Profil ändern,de_DE
company_user.business_on_behalf.error.company_not_active,"You can not select this company user, company is not active.",en_US
company_user.business_on_behalf.error.company_not_active,"Sie können diesen Firmennutzer nicht auswählen da die Firma inaktiv ist",de_DE
-company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it is invalid.",en_US
+company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it's invalid.",en_US
company_user.business_on_behalf.error.company_user_invalid,"Sie können diesen Firmennutzer nicht auswählen da er ungültig ist",de_DE
customer_page.error.customer_already_logged_in,Customer already logged in.,en_US
customer_page.error.customer_already_logged_in,Der Kunde ist bereits eingeloggt.,de_DE
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-configurable-bundle-feature.md
index 4aae85c18e0..fc8c949fc1a 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-configurable-bundle-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-configurable-bundle-feature.md
@@ -605,7 +605,7 @@ class ConfigurableBundlePageSearchConfig extends SprykerConfigurableBundlePageSe
* from `spy_configurable_bundle_template_storage` table to Redis
* from `spy_configurable_bundle_template_page_search` table to Elasticsearch
-3. Make sure that when a configurable bundle template (or template slot) created or edited through ORM, it is exported to Redis or Elasticsearch accordingly.
+3. Make sure that when a configurable bundle template (or template slot) created or edited through ORM, it's exported to Redis or Elasticsearch accordingly.
| STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
| --- | --- | --- |
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-customer-access-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-customer-access-feature.md
index 1d3ce1cb6f4..4019eb1feb4 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-customer-access-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-customer-access-feature.md
@@ -170,7 +170,7 @@ class EventDependencyProvider extends SprykerEventDependencyProvider
{% info_block warningBox "Verification" %}
-Make sure that when a customer access rule is created, updated, or deleted, it is exported (or removed) to Redis.
+Make sure that when a customer access rule is created, updated, or deleted, it's exported (or removed) to Redis.
| TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
|-------------------------------------|------------------------------------|
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-discontinued-products-product-labels-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-discontinued-products-product-labels-feature.md
index 3528d1a6f74..6469c8e033c 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-discontinued-products-product-labels-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-discontinued-products-product-labels-feature.md
@@ -79,6 +79,6 @@ class ProductLabelDependencyProvider extends SprykerProductLabelDependencyProvid
{% info_block warningBox "Verification" %}
-Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it is assigned.
+Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it's assigned.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-merchant-b2b-contracts-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-merchant-b2b-contracts-feature.md
index 9cd7512ca01..ad3265daef3 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-merchant-b2b-contracts-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-merchant-b2b-contracts-feature.md
@@ -316,7 +316,7 @@ class MerchantRelationshipDependencyProvider extends SprykerMerchantRelationship
{% info_block warningBox "Verification" %}
-Make sure that, when you delete a merchant relationship, a notification email is sent to the email address of the company business unit's owner.
+Make sure that, when you delete a merchant relationship, a notification email is sent to the email address of the company business unit is owner.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-multiple-carts-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-multiple-carts-feature.md
index 7023ce4fb98..195fbb4e3c6 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-multiple-carts-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-multiple-carts-feature.md
@@ -330,7 +330,7 @@ Make sure that customer carts have unique names. If a customer creates a cart wi
Example:
-If the name "Shopping cart" already exists, it is changed to the following:
+If the name "Shopping cart" already exists, it's changed to the following:
* Shopping cart → Shopping cart 1
* Shopping cart → Shopping cart 2
@@ -426,7 +426,7 @@ Register the following plugins:
| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
|---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|---------------------------------|
-| GuestCartSaveCustomerSessionSetPlugin | Executed after the customer has been added to the session. Saves a guest customer quote to the database if it is not empty. Takes an actual customer quote from the database if the guest cart is empty. | Must be added before `GuestCartUpdateCustomerSessionSetPlugin`. | Spryker\Client\MultiCart\Plugin |
+| GuestCartSaveCustomerSessionSetPlugin | Executed after the customer has been added to the session. Saves a guest customer quote to the database if it's not empty. Takes an actual customer quote from the database if the guest cart is empty. | Must be added before `GuestCartUpdateCustomerSessionSetPlugin`. | Spryker\Client\MultiCart\Plugin |
**src/Pyz/Client/Customer/CustomerDependencyProvider.php**
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-order-management-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-order-management-feature.md
index adeb4434371..40d4965e431 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-order-management-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-order-management-feature.md
@@ -643,7 +643,7 @@ By default, in state machine names, the following applies:
```csv
sales.error.customer_order_not_found,Customer Order not found.,en_US
sales.error.customer_order_not_found,Die Bestellung wurde nicht gefunden.,de_DE
-sales.error.order_cannot_be_canceled_due_to_wrong_item_state,Order cannot be canceled due to wrong item state.,en_US
+sales.error.order_cannot_be_canceled_due_to_wrong_item_state,Order cannot be canceled because of wrong item state.,en_US
sales.error.order_cannot_be_canceled_due_to_wrong_item_state,Die Bestellung kann wegen dem falschen Artikelstatus nicht storniert werden.,de_DE
oms.state.new,New,en_US
oms.state.new,Neu,de_DE
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-packaging-units-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-packaging-units-feature.md
index 1fa6fe44de6..6f00aab6c73 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-packaging-units-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-packaging-units-feature.md
@@ -934,13 +934,13 @@ Add an item with packaging units to cart and check if the following statements a
* A packaging unit can be found for an item.
* The `amount`, `amountSalesUnit`, `amountLeadProduct` and `ProductPackagingUnit` fields in the `ItemTransfer` properties get fully populated.
* The amount restriction works as expected.
-* Availability is validated respectfully according to your lead product's and packaging unit's configuration.
+* Availability is validated respectfully according to your lead product's and packaging unit is configuration.
* Item grouping in the cart works as expected.
* Variable amount changes affect unit prices in the `ItemTransfer` properties.
* The quantity and amount are merged correctly when the group key matches.
Go through the checkout workflow, make an order and check if the following statements are true:
-* Check if the stock is modified respectfully according to your lead product's and packaging unit's configuration.
+* Check if the stock is modified respectfully according to your lead product's and packaging unit is configuration.
* Check if the following fields in the `spy_sales_order_item` table are saved:
* `amount`
* `amount_sku`
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-persistent-cart-sharing-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-persistent-cart-sharing-feature.md
index b4572a69b99..974f52ce762 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-persistent-cart-sharing-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-persistent-cart-sharing-feature.md
@@ -292,6 +292,6 @@ Make sure, that when you're on a cart page, you can see the "Share Cart via Link
{% info_block warningBox "Verification" %}
-Login to Yves as Company User, add some product to the cart and go to the cart page. Make sure, that you can see the "Share Cart via Link" widget on a cart page. Make sure you can see an "External Users" radio button. Click on it. Make sure, that you can see the generated link for Preview access. Make sure, that you can see a "Copy" button near the link. Click on it. Make sure, that the link was copied to the clipboard (or a message that it's impossible due to some browser limitations). Copy the Cart Preview link and proceed with it. Make sure, that you are redirected to the Cart Preview page.
+Login to Yves as Company User, add some product to the cart and go to the cart page. Make sure, that you can see the "Share Cart via Link" widget on a cart page. Make sure you can see an "External Users" radio button. Click on it. Make sure, that you can see the generated link for Preview access. Make sure, that you can see a "Copy" button near the link. Click on it. Make sure, that the link was copied to the clipboard (or a message that it's impossible because of some browser limitations). Copy the Cart Preview link and proceed with it. Make sure, that you are redirected to the Cart Preview page.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-bundles-cart-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-bundles-cart-feature.md
index 434b47757ec..e909ff2abcf 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-product-bundles-cart-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-product-bundles-cart-feature.md
@@ -55,7 +55,7 @@ Make sure that the item counter of the cart widget shows the correct number—bu
## Alternative setup for handling large quantities of bundled products in the cart
When a bundle product is added to the cart with a large quantity (for example, 100-200 items), users may
-experience a slow-down in the cart operations handling or even may get an internal server error due to insufficient memory.
+experience a slow-down in the cart operations handling or even may get an internal server error because of insufficient memory.
To avoid a slow-down in the cart operations and internal server errors, an alternative set of plugins has been implemented:
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-bundles-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-bundles-feature.md
index b2d3beeefd5..c9cafadc2b8 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-product-bundles-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-product-bundles-feature.md
@@ -210,7 +210,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
{% info_block warningBox "Verification" %}
-Ensure that, when a product bundle is created, updated, or deleted, it is exported to or removed from Redis.
+Ensure that, when a product bundle is created, updated, or deleted, it's exported to or removed from Redis.
Storage type: Redis
Target entity: Product Bundle
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-category-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-category-feature.md
index f528dd0a1b0..55b924d04d3 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-product-category-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-product-category-feature.md
@@ -345,7 +345,7 @@ class EventBehaviorDependencyProvider extends SprykerEventBehaviorDependencyProv
{% info_block warningBox "Verification" %}
-When a category product assignment is changed through ORM, make sure it is exported to Redis.
+When a category product assignment is changed through ORM, make sure it's exported to Redis.
| STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
|--------------|-------------------------|--------------------------------------|
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-images-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-images-configurable-bundle-feature.md
index 92e36980ad9..23db51e003f 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-product-images-configurable-bundle-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-product-images-configurable-bundle-feature.md
@@ -153,7 +153,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
1. Make sure that when you added some data to tables `spy_product_image_set`, `spy_product_image_set_to_product_image`, `spy_product_image` with `fk_resource_configurable_bundle_template` and run `console trigger:event -r configurable_bundle_template_image` command, the changes are reflected in the `spy_configurable_bundle_template_image_storage` table.
2. Make sure that after step #4 or after `console sync:data configurable_bundle_template_image` command execution, the data s added to the `spy_configurable_bundle_template_image_storage` table and Redis.
-3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it is exported to Redis accordingly.
+3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it's exported to Redis accordingly.
4. Ensure that Elasticsearch document has been expanded by images property.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-offer-service-points-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-offer-service-points-feature.md
index 3648f5f66c4..f111df98182 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-product-offer-service-points-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-product-offer-service-points-feature.md
@@ -464,7 +464,7 @@ Make sure that the `product-offer-service` synchronization plugin works correctl
2. Run the `console sync:data -r product_offer_service` command.
3. Make sure that, in your system, storage entries are displayed with the `kv:product_offer_service:{store}:{product_offer_reference}` mask.
-Make sure when a product offer service is created via DataImport, it is exported to Redis accordingly.
+Make sure when a product offer service is created via DataImport, it's exported to Redis accordingly.
Make sure that, in Redis, data is displayed in the following format:
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-offer-shipment-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-offer-shipment-feature.md
index ea9933eab92..81c6f1883ce 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-product-offer-shipment-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-product-offer-shipment-feature.md
@@ -336,7 +336,7 @@ Make sure that `product-offer-shipment-type` synchronization plugin works correc
2. Run the `console sync:data -r product_offer_shipment_type` command.
3. Make sure that, in your system, storage entries are displayed with the `kv:product_offer_shipment_type:{store}:{product_offer_reference}` mask.
-Make sure that when a product offer shipment type relation is created or edited through BAPI, it is exported to Redis accordingly.
+Make sure that when a product offer shipment type relation is created or edited through BAPI, it's exported to Redis accordingly.
In Redis, make sure data is represented in the following format:
```json
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-product-sets-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-product-sets-feature.md
index 13dfc73c869..5a6d0a8f441 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-product-sets-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-product-sets-feature.md
@@ -117,7 +117,7 @@ Implement an installer in your project to put products together in sets represen
### Listing products sets on the Storefront
-The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it is possible to implement the same features with a custom implementation.
+The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it's possible to implement the same features with a custom implementation.
For a simple listing, the `ProductSet` module provides a Client API to list product sets from Elasticsearch. By calling the `ProductSetClient::getProductSetList()` method, a limited set of documents can be listed on the Storefront. The results are sorted in descending order based on the product sets' weight attributes.
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-quotation-process-approval-process-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-quotation-process-approval-process-feature.md
index a840cd76dcc..40d9b388049 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-quotation-process-approval-process-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-quotation-process-approval-process-feature.md
@@ -22,7 +22,7 @@ Register the following plugins:
| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
|---|---|---|---|
| QuoteApprovalQuoteRequestQuoteCheckPlugin | Checks if the "Request For Quote" button should be shown on the cart page or not. | None | Spryker\Client\QuoteApproval\Plugin\QuoteRequest |
-| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it is in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval |
+| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it's in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval |
| QuoteApprovalQuoteRequestPreCreateCheckPlugin | Checks if the quote doesn't have the status `waiting`. | None | Spryker\Zed\QuoteApproval\Communication\Plugin\QuoteRequest |
**src/Pyz/Client/QuoteRequest/QuoteRequestDependencyProvider.php**
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-service-points-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-service-points-feature.md
index a374116cb92..84aedff44ce 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-service-points-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-service-points-feature.md
@@ -1075,7 +1075,7 @@ Verify the `service-point` synchronization plugin works correctly:
{% info_block warningBox "Verification" %}
-* Make sure that, when a service point is created or edited through BAPI, it is exported to Redis accordingly.
+* Make sure that, when a service point is created or edited through BAPI, it's exported to Redis accordingly.
* Make sure that, in Redis, data is displayed in the following format:
```yaml
@@ -1148,7 +1148,7 @@ Verify the `service-type` synchronization plugin works correctly:
{% info_block warningBox "Verification" %}
-* Make sure that when a service type is created or edited through BAPI, it is exported to Redis accordingly.
+* Make sure that when a service type is created or edited through BAPI, it's exported to Redis accordingly.
* Make sure that, in Redis, data is displayed in the following format:
```json
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-shipment-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-shipment-feature.md
index 3771019e5ed..2ef8891c97f 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-shipment-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-shipment-feature.md
@@ -971,7 +971,7 @@ Make sure that `shipment-type` synchronization plugin works correctly:
2. Run the `console sync:data -r shipment_type` command.
3. Make sure that, in your system, storage entries are displayed with the `kv:shipment_type:{store}:{shipment_type_id}` mask.
-Make sure that when a shipment type is created or edited through BAPI, it is exported to Redis accordingly.
+Make sure that when a shipment type is created or edited through BAPI, it's exported to Redis accordingly.
In Redis, make sure data is represented in the following format:
```json
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-shopping-lists-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-shopping-lists-feature.md
index 524564bdb54..eea107c0d0b 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-shopping-lists-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-shopping-lists-feature.md
@@ -705,7 +705,7 @@ Workstations,spryker_systems_Berlin,READ_ONLY
|-----------------------|----------|-----------|--------------------|-----------------------------------------------------------------------------------------|
| shopping_list_key | ✓ | string | Laptops | Defines a shopping list to assign to a business unit. |
| business_unit_key | ✓ | string | spryker_systems_HR | Defines a business unit to share a shopping list with. |
-| permission_group_name | ✓ | integer | FULL_ACCESS | Defines a business unit's permissions to access a shopping list. |
+| permission_group_name | ✓ | integer | FULL_ACCESS | Defines a business unit is permissions to access a shopping list. |
2. Register the following plugin to enable data import:
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-back-office-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-back-office-feature.md
index a9cd5367371..53eaf7d3b82 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-back-office-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-back-office-feature.md
@@ -108,7 +108,7 @@ Add the following configuration to your project:
| AclConstants::ACL_DEFAULT_RULES | Default rules for ACL functionality, where you can open access to some modules or controller out of the box. | Spryker\Shared\Acl |
| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_TTL | Specifies the TTL configuration, the period when the number of unsuccessful tries is counted for a Back Office user. | Spryker\Shared\SecurityBlockerBackoffice |
| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the Back Office user is blocked if the number of attempts is exceeded for the Back Office. | Spryker\Shared\SecurityBlockerBackoffice |
-| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempts a Back Office user can make during the `SECURITY_BLOCKER_BACKOFFICE:BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerBackoffice |
+| SecurityBlockerBackofficeConstants::BACKOFFICE_USER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempts a Back Office user can make during the `SECURITY_BLOCKER_BACKOFFICE:BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerBackoffice |
**config/Shared/config_default.php**
@@ -176,7 +176,7 @@ class SecurityGuiConfig extends SprykerSecurityGuiConfig
By default, Spryker offers two authentication strategies:
-* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_CREATE_USER_ON_FIRST_LOGIN`: If a user doesn't exist, it is created automatically based on the data from an external service.
+* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_CREATE_USER_ON_FIRST_LOGIN`: If a user doesn't exist, it's created automatically based on the data from an external service.
* `\Spryker\Zed\SecurityOauthUser\SecurityOauthUserConfig::AUTHENTICATION_STRATEGY_ACCEPT_ONLY_EXISTING_USERS`: It accepts only existing users for authentication.
diff --git a/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-feature.md b/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-feature.md
index 89409cde50b..372925b67e8 100644
--- a/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/install-the-spryker-core-feature.md
@@ -306,7 +306,7 @@ Add environment configuration for customer security:
|----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|
| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCK_FOR_SECONDS | Specifies the TTL configuration, the period for which the agent is blocked if the number of attempts is exceeded for customer. | Spryker\Shared\SecurityBlockerStorefrontCustomer |
| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_TTL | Specifies the TTL configuration, the period when number of unsuccessful tries will be counted for customer. | Spryker\Shared\SecurityBlockerStorefrontCustomer |
-| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt a customer can make during the `SECURITY_BLOCKER_STOREFRONT:CUSTOMER_BLOCKING_TTL` time before it is blocked. | Spryker\Shared\SecurityBlockerStorefrontCustomer |
+| SecurityBlockerStorefrontCustomerConstants::CUSTOMER_BLOCKING_NUMBER_OF_ATTEMPTS | Specifies number of failed login attempt a customer can make during the `SECURITY_BLOCKER_STOREFRONT:CUSTOMER_BLOCKING_TTL` time before it's blocked. | Spryker\Shared\SecurityBlockerStorefrontCustomer |
**config/Shared/config_default.php**
diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-inventory-management-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-inventory-management-feature.md
index 4da32209f4f..e84bf35f3af 100644
--- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-inventory-management-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-inventory-management-feature.md
@@ -612,7 +612,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
Make sure the following actions take place as expected:
* The command `console sync:data merchant_profile` exports data from the `spy_product_offer_availability_storage` table to Redis.
-* When a product offer availability entity gets created or updated through ORM, it is exported to Redis accordingly.
+* When a product offer availability entity gets created or updated through ORM, it's exported to Redis accordingly.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-merchant-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-merchant-feature.md
index 31bd5548e72..f987804c870 100644
--- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-merchant-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-merchant-feature.md
@@ -431,17 +431,17 @@ To import data follow the steps in the following sections.
```csv
merchant_reference,contact_person_role,contact_person_title,contact_person_first_name,contact_person_last_name,contact_person_phone,banner_url,logo_url,public_email,public_phone,description_glossary_key.en_US,description_glossary_key.de_DE,banner_url_glossary_key.en_US,banner_url_glossary_key.de_DE,delivery_time_glossary_key.en_US,delivery_time_glossary_key.de_DE,terms_conditions_glossary_key.en_US,terms_conditions_glossary_key.de_DE,cancellation_policy_glossary_key.en_US,cancellation_policy_glossary_key.de_DE,imprint_glossary_key.en_US,imprint_glossary_key.de_DE,data_privacy_glossary_key.en_US,data_privacy_glossary_key.de_DE,is_active,fax_number
-MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","
Vertreten durch Geschäftsführer: Alexander Graf, Boris Lokschin Registergericht: Hamburg Registernummer: HRB 134310
",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800
-MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Video King
Gilzeweg 24 4854SG Bavel NL
Phone: +31 123 45 6789 Email: hi@video-king.nl
Represented by Managing Director: Max Mustermann Register Court: Amsterdam Register Number: 1234.4567
,
Video King
Gilzeweg 24 4854SG Bavel NL
Telefon: +31 123 45 6789 Email: hi@video-king.nl
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Amsterdam Registernummer: 1234.4567
,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733
+MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","
Vertreten durch Geschäftsführer: Alexander Graf, Boris Lokschin Registergericht: Hamburg Registernummer: HRB 134310
",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800
+MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Video King
Gilzeweg 24 4854SG Bavel NL
Phone: +31 123 45 6789 Email: hi@video-king.nl
Represented by Managing Director: Max Mustermann Register Court: Amsterdam Register Number: 1234.4567
,
Video King
Gilzeweg 24 4854SG Bavel NL
Telefon: +31 123 45 6789 Email: hi@video-king.nl
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Amsterdam Registernummer: 1234.4567
,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733
MER000006,Brand Manager,Ms,Michele,Nemeth,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-logo.png,support@sony-experts.com,+49 30 234567691,"Capture your moment with the best cameras from Sony. From pocket-size to professional-style, they all pack features to deliver the best quality pictures.
Discover the range of Sony cameras, lenses and accessories, and capture your favorite moments with precision and style with the best cameras can offer.","Halten Sie Ihren Moment mit den besten Kameras von Sony fest. Vom Taschenformat bis hin zum professionellen Stil bieten sie alle Funktionen, um Bilder in bester Qualität zu liefern.
-Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: München Registernummer: HYY 134306
,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600
+Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: München Registernummer: HYY 134306
,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600
MER000004,,,,,,,,,,,,,,,,,,,,,,,,0,
MER000003,,,,,,,,,,,,,,,,,,,,,,,,0,
MER000007,,,,,,,,,,,,,,,,,,,,,,,,0,
MER000005,Merchandise Manager,Mr,Jason,Weidmann,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-logo.png,support@budgetcamerasonline.com,+49 30 234567591,"DSLR and mirrorless cameras are by far the most popular with filmmakers on a tight budget when you can't afford multiple specialist cameras.
Budget Cameras is offering a great selection of digital cameras with the lowest prices.","DSLR- und spiegellose Kameras sind bei Filmemachern mit knappem Budget bei weitem am beliebtesten, wenn sie sich bestimmte Spezialkameras nicht leisten können.
-Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Hamburg Registernummer: HXX 134305
,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500
+Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Hamburg Registernummer: HXX 134305
,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500
```
diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-order-management-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-order-management-feature.md
index b4387ae9c6f..c4a0b3ee2a1 100644
--- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-order-management-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-order-management-feature.md
@@ -1100,7 +1100,7 @@ class ShopApplicationDependencyProvider extends SprykerShopApplicationDependency
Make sure that the Merchant State Machine is executed on merchant orders after the order has been split.
-Make sure that when retrieving an order in the *Sales* module, it is split by the merchant order and that the Order state is derived from the Merchant State Machine.
+Make sure that when retrieving an order in the *Sales* module, it's split by the merchant order and that the Order state is derived from the Merchant State Machine.
Make sure that after splitting the order into merchants' orders, their IDs are displayed on the order details page in Yves.
diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-offer-cart-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-offer-cart-feature.md
index ee343583186..9ce7e3141ee 100644
--- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-offer-cart-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-offer-cart-feature.md
@@ -84,7 +84,7 @@ class CartDependencyProvider extends SprykerCartDependencyProvider
Make sure that inactive product offers get removed from cart on reload.
-Make sure that it is only possible to have items in cart where the product offer reference belongs to the correct concrete product.
+Make sure that it's only possible to have items in cart where the product offer reference belongs to the correct concrete product.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-options-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-options-feature.md
index 406fbea6c4b..07d625a9cdb 100644
--- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-options-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-product-options-feature.md
@@ -372,7 +372,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
Make sure the following is true:
* Merchants can create product option groups and values in the Merchant Portal.
-* Merchant product option information is shown on a product details page when it is approved and active.
+* Merchant product option information is shown on a product details page when it's approved and active.
* Merchant product option information is displayed in the cart, checkout, and user account.
* Merchant product options are a part of the marketplace or merchant order, and all totals are calculated correctly.
diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-return-management-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-return-management-feature.md
index 0460b1b5037..38200ac77d6 100644
--- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-return-management-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-marketplace-return-management-feature.md
@@ -835,7 +835,7 @@ Make sure that when you create and process a return for merchant order items, it
| MARKETPLACE SM | DEFAULT MERCHANT SM | MAIN MERCHANT SM |
| --- | ---| --- |
| Used by an operator | Used by a third-party merchant. | Used by a main merchant. |
-| start-return (can be started by entering in the Return Flow; it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return
+| start-return (can be started by entering in the Return Flow; it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return
| execute return > returned | execute return (manually executable) > returned execute return (manually executable) > returned
| refund > refunded | refund (manually executable) > refunded | refund (manually executable) > refunded
| cancel return > return canceled | cancel return (manually executable) > return canceled | cancel return (manually executable) > return canceled
diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-merchant-opening-hours-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-merchant-opening-hours-feature.md
index 7ffc72236c2..04cc69a5541 100644
--- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-merchant-opening-hours-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-merchant-opening-hours-feature.md
@@ -274,7 +274,7 @@ class MerchantOpeningHoursStorageConfig extends SprykerMerchantOpeningHoursStora
1. Make sure that after step 1 the command `console sync:data merchant_opening_hours` exports data from the `spy_merchant_opening_hours_storage` table to Redis.
-2. Make sure that when merchant opening hours entities get created or updated through ORM, it is exported to Redis accordingly.
+2. Make sure that when merchant opening hours entities get created or updated through ORM, it's exported to Redis accordingly.
| TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
| ---------------- | ----------------- |
diff --git a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-merchant-switcher-feature.md b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-merchant-switcher-feature.md
index 0787f2b817b..d21adcef1df 100644
--- a/_includes/pbc/all/install-features/202404.0/marketplace/install-the-merchant-switcher-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/marketplace/install-the-merchant-switcher-feature.md
@@ -106,7 +106,7 @@ Append glossary according to your configuration:
**data/import/common/common/glossary.csv**
```yaml
-merchant_switcher.message,Switch from %currentMerchant% to %newMerchant%? Due to different availability, not all products may be added to your shopping cart.,en_US
+merchant_switcher.message,Switch from %currentMerchant% to %newMerchant%? Because of different availability, not all products may be added to your shopping cart.,en_US
merchant_switcher.message,Wechseln von %currentMerchant% zu %newMerchant%? Aufgrund unterschiedlicher Verfügbarkeit können ggf. nicht alle Produkte in Warenkorb übernommen werden.,de_DE
merchant_switcher.message.product_is_not_available,"Product %product_name% (SKU %sku%) is not available from the selected merchant. Please remove it in order to proceed or switch the merchant.",en_US
merchant_switcher.message.product_is_not_available,"Produkt %product_name% (SKU %sku%) ist beim ausgewählten Händler nicht erhältlich. Bitte diesen Artikel entfernen, um fortzufahren oder den Händler zu wechseln.",de_DE
diff --git a/_includes/pbc/all/install-features/202404.0/unified-commerce/install-the-warehouse-picking-product-feature.md b/_includes/pbc/all/install-features/202404.0/unified-commerce/install-the-warehouse-picking-product-feature.md
index 79e4b8f996d..ed1a87d72fc 100644
--- a/_includes/pbc/all/install-features/202404.0/unified-commerce/install-the-warehouse-picking-product-feature.md
+++ b/_includes/pbc/all/install-features/202404.0/unified-commerce/install-the-warehouse-picking-product-feature.md
@@ -153,7 +153,7 @@ Make sure the `concrete-products` and `concrete-product-image-sets` resources ar
"is_active": true
},
"name": "Sony SmartWatch 3",
- "description": "Gear S2 X Atelier Mendini In einer wunderbaren Partnerschaft bringt Alessandro Mendini seinen Geschmack, Humor und Farbsinn in die Gestaltung der Gear S2 ein. Das Ergebnis ist eine Reihe von Zifferblättern und Armbändern, die Ihren persönlichen Stil zum Ausdruck bringen. Die wesentlichen Smartphone-Funktionen sind mit einer einfachen Drehung an der Gear S2 verfügbar. Drehen Sie leicht an der Blende, um lange E-Mails zu durchblättern, eine Karte zu vergrössern oder bei der Musikwiedergabe ein Stück zu überspringen. Mit jeder Drehung wird das Leben noch interessanter und bunter. Mit der Gear S2 können Sie sich sehr leicht um Ihre Gesundheit kümmern. Verfolgen Sie Ihre täglichen Aktivitäten, Ihren Puls und Ihren Wasserkonsum verglichen mit Ihrem Koffeinkonsum. Bleiben Sie fit mit zeitgerechten motivierenden Botschaften. Bleiben Sie auf dem Laufenden und fit. Und wenn es Zeit ist, die Smartwatch wieder aufzuladen, stellen Sie sie einfach auf eine drahtlose Ladestation.",
+ "description": "Gear S2 X Atelier Mendini In einer wunderbaren Partnerschaft bringt Alessandro Mendini seinen Geschmack, Humor und Farbsinn in die Gestaltung der Gear S2 ein. Das Ergebnis ist eine Reihe von Zifferblättern und Armbändern, die Ihren persönlichen Stil zum Ausdruck bringen. Die wesentlichen Smartphone-Funktionen sind mit einer einfachen Drehung an der Gear S2 verfügbar. Drehen Sie leicht an der Blende, um lange E-Mails zu durchblättern, eine Karte zu vergrössern oder bei der Musikwiedergabe ein Stück zu überspringen. Mit jeder Drehung wird das Leben noch interessanter und bunter. Mit der Gear S2 können Sie sich sehr leicht um Ihre Gesundheit kümmern. Verfolgen Sie Ihre täglichen Aktivitäten, Ihren Puls und Ihren Wasserkonsum verglichen mit Ihrem Koffeinkonsum. Bleiben Sie fit mit zeitgerechten motivierenden Botschaften. Bleiben Sie auf dem Laufenden und fit. Und wenn es Zeit'st, die Smartwatch wieder aufzuladen, stellen Sie sie einfach auf eine drahtlose Ladestation.",
"isSearchable": true,
"attributes": {
"color": "Weiß"
diff --git a/_includes/pbc/all/install-features/202410.0/enable-gift-cards.md b/_includes/pbc/all/install-features/202410.0/enable-gift-cards.md
index 031d6cb4247..fada0bdabb7 100644
--- a/_includes/pbc/all/install-features/202410.0/enable-gift-cards.md
+++ b/_includes/pbc/all/install-features/202410.0/enable-gift-cards.md
@@ -31,7 +31,7 @@ spryker/product-management:"^0.12.0"
| `GiftCardIsActiveDecisionRulePlugin` | Doesn’t allow using inactive Gift Cards. |`GiftCardDependencyProvider::getDecisionRulePlugins` | - |
| `GiftCardDiscountableItemFilterPlugin` |Restricts using a Gift Card for another Gift Cards in a cart. The plugin filters out Gift Cards from discountable items. |`DiscountDependencyProvider::getDiscountableItemFilterPlugins` | - |
| `GiftCardIsUsedDecisionRulePlugin` | As a part of the replacement strategy, this plugin does not allow using a Gift Card twice. |`GiftCardDependencyProvider::getDecisionRulePlugins` | Replacement |
-| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it is in the cart. | `CartDependencyProvider::getExpanderPlugins` | - |
+| `GiftCardMetadataExpanderPlugin` | Populates Gift Card information when it's in the cart. | `CartDependencyProvider::getExpanderPlugins` | - |
| `GiftCardCheckoutDoSaveOrderPlugin` | Saves a Gift Card with populated data when an order is placed. Keeps Gift Card as an order payment method. | `CheckoutDependencyProvider::getCheckoutOrderSavers` | - |
| `GiftCardPaymentMethodFilterPlugin` | Now, every payment method is compatible with a Gift Card in the cart. The plugin filters out all incompatible payment methods from available ones during checkout payment methods step. | `PaymentDependencyProvider::getPaymentMethodFilterPlugins` | - |
| `GiftCardCheckoutPreConditionPlugin` | Confirms that a Gift Card is not used at the moment and that payment method amount assigned to the Gift Card is no more than the Gift Card amount itself.. | `CheckoutDependencyProvider::getCheckoutPreConditions` | - |
diff --git a/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore-the-prices-feature.md b/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore-the-prices-feature.md
index 189e373f8cf..c1f5932c31a 100644
--- a/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore-the-prices-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore-the-prices-feature.md
@@ -128,7 +128,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
{% info_block warningBox "Verification" %}
-Using the following data, make sure that when you add, update, or delete a store currency, it is exported to or removed from Storage.
+Using the following data, make sure that when you add, update, or delete a store currency, it's exported to or removed from Storage.
Storage type: Redis
Target entity: Store
diff --git a/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore.md b/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore.md
index 3a912d4a152..52e323e662d 100644
--- a/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore.md
+++ b/_includes/pbc/all/install-features/202410.0/install-dynamic-multistore.md
@@ -90,7 +90,7 @@ image:
regions:
EU:
# Services for EU region. Use one of the following services: mail, database, broker, key_value_store, search for all stores in EU region.
- # Stores MUST not be defined in the deploy file as it was before due to their dynamic nature
+ # Stores MUST not be defined in the deploy file as it was before because of their dynamic nature
services:
mail:
sender:
@@ -689,7 +689,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
{% info_block warningBox "Verification" %}
-When a store’s data is created, updated, or deleted, including local and country information, make sure it is correctly exported to or removed from Redis.
+When a store’s data is created, updated, or deleted, including local and country information, make sure it's correctly exported to or removed from Redis.
Storage type: Redis
Target entity: Store
@@ -1526,11 +1526,18 @@ class ShopApplicationDependencyProvider extends SprykerShopApplicationDependency
return [
new StoreApplicationPlugin(),
];
- }
+ }
}
```
-## Launch and set up environment
+
+## Launch and set up environment locally
+
+{% info_block warningBox "" %}
+
+To enable Dynamic Multistore in a production environment, see [Enable Dynamic Multistore](/docs/pbc/all/dynamic-multistore/202410.0/base-shop/enable-dynamic-multistore.html).
+
+{% endinfo_block %}
Rebuild the application with assets and activate new endpoints:
@@ -1544,3 +1551,129 @@ docker/sdk boot && docker/sdk up --assets
- Make sure the store switcher is displayed on the Storefront.
{% endinfo_block %}
+
+## Add store name to Storefront URLs
+
+If you want a store name as part of the URL path, follow the steps below.
+
+{% info_block warningBox "Verification" %}
+
+If you're using internal URLs in Twig templates, now they must be wrapped using the `generatePath()` Twig function provided by the `GeneratePathTwigPlugin` plugin. This ensures the URLs contain the necessary context, such as a store name, based on the current request.
+
+{% endinfo_block %}
+
+1. Configure store name in URLs:
+
+**config/Shared/config_default.php**
+
+```php
+
+ */
+ protected function getRouterEnhancerPlugins(): array
+ {
+ return [
+ new StorePrefixRouterEnhancerPlugin(),
+ new LanguagePrefixRouterEnhancerPlugin(),
+ ];
+ }
+}
+```
+
+**src/Pyz/Yves/StorageRouter/StorageRouterDependencyProvider.php**
+
+```php
+
+ */
+ protected function getStorageRouterEnhancerPlugins(): array
+ {
+ return [
+ new StorePrefixStorageRouterEnhancerPlugin(),
+ ];
+ }
+}
+```
+
+{% info_block infoBox "" %}
+
+`LanguagePrefixRouterEnhancerPlugin` isn't needed for `StorageRouter` because the language is already part of the URL for `StorageRouter`.
+
+{% endinfo_block %}
+
+**src/Pyz/Yves/Twig/TwigDependencyProvider.php**
+
+```php
+
+ */
+ protected function getTwigPlugins(): array
+ {
+ return [
+ new GeneratePathTwigPlugin(),
+ ];
+ }
+}
+```
diff --git a/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-multiple-carts-glue-api.md b/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-multiple-carts-glue-api.md
index 3cd1d00c78f..a9e32dde44d 100644
--- a/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-multiple-carts-glue-api.md
+++ b/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-multiple-carts-glue-api.md
@@ -91,7 +91,7 @@ Make sure that the following endpoints are available:
{% info_block warningBox “Verification” %}
-Make sure that it is possible to create more than one cart.
+Make sure that it's possible to create more than one cart.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-navigation-glue-api.md b/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-navigation-glue-api.md
index a8810da82c8..7c60ed571ca 100644
--- a/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-navigation-glue-api.md
+++ b/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-navigation-glue-api.md
@@ -155,7 +155,7 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency
{% info_block warningBox “Verification” %}
-Now, it is possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.)
+Now, it's possible to verify that the configuration of NavigationsRestApiConfig is done correctly. Perform the "https://glue.mysprykershop.com/navigations/{navigationId}" request and check that each node of the type you set up in the configuration (category and CMS pages in the example "resourceId" is filled with the valid foreign key.)
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-payments-glue-api.md b/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-payments-glue-api.md
index d78a841f6cb..97d4d26d35f 100644
--- a/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-payments-glue-api.md
+++ b/_includes/pbc/all/install-features/202410.0/install-glue-api/install-the-payments-glue-api.md
@@ -2,9 +2,7 @@
{% info_block errorBox %}
-
-The following feature integration Guide expects the basic feature to be in place.
-The current guide only adds the Payment Management API functionality.
+The following feature integration Guide expects the basic feature to be in place. The current guide only adds the Payment Management API functionality.
{% endinfo_block %}
@@ -20,9 +18,9 @@ To start the feature integration, overview and install the necessary features:
| Spryker Core | {{page.version}} | [Install the Spryker Core Glue API](/docs/pbc/all/miscellaneous/{{page.version}}/install-and-upgrade/install-glue-api/install-the-spryker-core-glue-api.html) |
| Payments | {{page.version}} | [Install the Payments feature](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/install-and-upgrade/install-the-payments-feature.html) |
-## 1) Install the required modules using Composer
+## 1) Install the required modules using Composer
-Run the following command to install the required modules:
+Install the required modules:
```bash
composer require spryker/payments-rest-api:"1.1.0" --update-with-dependencies
@@ -140,9 +138,10 @@ Make sure that the following changes have occurred:
Activate the following plugin:
-| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
-| --- | --- | --- | --- |
-| PaymentMethodsByCheckoutDataResourceRelationshipPlugin | Adds payment-methods resource as relationship in case `RestCheckoutDataTransfer` is provided as payload. | None | Spryker\Glue\PaymentsRestApi\Plugin\GlueApplication |
+| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
+|--------------------------------------------------------|----------------------------------------------------------------------------------------------------------|---------------|-----------------------------------------------------|
+| PaymentMethodsByCheckoutDataResourceRelationshipPlugin | Adds the `payment-methods` resource as relationship in case `RestCheckoutDataTransfer` is provided as payload. | | Spryker\Glue\PaymentsRestApi\Plugin\GlueApplication |
+| PaymentCustomersResourceRoutePlugin | Returns customer data to use on the Storefront address page. | | Spryker\Glue\PaymentsRestApi\Plugin\GlueApplication |
**src/Pyz/Glue/GlueApplication/GlueApplicationDependencyProvider.php**
@@ -173,12 +172,109 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency
return $resourceRelationshipCollection;
}
+
+ /**
+ * {@inheritDoc}
+ *
+ * @return array<\Spryker\Glue\GlueApplicationExtension\Dependency\Plugin\ResourceRoutePluginInterface>
+ */
+ protected function getResourceRoutePlugins(): array
+ {
+ return [
+ new PaymentCustomersResourceRoutePlugin(),
+ ];
+ }
}
```
{% info_block warningBox "Verification" %}
-To verify `PaymentMethodsByCheckoutDataResourceRelationshipPlugin` is activated, send a POST request to `https://glue.mysprykershop.com/checkout-data?include=payment-methods` and make sure that `checkout-data` resource has a relationship to the `payment-methods` resources.
+* To verify `PaymentMethodsByCheckoutDataResourceRelationshipPlugin` is activated, send a `POST https://glue.mysprykershop.com/checkout-data?include=payment-methods` and request and make sure that `checkout-data` resource has a relationship to the `payment-methods` resources.
+* To verify `PaymentCustomersResourceRoutePlugin` is activated, send a `POST https://glue.mysprykershop.com/payment-customers` request and make sure that customer data is returned.
+
+Here is an example request for the PayOne PayPal Express payment method used by a guest or authorized customer to retrieve user data such as addresses from the PSP:
+
+`POST https://glue.mysprykershop.com/payment-customers`
+```json
+{
+ "data": {
+ "type": "payment-customers",
+ "attributes": {
+ "payment": {
+ "paymentMethodName": "paypal-express",
+ "paymentProviderName": "payone"
+ },
+ "customerPaymentServiceProviderData": {
+ "orderId": "order-id",
+ "workorderid": "workorder-id",
+ "transactionId": "transaction-id",
+ "token": "token",
+ "currency": "EUR",
+ "idCart": "d79a9c31-ed3d-57f5-958b-498e6b862ab3"
+ }
+ }
+ }
+}
+```
+
+The response can be different depending on the payment method.
+
+
+ Response example
+
+```json
+{
+ "type": "payment-customers",
+ "id": null,
+ "attributes": {
+ "customer": {
+ "salutation": "n/a",
+ "firstName": "Spryker",
+ "lastName": "Systems",
+ "email": "eco-test+1@spryker.com",
+ "phone": "7886914965",
+ "company": null,
+ "billingAddress": {
+ "salutation": "n/a",
+ "firstName": "Eco",
+ "lastName": "Test",
+ "address1": "Julie-Wolfthorn-Strasse",
+ "address2": "1",
+ "address3": null,
+ "zipCode": "10115",
+ "city": "Berlin",
+ "country": "DE",
+ "iso2Code": "DE",
+ "company": null,
+ "phone": "7886914965",
+ "isDefaultShipping": null,
+ "isDefaultBilling": null
+ },
+ "shippingAddress": {
+ "salutation": "n/a",
+ "firstName": "Eco",
+ "lastName": "Test",
+ "address1": "Julie-Wolfthorn-Strasse",
+ "address2": "1",
+ "address3": null,
+ "zipCode": "10115",
+ "city": "Berlin",
+ "country": "DE",
+ "iso2Code": "DE",
+ "company": null,
+ "phone": "7886914965",
+ "isDefaultShipping": null,
+ "isDefaultBilling": null
+ }
+ }
+ },
+ "links": {
+ "self": "https://glue.de.aop-suite-testing.demo-spryker.com/payment-customers"
+ }
+}
+```
+
+
{% endinfo_block %}
@@ -188,7 +284,7 @@ Mappers should be configured on a project level to map the data from the request
| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
| --- | --- | --- |--- |
-| PaymentsQuoteMapperPlugin | Adds a mapper that maps Payments information to `QuoteTransfer`. | None | `Spryker\Zed\PaymentsRestApi\Communication\Plugin\CheckoutRestApi` |
+| PaymentsQuoteMapperPlugin | Adds a mapper that maps Payments information to `QuoteTransfer`. | | `Spryker\Zed\PaymentsRestApi\Communication\Plugin\CheckoutRestApi` |
**src/Pyz/Zed/CheckoutRestApi/CheckoutRestApiDependencyProvider.php**
@@ -224,7 +320,7 @@ To verify that `PaymentsQuoteMapperPlugin` is activated, send a POST request to
| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
| --- | --- | --- | --- |
-| SelectedPaymentMethodCheckoutDataResponseMapperPlugin | Maps the selected payment method data to the checkout-data resource attributes. | None | Spryker\Glue\PaymentsRestApi\Plugin\CheckoutRestApi |
+| SelectedPaymentMethodCheckoutDataResponseMapperPlugin | Maps the selected payment method data to the checkout-data resource attributes. | | Spryker\Glue\PaymentsRestApi\Plugin\CheckoutRestApi |
**src/Pyz/Glue/CheckoutRestApi/CheckoutRestApiDependencyProvider.php**
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-approval-process-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-approval-process-feature.md
index 8aa896e550c..579ad7b6eb3 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-approval-process-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-approval-process-feature.md
@@ -139,9 +139,9 @@ quote_approval.remove,Cancel Request,en_US
quote_approval.remove,Anfrage Abbrechen,de_DE
quote_approval.cart.require_approval,"You can't place this order because of your purchasing limit, please send your cart for approval or contact your manager.",en_US
quote_approval.cart.require_approval,"Sie können diese Bestellung aufgrund Ihres Einkaufslimits nicht aufgeben. Senden Sie Ihren Einkaufswagen zur Genehmigung oder wenden Sie sich an Ihren Kontakmanager.",de_DE
-quote_approval.cart.waiting_approval,"You can't place this order due to pending approval request.",en_US
+quote_approval.cart.waiting_approval,"You can't place this order because of pending approval request.",en_US
quote_approval.cart.waiting_approval,"Sie können diese Bestellung aufgrund einer ausstehenden Genehmigungsanfrage nicht aufgeben.",de_DE
-quote_approval.create.approver_cant_approve_quote,"Selected approver cannot approve your request due to approver limit.",en_US
+quote_approval.create.approver_cant_approve_quote,"Selected approver cannot approve your request because of approver limit.",en_US
quote_approval.create.approver_cant_approve_quote,"Der ausgewählte Manager kann Ihre Anfrage aufgrund des Genehmigungslimits nicht genehmigen.",de_DE
quote_approval.create.you_cant_approve_quote,"You can't approve or decline this cart because it's amount higher that your Approver limit.",en_US
quote_approval.create.you_cant_approve_quote,"Sie können diesen Einkaufswagen nicht genehmigen oder ablehnen, weil dessen Betrag höher als ihr Genehmigungslimit ist.",de_DE
@@ -448,7 +448,7 @@ quote_approval_widget.cart.status.waiting,"Waiting",en_US
quote_approval_widget.cart.status.waiting,"Wartet",de_DE
quote_approval_widget.shared_cart_warning,"After a cart has been sent to approval, all of its shares will be dismissed.",en_US
quote_approval_widget.shared_cart_warning,"Nachdem der Warenkorb zur Genehmigung gesendet wurde, wird sein Sharing aufgehoben.",de_DE
-quote_approval_widget.limit_text,"Your purchase limit is %amount%. To spend more, request approval from your manager.",en_US
+quote_approval_widget.limit_text,"Your purchase limit's %amount%. To spend more, request approval from your manager.",en_US
quote_approval_widget.limit_text,"Ihr Einkaufsrahmen liegt bei %amount%. Um mehr auszugeben, fordern Sie bitte die Genehmigung bei Ihrem Manager an",de_DE
quote_approval_widget.no_limit_text,"You do not have a purchase limit",en_US
quote_approval_widget.no_limit_text,"Sie haben kein Einkaufslimit",de_DE
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-category-image-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-category-image-feature.md
index 1d9f41e6cab..f200dcf7690 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-category-image-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-category-image-feature.md
@@ -263,7 +263,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
{% info_block warningBox "Verification" %}
-Make sure that when a category image is created, updated, or deleted, it is exported or removed from Redis accordingly.
+Make sure that when a category image is created, updated, or deleted, it's exported or removed from Redis accordingly.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-category-management-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-category-management-feature.md
index 781d68981fa..8d1a3105bc4 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-category-management-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-category-management-feature.md
@@ -712,7 +712,7 @@ Make sure that *category-node* and *category-tree* synchronization plugins works
3. Run the `console sync:data -r category_tree` command.
4. Check that, in your system, the storage entries are displayed with the `kv:category_node:{store}:{locale}:{id}` and `kv:category_tree:{store}:{locale}:{id}` masks.
-Make sure that, when a category is created or edited through ORM, it is exported to Redis and Elasticsearch accordingly.
+Make sure that, when a category is created or edited through ORM, it's exported to Redis and Elasticsearch accordingly.
| STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
|---------------|---------------|----------------------------------|
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-cms-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-cms-feature.md
index 5b2a2c6d1ab..46524e3a960 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-cms-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-cms-feature.md
@@ -779,7 +779,7 @@ cms-page--3,Placeholders Title & Content,1,1,1,/de/datenschutz,/en/privacy,Daten
cms-page--4,Placeholders Title & Content,1,0,1,/de/loremde,/en/lorem,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,Lorem ipsum,"{% raw %}{{{% endraw %} chart('testChart', 'testChart') {% raw %}}}{% endraw %} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.","{% raw %}{{{% endraw %} chart('testChart', 'testChart') {% raw %}}}{% endraw %} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem."
cms-page--5,Placeholders Title & Content,1,1,0,/de/dolorde,/en/dolor,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Dolor sit amet,Lorem ipsum,Lorem ipsum,"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.","Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem."
cms-page--6,Placeholders Title & Content,1,1,1,/de/demo-landing-page,/en/demo-landing-page,Demo Landing Page,Demo Landing Page,Demo Landing Page,Demo Landing Page,"demo,cms page, landing page","demo,cms page, landing page",This is a demo landing page with different content widgets.,This is a demo landing page with different content widgets.,"
DAS IST EINE GROßARTIGE LANDING PAGE
","
THIS IS A GREAT LANDING PAGE
","
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras non erat felis. Suspendisse nulla quam, dictum vitae malesuada a, ullamcorper eu urna. Sed diam tellus, feugiat iaculis consequat eu, commodo in dui. Integer ac ipsum urna. Aliquam rhoncus varius felis at dignissim. Nulla id justo id nunc lacinia efficitur. Etiam nec vehicula lorem. Phasellus ut lacus eu lorem luctus luctus. Quisque id vestibulum lectus, vel aliquam erat. Praesent ut erat quis magna varius tempor et sed sapien. Cras ac turpis id ligula gravida dignissim in sed nisl. Suspendisse scelerisque eros vel risus sagittis, in ultricies odio commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.
Duis nunc dolor, vestibulum eu cursus ut, facilisis eget justo. Ut quis placerat mauris. In cursus enim purus, a mollis felis cursus non. Mauris rutrum a ante a rutrum. Aliquam gravida tortor et cursus pharetra. Ut id sagittis arcu, eu convallis felis. Integer fermentum convallis lorem, eu posuere ex ultricies scelerisque. Suspendisse et consectetur mauris, vel rhoncus elit. Sed ultrices eget lacus quis rutrum. Aliquam erat volutpat. Aliquam varius mauris purus, non imperdiet turpis tempor vel. Donec vitae scelerisque mi.
Dies ist eine Liste von Produkten auf einer CMS Seite:
{% raw %}{{{% endraw %} product(['093', '066', '035', '083', '021','055']) {% raw %}}}{% endraw %}
Sed volutpat felis non elit elementum fermentum. Sed sit amet nunc lacinia ligula malesuada pretium. Duis imperdiet sem id nibh tristique, non convallis nunc luctus. Fusce congue vestibulum purus in rhoncus. Suspendisse eu nisl non diam ornare convallis. Nullam cursus, magna vitae porttitor consectetur, leo justo volutpat augue, vitae gravida eros metus ac diam. Donec iaculis diam at massa posuere posuere. Ut molestie, mauris nec tempus aliquam, massa mauris pellentesque ligula, eu mattis quam diam nec magna. Nunc ante odio, pulvinar ac nisl quis, efficitur eleifend enim. Nam consectetur placerat ligula, nec aliquet eros feugiat quis.
Sed eget imperdiet dolor. Nullam fringilla facilisis odio eu mattis. Morbi nibh erat, ornare et malesuada vel, commodo vel ligula. Donec maximus odio dolor, in aliquam mi tempus eu. Vivamus imperdiet imperdiet hendrerit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec quis dapibus libero, id sagittis dolor. Sed efficitur malesuada turpis sit amet efficitur. Etiam mattis ex elit, sit amet cursus sapien maximus id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
Dies ist eine Liste von Produkt-Gruppen auf einer CMS Seite:
{% raw %}{{{% endraw %} product_group(['095', '009', '052', '005', '188', '090', '084', '195']) {% raw %}}}{% endraw %}
Curabitur ipsum nulla, mollis vel tellus a, tristique tempor sapien. Mauris ut urna molestie, cursus nunc eget, lacinia erat. Donec efficitur, nisl a porta dapibus, nisi ipsum efficitur ipsum, eu auctor turpis ipsum vel sapien. Maecenas molestie risus odio. Suspendisse lobortis dapibus nisi non accumsan. Ut mattis tincidunt odio eu convallis. Nulla leo neque, scelerisque eu sagittis vitae, consectetur vel lacus. Aliquam erat volutpat. Nam euismod aliquet urna eget congue.
Dies ist ein Produkt-Set auf einer CMS Seite:
{% raw %}{{{% endraw %} product_set(['2_sony_set']) {% raw %}}}{% endraw %}","
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras non erat felis. Suspendisse nulla quam, dictum vitae malesuada a, ullamcorper eu urna. Sed diam tellus, feugiat iaculis consequat eu, commodo in dui. Integer ac ipsum urna. Aliquam rhoncus varius felis at dignissim. Nulla id justo id nunc lacinia efficitur. Etiam nec vehicula lorem. Phasellus ut lacus eu lorem luctus luctus. Quisque id vestibulum lectus, vel aliquam erat. Praesent ut erat quis magna varius tempor et sed sapien. Cras ac turpis id ligula gravida dignissim in sed nisl. Suspendisse scelerisque eros vel risus sagittis, in ultricies odio commodo. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae.
Duis nunc dolor, vestibulum eu cursus ut, facilisis eget justo. Ut quis placerat mauris. In cursus enim purus, a mollis felis cursus non. Mauris rutrum a ante a rutrum. Aliquam gravida tortor et cursus pharetra. Ut id sagittis arcu, eu convallis felis. Integer fermentum convallis lorem, eu posuere ex ultricies scelerisque. Suspendisse et consectetur mauris, vel rhoncus elit. Sed ultrices eget lacus quis rutrum. Aliquam erat volutpat. Aliquam varius mauris purus, non imperdiet turpis tempor vel. Donec vitae scelerisque mi.
This is a list of products in a CMS page:
{% raw %}{{{% endraw %} product(['093', '066', '035', '083', '021','055']) {% raw %}}}{% endraw %}
Sed volutpat felis non elit elementum fermentum. Sed sit amet nunc lacinia ligula malesuada pretium. Duis imperdiet sem id nibh tristique, non convallis nunc luctus. Fusce congue vestibulum purus in rhoncus. Suspendisse eu nisl non diam ornare convallis. Nullam cursus, magna vitae porttitor consectetur, leo justo volutpat augue, vitae gravida eros metus ac diam. Donec iaculis diam at massa posuere posuere. Ut molestie, mauris nec tempus aliquam, massa mauris pellentesque ligula, eu mattis quam diam nec magna. Nunc ante odio, pulvinar ac nisl quis, efficitur eleifend enim. Nam consectetur placerat ligula, nec aliquet eros feugiat quis.
Sed eget imperdiet dolor. Nullam fringilla facilisis odio eu mattis. Morbi nibh erat, ornare et malesuada vel, commodo vel ligula. Donec maximus odio dolor, in aliquam mi tempus eu. Vivamus imperdiet imperdiet hendrerit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec quis dapibus libero, id sagittis dolor. Sed efficitur malesuada turpis sit amet efficitur. Etiam mattis ex elit, sit amet cursus sapien maximus id. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
This is a list of product groups in a CMS page:
{% raw %}{{{% endraw %} product_group(['095', '009', '052', '005', '188', '090', '084', '195']) {% raw %}}}{% endraw %}
Curabitur ipsum nulla, mollis vel tellus a, tristique tempor sapien. Mauris ut urna molestie, cursus nunc eget, lacinia erat. Donec efficitur, nisl a porta dapibus, nisi ipsum efficitur ipsum, eu auctor turpis ipsum vel sapien. Maecenas molestie risus odio. Suspendisse lobortis dapibus nisi non accumsan. Ut mattis tincidunt odio eu convallis. Nulla leo neque, scelerisque eu sagittis vitae, consectetur vel lacus. Aliquam erat volutpat. Nam euismod aliquet urna eget congue.
This a product set in a CMS page:
{% raw %}{{{% endraw %} product_set(['2_sony_set']) {% raw %}}}{% endraw %}"
-cms-page--7,Placeholders Title & Content,1,1,1,/de/ruecknahmegarantie,/en/return-policy,Rücknahmegarantie,Return policy,Rücknahmegarantie,Return policy,,,,,"
Rücknahmegarantie
","
Return policy
","
Option zur Rücksendung von Waren bis 30 Tage nach Erhalt
Unbeschadet Ihres gesetzlichen Widerrufsrechts bieten wir Ihnen die Möglichkeit, die Ware innerhalb von 30 Tagen nach Erhalt zurückzusenden. Mit dieser Rücksendeoption können Sie den Vertrag auch nach Ablauf der 14-tägigen Widerrufsfrist innerhalb von 30 Tagen nach Erhalt kündigen, indem Sie die Ware an uns zurücksenden (diese Frist beginnt mit dem Erhalt der Ware).
Wenn Sie unsere Waren zurücksenden, können Sie das Ihrer Bestellung beigefügte Rücksendeetikett verwenden oder das Etikett selbst von Ihrer Kundenkontoseite ausdrucken. Bitte wenden Sie sich an den Kundendienst, wenn Sie Probleme beim Herunterladen des Rücksendeetiketts haben oder keinen Zugang zu einem Drucker haben.
Ihre Ware gilt innerhalb von 30 Tagen als zurückgesandt, wenn Sie sie innerhalb dieser Zeit versenden. Ihre Ausübung dieser Rückgabeoption setzt jedoch voraus, dass die Ware vollständig im Originalzustand, intakt und unbeschädigt sowie in der Originalverpackung zurückgesandt wird. Bis zum Ablauf der Frist zur Ausübung des gesetzlichen Widerrufsrechts gelten ausschließlich die gesetzlichen Bestimmungen dieses Rechts. Die Möglichkeit, Waren zurückzusenden, schränkt Ihre gesetzlichen Gewährleistungsrechte, auf die Sie ohne Einschränkung Anspruch haben, nicht ein. Die Option zur Rücksendung von Waren gilt nicht für Geschenkgutscheine.
Das freiwillige Rückgaberecht von 30 Tagen besteht nicht für Verträge mit versiegelten Waren, die nach Lieferung entsiegelt wurden und aus hygienischen Gründen nicht für die Rücksendung geeignet sind.
Die gesetzlichen Gewährleistungsrechte bleiben vom freiwilligen 30-tägigen Rückgaberecht unberührt. Das freiwillige 30-tägige Rückgaberecht gilt nicht für den Kauf von Geschenkgutscheinen.
","
Option to return merchandise up to 30 days after receipt
Without prejudice to your statutory right of revocation, we offer you the option of returning the merchandise within 30 days of you receiving them. This return option allows you, even after the 14-day revocation period has expired, to cancel the contract by returning the merchandise to us, within 30 days of receiving them (this period commences upon your receipt of the merchandise).
If you are returning our merchandise, you can use the return shipping label enclosed with your order, or you can print the label out yourself from your customer account page. Please contact Customer Care if you have any problems downloading the return shipping label or you do not have access to a printer.
Your merchandise will be deemed returned within 30 days if you send it within such time. However, your exercise of this return option is preconditioned upon the merchandise being returned in full in its original condition, intact and undamaged, and in its original packaging. Until the period for exercising the statutory right of revocation expires, the statutory provisions governing this right shall apply exclusively. The option to return merchandise does not limit your statutory warranty rights, to which you remain entitled without qualification. The option to return merchandise does not apply to gift vouchers.
The voluntary 30 days return right does not exist for contracts subject to sealed goods which have been unsealed after delivery and which are not suitable for return due to hygienic reasons.
The statutory warranty rights remain unaffected from the voluntary 30 days return right. The voluntary 30 days right of return is not applicable to the purchase of gift vouchers.
"
+cms-page--7,Placeholders Title & Content,1,1,1,/de/ruecknahmegarantie,/en/return-policy,Rücknahmegarantie,Return policy,Rücknahmegarantie,Return policy,,,,,"
Rücknahmegarantie
","
Return policy
","
Option zur Rücksendung von Waren bis 30 Tage nach Erhalt
Unbeschadet Ihres gesetzlichen Widerrufsrechts bieten wir Ihnen die Möglichkeit, die Ware innerhalb von 30 Tagen nach Erhalt zurückzusenden. Mit dieser Rücksendeoption können Sie den Vertrag auch nach Ablauf der 14-tägigen Widerrufsfrist innerhalb von 30 Tagen nach Erhalt kündigen, indem Sie die Ware an uns zurücksenden (diese Frist beginnt mit dem Erhalt der Ware).
Wenn Sie unsere Waren zurücksenden, können Sie das Ihrer Bestellung beigefügte Rücksendeetikett verwenden oder das Etikett selbst von Ihrer Kundenkontoseite ausdrucken. Bitte wenden Sie sich an den Kundendienst, wenn Sie Probleme beim Herunterladen des Rücksendeetiketts haben oder keinen Zugang zu einem Drucker haben.
Ihre Ware gilt innerhalb von 30 Tagen als zurückgesandt, wenn Sie sie innerhalb dieser Zeit versenden. Ihre Ausübung dieser Rückgabeoption setzt jedoch voraus, dass die Ware vollständig im Originalzustand, intakt und unbeschädigt sowie in der Originalverpackung zurückgesandt wird. Bis zum Ablauf der Frist zur Ausübung des gesetzlichen Widerrufsrechts gelten ausschließlich die gesetzlichen Bestimmungen dieses Rechts. Die Möglichkeit, Waren zurückzusenden, schränkt Ihre gesetzlichen Gewährleistungsrechte, auf die Sie ohne Einschränkung Anspruch haben, nicht ein. Die Option zur Rücksendung von Waren gilt nicht für Geschenkgutscheine.
Das freiwillige Rückgaberecht von 30 Tagen besteht nicht für Verträge mit versiegelten Waren, die nach Lieferung entsiegelt wurden und aus hygienischen Gründen nicht für die Rücksendung geeignet sind.
Die gesetzlichen Gewährleistungsrechte bleiben vom freiwilligen 30-tägigen Rückgaberecht unberührt. Das freiwillige 30-tägige Rückgaberecht gilt nicht für den Kauf von Geschenkgutscheinen.
","
Option to return merchandise up to 30 days after receipt
Without prejudice to your statutory right of revocation, we offer you the option of returning the merchandise within 30 days of you receiving them. This return option allows you, even after the 14-day revocation period has expired, to cancel the contract by returning the merchandise to us, within 30 days of receiving them (this period commences upon your receipt of the merchandise).
If you are returning our merchandise, you can use the return shipping label enclosed with your order, or you can print the label out yourself from your customer account page. Please contact Customer Care if you have any problems downloading the return shipping label or you do not have access to a printer.
Your merchandise will be deemed returned within 30 days if you send it within such time. However, your exercise of this return option is preconditioned upon the merchandise being returned in full in its original condition, intact and undamaged, and in its original packaging. Until the period for exercising the statutory right of revocation expires, the statutory provisions governing this right shall apply exclusively. The option to return merchandise does not limit your statutory warranty rights, to which you remain entitled without qualification. The option to return merchandise does not apply to gift vouchers.
The voluntary 30 days return right does not exist for contracts subject to sealed goods which have been unsealed after delivery and which are not suitable for return because of hygienic reasons.
The statutory warranty rights remain unaffected from the voluntary 30 days return right. The voluntary 30 days right of return is not applicable to the purchase of gift vouchers.
"
```
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-company-account-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-company-account-feature.md
index c27d44c1c59..58d5498bedc 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-company-account-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-company-account-feature.md
@@ -329,7 +329,7 @@ Enable the following behaviors by registering the plugins:
| DefaultCompanyUserCustomerTransferExpanderPlugin | Sets a default company user for a Business on Behalf customer if a company user has not been selected yet. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer |
| IsOnBehalfCustomerTransferExpanderPlugin | Sets the `CustomerTransfer.IsOnBehalf` property so that other features can determine if the selected company user is a Business on Behalf company user. | None | Spryker\Zed\BusinessOnBehalf\Communication\Plugin\Customer |
| CompanyUserAccessTokenAuthenticationHandlerPlugin | Provides functionality to log in a customer by an access token. | None | Spryker\Client\OauthCompanyUser\Plugin\Customer |
-| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it is already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer |
+| CompanyUserReloadCustomerTransferExpanderPlugin | Reloads a company user if it's already set in `CustomerTransfer`. | None | Spryker\Zed\CompanyUser\Communication\Plugin\Customer |
| CompanyUserAccessTokenOauthUserProviderPlugin | Provides a user transfer by a company user ID. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth |
| CompanyUserAccessTokenOauthGrantTypeConfigurationProviderPlugin | Provides the configuration of `CompanyUser` `GrantType`. | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Oauth |
| OauthCompanyUserInstallerPlugin| Creates new OAuth scope—adds `company_user scope` to the `spy_oauth_scope` table.) | None | Spryker\Zed\OauthCompanyUser\Communication\Plugin\Installer |
@@ -729,7 +729,7 @@ business_on_behalf_widget.change_company_user,Change Company User,en_US
business_on_behalf_widget.change_company_user,Firmenbenutzer Profil ändern,de_DE
company_user.business_on_behalf.error.company_not_active,"You can not select this company user, company is not active.",en_US
company_user.business_on_behalf.error.company_not_active,"Sie können diesen Firmennutzer nicht auswählen da die Firma inaktiv ist",de_DE
-company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it is invalid.",en_US
+company_user.business_on_behalf.error.company_user_invalid,"You can not select this company user, it's invalid.",en_US
company_user.business_on_behalf.error.company_user_invalid,"Sie können diesen Firmennutzer nicht auswählen da er ungültig ist",de_DE
customer_page.error.customer_already_logged_in,Customer already logged in.,en_US
customer_page.error.customer_already_logged_in,Der Kunde ist bereits eingeloggt.,de_DE
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-configurable-bundle-feature.md
index f9399447132..b1d63c153fa 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-configurable-bundle-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-configurable-bundle-feature.md
@@ -612,7 +612,7 @@ class ConfigurableBundlePageSearchConfig extends SprykerConfigurableBundlePageSe
* from `spy_configurable_bundle_template_page_search` table to Elasticsearch
4. Create or edit a configurable bundle template or template slot through ORM.
- Make sure it is exported to Redis or Elasticsearch accordingly.
+ Make sure it's exported to Redis or Elasticsearch accordingly.
| STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
| --- | --- | --- |
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-customer-access-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-customer-access-feature.md
index 1d3ce1cb6f4..4019eb1feb4 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-customer-access-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-customer-access-feature.md
@@ -170,7 +170,7 @@ class EventDependencyProvider extends SprykerEventDependencyProvider
{% info_block warningBox "Verification" %}
-Make sure that when a customer access rule is created, updated, or deleted, it is exported (or removed) to Redis.
+Make sure that when a customer access rule is created, updated, or deleted, it's exported (or removed) to Redis.
| TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
|-------------------------------------|------------------------------------|
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-customer-account-management-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-customer-account-management-feature.md
index e1b215b51d2..26f5f2d69ae 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-customer-account-management-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-customer-account-management-feature.md
@@ -1032,6 +1032,8 @@ customer.password.error.sequence,"You repeated the same character too many times
customer.password.error.sequence,"Es wurde zu oft das gleiche Zeichen verwendet.",de_DE
customer.password.error.character_set,"Password must contain at least 1 character of each allowed character group: upper case, lower case, digit, and a special character.",en_US
customer.password.error.character_set,"Passwort muss mindestens 1 Zeichen von jeder erlaubten Zeichengruppe enthalten: Großschreibung, Kleinschreibung, Zahl und ein Sonderzeichen.",de_DE
+customer.salutation.n/a,n/a,en_US
+customer.salutation.n/a,n/v,de_DE
```
2. Import data:
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-discontinued-products-product-labels-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-discontinued-products-product-labels-feature.md
index 3528d1a6f74..6469c8e033c 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-discontinued-products-product-labels-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-discontinued-products-product-labels-feature.md
@@ -79,6 +79,6 @@ class ProductLabelDependencyProvider extends SprykerProductLabelDependencyProvid
{% info_block warningBox "Verification" %}
-Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it is assigned.
+Ensure that, on the Storefront, the Discontinued product label is displayed on the *Catalog* and *Product Details* pages for all the products to which it's assigned.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-merchant-b2b-contracts-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-merchant-b2b-contracts-feature.md
index 9cd7512ca01..ad3265daef3 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-merchant-b2b-contracts-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-merchant-b2b-contracts-feature.md
@@ -316,7 +316,7 @@ class MerchantRelationshipDependencyProvider extends SprykerMerchantRelationship
{% info_block warningBox "Verification" %}
-Make sure that, when you delete a merchant relationship, a notification email is sent to the email address of the company business unit's owner.
+Make sure that, when you delete a merchant relationship, a notification email is sent to the email address of the company business unit is owner.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-order-management-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-order-management-feature.md
index f5ca50fcf96..a01655da9a1 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-order-management-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-order-management-feature.md
@@ -641,7 +641,7 @@ By default, in state machine names, the following applies:
```csv
sales.error.customer_order_not_found,Customer Order not found.,en_US
sales.error.customer_order_not_found,Die Bestellung wurde nicht gefunden.,de_DE
-sales.error.order_cannot_be_canceled_due_to_wrong_item_state,Order cannot be canceled due to wrong item state.,en_US
+sales.error.order_cannot_be_canceled_due_to_wrong_item_state,Order cannot be canceled because of wrong item state.,en_US
sales.error.order_cannot_be_canceled_due_to_wrong_item_state,Die Bestellung kann wegen dem falschen Artikelstatus nicht storniert werden.,de_DE
oms.state.new,New,en_US
oms.state.new,Neu,de_DE
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-packaging-units-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-packaging-units-feature.md
index 1fa6fe44de6..6f00aab6c73 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-packaging-units-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-packaging-units-feature.md
@@ -934,13 +934,13 @@ Add an item with packaging units to cart and check if the following statements a
* A packaging unit can be found for an item.
* The `amount`, `amountSalesUnit`, `amountLeadProduct` and `ProductPackagingUnit` fields in the `ItemTransfer` properties get fully populated.
* The amount restriction works as expected.
-* Availability is validated respectfully according to your lead product's and packaging unit's configuration.
+* Availability is validated respectfully according to your lead product's and packaging unit is configuration.
* Item grouping in the cart works as expected.
* Variable amount changes affect unit prices in the `ItemTransfer` properties.
* The quantity and amount are merged correctly when the group key matches.
Go through the checkout workflow, make an order and check if the following statements are true:
-* Check if the stock is modified respectfully according to your lead product's and packaging unit's configuration.
+* Check if the stock is modified respectfully according to your lead product's and packaging unit is configuration.
* Check if the following fields in the `spy_sales_order_item` table are saved:
* `amount`
* `amount_sku`
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-payments-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-payments-feature.md
index f0fcc30656a..73bb3f2980e 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-payments-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-payments-feature.md
@@ -2,16 +2,17 @@
{% info_block errorBox %}
-The following feature integration guide expects the basic feature to be in place. The current feature integration guide only adds the following functionalities:
-* Payment Back Office UI;
-* Payment method per store;
-* Payment data import.
+The following feature integration guide expects the basic feature to be in place.
-{% endinfo_block %}
+The current feature integration guide only adds the following functionalities:
+* Payment Back Office UI
+* Payment method per store
+* Payment data import
+* Payment app express checkout flow
-## Install feature core
+{% endinfo_block %}
-### Prerequisites
+## Prerequisites
To start the feature integration, overview and install the necessary features:
@@ -19,25 +20,260 @@ To start the feature integration, overview and install the necessary features:
| --- | --- |
| Spryker Core | {{page.version}} |
-### 1) Install the required modules
+## 1) Install the required modules
Install the required modules using Composer:
```bash
-composer require "spryker-feature/payments:{{page.version}}" "spryker/checkout-rest-api:^3.0.0" --update-with-dependencies
+composer require "spryker-feature/payments:{{page.version}}" "spryker/checkout-rest-api:^3.0.0" "spryker/payment-cart-connector" --update-with-dependencies
```
+
{% info_block warningBox "Verification" %}
Make sure that the following modules have been installed:
-| MODULE | EXPECTED DIRECTORY |
-| --- | --- |
-| PaymentDataImport | vendor/spryker/payment-data-import |
-| PaymentGui | vendor/spryker/payment-gui |
+| MODULE | EXPECTED DIRECTORY | REQUIRED ONLY FOR ACP PAYMENTS |
+|---------------------------|--------------------------------------------------|--------------------------------|
+| PaymentDataImport | vendor/spryker/payment-data-import | |
+| PaymentGui | vendor/spryker/payment-gui | |
+| PaymentApp | vendor/spryker/payment-app | v |
+| PaymentAppExtension | vendor/spryker/payment-app-extension | v |
+| PaymentAppShipment | vendor/spryker/payment-app-shipment | v |
+| PaymentAppWidget | vendor/spryker-shop/payment-app-widget | v |
+| PaymentAppWidgetExtension | vendor/spryker-shop/payment-app-widget-extension | v |
+| PaymentCartConnector | vendor/spryker/payment-cart-connector | |
+
+{% endinfo_block %}
+
+## 2) Set up Express Checkout payments configuration
+
+1. Configure the checkout payment step to hide the express checkout payment methods. For example, if you're using the ACP Payone app, you can exclude the `payone-paypal-express` payment method.
+
+**src/Pyz/Yves/CheckoutPage/CheckoutPageConfig.php**
+
+```php
+
+ */
+ public function getExcludedPaymentMethodKeys(): array
+ {
+ return [
+ 'payone-paypal-express',
+ ];
+ }
+}
+```
+
+2. Cart reload, remove item, and update quantity are the default cart operations. Define the payment methods that you want to exclude from the cart operations. During the checkout steps, cart reloads are executed multiple times, and the payment methods are cleared. In the example below, the `PayPal Express` payment method name should be excluded from the cart operations to prevent the payment method from being cleared.
+
+**src/Pyz/Zed/PaymentCartConnector/PaymentCartConnectorConfig.php**
+
+```php
+
+ */
+ protected const EXCLUDED_PAYMENT_METHODS = [
+ 'PayPal Express',
+ ];
+}
+```
+
+{% info_block warningBox "Verification" %}
+
+Add several products to cart and proceed to checkout. Make sure that the payment methods you've excluded are not shown on the checkout payment step page.
+
+{% endinfo_block %}
+
+3. The express checkout flow is a simplified checkout flow that skips some of the checkout steps. Depending on your project needs, configure the needed checkout steps to be skipped during the express checkout flow.
+
+**src/Pyz/Yves/PaymentAppWidget/PaymentAppWidgetConfig.php**
+
+```php
+
+ */
+ protected const CHECKOUT_STEPS_TO_SKIP_IN_EXPRESS_CHECKOUT_WORKFLOW = [
+ 'address',
+ 'shipment',
+ 'payment',
+ ];
+}
+```
+{% info_block warningBox "Verification" %}
+
+
+1. Add several products to the cart and proceed to the express checkout flow.
+2. Use the express checkout widget to place an order shown on the cart page.
+3. Confirming the order opens the order confirmation page.
+Make sure the steps you have configured to skip are skipped in the checkout flow.
+
+{% endinfo_block %}
+
+4. When a customer returns to the cart page during the express checkout flow, some quote fields are cleared to allow them to restart the checkout process from the beginning. In the example below, the `PAYMENT`, `PAYMENTS`, `SHIPMENT`, `BILLING_ADDRESS`, `SHIPPING_ADDRESS`, and `PRE_ORDER_PAYMENT_DATA` quote fields are configured to be cleared. Configure the quote fields to be cleared during the express checkout flow according to your needs.
+
+
+**src/Pyz/Yves/PaymentAppWidget/PaymentAppWidgetConfig.php**
+
+```php
+
+ */
+ protected const QUOTE_FIELDS_TO_CLEAN_IN_EXPRESS_CHECKOUT_WORKFLOW = [
+ QuoteTransfer::PAYMENT,
+ QuoteTransfer::PAYMENTS,
+ QuoteTransfer::SHIPMENT,
+ QuoteTransfer::BILLING_ADDRESS,
+ QuoteTransfer::SHIPPING_ADDRESS,
+ QuoteTransfer::PRE_ORDER_PAYMENT_DATA,
+ ];
+}
+```
+
+{% info_block warningBox "Verification" %}
+
+1. Add several products to cart and proceed to the express checkout flow.
+2. Use the express checkout widget to place an order shown on the cart page.
+3. Confirming the order opens the order confirmation page.
+4. Return to the cart page and check that the quote fields you have configured are cleared.
+
+{% endinfo_block %}
+
+5. Configure a shipment method to be used by default in the express checkout and its cost to be added to the total price.
+In the example below, the `spryker_dummy_shipment-standard` shipment method is configured for the `payone-paypal-express` payment method.
+The key is the payment method key, and the value is the shipment method key.
+
+**src/Pyz/Zed/PaymentAppShipment/PaymentAppShipmentConfig.php**
+
+```php
+
+ */
+ protected const EXPRESS_CHECKOUT_SHIPMENT_METHODS_INDEXED_BY_PAYMENT_METHOD = [
+ 'payone-paypal-express' => 'spryker_dummy_shipment-standard',
+ ];
+}
+```
+
+{% info_block warningBox "Verification" %}
+
+1. Add several products to cart and proceed to the express checkout flow.
+2. Use the express checkout widget to place an order shown on the cart page.
+3. Confirm the order, which opens the order confirmation page.
+ Make sure the shipment methods you've configured to be used by default was applied to the order.
{% endinfo_block %}
-### 2) Set up database schema and transfer objects
+6. Enable the express checkout shipment for product bundles.
+
+**src/Pyz/Zed/PaymentAppShipment/PaymentAppShipmentConfig.php**
+
+```php
+
+ */
+ protected const SHIPMENT_ITEM_COLLECTION_FIELD_NAMES = [
+ QuoteTransfer::BUNDLE_ITEMS,
+ ];
+}
+```
+
+{% info_block warningBox "Verification" %}
+
+Add a product bundle to cart and place the order using the express checkout flow.
+ Make sure the order is placed successfully.
+
+{% endinfo_block %}
+
+7. When customers start a regular checkout, the quote is cleaned up to let them to restart the checkout process from the beginning. Enable cart cleanup for the regular checkout flow.
+
+
+**src/Pyz/Zed/PaymentAppShipment/PaymentAppShipmentConfig.php**
+
+```php
+ Administration > Payment Management > Payment Methods** section.
* You can see information about the payment method in the **Back Office > Administration > Payment Management > Payment Methods > View** section.
* You can edit the payment method in the **Back Office > Administration > Payment Management > Payment Methods > Edit** section.
{% endinfo_block %}
-### 5) Additional cleanups:
+3. Enable the payment app express checkout flow in the Yves step engine.
+
+| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
+|---------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|---------------|-------------------------------------------------------|
+| PaymentAppExpressCheckoutWorkflowCheckoutStepResolverStrategyPlugin | Returns checkout steps suitable for the express checkout workflow and cleans quote fields based on the configuration. | | SprykerShop\Yves\PaymentAppWidget\Plugin\CheckoutPage |
+
+**src/Pyz/Yves/CheckoutPage/CheckoutPageDependencyProvider.php**
+
+```php
+
+ */
+ protected function getCheckoutStepResolverStrategyPlugins(): array
+ {
+ return [
+ new PaymentAppExpressCheckoutWorkflowCheckoutStepResolverStrategyPlugin(),
+ ];
+ }
+
+}
+```
+
+4. Enable the default shipment method for the payment app express checkout flow.
+
+| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
+|------------------------------------------------------|-----------------------------------------------------------------------|---------------|----------------------------------------------------------------|
+| ShipmentExpressCheckoutPaymentRequestProcessorPlugin | Provides the shipment method for the express checkout payment request.| | Spryker\Zed\PaymentAppShipment\Communication\Plugin\PaymentApp |
+
+**src/Pyz/Zed/PaymentApp/PaymentAppDependencyProvider.php**
+
+```php
+
+ */
+ protected function getExpressCheckoutPaymentRequestProcessorPlugins(): array
+ {
+ return [
+ new ShipmentExpressCheckoutPaymentRequestProcessorPlugin(),
+ ];
+ }
+}
+```
+
+{% info_block warningBox "Verification" %}
+
+Make sure the following applies:
+* The express checkout button is displayed on the Cart page.
+* Clicking the express checkout button opens the express checkout page.
+* You can place an order using the express checkout.
+* On the summary page, a default shipment method applied to the order is displayed.
+
+{% endinfo_block %}
+
+5. Register the following route provider plugin:
+
+| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
+|-------------------------------------|------------------------------------------------------|---------------|-------------------------------------------------|
+| PaymentAppWidgetRouteProviderPlugin | Adds the payment app routes to the Yves application. | | SprykerShop\Yves\PaymentAppWidget\Plugin\Router |
+
+**src/Pyz/Yves/Router/RouterDependencyProvider.php**
+
+```php
+
+ */
+ protected function getRouteProvider(): array
+ {
+ return [
+ new PaymentAppWidgetRouteProviderPlugin(),
+ ];
+ }
+}
+```
+
+6. Enable the payment method cleanup for cart operations.
+
+| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
+|------------------------------------------|----------------------------------------------------------------------------|---------------|------------------------------------------------------------|
+| RemoveQuotePaymentCartItemExpanderPlugin | Removes payment information from the quote when cart changes are made. | | Spryker\Zed\PaymentCartConnector\Communication\Plugin\Cart |
+
+**src/Pyz/Zed/Cart/CartDependencyProvider.php**
+
+```php
+
+ */
+ protected function getExpanderPlugins(Container $container): array
+ {
+ return [
+ new RemoveQuotePaymentCartItemExpanderPlugin(),
+ ];
+ }
+}
+```
+
+{% info_block warningBox "Verification" %}
+
+1. Add a product to cart and proceed to the express checkout.
+2. Go to the cart page and change product quantities, add new products, or remove existing ones.
+ Make sure the payment method has been removed from the cart.
+
+
+{% endinfo_block %}
+
+## 6) Replace deprecated funtionality
+
+Use the `PaymentDataImport` module instead of the following:
+* `SalesPaymentMethodTypeInstallerPlugin` plugin
+* `PaymentConfig::getSalesPaymentMethodTypes()` config method
+
+## 7) Set up widgets
+
+1. Register the following plugins to enable widgets:
+
+| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
+|------------------------------|-------------------------------------------------------------------|---------------|------------------------------------------|
+| ExpressCheckoutPaymentWidget | Displays the express checkout payment methods available for cart. | | SprykerShop\Yves\PaymentAppWidget\Widget |
+
+**src/Pyz/Yves/ShopApplication/ShopApplicationDependencyProvider.php**
+
+```php
+
+ */
+ protected function getGlobalWidgets(): array
+ {
+ return [
+ ExpressCheckoutPaymentWidget::class,
+ ];
+ }
+}
+```
+
+2. Enable Javascript and CSS changes:
+
+```bash
+console frontend:yves:build
+```
+{% info_block warningBox "Verification" %}
+
+Verify that the following widgets have been registered by adding the respective code snippets to a Twig template:
+
+| WIDGET | VERIFICATION |
+|------------------------------|-------------------------------------------------------------------------------------|
+| ExpressCheckoutPaymentWidget | Make sure that the express checkout payment methods are displayed on the cart page. |
+
+{% endinfo_block %}
+
+3. With the express checkout flow, you might want to skip some address fields that are part of the regular checkout, for example–the salutation field.
+Customize the address step according to your needs, hiding fields using the 'n/a' placeholder.
+
+**ShopUi/Theme/default/components/molecules/display-address/display-address.twig**
+
+```twig
+
+```
+
+{% info_block warningBox "Verification" %}
+
+Make sure that on the order summary page, the address fields you've configured to hide aren't displayed.
+
+{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-persistent-cart-sharing-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-persistent-cart-sharing-feature.md
index b4572a69b99..974f52ce762 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-persistent-cart-sharing-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-persistent-cart-sharing-feature.md
@@ -292,6 +292,6 @@ Make sure, that when you're on a cart page, you can see the "Share Cart via Link
{% info_block warningBox "Verification" %}
-Login to Yves as Company User, add some product to the cart and go to the cart page. Make sure, that you can see the "Share Cart via Link" widget on a cart page. Make sure you can see an "External Users" radio button. Click on it. Make sure, that you can see the generated link for Preview access. Make sure, that you can see a "Copy" button near the link. Click on it. Make sure, that the link was copied to the clipboard (or a message that it's impossible due to some browser limitations). Copy the Cart Preview link and proceed with it. Make sure, that you are redirected to the Cart Preview page.
+Login to Yves as Company User, add some product to the cart and go to the cart page. Make sure, that you can see the "Share Cart via Link" widget on a cart page. Make sure you can see an "External Users" radio button. Click on it. Make sure, that you can see the generated link for Preview access. Make sure, that you can see a "Copy" button near the link. Click on it. Make sure, that the link was copied to the clipboard (or a message that it's impossible because of some browser limitations). Copy the Cart Preview link and proceed with it. Make sure, that you are redirected to the Cart Preview page.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-bundles-cart-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-bundles-cart-feature.md
index 13ca8f386e5..8fcc43c9e9d 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-product-bundles-cart-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-product-bundles-cart-feature.md
@@ -55,7 +55,7 @@ Make sure that the item counter of the cart widget shows the correct number—bu
## Alternative setup for handling large quantities of bundled products in the cart
When a bundle product is added to the cart with a large quantity (for example, 100-200 items), users may
-experience a slow-down in the cart operations handling or even may get an internal server error due to insufficient memory.
+experience a slow-down in the cart operations handling or even may get an internal server error because of insufficient memory.
To avoid a slow-down in the cart operations and internal server errors, an alternative set of plugins has been
implemented:
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-bundles-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-bundles-feature.md
index b2d3beeefd5..c9cafadc2b8 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-product-bundles-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-product-bundles-feature.md
@@ -210,7 +210,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
{% info_block warningBox "Verification" %}
-Ensure that, when a product bundle is created, updated, or deleted, it is exported to or removed from Redis.
+Ensure that, when a product bundle is created, updated, or deleted, it's exported to or removed from Redis.
Storage type: Redis
Target entity: Product Bundle
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-category-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-category-feature.md
index f528dd0a1b0..55b924d04d3 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-product-category-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-product-category-feature.md
@@ -345,7 +345,7 @@ class EventBehaviorDependencyProvider extends SprykerEventBehaviorDependencyProv
{% info_block warningBox "Verification" %}
-When a category product assignment is changed through ORM, make sure it is exported to Redis.
+When a category product assignment is changed through ORM, make sure it's exported to Redis.
| STORAGE TYPE | TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
|--------------|-------------------------|--------------------------------------|
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-comparison-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-comparison-feature.md
index 40a1fa18283..3f0dd8d3da6 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-product-comparison-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-product-comparison-feature.md
@@ -54,7 +54,7 @@ product_comparison_page.list_link,Artikelvergleich,de_DE
product_comparison_page.list_link,Product comparison,en_US
product_comparison_page.add_to_comparison.success,Zum Vergleich hinzugefügt,de_DE
product_comparison_page.add_to_comparison.success,Added to comparison,en_US
-product_comparison_page.add_to_comparison.error.max,Das Limit ist bereits erreicht,de_DE
+product_comparison_page.add_to_comparison.error.max,Das Limit'st bereits erreicht,de_DE
product_comparison_page.add_to_comparison.error.max,The limit has already been reached,en_US
product_comparison_page.removed_from_the_list,Artikel wurde aus der Vergleichsliste entfernt.,de_DE
product_comparison_page.removed_from_the_list,Product was removed from the comparison list.,en_US
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-feature.md
index 6b740a2ed5a..5a8d801af89 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-product-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-product-feature.md
@@ -166,7 +166,7 @@ class ProductPageSearchConfig extends SprykerProductPageSearchConfig
{% info_block warningBox "Verification" %}
-Make sure that abstract products that can be added to cart have the `add_to_cart_sku` field in the ElasticSearch document.
+Make sure that abstract products that can be added to cart have the `add_to_cart_sku` field in the Elasticsearch document.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-images-configurable-bundle-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-images-configurable-bundle-feature.md
index 92e36980ad9..23db51e003f 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-product-images-configurable-bundle-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-product-images-configurable-bundle-feature.md
@@ -153,7 +153,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
1. Make sure that when you added some data to tables `spy_product_image_set`, `spy_product_image_set_to_product_image`, `spy_product_image` with `fk_resource_configurable_bundle_template` and run `console trigger:event -r configurable_bundle_template_image` command, the changes are reflected in the `spy_configurable_bundle_template_image_storage` table.
2. Make sure that after step #4 or after `console sync:data configurable_bundle_template_image` command execution, the data s added to the `spy_configurable_bundle_template_image_storage` table and Redis.
-3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it is exported to Redis accordingly.
+3. Make sure that when a product image set with the `fk_resource_configurable_bundle_template` is created or edited through ORM, it's exported to Redis accordingly.
4. Ensure that Elasticsearch document has been expanded by images property.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-offer-service-points-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-offer-service-points-feature.md
index 3648f5f66c4..f111df98182 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-product-offer-service-points-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-product-offer-service-points-feature.md
@@ -464,7 +464,7 @@ Make sure that the `product-offer-service` synchronization plugin works correctl
2. Run the `console sync:data -r product_offer_service` command.
3. Make sure that, in your system, storage entries are displayed with the `kv:product_offer_service:{store}:{product_offer_reference}` mask.
-Make sure when a product offer service is created via DataImport, it is exported to Redis accordingly.
+Make sure when a product offer service is created via DataImport, it's exported to Redis accordingly.
Make sure that, in Redis, data is displayed in the following format:
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-offer-shipment-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-offer-shipment-feature.md
index ea9933eab92..81c6f1883ce 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-product-offer-shipment-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-product-offer-shipment-feature.md
@@ -336,7 +336,7 @@ Make sure that `product-offer-shipment-type` synchronization plugin works correc
2. Run the `console sync:data -r product_offer_shipment_type` command.
3. Make sure that, in your system, storage entries are displayed with the `kv:product_offer_shipment_type:{store}:{product_offer_reference}` mask.
-Make sure that when a product offer shipment type relation is created or edited through BAPI, it is exported to Redis accordingly.
+Make sure that when a product offer shipment type relation is created or edited through BAPI, it's exported to Redis accordingly.
In Redis, make sure data is represented in the following format:
```json
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-sets-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-sets-feature.md
index c9e1c5340ff..64f01d6acad 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-product-sets-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-product-sets-feature.md
@@ -117,7 +117,7 @@ Implement an installer in your project to put products together in sets represen
### Listing products sets on the Storefront
-The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it is possible to implement the same features with a custom implementation.
+The KV storage and Elasticsearch should by now contain some product sets you can display on the Storefront. By default, the exported documents in Search do not support the configurable search features as products: full-text search, faceted navigation, sorting, and pagination. However, since their data structure is the same, it's possible to implement the same features with a custom implementation.
For a simple listing, the `ProductSet` module provides a Client API to list product sets from Elasticsearch. By calling the `ProductSetClient::getProductSetList()` method, a limited set of documents can be listed on the Storefront. The results are sorted in descending order based on the product sets' weight attributes.
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-quotation-process-approval-process-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-quotation-process-approval-process-feature.md
index a840cd76dcc..40d9b388049 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-quotation-process-approval-process-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-quotation-process-approval-process-feature.md
@@ -22,7 +22,7 @@ Register the following plugins:
| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
|---|---|---|---|
| QuoteApprovalQuoteRequestQuoteCheckPlugin | Checks if the "Request For Quote" button should be shown on the cart page or not. | None | Spryker\Client\QuoteApproval\Plugin\QuoteRequest |
-| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it is in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval |
+| QuoteRequestQuoteApprovalUnlockPreCheckPlugin | Prevents quote unlock by approval process when it's in quotation process. | None | Spryker\Zed\QuoteRequest\Communication\Plugin\QuoteApproval |
| QuoteApprovalQuoteRequestPreCreateCheckPlugin | Checks if the quote doesn't have the status `waiting`. | None | Spryker\Zed\QuoteApproval\Communication\Plugin\QuoteRequest |
**src/Pyz/Client/QuoteRequest/QuoteRequestDependencyProvider.php**
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-service-points-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-service-points-feature.md
index a374116cb92..84aedff44ce 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-service-points-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-service-points-feature.md
@@ -1075,7 +1075,7 @@ Verify the `service-point` synchronization plugin works correctly:
{% info_block warningBox "Verification" %}
-* Make sure that, when a service point is created or edited through BAPI, it is exported to Redis accordingly.
+* Make sure that, when a service point is created or edited through BAPI, it's exported to Redis accordingly.
* Make sure that, in Redis, data is displayed in the following format:
```yaml
@@ -1148,7 +1148,7 @@ Verify the `service-type` synchronization plugin works correctly:
{% info_block warningBox "Verification" %}
-* Make sure that when a service type is created or edited through BAPI, it is exported to Redis accordingly.
+* Make sure that when a service type is created or edited through BAPI, it's exported to Redis accordingly.
* Make sure that, in Redis, data is displayed in the following format:
```json
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-shipment-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-shipment-feature.md
index ba4e639fd13..31b67756ce1 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-shipment-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-shipment-feature.md
@@ -976,7 +976,7 @@ Make sure that `shipment-type` synchronization plugin works correctly:
2. Run the `console sync:data -r shipment_type` command.
3. Make sure that, in your system, storage entries are displayed with the `kv:shipment_type:{store}:{shipment_type_id}` mask.
-Make sure that when a shipment type is created or edited through BAPI, it is exported to Redis accordingly.
+Make sure that when a shipment type is created or edited through BAPI, it's exported to Redis accordingly.
In Redis, make sure data is represented in the following format:
```json
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-shopping-lists-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-shopping-lists-feature.md
index 04be712979b..a8b09f870cd 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-shopping-lists-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-shopping-lists-feature.md
@@ -706,7 +706,7 @@ Workstations,spryker_systems_Berlin,READ_ONLY
| --- | --- | --- | --- | --- |
| shopping_list_key | ✓ | string | Laptops | Defines a shopping list to assign to a business unit. |
| business_unit_key | ✓ | string | spryker_systems_HR | Defines a business unit to share a shopping list with. |
-| permission_group_name | ✓ | integer | FULL_ACCESS | Defines a business unit's permissions to access a shopping list. |
+| permission_group_name | ✓ | integer | FULL_ACCESS | Defines a business unit is permissions to access a shopping list. |
2. Register the following plugin to enable data import:
diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-inventory-management-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-inventory-management-feature.md
index 4da32209f4f..e84bf35f3af 100644
--- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-inventory-management-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-inventory-management-feature.md
@@ -612,7 +612,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency
Make sure the following actions take place as expected:
* The command `console sync:data merchant_profile` exports data from the `spy_product_offer_availability_storage` table to Redis.
-* When a product offer availability entity gets created or updated through ORM, it is exported to Redis accordingly.
+* When a product offer availability entity gets created or updated through ORM, it's exported to Redis accordingly.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-merchant-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-merchant-feature.md
index 3dcc6895d62..d4da2ab1d1b 100644
--- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-merchant-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-merchant-feature.md
@@ -728,17 +728,17 @@ To import data follow the steps in the following sections.
```csv
merchant_reference,contact_person_role,contact_person_title,contact_person_first_name,contact_person_last_name,contact_person_phone,banner_url,logo_url,public_email,public_phone,description_glossary_key.en_US,description_glossary_key.de_DE,banner_url_glossary_key.en_US,banner_url_glossary_key.de_DE,delivery_time_glossary_key.en_US,delivery_time_glossary_key.de_DE,terms_conditions_glossary_key.en_US,terms_conditions_glossary_key.de_DE,cancellation_policy_glossary_key.en_US,cancellation_policy_glossary_key.de_DE,imprint_glossary_key.en_US,imprint_glossary_key.de_DE,data_privacy_glossary_key.en_US,data_privacy_glossary_key.de_DE,is_active,fax_number
-MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","
Vertreten durch Geschäftsführer: Alexander Graf, Boris Lokschin Registergericht: Hamburg Registernummer: HRB 134310
",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800
-MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Video King
Gilzeweg 24 4854SG Bavel NL
Phone: +31 123 45 6789 Email: hi@video-king.nl
Represented by Managing Director: Max Mustermann Register Court: Amsterdam Register Number: 1234.4567
,
Video King
Gilzeweg 24 4854SG Bavel NL
Telefon: +31 123 45 6789 Email: hi@video-king.nl
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Amsterdam Registernummer: 1234.4567
,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733
+MER000001,E-Commerce Manager,Mr,Harald,Schmidt,+49 30 208498350,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-logo.png,info@spryker.com,+49 30 234567891,Spryker is the main merchant at the Demo Marketplace.,Spryker ist der Haupthändler auf dem Demo-Marktplatz.,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/spryker-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.","
Vertreten durch Geschäftsführer: Alexander Graf, Boris Lokschin Registergericht: Hamburg Registernummer: HRB 134310
",Spryker Systems GmbH values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Spryker Systems GmbH.,1,+49 30 234567800
+MER000002,Country Manager DE,Ms,Martha,Farmer,+31 123 345 678,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-logo.png,hi@video-king.nl,+31 123 345 777,"Video King is a premium provider of video equipment. In business since 2010, we understand the needs of video professionals and enthusiasts and offer a wide variety of products with competitive prices. ","Video King ist ein Premium-Anbieter von Videogeräten. Wir sind seit 2010 im Geschäft, verstehen die Bedürfnisse von Videoprofis und -enthusiasten und bieten eine große Auswahl an Produkten zu wettbewerbsfähigen Preisen an. ",https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/videoking-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Video King
Gilzeweg 24 4854SG Bavel NL
Phone: +31 123 45 6789 Email: hi@video-king.nl
Represented by Managing Director: Max Mustermann Register Court: Amsterdam Register Number: 1234.4567
,
Video King
Gilzeweg 24 4854SG Bavel NL
Telefon: +31 123 45 6789 Email: hi@video-king.nl
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Amsterdam Registernummer: 1234.4567
,Video King values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Video King.,1,+31 123 345 733
MER000006,Brand Manager,Ms,Michele,Nemeth,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-logo.png,support@sony-experts.com,+49 30 234567691,"Capture your moment with the best cameras from Sony. From pocket-size to professional-style, they all pack features to deliver the best quality pictures.
Discover the range of Sony cameras, lenses and accessories, and capture your favorite moments with precision and style with the best cameras can offer.","Halten Sie Ihren Moment mit den besten Kameras von Sony fest. Vom Taschenformat bis hin zum professionellen Stil bieten sie alle Funktionen, um Bilder in bester Qualität zu liefern.
-Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: München Registernummer: HYY 134306
,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600
+Entdecken Sie das Angebot an Kameras, Objektiven und Zubehör von Sony und fangen Sie Ihre Lieblingsmomente mit Präzision und Stil mit den besten Kameras ein, die das Unternehmen zu bieten hat.",https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/sonyexperts-banner.png,1-3 days,1-3 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: München Registernummer: HYY 134306
,Sony Experts values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Sony Experts.,1,+49 30 234567600
MER000004,,,,,,,,,,,,,,,,,,,,,,,,0,
MER000003,,,,,,,,,,,,,,,,,,,,,,,,0,
MER000007,,,,,,,,,,,,,,,,,,,,,,,,0,
MER000005,Merchandise Manager,Mr,Jason,Weidmann,030/123456789,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-logo.png,support@budgetcamerasonline.com,+49 30 234567591,"DSLR and mirrorless cameras are by far the most popular with filmmakers on a tight budget when you can't afford multiple specialist cameras.
Budget Cameras is offering a great selection of digital cameras with the lowest prices.","DSLR- und spiegellose Kameras sind bei Filmemachern mit knappem Budget bei weitem am beliebtesten, wenn sie sich bestimmte Spezialkameras nicht leisten können.
-Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Hamburg Registernummer: HXX 134305
,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500
+Budget Cameras bietet eine große Auswahl an Digitalkameras mit den niedrigsten Preisen.",https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,https://d2s0ynfc62ej12.cloudfront.net/merchant/budgetcameras-banner.png,2-4 days,2-4 Tage,"
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
","
§ 1 Geltungsbereich & Abwehrklausel
(1) Für die über diesen Internet-Shop begründeten Rechtsbeziehungen zwischen dem Betreiber des Shops (nachfolgend „Anbieter“) und seinen Kunden gelten ausschließlich die folgenden Allgemeinen Geschäftsbedingungen in der jeweiligen Fassung zum Zeitpunkt der Bestellung.
(2) Abweichende Allgemeine Geschäftsbedingungen des Kunden werden zurückgewiesen.
§ 2 Zustandekommen des Vertrages
(1) Die Präsentation der Waren im Internet-Shop stellt kein bindendes Angebot des Anbieters auf Abschluss eines Kaufvertrages dar. Der Kunde wird hierdurch lediglich aufgefordert, durch eine Bestellung ein Angebot abzugeben.
(2) Durch das Absenden der Bestellung im Internet-Shop gibt der Kunde ein verbindliches Angebot gerichtet auf den Abschluss eines Kaufvertrages über die im Warenkorb enthaltenen Waren ab. Mit dem Absenden der Bestellung erkennt der Kunde auch diese Geschäftsbedingungen als für das Rechtsverhältnis mit dem Anbieter allein maßgeblich an.
(3) Der Anbieter bestätigt den Eingang der Bestellung des Kunden durch Versendung einer Bestätigungs-Email. Diese Bestellbestätigung stellt noch nicht die Annahme des Vertragsangebotes durch den Anbieter dar. Sie dient lediglich der Information des Kunden, dass die Bestellung beim Anbieter eingegangen ist. Die Erklärung der Annahme des Vertragsangebotes erfolgt durch die Auslieferung der Ware oder eine ausdrückliche Annahmeerklärung.
§ 3 Eigentumsvorbehalt
Die gelieferte Ware verbleibt bis zur vollständigen Bezahlung im Eigentum des Anbieters.
§ 4 Fälligkeit
Die Zahlung des Kaufpreises ist mit Vertragsschluss fällig.
","You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.","Sie haben das Recht, binnen vierzehn Tagen ohne Angabe von Gründen diesen Vertrag zu widerrufen. Die Widerrufsfrist beträgt vierzehn Tage ab dem Tag, an dem Sie oder ein von Ihnen benannter Dritter, der nicht der Beförderer ist, die letzte Ware in Besitz genommen hat. Sie können dafür das beigefügte Muster-Widerrufsformular verwenden, das jedoch nicht vorgeschrieben ist. Zur Wahrung der Widerrufsfrist reicht es aus, dass Sie die Mitteilung über die Ausübung des Widerrufsrechts vor Ablauf der Widerrufsfrist absenden.",
Vertreten durch Geschäftsführer: Max Mustermann Registergericht: Hamburg Registernummer: HXX 134305
,Budget Cameras values the privacy of your personal data.,Für die Abwicklung ihrer Bestellung gelten auch die Datenschutzbestimmungen von Budget Cameras.,1,+49 30 234567500
```
diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-offer-cart-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-offer-cart-feature.md
index ee343583186..9ce7e3141ee 100644
--- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-offer-cart-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-offer-cart-feature.md
@@ -84,7 +84,7 @@ class CartDependencyProvider extends SprykerCartDependencyProvider
Make sure that inactive product offers get removed from cart on reload.
-Make sure that it is only possible to have items in cart where the product offer reference belongs to the correct concrete product.
+Make sure that it's only possible to have items in cart where the product offer reference belongs to the correct concrete product.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-options-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-options-feature.md
index 406fbea6c4b..07d625a9cdb 100644
--- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-options-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-options-feature.md
@@ -372,7 +372,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
Make sure the following is true:
* Merchants can create product option groups and values in the Merchant Portal.
-* Merchant product option information is shown on a product details page when it is approved and active.
+* Merchant product option information is shown on a product details page when it's approved and active.
* Merchant product option information is displayed in the cart, checkout, and user account.
* Merchant product options are a part of the marketplace or merchant order, and all totals are calculated correctly.
diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-return-management-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-return-management-feature.md
index 0460b1b5037..38200ac77d6 100644
--- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-return-management-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-return-management-feature.md
@@ -835,7 +835,7 @@ Make sure that when you create and process a return for merchant order items, it
| MARKETPLACE SM | DEFAULT MERCHANT SM | MAIN MERCHANT SM |
| --- | ---| --- |
| Used by an operator | Used by a third-party merchant. | Used by a main merchant. |
-| start-return (can be started by entering in the Return Flow; it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it is not manually executable as a button) > waiting for return
+| start-return (can be started by entering in the Return Flow; it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return | start-return (can be started by entering in the Return Flow, it's not manually executable as a button) > waiting for return
| execute return > returned | execute return (manually executable) > returned execute return (manually executable) > returned
| refund > refunded | refund (manually executable) > refunded | refund (manually executable) > refunded
| cancel return > return canceled | cancel return (manually executable) > return canceled | cancel return (manually executable) > return canceled
diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-merchant-opening-hours-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-merchant-opening-hours-feature.md
index 7ffc72236c2..04cc69a5541 100644
--- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-merchant-opening-hours-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-merchant-opening-hours-feature.md
@@ -274,7 +274,7 @@ class MerchantOpeningHoursStorageConfig extends SprykerMerchantOpeningHoursStora
1. Make sure that after step 1 the command `console sync:data merchant_opening_hours` exports data from the `spy_merchant_opening_hours_storage` table to Redis.
-2. Make sure that when merchant opening hours entities get created or updated through ORM, it is exported to Redis accordingly.
+2. Make sure that when merchant opening hours entities get created or updated through ORM, it's exported to Redis accordingly.
| TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER |
| ---------------- | ----------------- |
diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-merchant-switcher-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-merchant-switcher-feature.md
index 0787f2b817b..d21adcef1df 100644
--- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-merchant-switcher-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-merchant-switcher-feature.md
@@ -106,7 +106,7 @@ Append glossary according to your configuration:
**data/import/common/common/glossary.csv**
```yaml
-merchant_switcher.message,Switch from %currentMerchant% to %newMerchant%? Due to different availability, not all products may be added to your shopping cart.,en_US
+merchant_switcher.message,Switch from %currentMerchant% to %newMerchant%? Because of different availability, not all products may be added to your shopping cart.,en_US
merchant_switcher.message,Wechseln von %currentMerchant% zu %newMerchant%? Aufgrund unterschiedlicher Verfügbarkeit können ggf. nicht alle Produkte in Warenkorb übernommen werden.,de_DE
merchant_switcher.message.product_is_not_available,"Product %product_name% (SKU %sku%) is not available from the selected merchant. Please remove it in order to proceed or switch the merchant.",en_US
merchant_switcher.message.product_is_not_available,"Produkt %product_name% (SKU %sku%) ist beim ausgewählten Händler nicht erhältlich. Bitte diesen Artikel entfernen, um fortzufahren oder den Händler zu wechseln.",de_DE
diff --git a/_includes/pbc/all/install-features/202410.0/unified-commerce/install-the-warehouse-picking-product-feature.md b/_includes/pbc/all/install-features/202410.0/unified-commerce/install-the-warehouse-picking-product-feature.md
index 79e4b8f996d..ed1a87d72fc 100644
--- a/_includes/pbc/all/install-features/202410.0/unified-commerce/install-the-warehouse-picking-product-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/unified-commerce/install-the-warehouse-picking-product-feature.md
@@ -153,7 +153,7 @@ Make sure the `concrete-products` and `concrete-product-image-sets` resources ar
"is_active": true
},
"name": "Sony SmartWatch 3",
- "description": "Gear S2 X Atelier Mendini In einer wunderbaren Partnerschaft bringt Alessandro Mendini seinen Geschmack, Humor und Farbsinn in die Gestaltung der Gear S2 ein. Das Ergebnis ist eine Reihe von Zifferblättern und Armbändern, die Ihren persönlichen Stil zum Ausdruck bringen. Die wesentlichen Smartphone-Funktionen sind mit einer einfachen Drehung an der Gear S2 verfügbar. Drehen Sie leicht an der Blende, um lange E-Mails zu durchblättern, eine Karte zu vergrössern oder bei der Musikwiedergabe ein Stück zu überspringen. Mit jeder Drehung wird das Leben noch interessanter und bunter. Mit der Gear S2 können Sie sich sehr leicht um Ihre Gesundheit kümmern. Verfolgen Sie Ihre täglichen Aktivitäten, Ihren Puls und Ihren Wasserkonsum verglichen mit Ihrem Koffeinkonsum. Bleiben Sie fit mit zeitgerechten motivierenden Botschaften. Bleiben Sie auf dem Laufenden und fit. Und wenn es Zeit ist, die Smartwatch wieder aufzuladen, stellen Sie sie einfach auf eine drahtlose Ladestation.",
+ "description": "Gear S2 X Atelier Mendini In einer wunderbaren Partnerschaft bringt Alessandro Mendini seinen Geschmack, Humor und Farbsinn in die Gestaltung der Gear S2 ein. Das Ergebnis ist eine Reihe von Zifferblättern und Armbändern, die Ihren persönlichen Stil zum Ausdruck bringen. Die wesentlichen Smartphone-Funktionen sind mit einer einfachen Drehung an der Gear S2 verfügbar. Drehen Sie leicht an der Blende, um lange E-Mails zu durchblättern, eine Karte zu vergrössern oder bei der Musikwiedergabe ein Stück zu überspringen. Mit jeder Drehung wird das Leben noch interessanter und bunter. Mit der Gear S2 können Sie sich sehr leicht um Ihre Gesundheit kümmern. Verfolgen Sie Ihre täglichen Aktivitäten, Ihren Puls und Ihren Wasserkonsum verglichen mit Ihrem Koffeinkonsum. Bleiben Sie fit mit zeitgerechten motivierenden Botschaften. Bleiben Sie auf dem Laufenden und fit. Und wenn es Zeit'st, die Smartwatch wieder aufzuladen, stellen Sie sie einfach auf eine drahtlose Ladestation.",
"isSearchable": true,
"attributes": {
"color": "Weiß"
diff --git a/_includes/pbc/all/install-features/202505.0/marketplace/install-the-marketplace-merchant-promotions-and-discounts-feature.md b/_includes/pbc/all/install-features/202505.0/marketplace/install-the-marketplace-merchant-promotions-and-discounts-feature.md
new file mode 100644
index 00000000000..cf2d04c0b72
--- /dev/null
+++ b/_includes/pbc/all/install-features/202505.0/marketplace/install-the-marketplace-merchant-promotions-and-discounts-feature.md
@@ -0,0 +1,81 @@
+This document describes how to install the Marketplace Merchant + Promotions & Discounts feature.
+
+## Prerequisites
+
+Install the required features:
+
+| NAME | VERSION | INSTALLATION GUIDE |
+|------------------------|------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Marketplace Merchant | {{page.version}} | [Install the Marketplace Merchant feature](/docs/pbc/all/merchant-management/{{page.version}}/marketplace/install-and-upgrade/install-features/install-the-marketplace-merchant-feature.html) |
+| Promotions & Discounts | {{page.version}} | [Install the Promotions & Discounts feature](/docs/pbc/all/discount-management/{{page.version}}/base-shop/install-and-upgrade/install-features/install-the-promotions-and-discounts-feature.html) |
+| Spryker Core | {{page.version}} | [Install the Spryker Core feature](/docs/pbc/all/miscellaneous/{{page.version}}/install-and-upgrade/install-features/install-the-spryker-core-feature.html) |
+
+## 1) Install the required modules
+
+Install the required modules using Composer:
+
+```bash
+composer require spryker/merchant-discount-connector:"^1.0.0" --update-with-dependencies
+```
+
+{% info_block warningBox "Verification" %}
+
+Make sure the following modules have been installed:
+
+| MODULE | EXPECTED DIRECTORY |
+|---------------------------|--------------------------------------------|
+| MerchantDiscountConnector | vendor/spryker/merchant-discount-connector |
+
+{% endinfo_block %}
+
+## 2) Set up behavior
+
+Set up the following behaviors:
+
+| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
+|--------------------------------------------------|------------------------------------------------------------------------------------------|---------------|---------------------------------------------------------------------|
+| MerchantReferenceDecisionRulePlugin | Defines if a discount can be applied to a cart item with a merchant reference specified. | | Spryker\Zed\MerchantDiscountConnector\Communication\Plugin\Discount |
+| MerchantReferenceDiscountableItemCollectorPlugin | Collects cart items with the reference of a merchant to which a discount should be applied. | | Spryker\Zed\MerchantDiscountConnector\Communication\Plugin\Discount |
+
+**src/Pyz/Zed/Discount/DiscountDependencyProvider.php**
+
+```php
+
+ */
+ protected function getDecisionRulePlugins(): array
+ {
+ return array_merge(parent::getDecisionRulePlugins(), [
+ new MerchantReferenceDecisionRulePlugin(),
+ ]);
+ }
+
+ /**
+ * @return list<\Spryker\Zed\DiscountExtension\Dependency\Plugin\DiscountableItemCollectorPluginInterface>
+ */
+ protected function getCollectorPlugins(): array
+ {
+ return array_merge(parent::getCollectorPlugins(), [
+ new MerchantReferenceDiscountableItemCollectorPlugin(),
+ ]);
+ }
+}
+```
+
+{% info_block warningBox "Verification" %}
+
+1. [Create a discount](/docs/pbc/all/discount-management/{{site.version}}/base-shop/manage-in-the-back-office/create-discounts.html) and define its condition as a query string with a `merchant-reference` field.
+2. Add a product sold by the merchant you've defined in the discount to cart.
+ Make sure the discount has been applied.
+
+{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202505.0/marketplace/install-the-marketplace-product-offer-promotions-and-discounts-feature.md b/_includes/pbc/all/install-features/202505.0/marketplace/install-the-marketplace-product-offer-promotions-and-discounts-feature.md
new file mode 100644
index 00000000000..25f540fa218
--- /dev/null
+++ b/_includes/pbc/all/install-features/202505.0/marketplace/install-the-marketplace-product-offer-promotions-and-discounts-feature.md
@@ -0,0 +1,81 @@
+This document describes how to install the Marketplace Product Offer + Promotions & Discounts feature.
+
+## Prerequisites
+
+Install the required features:
+
+| NAME | VERSION | INSTALLATION GUIDE |
+|---------------------------|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Promotions & Discounts | {{page.version}} | [Install the Promotions & Discounts feature](/docs/pbc/all/discount-management/{{page.version}}/base-shop/install-and-upgrade/install-features/install-the-promotions-and-discounts-feature.html) |
+| Marketplace Product Offer | {{page.version}} | [Install the Marketplace Product Offer feature](/docs/pbc/all/offer-management/{{page.version}}/marketplace/install-and-upgrade/install-features/install-the-marketplace-product-offer-feature.html) |
+| Spryker Core | {{page.version}} | [Install the Spryker Core feature](/docs/pbc/all/miscellaneous/{{page.version}}/install-and-upgrade/install-features/install-the-spryker-core-feature.html) |
+
+## 1) Install the required modules
+
+Install the required modules using Composer:
+
+```bash
+composer require spryker/product-offer-discount-connector:"^1.0.0" --update-with-dependencies
+```
+
+{% info_block warningBox "Verification" %}
+
+Make sure the following modules have been installed:
+
+| MODULE | EXPECTED DIRECTORY |
+|-------------------------------|-----------------------------------------|
+| ProductOfferDiscountConnector | vendor/product-offer-discount-connector |
+
+{% endinfo_block %}
+
+## 2) Set up behavior
+
+Set up the following behaviors:
+
+| PLUGIN | SPECIFICATION | PREREQUISITES | NAMESPACE |
+|------------------------------------------------------|--------------------------------------------------------------------------------------|---------------|-------------------------------------------------------------------------|
+| ProductOfferReferenceDecisionRulePlugin | Checks if an item's product offer reference matches the discount's condition. | | Spryker\Zed\ProductOfferDiscountConnector\Communication\Plugin\Discount |
+| ProductOfferReferenceDiscountableItemCollectorPlugin | Collects discountable items from the given quote by items' product offer references. | | Spryker\Zed\ProductOfferDiscountConnector\Communication\Plugin\Discount |
+
+**src/Pyz/Zed/Discount/DiscountDependencyProvider.php**
+
+```php
+
+ */
+ protected function getDecisionRulePlugins(): array
+ {
+ return array_merge(parent::getDecisionRulePlugins(), [
+ new ProductOfferReferenceDecisionRulePlugin(),
+ ]);
+ }
+
+ /**
+ * @return list<\Spryker\Zed\DiscountExtension\Dependency\Plugin\DiscountableItemCollectorPluginInterface>
+ */
+ protected function getCollectorPlugins(): array
+ {
+ return array_merge(parent::getCollectorPlugins(), [
+ new ProductOfferReferenceDiscountableItemCollectorPlugin(),
+ ]);
+ }
+}
+```
+
+{% info_block warningBox "Verification" %}
+
+1. [Create a discount](/docs/pbc/all/discount-management/{{site.version}}/base-shop/manage-in-the-back-office/create-discounts.html) and define its condition as a query string with a `product-offer` field.
+2. Add a product offer defined in the discount you've created to cart.
+ Make sure that the discount has been applied to the cart.
+
+{% endinfo_block %}
diff --git a/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md b/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md
index 10bbcf6cd4a..c6384f156dd 100644
--- a/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md
+++ b/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md
@@ -217,7 +217,7 @@ Response sample:
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
diff --git a/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md b/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md
index 10bbcf6cd4a..c6384f156dd 100644
--- a/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md
+++ b/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md
@@ -217,7 +217,7 @@ Response sample:
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
diff --git a/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md b/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md
index 10bbcf6cd4a..c6384f156dd 100644
--- a/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md
+++ b/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-shopping-lists-glue-api.md
@@ -217,7 +217,7 @@ Response sample:
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to allow us to deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-calculation-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-calculation-module.md
index 145f5e16355..de8a609b5de 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-calculation-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-calculation-module.md
@@ -351,7 +351,7 @@ After this, when you read an order using `SalesFacade::getOrderByIdSalesOrder()`
{% info_block errorBox %}
-The Sales module does not depend on the `SalesAggregator` anymore. Therefore, you need to remove the `/sales-aggregator/sales/list` from `\Pyz\Zed\Sales\SalesConfig::getSalesDetailExternalBlocksUrls` as it is no longer in use. Totals were moved to Sales to the template `Spryker/Zed/Sales/Presentation/Detail/boxes/totals.twig` available in Sales version >= 6.\*.
+The Sales module does not depend on the `SalesAggregator` anymore. Therefore, you need to remove the `/sales-aggregator/sales/list` from `\Pyz\Zed\Sales\SalesConfig::getSalesDetailExternalBlocksUrls` as it's no longer in use. Totals were moved to Sales to the template `Spryker/Zed/Sales/Presentation/Detail/boxes/totals.twig` available in Sales version >= 6.\*.
{% endinfo_block %}
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-catalog-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-catalog-module.md
index d42a0810dc1..56f0afb178b 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-catalog-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-catalog-module.md
@@ -168,7 +168,7 @@ class CatalogDependencyProvider extends SprykerCatalogDependencyProvider
## Upgrading from version 3.* to version 4.*
-Due to introducing the Suggestion Search feature, the Catalog bundle now requires Search >=5.2.
+Because of introducing the Suggestion Search feature, the Catalog bundle now requires Search >=5.2.
To upgrade from 3.* to 4.\*:
1. Before upgrading to the new version, make sure that you do not use any deprecated code from the version 3.\*. Check the description of the deprecated code to see what you will need to use instead.
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-category-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-category-module.md
index 91316cf3040..b842bc097b1 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-category-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-category-module.md
@@ -219,7 +219,7 @@ _Estimated migration time: 1 hour. The time may vary depending on project-specif
### Update modules
1. Update the `Category` module by adding `"spryker/category": "^4.0.0"` to your `composer.json` and running composer update.
-Due to the changes in the Category module, all related modules have to be updated too.
+Because of the changes in the Category module, all related modules have to be updated too.
2. Run composer require `spryker/event spryker/storage` to install Event and Storage modules.
### Database update and migration
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-categorypagesearch-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-categorypagesearch-module.md
index b8cf2b04f67..e35941d8ccb 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-categorypagesearch-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-categorypagesearch-module.md
@@ -230,7 +230,7 @@ To upgrade to the new version of the module, do the following:
composer update spryker/category-page-search
```
-2. Remove deprecated plugin usages listed below (in case it is used) from `Pyz\Zed\Search\SearchDependencyProvider`:
+2. Remove deprecated plugin usages listed below (in case it's used) from `Pyz\Zed\Search\SearchDependencyProvider`:
```bash
Spryker\Zed\CategoryPageSearch\Communication\Plugin\Search\CategoryNodeDataPageMapBuilder
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-cms-block-category-connector-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-cms-block-category-connector-module.md
index 9fde09dc770..96fcfaceae6 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-cms-block-category-connector-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-cms-block-category-connector-module.md
@@ -2,7 +2,7 @@
## Upgrading from version 1.* to version 2.*
-Due to introducing the CMS Block positioning and CMS Block templates for Category, the CMS Block Category Connector module now requires Category >=4.0.
+Because of introducing the CMS Block positioning and CMS Block templates for Category, the CMS Block Category Connector module now requires Category >=4.0.
The migration will contain the following steps:
1. New module installation
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-collector-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-collector-module.md
index dd269ea3952..0b5493b9d6e 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-collector-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-collector-module.md
@@ -15,7 +15,7 @@ The following classes were altered to support the multi-store concept:
### Collector multi-store concept overview
-1. The primary change affects the `AbstractDatabaseCollector::processBatchForExport()`. Previously this method was responsible for simply exporting all "touch active" touched entities to Storage or Search. In multi-store environment, a multi-store entity does not necessary exist in all stores even though it is "touch active" in all stores. Moreover, an exported "touch active" multi-store entity can become invalid if it is unassigned from a specific store. To achieve the expected behavior, the `AbstractCollector::isStorable()` method is introduced. Whenever this method returns with `true`, the subject entity is considered to be available (in the current store) and will be exported. On the other hand, the `false` return value that the entity is not available (in the current store) and either not should not be exported or should be deleted from Storage or Search if it has already been exported previously.
+1. The primary change affects the `AbstractDatabaseCollector::processBatchForExport()`. Previously this method was responsible for simply exporting all "touch active" touched entities to Storage or Search. In multi-store environment, a multi-store entity does not necessary exist in all stores even though it's "touch active" in all stores. Moreover, an exported "touch active" multi-store entity can become invalid if it's unassigned from a specific store. To achieve the expected behavior, the `AbstractCollector::isStorable()` method is introduced. Whenever this method returns with `true`, the subject entity is considered to be available (in the current store) and will be exported. On the other hand, the `false` return value that the entity is not available (in the current store) and either not should not be exported or should be deleted from Storage or Search if it has already been exported previously.
{% info_block warningBox %}
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-companyuser-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-companyuser-module.md
index b8b697e5cc1..876eb4fa51c 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-companyuser-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-companyuser-module.md
@@ -15,7 +15,7 @@ To upgrade to the new version of the module, do the following:
ALTER TABLE "spy_company_user"
ADD "is_active" BOOLEAN DEFAULT 't';
```
-As a result, all existing company users will receive a new column `is_active`. By default, the value is `true` and it is `required`.
+As a result, all existing company users will receive a new column `is_active`. By default, the value is `true` and it's `required`.
2. Rebuild `Propel2` models:
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-environment-configuration-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-environment-configuration-module.md
index 942e66cb927..824256d5746 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-environment-configuration-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-environment-configuration-module.md
@@ -1,6 +1,6 @@
-The environment configuration was restructured to solve a couple of inconsistencies and dependencies within the configuration itself. To untangle some of the configuration options it was necessary to introduce a few new configuration constants. Although the Spryker core should be fully backward compatible it is advised to update project implementations to make use of the new configuration options.
+The environment configuration was restructured to solve a couple of inconsistencies and dependencies within the configuration itself. To untangle some of the configuration options it was necessary to introduce a few new configuration constants. Although the Spryker core should be fully backward compatible it's advised to update project implementations to make use of the new configuration options.
Along with the introduction of the new configuration constants, a couple of unused ones have been marked as deprecated.
@@ -69,7 +69,7 @@ $config[ApplicationConstants::BASE_URL_ZED] = sprintf(
```
### List of the new configuration
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-oms-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-oms-module.md
index afca1dbb263..e8ad2781c4e 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-oms-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-oms-module.md
@@ -148,7 +148,7 @@ CREATE TABLE "spy_oms_product_reservation_last_exported_version"
## Upgrading from version 6.* to version 7.*
-In version 7, OMS no longer uses `SalesAggregator` to calculate totals; it is now done via the `Calculator` module. Therefore, there is no more dependency with `SalesAggregator`.
+In version 7, OMS no longer uses `SalesAggregator` to calculate totals; it's now done via the `Calculator` module. Therefore, there is no more dependency with `SalesAggregator`.
The `Spryker\Zed\Oms\Business\Mail\MailHandler` dependency to `SalesAggregatorFacade` was replaced with `SalesFacade`.
To learn how to migrate to the new structure, see the [Upgrading from version 3.* to version 4.*](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/install-and-upgrade/upgrade-modules/upgrade-the-calculation-module.html#upgrading-from-version-3-to-version-4) section in *Upgrade the Calculation module*.
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-price-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-price-module.md
index fbf4aa5155f..c9c356d817d 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-price-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-price-module.md
@@ -4,7 +4,7 @@
From version 5 we have changed price module responsibilities: previously it was responsible for handling product price related functionality. This responsibility has now been moved to the new PriceProduct module which handles product prices, while Price module is responsible for generic spryker core related functionality.
-Due to this change of the Price module responsibility, all related modules have also be updated to work with the `PriceProduct` module.
+Because of this change of the Price module responsibility, all related modules have also be updated to work with the `PriceProduct` module.
1. First you have to install the new `PriceProduct` module.
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-product-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-product-module.md
index 2a863f3812b..9320fddd550 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-product-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-product-module.md
@@ -131,7 +131,7 @@ class ProductCollector extends AbstractSearchPdoCollector
Collectors should now be able to export abstract product data per store both for Storage and Search.
-10. `Facade/ProductToUrlInterface::hasUrl()` method is removed because it is not used within the module. Please check your code if you have customized calls to it.
+10. `Facade/ProductToUrlInterface::hasUrl()` method is removed because it's not used within the module. Please check your code if you have customized calls to it.
11. `ProductAbstractManager` internal class was amended to handle `abstract product-store` relation, take a look if you have customized it.
Additionally you might want to update the Product Information Management (PIM) Zed Admin UI to manage abstract products and their store configuration. You can find further information about multi-store products here, and [Upgrade the ProductManagement module](/docs/pbc/all/product-information-management/{{site.version}}/base-shop/install-and-upgrade/upgrade-modules/upgrade-the-productmanagement-module.html).
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-productconfiguration-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-productconfiguration-module.md
index fafe2ad8153..434b02113c2 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-productconfiguration-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-productconfiguration-module.md
@@ -6,7 +6,7 @@
Version 1.0.0 of the `ProductConfiguration` module introduces the following backward incompatible changes:
-* Adjusted `ProductConfigurationFacade::getProductConfigurationCollection()` so it is now getting product configurations by `ProductConfigurationCriteria` instead of `ProductConfigurationFilterTransfer`.
+* Adjusted `ProductConfigurationFacade::getProductConfigurationCollection()` so it's now getting product configurations by `ProductConfigurationCriteria` instead of `ProductConfigurationFilterTransfer`.
* Introduced the `spy_product_configuration.uuid` field to allow unique identifier.
* Introduced the `spy_product_configuration-unique-uuid` unique index.
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-productlistgui-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-productlistgui-module.md
index 08e7ffe8605..c14ff694143 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-productlistgui-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-productlistgui-module.md
@@ -59,7 +59,7 @@ Other changes are listed below:
* Replaced `ProductListFacade::deleteProductList()` usage with `ProductListFacade::removeProductList()` in `DeleteController::confirmAction()`.
* Introduced extension point to inject buttons for the product list table.
* Adjusted UI to see the owner domain entities for each product list.
-* Adjusted deletion logic so that it is not possible to delete a product list if it has any owner domain entity.
+* Adjusted deletion logic so that it's not possible to delete a product list if it has any owner domain entity.
* Introduced extension point to define the ownership over product list by another domain entity.
* Deprecated `ProductListOwnerTypeFormExpanderPluginInterface` to allow multiple owners concept.
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-productoption-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-productoption-module.md
index 6d156db9433..3f3f8c455a2 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-productoption-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-productoption-module.md
@@ -47,7 +47,7 @@ class ProductOptionDependencyProvider extends SprykerProductOptionDependencyProv
}
```
-11. Migrate prices from `spy_product_option_value.price` field to `spy_product_option_value_price` table. Each `spy_product_option_value` row must have at least 1 `spy_product_option_value_price` row connected. A `ProductOptionValue` entity can have multiple `ProductOptionValuePrices` connected. You can define different gross/net price per currency per store by populating the `fk_currency` and `fk_store` fields accordingly. When either `gross_price` or `net_price` database field is left as `null`, that option will not be available for customers in that exact currency, store, price mode trio. If you set a price field as 0, the option is available for customers and it means it is free of charge.
+11. Migrate prices from `spy_product_option_value.price` field to `spy_product_option_value_price` table. Each `spy_product_option_value` row must have at least 1 `spy_product_option_value_price` row connected. A `ProductOptionValue` entity can have multiple `ProductOptionValuePrices` connected. You can define different gross/net price per currency per store by populating the `fk_currency` and `fk_store` fields accordingly. When either `gross_price` or `net_price` database field is left as `null`, that option will not be available for customers in that exact currency, store, price mode trio. If you set a price field as 0, the option is available for customers and it means it's free of charge.
Example of the migration
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-productpagesearch-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-productpagesearch-module.md
index 4a2b52cb2cc..8ea6ea4c589 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-productpagesearch-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-productpagesearch-module.md
@@ -59,7 +59,7 @@ Spryker\Zed\ProductPageSearch\Communication\Plugin\Search\ProductPageMapPlugin
## Upgrading from version 2.* to version 3.*
-`ProductPageSearch` 3.0.0 got separate search index for Concrete Products. It includes database table and ElasticSearch index.
+`ProductPageSearch` 3.0.0 got separate search index for Concrete Products. It includes database table and Elasticsearch index.
*Estimated migration time: ~2h*
@@ -83,7 +83,7 @@ vendor/bin/console transfer:generate
vendor/bin/console search:setup
```
-4. Sync concrete products data with ElasticSearch:
+4. Sync concrete products data with Elasticsearch:
```bash
vendor/bin/console data:import:product-concrete
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-search-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-search-module.md
index b6790111d8b..c3f4868a6ad 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-search-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-search-module.md
@@ -158,7 +158,7 @@ you have to merge the latest changes with the core. Especially this is important
* `\Spryker\Client\Search\Plugin\Config\SortConfigBuilder` now looks for configuration by configuration field name.
**Yves changes:**
-The `UrlGenerator` was incorrectly setting the request parameters, therefore now it is necessary to change processFacetSearchResultTransfer and processRangeSearchResultTransfer as shown in the code sample below.
+The `UrlGenerator` was incorrectly setting the request parameters, therefore now it's necessary to change processFacetSearchResultTransfer and processRangeSearchResultTransfer as shown in the code sample below.
**Code sample:**
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-transfer-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-transfer-module.md
index 39891a3964b..73cea8d1c96 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-transfer-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-transfer-module.md
@@ -2,7 +2,7 @@
## Upgrading from version 2.* to version 3.*
-When upgrading to the new major version of the `Transfer` module, it is necessary to make sure that everywhere the `$foo->fromArray($bar->toArray())` statement is used and the types are matching.
+When upgrading to the new major version of the `Transfer` module, it's necessary to make sure that everywhere the `$foo->fromArray($bar->toArray())` statement is used and the types are matching.
From now on we are no longer silently ignoring when you try to set a string to an array field and an exception is getting thrown instead.
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-twig-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-twig-module.md
index 9850bf81dfb..3828f459e44 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-twig-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-twig-module.md
@@ -89,10 +89,10 @@ class ShopApplicationDependencyProvider extends SprykerShopApplicationDependency
namespace Pyz\Zed\Twig;
use Spryker\Service\UtilDateTime\Plugin\Twig\DateTimeFormatterTwigPlugin;
-use Spryker\Shared\Twig\Plugin\DebugTwigPlugin;
use Spryker\Shared\Twig\Plugin\FormTwigPlugin;
use Spryker\Shared\Twig\Plugin\RoutingTwigPlugin;
use Spryker\Shared\Twig\Plugin\SecurityTwigPlugin;
+use Spryker\Shared\Twig\Plugin\VarDumperTwigPlugin;
use Spryker\Zed\Application\Communication\Plugin\Twig\ApplicationTwigPlugin;
use Spryker\Zed\ChartGui\Communication\Plugin\Twig\Chart\ChartGuiTwigPlugin;
use Spryker\Zed\Currency\Communication\Plugin\Twig\CurrencyTwigPlugin;
@@ -135,7 +135,7 @@ class TwigDependencyProvider extends SprykerTwigDependencyProvider
protected function getTwigPlugins(): array
{
return [
- new DebugTwigPlugin(),
+ new VarDumperTwigPlugin(),
new FormTwigPlugin(),
new HttpKernelTwigPlugin(),
new RoutingTwigPlugin(),
@@ -224,10 +224,10 @@ class EventDispatcherDependencyProvider extends SprykerEventDispatcherDependency
namespace Pyz\Yves\Twig;
use Spryker\Service\UtilDateTime\Plugin\Twig\DateTimeFormatterTwigPlugin;
-use Spryker\Shared\Twig\Plugin\DebugTwigPlugin;
use Spryker\Shared\Twig\Plugin\FormTwigPlugin;
use Spryker\Shared\Twig\Plugin\RoutingTwigPlugin;
use Spryker\Shared\Twig\Plugin\SecurityTwigPlugin;
+use Spryker\Shared\Twig\Plugin\VarDumperTwigPlugin;
use Spryker\Yves\CmsContentWidget\Plugin\Twig\CmsContentWidgetTwigPlugin;
use Spryker\Yves\Http\Plugin\Twig\HttpKernelTwigPlugin;
use Spryker\Yves\Http\Plugin\Twig\RuntimeLoaderTwigPlugin;
@@ -266,7 +266,7 @@ class TwigDependencyProvider extends SprykerTwigDependencyProvider
protected function getTwigPlugins(): array
{
return [
- new DebugTwigPlugin(),
+ new VarDumperTwigPlugin(),
new FormTwigPlugin(),
new HttpKernelTwigPlugin(),
new RoutingTwigPlugin(),
diff --git a/_scripts/heading_level_checker/heading_level_checker.js b/_scripts/heading_level_checker/heading_level_checker.js
new file mode 100644
index 00000000000..a226e763858
--- /dev/null
+++ b/_scripts/heading_level_checker/heading_level_checker.js
@@ -0,0 +1,136 @@
+#!/usr/bin/env node
+
+const fs = require('fs');
+const path = require('path');
+
+function fixHeadings(content) {
+ // Parse frontmatter
+ const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
+ if (!fmMatch) return { content, changes: 0 };
+
+ const frontmatter = fmMatch[1];
+ const title = frontmatter.match(/title:\s*(.*)/)?.[1];
+ if (!title) return { content: content, changes: 0 };
+
+ // Get the content after frontmatter
+ const body = content.slice(fmMatch[0].length);
+
+ // Find all heading levels in the content (excluding code blocks)
+ const lines = body.split('\n');
+ let inCodeBlock = false;
+ const headingLevels = [];
+
+ lines.forEach(line => {
+ if (line.trim().startsWith('```')) {
+ inCodeBlock = !inCodeBlock;
+ return;
+ }
+ if (inCodeBlock) return;
+
+ const headingMatch = line.match(/^(#{1,6}) /);
+ if (headingMatch) {
+ headingLevels.push(headingMatch[1].length);
+ }
+ });
+
+ if (headingLevels.length === 0) return { content: content, changes: 0 };
+
+ // Find the highest level (minimum number of #)
+ const highestLevel = Math.min(...headingLevels);
+
+ // Calculate how many levels to shift to make highest level H2
+ const levelShift = 2 - highestLevel;
+
+ // If no shift needed (highest level is already H2), return unchanged
+ if (levelShift === 0) return { content: content, changes: 0 };
+
+ // Apply the shift to all headings while preserving code blocks
+ let changes = 0;
+ inCodeBlock = false;
+ const fixedLines = lines.map(line => {
+ if (line.trim().startsWith('```')) {
+ inCodeBlock = !inCodeBlock;
+ return line;
+ }
+ if (inCodeBlock) return line;
+
+ const headingMatch = line.match(/^(#{1,6}) (.*)/);
+ if (headingMatch) {
+ const newLevel = Math.max(1, Math.min(6, headingMatch[1].length + levelShift));
+ changes++;
+ return `${'#'.repeat(newLevel)} ${headingMatch[2]}`;
+ }
+ return line;
+ });
+
+ return {
+ content: `---\n${frontmatter}\n---${fixedLines.join('\n')}`,
+ changes: changes
+ };
+}
+
+function findMarkdownFiles(dir) {
+ let results = [];
+ const files = fs.readdirSync(dir);
+
+ for (const file of files) {
+ const filePath = path.join(dir, file);
+ const stat = fs.statSync(filePath);
+
+ if (stat.isDirectory()) {
+ results = results.concat(findMarkdownFiles(filePath));
+ } else if (file.endsWith('.md')) {
+ results.push(filePath);
+ }
+ }
+
+ return results;
+}
+
+function processFile(filePath, stats) {
+ try {
+ const content = fs.readFileSync(filePath, 'utf8');
+ const result = fixHeadings(content);
+ stats.totalFiles++;
+
+ if (result.changes > 0) {
+ fs.writeFileSync(filePath, result.content);
+ console.log(`Processed ${filePath} - ${result.changes} heading(s) adjusted`);
+ stats.filesChanged++;
+ stats.totalHeadingsAdjusted += result.changes;
+ } else {
+ console.log(`Processed ${filePath} - no changes needed (headings already correct)`);
+ }
+ } catch (err) {
+ console.error(`Error processing ${filePath}:`, err);
+ }
+}
+
+// Get command line arguments
+const args = process.argv.slice(2);
+
+// If no arguments provided, process all .md files in /docs/
+let filesToProcess;
+
+if (args.length === 0) {
+ console.log('No files specified, processing all .md files in /docs/...\n');
+ filesToProcess = findMarkdownFiles('docs');
+} else {
+ filesToProcess = args;
+}
+
+// Initialize statistics
+const stats = {
+ totalFiles: 0,
+ filesChanged: 0,
+ totalHeadingsAdjusted: 0
+};
+
+// Process all files
+filesToProcess.forEach(file => processFile(file, stats));
+
+// Print detailed summary
+console.log('\nSummary:');
+console.log(`Total files checked: ${stats.totalFiles}`);
+console.log(`Files that needed changes: ${stats.filesChanged}`);
+console.log(`Total headings adjusted: ${stats.totalHeadingsAdjusted}`);
diff --git a/_scripts/heading_level_checker/run_heading_level_checker.md b/_scripts/heading_level_checker/run_heading_level_checker.md
new file mode 100644
index 00000000000..b507e34ce04
--- /dev/null
+++ b/_scripts/heading_level_checker/run_heading_level_checker.md
@@ -0,0 +1,19 @@
+The heading level checker checks and corrects headings according to the standard convention. The standard hierarchy of headings in a document body is h2>h3>h4. h1 is a document's title, which is part of the front matter. The script checks and shifts the highest-level heading to be h2. Then it shifts the other headings to follow the hierarchy.
+
+Run the checker in the `docs` folder:
+
+```bash
+node _scripts/heading_level_checker/heading_level_checker.js
+```
+
+Run the checker for a particular file or folder:
+
+```bash
+node _scripts/heading_level_checker/heading_level_checker.js {PATH_TO_FILE}
+```
+
+Example of a targeted run:
+
+```bash
+node _scripts/heading_level_checker/heading_level_checker.js docs/dg/dev/guidelines/coding-guidelines
+```
diff --git a/_templates/best-practices-file-template.md b/_templates/best-practices-file-template.md
index cae86b17560..be9ee78e4de 100644
--- a/_templates/best-practices-file-template.md
+++ b/_templates/best-practices-file-template.md
@@ -16,7 +16,7 @@ template: best-practices-guide-template
1. Describe a possible use case and what a customer might want to achieve. For example: Suppose you are a clothing retailer and often get items returned within the 14-days return window. You want to automate the return process as much as possible so that minimum intervention of your employees is required.
2. Suggest the solution for this scenario.
-3. Describe the advantages of the suggested solution and in what cases it is best to apply it. -->
+3. Describe the advantages of the suggested solution and in what cases it's best to apply it. -->
### Scenario 2: {Title}
diff --git a/_templates/feature-installation-guide-template.md b/_templates/feature-installation-guide-template.md
index 0ae6bf0548d..393831eb5e4 100644
--- a/_templates/feature-installation-guide-template.md
+++ b/_templates/feature-installation-guide-template.md
@@ -244,9 +244,9 @@ Configure tables to be published and synchronized to the Storage on create, edit
**Verification**
+Usually, it's technically impossible to verify the current step before the [Import data](#import-data) step. In such a case, move the verification of this step there. -->
-Make sure that, when an {entity} is created, updated or deleted, it is exported to or removed from Redis and Elasticsearch.
+Make sure that, when an {entity} is created, updated or deleted, it's exported to or removed from Redis and Elasticsearch.
| STORAGE TYPE | TARGET ENTITY | EXPECTED DATA IDENTIFIER EXAMPLE | EXPECTED DATA FRAGMENT EXAMPLE |
| ------------ | ------------- | -------------------------------- | ---------------------------------- |
@@ -276,9 +276,9 @@ Configure tables to be published to the {table name} table and synchronized to t
**Verification**
+Usually, it's technically impossible to verify the current step before the [Import data](#import-data) step. In such a case, move the verification of this step there. -->
-Make sure that, when an {entity} is created, updated or deleted, it is exported to or removed from Redis and Elasticsearch.
+Make sure that, when an {entity} is created, updated or deleted, it's exported to or removed from Redis and Elasticsearch.
| STORAGE TYPE | TARGET ENTITY | EXPECTED DATA IDENTIFIER EXAMPLE | EXPECTED DATA FRAGMENT EXAMPLE |
| ------------ | ------------- | -------------------------------- | ---------------------------------- |
@@ -309,9 +309,9 @@ Install the following plugins:
**Verification**
+Usually, it's technically impossible to verify the current step before the [Import data](#import-data) step. In such a case, move the verification of this step there. -->
-Make sure that, when an {entity} is created, updated or deleted, it is exported to or removed from Redis and Elasticsearch.
+Make sure that, when an {entity} is created, updated or deleted, it's exported to or removed from Redis and Elasticsearch.
| STORAGE TYPE | TARGET ENTITY | EXPECTED DATA IDENTIFIER EXAMPLE | EXPECTED DATA FRAGMENT EXAMPLE |
| ------------ | ------------- | -------------------------------- | ---------------------------------- |
diff --git a/_templates/module-upgrade-guide-template.md b/_templates/module-upgrade-guide-template.md
index 4ed38215427..6b22b3365d2 100644
--- a/_templates/module-upgrade-guide-template.md
+++ b/_templates/module-upgrade-guide-template.md
@@ -10,6 +10,6 @@ template: module-upgrade-guide-template
*Estimated migration time: {time in hours or minutes}*
## Spryker’s GPSR obligations
diff --git a/docs/about/all/support/getting-the-most-out-of-spryker-support.md b/docs/about/all/support/getting-the-most-out-of-spryker-support.md
index fac57a66d06..0c14e793449 100644
--- a/docs/about/all/support/getting-the-most-out-of-spryker-support.md
+++ b/docs/about/all/support/getting-the-most-out-of-spryker-support.md
@@ -60,7 +60,7 @@ Even though this is hard to achieve with a complex product like Spryker, we stri
| INFORMATION | QUESTIONS THAT HELP YOU | EXPLANATION |
| --- | --- | --- |
| Prerequisites and steps to reproduce | What prerequisites must be met, so they can see the problem occures? Am I using Spryker Suite/B2B/B2C Demo Shop? Am I using Spryker hosting? What project-level adjustments have been made that might have an influence on the problem? What do they need to do, step by step, to arrive at the same point as me and see the error? | For a new issue, one of the first steps we do is trying to reproduce it in our latest version of Spryker. In order to do so quickly and targeted, we need clear, step-by-step instructions. Occasionally, we will ask you to provide your `composer.lock` file. This file also contains all the version information for all the components and models you are using and is very helpful in diagnosing more complex problems. It might seem tedious, but providing a good description of how we can reproduce your problem is the biggest time saver.|
-| Expected behavior | What did I expect would happen if I executed the actions described above? | Sometimes, it is just not obvious enough that the outcome you expected and tell us helps us avoid misdiagnosing an issue or research in the wrong direction. |
+| Expected behavior | What did I expect would happen if I executed the actions described above? | Sometimes, it's just not obvious enough that the outcome you expected and tell us helps us avoid misdiagnosing an issue or research in the wrong direction. |
| Actual behavior | What was the unexpected thing that happened? Where there any error messages? What happened that should not have happened? | This is what we will look out for when we are reproducing your issue. Please be specific and precise and share error messages. |
| Your contact details | Did I write my email address correctly? Is it ideally the one that we included in our SLA as a named contact? | It might sound strange, however, misspelled email addresses are almost impossible to detect from a support perspective and can immediately introduce a communication problem. |
| The Company this issue applies to | Am I a Spryker partner, and the issue impacts a customer of mine? Or is this a Spryker-led project, and I am a direct customer of Spryker? | This information is important so that we can map the correct SLA for you and know exactly with whom to speak in Spryker to get more contextual information on your case. It makes a big difference for us, so please always include info that tells us who company impacted by the problem |
diff --git a/docs/about/all/support/how-spryker-support-works.md b/docs/about/all/support/how-spryker-support-works.md
index ecbac39f687..ac49eb50ba7 100644
--- a/docs/about/all/support/how-spryker-support-works.md
+++ b/docs/about/all/support/how-spryker-support-works.md
@@ -46,7 +46,7 @@ By conducting an initial investigation on your end, you can help us speed up thi
#### Security issues
-To say that we take security issues seriously would be an understatement. The topic is so important to us, that when you raise a case with us that has a suspected impact on the security of our software or our infrastructure, it is escalated to our senior management and most senior engineering personnel. We believe it is better to deal with quite some false positives than to underestimate only one report. While we cannot guarantee certain resolution times here, you can see from our response that we take your case very seriously. If we discover a genuine security threat, we work with you to resolve it with the highest priority.
+To say that we take security issues seriously would be an understatement. The topic is so important to us, that when you raise a case with us that has a suspected impact on the security of our software or our infrastructure, it's escalated to our senior management and most senior engineering personnel. We believe it's better to deal with quite some false positives than to underestimate only one report. While we cannot guarantee certain resolution times here, you can see from our response that we take your case very seriously. If we discover a genuine security threat, we work with you to resolve it with the highest priority.
### Customer Effort Score (CES) and Customer Satisfaction Score (CSS)
Proven scores that we use to measure your experience with our support.
diff --git a/docs/about/all/support/prioritzing-support-cases.md b/docs/about/all/support/prioritzing-support-cases.md
index dcf24fd3a0d..d37a7c886b7 100644
--- a/docs/about/all/support/prioritzing-support-cases.md
+++ b/docs/about/all/support/prioritzing-support-cases.md
@@ -51,7 +51,7 @@ Priority is an internal attribute that we set for cases after having evaluated t
* *Urgent*: urgent cases have the highest priority for us. Since there can only be a very limited number of urgent cases for us to be able to operate, we assign this priority only to the most severe cases (for example, Security Incidents or Infrastructure Outages).
* *High*: high priority cases are dealt with priority if there are no urgent cases in the backlog, or not all support representatives are currently busy working on urgent cases.
* *Medium*: most of the problem cases we receive are assigned `Medium` priority. They are dealt with if there are no urgent and high cases in the backlog or if enough free resources are available.
-* *Low*: low priority cases are dealt with if there are no urgent and high priority cases in the Backlog or if a support representative thinks that the request can be dealt with very quickly or that they are working on a similar case already and it is beneficial to work on the related low priority case as well.
+* *Low*: low priority cases are dealt with if there are no urgent and high priority cases in the Backlog or if a support representative thinks that the request can be dealt with very quickly or that they are working on a similar case already and it's beneficial to work on the related low priority case as well.
You can see what priority your case was assigned to in the case detail view on the Support and Partner Portal.
@@ -65,7 +65,7 @@ You can see what priority your case was assigned to in the case detail view on t
We recently gave our partners and customers the option to specify desired solution times on request, change request, and problem cases. Emergency cases do not have this field, because they are always dealt with as soon as possible.
### Case types
-The case type you choose to create an issue also determines how high it is prioritized initially.
+The case type you choose to create an issue also determines how high it's prioritized initially.
* *Request Cases* automatically receive low priority and are dealt with when there is time.
* *Problem Cases* let you specify business impact and desired solution time. We assign a priority to this case after evaluating the information provided, the business impact specified, and the desired solution time.
* *Emergency Cases* are reserved for severe outages with significant business impact. Emergency cases always receive the highest priority and can only be cases with business impact P1—Urgent.
diff --git a/docs/about/all/support/project-level-and-core-level-fixes.md b/docs/about/all/support/project-level-and-core-level-fixes.md
index ac1a5adf4ba..9a54b857371 100644
--- a/docs/about/all/support/project-level-and-core-level-fixes.md
+++ b/docs/about/all/support/project-level-and-core-level-fixes.md
@@ -13,7 +13,7 @@ This document explains the differences between project and core level fixes to p
## Project-level fixes
-Sometimes, it is important to react fast and provide an undemocratic solution to an urgent problem. This is where project-level fixes come into place. We use them to solve problems on a project level. If a reported problem is relatively simple but has a high business impact, we sometimes provide a patch. This patch might not run through the normal QA and review processes and has the singular purpose of solving a problem with high business impact as fast as possible and buying the time necessary to provide a proper solution.
+Sometimes, it's important to react fast and provide an undemocratic solution to an urgent problem. This is where project-level fixes come into place. We use them to solve problems on a project level. If a reported problem is relatively simple but has a high business impact, we sometimes provide a patch. This patch might not run through the normal QA and review processes and has the singular purpose of solving a problem with high business impact as fast as possible and buying the time necessary to provide a proper solution.
We also usually try to avoid project-level fixes where possible, because they do not make Spryker better for everyone and treat symptoms rather than solving the core issue.
## Core-level fixes
diff --git a/docs/about/all/support/support-case-escalations.md b/docs/about/all/support/support-case-escalations.md
index 439009622f4..5c8bf375152 100644
--- a/docs/about/all/support/support-case-escalations.md
+++ b/docs/about/all/support/support-case-escalations.md
@@ -21,7 +21,7 @@ While this strategy might feel like the right thing to do (we need to do somethi
## How do we want to deal with escalations?
-In Support, we acknowledge that we cannot always produce a satisfying result. We do not always get it right, and sometimes our hands might simply be tied. Escalations happen, and it is important for us to steer them into a constructive and orderly direction right away that ensures:
+In Support, we acknowledge that we cannot always produce a satisfying result. We do not always get it right, and sometimes our hands might simply be tied. Escalations happen, and it's important for us to steer them into a constructive and orderly direction right away that ensures:
1. It is easy for a customer or partner to escalate an issue.
2. The customer's or partner's problem is evaluated by the right audience.
3. The stakeholders align quickly to find a feasible strategy going forward.
@@ -36,7 +36,7 @@ The escalation process is designed in a way to create visibility for the right a
`STARTED`. A customer or partner has created an emergency case. Internal stakeholders are informed and began evaluating the information provided. In cases where the Emergency Case option is misused, the Escalation is canceled, and the requester is informed about it.
-`ACKNOWLEDGED`. If the escalation is valid, it is acknowledged by the support rep that takes care of the case. They do not inform internal stakeholders and see to it that a solution is developed. They also make sure to update the customer and partner at regular intervals on their progress.
+`ACKNOWLEDGED`. If the escalation is valid, it's acknowledged by the support rep that takes care of the case. They do not inform internal stakeholders and see to it that a solution is developed. They also make sure to update the customer and partner at regular intervals on their progress.
`SOLUTION PROPOSED`. Once the team has found a solution that either fixes the problem outright, or at least mitigates its impact, they propose a solution, and the partner and customer are asked to accept or reject the proposed solution.
diff --git a/docs/about/all/support/support-ticket-statuses.md b/docs/about/all/support/support-ticket-statuses.md
index e04376cc94e..cd986a95583 100644
--- a/docs/about/all/support/support-ticket-statuses.md
+++ b/docs/about/all/support/support-ticket-statuses.md
@@ -9,7 +9,7 @@ redirect_from:
- /docs/scos/user/intro-to-spryker/support/understanding-ticket-status.html
---
-When you report an issue, and we discover an underlying problem with Spryker, we create a Jira Bug Ticket. Then, this ticket is handed over to our development department, and our colleagues evaluate how to address the problem best and resolve it. After the issue is resolved, it is then released to our repositories.
+When you report an issue, and we discover an underlying problem with Spryker, we create a Jira Bug Ticket. Then, this ticket is handed over to our development department, and our colleagues evaluate how to address the problem best and resolve it. After the issue is resolved, it's then released to our repositories.
## Status descriptions
diff --git a/docs/about/all/support/understanding-slas.md b/docs/about/all/support/understanding-slas.md
index ac98e236813..2c10dce7c3c 100644
--- a/docs/about/all/support/understanding-slas.md
+++ b/docs/about/all/support/understanding-slas.md
@@ -9,7 +9,7 @@ redirect_from:
- /docs/scos/user/intro-to-spryker/support/understand-slas.html
---
-Like any legal text, Service Level Agreements (SLAs) can be hard to understand for the uninitiated. We strive to keep our SLAs clear and comprehensive, but sometimes it is better to explain some core concepts more verbose.
+Like any legal text, Service Level Agreements (SLAs) can be hard to understand for the uninitiated. We strive to keep our SLAs clear and comprehensive, but sometimes it's better to explain some core concepts more verbose.
## What we expect from you
Fulfilling SLA is a two-way street, and we cannot achieve good results without you. The following is what we expect from our customers.
@@ -17,7 +17,7 @@ Fulfilling SLA is a two-way street, and we cannot achieve good results without y
### Keeping Spryker environments up-to-date
We generally expect our customers to keep their Spryker environment up to date. The reason for this is having multiple layers.
We release updates to introduce new features, performance improvements, and security enhancements. Especially the last ones you do not want to miss. We want our customers to have fast, responsive, and more secure shops.
-Up-to-date code generally means more stability, better support, and compatibility for 3rd party applications. If you use the latest versions, it means that you are using the best and most up-to-date version of the code we have to offer. Looking at the motivations to keep up-to-.date listed above, this is not only good for you, but it is good for us too. Working with a project that has recent code means that we have an easier time understanding what is going on. This reduces case resolution time and makes communication between you, Spryker Support, and Development much easier.
+Up-to-date code generally means more stability, better support, and compatibility for 3rd party applications. If you use the latest versions, it means that you are using the best and most up-to-date version of the code we have to offer. Looking at the motivations to keep up-to-.date listed above, this is not only good for you, but it's good for us too. Working with a project that has recent code means that we have an easier time understanding what is going on. This reduces case resolution time and makes communication between you, Spryker Support, and Development much easier.
### Keep it in English
@@ -48,7 +48,7 @@ There is a number of things you can do to avoid problems.
### Keep updated on Spryker
-Keeping your Spryker environment up to date is important, but it is equally important to keep your knowledge about what is going on with Spryker updated, too.
+Keeping your Spryker environment up to date is important, but it's equally important to keep your knowledge about what is going on with Spryker updated, too.
Our Spryker Community on [CommerceQuest](https://commercequest.space/), a vibrant forum for people using Spryker, is a perfect platform to use. It is also a place where people come to discuss. We would like to invite every customer to join and contribute actively. Often, you will hear the latest news first there. In addition, our community team also hosts monthly Spryker User Group Meetups in which internal Spryker teams and community members share and discuss the latest developments. See [commercequest.space/events](https://commercequest.space/events/category) for upcoming meetups and other relevant events.
Also, subscribe to our new newsletter (soon to come) and be sure to check out our Technical News Page (soon to come), for the latest important news.
diff --git a/docs/about/all/support/using-the-support-portal.md b/docs/about/all/support/using-the-support-portal.md
index e72cba1c0b4..92c41769f0c 100644
--- a/docs/about/all/support/using-the-support-portal.md
+++ b/docs/about/all/support/using-the-support-portal.md
@@ -77,9 +77,9 @@ Emergencies are reserved for problems that have significant business impact now
{% info_block warningBox "Plan your change requests and use the right request form" %}
-Due to verification processes and role-based access control mechanisms, change requests take some time to process. Expect 3-5 days of processing time.
+Because of verification processes and role-based access control mechanisms, change requests take some time to process. Expect 3-5 days of processing time.
-Due to contractual reasons, only customers can request new environments or access to environment monitoring, not partners.
+Because of contractual reasons, only customers can request new environments or access to environment monitoring, not partners.
{% endinfo_block %}
diff --git a/docs/ca/dev/access/connect-to-services-via-ssh.md b/docs/ca/dev/access/connect-to-services-via-ssh.md
index a64f20e6616..c3ff4b8bf40 100644
--- a/docs/ca/dev/access/connect-to-services-via-ssh.md
+++ b/docs/ca/dev/access/connect-to-services-via-ssh.md
@@ -11,7 +11,7 @@ redirect_from:
- /docs/cloud/dev/spryker-cloud-commerce-os/access/connecting-to-services-via-ssh.html
---
-We add your SSH public key to the [bastion host](https://docs.aws.amazon.com/quickstart/latest/linux-bastion/overview.html) during the onboarding, so you can access your environments' internal networks via SSH right after.
+We add your SSH public key to the [bastion host](https://docs.aws.amazon.com/managedservices/latest/userguide/using-bastions.html) during the onboarding, so you can access your environments' internal networks via SSH right after.
You can use SSH in two ways:
diff --git a/docs/ca/dev/add-variables-in-the-parameter-store.md b/docs/ca/dev/add-variables-in-the-parameter-store.md
index c39177075ba..b5bd1b0edca 100644
--- a/docs/ca/dev/add-variables-in-the-parameter-store.md
+++ b/docs/ca/dev/add-variables-in-the-parameter-store.md
@@ -35,7 +35,7 @@ If there is a need to modify a Spryker-owned environment variable, it must be do
By adhering to these guidelines, you can effectively manage your environment variables without risking the system stability. It also helps in maintaining a seamless experience while working with the Spryker Cloud Commerce OS.
-Please remember that improper management of environment variables can lead to unexpected issues. Therefore, it is recommended to consult the Spryker Cloud or support team for any complex or system-critical changes.
+Please remember that improper management of environment variables can lead to unexpected issues. Therefore, it's recommended to consult the Spryker Cloud or support team for any complex or system-critical changes.
## Naming convention for variables
diff --git a/docs/ca/dev/best-practices/best-practises-jenkins-stability.md b/docs/ca/dev/best-practices/best-practises-jenkins-stability.md
index 32a2efd8ba2..3e2933d6b9f 100644
--- a/docs/ca/dev/best-practices/best-practises-jenkins-stability.md
+++ b/docs/ca/dev/best-practices/best-practises-jenkins-stability.md
@@ -25,7 +25,7 @@ We recommend profiling your application to understand how much RAM your Jenkins
## Jenkins executors configuration
-Jenkins executors let you orchestrate Jenkins jobs and introduce parallel processing. By default, Jenkins instances have two executors configured, similar to local environment setups. You can adjust the executor count and run many console commands in parallel. While this may speed up processing in your application, it increases the importance of understanding the memory utilization profile of your application. For stable job execution, you need to ensure that no parallelized jobs collectively consume more memory than the amount available to the Jenkins container. Also, it is a common practice to set the number of executors equal to the number of CPUs available to Jenkins. Standard environments are equipped with two vCPUs. Configuring more than the standard two executors risks jobs "fighting" for CPU cycles. This severely limits the performance of all jobs running in parallel and potentially introduces instability to the container itself.
+Jenkins executors let you orchestrate Jenkins jobs and introduce parallel processing. By default, Jenkins instances have two executors configured, similar to local environment setups. You can adjust the executor count and run many console commands in parallel. While this may speed up processing in your application, it increases the importance of understanding the memory utilization profile of your application. For stable job execution, you need to ensure that no parallelized jobs collectively consume more memory than the amount available to the Jenkins container. Also, it's a common practice to set the number of executors equal to the number of CPUs available to Jenkins. Standard environments are equipped with two vCPUs. Configuring more than the standard two executors risks jobs "fighting" for CPU cycles. This severely limits the performance of all jobs running in parallel and potentially introduces instability to the container itself.
We recommend sticking to the default executor count or the concurrent job limit recommended in the Spryker Service Description for your package. This ensures the stability of Jenkins and prevents instability and crashes.
diff --git a/docs/ca/dev/best-practices/jenkins-operational-best-practices.md b/docs/ca/dev/best-practices/jenkins-operational-best-practices.md
index 490e0153aa8..6ca79d82652 100644
--- a/docs/ca/dev/best-practices/jenkins-operational-best-practices.md
+++ b/docs/ca/dev/best-practices/jenkins-operational-best-practices.md
@@ -48,7 +48,7 @@ Formula to estimate your maximum theoretical RAM demand:
Number of executors x (maximum workers and threads spawned by heaviest job * memory_limit) = Theoretical max RAM Demand
-As you can see from the multiplicative nature of the threads and executors, you can easily reach a surprisingly high theoretical max RAM demand. However, it's unlikely that you will actually consume this amount. You would need to have multiple heaviest jobs running in parallel and consuming up to the `memory_limit simultaneously`. Nevertheless, calculating it is good practice, as keeping your theoretical maximum RAM demand below the memory supply significantly increases stability as it virtually eliminates the risk of Jenkins crashing due to exhausting its memory supply. This is currently the most common root cause of Jenkins service degradation and outages.
+As you can see from the multiplicative nature of the threads and executors, you can easily reach a surprisingly high theoretical max RAM demand. However, it's unlikely that you will actually consume this amount. You would need to have multiple heaviest jobs running in parallel and consuming up to the `memory_limit simultaneously`. Nevertheless, calculating it's good practice, as keeping your theoretical maximum RAM demand below the memory supply significantly increases stability as it virtually eliminates the risk of Jenkins crashing because of exhausting its memory supply. This is currently the most common root cause of Jenkins service degradation and outages.
### To-Dos
@@ -95,7 +95,7 @@ Import jobs, as well as Publish and Sync-related processes, can be taxing on the
### Imports and Publish and Synchronize
-Imports and certain Publish and Sync processes can lead to high computational costs, such as permutation calculations for filters. Therefore, it is crucial to implement [RAM-aware batch processing](/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.html#integrate-ram-aware-batch-processing) and [queue chunk sizes](/docs/dg/dev/guidelines/performance-guidelines/architecture-performance-guidelines.html#chunk-size) that are suitable for the complexity of your data. The former helps prevent loading all import data into RAM, while the latter prevents RabbitMQ pipe timeouts due to lengthy processing times. A chunk or batch size that is too large may result in memory-related exceptions or messages being stuck in queues (with logs indicating RabbitMQ broken pipe exceptions), whereas a chunk or batch size that is too small may lead to subpar import and P&S performance. There is no one-size-fits-all solution, but with profiling, you can find a good balance between stability and performance.
+Imports and certain Publish and Sync processes can lead to high computational costs, such as permutation calculations for filters. Therefore, it's crucial to implement [RAM-aware batch processing](/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.html#integrate-ram-aware-batch-processing) and [queue chunk sizes](/docs/dg/dev/guidelines/performance-guidelines/architecture-performance-guidelines.html#chunk-size) that are suitable for the complexity of your data. The former helps prevent loading all import data into RAM, while the latter prevents RabbitMQ pipe timeouts because of lengthy processing times. A chunk or batch size that is too large may result in memory-related exceptions or messages being stuck in queues (with logs indicating RabbitMQ broken pipe exceptions), whereas a chunk or batch size that is too small may lead to subpar import and P&S performance. There is no one-size-fits-all solution, but with profiling, you can find a good balance between stability and performance.
While fine-tuning your chunk size, check out the following articles:
- [Messages are moved to error queues](https://docs.spryker.com/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/troubleshooting-rabbitmq/messages-are-moved-to-error-queues.html)
@@ -107,7 +107,7 @@ A valuable general recommendation is to [split up publishing queues](https://doc
### CPU credits
Standard-sized non-production environments aren't intended to handle long periods of high load. Most infrastructure components in this package size operate with a burst configuration, allowing for increased performance during limited periods. However, if these environments are under heavy load for an extended duration, the components will eventually run out of "burst credits" and throttle until the load decreases and the credits can replenish over time. When an instance is throttled, its CPU performance is capped at 20%. Consequently, the instance may struggle to complete standard tasks, resulting in the following common symptoms:
-- Deployment-related steps in the Deploy_Scheduler pipeline may encounter issues due to insufficient processing capacity.
+- Deployment-related steps in the Deploy_Scheduler pipeline may encounter issues because of insufficient processing capacity.
- Job execution durations in your APM may sharply increase, or you may encounter RabbitMQ broken pipe exceptions.
- The Jenkins UI may become unresponsive or sluggish.
diff --git a/docs/ca/dev/configure-deployment-pipelines/customize-deployment-pipelines.md b/docs/ca/dev/configure-deployment-pipelines/customize-deployment-pipelines.md
index 09fbac20649..78c1a88970b 100644
--- a/docs/ca/dev/configure-deployment-pipelines/customize-deployment-pipelines.md
+++ b/docs/ca/dev/configure-deployment-pipelines/customize-deployment-pipelines.md
@@ -26,7 +26,7 @@ This document describes how to customize deployment pipelines.
{% endinfo_block %}
-### Adding a single command to a deployment pipeline
+## Adding a single command to a deployment pipeline
To customize the `pre-deploy` stage of a pipeline:
@@ -46,7 +46,7 @@ image:
During the next deployment, the command will be executed in the `pre-deploy` stage.
-### Adding multiple commands to a deployment pipeline via a shell script
+## Adding multiple commands to a deployment pipeline via a shell script
To add multiple commands to the `pre-deploy` stage:
@@ -70,7 +70,7 @@ Do not include the `.yml` extension of the file name in `{path_to_script}`. For
During the next deployment, the commands in the script will be executed in the `pre-deploy` stage.
-### Adding different commands for different environments and pipeline types
+## Adding different commands for different environments and pipeline types
By default, in `pre-deploy` and `post-deploy` stages, there is no possibility to run different commands for combinations of different environments and pipeline types. To do that, you can set up a custom shell script with _if statements_.
@@ -94,7 +94,7 @@ if [ "${SPRYKER_PIPELINE_TYPE}" == "destructive" ]; then
fi
```
-### Adding commands to the install stage of deployment pipelines
+## Adding commands to the install stage of deployment pipelines
To add one or more commands to the `install` stage of a deployment pipeline:
diff --git a/docs/ca/dev/configure-deployment-pipelines/deployment-in-states.md b/docs/ca/dev/configure-deployment-pipelines/deployment-in-states.md
index b92bad07483..d2a3ffc1c83 100644
--- a/docs/ca/dev/configure-deployment-pipelines/deployment-in-states.md
+++ b/docs/ca/dev/configure-deployment-pipelines/deployment-in-states.md
@@ -111,7 +111,7 @@ During this step, all the services in an updated state may still respond to requ
## Run_install
-In this step, the scripts in the `SPRYKER_HOOK_INSTALL` are run. By default, it is `vendor/bin/install -r EU/production --no-ansi -vvv`.
+In this step, the scripts in the `SPRYKER_HOOK_INSTALL` are run. By default, it's `vendor/bin/install -r EU/production --no-ansi -vvv`.
The script runs all the propel database migrations, so the database is updated to V2. However, Search and Redis are not, as the synchronization was "paused".
diff --git a/docs/ca/dev/configure-deployment-pipelines/deployment-pipelines.md b/docs/ca/dev/configure-deployment-pipelines/deployment-pipelines.md
index 62b076a04c9..f32d2ea711b 100644
--- a/docs/ca/dev/configure-deployment-pipelines/deployment-pipelines.md
+++ b/docs/ca/dev/configure-deployment-pipelines/deployment-pipelines.md
@@ -106,7 +106,7 @@ The CodeBuild project of this stage is named `Run_pre-deploy_for_`
{% info_block warningBox "Updating the pre-deploy hook" %}
-The CodeBuild project of the pre-deploy hook uses a *currently running* application image. If you add a new command to the hook, it is added to the hook during the next deployment. So, after updating the hook's configuration, the command only runs starting from the second deployment.
+The CodeBuild project of the pre-deploy hook uses a *currently running* application image. If you add a new command to the hook, it's added to the hook during the next deployment. So, after updating the hook's configuration, the command only runs starting from the second deployment.
{% endinfo_block %}
diff --git a/docs/ca/dev/create-and-restore-database-backups.md b/docs/ca/dev/create-and-restore-database-backups.md
index c147b130478..46743e33c9f 100644
--- a/docs/ca/dev/create-and-restore-database-backups.md
+++ b/docs/ca/dev/create-and-restore-database-backups.md
@@ -197,7 +197,7 @@ This opens the **Jobs** page where you can see the progress of restoration. Wait
Restored DB is created and modified.
-### Re-sync data from the restored database to ElasticSearch and Redis
+### Re-sync data from the restored database to Elasticsearch and Redis
1. Connect to OpenVPN.
diff --git a/docs/ca/dev/environment-provisioning.md b/docs/ca/dev/environment-provisioning.md
index 13a547fb067..c58dbb78d6a 100644
--- a/docs/ca/dev/environment-provisioning.md
+++ b/docs/ca/dev/environment-provisioning.md
@@ -121,7 +121,7 @@ Customer and partner users can have access to the following:
This section explains what additional attributes you can specify at the beginning of your provisioning, as well as accesses you can request.
### Optional: SFTP
-SFTP is implemented on top of EFS. You can use SFTP for any third-party integrations or for explicit data imports via Jenkins jobs if required on the project level. Note that SFTP is only available on Bastion and Jenkins. This feature is disabled by default. You can also request it later via the support ticket, but it is preferred to validate this option during provisioning.
+SFTP is implemented on top of EFS. You can use SFTP for any third-party integrations or for explicit data imports via Jenkins jobs if required on the project level. Note that SFTP is only available on Bastion and Jenkins. This feature is disabled by default. You can also request it later via the support ticket, but it's preferred to validate this option during provisioning.
For data import, we recommend using S3 buckets.
diff --git a/docs/ca/dev/environment-scaling.md b/docs/ca/dev/environment-scaling.md
index e5a07949698..d1f9c8f9aad 100644
--- a/docs/ca/dev/environment-scaling.md
+++ b/docs/ca/dev/environment-scaling.md
@@ -27,7 +27,7 @@ There is an autoscaling configuration that has a service-level CPU threshold con
You can test autoscaling by applying load to the aforementioned services of your application. The application will automatically scale, which might visible by by "steps" in your monitoring—response time climbing until a new container is provisioned, which will make it fall again. You should also be able to see new containers being deployed when checking the ECS overview of the service you are load testing.
-Because autoscaling is guard-railed by a maximum number of scaling group members, we recommend load and performance testing before going live so that this maximum number can be dialed in more easily. While our monitoring team can adjust these settings on the fly as well, it is normally best to apply a realistic load to the application (containing the data you want to use in production) before going live. This will also help adjust the container CPU and memory budget—which will determine how much CPU and memory each service will "get" compared to other containers. This helps to further optimize the setup.
+Because autoscaling is guard-railed by a maximum number of scaling group members, we recommend load and performance testing before going live so that this maximum number can be dialed in more easily. While our monitoring team can adjust these settings on the fly as well, it's normally best to apply a realistic load to the application (containing the data you want to use in production) before going live. This will also help adjust the container CPU and memory budget—which will determine how much CPU and memory each service will "get" compared to other containers. This helps to further optimize the setup.
## Additional notes
diff --git a/docs/ca/dev/environments-overview.md b/docs/ca/dev/environments-overview.md
index fb0a840288a..2cbb0d134d2 100644
--- a/docs/ca/dev/environments-overview.md
+++ b/docs/ca/dev/environments-overview.md
@@ -12,7 +12,7 @@ This document describes the environment types shipped with Spryker and the best
{% info_block infoBox "" %}
* Contracts may vary, and this document only describes the environments types that may represent your default setup. If you are using a different setup, ask your project manager or product owner for a more detailed explanation.
-* Your non-production environments don't scale automatically. If you want to increase their scaling, let us know by submitting this form: [Upscale Request](https://support.spryker.com/s/hosting-change-requests/environment-upscaling). Due to contractual reasons, only customers can request these changes, not partners.
+* Your non-production environments don't scale automatically. If you want to increase their scaling, let us know by submitting this form: [Upscale Request](https://support.spryker.com/s/hosting-change-requests/environment-upscaling). Because of contractual reasons, only customers can request these changes, not partners.
{% endinfo_block %}
diff --git a/docs/ca/dev/getting-started-with-cloud-administration.md b/docs/ca/dev/getting-started-with-cloud-administration.md
index d134941c2dc..03c4e7fce19 100644
--- a/docs/ca/dev/getting-started-with-cloud-administration.md
+++ b/docs/ca/dev/getting-started-with-cloud-administration.md
@@ -36,8 +36,8 @@ After the initial setup, the following is configured and available:
You can access your cloud environments via the following means:
* IAM account: provides access to the AWS Management Console. For instructions, see [Access AWS Management Console](/docs/ca/dev/access/access-the-aws-management-console.html).
-* SSH: provides access to internal services via [bastion host](https://docs.aws.amazon.com/quickstart/latest/linux-bastion/overview.html). For instructions, see [Connect to services via SSH](/docs/ca/dev/access/connect-to-services-via-ssh.html).
-* VPN: provides access to internal services via [bastion host](https://docs.aws.amazon.com/quickstart/latest/linux-bastion/overview.html). You receive these access details during the onboarding.
+* SSH: provides access to internal services via [bastion host](https://docs.aws.amazon.com/managedservices/latest/userguide/using-bastions.html). For instructions, see [Connect to services via SSH](/docs/ca/dev/access/connect-to-services-via-ssh.html).
+* VPN: provides access to internal services via [bastion host](https://docs.aws.amazon.com/managedservices/latest/userguide/using-bastions.html). You receive these access details during the onboarding.
* SFTP: provides access to the SFTP folder mounted inside the Jenkins container. You receive these access details during the onboarding.
@@ -56,7 +56,7 @@ The following CD pipelines are configured in [CodePipeline](https://docs.aws.ama
| --- | --- |
| DESTRUCTIVE | You can configure the installation stage of this pipeline in `config/install/destructive.yml`. |
| NORMAL | You can configure the installation stage of this pipeline in `config/install/production.yml`. |
-| Build | Compiles images and pushes them into the [Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html). Starts automatically when a new commit is detected. |
+| Build | Compiles images and pushes them into the [Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html). Starts automatically when a new commit's detected. |
| Rollout Scheduler | Deploys the scheduler. |
diff --git a/docs/ca/dev/monitoring-issues-and-informing-about-alerts.md b/docs/ca/dev/monitoring-issues-and-informing-about-alerts.md
index cfbfbb1be84..339494a7443 100644
--- a/docs/ca/dev/monitoring-issues-and-informing-about-alerts.md
+++ b/docs/ca/dev/monitoring-issues-and-informing-about-alerts.md
@@ -50,7 +50,7 @@ The following alerts are configured by default for all environments.
-### ElasticSearch
+### Elasticsearch
diff --git a/docs/ca/dev/multi-store-setups/multistore-setup-options.md b/docs/ca/dev/multi-store-setups/multistore-setup-options.md
index 410881695ba..ae7a2813bad 100644
--- a/docs/ca/dev/multi-store-setups/multistore-setup-options.md
+++ b/docs/ca/dev/multi-store-setups/multistore-setup-options.md
@@ -17,7 +17,7 @@ Keep in mind that the definition of a store can vary depending on the business u
## Assess whether your shop is fit for Spryker Multi-Store
-When planning multiple stores, it is crucial to determine whether your project supports the Spryker Multistore solution and assess whether it is necessary for your business needs.
+When planning multiple stores, it's crucial to determine whether your project supports the Spryker Multistore solution and assess whether it's necessary for your business needs.
The Spryker Multi-Store solution is designed to represent several business channels on a single platform. These channels include:
@@ -48,7 +48,7 @@ There are three types of setups you can choose from.
{% info_block infoBox "Stores grouping" %}
-When setting up multiple stores, we recommended to group stores that share the same processes and data to regional stores. For instance, if your DE and AT stores share the same database, it is best not to separate them but to have one regional store instead.
+When setting up multiple stores, we recommended to group stores that share the same processes and data to regional stores. For instance, if your DE and AT stores share the same database, it's best not to separate them but to have one regional store instead.
{% endinfo_block %}
@@ -98,6 +98,11 @@ The following table provides details on infrastructure for this setup:
### Setup 2: Isolated virtual database
+
+{% info_block warningBox "" %}
+If Dynamic Multistore is enabled, separate databases can be used only per region, not per store.
+{% endinfo_block %}
+
![setup-2](https://spryker.s3.eu-central-1.amazonaws.com/docs/cloud/spryker-cloud-commerce-os/multi-store-setups/setup-2.png)
This setup has the following characteristics:
@@ -157,20 +162,20 @@ This setup has the following characteristics:
- Separate database per account.
- Allows for different regions.
- Lets you use themes for a different visual look and feel.
-- Possibility of an isolated codebase for each store. In this case, it is possible to have fully independent development teams.
+- Possibility of an isolated codebase for each store. In this case, it's possible to have fully independent development teams.
- In the case of a shared codebase:
- Use of code buckets for store customization (logic).
- Centralized third-party integrations.
This setup is recommended for the following cases:
-- Your shops look completely different—not only from the design perspective but also from business logic and used features/modules due to completely separated code.
+- Your shops look completely different—not only from the design perspective but also from business logic and used features/modules because of completely separated code.
- Shop maintenance and development happen independently. You may have multiple teams working on different shops, having their own development workflow and release cycles.
-- Data management (products, customers, orders, etc.) is separated due to separate databases. Data sharing and synchronization is possible with the help of external systems.
+- Data management (products, customers, orders, etc.) is separated because of separate databases. Data sharing and synchronization is possible with the help of external systems.
In terms of infrastructure, this setup is the most flexible way of scaling and deploying your setups independently since all of the infrastructure parts are separate cloud resources:
- You can host single stores in different AWS regions. For example, you can host the US store in N. Virginia and the DE store—in Frankfurt.
-- Traffic distribution is _independent_ for every store* due to ALB+NLBs (ALB-->NLB-->Nginx-->PHP-FPM).
+- Traffic distribution is _independent_ for every store* because of ALB+NLBs (ALB-->NLB-->Nginx-->PHP-FPM).
{% info_block infoBox "Info" %}
diff --git a/docs/ca/dev/performance-testing-in-staging-enivronments.md b/docs/ca/dev/performance-testing-in-staging-enivronments.md
index 7e5999c9aa1..e8ec8fa6aa2 100644
--- a/docs/ca/dev/performance-testing-in-staging-enivronments.md
+++ b/docs/ca/dev/performance-testing-in-staging-enivronments.md
@@ -18,24 +18,24 @@ If you are unable to use real data for your load tests, you can use the [test da
Based on our experience, the [Load testing tool](https://github.com/spryker-sdk/load-testing) can greatly assist you in conducting more effective load tests.
-# Load testing tool for Spryker
+## Load testing tool for Spryker
To assist in performance testing, we have a [load testing tool](https://github.com/spryker-sdk/load-testing). The tool contains predefined test scenarios that are specific to Spryker. Test runs based on Gatling.io, an open-source tool. Web UI helps to manage runs and multiple target projects are supported simultaneously.
The tool can be used as a package integrated into the Spryker project or as a standalone package.
-## What is Gatling?
+### What is Gatling?
Gatling is a powerful performance testing tool that supports HTTP, WebSocket, Server-Sent-Events, and JMS. Gatling is built on top of Akka that enables thousands of virtual users on a single machine. Akka has a message-driven architecture, and this overrides the JVM limitation of handling many threads. Virtual users are not threads but messages.
Gatling is capable of creating an immense amount of traffic from a single node, which helps obtain the most precise information during the load testing.
-## Prerequisites
+### Prerequisites
- Java 8+
- Node 10.10+
-## Including the load testing tool into an environment
+### Including the load testing tool into an environment
The purpose of this guide is to show you how to integrate Spryker's load testing tool into your environment. While the instructions here will focus on setting this up with using one of Spryker’s many available demo shops, it can also be implemented into an on-going project.
@@ -57,7 +57,7 @@ git clone https://github.com/spryker-shop/b2c-demo-shop.git ./
git clone git@github.com:spryker/docker-sdk.git docker
```
-### Integrating Gatling
+#### Integrating Gatling
With the B2C Demo Shop and Docker SDK cloned, you will need to make a few changes to integrate Gatling into your project. These changes include requiring the load testing tool with composer as well as updating the [Router module](/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-yves.html) inside of Yves.
@@ -122,7 +122,7 @@ extensions:
...
```
-### Setting up the environment
+#### Setting up the environment
{% info_block infoBox %}
@@ -160,13 +160,13 @@ docker/sdk up --build --assets --data
You've set up your Spryker B2C Demo Shop and can now access your applications.
-### Data preparation
+#### Data preparation
With the integrations done and the environment set up, you will need to create and load the data fixtures. This is done by first generating the necessary fixtures before triggering a *publish* of all events and then running the *queue worker*. As this will be running tests for this data preparation step, this will need to be done in the [testing mode for the Docker SDK](/docs/dg/dev/sdks/the-docker-sdk/running-tests-with-the-docker-sdk.html).
These steps assume you are working from a local environment. If you are attempting to implement these changes to a production or staging environment, you will need to take separate steps to generate parity data between the load-testing tool and your cloud-based environment.
-#### Steps for using a cloud-hosted environment.
+##### Steps for using a cloud-hosted environment.
The Gatling test tool uses pre-seeded data which is used locally for both testing and generating the fixtures in the project's database. If you wish to test a production or a staging environment, there are several factors which need to be addressed.
@@ -178,7 +178,7 @@ The Gatling test tool uses pre-seeded data which is used locally for both testin
Data used for Gatling's load testing can be found in **/load-test-tool-dir/tests/_data**. Any data that you generate from your cloud-hosted environment will need to be stored here.
-##### Setting up for basic authentication.
+###### Setting up for basic authentication.
If your environment is set for `BASIC AUTH` authentication and requires a user name and password before the site can be loaded, Gatling needs additional configuration. Found within **/load-test-tool-dir/resources/scenarios/spryker/**, two files control the HTTP protocol which is used by each test within the same directory. `GlueProtocol.scala` and `YvesProtocol.scala` each have a value (`httpProtocol`) which needs an additional argument to account for this authentication mode.
@@ -195,7 +195,7 @@ val httpProtocol = http
**usernamehere** and **passwordhere** should match the username and password used for your environment's basic authentication, and not an account created within Spryker. This username and password are typically set up within your deploy file.
-##### Generating product data
+###### Generating product data
{% info_block errorBox %}
@@ -216,7 +216,7 @@ FROM `us-docker`.`spy_product_concrete_storage`;
This command parses through the JSON entry and extracts what we need. Once this information has been generated, it should be saved as `product_concrete.csv` and saved in the **/load-test-tool-dir/tests/_data** directory.
-##### Generating customer data
+###### Generating customer data
{% info_block errorBox %}
@@ -259,7 +259,7 @@ For each of these, the username is typically the email of the user that was crea
Once users have been created and access tokens generated, this information should be stored and formatted in `customer.csv` and saved in the **/load-test-tool-dir/tests/_data** directory. Make sure to put the correct information under the appropriate column name.
-#### Steps for using a local environment
+##### Steps for using a local environment
To start, entering testing mode with the following command:
@@ -289,7 +289,7 @@ console queue:worker:start -s
You should have the fixtures loaded into the databases and can now exit the CLI to install Gatling into the project.
-#### Alternative method to generate local fixtures.
+##### Alternative method to generate local fixtures.
Jenkins is the default scheduler which ships with Spryker. It is an automation service which helps to automate tasks within Spryker. If you would like an alternative way to generate fixtures for your local environment, Jenkins can be used to schedule the necessary tasks you need for the data preparation step.
@@ -334,13 +334,13 @@ APPLICATION_STORE="DE" COMMAND="$PHP_BIN vendor/bin/console queue:worker:start -
{% info_block infoBox %}
-While it is possible to change the Jenkins cronjobs found at **/config/Zed/cronjobs/jenkins.php**, please note that these entries require a scheduled time and setting this will cause those jobs to run until they have been disabled in the Jenkins web UI.
+While it's possible to change the Jenkins cronjobs found at **/config/Zed/cronjobs/jenkins.php**, please note that these entries require a scheduled time and setting this will cause those jobs to run until they have been disabled in the Jenkins web UI.
{% endinfo_block %}
You are now done and can move on to [Installing Gatling](#installing-gatling)!
-### Installing Gatling
+#### Installing Gatling
{% info_block infoBox %}
@@ -370,7 +370,7 @@ cd vendor/spryker-sdk/load-testing
After this step has been finished, you will be able to run the Web UI and tool to perform load testing for your project on the local level.
-#### Installing Gatling as a standalone package
+##### Installing Gatling as a standalone package
It is possible for you to run Gatling as a standalone package. Fixtures and data are still needed to be generated on the project level to determine what loads to send with each test. However, as the Spryker load testing tool utilizes NPM to run a localized server for the Web UI, you can do the following to install it:
@@ -389,7 +389,7 @@ cd load-testing
This should install Gatling with Spryker's available Web UI, making it ready for load testing.
-### Running Gatling
+#### Running Gatling
To get the Web UI of the Gatling tool, run:
@@ -432,7 +432,7 @@ Tests like **CartApi** and **GuestCartApi** use an older method of the `cart` en
{% endinfo_block %}
-## Using Gatling
+### Using Gatling
In the testing tool Web UI, you can do the following:
- Create, edit, and delete instances.
@@ -444,11 +444,11 @@ You can perform all these actions from the main page:
![screenshot](https://github.com/spryker-sdk/load-testing/raw/master/docs/images/main-page.png)
-### Managing instances
+#### Managing instances
You can create new instances and edit or delete the existing ones.
-#### Creating an instance
+##### Creating an instance
To create an instance:
@@ -462,7 +462,7 @@ To create an instance:
Now, the new instance should appear in the navigation bar in *INSTANCES* section.
-#### Editing an instance
+##### Editing an instance
For the already available instances, you can edit Yves URL and Glue URL. Instance names cannot be edited.
To edit an instance:
@@ -474,7 +474,7 @@ To edit an instance:
Now, the instance data is updated.
-#### Deleting an instance
+##### Deleting an instance
To delete an instance:
1. In the navigation bar, click **New instance**. The *Instance* page opens.
2. Click the X sign next to the instance you want to delete:
@@ -483,7 +483,7 @@ To delete an instance:
Your instance is now deleted.
-### Running tests
+#### Running tests
To run a new load test:
@@ -502,7 +502,7 @@ To run a new load test:
That's it - your test should run now. While it runs, you see a page where logs are generated. Once the time you specified in the Duration field from step 6 elapses, the test stops, and you can view the detailed test report.
-### Viewing the test reports
+#### Viewing the test reports
On the main page, you can check what tests are currently being run as well as view the detailed log for the completed tests.
@@ -521,7 +521,7 @@ To view the reports of the completed tests, on the main page, in the *Done* sect
-## Example test: Measuring the capacity
+### Example test: Measuring the capacity
Let's consider the example of measuring the capacity with the `AddToCustomerCart` or `AddToGuestCart` test.
@@ -541,7 +541,7 @@ For the *Steady probe* test type, the following is done:
- Checking that the response time is in acceptable boundaries. [< 400ms for 90% of requests]
![screenshot](https://github.com/spryker-sdk/load-testing/raw/master/docs/images/steady-probe.png)
-## Gatling Reports
+### Gatling Reports
Gatling reports are a valuable source of information to read the performance data by providing some details about requests and response timing.
@@ -556,18 +556,18 @@ There are the following report types in Gatling:
- Response time against Global RPS
-### Indicators
+#### Indicators
This chart shows how response times are distributed among the standard ranges.
The right panel shows the number of OK/KO requests.
![screenshot](https://github.com/spryker-sdk/load-testing/raw/master/docs/images/indicators.png)
-### Statistics
+#### Statistics
This table shows some standard statistics such as min, max, average, standard deviation, and percentiles globally and per request.
![screenshot](https://github.com/spryker-sdk/load-testing/raw/master/docs/images/statistics.png)
-### Active users among time
+#### Active users among time
This chart displays the active users during the simulation: total and per scenario.
@@ -581,27 +581,27 @@ It’s computed as:
```
![screenshot](https://github.com/spryker-sdk/load-testing/raw/master/docs/images/active-users-among-time.png)
-### Response time distribution
+#### Response time distribution
This chart displays the distribution of response times.
![screenshot](https://github.com/spryker-sdk/load-testing/raw/master/docs/images/response-time-distribution.png)
-### Response time percentiles over time (OK)
+#### Response time percentiles over time (OK)
This chart displays a variety of response time percentiles over time, but only for successful requests. As failed requests can end prematurely or be caused by timeouts, they would have a drastic effect on the computation for percentiles.
![screenshot](https://github.com/spryker-sdk/load-testing/raw/master/docs/images/response-time-percentiles-over-time-ok.png)
-### Number of requests per second
+#### Number of requests per second
This chart displays the number of requests sent per second overtime.
![screenshot](https://github.com/spryker-sdk/load-testing/raw/master/docs/images/number-of-requests-per-second.png)
-### Number of responses per second
+#### Number of responses per second
This chart displays the number of responses received per second overtime: total, successes, and failures.
![screenshot](https://github.com/spryker-sdk/load-testing/raw/master/docs/images/number-of-responses-per-second.png)
-### Response time against Global RPS
+#### Response time against Global RPS
This chart shows how the response time for the given request is distributed, depending on the overall number of requests at the same time.
![screenshot](https://github.com/spryker-sdk/load-testing/raw/master/docs/images/response-time-against-global-rps.png)
diff --git a/docs/ca/dev/preparation-for-going-live.md b/docs/ca/dev/preparation-for-going-live.md
index 486c66cd2f8..71adb91c296 100644
--- a/docs/ca/dev/preparation-for-going-live.md
+++ b/docs/ca/dev/preparation-for-going-live.md
@@ -159,7 +159,7 @@ Prepare a data migration plan. Include all the data.
Make sure you've addressed all the items from the following checklists:
- Implement the code freeze. We recommend having a code freeze at least two weeks before going live.
-- Double-check the go-live date. If any of the preceding tasks aren't complete, postpone your go-live or discuss with us how to complete them in time. DNS changes are especially sensitive to deadlines. Due to the way the DNS system works, any DNS changes take time to take effect.
+- Double-check the go-live date. If any of the preceding tasks aren't complete, postpone your go-live or discuss with us how to complete them in time. DNS changes are especially sensitive to deadlines. Because of the way the DNS system works, any DNS changes take time to take effect.
- Make sure that the rollback strategy is still valid. Check that you have everything you need to recover from an unforeseen issue with the newest version of the project you are deploying.
- Make sure that DNS is set up. For details on the DNS setup, see [Set up DNS](/docs/ca/dev/set-up-dns.html).
- Make sure that the third-party systems have been switched to the production mode:
diff --git a/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-a-third-party-dns-zone-provider.md b/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-a-third-party-dns-zone-provider.md
index 4e592f61b46..53d2a42ea48 100644
--- a/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-a-third-party-dns-zone-provider.md
+++ b/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-a-third-party-dns-zone-provider.md
@@ -67,7 +67,7 @@ groups:
{% info_block warningBox "Store configuration" %}
-`store:` must correspond to `groups:` and `region:`. For example, it is impossible to set a US store in the DE region.
+`store:` must correspond to `groups:` and `region:`. For example, it's impossible to set a US store in the DE region.
{% endinfo_block %}
diff --git a/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-route-53.md b/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-route-53.md
index 229635f8c2b..bb1833158c3 100644
--- a/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-route-53.md
+++ b/docs/ca/dev/set-up-a-custom-domain-name/set-up-a-custom-domain-name-with-route-53.md
@@ -68,7 +68,7 @@ groups:
{% info_block warningBox "Store configuration" %}
-`store:` must correspond to `groups:` and `region:`. For example, it is impossible to set a US store in the DE region.
+`store:` must correspond to `groups:` and `region:`. For example, it's impossible to set a US store in the DE region.
{% endinfo_block %}
diff --git a/docs/ca/dev/set-up-dns.md b/docs/ca/dev/set-up-dns.md
index e92a849f6f5..fa4edd70ce5 100644
--- a/docs/ca/dev/set-up-dns.md
+++ b/docs/ca/dev/set-up-dns.md
@@ -14,7 +14,7 @@ You normally add a CNAME record in your DNS Management for the domains you want
{% info_block infoBox "Info" %}
-This process can take a full week to complete due to DNS propagation and the terraform work that needs to be done. To avoid double work, ensure the endpoint selection is final and tested.
+This process can take a full week to complete because of DNS propagation and the terraform work that needs to be done. To avoid double work, ensure the endpoint selection is final and tested.
{% endinfo_block %}
diff --git a/docs/ca/dev/setting-up-a-custom-ssl-certificate.md b/docs/ca/dev/setting-up-a-custom-ssl-certificate.md
index a67fa755866..69ce6db25a9 100644
--- a/docs/ca/dev/setting-up-a-custom-ssl-certificate.md
+++ b/docs/ca/dev/setting-up-a-custom-ssl-certificate.md
@@ -17,7 +17,7 @@ By default, all the domain names (domains) are provided with generic SSLs, which
{% info_block infoBox "Third-party DNS zone provider" %}
-If the DNS zone of a domain name is hosted with a third-party provider, it is impossible to use the generic SSLs and manage custom SSLs in Spryker Cloud Commerce OS.
+If the DNS zone of a domain name is hosted with a third-party provider, it's impossible to use the generic SSLs and manage custom SSLs in Spryker Cloud Commerce OS.
{% endinfo_block %}
diff --git a/docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/deployment-fails-due-to-a-failed-docker-authentication.md b/docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/deployment-fails-due-to-a-failed-docker-authentication.md
index b0e8a1d07b8..fa3f4e374fe 100644
--- a/docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/deployment-fails-due-to-a-failed-docker-authentication.md
+++ b/docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/deployment-fails-due-to-a-failed-docker-authentication.md
@@ -1,5 +1,5 @@
---
-title: Deployment fails due to a failed docker authentication
+title: Deployment fails because of a failed docker authentication
description: Resolve Docker authentication errors in Spryker deployments with solutions to fix 'EOF' issues
template: troubleshooting-guide-template
last_updated: Oct 6, 2023
diff --git a/docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/troubleshooting-deployment-issues.md b/docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/troubleshooting-deployment-issues.md
index 21736fbbee8..c5338737ef1 100644
--- a/docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/troubleshooting-deployment-issues.md
+++ b/docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/troubleshooting-deployment-issues.md
@@ -14,5 +14,5 @@ This section contains solutions to common deployment issues.
Browse the deployment troubleshooting:
* [Assets, logs, or pipelines are not visible in AWS Management](/docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/assets-logs-or-pipelines-are-not-visible-in-aws-management-console.html)
-* [Deployment fails due to a failed Docker authentication](/docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/deployment-fails-due-to-a-failed-docker-authentication.html)
+* [Deployment fails because of a failed Docker authentication](/docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/deployment-fails-due-to-a-failed-docker-authentication.html)
* [Jenkins does not restart](/docs/ca/dev/troubleshooting/troubleshooting-deployment-issues/jenkins-does-not-restart.html)
diff --git a/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-403-error.md b/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-403-error.md
index 27dbd0f44ad..00295707d38 100644
--- a/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-403-error.md
+++ b/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-403-error.md
@@ -16,7 +16,7 @@ To check 403 errors via browser console, do the following:
## Checking the WAF rule that triggered the 403 error
-If you found a 403 status response code in the frontend logs or in the browser console, it is most likely that it had been triggered by a [WAF(web application firewall)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) rule. Knowing the rule that triggered the error will help you to understand the source of the issue.
+If you found a 403 status response code in the frontend logs or in the browser console, it's most likely that it had been triggered by a [WAF(web application firewall)](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) rule. Knowing the rule that triggered the error will help you to understand the source of the issue.
To check the WAF rule that triggered the error, do the following:
diff --git a/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-a-failed-deployment.md b/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-a-failed-deployment.md
index 03ab452b3cc..e3460a1244d 100644
--- a/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-a-failed-deployment.md
+++ b/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-a-failed-deployment.md
@@ -89,7 +89,7 @@ Alternatively, you can check the script of the step in the environment's deploy
![pre-deploy-file]
-In this example, the `scheduler:suspendddddddddddd` is misspelled, and it is the root cause of the issue.
+In this example, the `scheduler:suspendddddddddddd` is misspelled, and it's the root cause of the issue.
{% info_block infoBox "Debugging pre-deploy scripts" %}
diff --git a/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-an-unavailable-zed.md b/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-an-unavailable-zed.md
index c6b5c59f43d..b7e570d0492 100644
--- a/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-an-unavailable-zed.md
+++ b/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-an-unavailable-zed.md
@@ -8,7 +8,7 @@ redirect_from:
---
Zed didn't restart after a deployment or you can't access it.
-To troubleshoot this issue, you need to go through all the stages of information flow. The default information flow is: Front end > Gateway(optional) > Zed > ElastiCache, ElasticSearch, RMQ, and RDS.
+To troubleshoot this issue, you need to go through all the stages of information flow. The default information flow is: Front end > Gateway(optional) > Zed > ElastiCache, Elasticsearch, RMQ, and RDS.
![information flow diagram](https://spryker.s3.eu-central-1.amazonaws.com/cloud-docs/_includes/informatin-flow-diagram.png)
@@ -85,15 +85,15 @@ To check Redis system information via a CLI, do the following.
{% include checking-redis-system-information-via-a-cli.md %}
-## 6. Check ElasticSearch status
+## 6. Check Elasticsearch status
-Check ElasticSearch status via AWS Management Console:
+Check Elasticsearch status via AWS Management Console:
{% include checking-elasticsearch-status-via-aws-management-console.md %}
-## 7. Check ElasticSearch indices
+## 7. Check Elasticsearch indices
-To check ElasticSearch indices via a CLI, do the following.
+To check Elasticsearch indices via a CLI, do the following.
{% include checking-elasticsearch-indices-via-a-cli.md %}
diff --git a/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-unavailable-yves-or-glue.md b/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-unavailable-yves-or-glue.md
index aaa931c8394..e7416cf314c 100644
--- a/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-unavailable-yves-or-glue.md
+++ b/docs/ca/dev/troubleshooting/troubleshooting-tutorials/tutorial-troubleshooting-unavailable-yves-or-glue.md
@@ -1,6 +1,6 @@
---
title: Tutorial — Troubleshooting unavailable Yves or Glue
-description: Troubleshoot unavailable Yves or Glue in Spryker by checking logs, ECS services, Redis, and ElasticSearch to identify and resolve issues quickly.
+description: Troubleshoot unavailable Yves or Glue in Spryker by checking logs, ECS services, Redis, and Elasticsearch to identify and resolve issues quickly.
template: troubleshooting-guide-template
last_updated: Oct 6, 2023
redirect_from:
@@ -8,7 +8,7 @@ redirect_from:
---
Yves or Glue didn't restart after a deployment or you can't access it.
-To troubleshoot this issue, you need to go through all the stages of information flow. The default information flow is front end > Yves or Glue > ElastiCache, ElasticSearch, and Zed.
+To troubleshoot this issue, you need to go through all the stages of information flow. The default information flow is front end > Yves or Glue > ElastiCache, Elasticsearch, and Zed.
![information flow diagram](https://spryker.s3.eu-central-1.amazonaws.com/cloud-docs/_includes/informatin-flow-diagram.png)
@@ -43,14 +43,14 @@ Check Redis system information via a CLI as follows.
{% include checking-redis-system-information-via-a-cli.md %}
-## 6. Check ElasticSearch status
+## 6. Check Elasticsearch status
-Check ElasticSearch status via AWS Management Console:
+Check Elasticsearch status via AWS Management Console:
{% include checking-elasticsearch-status-via-aws-management-console.md %}
-## 7. Check ElasticSearch indices
+## 7. Check Elasticsearch indices
-Check ElasticSearch status via a CLI:
+Check Elasticsearch status via a CLI:
{% include checking-elasticsearch-indices-via-a-cli.md %}
diff --git a/docs/ca/devscu/developing-with-spryker-code-upgrader.md b/docs/ca/devscu/developing-with-spryker-code-upgrader.md
index 7769c8b8121..ac13a838e2b 100644
--- a/docs/ca/devscu/developing-with-spryker-code-upgrader.md
+++ b/docs/ca/devscu/developing-with-spryker-code-upgrader.md
@@ -8,7 +8,7 @@ redirect_from:
- /docs/scu/dev/spryker-code-upgrader-in-a-development-workflow.html
---
-Spryker Code Upgrader works best when it is strategically integrated into your development process. This document describes how to integrate the Upgrader into your scrum activities and Git flow to streamline and optimize the development workflow.
+Spryker Code Upgrader works best when it's strategically integrated into your development process. This document describes how to integrate the Upgrader into your scrum activities and Git flow to streamline and optimize the development workflow.
## Processing code upgrades with Scrum
diff --git a/docs/ca/devscu/prepare-a-project-for-spryker-code-upgrader.md b/docs/ca/devscu/prepare-a-project-for-spryker-code-upgrader.md
index 37bff777c0f..6e2126403d8 100644
--- a/docs/ca/devscu/prepare-a-project-for-spryker-code-upgrader.md
+++ b/docs/ca/devscu/prepare-a-project-for-spryker-code-upgrader.md
@@ -11,7 +11,7 @@ To start managing upgrades with Spryker Code Upgrader, fulfill the following pre
## Make your code compliant with upgradability guidelines
-Our [upgradability guidelines](/docs/scos/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/upgradability-guidelines.html) ensure your project stays upgradable. When an application is compliant with the guidelines, it can take minor and patch updates without breaking functionality, even if it is highly customized.
+Our [upgradability guidelines](/docs/scos/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/upgradability-guidelines.html) ensure your project stays upgradable. When an application is compliant with the guidelines, it can take minor and patch updates without breaking functionality, even if it's highly customized.
To check if your code is compliant with the guidelines, [run the evaluator tool](/docs/dg/dev/guidelines/keeping-a-project-upgradable/run-the-evaluator-tool.html).
diff --git a/docs/ca/devscu/troubleshooting/a-php-extension-is-missing-from-your-system.md b/docs/ca/devscu/troubleshooting/a-php-extension-is-missing-from-your-system.md
index f2eea6cbda6..3e56cc79029 100644
--- a/docs/ca/devscu/troubleshooting/a-php-extension-is-missing-from-your-system.md
+++ b/docs/ca/devscu/troubleshooting/a-php-extension-is-missing-from-your-system.md
@@ -70,7 +70,7 @@ Your requirements could not be resolved to an installable set of packages.
Problem 1
- - / requires ext- * -> it is missing from your system. Install or enable PHP\'s extension.
+ - / requires ext- * -> it's missing from your system. Install or enable PHP\'s extension.
You can also run `php --ini` in a terminal to see which files are used by PHP in CLI mode.
diff --git a/docs/dg/dev/acp/acp-security-assessment.md b/docs/dg/dev/acp/acp-security-assessment.md
index ef2b348c782..1c27c6a9fb2 100644
--- a/docs/dg/dev/acp/acp-security-assessment.md
+++ b/docs/dg/dev/acp/acp-security-assessment.md
@@ -15,7 +15,7 @@ This document outlines the threat modeling and security assessment requirements
## ACP security
-In the context of listings on the ACP apps catalog, security is a measure of trust. For our enterprise customers to trust us with their data, it is important that every app they use with SCCOS offers a satisfactory level of security.
+In the context of listings on the ACP apps catalog, security is a measure of trust. For our enterprise customers to trust us with their data, it's important that every app they use with SCCOS offers a satisfactory level of security.
## Security responsibility
@@ -158,7 +158,7 @@ The diagram below demonstrates the security assessment procedure:
## Review results
- As soon as a review is cleared, an app is marked as approved, and a badge is displayed on the marketplace listing.
-- During subsequent full reviews (typically annually), the app will retain its badge while it is in the test cycles. Nevertheless, in the following scenarios, the badge will be removed, and customers notified of it:
+- During subsequent full reviews (typically annually), the app will retain its badge while it's in the test cycles. Nevertheless, in the following scenarios, the badge will be removed, and customers notified of it:
- The app developer fails to respond to repeated requests for annual re-assessments.
- During the re-assessment, the app fails repeatedly (about 5 times), and the app developer isn’t able to fix the reported issues.
- At this time, customers can choose to look at an alternate application or work with the developer to remedy the issues.
diff --git a/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/apis-and-flows-for-payment-service-providers.md b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/apis-and-flows-for-payment-service-providers.md
new file mode 100644
index 00000000000..04ece96ab9b
--- /dev/null
+++ b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/apis-and-flows-for-payment-service-providers.md
@@ -0,0 +1,17 @@
+---
+title: APIs and flows for payment service providers
+description: Overview of PSP APIs
+last_updated: Sep 27, 2024
+template: concept-topic-template
+---
+
+This section provides an overview of Payment Service Provider (PSP) APIs. All PSPs use both synchronous and asynchronous APIs.
+
+For detailed information on PSP APIs, see the following docs:
+
+- [Configure and disconnect flows for payment service providers](/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/configure-and-disconnect-flows-for-payment-service-providers.html)
+- [Headless express checkout payment flow for payment service providers](/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-express-checkout-payment-flow-for-payment-service-providers.html)
+- [Headless payment flow for payment service providers](/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-payment-flow-for-payment-service-providers.html)
+- [Hosted payment page flow for payment service providers](/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/hosted-payment-page-flow-for-payment-service-providers.html)
+- [OMS payment flow for payment service providers](/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/oms-payment-flow-for-payment-service-providers.html)
+- [Synchronous API for payment service providers](/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/synchronous-api-for-payment-service-providers.html)
diff --git a/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/asynchronous-api-for-payment-service-providers.md b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/asynchronous-api-for-payment-service-providers.md
new file mode 100644
index 00000000000..1adff8456f1
--- /dev/null
+++ b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/asynchronous-api-for-payment-service-providers.md
@@ -0,0 +1,44 @@
+---
+title: Asynchronous API for payment service providers
+description: Overview of PSP Asynchronous API
+last_updated: Now 08, 2024
+template: concept-topic-template
+related:
+ - title: Configure and disconnect flows for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/configure-and-disconnect-flows-for-payment-service-providers.html
+ - title: Headless express checkout payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-express-checkout-payment-flow-for-payment-service-providers.html
+ - title: Headless payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-payment-flow-for-payment-service-providers.html
+ - title: Hosted payment page flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/hosted-payment-page-flow-for-payment-service-providers.html
+ - title: OMS payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/oms-payment-flow-for-payment-service-providers.html
+ - title: Synchronous API for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/synchronous-api-for-payment-service-providers.html
+---
+
+All PSP integrations are based on a asynchronous API. The asynchronous API is used to process payments and refunds. The following asynchronous messages are used:
+
+Sent from the app:
+* `AddPaymentMethod`: A new payment method is added.
+* `UpdatePaymentMethod`: A payment method is updated.
+* `DeletePaymentMethod`: A payment method is deleted.
+* `PaymentAuthorized`: A payment is authorized.
+* `PaymentAuthorizationFailed`: Payment authorization fails.
+* `PaymentCaptured`: Payment is captured.
+* `PaymentCaptureFailed`: Payment capture fails.
+* `PaymentRefunded`: A payment is refunded.
+* `PaymentRefundFailed`: Payment refund fails.
+* `PaymentCanceled`: A payment is canceled.
+* `PaymentCancellationFailed`: Payment cancellation fails.
+* `PaymentCreated`: A payment is created.
+* `PaymentUpdated`: A payment is updated.
+* `ReadyForMerchantAppOnboarding`: App is ready to onboard merchants.
+* `MerchantAppOnboardingStatusChanged`: Merchant app onboarding status changes.
+* `AppConfigUpdated`: App configuration is updated.
+
+Sent from Spryker:
+* `CancelPayment`: Initiates payment cancellation.
+* `CapturePayment`: Initiates payment capture.
+* `RefundPayment`: Initiates payment refund.
diff --git a/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/configure-and-disconnect-flows-for-payment-service-providers.md b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/configure-and-disconnect-flows-for-payment-service-providers.md
new file mode 100644
index 00000000000..57d71c8c9d2
--- /dev/null
+++ b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/configure-and-disconnect-flows-for-payment-service-providers.md
@@ -0,0 +1,33 @@
+---
+title: Configure and disconnect flows for payment service providers
+description: Overview of configuration and disconnect flow
+last_updated: Now 08, 2024
+template: concept-topic-template
+related:
+ - title: Asynchronous API for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/asynchronous-api-for-payment-service-providers.html
+ - title: Headless express checkout payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-express-checkout-payment-flow-for-payment-service-providers.html
+ - title: Headless payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-payment-flow-for-payment-service-providers.html
+ - title: Hosted payment page flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/hosted-payment-page-flow-for-payment-service-providers.html
+ - title: OMS payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/oms-payment-flow-for-payment-service-providers.html
+ - title: Synchronous API for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/synchronous-api-for-payment-service-providers.html
+---
+
+The following diagram explains the configuration and disconnect flows for a payment app.
+
+![configure-and-disconnect-flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.md/configure-and-disconnect-flows.png)
+
+Optional messages:
+* `AddPaymentMethod`
+* `UpdatePaymentMethod`
+* `DeletePaymentMethod`
+* `ReadyForMerchantAppOnboarding`
+
+The Payment Method related messages are used to manage payment methods in Spryker. These messages are sent only when a payment method configuration changes or when the list of available payment methods changes.
+
+The `ReadyForMerchantAppOnboarding` message is used to inform Spryker that the app is ready to onboard merchants; used only for marketplace projects.
diff --git a/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-express-checkout-payment-flow-for-payment-service-providers.md b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-express-checkout-payment-flow-for-payment-service-providers.md
new file mode 100644
index 00000000000..2e60c61618b
--- /dev/null
+++ b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-express-checkout-payment-flow-for-payment-service-providers.md
@@ -0,0 +1,112 @@
+---
+title: Headless express checkout payment flow for payment service providers
+description: Overview of the Headless payment flow with express-checkout payment methods
+last_updated: Now 08, 2024
+template: concept-topic-template
+related:
+ - title: Asynchronous API for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/asynchronous-api-for-payment-service-providers.html
+ - title: Configure and disconnect flows for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/configure-and-disconnect-flows-for-payment-service-providers.html
+ - title: Headless payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-payment-flow-for-payment-service-providers.html
+ - title: Hosted payment page flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/hosted-payment-page-flow-for-payment-service-providers.html
+ - title: OMS payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/oms-payment-flow-for-payment-service-providers.html
+ - title: Synchronous API for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/synchronous-api-for-payment-service-providers.html
+---
+
+The following diagram explains the flow of a headless payment page with an express-checkout payment method based on Glue API.
+
+![headless-express-checkout-flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.md/headless-express-checkout-flow.png)
+
+The customer skips most of the default checkout steps, such as the addresses step, and goes directly to the payment step. The payment is created before the order is persisted. The data a customer usually enters during a regualr checkout is retrieved via the `/payment-customer` Glue API call. The returned data can then be used on Spryker's side to update customer data like addresses.
+Here is an example request for the PayOne PayPal Express payment method used by a guest or authorized customer to retrieve user data such as addresses and other information from the PSP:
+
+`https://glue.mysprykershop.com/payment-customers`
+
+
+ Request example
+
+```json
+{
+ "data": {
+ "type": "payment-customers",
+ "attributes": {
+ "payment": {
+ "paymentMethodName": "paypal-express",
+ "paymentProviderName": "payone"
+ },
+ "customerPaymentServiceProviderData": {
+ "orderId": "order-id",
+ "workorderid": "workorder-id",
+ "transactionId": "transaction-id",
+ "token": "token",
+ "currency": "EUR",
+ "idCart": "d79a9c31-ed3d-57f5-958b-498e6b862ab3"
+ }
+ }
+ }
+}
+```
+
+
+
+
+ Response example
+
+```json
+{
+ "type": "payment-customers",
+ "id": null,
+ "attributes": {
+ "customer": {
+ "salutation": "n/a",
+ "firstName": "Spryker",
+ "lastName": "Systems",
+ "email": "eco-test+1@spryker.com",
+ "phone": "7886914965",
+ "company": null,
+ "billingAddress": {
+ "salutation": "n/a",
+ "firstName": "Eco",
+ "lastName": "Test",
+ "address1": "Julie-Wolfthorn-Strasse",
+ "address2": "1",
+ "address3": null,
+ "zipCode": "10115",
+ "city": "Berlin",
+ "country": "DE",
+ "iso2Code": "DE",
+ "company": null,
+ "phone": "7886914965",
+ "isDefaultShipping": null,
+ "isDefaultBilling": null
+ },
+ "shippingAddress": {
+ "salutation": "n/a",
+ "firstName": "Eco",
+ "lastName": "Test",
+ "address1": "Julie-Wolfthorn-Strasse",
+ "address2": "1",
+ "address3": null,
+ "zipCode": "10115",
+ "city": "Berlin",
+ "country": "DE",
+ "iso2Code": "DE",
+ "company": null,
+ "phone": "7886914965",
+ "isDefaultShipping": null,
+ "isDefaultBilling": null
+ }
+ }
+ },
+ "links": {
+ "self": "https://glue.de.aop-suite-testing.demo-spryker.com/payment-customers"
+ }
+}
+```
+
+
diff --git a/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-payment-flow-for-payment-service-providers.md b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-payment-flow-for-payment-service-providers.md
new file mode 100644
index 00000000000..869158a9ec9
--- /dev/null
+++ b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-payment-flow-for-payment-service-providers.md
@@ -0,0 +1,27 @@
+---
+title: Headless payment flow for payment service providers
+description: Overview of the Headless payment flow
+last_updated: Now 08, 2024
+template: concept-topic-template
+related:
+ - title: Asynchronous API for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/asynchronous-api-for-payment-service-providers.html
+ - title: Configure and disconnect flows for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/configure-and-disconnect-flows-for-payment-service-providers.html
+ - title: Headless express checkout payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-express-checkout-payment-flow-for-payment-service-providers.html
+ - title: Headless payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-payment-flow-for-payment-service-providers.html
+ - title: Hosted payment page flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/hosted-payment-page-flow-for-payment-service-providers.html
+ - title: OMS payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/oms-payment-flow-for-payment-service-providers.html
+ - title: Synchronous API for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/synchronous-api-for-payment-service-providers.html
+---
+
+The following diagram explains the flow of a headless payment page based on Glue API.
+
+![headless-payment-flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.md/headless-payment-flow.png)
+
+`CancelPreOrderPayment` is an optional element. It's used to cancel a payment that had been created before an order was persisted. This can happen when a customer clicks cancel or when a headless implementation requires a cancellation.
diff --git a/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/hosted-payment-page-flow-for-payment-service-providers.md b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/hosted-payment-page-flow-for-payment-service-providers.md
new file mode 100644
index 00000000000..de1e714bca4
--- /dev/null
+++ b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/hosted-payment-page-flow-for-payment-service-providers.md
@@ -0,0 +1,23 @@
+---
+title: Hosted payment page flow for payment service providers
+description: Overview of the Hosted payment page flow
+last_updated: Now 08, 2024
+template: concept-topic-template
+related:
+ - title: Asynchronous API for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/asynchronous-api-for-payment-service-providers.html
+ - title: Configure and disconnect flows for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/configure-and-disconnect-flows-for-payment-service-providers.html
+ - title: Headless express checkout payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-express-checkout-payment-flow-for-payment-service-providers.html
+ - title: Headless payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-payment-flow-for-payment-service-providers.html
+ - title: OMS payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/oms-payment-flow-for-payment-service-providers.html
+ - title: Synchronous API for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/synchronous-api-for-payment-service-providers.html
+---
+
+The following diagram explains the hosted payment page flow.
+
+![hosted-payment-page-flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.md/hosted-payment-page-flow.png)
diff --git a/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/oms-payment-flow-for-payment-service-providers.md b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/oms-payment-flow-for-payment-service-providers.md
new file mode 100644
index 00000000000..09efc6eb1c9
--- /dev/null
+++ b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/oms-payment-flow-for-payment-service-providers.md
@@ -0,0 +1,28 @@
+---
+title: OMS payment flow for payment service providers
+description: Overview of POMS payment flow
+last_updated: Now 08, 2024
+template: concept-topic-template
+related:
+ - title: Asynchronous API for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/asynchronous-api-for-payment-service-providers.html
+ - title: Configure and disconnect flows for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/configure-and-disconnect-flows-for-payment-service-providers.html
+ - title: Headless express checkout payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-express-checkout-payment-flow-for-payment-service-providers.html
+ - title: Headless payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-payment-flow-for-payment-service-providers.html
+ - title: Hosted payment page flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/hosted-payment-page-flow-for-payment-service-providers.html
+ - title: Synchronous API for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/synchronous-api-for-payment-service-providers.html
+---
+
+The following diagram shows the flow of an order in the OMS with an app.
+
+![oms-payment-flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.md/oms-payment-flow.png)
+
+Optional elements:
+* `/payments/transfers` transfers request: used only in marketplaces.
+* `CancelPayment` message: used only when a payment needs to be canceled.
+* `RefundPayment` message: used only when the refund process is triggered for one or more order items.
diff --git a/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/synchronous-api-for-payment-service-providers.md b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/synchronous-api-for-payment-service-providers.md
new file mode 100644
index 00000000000..c84e8da9c09
--- /dev/null
+++ b/docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/synchronous-api-for-payment-service-providers.md
@@ -0,0 +1,32 @@
+---
+title: Synchronous API for payment service providers
+description: Overview of Synchronous API endpoints
+last_updated: Now 08, 2024
+template: concept-topic-template
+related:
+ - title: Asynchronous API for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/asynchronous-api-for-payment-service-providers.html
+ - title: Configure and disconnect flows for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/configure-and-disconnect-flows-for-payment-service-providers.html
+ - title: Headless express checkout payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-express-checkout-payment-flow-for-payment-service-providers.html
+ - title: Headless payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/headless-payment-flow-for-payment-service-providers.html
+ - title: Hosted payment page flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/hosted-payment-page-flow-for-payment-service-providers.html
+ - title: OMS payment flow for payment service providers
+ link: docs/dg/dev/acp/apis-and-flows-for-payment-service-providers/oms-payment-flow-for-payment-service-providers.html
+---
+
+All PSP integrations are based on a synchronous API. A synchronous API is used to process payments and transfers to merchants. The following endpoints are used:
+
+* `/configure`: Used from the ACP app catalog to configure an app.
+* `/disconnect`: Used from the ACP app catalog to disconnect an app.
+* `/initialize-payment`: Used from the Spryker backend after an order was created and before the hosted payment page is shown to the customer. Initializes the payment in the PSP app, and the PSP app returns the URL to the hosted payment page.
+* `/payments`: Glue API endpoint to initialize a payment.
+* `/payment-cancellations`: Glue API endpoint to cancel a previously created payment.
+* `/confirm-pre-order-payment`: Used from the Spryker backend after an order was created using a headless approach where the payment gets created before the order persists. This connects a previously created (preOrder) payment on the app side with the order on the Zed side.
+* `/cancel-pre-order-payment`: Used from the Glue API application in a headless approach when a customer clicks cancel or in case the headless implementation requires a cancellation. This cancels the payment on the PSP side.
+* `/payments/transfers`: Used from the Back Office or OMS with the app being used in a marketplace. This initiates a money transfer from the marketplace to the merchant.
+* `/webhooks`: Used from external applications to send requests to an app.
+* `/webhooks/test`: Used from external applications in test mode to send requests to an app.
diff --git a/docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.md b/docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.md
deleted file mode 100644
index ae594fbf293..00000000000
--- a/docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.md
+++ /dev/null
@@ -1,89 +0,0 @@
----
-title: APIs and overview diagrams for payment service providers
-description: Overview of PSP APIs
-last_updated: Sep 27, 2024
-template: concept-topic-template
-related:
- - title: Stripe
- link: docs/pbc/all/payment-service-provider/page.version/base-shop/third-party-integrations/stripe/stripe.html
----
-
-This document provides an overview of Payment Service Provider (PSP) APIs. All PSPs use both synchronous and asynchronous APIs.
-
-The following diagram explains the configuration and disconnect flows for a payment app.
-
-![configure-and-disconnect-flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.md/configure-and-disconnect-flows.png)
-
-The following messages are optional:
-* `AddPaymentMethod`
-* `UpdatePaymentMethod`
-* `DeletePaymentMethod`
-* `ReadyForMerchantAppOnboarding`
-
-The Payment Method related messages are used to manage payment methods in Spryker. These messages are sent only when a payment method configuration changes or when the list of available payment methods changes.
-
-The `ReadyForMerchantAppOnboarding` message is used to inform Spryker that the app is ready to onboard merchants; used only for marketplace projects.
-
-The following diagram shows the flow of an order in the OMS together with an app.
-
-![oms-payment-flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.md/oms-payment-flow.png)
-
-Optional elements:
-* `/payments/transfers` transfers request: used only in marketplaces.
-* `CancelPayment` message: used only when a payment needs to be canceled.
-* `RefundPayment` message: used only when the refund process is triggered for one or more order items.
-
-The following diagram explains the hosted payment page flow.
-
-![hosted-payment-page-flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.md/hosted-payment-page-flow.png)
-
-The following diagram explains the flow of a headless payment page based on Glue API.
-
-![headless-payment-flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/dg/dev/acp/apis-and-overview-diagrams-for-payment-service-providers.md/headless-payment-flow.png)
-
-`CancelPreOrderPayment` is an optional element. It's used to cancel a payment that had been created before an order was persisted. This can happen when a customer clicks cancel or when the headless implementation requires a cancellation.
-
-For information about endpoints and messages, see the following sections.
-
-## Asynchronous API
-
-All PSP integrations are based on a asynchronous API. The asynchronous API is used to process payments and refunds. The following asynchronous messages are used:
-
-Sent from the app:
-* `AddPaymentMethod`: A new payment method is added.
-* `UpdatePaymentMethod`: A payment method is updated.
-* `DeletePaymentMethod`: A payment method is deleted.
-* `PaymentAuthorized`: A payment is authorized.
-* `PaymentAuthorizationFailed`: Payment authorization fails.
-* `PaymentCaptured`: Payment is captured.
-* `PaymentCaptureFailed`: Payment capture fails.
-* `PaymentRefunded`: A payment is refunded.
-* `PaymentRefundFailed`: Payment refund fails.
-* `PaymentCanceled`: A payment is canceled.
-* `PaymentCancellationFailed`: Payment cancellation fails.
-* `PaymentCreated`: A payment is created.
-* `PaymentUpdated`: A payment is updated.
-* `ReadyForMerchantAppOnboarding`: App is ready to onboard merchants.
-* `MerchantAppOnboardingStatusChanged`: Merchant app onboarding status changes.
-* `AppConfigUpdated`: App configuration is updated.
-
-Sent from Spryker:
-* `CancelPayment`: Initiates payment cancellation.
-* `CapturePayment`: Initiates payment capture.
-* `RefundPayment`: Initiates payment refund.
-
-
-## Synchronous API
-
-All PSP integrations are based on a synchronous API. A synchronous API is used to process payments and refunds. The following endpoints are used:
-
-* `/configure`: Used from the ACP app catalog to configure an app.
-* `/disconnect`: Used from the ACP app catalog to disconnect an app.
-* `/initialize-payment`: Used from the Spryker backend after an order was created and before the hosted payment page is shown to the customer. Initialize the payment in the PSP app, and the PSP app returns the URL to the hosted payment page.
-* `/payments`: Glue API endpoint to initialize a payment.
-* `/payment-cancellations`: Glue API endpoint to cancel a previously created payment.
-* `/confirm-pre-order-payment`: Used from the Spryker backend after an order was created using a headless approach where the payment gets created before the order persists. This connects a previously created (preOrder) payment on the app side with the order on the Zed side.
-* `/cancel-pre-order-payment`: Used from the Glue API application in a headless approach when a customer clicks cancel or in case the headless implementation requires a cancellation. This cancels the payment on the PSP side.
-* `/payments/transfers`: Used from the Back Office or OMS with the app being used in a marketplace. This initiates the transfer of money from the marketplace to the merchant.
-* `/webhooks`: Used from external applications to send requests to an app.
-* `/webhooks/test`: Used from external applications in test mode to send requests to an app.
diff --git a/docs/dg/dev/architecture/architectural-convention.md b/docs/dg/dev/architecture/architectural-convention.md
index f7ac8669040..875273f66e8 100644
--- a/docs/dg/dev/architecture/architectural-convention.md
+++ b/docs/dg/dev/architecture/architectural-convention.md
@@ -333,7 +333,7 @@ Used components:
The Service application layer is a multipurpose library that's used across various application layers, such as Yves, Client, Glue, or Zed.
-A service primarily consists of reusable lightweight stateless business logic components. Due to its deployment across all applications, a service is constrained to accessing data providers that are available universally. For example, the backend database is not accessible from Storefront applications by default.
+A service primarily consists of reusable lightweight stateless business logic components. Because of its deployment across all applications, a service is constrained to accessing data providers that are available universally. For example, the backend database is not accessible from Storefront applications by default.
```text
[Organization]
@@ -2218,7 +2218,7 @@ No general conventions.
#### Guidelines
- Operations on single items in plugin stack methods is not feasible, except for the following reasons:
- - it is strictly and inevitably a single-item flow.
+ - it's strictly and inevitably a single-item flow.
- the items go in FIFO order and there is no other way to use a collection instead.
- Plugin interface class specification should explain:
- how the [Plugins](#plugin) will be used,
diff --git a/docs/dg/dev/architecture/conceptual-overview.md b/docs/dg/dev/architecture/conceptual-overview.md
index bc86c039bff..f92c7c63781 100644
--- a/docs/dg/dev/architecture/conceptual-overview.md
+++ b/docs/dg/dev/architecture/conceptual-overview.md
@@ -53,7 +53,7 @@ Along with the default frontend app that is provided out of the box, you can hav
The application separation brings three main benefits:
-1. *Performance*. A frontend applications in Spryker uses a data storage separated from the backend one. It uses a blazing fast key-value storage while the backend uses a relational database. With this separation, it is way faster than using the traditional way of sharing one relational database for both applications.
+1. *Performance*. A frontend applications in Spryker uses a data storage separated from the backend one. It uses a blazing fast key-value storage while the backend uses a relational database. With this separation, it's way faster than using the traditional way of sharing one relational database for both applications.
2. *Scalability*. As frontends in Spryker have their own applications, storages, and deployments, scalability becomes easily achievable and given by the architecture. Spryker can be easily scaled out horizontally by simply just adding more instances with more storages without affecting the backend application and logic.
3. *Security*. Having two applications, accessing the backend relational database becomes a harder challenge for cyber attacks. The backend application also is usually hidden behind a firewall making the Commerce OS even more secured for different e-commerce applications.
diff --git a/docs/dg/dev/architecture/module-api/semantic-versioning-major-vs.-minor-vs.-patch-release.md b/docs/dg/dev/architecture/module-api/semantic-versioning-major-vs.-minor-vs.-patch-release.md
index 5eb2001d008..f51af415003 100644
--- a/docs/dg/dev/architecture/module-api/semantic-versioning-major-vs.-minor-vs.-patch-release.md
+++ b/docs/dg/dev/architecture/module-api/semantic-versioning-major-vs.-minor-vs.-patch-release.md
@@ -24,7 +24,7 @@ A pull request can ship a new feature, bug fixes, and improvements to existing f
## What is a Major release?
-When we make a change to the [external API of a module](/docs/dg/dev/architecture/module-api/declaration-of-module-apis-public-and-private.html), it is a major release. This includes changes to the internal contract. Even when there is no change in a facade method, there can be a change in the behavior so that the contract (~ expected behavior) changes. Please obey the constraints for major releases.
+When we make a change to the [external API of a module](/docs/dg/dev/architecture/module-api/declaration-of-module-apis-public-and-private.html), it's a major release. This includes changes to the internal contract. Even when there is no change in a facade method, there can be a change in the behavior so that the contract (~ expected behavior) changes. Please obey the constraints for major releases.
Our customers need to change their `composer.json` file to get major versions of modules.
@@ -34,7 +34,7 @@ We have two types of major releases:
## What is a Minor release?
-A release is *minor* when the internal API is changed. For example, when the signature of internal models or constructors is changed, or classes are renamed. Actually, it is anything that can break extensions using inheritance or composition on a project level.
+A release is *minor* when the internal API is changed. For example, when the signature of internal models or constructors is changed, or classes are renamed. Actually, it's anything that can break extensions using inheritance or composition on a project level.
Our customers get all new minor releases automatically during composer update if they use the _^_ (caret) symbol in `composer.json`—for example, `"spryker/category": "^4.1.2"`. We recommend using the _~_ (tilde) symbol for all modules that have been extended at the project level to make sure that nothing breaks after a release—for example, `"spryker/category": "~4.1.0"`. For mode details about how you can easily detect _^_ in the extended modules and update them with _~_, see [Using ~ Composer Constraint for Customized Modules](/docs/dg/dev/architecture/module-api/use-composer-constraint-for-customized-modules.html)
diff --git a/docs/dg/dev/architecture/programming-concepts.md b/docs/dg/dev/architecture/programming-concepts.md
index e37057c6869..867979e0b4a 100644
--- a/docs/dg/dev/architecture/programming-concepts.md
+++ b/docs/dg/dev/architecture/programming-concepts.md
@@ -24,7 +24,7 @@ Having covered the main architectural concepts of the Spryker Commerce OS, front
Spryker *Facades* use the [Facade design pattern](https://en.wikipedia.org/wiki/Facade_pattern). They hide all the business logic of a module behind them and give a very simple and straightforward interface. Thus, the main API of a module is its Facade. When you want to find out what a module does, simply check its Facade interface.
-Spryker's Facades work as delegators, so they do not have any business logic in them. They delegate to the right model in order to handle the needed business logic. There is only one Facade for each module, and it is located in the Business layer.
+Spryker's Facades work as delegators, so they do not have any business logic in them. They delegate to the right model in order to handle the needed business logic. There is only one Facade for each module, and it's located in the Business layer.
## Factory
@@ -32,7 +32,7 @@ Spryker *Factories* follow the [Factory method pattern](https://en.wikipedia.org
To isolate objects between the software layers in Spryker, every software layer in a module has its own Factory. The only exception is that the Presentation layer does not have objects, only templates. So, there are Persistence Factories, Business Factories, and Communication Factories.
-Glue, Client, and Service application layers have their own Factories as well. Yves can have a Factory when needed. However, it is not enforced by the Spryker architecture as, in many cases, it is not needed for the frontend presentation logic.
+Glue, Client, and Service application layers have their own Factories as well. Yves can have a Factory when needed. However, it's not enforced by the Spryker architecture as, in many cases, it's not needed for the frontend presentation logic.
## Query Container
@@ -64,7 +64,7 @@ To manage data transfer between the frontend and the Commerce OS applications an
Transfer Objects are defined as XML files. Every module can define its own Transfer Objects or extend Transfer Objects from other modules when a dependency to that data is needed. The XML files are merged and transformed into auto-generated PHP objects.
-Transfer Objects are a great way to represent data contracts between the Commerce OS and frontend applications. It also represents data contracts between different modules. When any data is needed from a module, it is clear what structure the data has and how to properly use it.
+Transfer Objects are a great way to represent data contracts between the Commerce OS and frontend applications. It also represents data contracts between different modules. When any data is needed from a module, it's clear what structure the data has and how to properly use it.
As both the Commerce OS and the frontend application need to know about the structure of the Transfer Objects, they are located on the Shared application layer. Every module can have one or more Transfer Objects.
diff --git a/docs/dg/dev/architecture/technology-stack.md b/docs/dg/dev/architecture/technology-stack.md
index a7c6792ba5f..e13b21f80cf 100644
--- a/docs/dg/dev/architecture/technology-stack.md
+++ b/docs/dg/dev/architecture/technology-stack.md
@@ -24,7 +24,7 @@ Spryker uses a set of well-known tools:
* *Redis*. Redis is the most popular key-value database; the name is an abbreviation for Remote Dictionary Server. In Spryker it's used as a client-side data source for localized content. The Redis key-value database avoids the necessity of making queries to the SQL database, which can come with a high cost. The data stored in Redis is kept in sync with the data stored in the SQL database through specialized cronjobs. Redis supports replication, so it's a solution that enables scalability.
* *Elasticsearch*. Elasticsearch is a distributed search engine that offers an easy-to-configure and easy-to-integrate solution for making searches fast. The relevant search data is stored in dedicated storage, so is similar to using Redis storage; it avoids making a costly query to the SQL database. The data stored in Elasticsearch is updated through cronjobs.
-* *Symfony*. Symfony is the leading PHP framework for creating MVC web applications. Spryker implements the model-view-controller design pattern with Symfony. MVC design pattern aims to separate the business logic from the view, making the source code easier to understand and maintain due to this separation.
+* *Symfony*. Symfony is the leading PHP framework for creating MVC web applications. Spryker implements the model-view-controller design pattern with Symfony. MVC design pattern aims to separate the business logic from the view, making the source code easier to understand and maintain because of this separation.
* *Twig*. It is a fast and modern PHP templating engine.
* *Propel2*. It is an ORM library for PHP, offering an object-relational mapping toolkit. It's part of the Symfony framework. Propel's principal function is to provide the mapping between database tables and PHP classes. Propel includes a source code generator for creating PHP classes based on the data model definition given through an XML file. The data model definition is independent of the database used, so Spryker provides a single interface that enables access to different database management systems.
* *Jenkins*. Cronjobs can be easily configured in the jobs configuration file.
diff --git a/docs/dg/dev/architecture/tutorial-architectural-walkthrough.md b/docs/dg/dev/architecture/tutorial-architectural-walkthrough.md
index 1793de87da6..b2b1df00c68 100644
--- a/docs/dg/dev/architecture/tutorial-architectural-walkthrough.md
+++ b/docs/dg/dev/architecture/tutorial-architectural-walkthrough.md
@@ -415,9 +415,9 @@ class HelloSprykerDependencyProvider extends AbstractDependencyProvider
*/
protected function addZedRequestClient(Container $container)
{
- $container[static::CLIENT_ZED_REQUEST] = function (Container $container) {
+ $container->set(static::CLIENT_ZED_REQUEST, function (Container $container) {
return $container->getLocator()->zedRequest()->client();
- };
+ });
return $container;
}
diff --git a/docs/dg/dev/backend-development/client/client.md b/docs/dg/dev/backend-development/client/client.md
index b5643c9f49c..faba2a659b4 100644
--- a/docs/dg/dev/backend-development/client/client.md
+++ b/docs/dg/dev/backend-development/client/client.md
@@ -28,7 +28,7 @@ End customers interact only with the frontend application. The frontend applicat
The _client's_ job is to connect the frontend application to all of the surrounding resources needed for the frontend application to work. These resources include the Commerce OS, Storage, and Search. It also contains some other resources like Session and Queues.
-For each of these resources, there is a client. So, it is not only one client, but many of them. Each one of them is responsible for a specific resource or functionality. Spryker, by default, is shipped with the following clients:
+For each of these resources, there is a client. So, it's not only one client, but many of them. Each one of them is responsible for a specific resource or functionality. Spryker, by default, is shipped with the following clients:
* SearchClient: to connect to Elasticsearch using its API.
* StorageClient: to connect to Redis using the Redis protocol; RESP.
diff --git a/docs/dg/dev/backend-development/client/use-and-configure-redis-as-a-key-value-storage.md b/docs/dg/dev/backend-development/client/use-and-configure-redis-as-a-key-value-storage.md
index 09b124bd43c..dddb0ddbc0f 100644
--- a/docs/dg/dev/backend-development/client/use-and-configure-redis-as-a-key-value-storage.md
+++ b/docs/dg/dev/backend-development/client/use-and-configure-redis-as-a-key-value-storage.md
@@ -158,12 +158,12 @@ To optimize the data retrieval from Redis, we designed an algorithm to store all
The Redis cache for a page is basically a key-value pair. The key of the cache is the prefix `StorageClient_` followed by the URL of the page, while the value of the cache is simply a list of all Redis keys used on the cached page.
-When accessing a new page, the algorithm checks if a cache for it is already built. If yes, the page uses or refreshes the cache if needed; otherwise, the algorithm builds a new cache.
+When accessing a new page, the algorithm checks if a cache for it's already built. If yes, the page uses or refreshes the cache if needed; otherwise, the algorithm builds a new cache.
Spryker provides three caching strategies to build the list of the keys in the cache entry:
* *Replacement strategy.* This strategy overwrites the list of the keys in a cache with a new one every time a cached page is accessed. This strategy is useful with static pages where the list of keys for these does not change often. This is a default strategy when a strategy is not specified.
-* *Incremental strategy.* This strategy increments the list of keys inside the cache until the limit is exceeded. The default limit is 1000 keys. The incremental strategy is useful with a page that uses configurators—for example, variants where the cache stores all the different combinations.
+* *Incremental strategy.* This strategy increments the list of keys inside the cache until the limit's exceeded. The default limit's 1000 keys. The incremental strategy is useful with a page that uses configurators—for example, variants where the cache stores all the different combinations.
* *Inactive strategy.* This strategy deactivates the cache for a specified page.
All the cache entries have a default TTL of one day. The cache is removed after one day, and a new one is generated for different pages when accessing them.
diff --git a/docs/dg/dev/backend-development/console-commands/console-commands.md b/docs/dg/dev/backend-development/console-commands/console-commands.md
index 720f6f98c77..35140c42080 100644
--- a/docs/dg/dev/backend-development/console-commands/console-commands.md
+++ b/docs/dg/dev/backend-development/console-commands/console-commands.md
@@ -219,7 +219,7 @@ Depending on your environment and needs, there is a number of commands you can r
{% info_block infoBox %}
-To use the npm commands, download and install [Node.js](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). The minimum version for Node.js is *18.x* and for npm it is *9.x*. Then, you can use the appropriate commands listed in the table.
+To use the npm commands, download and install [Node.js](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm). The minimum version for Node.js is *18.x* and for npm it's *9.x*. Then, you can use the appropriate commands listed in the table.
{% endinfo_block %}
diff --git a/docs/dg/dev/backend-development/cronjobs/optimizing-jenkins-execution.md b/docs/dg/dev/backend-development/cronjobs/optimizing-jenkins-execution.md
index a94122b8e0f..4371738c11c 100644
--- a/docs/dg/dev/backend-development/cronjobs/optimizing-jenkins-execution.md
+++ b/docs/dg/dev/backend-development/cronjobs/optimizing-jenkins-execution.md
@@ -11,9 +11,9 @@ redirect_from:
Our out-of-the-box (OOTB) system requires a specific command (Worker - `queue:worker:start`) to be continuously running for each store to process queues and ensure the propagation of information. In addition to this command, there are other commands such as OMS processing, import, export, and more. When these processes are not functioning or running slowly, there is a delay in data changes being reflected on the frontend, causing dissatisfaction among customers and leading to disruption of business processes.
-By default, our system has a limit of two Jenkins executors for each environment. This limit is usually not a problem for single-store setups, but it becomes a potentially critical issue when there are multiple stores. Without increasing this limit, processing becomes slow because only two Workers are scanning queues and running tasks at a time, while other Workers for different stores have to wait. On top of this, even when some stores don't have messages to process, we still need to run a Worker just for scanning purposes, which occupies Jenkins executors, CPU time, and memory.
+By default, our system has a limit of two Jenkins executors for each environment. This limit's usually not a problem for single-store setups, but it becomes a potentially critical issue when there are multiple stores. Without increasing this limit, processing becomes slow because only two Workers are scanning queues and running tasks at a time, while other Workers for different stores have to wait. On top of this, even when some stores don't have messages to process, we still need to run a Worker just for scanning purposes, which occupies Jenkins executors, CPU time, and memory.
-Increasing the number of processes per queue can lead to issues such as Jenkins hanging, crashing, or becoming unresponsive. Although memory consumption and CPU utilization are not generally high (around 20-30%), there can be spikes in memory consumption due to a random combination of several workers simultaneously processing heavy messages for multiple stores.
+Increasing the number of processes per queue can lead to issues such as Jenkins hanging, crashing, or becoming unresponsive. Although memory consumption and CPU utilization are not generally high (around 20-30%), there can be spikes in memory consumption because of a random combination of several workers simultaneously processing heavy messages for multiple stores.
There are two potential solutions to address this problem: application optimization and better background job orchestration.
@@ -31,7 +31,7 @@ In computer science, a pool refers to a collection of resources that are kept in
![image](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/howto-reduce-jenkins-execution-cost-without-refactoring/NewWorker+Flow.png)
-We define the total number of simultaneously running processes for the entire setup on the EC2 instance level. This makes it easier to manage, as we can monitor the average memory consumption for the process pool. If it's too low, we can increase the pool size, and if it's too high, we can decrease it. Additionally, we check the available memory (RAM) and prevent spawning additional processes if it is too low, ensuring system stability. Execution statistics provide valuable insights for decision-making, including adjusting the pool size or scaling the EC2 instance up or down.
+We define the total number of simultaneously running processes for the entire setup on the EC2 instance level. This makes it easier to manage, as we can monitor the average memory consumption for the process pool. If it's too low, we can increase the pool size, and if it's too high, we can decrease it. Additionally, we check the available memory (RAM) and prevent spawning additional processes if it's too low, ensuring system stability. Execution statistics provide valuable insights for decision-making, including adjusting the pool size or scaling the EC2 instance up or down.
The following parameters exist:
@@ -61,7 +61,7 @@ Child processes are killed at the end of each minute, which means those batches
There are two methods possible for implementing this:
-1. Applying a patch, although it may require conflict resolution since it is applied on the project level and each project may have unique customizations already in place. See the attached diffs for an example implementation. [Here's a diff](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/howto-reduce-jenkins-execution-cost-without-refactoring/one-worker.diff).
+1. Applying a patch, although it may require conflict resolution since it's applied on the project level and each project may have unique customizations already in place. See the attached diffs for an example implementation. [Here's a diff](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/howto-reduce-jenkins-execution-cost-without-refactoring/one-worker.diff).
```bash
git apply one-worker.diff
@@ -118,7 +118,7 @@ class NewWorker implements WorkerInterface
public function start(string $command, array $options = []): void
{
// env var - QUEUE_WORKER_MAX_THRESHOLD_SECONDS
- // default is 60 seconds, 1 minute, it is safe to have it as 1 hour instead
+ // default is 60 seconds, 1 minute, it's safe to have it as 1 hour instead
$maxThreshold = $this->queueConfig->getQueueWorkerMaxThreshold();
// minimum interval after starting one process before executing another
@@ -156,7 +156,7 @@ class NewWorker implements WorkerInterface
// QUEUE_WORKER_MEMORY_MAX_GROWTH_FACTOR, 50 by default
// measures how much Worker own memory consumption increased after first iteration
- // when more than 50% - it is considered a memory leak and Worker will finish its operation
+ // when more than 50% - it's considered a memory leak and Worker will finish its operation
// allowing Jenkins to run Worker again
if ($ownMemGrowthFactor > $this->queueConfig->maxAllowedWorkerMemoryGrowthFactor()) {
$this->logger->emergency(sprintf('Worker memory grew more than %d%%, probably a memory leak, exiting', $ownMemGrowthFactor));
@@ -248,7 +248,7 @@ Available free system memory measured before spawning each child process.
The system should always have spare resources, because each `queue:task:start ...` command can consume different amount of resources, which is not easily predictable.
Because of this, this buffer must be set with such limitations in mind.
-- to accomodate a new process it is going to launch
+- to accomodate a new process it's going to launch
- to leave space for any sporadic memory consumption change of already running processes
@@ -478,7 +478,7 @@ class OrderedQueuesStrategy implements QueueProcessingStrategyInterface
Currently, this solution proved to be useful for multi-store setup environments with more than 2 stores operated within a single AWS region, although projects with only two stores can benefit from this solution as well.
-At the same time, it is worth mentioning that it does not make sense to apply this customization for a single-store setup. Although there are no drawbacks, it won't provide any significant benefits in performance, just better logging.
+At the same time, it's worth mentioning that it does not make sense to apply this customization for a single-store setup. Although there are no drawbacks, it won't provide any significant benefits in performance, just better logging.
- In summary, this HowTo can be applied to multi-store setup with at least 2 stores within one AWS region to gain such benefits as potential cost reduction from scaling down a Jenkins instance, or to speed Publish and Synchronize processing instead.
diff --git a/docs/dg/dev/backend-development/cronjobs/reduce-jenkins-execution-costs-without-p&s-and-data-importers-refactoring.md b/docs/dg/dev/backend-development/cronjobs/reduce-jenkins-execution-costs-without-p&s-and-data-importers-refactoring.md
index a827b0cfd71..d06c32ef985 100644
--- a/docs/dg/dev/backend-development/cronjobs/reduce-jenkins-execution-costs-without-p&s-and-data-importers-refactoring.md
+++ b/docs/dg/dev/backend-development/cronjobs/reduce-jenkins-execution-costs-without-p&s-and-data-importers-refactoring.md
@@ -9,9 +9,9 @@ redirect_from:
By default, the system requires the `queue:worker:start` command to be continuously running for each store to process queues and ensure the propagation of information. In addition to this command, there are other commands such as OMS processing, import, export, and more. When these processes aren't functioning or running slowly, there is a delay in data changes being reflected on the frontend, causing dissatisfaction among customers and leading to disruption of business processes.
-By default, Spryker has a limit of two Jenkins executors for each environment. This limit is usually not a problem for single-store setups, but it can be a critical issue when there are multiple stores. Without increasing this limit, processing becomes slow because only two Workers are scanning queues and running tasks at a time, while other Workers for different stores have to wait. On top of this, even when some stores don't have messages to process, we still need to run a Worker just for scanning purposes, which occupies Jenkins executors, CPU time, and memory.
+By default, Spryker has a limit of two Jenkins executors for each environment. This limit's usually not a problem for single-store setups, but it can be a critical issue when there are multiple stores. Without increasing this limit, processing becomes slow because only two Workers are scanning queues and running tasks at a time, while other Workers for different stores have to wait. On top of this, even when some stores don't have messages to process, we still need to run a Worker just for scanning purposes, which occupies Jenkins executors, CPU time, and memory.
-Increasing the number of processes per queue can lead to issues such as Jenkins hanging, crashing, or becoming unresponsive. Although memory consumption and CPU usage aren't generally high (around 20-30%), there can be spikes in memory consumption due to a random combination of several workers simultaneously processing heavy messages for multiple stores.
+Increasing the number of processes per queue can lead to issues such as Jenkins hanging, crashing, or becoming unresponsive. Although memory consumption and CPU usage aren't generally high (around 20-30%), there can be spikes in memory consumption because of a random combination of several workers simultaneously processing heavy messages for multiple stores.
There are two potential solutions to address this problem that can be implemented simultaneously: application optimization and better background job orchestration.
@@ -47,7 +47,7 @@ A pool refers to a collection of resources that are kept in memory and ready to
![image](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/howto-reduce-jenkins-execution-cost-without-refactoring/NewWorker+Flow.png)
-We define the total number of simultaneously running processes for the entire setup on the EC2 instance level. This makes it easier to manage, as we can monitor the average memory consumption for the process pool. If it's too low, we can increase the pool size, and if it's too high, we can decrease it. Additionally, we check the available memory (RAM) and prevent spawning additional processes if it is too low, ensuring system stability. Execution statistics provide valuable insights for decision-making, including adjusting the pool size or scaling the EC2 instance up or down.
+We define the total number of simultaneously running processes for the entire setup on the EC2 instance level. This makes it easier to manage, as we can monitor the average memory consumption for the process pool. If it's too low, we can increase the pool size, and if it's too high, we can decrease it. Additionally, we check the available memory (RAM) and prevent spawning additional processes if it's too low, ensuring system stability. Execution statistics provide valuable insights for decision-making, including adjusting the pool size or scaling the EC2 instance up or down.
The following parameters exist:
@@ -76,7 +76,7 @@ Child processes are killed at the end of each minute, which means those batches
There are two ways to implement the background job orchestration:
-1. Applying a patch, although it may require conflict resolution since it is applied on the project level, and each project may have unique customizations already in place. See [these diffs](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/howto-reduce-jenkins-execution-cost-without-refactoring/one-worker.diff) for an example implementation.
+1. Applying a patch, although it may require conflict resolution since it's applied on the project level, and each project may have unique customizations already in place. See [these diffs](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/howto-reduce-jenkins-execution-cost-without-refactoring/one-worker.diff) for an example implementation.
```bash
git apply one-worker.diff
@@ -133,7 +133,7 @@ class NewWorker implements WorkerInterface
public function start(string $command, array $options = []): void
{
// env var - QUEUE_WORKER_MAX_THRESHOLD_SECONDS
- // default is 60 seconds, 1 minute, it is safe to have it as 1 hour instead
+ // default is 60 seconds, 1 minute, it's safe to have it as 1 hour instead
$maxThreshold = $this->queueConfig->getQueueWorkerMaxThreshold();
// minimum interval after starting one process before executing another
@@ -171,7 +171,7 @@ class NewWorker implements WorkerInterface
// QUEUE_WORKER_MEMORY_MAX_GROWTH_FACTOR, 50 by default
// measures how much Worker own memory consumption increased after first iteration
- // when more than 50% - it is considered a memory leak and Worker will finish its operation
+ // when more than 50% - it's considered a memory leak and Worker will finish its operation
// allowing Jenkins to run Worker again
if ($ownMemGrowthFactor > $this->queueConfig->maxAllowedWorkerMemoryGrowthFactor()) {
$this->logger->emergency(sprintf('Worker memory grew more than %d%%, probably a memory leak, exiting', $ownMemGrowthFactor));
diff --git a/docs/dg/dev/backend-development/data-manipulation/configuration-management.md b/docs/dg/dev/backend-development/data-manipulation/configuration-management.md
index 45e00da66f8..708f17722a3 100644
--- a/docs/dg/dev/backend-development/data-manipulation/configuration-management.md
+++ b/docs/dg/dev/backend-development/data-manipulation/configuration-management.md
@@ -39,7 +39,7 @@ All of these files are merged automatically by Spryker when the application is r
### Constant interfaces
-As you can see in the configuration files, the whole configuration is a big array of keys and values. To enable traceability, it is a good practice to use constants as keys. These constants are defined in shared interfaces that are provided by the related module.
+As you can see in the configuration files, the whole configuration is a big array of keys and values. To enable traceability, it's a good practice to use constants as keys. These constants are defined in shared interfaces that are provided by the related module.
```php
”`. Running the composer update command removes all mentions of the module (for example, `refund`) and replaces it with your module (for example, `replace_refund`).
{% info_block warningBox %}
diff --git a/docs/dg/dev/backend-development/data-manipulation/data-publishing/add-publish-events.md b/docs/dg/dev/backend-development/data-manipulation/data-publishing/add-publish-events.md
index c767b416c46..0e09b7bccc4 100644
--- a/docs/dg/dev/backend-development/data-manipulation/data-publishing/add-publish-events.md
+++ b/docs/dg/dev/backend-development/data-manipulation/data-publishing/add-publish-events.md
@@ -204,4 +204,4 @@ class SpyGlossary extends BaseSpyGlossary
}
```
-Now, you can track the changes in the `Glossary` entity. When it is created, updated, or deleted, an event is created and posted to the specified RabbitMQ publish queue (`publish.translation`).
+Now, you can track the changes in the `Glossary` entity. When it's created, updated, or deleted, an event is created and posted to the specified RabbitMQ publish queue (`publish.translation`).
diff --git a/docs/dg/dev/backend-development/data-manipulation/data-publishing/bypass-the-key-value-storage.md b/docs/dg/dev/backend-development/data-manipulation/data-publishing/bypass-the-key-value-storage.md
index ee9eb0aaa0d..a732800e287 100644
--- a/docs/dg/dev/backend-development/data-manipulation/data-publishing/bypass-the-key-value-storage.md
+++ b/docs/dg/dev/backend-development/data-manipulation/data-publishing/bypass-the-key-value-storage.md
@@ -36,7 +36,7 @@ This new module is responsible for interacting with the database in read-only mo
There are two limitations of using the database as storage on Yves compared to the default storage engine. The following are scenarios when Yves actually writes data to storage:
-- Caching of requests to storage: while using the database as storage, it is not possible to cache anything in Yves.
+- Caching of requests to storage: while using the database as storage, it's not possible to cache anything in Yves.
- Concurrent requests and caching for the Glue API.
{% endinfo_block %}
diff --git a/docs/dg/dev/backend-development/data-manipulation/data-publishing/handle-data-with-publish-and-synchronization.md b/docs/dg/dev/backend-development/data-manipulation/data-publishing/handle-data-with-publish-and-synchronization.md
index 3e4cbcba144..efff22da5c1 100644
--- a/docs/dg/dev/backend-development/data-manipulation/data-publishing/handle-data-with-publish-and-synchronization.md
+++ b/docs/dg/dev/backend-development/data-manipulation/data-publishing/handle-data-with-publish-and-synchronization.md
@@ -546,7 +546,7 @@ For debugging purposes, use the `-k` option to keep messages in the queue `queue
## 6. Storage table
-To synchronize data with Redis, an intermediate Zed database table is required. The table stores the data until it is sent to Redis. The data in the table is already structured for Redis.
+To synchronize data with Redis, an intermediate Zed database table is required. The table stores the data until it's sent to Redis. The data in the table is already structured for Redis.
Follow the steps to create the table:
diff --git a/docs/dg/dev/backend-development/data-manipulation/data-publishing/implement-publish-and-synchronization.md b/docs/dg/dev/backend-development/data-manipulation/data-publishing/implement-publish-and-synchronization.md
index 2b05df58be2..2a01039e127 100644
--- a/docs/dg/dev/backend-development/data-manipulation/data-publishing/implement-publish-and-synchronization.md
+++ b/docs/dg/dev/backend-development/data-manipulation/data-publishing/implement-publish-and-synchronization.md
@@ -124,7 +124,7 @@ The next step is to create a database table that is used as a mirror for the cor
{% info_block infoBox "Naming convention"%}
-As a naming convention, it is recommended to append `_storage` to the end of the table name if it is synchronized with Redis, and `_search` if it is synchronized with Elasticsearch.
+As a naming convention, it's recommended to append `_storage` to the end of the table name if it's synchronized with Redis, and `_search` if it's synchronized with Elasticsearch.
{% endinfo_block %}
@@ -173,8 +173,8 @@ The *Synchronization* behavior added by the above schema files adds a column tha
Synchronization behavior parameters:
* `resource`—specifies the Redis or Elasticsearch namespace to synchronize with.
-* `store`—specifies whether it is necessary to specify a store for an entity.
-* `locale`—specifies whether it is necessary to specify a locale for an entity.
+* `store`—specifies whether it's necessary to specify a store for an entity.
+* `locale`—specifies whether it's necessary to specify a locale for an entity.
* `key_suffix_column`—specifies the name of the column that will be appended to the Redis or Elasticsearch key to make the key unique. If this parameter is omitted, then all entities will be stored under the same key.
* `queue_group`—specifies the queue group for synchronization.
* `params`—specifies search parameters (Elasticsearch only).
@@ -298,7 +298,7 @@ The `handleBulk` method is called by the event queue for the defined events in t
{% info_block infoBox "Info"%}
-For performance considerations, events are passed to the listener in bulk. Even if a single event must be handled, it is passed as an array of a single element.
+For performance considerations, events are passed to the listener in bulk. Even if a single event must be handled, it's passed as an array of a single element.
{% endinfo_block %}
diff --git a/docs/dg/dev/backend-development/data-manipulation/data-publishing/implement-synchronization-plugins.md b/docs/dg/dev/backend-development/data-manipulation/data-publishing/implement-synchronization-plugins.md
index 5a0607ffa4c..10915f27593 100644
--- a/docs/dg/dev/backend-development/data-manipulation/data-publishing/implement-synchronization-plugins.md
+++ b/docs/dg/dev/backend-development/data-manipulation/data-publishing/implement-synchronization-plugins.md
@@ -29,7 +29,7 @@ related:
link: docs/scos/dev/back-end-development/data-manipulation/data-publishing/synchronization-behavior-enabling-multiple-mappings.html
---
-Sometimes it's needed to manually [synchronize or re-syncrhonize](/docs/dg/dev/backend-development/data-manipulation/data-publishing/publish-and-synchronize-repeated-export.html#published-data-re-generation) the published model data with Redis or ElasticSearch. To do that, you need to implement a synchronization plugin.
+Sometimes it's needed to manually [synchronize or re-syncrhonize](/docs/dg/dev/backend-development/data-manipulation/data-publishing/publish-and-synchronize-repeated-export.html#published-data-re-generation) the published model data with Redis or Elasticsearch. To do that, you need to implement a synchronization plugin.
Follow these steps to implement and register a synchronization plugin.
@@ -115,7 +115,7 @@ The method descriptions:
* `HelloWorldSynchronizationDataRepositoryPlugin::getResourceName()`—defines a resource name of the storage or search module for key generation.
* `HelloWorldSynchronizationDataRepositoryPlugin::hasStore()`—defines if the entity implements a multi-store concept.
* `HelloWorldSynchronizationDataRepositoryPlugin::getData()`—retrieves a collection of sync transfers based on the provided offset and limit.
-* `HelloWorldSynchronizationDataRepositoryPlugin::getParams()`—defines additional sync parameters for Redis or ElasticSearch.
+* `HelloWorldSynchronizationDataRepositoryPlugin::getParams()`—defines additional sync parameters for Redis or Elasticsearch.
* `HelloWorldSynchronizationDataRepositoryPlugin::getQueueName()`—defines a queue name for synchonization.
* `HelloWorldSynchronizationDataRepositoryPlugin::getSynchronizationQueuePoolName()`—defines the name of the synchronization queue pool for broadcasting messages.
diff --git a/docs/dg/dev/backend-development/data-manipulation/data-publishing/publish-and-synchronization.md b/docs/dg/dev/backend-development/data-manipulation/data-publishing/publish-and-synchronization.md
index a7697c00242..0c46e5ce706 100644
--- a/docs/dg/dev/backend-development/data-manipulation/data-publishing/publish-and-synchronization.md
+++ b/docs/dg/dev/backend-development/data-manipulation/data-publishing/publish-and-synchronization.md
@@ -53,11 +53,11 @@ Both Publish and Synchronize implement the queue pattern. See [Spryker Queue
The process relies heavily on Propel behaviors, which are used to trigger actions automatically when updating the database. Thus, you don't need to trigger any step of the process in the code manually. See [Boostrapping a Behavior](http://propelorm.org/documentation/cookbook/writing-behavior.html) to learn more.
-### Triggering the Publish process
+## Triggering the Publish process
There are 2 ways to start the Publish process: automated and manual.
-#### Automated event emitting
+### Automated event emitting
Any changes done to an entity implementing the _event_ Propel behavior triggers a publish event immediately. CUD (create, update, delete) operations are covered by this Propel behavior. So you can expect these three types of events on creation, update, and deletion of DB entities managed by Propel ORM.
@@ -71,7 +71,7 @@ $productAbstractEntity->save();
Implementing event behaviors is recommended for your project features to keep the Shop App data up-to-date. For example, behaviors are widely used in the `Availability` module to inform customers whether a certain product is available for purchase.
-#### Manual event emitting
+### Manual event emitting
You can trigger the publish event manually using the [Event Facade](/docs/dg/dev/backend-development/data-manipulation/event/add-events.html):
@@ -81,12 +81,12 @@ $this->eventFacade->trigger(CmsStorageConfig::CMS_KEY_PUBLISH_WRITE, (new EventE
Manual even emitting is best suited when an entity passes several stages before becoming available to a customer. A typical use case for this method is content management. In most cases, a page does not become available once you create it. Usually, it exists as a draft to be published later. For example, when a new product is released to the market.
-### How Publish and Synchronize works
+## How Publish and Synchronize works
Publish and Synchronize Process schema:
![How Publish and Synchronize works](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Architecture+Concepts/Publish+and+Synchronization/how-it-works.png)
-### Publish
+## Publish
When the publish process is triggered, an event or events are posted to a queue. Each event message posted to the queue contains the following information on the event that triggered it:
* Event name
@@ -128,7 +128,7 @@ To consume an event, the queue adapter calls the publisher plugin specified in t
The transformed data is stored in a dedicated database table. It serves as a _mirror table_ for the respective Redis or Elasticsearch storage. The `data` column of the table contains the data to be synced to the front end, defining [the storage and the key](/docs/dg/dev/backend-development/data-manipulation/data-publishing/handle-data-with-publish-and-synchronization.html). It is stored in JSON for easy and fast synchronization. The table also contains the foreign keys used to backtrack data and the timestamp of the last change for each row. The timestamp is used to track changes rapidly.
-### Synchronize
+## Synchronize
When a change happens in the mirror table, its *synchronization behavior* sends the updated rows as messages to one of the Sync Queues. After consuming a message, the data is pushed to Redis or Elastisearch.
@@ -178,7 +178,7 @@ When a change happens in the mirror table, its *synchronization behavior* sends
}
```
-#### Direct synchronize
+### Direct synchronize
To optimize performance and flexibility, you can enable direct synchronization on the project level. This approach uses in-memory storage to retain all synchronization events instead of sending them to the queue. With this setup, you can control if entities are synchronized directly or through the traditional queue-based method.
@@ -241,7 +241,7 @@ class SynchronizationBehaviorConfig extends SprykerSynchronizationBehaviorConfig
```
-#### Environment limitations related to DMS
+### Environment limitations related to DMS
When Dynamic Multi-Store (DMS) is disabled, the Direct Sync feature has the following limitations:
- Single-store configuration: The feature is only supported for configurations with a single store.
@@ -272,7 +272,7 @@ stores:
When DMS is enabled, there're no environment limitations for the Direct Sync feature.
-### Data Architecture
+## Data Architecture
P&S plays a major role in data denormalization and distribution to Spryker storefronts and API. Denormalization procedure aims for preparing data in the form it will be consumed by data clients. Distribution procedure aims to distribute the data closer to the end users, so that they feel like accessing a local storage.
@@ -290,7 +290,7 @@ When designing a solution using P&S we need to consider the following concerns i
- horizontal scalability of publish process (native) and sync process (requires development)
- data object limitations
-#### Data Object Limitations
+### Data Object Limitations
In order to build a healthy commerce system, we need to make sure that P&S process is healthy at all times. And first we start with healthy NFRs for P&S.
- storage sync message size should not be over 256Kb - this prevents us from problems in data processing, but even more important in data comsumption, when an API consumer might experience failure when reviceing an aggregated object of a high size.
diff --git a/docs/dg/dev/backend-development/data-manipulation/data-publishing/synchronization-behavior-enabling-multiple-mappings.md b/docs/dg/dev/backend-development/data-manipulation/data-publishing/synchronization-behavior-enabling-multiple-mappings.md
index 2baa638bc01..751745189c0 100644
--- a/docs/dg/dev/backend-development/data-manipulation/data-publishing/synchronization-behavior-enabling-multiple-mappings.md
+++ b/docs/dg/dev/backend-development/data-manipulation/data-publishing/synchronization-behavior-enabling-multiple-mappings.md
@@ -38,7 +38,7 @@ During the [Publish and Synchronization](/docs/dg/dev/backend-development/data-m
where *123* is the product ID from the database. Now, we can get that product's data straight away by querying storage for this particular key. But what if we don't know ID of a product, but know its SKU? What if we don't want to expose database IDs to the outer world? In these cases, we could make some heavy changes to the Publish & Synchronize mechanism on the project level, or we could use *mappings*.
## What are mappings
-You can instruct Publish & Synchronize facilities to create mappings for any resource. Mapping is a relation between a resource's database ID and some other unique piece of information about that resource. In terms of storage, it is an extra-record, related to some resource entity, which stores its ID, and is saved with its own key. This key, of course, does not have database ID as its part. To understand the mappings better, read on how mappings are [defined](#defining) and [used](#using).
+You can instruct Publish & Synchronize facilities to create mappings for any resource. Mapping is a relation between a resource's database ID and some other unique piece of information about that resource. In terms of storage, it's an extra-record, related to some resource entity, which stores its ID, and is saved with its own key. This key, of course, does not have database ID as its part. To understand the mappings better, read on how mappings are [defined](#defining) and [used](#using).
diff --git a/docs/dg/dev/backend-development/extend-spryker/spryker-os-module-customisation/extend-the-core.md b/docs/dg/dev/backend-development/extend-spryker/spryker-os-module-customisation/extend-the-core.md
index f230866aa8c..d670302be00 100644
--- a/docs/dg/dev/backend-development/extend-spryker/spryker-os-module-customisation/extend-the-core.md
+++ b/docs/dg/dev/backend-development/extend-spryker/spryker-os-module-customisation/extend-the-core.md
@@ -18,7 +18,7 @@ related:
We offer several ways like plugins to hook into the core's behavior and extend this without modifications. But sometimes this is not enough, so you need to replace a method that is deep in the core.
-Before you proceed, double-check if there is no other way to solve your requirement, maybe there is a facade method that fits in or you can use plugins. You must understand that if you do a core extension, you are behind the stable internal APIs, so there is no guarantee that the extended class is not modified, renamed, or even non-existing in the next release. Therefore, you take over responsibility for your extension, and it is highly recommended to cover it with unit tests. If it is not urgent, you can request a change in our support desk to get an official extension point.
+Before you proceed, double-check if there is no other way to solve your requirement, maybe there is a facade method that fits in or you can use plugins. You must understand that if you do a core extension, you are behind the stable internal APIs, so there is no guarantee that the extended class is not modified, renamed, or even non-existing in the next release. Therefore, you take over responsibility for your extension, and it's highly recommended to cover it with unit tests. If it's not urgent, you can request a change in our support desk to get an official extension point.
There are three ways to extend classes from the core:
* Replacement class
diff --git a/docs/dg/dev/backend-development/factory/factory.md b/docs/dg/dev/backend-development/factory/factory.md
index ceae0c52bf7..0015d7ed237 100644
--- a/docs/dg/dev/backend-development/factory/factory.md
+++ b/docs/dg/dev/backend-development/factory/factory.md
@@ -71,7 +71,7 @@ The extended `AbstractFactory` holds some important methods:
## Snippets to create a new factory
-The factory pattern is used all over our code base. The concrete implementations look a bit different for Yves, Zed, and Client. You can copy and paste these snippets and just replace `MyBundle` with your real module name. To enable auto-completion, it is recommended to define the interfaces for the query container and module config in the class doc block as shown in the snippets.
+The factory pattern is used all over our code base. The concrete implementations look a bit different for Yves, Zed, and Client. You can copy and paste these snippets and just replace `MyBundle` with your real module name. To enable auto-completion, it's recommended to define the interfaces for the query container and module config in the class doc block as shown in the snippets.
### Yves
diff --git a/docs/dg/dev/backend-development/plugins/get-an-overview-of-the-used-plugins.md b/docs/dg/dev/backend-development/plugins/get-an-overview-of-the-used-plugins.md
index 1fc8a9d6c68..9b711b24b4f 100644
--- a/docs/dg/dev/backend-development/plugins/get-an-overview-of-the-used-plugins.md
+++ b/docs/dg/dev/backend-development/plugins/get-an-overview-of-the-used-plugins.md
@@ -13,7 +13,7 @@ related:
link: docs/dg/dev/backend-development/plugins/plugins.html
---
-To use a new feature projects most likely need to add some plugins to their `*DependencyProvider`. Currently, it is not easy for projects to integrate a new feature due to the difficulties in identifying to which *`DependencyProvider` plugin A* of *module B* can be added to bring *functionality X*.
+To use a new feature projects most likely need to add some plugins to their `*DependencyProvider`. Currently, it's not easy for projects to integrate a new feature because of the difficulties in identifying to which *`DependencyProvider` plugin A* of *module B* can be added to bring *functionality X*.
To see which [Plugin](/docs/dg/dev/backend-development/plugins/plugins.html) can be used in which `DependencyProvider` we added a feature called **Plugin Overview**. This feature gives you several ways of displaying our plugin usages. The feature brings a console command (`vendor/bin/console dev:plugin-usage:dump`) and a [GUI in Zed](https://zed.mysprykershop.com/development/dependency-provider-plugin-usage).
diff --git a/docs/dg/dev/backend-development/zed-ui-tables/create-and-configure-zed-tables.md b/docs/dg/dev/backend-development/zed-ui-tables/create-and-configure-zed-tables.md
index f09ba1fa811..5500c2f1ec6 100644
--- a/docs/dg/dev/backend-development/zed-ui-tables/create-and-configure-zed-tables.md
+++ b/docs/dg/dev/backend-development/zed-ui-tables/create-and-configure-zed-tables.md
@@ -103,7 +103,7 @@ $config->setDefaultSortField(SpySalesOrderTableMap::COL_CREATED_ATб \Spryker\Ze
### Configure search by columns
-The default search option in Back Office data tables searches for anything that contains the specified substrings. This default search makes use of the SQL logical operator ‘LIKE’ in combination with ‘LOWER’ for comparison. It may result in performance issues on larger tables due to indexes not being used.
+The default search option in Back Office data tables searches for anything that contains the specified substrings. This default search makes use of the SQL logical operator ‘LIKE’ in combination with ‘LOWER’ for comparison. It may result in performance issues on larger tables because of indexes not being used.
Search by columns can be used on all Back Office data tables which extend the `AbstractTable` class.
diff --git a/docs/dg/dev/backend-development/zed/business-layer/custom-exceptions.md b/docs/dg/dev/backend-development/zed/business-layer/custom-exceptions.md
index 9660b9c5865..d52ef6c7e20 100644
--- a/docs/dg/dev/backend-development/zed/business-layer/custom-exceptions.md
+++ b/docs/dg/dev/backend-development/zed/business-layer/custom-exceptions.md
@@ -1,6 +1,6 @@
---
title: Custom exceptions
-description: When you need to throw an exception, you should define your own type of exception.
+description: Define and handle custom exceptions in Spryker's Business Layer to streamline error management and ensure clean code. Create and manage exceptions effectively.
last_updated: Sep 27, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/custom-exceptions
@@ -14,7 +14,7 @@ related:
link: docs/dg/dev/backend-development/zed/business-layer/business-models.html
---
-To throw an exception, you need to define your own type of exception. Later, it is much easier to handle exceptions when the type represents a specific type of error.
+To throw an exception, you need to define your own type of exception. Later, it's much easier to handle exceptions when the type represents a specific type of error.
{% info_block errorBox %}
diff --git a/docs/dg/dev/backend-development/zed/business-layer/facade/a-facade-implementation.md b/docs/dg/dev/backend-development/zed/business-layer/facade/a-facade-implementation.md
index 91781bf6c10..77b0c252ed3 100644
--- a/docs/dg/dev/backend-development/zed/business-layer/facade/a-facade-implementation.md
+++ b/docs/dg/dev/backend-development/zed/business-layer/facade/a-facade-implementation.md
@@ -1,6 +1,6 @@
---
title: A facade implementation
-description: This document describes a facade implementation.
+description: Implement a facade in Business Layer to streamline interactions between modules. This guide explains best practices for creating a centralized API for module communication.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/implementing-facade
@@ -13,7 +13,7 @@ related:
- title: Facade use cases
link: docs/dg/dev/backend-development/zed/business-layer/facade/facade-use-cases.html
- title: Design by Contract (DBC) - Facade
- link: docs/scos/dev/back-end-development/zed/business-layer/facade/design-by-contract-dbc-facade.html
+ link: docs/dg/dev/backend-development/zed/business-layer/facade/design-by-contract-dbc-facade.html
---
## AbstractFacade
@@ -45,7 +45,7 @@ class GlossaryFacade extends AbstractFacade
When you look at the `deleteKey()` method, observe the following:
-* The method's name expresses exactly what happens. It uses the terms of the related terminology, but it is easy to grasp what happens ("A key is deleted").
+* The method's name expresses exactly what happens. It uses the terms of the related terminology, but it's easy to grasp what happens ("A key is deleted").
* The method does not contain any control logic, like `if` or `foreach` statements; it just delegates to the business model and calls the right method.
* The business model KeyManager is created using the factory, so it does not need to know how the class is created.
diff --git a/docs/dg/dev/backend-development/zed/business-layer/facade/design-by-contract-dbc-facade.md b/docs/dg/dev/backend-development/zed/business-layer/facade/design-by-contract-dbc-facade.md
index fbf7296de3f..1029adac740 100644
--- a/docs/dg/dev/backend-development/zed/business-layer/facade/design-by-contract-dbc-facade.md
+++ b/docs/dg/dev/backend-development/zed/business-layer/facade/design-by-contract-dbc-facade.md
@@ -11,7 +11,7 @@ related:
- title: Facade
link: docs/dg/dev/backend-development/zed/business-layer/facade/facade.html
- title: A facade implementation
- link: docs/scos/dev/back-end-development/zed/business-layer/facade/a-facade-implementation.html
+ link: docs/dg/dev/backend-development/zed/business-layer/facade/a-facade-implementation.html
- title: Facade use cases
link: docs/dg/dev/backend-development/zed/business-layer/facade/facade-use-cases.html
---
@@ -51,5 +51,5 @@ Based on the name, this method "saves a customer". So the contract is as follows
**Additional information**:
* *The post-conditions are complete*. Any other behavior is not expected here—for example, this method must not send an email to a customer to confirm the change.
-* *This method must not return anything*. You could think of a boolean return value if the email cannot be changed. But then this method would do two things. Therefore, it is a better approach to have another `doesEmailExist($email)` method for the pre-check.
+* *This method must not return anything*. You could think of a boolean return value if the email cannot be changed. But then this method would do two things. Therefore, it's a better approach to have another `doesEmailExist($email)` method for the pre-check.
* *If the preconditions are not valid, the method must throw an exception*. In this case, if the email address already exists, the `EmailAlreadyExistsException` exception is thrown.
diff --git a/docs/dg/dev/backend-development/zed/business-layer/facade/facade-use-cases.md b/docs/dg/dev/backend-development/zed/business-layer/facade/facade-use-cases.md
index af78364e515..b9201c40831 100644
--- a/docs/dg/dev/backend-development/zed/business-layer/facade/facade-use-cases.md
+++ b/docs/dg/dev/backend-development/zed/business-layer/facade/facade-use-cases.md
@@ -1,6 +1,6 @@
---
title: Facade use cases
-description: This document describes facade use cases.
+description: Explore use cases for facades in the Business Layer. Learn how to centralize logic and streamline module communication for efficient and maintainable backend development.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/using-facade
@@ -12,9 +12,9 @@ related:
- title: Facade
link: docs/dg/dev/backend-development/zed/business-layer/facade/facade.html
- title: A facade implementation
- link: docs/scos/dev/back-end-development/zed/business-layer/facade/a-facade-implementation.html
+ link: docs/dg/dev/backend-development/zed/business-layer/facade/a-facade-implementation.html
- title: Design by Contract (DBC) - Facade
- link: docs/scos/dev/back-end-development/zed/business-layer/facade/design-by-contract-dbc-facade.html
+ link: docs/dg/dev/backend-development/zed/business-layer/facade/design-by-contract-dbc-facade.html
---
This document describes the use cases of a facade.
diff --git a/docs/dg/dev/backend-development/zed/business-layer/facade/facade.md b/docs/dg/dev/backend-development/zed/business-layer/facade/facade.md
index 3bfd306a42e..6a6691b4287 100644
--- a/docs/dg/dev/backend-development/zed/business-layer/facade/facade.md
+++ b/docs/dg/dev/backend-development/zed/business-layer/facade/facade.md
@@ -9,11 +9,11 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/business-layer/facade/facade.html
related:
- title: A facade implementation
- link: docs/scos/dev/back-end-development/zed/business-layer/facade/a-facade-implementation.html
+ link: docs/dg/dev/backend-development/zed/business-layer/facade/a-facade-implementation.html
- title: Facade use cases
link: docs/dg/dev/backend-development/zed/business-layer/facade/facade-use-cases.html
- title: Design by Contract (DBC) - Facade
- link: docs/scos/dev/back-end-development/zed/business-layer/facade/design-by-contract-dbc-facade.html
+ link: docs/dg/dev/backend-development/zed/business-layer/facade/design-by-contract-dbc-facade.html
---
A *facade* acts as an internal API. The main responsibility of the facade is to hide the internal implementation.
diff --git a/docs/dg/dev/backend-development/zed/communication-layer/communication-layer.md b/docs/dg/dev/backend-development/zed/communication-layer/communication-layer.md
index 8ba07efc48c..7ae3b5cff13 100644
--- a/docs/dg/dev/backend-development/zed/communication-layer/communication-layer.md
+++ b/docs/dg/dev/backend-development/zed/communication-layer/communication-layer.md
@@ -9,7 +9,7 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/communication-layer/communication-layer.html
related:
- title: Addi indexes to foreign key columns - index generator
- link: docs/scos/dev/back-end-development/zed/communication-layer/adding-indexes-to-foreign-key-columns-index-generator.html
+ link: docs/dg/dev/backend-development/zed/communication-layer/add-indexes-to-foreign-key-columns-index-generator.html
- title: About the Business layer
link: docs/dg/dev/backend-development/zed/business-layer/business-layer.html
- title: About the Persistence layer
diff --git a/docs/dg/dev/backend-development/zed/create-table-views.md b/docs/dg/dev/backend-development/zed/create-table-views.md
index edd89c8049a..d2bd424a2f5 100644
--- a/docs/dg/dev/backend-development/zed/create-table-views.md
+++ b/docs/dg/dev/backend-development/zed/create-table-views.md
@@ -1,6 +1,6 @@
---
title: Create table views
-description: Use the guide to render data, fetched from the database, in the table.
+description: Learn to create and configure table views in Zed. This guide covers steps for defining custom table data and optimizing the user interface for efficient data management.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/t-create-table-view
diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/database-overview.md b/docs/dg/dev/backend-development/zed/persistence-layer/database-overview.md
index 94bd59c778b..91e4f30c888 100644
--- a/docs/dg/dev/backend-development/zed/persistence-layer/database-overview.md
+++ b/docs/dg/dev/backend-development/zed/persistence-layer/database-overview.md
@@ -1,6 +1,6 @@
---
title: Database overview
-description: This document overviews the database in the ORM directory.
+description: Overview of the persistence layer. Learn about schema design, entity management, and efficient data handling in Zed backend development.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/database-overview
@@ -9,17 +9,17 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/persistence-layer/database-overview.html
related:
- title: Database schema definition
- link: docs/scos/dev/back-end-development/zed/persistence-layer/database-schema-definition.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.html
- title: Entity
- link: docs/scos/dev/back-end-development/zed/persistence-layer/entity.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/entity.html
- title: Entity manager
- link: docs/scos/dev/back-end-development/zed/persistence-layer/entity-manager.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.html
- title: About the query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.html
- title: Query objects - creation and usage
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-objects-creation-and-usage.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.html
- title: Repository
- link: docs/scos/dev/back-end-development/zed/persistence-layer/repository.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/repository.html
---
@@ -31,7 +31,7 @@ The `src/Orm/Propel` folder is for the following:
* Configuration in Propel format (generated `propel.json`—don't touch it).
* Copy of merged schema files (don't touch).
-* Migration files (can be in `.gitignore` or can be committed; the decision is made on the project level. We recommend using `.gitignore`; however Propel documentation says that "On a project using version control, it is important to commit the migration classes to the code repository. That way, other developers checking out the project just have to run the same migrations to get a database in a similar state".
+* Migration files (can be in `.gitignore` or can be committed; the decision is made on the project level. We recommend using `.gitignore`; however Propel documentation says that "On a project using version control, it's important to commit the migration classes to the code repository. That way, other developers checking out the project just have to run the same migrations to get a database in a similar state".
The `src/Orm/Zed` folder is for the following:
diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.md b/docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.md
index 2b49ab766c6..8f5ce78261f 100644
--- a/docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.md
+++ b/docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.md
@@ -9,17 +9,17 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/persistence-layer/database-schema-definition.html
related:
- title: Database overview
- link: docs/scos/dev/back-end-development/zed/persistence-layer/database-overview.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/database-overview.html
- title: Entity
- link: docs/scos/dev/back-end-development/zed/persistence-layer/entity.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/entity.html
- title: Entity manager
- link: docs/scos/dev/back-end-development/zed/persistence-layer/entity-manager.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.html
- title: About the query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.html
- title: Query objects - creation and usage
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-objects-creation-and-usage.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.html
- title: Repository
- link: docs/scos/dev/back-end-development/zed/persistence-layer/repository.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/repository.html
---
With Propel, a [database schema](http://propelorm.org/documentation/reference/schema.html) is defined in an XML file. Each module has its own part of the big schema that is collected and merged.
@@ -79,14 +79,14 @@ The workflow can be described like this:
## Schema file merge
-Sometimes it is useful to add columns to a table that belongs to another module. Possible use cases are:
+Sometimes it's useful to add columns to a table that belongs to another module. Possible use cases are:
* A core module wants to inject a foreign key into a table from another core module. This happens when the dependency direction is in contrast to the direction of the relation.
* A project module wants to add a column to a table from a core module.
When you add a column to a core table, this column must not be mandatory. Otherwise, the core classes, not knowing the mandatory fields, become unusable and, thus, have to be overwritten. This makes updating more difficult. In most cases, you need to avoid adding a column to a core table, as it can cause compatibility problems in the future.
-What happens when the next release adds a column with the same name but another meaning? To avoid this problem, it is a good practice to add a new table and use a one-to-one relationship.
+What happens when the next release adds a column with the same name but another meaning? To avoid this problem, it's a good practice to add a new table and use a one-to-one relationship.
### Merge workflow
diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.md b/docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.md
index 731ac1b05fe..dbd6baa7862 100644
--- a/docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.md
+++ b/docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.md
@@ -9,17 +9,17 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/persistence-layer/entity-manager.html
related:
- title: Database overview
- link: docs/scos/dev/back-end-development/zed/persistence-layer/database-overview.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/database-overview.html
- title: Database schema definition
- link: docs/scos/dev/back-end-development/zed/persistence-layer/database-schema-definition.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.html
- title: Entity
- link: docs/scos/dev/back-end-development/zed/persistence-layer/entity.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/entity.html
- title: About the query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.html
- title: Query objects - creation and usage
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-objects-creation-and-usage.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.html
- title: Repository
- link: docs/scos/dev/back-end-development/zed/persistence-layer/repository.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/repository.html
---
From Kernel version 3.2, you can create an entity manager class in your `Persistence` layer. It is responsible for saving, updating, and deleting data. Using the class, you can separate data from persistence details (Propel).
@@ -30,7 +30,7 @@ As an example of using an entity manager, see the [Company module](https://githu
## Entity transfers
-With the Publish and Synchronize feature, we have added a new transfer generation for `EntityTransfers`. The `EntityTransfers` are a direct representation of SQL tables. `EntityTransfer` has all properties, and relations defined and holds FQCN to the Propel entity it is mapped to. This FQCN is used when mapping the entity as the data is persisted.
+With the Publish and Synchronize feature, we have added a new transfer generation for `EntityTransfers`. The `EntityTransfers` are a direct representation of SQL tables. `EntityTransfer` has all properties, and relations defined and holds FQCN to the Propel entity it's mapped to. This FQCN is used when mapping the entity as the data is persisted.
## AbstractEntityManager class
diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/entity.md b/docs/dg/dev/backend-development/zed/persistence-layer/entity.md
index cededf5eb30..3e0f71af2c5 100644
--- a/docs/dg/dev/backend-development/zed/persistence-layer/entity.md
+++ b/docs/dg/dev/backend-development/zed/persistence-layer/entity.md
@@ -9,17 +9,17 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/persistence-layer/entity.html
related:
- title: Database overview
- link: docs/scos/dev/back-end-development/zed/persistence-layer/database-overview.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/database-overview.html
- title: Database schema definition
- link: docs/scos/dev/back-end-development/zed/persistence-layer/database-schema-definition.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.html
- title: Entity manager
- link: docs/scos/dev/back-end-development/zed/persistence-layer/entity-manager.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.html
- title: About the query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.html
- title: Query objects - creation and usage
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-objects-creation-and-usage.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.html
- title: Repository
- link: docs/scos/dev/back-end-development/zed/persistence-layer/repository.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/repository.html
---
In Spryker, an entity represents one entry from a table in the database. Entities are an implementation of the [Active record design pattern](https://en.wikipedia.org/wiki/Active_record_pattern), so their usage is very simple. For more details, see [Propel's Active Record Reference](http://propelorm.org/documentation/reference/active-record.html).
diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/persistence-layer.md b/docs/dg/dev/backend-development/zed/persistence-layer/persistence-layer.md
index 83679735422..d98ee446370 100644
--- a/docs/dg/dev/backend-development/zed/persistence-layer/persistence-layer.md
+++ b/docs/dg/dev/backend-development/zed/persistence-layer/persistence-layer.md
@@ -9,19 +9,19 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/persistence-layer/persistence-layer.html
related:
- title: Database overview
- link: docs/scos/dev/back-end-development/zed/persistence-layer/database-overview.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/database-overview.html
- title: Database schema definition
- link: docs/scos/dev/back-end-development/zed/persistence-layer/database-schema-definition.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.html
- title: Entity
- link: docs/scos/dev/back-end-development/zed/persistence-layer/entity.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/entity.html
- title: Entity manager
- link: docs/scos/dev/back-end-development/zed/persistence-layer/entity-manager.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.html
- title: About the query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.html
- title: Query objects - creation and usage
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-objects-creation-and-usage.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.html
- title: Repository
- link: docs/scos/dev/back-end-development/zed/persistence-layer/repository.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/repository.html
- title: About the Business layer
link: docs/dg/dev/backend-development/zed/business-layer/business-layer.html
- title: About Communication layer
diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/query-container/implement-a-query-container.md b/docs/dg/dev/backend-development/zed/persistence-layer/query-container/implement-a-query-container.md
index fe91a8b9de4..6794c8640d5 100644
--- a/docs/dg/dev/backend-development/zed/persistence-layer/query-container/implement-a-query-container.md
+++ b/docs/dg/dev/backend-development/zed/persistence-layer/query-container/implement-a-query-container.md
@@ -10,9 +10,9 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/persistence-layer/query-container/implementing-a-query-container.html
related:
- title: About the query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.html
- title: Using a query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/using-a-query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/using-a-query-container.html
---
{% info_block infoBox "When to use query containers" %}
diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.md b/docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.md
index 2833d2e7202..b68020dacd4 100644
--- a/docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.md
+++ b/docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.md
@@ -1,6 +1,6 @@
---
title: About the query container
-description: A query container holds all the database queries of the current module.
+description: Query containers in Persistence Layer. This guide explains their role in managing database queries, ensuring modular and efficient data access for Zed backend development.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/query-container
@@ -9,9 +9,9 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/persistence-layer/query-container/query-container.html
related:
- title: Implement a query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/implementing-a-query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/implement-a-query-container.html
- title: Using a query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/using-a-query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/using-a-query-container.html
---
{% info_block infoBox "When to use query containers" %}
diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/query-container/using-a-query-container.md b/docs/dg/dev/backend-development/zed/persistence-layer/query-container/using-a-query-container.md
index 161c82c00ea..661d9cd8d40 100644
--- a/docs/dg/dev/backend-development/zed/persistence-layer/query-container/using-a-query-container.md
+++ b/docs/dg/dev/backend-development/zed/persistence-layer/query-container/using-a-query-container.md
@@ -9,9 +9,9 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/persistence-layer/query-container/using-a-query-container.html
related:
- title: About the query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.html
- title: Implement a query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/implementing-a-query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/implement-a-query-container.html
---
{% info_block infoBox "When to use query containers" %}
@@ -25,7 +25,7 @@ The query container of the current unterminated query is available via `$this->g
![Query container via factory](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Zed/Persistence+Layer/Query+Container/query-container-via-factory.png)
-### Executing the query
+## Executing the query
You can adjust the query itself, but avoid adding more filters or joins because this is the responsibility of the query container only.
diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.md b/docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.md
index e3065fdb423..5d0248bd900 100644
--- a/docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.md
+++ b/docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.md
@@ -9,17 +9,17 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/persistence-layer/query-objects-creation-and-usage.html
related:
- title: Database overview
- link: docs/scos/dev/back-end-development/zed/persistence-layer/database-overview.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/database-overview.html
- title: Database schema definition
- link: docs/scos/dev/back-end-development/zed/persistence-layer/database-schema-definition.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.html
- title: Entity
- link: docs/scos/dev/back-end-development/zed/persistence-layer/entity.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/entity.html
- title: Entity manager
- link: docs/scos/dev/back-end-development/zed/persistence-layer/entity-manager.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.html
- title: About the query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.html
- title: Repository
- link: docs/scos/dev/back-end-development/zed/persistence-layer/repository.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/repository.html
---
Query objects provide an object-oriented API for writing database queries which are used in [query containers](/docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.html).
@@ -36,6 +36,6 @@ As you can see `src/Orm/Zed/` the query object which belongs to the Spryker core
The `Propel` module alters the rules of generating query models by requiring explicit passing of filtering criteria into `filterBy..` and `findBy...` methods.
-This means, that when an array, `LIKE` expression or an array with `min/max` are passed as a filtering argument, it is explicitly required to specify `Criteria::IN`, `Criteria::LIKE` or `Criteria::BETWEEN`. The `Criteria::BETWEEN` is implemented in the wrapper class `Spryker\Zed\Propel\Business\Runtime\ActiveQuery\Criteria`.
+This means, that when an array, `LIKE` expression or an array with `min/max` are passed as a filtering argument, it's explicitly required to specify `Criteria::IN`, `Criteria::LIKE` or `Criteria::BETWEEN`. The `Criteria::BETWEEN` is implemented in the wrapper class `Spryker\Zed\Propel\Business\Runtime\ActiveQuery\Criteria`.
Additionally the `Propel` module adds the following methods into the generated classes, that allow to easily filter: `filterBy...._In()`, `filterBy...._Like()` and `filterBy...._Between()`.
diff --git a/docs/dg/dev/backend-development/zed/persistence-layer/repository.md b/docs/dg/dev/backend-development/zed/persistence-layer/repository.md
index dd42da6405a..cede4912da5 100644
--- a/docs/dg/dev/backend-development/zed/persistence-layer/repository.md
+++ b/docs/dg/dev/backend-development/zed/persistence-layer/repository.md
@@ -9,17 +9,17 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/persistence-layer/repository.html
related:
- title: Database overview
- link: docs/scos/dev/back-end-development/zed/persistence-layer/database-overview.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/database-overview.html
- title: Database schema definition
- link: docs/scos/dev/back-end-development/zed/persistence-layer/database-schema-definition.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/database-schema-definition.html
- title: Entity
- link: docs/scos/dev/back-end-development/zed/persistence-layer/entity.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/entity.html
- title: Entity manager
- link: docs/scos/dev/back-end-development/zed/persistence-layer/entity-manager.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/entity-manager.html
- title: About the query container
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-container/query-container.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-container/query-container.html
- title: Query objects - creation and usage
- link: docs/scos/dev/back-end-development/zed/persistence-layer/query-objects-creation-and-usage.html
+ link: docs/dg/dev/backend-development/zed/persistence-layer/query-objects-creation-and-usage.html
---
Since Kernel version 3.2 it's possible to use a Repository class in your persistence layer. The repository implements the [repository pattern](https://martinfowler.com/eaaCatalog/repository.html), which means you have a clear separation between business and persistence layers. Propel entities are not allowed outside the persistence layer. We are using transfer objects instead. This separation enables switching to different database systems or ORMs, you could even use NOSQL to store your data.
@@ -53,7 +53,7 @@ class BlogRepository extends AbstractRepository implements BlogRepositoryInterfa
## EntityTransfers
-With the Publish and Synchronize feature, we have added a new transfer generation for `EntityTransfers`. The `EntityTransfers` are a direct representation of SQL tables, `EntityTransfer` has all properties and relations defined, also it holds FQCN to the Propel entity it is mapped to. This FQCN is used when mapping entity when data is persisted. Names of `EntityTransfers` start with `Spy`, followed by the table name, and then the `EntityTransfer` suffix. For example, `SpyBlogEntityTransfer` would map to SpyBlog Propel entity.
+With the Publish and Synchronize feature, we have added a new transfer generation for `EntityTransfers`. The `EntityTransfers` are a direct representation of SQL tables, `EntityTransfer` has all properties and relations defined, also it holds FQCN to the Propel entity it's mapped to. This FQCN is used when mapping entity when data is persisted. Names of `EntityTransfers` start with `Spy`, followed by the table name, and then the `EntityTransfer` suffix. For example, `SpyBlogEntityTransfer` would map to SpyBlog Propel entity.
## Abstract Repository Class
diff --git a/docs/dg/dev/backend-development/zed/zed.md b/docs/dg/dev/backend-development/zed/zed.md
index 629ff5538b6..5005b23937d 100644
--- a/docs/dg/dev/backend-development/zed/zed.md
+++ b/docs/dg/dev/backend-development/zed/zed.md
@@ -9,7 +9,7 @@ redirect_from:
- /docs/scos/dev/back-end-development/zed/zed.html
related:
- title: Add navigation in the Back Office
- link: docs/scos/dev/back-end-development/zed/add-navigation-in-the-back-office.html
+ link: docs/dg/dev/backend-development/zed/add-navigation-in-the-back-office.html
---
Zed is one of the application layers of the Spryker Commerce OS, providing the Back Office and backend functionality.
diff --git a/docs/dg/dev/best-practices/basic-seo-techniques-to-use-in-your-project.md b/docs/dg/dev/best-practices/basic-seo-techniques-to-use-in-your-project.md
index 7e05d4473df..351d55fc7bb 100644
--- a/docs/dg/dev/best-practices/basic-seo-techniques-to-use-in-your-project.md
+++ b/docs/dg/dev/best-practices/basic-seo-techniques-to-use-in-your-project.md
@@ -26,7 +26,7 @@ It is important to use the `h1` heading. However, the number of `h1` elements on
{% endinfo_block %}
-For example, on a catalog page, `h1` is the name of the chosen category. Or, on a product details page, it is the product name.
+For example, on a catalog page, `h1` is the name of the chosen category. Or, on a product details page, it's the product name.
Then `h2` and `h3` subheadings are used to introduce different sections. Those individual sections might also use more specific headers (`h3` tags, then `h4` tags) to introduce sub-sections. It's rare for most content to get deep enough to need to use h4 tags.
Check out the headings structure on a catalog page in the Spryker Demo Shop:
diff --git a/docs/dg/dev/best-practices/best-practices.md b/docs/dg/dev/best-practices/best-practices.md
index 59faff59a07..ba17943c940 100644
--- a/docs/dg/dev/best-practices/best-practices.md
+++ b/docs/dg/dev/best-practices/best-practices.md
@@ -1,6 +1,6 @@
---
title: Best practices
-description: Best practices for developers working on Spryker Commerce OS
+description: Discover best practices for Spryker development, including coding standards, modular architecture, testing strategies, and optimization techniques.
template: concept-topic-template
redirect_from:
- /docs/scos/dev/best-practices/
diff --git a/docs/dg/dev/best-practices/coding-best-practices.md b/docs/dg/dev/best-practices/coding-best-practices.md
index 3c7fe1e123b..30263d96c10 100644
--- a/docs/dg/dev/best-practices/coding-best-practices.md
+++ b/docs/dg/dev/best-practices/coding-best-practices.md
@@ -13,12 +13,12 @@ This document outlines a few common PHP coding problems and the recommended solu
## Merging arrays
-When merging arrays, one usually uses `array_merge($defaults, $options)`. However, when working with associative arrays (keys are all string identifiers), it is recommended to use the `+` operator. This is not only a lot faster, it also yields more correct results with edge cases. Beware of the switched order in this case: `$mergedOptions = $options + $defaults;`
+When merging arrays, one usually uses `array_merge($defaults, $options)`. However, when working with associative arrays (keys are all string identifiers), it's recommended to use the `+` operator. This is not only a lot faster, it also yields more correct results with edge cases. Beware of the switched order in this case: `$mergedOptions = $options + $defaults;`
## Operations per line
-To facilitate readability and debugging, it is recommended to use only one operation per line.
+To facilitate readability and debugging, it's recommended to use only one operation per line.
## Method size
-Long methods tend to have too many responsibilities, and are usually harder to understand and maintain than smaller ones. Therefore it is advisable to stick to the "single responsibility" principle, when a method is just a few lines long.
+Long methods tend to have too many responsibilities, and are usually harder to understand and maintain than smaller ones. Therefore it's advisable to stick to the "single responsibility" principle, when a method is just a few lines long.
diff --git a/docs/dg/dev/best-practices/non-functional-requirement-templates/monitorable-process-guidelines.md b/docs/dg/dev/best-practices/non-functional-requirement-templates/monitorable-process-guidelines.md
index 97a92418bb5..4a09a38034b 100644
--- a/docs/dg/dev/best-practices/non-functional-requirement-templates/monitorable-process-guidelines.md
+++ b/docs/dg/dev/best-practices/non-functional-requirement-templates/monitorable-process-guidelines.md
@@ -64,7 +64,7 @@ Applies to all application components.
### What not to log?
* Unreasonable logging: Avoid logging without a clear purpose. When deciding to create a log entry, identify at least one use case for the data.
* Performance critical places: Minimize logging in areas where performance is critical. If there's a performance-critical process or a large cycle as a sub-process element, try to strike a balance between performance and traceability.
-* Audit trail: While it's recommended to log the audit trails of significant entity changes, these logs shouldn't be sent to the regular log system due to the sensitive nature of the data typically involved in authentication and authorization.
+* Audit trail: While it's recommended to log the audit trails of significant entity changes, these logs shouldn't be sent to the regular log system because of the sensitive nature of the data typically involved in authentication and authorization.
### Log levels
Appropriately implement the following log levels in application workflows to simplify issue investigations and resolutions. The log levels are based on Syslog [RFC 5424](https://datatracker.ietf.org/doc/html/rfc5424).
diff --git a/docs/dg/dev/best-practices/non-functional-requirement-templates/non-functional-requirement-templates.md b/docs/dg/dev/best-practices/non-functional-requirement-templates/non-functional-requirement-templates.md
index b197070d1f2..9df9173f55f 100644
--- a/docs/dg/dev/best-practices/non-functional-requirement-templates/non-functional-requirement-templates.md
+++ b/docs/dg/dev/best-practices/non-functional-requirement-templates/non-functional-requirement-templates.md
@@ -1,6 +1,6 @@
---
title: Non-functional requirement templates
-description:
+description: Define key system expectations using Spryker's non-functional requirement templates. Focus on performance, scalability, and security to align development goals effectively.
template: concept-topic-template
redirect_from:
---
diff --git a/docs/dg/dev/best-practices/non-functional-requirement-templates/operatable-feature-guidelines.md b/docs/dg/dev/best-practices/non-functional-requirement-templates/operatable-feature-guidelines.md
index e8f80e51df0..9417f330d9f 100644
--- a/docs/dg/dev/best-practices/non-functional-requirement-templates/operatable-feature-guidelines.md
+++ b/docs/dg/dev/best-practices/non-functional-requirement-templates/operatable-feature-guidelines.md
@@ -1,6 +1,6 @@
---
title: Operatable feature guidelines
-description: Guidelines for enabling application operation.
+description: Learn Spryker’s operatable feature guidelines to ensure features are scalable, reliable, and manageable. Optimize performance while maintaining operational efficiency.
last_updated: April 23, 2024
template: concept-topic-template
related:
diff --git a/docs/dg/dev/best-practices/non-functional-requirement-templates/operational-and-deployment-guidelines.md b/docs/dg/dev/best-practices/non-functional-requirement-templates/operational-and-deployment-guidelines.md
index d284447a36c..87c1b80f68b 100644
--- a/docs/dg/dev/best-practices/non-functional-requirement-templates/operational-and-deployment-guidelines.md
+++ b/docs/dg/dev/best-practices/non-functional-requirement-templates/operational-and-deployment-guidelines.md
@@ -43,7 +43,7 @@ Software architecture and design must ensure that there is no negative impact on
## Security guidelines
-Make sure to define and follow your own project's [security best practices](/docs/scos/dev/guidelines/security-guidelines.html).
+Make sure to define and follow your own project's [security best practices](/docs/dg/dev/guidelines/security-guidelines.html).
## Deployability guidelines
diff --git a/docs/dg/dev/best-practices/non-functional-requirement-templates/process-documentation-guidelines.md b/docs/dg/dev/best-practices/non-functional-requirement-templates/process-documentation-guidelines.md
index ea816e3a6dd..79e24709955 100644
--- a/docs/dg/dev/best-practices/non-functional-requirement-templates/process-documentation-guidelines.md
+++ b/docs/dg/dev/best-practices/non-functional-requirement-templates/process-documentation-guidelines.md
@@ -61,7 +61,7 @@ This request is for the deployment of version 1.2.3 of the MyProject application
* Add an additional application server to the load balancer pool.
* Increase the size of the database server's disk.
*Expected behavior:
- * There may be a temporary increase in error log entries due to a known issue with the new version that will be fixed in the next release.
+ * There may be a temporary increase in error log entries because of a known issue with the new version that will be fixed in the next release.
**Impact**:
This deployment will include updates to the application's database connection and API key, as well as changes to the infrastructure. There is a low risk of downtime during the deployment.
diff --git a/docs/dg/dev/code-contribution-guide.md b/docs/dg/dev/code-contribution-guide.md
index 289f6e36360..ef98026e615 100644
--- a/docs/dg/dev/code-contribution-guide.md
+++ b/docs/dg/dev/code-contribution-guide.md
@@ -1,15 +1,12 @@
---
title: Code contribution guide
-description: Contribute to Spryker repositories
+description: Learn how to contribute code to Spryker with this comprehensive guide. Follow best practices for creating, reviewing, and submitting high-quality contributions efficiently.
last_updated: Apr 3, 2024
template: concept-topic-template
originalLink: https://documentation.spryker.com/2021080/docs/code-contribution-guide
originalArticleId: d5ded6f2-5bb9-4288-bc96-3fabf7e32c8f
redirect_from:
- /docs/scos/dev/code-contribution-guide.html
-related:
- - title: Contribute to the documentation
- link: docs/scos/user/intro-to-spryker/contribute-to-the-documentation/contribute-to-the-documentation.html
---
@@ -47,7 +44,7 @@ Spryker uses our proprietary licenses and common open-source licenses. In genera
For example, here is a result of this flow: https://github.com/spryker/product-configurations-rest-api/pull/1.
-If we can't merge a PR due to our release process, we manually introduce the change. Once the change is released, we inform you by closing the PR.
+If we can't merge a PR because of our release process, we manually introduce the change. Once the change is released, we inform you by closing the PR.
## Pull request processing time
@@ -58,4 +55,4 @@ If you create a pull request and feel that the issue is important, [contact supp
\ No newline at end of file
+-->
diff --git a/docs/dg/dev/code-generator.md b/docs/dg/dev/code-generator.md
index 272da22a410..c4243a6cd72 100644
--- a/docs/dg/dev/code-generator.md
+++ b/docs/dg/dev/code-generator.md
@@ -1,5 +1,6 @@
---
title: Code Generator
+description: The code Generator module can generate Yves, Zed, Client Service and shared application code for your Spryker based project.
last_updated: Nov 18, 2020
template: concept-topic-template
originalLink: https://documentation.spryker.com/v1/docs/code-generator
@@ -15,13 +16,13 @@ redirect_from:
- /docs/scos/dev/code-generator.html
related:
- title: Cronjob scheduling
- link: docs/scos/dev/sdk/cronjob-scheduling.html
+ link: docs/dg/dev/backend-development/cronjobs/cronjobs.html
- title: Data import
- link: docs/dg/dev/data-import/page.version/data-import.html
+ link: docs/dg/dev/data-import/202410.0/data-import.html
- title: Development virtual machine, docker containers & console
- link: docs/scos/dev/sdk/development-virtual-machine-docker-containers-and-console.html
+ link: docs/dg/dev/sdks/the-docker-sdk/docker-environment-infrastructure.html
- title: Twig and TwigExtension
- link: docs/scos/dev/sdk/twig-and-twigextension.html
+ link: docs/dg/dev/integrate-and-configure/twig-and-twigextension.html
---
The CodeGenerator module can generate your project code.
diff --git a/docs/dg/dev/data-import/202311.0/data-importers-implementation.md b/docs/dg/dev/data-import/202311.0/data-importers-implementation.md
index 022de1037ea..542fd34373f 100644
--- a/docs/dg/dev/data-import/202311.0/data-importers-implementation.md
+++ b/docs/dg/dev/data-import/202311.0/data-importers-implementation.md
@@ -212,7 +212,7 @@ These actions should be enough to prepare a module-based importer to use.
* Product Set Content Item Importer
* Tax Importer
-Project-level importers work a little bit different. You can still use a module-based approach if you add a new data importer to the project level. Note that it is possible to append it directly to the `DataImport` module on the project level.
+Project-level importers work a little bit different. You can still use a module-based approach if you add a new data importer to the project level. Note that it's possible to append it directly to the `DataImport` module on the project level.
To append a data importer to the DataImport module, do the following:
diff --git a/docs/dg/dev/data-import/202311.0/importing-data-with-the-queue-data-importer.md b/docs/dg/dev/data-import/202311.0/importing-data-with-the-queue-data-importer.md
index a42005aa455..3893a94aa72 100644
--- a/docs/dg/dev/data-import/202311.0/importing-data-with-the-queue-data-importer.md
+++ b/docs/dg/dev/data-import/202311.0/importing-data-with-the-queue-data-importer.md
@@ -23,7 +23,7 @@ Also, queue data import allows you to use different import groups.
## Why do you need it?
-Mainly, it is used to import data in parallel. Once data is stored in a queue, it can be consumed by several consumers at a time, thus roughly dividing total import execution time by the number of consumers.
+Mainly, it's used to import data in parallel. Once data is stored in a queue, it can be consumed by several consumers at a time, thus roughly dividing total import execution time by the number of consumers.
## How does it work?
diff --git a/docs/dg/dev/data-import/202311.0/importing-product-data-with-a-single-file.md b/docs/dg/dev/data-import/202311.0/importing-product-data-with-a-single-file.md
index 654f293a8c8..140d89ca51d 100644
--- a/docs/dg/dev/data-import/202311.0/importing-product-data-with-a-single-file.md
+++ b/docs/dg/dev/data-import/202311.0/importing-product-data-with-a-single-file.md
@@ -40,7 +40,7 @@ The headers in this file are prefixed with the names of the individual product-r
The only exceptions are `abstract_sku` and `concrete_sku` headers that are not prefixed.
-Thus, the CSV file for the main product data import is a combination of data from separate product-related CSV files (except for a [few fields specific for just this file](#specific-fields)). Due to this, when importing corresponding data, the same [dependencies and mandatory fields](#mandatory-fields) as for the separate files, apply to the combined product data import file. For example, if you want to import product image data via the combined product data file (headers *productimage.imageset_name*, *productimage.externalurl_large*, etc.), you should mind the dependencies and mandatory fields as for [product_image.csv](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/import-and-export-data/products-data-import/import-file-details-product-image.csv.html).
+Thus, the CSV file for the main product data import is a combination of data from separate product-related CSV files (except for a [few fields specific for just this file](#specific-fields)). Because of this, when importing corresponding data, the same [dependencies and mandatory fields](#mandatory-fields) as for the separate files, apply to the combined product data import file. For example, if you want to import product image data via the combined product data file (headers *productimage.imageset_name*, *productimage.externalurl_large*, etc.), you should mind the dependencies and mandatory fields as for [product_image.csv](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/import-and-export-data/products-data-import/import-file-details-product-image.csv.html).
By default, the import CSV file resides in data/import/common/{STORE}/. As, for example, the [combined_product_DE.csv](https://github.com/spryker-shop/suite/blob/master/data/import/common/DE/combined_product.csv) file in Spryker Master Suite.
diff --git a/docs/dg/dev/data-import/202404.0/data-importers-implementation.md b/docs/dg/dev/data-import/202404.0/data-importers-implementation.md
index a160b691db6..a17056fd725 100644
--- a/docs/dg/dev/data-import/202404.0/data-importers-implementation.md
+++ b/docs/dg/dev/data-import/202404.0/data-importers-implementation.md
@@ -212,7 +212,7 @@ These actions should be enough to prepare a module-based importer to use.
* Product Set Content Item Importer
* Tax Importer
-Project-level importers work a little bit different. You can still use a module-based approach if you add a new data importer to the project level. Note that it is possible to append it directly to the `DataImport` module on the project level.
+Project-level importers work a little bit different. You can still use a module-based approach if you add a new data importer to the project level. Note that it's possible to append it directly to the `DataImport` module on the project level.
To append a data importer to the DataImport module, do the following:
diff --git a/docs/dg/dev/data-import/202404.0/importing-data-with-the-queue-data-importer.md b/docs/dg/dev/data-import/202404.0/importing-data-with-the-queue-data-importer.md
index d217365bc8b..ef882d2a739 100644
--- a/docs/dg/dev/data-import/202404.0/importing-data-with-the-queue-data-importer.md
+++ b/docs/dg/dev/data-import/202404.0/importing-data-with-the-queue-data-importer.md
@@ -23,7 +23,7 @@ Also, queue data import allows you to use different import groups.
## Why do you need it?
-Mainly, it is used to import data in parallel. Once data is stored in a queue, it can be consumed by several consumers at a time, thus roughly dividing total import execution time by the number of consumers.
+Mainly, it's used to import data in parallel. Once data is stored in a queue, it can be consumed by several consumers at a time, thus roughly dividing total import execution time by the number of consumers.
## How does it work?
diff --git a/docs/dg/dev/data-import/202404.0/importing-product-data-with-a-single-file.md b/docs/dg/dev/data-import/202404.0/importing-product-data-with-a-single-file.md
index 3a4bec6f62c..6cabd475611 100644
--- a/docs/dg/dev/data-import/202404.0/importing-product-data-with-a-single-file.md
+++ b/docs/dg/dev/data-import/202404.0/importing-product-data-with-a-single-file.md
@@ -40,7 +40,7 @@ The headers in this file are prefixed with the names of the individual product-r
The only exceptions are `abstract_sku` and `concrete_sku` headers that are not prefixed.
-Thus, the CSV file for the main product data import is a combination of data from separate product-related CSV files (except for a [few fields specific for just this file](#specific-fields)). Due to this, when importing corresponding data, the same [dependencies and mandatory fields](#mandatory-fields) as for the separate files, apply to the combined product data import file. For example, if you want to import product image data via the combined product data file (headers *productimage.imageset_name*, *productimage.externalurl_large*, etc.), you should mind the dependencies and mandatory fields as for [product_image.csv](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/import-and-export-data/products-data-import/import-file-details-product-image.csv.html).
+Thus, the CSV file for the main product data import is a combination of data from separate product-related CSV files (except for a [few fields specific for just this file](#specific-fields)). Because of this, when importing corresponding data, the same [dependencies and mandatory fields](#mandatory-fields) as for the separate files, apply to the combined product data import file. For example, if you want to import product image data via the combined product data file (headers *productimage.imageset_name*, *productimage.externalurl_large*, etc.), you should mind the dependencies and mandatory fields as for [product_image.csv](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/import-and-export-data/products-data-import/import-file-details-product-image.csv.html).
By default, the import CSV file resides in data/import/common/{STORE}/. As, for example, the [combined_product_DE.csv](https://github.com/spryker-shop/suite/blob/master/data/import/common/DE/combined_product.csv) file in Spryker Master Suite.
diff --git a/docs/dg/dev/data-import/202410.0/data-import.md b/docs/dg/dev/data-import/202410.0/data-import.md
index 81bdf9d7b09..276862a1ffe 100644
--- a/docs/dg/dev/data-import/202410.0/data-import.md
+++ b/docs/dg/dev/data-import/202410.0/data-import.md
@@ -1,6 +1,6 @@
---
title: Data import
-description: Import data from other systems into your Spryker Commerce OS project
+description: Learn how to import data from other systems into your Spryker Cloud Commerce OS based project
last_updated: Sep 7, 2022
template: concept-topic-template
redirect_from:
diff --git a/docs/dg/dev/data-import/202410.0/data-importers-implementation.md b/docs/dg/dev/data-import/202410.0/data-importers-implementation.md
index a160b691db6..a17056fd725 100644
--- a/docs/dg/dev/data-import/202410.0/data-importers-implementation.md
+++ b/docs/dg/dev/data-import/202410.0/data-importers-implementation.md
@@ -212,7 +212,7 @@ These actions should be enough to prepare a module-based importer to use.
* Product Set Content Item Importer
* Tax Importer
-Project-level importers work a little bit different. You can still use a module-based approach if you add a new data importer to the project level. Note that it is possible to append it directly to the `DataImport` module on the project level.
+Project-level importers work a little bit different. You can still use a module-based approach if you add a new data importer to the project level. Note that it's possible to append it directly to the `DataImport` module on the project level.
To append a data importer to the DataImport module, do the following:
diff --git a/docs/dg/dev/data-import/202410.0/importing-data-with-the-queue-data-importer.md b/docs/dg/dev/data-import/202410.0/importing-data-with-the-queue-data-importer.md
index d217365bc8b..ef882d2a739 100644
--- a/docs/dg/dev/data-import/202410.0/importing-data-with-the-queue-data-importer.md
+++ b/docs/dg/dev/data-import/202410.0/importing-data-with-the-queue-data-importer.md
@@ -23,7 +23,7 @@ Also, queue data import allows you to use different import groups.
## Why do you need it?
-Mainly, it is used to import data in parallel. Once data is stored in a queue, it can be consumed by several consumers at a time, thus roughly dividing total import execution time by the number of consumers.
+Mainly, it's used to import data in parallel. Once data is stored in a queue, it can be consumed by several consumers at a time, thus roughly dividing total import execution time by the number of consumers.
## How does it work?
diff --git a/docs/dg/dev/data-import/202410.0/importing-product-data-with-a-single-file.md b/docs/dg/dev/data-import/202410.0/importing-product-data-with-a-single-file.md
index 3a4bec6f62c..6cabd475611 100644
--- a/docs/dg/dev/data-import/202410.0/importing-product-data-with-a-single-file.md
+++ b/docs/dg/dev/data-import/202410.0/importing-product-data-with-a-single-file.md
@@ -40,7 +40,7 @@ The headers in this file are prefixed with the names of the individual product-r
The only exceptions are `abstract_sku` and `concrete_sku` headers that are not prefixed.
-Thus, the CSV file for the main product data import is a combination of data from separate product-related CSV files (except for a [few fields specific for just this file](#specific-fields)). Due to this, when importing corresponding data, the same [dependencies and mandatory fields](#mandatory-fields) as for the separate files, apply to the combined product data import file. For example, if you want to import product image data via the combined product data file (headers *productimage.imageset_name*, *productimage.externalurl_large*, etc.), you should mind the dependencies and mandatory fields as for [product_image.csv](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/import-and-export-data/products-data-import/import-file-details-product-image.csv.html).
+Thus, the CSV file for the main product data import is a combination of data from separate product-related CSV files (except for a [few fields specific for just this file](#specific-fields)). Because of this, when importing corresponding data, the same [dependencies and mandatory fields](#mandatory-fields) as for the separate files, apply to the combined product data import file. For example, if you want to import product image data via the combined product data file (headers *productimage.imageset_name*, *productimage.externalurl_large*, etc.), you should mind the dependencies and mandatory fields as for [product_image.csv](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/import-and-export-data/products-data-import/import-file-details-product-image.csv.html).
By default, the import CSV file resides in data/import/common/{STORE}/. As, for example, the [combined_product_DE.csv](https://github.com/spryker-shop/suite/blob/master/data/import/common/DE/combined_product.csv) file in Spryker Master Suite.
diff --git a/docs/dg/dev/developing-standalone-modules/create-standalone-modules.md b/docs/dg/dev/developing-standalone-modules/create-standalone-modules.md
index 712b0ece6a1..e428ce03963 100644
--- a/docs/dg/dev/developing-standalone-modules/create-standalone-modules.md
+++ b/docs/dg/dev/developing-standalone-modules/create-standalone-modules.md
@@ -1,6 +1,6 @@
---
title: Create standalone modules
-description: How to develop a Spryker module
+description: Learn how you can create standalone modules like extending modules or enabling custom namespace within your Spryker based projects.
last_updated: Jun 7, 2024
template: howto-guide-template
---
diff --git a/docs/dg/dev/developing-standalone-modules/developing-standalone-modules.md b/docs/dg/dev/developing-standalone-modules/developing-standalone-modules.md
index 1575066e41d..f096b03bdb9 100644
--- a/docs/dg/dev/developing-standalone-modules/developing-standalone-modules.md
+++ b/docs/dg/dev/developing-standalone-modules/developing-standalone-modules.md
@@ -1,6 +1,6 @@
---
title: Developing standalone modules
-description: Learn how to develop standalone modules
+description: Learn how you can develop standalone modules like extending modules or enabling custom namespace within your Spryker based projects.
last_updated: Jul 7, 2024
template: concept-topic-template
---
diff --git a/docs/dg/dev/developing-standalone-modules/driving-the-usage-of-standalone-modules.md b/docs/dg/dev/developing-standalone-modules/driving-the-usage-of-standalone-modules.md
index a9b3052cc25..1b55af6c8eb 100644
--- a/docs/dg/dev/developing-standalone-modules/driving-the-usage-of-standalone-modules.md
+++ b/docs/dg/dev/developing-standalone-modules/driving-the-usage-of-standalone-modules.md
@@ -1,6 +1,6 @@
---
title: Driving the usage of standalone modules
-description: Drive Usage and Support with Problems
+description: Learn how you can drive usage and support with problems within your Spryker based projects.
last_updated: Jun 7, 2024
template: howto-guide-template
---
diff --git a/docs/dg/dev/developing-standalone-modules/ensuring-quality-in-standalone-modules.md b/docs/dg/dev/developing-standalone-modules/ensuring-quality-in-standalone-modules.md
index 8c7f804410a..0dfe270f0c8 100644
--- a/docs/dg/dev/developing-standalone-modules/ensuring-quality-in-standalone-modules.md
+++ b/docs/dg/dev/developing-standalone-modules/ensuring-quality-in-standalone-modules.md
@@ -1,6 +1,6 @@
---
title: Ensuring quality in standalone modules
-description: Ensure Quality
+description: Learn how you can ensure quality in standalone modules and adhere to Spryker's code quality within your Spryker based projects.
last_updated: Jun 7, 2024
template: howto-guide-template
---
diff --git a/docs/dg/dev/developing-standalone-modules/prepare-for-standalone-module-development.md b/docs/dg/dev/developing-standalone-modules/prepare-for-standalone-module-development.md
index 5c16cbb7823..7a841a10b74 100644
--- a/docs/dg/dev/developing-standalone-modules/prepare-for-standalone-module-development.md
+++ b/docs/dg/dev/developing-standalone-modules/prepare-for-standalone-module-development.md
@@ -1,6 +1,6 @@
---
title: Prepare for standalone module development
-description: Onboard and learn
+description: Learn how you can prepare for standalone module development within your Spryker based projects.
last_updated: Jun 7, 2024
template: howto-guide-template
---
diff --git a/docs/dg/dev/developing-standalone-modules/publish-standalone-modules-on-github.md b/docs/dg/dev/developing-standalone-modules/publish-standalone-modules-on-github.md
index 08fd88b60cb..d0d335492f0 100644
--- a/docs/dg/dev/developing-standalone-modules/publish-standalone-modules-on-github.md
+++ b/docs/dg/dev/developing-standalone-modules/publish-standalone-modules-on-github.md
@@ -1,6 +1,6 @@
---
title: Publish standalone modules on GitHub
-description: Learn how to publish a standalone module on GitHub
+description: Learn how to publish a standalone module on GitHub with your github account and github repository.
last_updated: Jun 7, 2024
template: howto-guide-template
---
diff --git a/docs/dg/dev/developing-standalone-modules/publish-standalone-modules-on-packagist.md b/docs/dg/dev/developing-standalone-modules/publish-standalone-modules-on-packagist.md
index 859c1e9a737..29d055f7249 100644
--- a/docs/dg/dev/developing-standalone-modules/publish-standalone-modules-on-packagist.md
+++ b/docs/dg/dev/developing-standalone-modules/publish-standalone-modules-on-packagist.md
@@ -1,6 +1,6 @@
---
title: Publish standalone modules on Packagist
-description: Learn how to publish a module on Packagist for distribution
+description: Learn how to publish a module on Packagist for distribution within your Spryker Cloud Commerce OS Project.
last_updated: Jun 7, 2024
template: howto-guide-template
diff --git a/docs/dg/dev/developing-standalone-modules/test-the-compatibility-of-standalone-modules.md b/docs/dg/dev/developing-standalone-modules/test-the-compatibility-of-standalone-modules.md
index f8188a78b30..9fed53747a9 100644
--- a/docs/dg/dev/developing-standalone-modules/test-the-compatibility-of-standalone-modules.md
+++ b/docs/dg/dev/developing-standalone-modules/test-the-compatibility-of-standalone-modules.md
@@ -1,6 +1,6 @@
---
title: Test the compatibility of standalone modules
-description: Ensure compatibility
+description: Learn how to test the compatibility of standalone modules within your Spryker based project.
last_updated: Jun 7, 2024
template: howto-guide-template
---
diff --git a/docs/dg/dev/development-getting-started-guide.md b/docs/dg/dev/development-getting-started-guide.md
index f8c38b066b4..ee96b091437 100644
--- a/docs/dg/dev/development-getting-started-guide.md
+++ b/docs/dg/dev/development-getting-started-guide.md
@@ -85,7 +85,7 @@ To learn about the module versioning approach in Spryker, see [Semantic Versioni
1. Define how to manage the settings in the configuration files with [Configuration management](/docs/dg/dev/backend-development/data-manipulation/configuration-management.html).
2. [Configure services](/docs/dg/dev/integrate-and-configure/configure-services.html).
-3. [Configure ElasticSearch](/docs/pbc/all/search/{{site.version}}/base-shop/tutorials-and-howtos/configure-elasticsearch.html).
+3. [Configure Elasticsearch](/docs/pbc/all/search/{{site.version}}/base-shop/tutorials-and-howtos/configure-elasticsearch.html).
4. [Configure queue](/docs/dg/dev/backend-development/data-manipulation/queue/queue.html).
5. [Configure stores](/docs/dg/dev/internationalization-and-multi-store/set-up-multiple-stores.html#configure-stores).
6. [Set up cronjobs](/docs/dg/dev/backend-development/cronjobs/cronjobs.html).
diff --git a/docs/dg/dev/example-modules.md b/docs/dg/dev/example-modules.md
index 29cda6bc4d0..382d6dacf9f 100644
--- a/docs/dg/dev/example-modules.md
+++ b/docs/dg/dev/example-modules.md
@@ -46,7 +46,7 @@ In contrast to Spryker SCCOS core modules, example modules do not adhere to stri
* While we do our best to keep things compatible, we can't guarantee forward or backward compatibility.
* There is no upgradability support for projects or Demo Shop integrations.
* **Learnability:**
- While documentation is provided when possible, it is not a firm commitment. We encourage community learning and support.
+ While documentation is provided when possible, it's not a firm commitment. We encourage community learning and support.
* **Maintainability:**
* There is no obligation to maintain example modules.
* Example modules may be abandoned at any time.
diff --git a/docs/dg/dev/frontend-development/202311.0/marketplace/angular-services.md b/docs/dg/dev/frontend-development/202311.0/marketplace/angular-services.md
index 8c833c0018f..9d2b0616d06 100644
--- a/docs/dg/dev/frontend-development/202311.0/marketplace/angular-services.md
+++ b/docs/dg/dev/frontend-development/202311.0/marketplace/angular-services.md
@@ -20,7 +20,7 @@ This document describes what Angular Services are, how to create and use them.
## Introduction
The Angular Services are stateless objects which provide useful functionality. These functions can be invoked from any component of Angular, such as Components and Directives. It enables services to organize and share business logic, models, data and functions with other components of an Angular application and thus divide the web application into small, reusable logical units. A service typically encapsulates a particular aspect/function of the system (HTTP, part of business logic).
-Using Angular Services methods, the data is maintained throughout the life of an application, that is, it is never refreshed and is always available.
+Using Angular Services methods, the data is maintained throughout the life of an application, that is, it's never refreshed and is always available.
#### Component communication using Angular services
diff --git a/docs/dg/dev/frontend-development/202311.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md b/docs/dg/dev/frontend-development/202311.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md
index 870a34c2769..944649aae41 100644
--- a/docs/dg/dev/frontend-development/202311.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md
+++ b/docs/dg/dev/frontend-development/202311.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md
@@ -37,7 +37,7 @@ This document explains the Table Feature Batch Actions component in the Componen
Table Feature Batch Actions is a feature of the Table Component that allows triggering batch/multiple actions from rows.
As Table Feature Batch Actions is based on the [Table Feature Selectable](/docs/dg/dev/frontend-development/{{page.version}}/marketplace/table-design/table-feature-extension/table-feature-selectable.html), batch actions must be registered and enabled via the table config. Batch actions are functions that can be performed on multiple items within a table. As soon as at least one row is selected in the table, the batch action bar with allowed actions appears at the top of the table.
-To escape the `batch action mode`, it is necessary to unselect the table rows.
+To escape the `batch action mode`, it's necessary to unselect the table rows.
Check out an example usage of the Table Feature Batch Actions in the `@spryker/table` config.
diff --git a/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/data-transformers/data-transformers.md b/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/data-transformers/data-transformers.md
index 6ee35ca2681..230380540aa 100644
--- a/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/data-transformers/data-transformers.md
+++ b/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/data-transformers/data-transformers.md
@@ -136,7 +136,7 @@ export class CustomDataTransformerService implements
export class RootModule {}
```
-The context in which the Data Transformer operates is determined by the local injector where it is being used.
+The context in which the Data Transformer operates is determined by the local injector where it's being used.
## Interfaces
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md
index d590ac30e95..6214c4109e9 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md
@@ -34,7 +34,7 @@ In this example, the `inject` method is used to resolve a dependency based on a
## Multi-providers
-Most dependencies in an application correspond to only one value, like a class. In some cases, it is useful to have dependencies with multiple values, like HTTP interceptors or normalizers. However, it's not very practical to configure these dependencies separately, because the application needs to access them all together at once. Therefore, you can use a special type of dependency that accepts multiple values and is linked to the same dependency injection token. These are called multi-providers.
+Most dependencies in an application correspond to only one value, like a class. In some cases, it's useful to have dependencies with multiple values, like HTTP interceptors or normalizers. However, it's not very practical to configure these dependencies separately, because the application needs to access them all together at once. Therefore, you can use a special type of dependency that accepts multiple values and is linked to the same dependency injection token. These are called multi-providers.
There are different types of multi-providers based on location an number of asterisks(`*`) in the name of their tokens. They are described in the following sections.
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection.md
index ac547f6b489..95c25ffb041 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/dependency-injection/dependency-injection.md
@@ -14,7 +14,7 @@ Dependency injection (DI) is a design pattern that provides loosely-coupled, mai
In the context of Oryx, DI enables you to customize logic deep inside the framework, which is particularly useful for projects with complex or rapidly-evolving requirements. Without DI, you need to override large portions of the logic or create a lot of boilerplate code. By leveraging DI, you can override logic while still being able to upgrade to new versions of Oryx.
-The key advantage of using Oryx's DI implementation is that it is vanilla JavaScript and can be used in other frameworks as well. Although there are popular DI packages available, using Oryx's implementation ensures seamless integration and compatibility with its features.
+The key advantage of using Oryx's DI implementation is that it's vanilla JavaScript and can be used in other frameworks as well. Although there are popular DI packages available, using Oryx's implementation ensures seamless integration and compatibility with its features.
## Next step
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/oryx-server-side-rendering.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/oryx-server-side-rendering.md
index 2088320d087..4caa2ea26f5 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/oryx-server-side-rendering.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/oryx-server-side-rendering.md
@@ -11,7 +11,7 @@ redirect_from:
-Server-side rendering (SSR), including Static Site Generation (SSG) as a variant, has grown in popularity due to its ability to boost web application performance, facilitate effective Search Engine Optimization (SEO), social sharing, and improve Core Web Vitals (CWV). By delivering pre-rendered HTML from the server or even a content delivery network (CDN) to the client, SSR and SSG lead to quicker initial page load times, improve user experience (UX), and can significantly improve CWV scores. SSG, in particular, pre-renders HTML at build time, resulting in static HTML, CSS, and JavaScript files that can be served directly from a CDN. It is a useful strategy for sites with content that does not change frequently, and can improve performance, scalability, and security.
+Server-side rendering (SSR), including Static Site Generation (SSG) as a variant, has grown in popularity because of its ability to boost web application performance, facilitate effective Search Engine Optimization (SEO), social sharing, and improve Core Web Vitals (CWV). By delivering pre-rendered HTML from the server or even a content delivery network (CDN) to the client, SSR and SSG lead to quicker initial page load times, improve user experience (UX), and can significantly improve CWV scores. SSG, in particular, pre-renders HTML at build time, resulting in static HTML, CSS, and JavaScript files that can be served directly from a CDN. It is a useful strategy for sites with content that does not change frequently, and can improve performance, scalability, and security.
## Differences between server-side and client-side rendering
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md
index 82686e05cd3..2f357d4cbe1 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md
@@ -14,7 +14,7 @@ To compose a frontend application from different backend APIs, Oryx provides a f
## Data models
-In modern web applications, it is common to communicate with an API to retrieve data. However, the response from an API can be complex and not suitable to be directly used in a component. This is where client models come into play. A _client model_ is a representation of data that is tailored specifically for the needs of a client-side application.
+In modern web applications, it's common to communicate with an API to retrieve data. However, the response from an API can be complex and not suitable to be directly used in a component. This is where client models come into play. A _client model_ is a representation of data that is tailored specifically for the needs of a client-side application.
In the Oryx framework, adapters transform API responses into a client model. Adapters make HTTP requests to load data from APIs and provide normalizers or serializers to transform the data into a more readable format. This is especially important when working with complex data standards like JSON-API, as they can be difficult for a component to work with directly.
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactive-components.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactive-components.md
index 34aff77d1d6..0b6730e1dd5 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactive-components.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactive-components.md
@@ -18,7 +18,7 @@ export class ProductPriceComponent extends LitElement {
}
```
-To ensure that components are reusable in different contexts, it is recommended to not couple them directly with the qualifier that is used to load data. For example, `ProductPriceComponent` does not need to be aware of `SKU`, as `SKU` can be determined from the route of the product page, the product card in a list, or the cart entry. Oryx provides a mechanism to set up a so-called context. In the case of product components, the product controller is used to resolve the SKU from the context controller.
+To ensure that components are reusable in different contexts, it's recommended to not couple them directly with the qualifier that is used to load data. For example, `ProductPriceComponent` does not need to be aware of `SKU`, as `SKU` can be determined from the route of the product page, the product card in a list, or the cart entry. Oryx provides a mechanism to set up a so-called context. In the case of product components, the product controller is used to resolve the SKU from the context controller.
`ProductController` resolves the product qualifier (SKU) from the context and returns an observable from `ProductService`. If an SKU is provided statically to the component, `ProductController` also takes `sku` as a component property into account. This can be useful in custom development or for demonstrating the component—for example, in a Storybook.
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactivity.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactivity.md
index a0bf1d0ff83..472954e0ba7 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactivity.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/reactivity.md
@@ -20,7 +20,7 @@ This is achieved by establishing a connection between the user interface and the
Implementing reactivity in a web application is a complex challenge, especially in an SPA where data is loaded asynchronously and in real time from a backend API. Various components dynamically request the same data, and updates of the application state must be managed in a highly efficient way.
-The following is a high-level overview of the reactivity patterns available in Oryx. In the diagram, it is shown using a product component.
+The following is a high-level overview of the reactivity patterns available in Oryx. In the diagram, it's shown using a product component.
{% include diagrams/oryx/reactivity-high-level.md %}
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/signals.md b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/signals.md
index fbbeb20196d..85417a685fd 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/signals.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/architecture/reactivity/signals.md
@@ -117,7 +117,7 @@ class MyComponent extends LitElement {}
This decorator is required to make a component work with signals as expected. With the decorator, the component automatically detects signals and renders changes whenever a signal alters. It does this intelligently, considering only the signals relevant to the last render.
-Some Oryx domain components are not using this decorator directly, as it is already applied to some common domain mixins, like `ContentMixin` or `ProductMixin`.
+Some Oryx domain components are not using this decorator directly, as it's already applied to some common domain mixins, like `ContentMixin` or `ProductMixin`.
### `@elementEffect` directive
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md
index 3d4fbd91430..8120c83aaf5 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md
@@ -119,7 +119,7 @@ appBuilder().withOptions({'your-feature-key': {...}});
### Define default values for feature options
-To avoid forcing users to repeatedly pass the same kind of values, you can provide default values for your feature options. After you define `AppFeature.defaultOptions` for a feature, it is used when a user does not provide any option:
+To avoid forcing users to repeatedly pass the same kind of values, you can provide default values for your feature options. After you define `AppFeature.defaultOptions` for a feature, it's used when a user does not provide any option:
```ts
import { AppFeature } from '@spryker-oryx/core';
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md
index a39b77ead6c..8dce2cc0707 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md
@@ -114,7 +114,7 @@ You can create custom plugins to change the behavior of an Oryx application. The
- `apply()`: main life-cycle method.
- `destroy()`: Optional cleanup method.
-When a plugin is registered to the Oryx application builder, it is _applied_ by invoking the `AppPlugin.apply()` method with an `App` instance as an argument. Then, the plugin behaves as configured.
+When a plugin is registered to the Oryx application builder, it's _applied_ by invoking the `AppPlugin.apply()` method with an `App` instance as an argument. Then, the plugin behaves as configured.
The following additional plugin life-cycle methods are invoked around the main lifecycle of _all_ plugins:
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/styling/oryx-icon-system.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/styling/oryx-icon-system.md
index 3394877d59a..d632428bb5e 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/styling/oryx-icon-system.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/styling/oryx-icon-system.md
@@ -49,7 +49,7 @@ Oryx supports both font-based icons and SVG icons, letting you choose the most s
### Font-based icons
-Font-based icons are a popular choice due to their ease of use and the availability of a wide range of icons. They offer great quality and scalability, staying sharp at various sizes. Additionally, font-based icons can be easily colored using CSS, seamlessly integrating with UI themes.
+Font-based icons are a popular choice because of their ease of use and the availability of a wide range of icons. They offer great quality and scalability, staying sharp at various sizes. Additionally, font-based icons can be easily colored using CSS, seamlessly integrating with UI themes.
Oryx leverages [Material symbols](https://fonts.google.com/icons) and [Font Awesome icons](https://fontawesome.com/). However, you can also add other icon fonts. Material Symbols are built with Variable fonts, enabling developers to edit font characteristics like line weight and fill through CSS.
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/styling/oryx-typography.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/styling/oryx-typography.md
index 406829e3edf..f73666307f0 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/styling/oryx-typography.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-applications/styling/oryx-typography.md
@@ -93,7 +93,7 @@ The headings get `margin: 0` to avoid any clashes in the component layout.
### Semantic HTML structure versus UI
-The semantic usage of heading elements, like h1 or h2, defines the structure, which crawlers and screen readers use to interpret the content. This enables easier content navigation, especially for those with limited sight; screen readers guide and let them skip sections that are not of interest. Consequently, if the structure is not well formatted, for example, when `h3` is followed by an `h5`, it is considered a violation of accessibility best practices.
+The semantic usage of heading elements, like h1 or h2, defines the structure, which crawlers and screen readers use to interpret the content. This enables easier content navigation, especially for those with limited sight; screen readers guide and let them skip sections that are not of interest. Consequently, if the structure is not well formatted, for example, when `h3` is followed by an `h5`, it's considered a violation of accessibility best practices.
A valid structure, however, might conflict with the UI design. UI designers use the headings in combination with the layout, which means that their options are more advanced compared to the structure only. UI designers tend to ignore the structure and favor layout options to emphasize sections of a page.
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-component-types.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-component-types.md
index 230042e35f0..6b5db465693 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-component-types.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-component-types.md
@@ -42,7 +42,7 @@ Oryx functionality is organized in domains. Domain packages contain functional c
Domain components leverage the design system components to ensure a consistent UI/UX. The design system components are integrated with inputs (properties), and all of their events are handled by domain components.
-Domain components integrate with domain services to obtain and update the application state. The services handle the integration with backend APIs and application state management. In a single page application experience, domain components need to support [reactivity](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) to ensure the application state is reflected immediately after it is changed. The complexity of reactivity is avoided as much as possible in components by using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To avoid repeating the boilerplate code that is required for each domain component, domains often provide a mixin. The mixin provides the required properties and signals that can be used by the components.
+Domain components integrate with domain services to obtain and update the application state. The services handle the integration with backend APIs and application state management. In a single page application experience, domain components need to support [reactivity](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) to ensure the application state is reflected immediately after it's changed. The complexity of reactivity is avoided as much as possible in components by using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To avoid repeating the boilerplate code that is required for each domain component, domains often provide a mixin. The mixin provides the required properties and signals that can be used by the components.
Each domain package contains associated domain components. Product components, for example, are part of the `@spryker-oryx/ui` package. The components use a consistent naming convention for class and element names. For example, the Product Title component, is named `ProductTitleComponent` and can be used with the `` element. To avoid clashes with other frameworks, the elements are prefixed with `oryx-`.
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-implementing-components.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-implementing-components.md
index 87ba7c6cd92..07a7a6df172 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-implementing-components.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-implementing-components.md
@@ -8,7 +8,7 @@ redirect_from:
---
-Oryx components are web components built with [Lit](https://lit.dev). Lit is a lightweight open-source framework from Google that's used to build highly efficient web components. Web components can be created with any framework or even with vanilla HTML, CSS, and JavaScript. You can use any other framework instead of Lit. However, some Oryx utilities, like [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html) and component mixins, are available only with Lit.
+Oryx components are web components built with [Lit](https://lit.dev). Lit's a lightweight open-source framework from Google that's used to build highly efficient web components. Web components can be created with any framework or even with vanilla HTML, CSS, and JavaScript. You can use any other framework instead of Lit. However, some Oryx utilities, like [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html) and component mixins, are available only with Lit.
## Implementing a component
@@ -155,7 +155,7 @@ If your application needs to be indexed by crawlers, such as Google Search or Pi
When a component is server-side rendered, some of the browser APIs are not available. Most commonly known are the `window` and `document` objects. Take this into account when implementing custom components.
-Oryx renders pages on the server and returns the minimum amount of JavaScript needed. A component doesn't need JavaScript initially, but when a user start interacting with it, or when the component needs to reflect a certain application state, additional JavaScript needs to be loaded. Loading the component logic at the client side is called _hydration_. Because the component logic is loaded over the network and initialized in the application, hydration is costly. Additionally, the component might need to fetch data from a backend API. Oryx therefore tries to avoid or delay hydration till it is needed.
+Oryx renders pages on the server and returns the minimum amount of JavaScript needed. A component doesn't need JavaScript initially, but when a user start interacting with it, or when the component needs to reflect a certain application state, additional JavaScript needs to be loaded. Loading the component logic at the client side is called _hydration_. Because the component logic is loaded over the network and initialized in the application, hydration is costly. Additionally, the component might need to fetch data from a backend API. Oryx therefore tries to avoid or delay hydration till it's needed.
When developing a component, you need to configure the hydration trigger using the `@hydrate` decorator that can take an event or context. The following example shows how to set up the component to be hydrated when the context is changed:
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-managing-component-options.md b/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-managing-component-options.md
index 824e372344d..9ba83207674 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-managing-component-options.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/building-components/oryx-managing-component-options.md
@@ -121,9 +121,9 @@ protected override render(): TemplateResult {
## Using component options
-To use component options asynchronously, it is important to observe the options and react to updates in the component UI. Oryx provides a [reactive](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) framework with observable data streams that can update the UI using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To simplify the integration in the component logic, `ContentMixin` provides the `$options` signal that can be called in the render logic or other signals.
+To use component options asynchronously, it's important to observe the options and react to updates in the component UI. Oryx provides a [reactive](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) framework with observable data streams that can update the UI using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To simplify the integration in the component logic, `ContentMixin` provides the `$options` signal that can be called in the render logic or other signals.
-The following code shows how to use the `$options` signal. Due to the component option interface, the usage of the signal is type safe.
+The following code shows how to use the `$options` signal. Because of the component option interface, the usage of the signal is type safe.
```ts
@defaultOptions({
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-boilerplate.md b/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-boilerplate.md
index 19e100f83d3..ec7aaedc338 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-boilerplate.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-boilerplate.md
@@ -64,7 +64,7 @@ The following is a breakdown of the different bits of the boilerplate code.
### `package.json`
-`package.json` contains all the dependencies of the project. To simplify the dependency management, all dependencies are pulled through a single preset package. The preset package contains dependencies to all available Oryx packages. This might not be the most optimal setup over time, as it might contain a lot of "dead code", but it is a convenient starting point. As you are getting experienced with Oryx, you can consider creating a narrowed down list of dependencies.
+`package.json` contains all the dependencies of the project. To simplify the dependency management, all dependencies are pulled through a single preset package. The preset package contains dependencies to all available Oryx packages. This might not be the most optimal setup over time, as it might contain a lot of "dead code", but it's a convenient starting point. As you are getting experienced with Oryx, you can consider creating a narrowed down list of dependencies.
That being said, having unused dependencies in your project does _not_ affect the build time or run time of your project. It is only an overhead during the installation process.
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-technology.md b/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-technology.md
index a0070f107c7..9799a2c8f1e 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-technology.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-technology.md
@@ -50,7 +50,7 @@ In Oryx, Web Components are used to create reusable UI components that can be us
## Lit
-Lit is a lightweight library for creating web components using TS and HTML templates. In Oryx, Lit is used to create reusable and encapsulated UI components that can be easily styled and extended. It provides a simple and intuitive API for creating custom elements and lets developers write less boilerplate code.
+Lit's a lightweight library for creating web components using TS and HTML templates. In Oryx, Lit's used to create reusable and encapsulated UI components that can be easily styled and extended. It provides a simple and intuitive API for creating custom elements and lets developers write less boilerplate code.
You can use Lit to customize Oryx, but you can also use another framework to build web components. Advantages of using Lit:
- Reusable component mixins and controllers.
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-versioning.md b/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-versioning.md
index 97e76d4573c..666e0a1fd0b 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-versioning.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/getting-started/oryx-versioning.md
@@ -65,7 +65,7 @@ Oryx consists of a range of packages, applications, and tools. To avoid inadvert
## Backward compatibility
-The Oryx framework provides maximum compatibility with previous versions. If a feature is deprecated, it is removed completely only after a few releases.
+The Oryx framework provides maximum compatibility with previous versions. If a feature is deprecated, it's removed completely only after a few releases.
Minor releases are fully backward compatible and do not require any developer assistance.
diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/atomic-frontend.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/atomic-frontend.md
index 851f9ff9d5d..593c7d40ba4 100644
--- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/atomic-frontend.md
+++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/atomic-frontend.md
@@ -58,7 +58,7 @@ Based on their structure and use, all components are divided into the following
* *Atom*. These are the smallest, most basic building blocks of UI design. Typical examples of atoms are labels, input fields, or buttons. Usually, atoms are very abstract in their essence and limited to a single functionality that can be included in many pages. They are not very useful by themselves. Being the smallest building block of atomic design, atoms cannot include other components.
* *Molecules*. Molecules typically include two or more atoms or other molecules bonded together to serve a single purpose. These structures are already complex enough to have their own properties; however, they must not be overcomplicated and built for wide reuse.
* *Organisms*. Such components are rather specific and already provide sufficient context for the molecules and atoms they are composed of. Usually, organisms do not form a certain page, but they are rather specific as to what they do and what is their function. Typical examples of organisms can include a header, a footer, or a sidebar. Such components are already complex enough to be used directly on a page.
-* *Widgets*. This is a special component type that can be used to inject information from an external data source that might be unavailable On the backend side, a widget must contain logic to access the data source and verify whether it is available. On the frontend side, a widget must provide means to show or hide information in such a way as not to break the functionality of the entire shop if the data source is not available. A typical use case for widgets is to show information from Spryker modules that can be missing in a specific customer implementation. For example, if the Discounts module is not used in a project, this does not break the calculation of the overall price, for which reason discount information is injected as a widget. Generally, it is recommended to limit the use of widgets as much as possible in your projects.
+* *Widgets*. This is a special component type that can be used to inject information from an external data source that might be unavailable On the backend side, a widget must contain logic to access the data source and verify whether it's available. On the frontend side, a widget must provide means to show or hide information in such a way as not to break the functionality of the entire shop if the data source is not available. A typical use case for widgets is to show information from Spryker modules that can be missing in a specific customer implementation. For example, if the Discounts module is not used in a project, this does not break the calculation of the overall price, for which reason discount information is injected as a widget. Generally, it's recommended to limit the use of widgets as much as possible in your projects.
* *Templates*. Templates can be viewed as combinations of components composed according to a specific graphic layout. They are used to define a visual schema for a set of pages. Typically, pages with a common template have the same structure and share most of the content with the exception of a small portion of page-specific or widget-specific information that changes from page to page. Thus, a template serves as a backbone that defines a set of shared components and the overall layout. Examples of templates are the main site layout or the checkout layout.
* *Views*. This is the highest point in the frontend hierarchy. A view is a template filled with specific content for use in a specific case. It represents a specific page or widget. Views are the only components that can be called by the backend directly which means that they also serve as a connection point between the backend and frontend. On the backend side, views are always connected to controllers.
@@ -289,7 +289,7 @@ When defining a component template with Twig, you need to use the following defa
**Attributes:**
* `name` (required). It specifies the component name. This name is also used as the main class name for the component; therefore, the HTML element and modifiers have this name as the base.
- * `jsName` (optional): It is a Javascript name of the component. By convention, whenever Javascript behavior is added to a component, the DOM addressing for elements must be performed using dedicated classnames starting with the `-js` prefix. This prevents confusion in who-does-what: a classname starting with `js-` has no style attached to it, but only Javascript behaviour. On the other hand, any classname that does not start with `js-` is a pure style. If `jsName` is not defined explicitly, it is created automatically by prefing `js-` to the component name.
+ * `jsName` (optional): It is a Javascript name of the component. By convention, whenever Javascript behavior is added to a component, the DOM addressing for elements must be performed using dedicated classnames starting with the `-js` prefix. This prevents confusion in who-does-what: a classname starting with `js-` has no style attached to it, but only Javascript behaviour. On the other hand, any classname that does not start with `js-` is a pure style. If `jsName` is not defined explicitly, it's created automatically by prefing `js-` to the component name.
* `tag` (optional). It specifies the HTML tag name for the component. Every component is defined in the DOM as an HTML class with its dedicated tag name. Therefore, a tag name must be specified. You can use either a standard HTML5 tag name (for example, `p` or `td`) or have a custom element tag name in order to attach Javascript behavior. To create a component with custom behavior defined in Javascript, Web Component specification, specify a custom tag name. If tag name is not specified, `div`is used by default.
* `data`. It is the variable defining the data contract for the component. This variable is used the data contract for the component. The contract consists of the attributes required for the component to function properly. The attributes provided by this variable can be either required or optional. Required attributes must always be defined whenever a component is used, while optional ones can be left undefined. Nevertheless, by convention, attributes cannot have their value undefined. For this reason, if you define an optional attribute in your contract, you must set a default value for it. The default value is used if an attribute value is not set explicitly or by context.
@@ -479,7 +479,7 @@ export default class ComponentName extends Component {
}
```
-The preceding example extend the default Component model defined in the ShopUi application. However, you can extend from any component both on the Spryker core and on the project level. In this case, your new component inherits the logic and behavior of the component it is derived from. The following example shows a component inherited from the default side-drawer component of Spryker Shop:
+The preceding example extend the default Component model defined in the ShopUi application. However, you can extend from any component both on the Spryker core and on the project level. In this case, your new component inherits the logic and behavior of the component it's derived from. The following example shows a component inherited from the default side-drawer component of Spryker Shop:
```ts
// Import class SideDrawer
@@ -499,7 +499,7 @@ The `index.ts` file is required to load the client-side of the component with We
To register the component in the DOM, you need to use the `register` function of the shop application. It accepts two arguments:
-* `name`. It specifies the component's tag name. This name is associated with the component and can be used in Twig to insert the component into a template. Also, it is used in the DOM as a tag name. Whenever a tag with the specified name occurs in the DOM, the Shop Application loads the component.
+* `name`. It specifies the component's tag name. This name is associated with the component and can be used in Twig to insert the component into a template. Also, it's used in the DOM as a tag name. Whenever a tag with the specified name occurs in the DOM, the Shop Application loads the component.
* `importer`. It must be a call of Webpack's import function to import Typescript code for the component. The call must include a Webpack magic comment that specifies which type of import you want for the component, 'lazy' or 'eager'. For details, see [Dynamic Imports](https://webpack.js.org/guides/code-splitting/#dynamic-imports).
diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/customizing-spryker-frontend.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/customizing-spryker-frontend.md
index 4dc1311a266..a63ad0768d3 100644
--- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/customizing-spryker-frontend.md
+++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/customizing-spryker-frontend.md
@@ -28,7 +28,7 @@ This guide reviews customizing Spryker UI on each of these levels.
## Twig
-The visual layout of each component, whether it is a molecule or a whole organism, is defined using Symphony Twig. Twig is a template language for defining the HTML code of pages rendered dynamically. It is a common technology used for building web components, like the ones that comprise Spryker Atomic Frontend.
+The visual layout of each component, whether it's a molecule or a whole organism, is defined using Symphony Twig. Twig is a template language for defining the HTML code of pages rendered dynamically. It is a common technology used for building web components, like the ones that comprise Spryker Atomic Frontend.
For more information about Twig basics, see [Twig Homepage](https://twig.symfony.com/).
diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/frontend-customization-example-b2b-product-details-page.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/frontend-customization-example-b2b-product-details-page.md
index 1e9b73f5579..798172c04d0 100644
--- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/frontend-customization-example-b2b-product-details-page.md
+++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/frontend-customization-example-b2b-product-details-page.md
@@ -17,7 +17,7 @@ related:
In Spryker, front-end elements have dedicated SCSS styles. To show you how to customize the Spryker front end, we broke down the *Product Details* page from our [B2B Demo Shop](/docs/about/all/b2b-suite.html#b2b-demo-shop) into separate elements with their respective style files. To customize a particular element, you adjust the code in the respective style file.
-You can see the [full version of this page](https://www.de.b2b.demo-spryker.com/en/soennecken-permanentmarker-4mm-rundspitze-M22663) in our B2B Demo Shop.
+You can see the [full version of this page](https://www.b2b-eu.demo-spryker.com/en/soennecken-permanentmarker-4mm-rundspitze-M22663) in our B2B Demo Shop.
![B2B-1](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Development+Guide/Front-End/Yves/Atomic+Frontend/%D0%A1ustomization+example+-+B2B+Product+Details+page/b2b-1.png)
diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/frontend-customization-example-b2c-product-details-page.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/frontend-customization-example-b2c-product-details-page.md
index 490123e9d58..b0b218e2a4d 100644
--- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/frontend-customization-example-b2c-product-details-page.md
+++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/frontend-customization-example-b2c-product-details-page.md
@@ -17,7 +17,7 @@ related:
In Spryker, front-end elements have dedicated SCSS styles. To show you how to customize the Spryker front end, we broke down the *Product Details* page from our [B2C Demo Shop](/docs/about/all/b2c-suite.html#b2c-demo-shop) into separate elements with their respective style files. To customize a particular element, you adjust the code in the respective style file.
-You can see the [full version of this page](https://www.de.b2c.demo-spryker.com/en/acer-aspire-s7-134) in our B2C Demo Shop.
+You can see the [full version of this page](https://www.b2c-eu.demo-spryker.com/en/acer-aspire-s7-134) in our B2C Demo Shop.
![B2C-1](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Development+Guide/Front-End/Yves/Atomic+Frontend/%D0%A1ustomization+example+-+B2C+Product+Details+page/b2c-1.png)
diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md
index 31e3add1192..6c85eb8d94e 100644
--- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md
+++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md
@@ -188,6 +188,6 @@ $('.any-target-selector').countdown('2100/01/01', function (event: any) {
{% info_block errorBox %}
-Make sure that it is invoked inside/after `mountCallback (readyCallback` can be used as well, but it's now deprecated).
+Make sure that it's invoked inside/after `mountCallback (readyCallback` can be used as well, but it's now deprecated).
{% endinfo_block %}
diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/extending-components.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/extending-components.md
index 823d82f3b81..0554c86063b 100644
--- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/extending-components.md
+++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/extending-components.md
@@ -22,7 +22,7 @@ Let us review the process of extending a component on the example of **side-draw
![Open side drawer](https://spryker.s3.eu-central-1.amazonaws.com/docs/Tutorials/Introduction/Customize+Frontend/open-side-drawer.png)
-The following tutorial shows how to create a new component based on the default side drawer. The new side drawer will show an alert whenever it is present on a page. Also, the component outlook will be different.
+The following tutorial shows how to create a new component based on the default side drawer. The new side drawer will show an alert whenever it's present on a page. Also, the component outlook will be different.
## 1. Create component folder
@@ -66,7 +66,7 @@ Now, let us customize the template of the source component. The original templa
Apart from changing the icon, we are going to use different colors. This can be done via styles.
-First of all, we need to inherit the styles of the source component (_side-drawer_). It has a mixin called **shop-ui-side-drawer**. Since it is a core component shipped with Spryker Shop Suite, this mixin is shared. Therefore, it can be accessed everywhere in Shop UI. To inherit the styles, we need to include the mixin in the _SCSS_ file of our new component. To render the block, elements and modifiers with the class name of the new component, we need to pass its class name to the mixin.
+First of all, we need to inherit the styles of the source component (_side-drawer_). It has a mixin called **shop-ui-side-drawer**. Since it's a core component shipped with Spryker Shop Suite, this mixin is shared. Therefore, it can be accessed everywhere in Shop UI. To inherit the styles, we need to include the mixin in the _SCSS_ file of our new component. To render the block, elements and modifiers with the class name of the new component, we need to pass its class name to the mixin.
Let us create file `new-existing-component-side-drawer.scss`, include the original mixin of the _side-drawer_ component, and pass the class name of the new component we are creating:
diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/overriding-components.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/overriding-components.md
index 382ef41006f..075d3f83f8b 100644
--- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/overriding-components.md
+++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/overriding-components.md
@@ -41,7 +41,7 @@ To override the global component, the Twig file name on the project level must b
} {% raw %}%}{% endraw %}
```
-Since the new component will be used everywhere instead of the global one, it is also recommended to replicate the data contracts. For this purpose, the **data** and **attributes** properties need to be configured the same as in the source component. If you are going to change the outlook of the component only, without changing its **data** property, attributes etc, you can copy the source Twig file, and then make changes to the **body** block only. The block contains the visual layout of a component.
+Since the new component will be used everywhere instead of the global one, it's also recommended to replicate the data contracts. For this purpose, the **data** and **attributes** properties need to be configured the same as in the source component. If you are going to change the outlook of the component only, without changing its **data** property, attributes etc, you can copy the source Twig file, and then make changes to the **body** block only. The block contains the visual layout of a component.
As we are not going to change the component template, let us copy the whole of the source twig implementation (`vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/simple-carousel/simple-carousel.twig`) to the project level (`src/Pyz/Yves/ShopUi/Theme/default/components/molecules/simple-carousel.twig`). The Twig file will look as follows:
diff --git a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/using-components.md b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/using-components.md
index b6f9784c011..bc257b0f176 100644
--- a/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/using-components.md
+++ b/docs/dg/dev/frontend-development/202311.0/yves/atomic-frontend/managing-components/using-components.md
@@ -69,7 +69,7 @@ For more details, see section _Twig_ in [Atomic Frontend](/docs/dg/dev/frontend-
## Include
-By including a component, you place it on a page as is. Each component has the `data`, `attributes`, and other properties that allow passing the necessary information to configure it, but apart from that, you can't change it. The outlook of the component depends only on configuration. By including an element, you also pass the context of the page where it is added.
+By including a component, you place it on a page as is. Each component has the `data`, `attributes`, and other properties that allow passing the necessary information to configure it, but apart from that, you can't change it. The outlook of the component depends only on configuration. By including an element, you also pass the context of the page where it's added.
The following block demonstrates how to include component `new-component-counter`.
```twig
diff --git a/docs/dg/dev/frontend-development/202311.0/yves/frontend-assets-building-and-loading.md b/docs/dg/dev/frontend-development/202311.0/yves/frontend-assets-building-and-loading.md
index a94bbee40fa..93528535952 100644
--- a/docs/dg/dev/frontend-development/202311.0/yves/frontend-assets-building-and-loading.md
+++ b/docs/dg/dev/frontend-development/202311.0/yves/frontend-assets-building-and-loading.md
@@ -22,7 +22,7 @@ To support the assets loading behavior as described above, most pages considered
For the landing pages, there is the `page-critical-path` layout defining the asset's loading behavior. It is an extension of the `page-blank` layout with the overwritten `nonCriticalStyles` and `styleLazyLoader` blocks. The `page-critical-path` contains a `style-loader` component before the closing tag of ``. The `style-loader` component is responsible for loading the non-critical CSS only after the whole page is loaded.
-The `page-critical-path` layout uses cookies to track whether it is the first session on the site. If it is the first session, the critical CSS and utils are loaded into the `` tag at the start of the page loading. Only after the whole page is loaded, the `style-loader` component appends the non-critical CSS to the end of the `` tag. Otherwise, the approach for the non-landing pages is used.
+The `page-critical-path` layout uses cookies to track whether it's the first session on the site. If it's the first session, the critical CSS and utils are loaded into the `` tag at the start of the page loading. Only after the whole page is loaded, the `style-loader` component appends the non-critical CSS to the end of the `` tag. Otherwise, the approach for the non-landing pages is used.
The main purpose of the page-critical-path layout is to use the CSS Lazy Load only for the landing pages. To enable the CSS Lazy Load for your project, see [Frontend CSS Lazy Load integration](/docs/dg/dev/integrate-and-configure/integrate-css-lazy-loading.html).
@@ -46,7 +46,7 @@ A *polyfill* is a code that is used to provide modern functionality for older br
## Cache-busting mechanism
-The main idea of the *cache-busting mechanism* is to provide an ability to reset JS/CSS cache for a newly deployed version so that the new assets are delivered to the frontend applications. It is achieved by adding a hash to every asset path using an environment variable `SPRYKER_BUILD_HASH` that lets you reset the browser cache instead of a namespace variable. The path of the resources on Yves is displayed with this hash folder `assets/SPRYKER_BUILD_HASH/default/css/yves_default.app.css`. If the project is set up by Docker, the `assets` folder is present in the Docker container in a production environment. Otherwise, if it is a development environment, the `assets` folder is in a public `assets` folder rather than a container.
+The main idea of the *cache-busting mechanism* is to provide an ability to reset JS/CSS cache for a newly deployed version so that the new assets are delivered to the frontend applications. It is achieved by adding a hash to every asset path using an environment variable `SPRYKER_BUILD_HASH` that lets you reset the browser cache instead of a namespace variable. The path of the resources on Yves is displayed with this hash folder `assets/SPRYKER_BUILD_HASH/default/css/yves_default.app.css`. If the project is set up by Docker, the `assets` folder is present in the Docker container in a production environment. Otherwise, if it's a development environment, the `assets` folder is in a public `assets` folder rather than a container.
## `isCssLazyLoadSupported` Twig variable
diff --git a/docs/dg/dev/frontend-development/202311.0/yves/frontend-builder-for-yves.md b/docs/dg/dev/frontend-development/202311.0/yves/frontend-builder-for-yves.md
index 30a021c693c..396cbb51467 100644
--- a/docs/dg/dev/frontend-development/202311.0/yves/frontend-builder-for-yves.md
+++ b/docs/dg/dev/frontend-development/202311.0/yves/frontend-builder-for-yves.md
@@ -96,7 +96,7 @@ class TwigConfig extends SprykerTwigConfig
All public assets are generated into `/public/Yves/` plus the path defined in the config file, which is `assets/%namespace%/%theme%/` by default.
-For example, for the `DE` namespace and default theme, it is`/public/Yves/assets/DE/default/`.
+For example, for the `DE` namespace and default theme, it's`/public/Yves/assets/DE/default/`.
All incoming files (images, fonts, etc.) are copied from `global` (for every namespace) and `DE` folders:
diff --git a/docs/dg/dev/frontend-development/202311.0/yves/multi-theme.md b/docs/dg/dev/frontend-development/202311.0/yves/multi-theme.md
index 71d8bb6d200..ef15d7f0d96 100644
--- a/docs/dg/dev/frontend-development/202311.0/yves/multi-theme.md
+++ b/docs/dg/dev/frontend-development/202311.0/yves/multi-theme.md
@@ -21,7 +21,7 @@ A theme is a combination of twig, CSS and JS files that make your user interface
* **Current Theme**—a single theme defined on a project level. E.g., B2B-theme, B2C-theme.
* **Default Theme**—a theme provided from Spryker by default and used in the Spryker Commerce OS. Used for incremental project updates (start from default and change components one-by-one) and a graceful fallback in case Spryker provides a new functionality which does not have own frontend in a project.
-From now on, besides the default theme, you, as a shop owner, can create and use different themes for different stores. When you select a theme, you decide how your shop is displayed. For example, you may have a New Year theme with the New year attributes that is enabled every year during the New Year holidays. Due to the development of the Spryker Commerce OS, the entities that previously were called stores (DE, EN, AT) - are now renamed into namespaces.
+From now on, besides the default theme, you, as a shop owner, can create and use different themes for different stores. When you select a theme, you decide how your shop is displayed. For example, you may have a New Year theme with the New year attributes that is enabled every year during the New Year holidays. Because of the development of the Spryker Commerce OS, the entities that previously were called stores (DE, EN, AT) - are now renamed into namespaces.
```xml
{
diff --git a/docs/dg/dev/frontend-development/202404.0/marketplace/angular-services.md b/docs/dg/dev/frontend-development/202404.0/marketplace/angular-services.md
index 4f3f6c8acdc..cd8881a5dc9 100644
--- a/docs/dg/dev/frontend-development/202404.0/marketplace/angular-services.md
+++ b/docs/dg/dev/frontend-development/202404.0/marketplace/angular-services.md
@@ -20,7 +20,7 @@ This document describes what Angular Services are, how to create and use them.
## Introduction
The Angular Services are stateless objects which provide useful functionality. These functions can be invoked from any component of Angular, such as Components and Directives. It enables services to organize and share business logic, models, data and functions with other components of an Angular application and thus divide the web application into small, reusable logical units. A service typically encapsulates a particular aspect/function of the system (HTTP, part of business logic).
-Using Angular Services methods, the data is maintained throughout the life of an application, that is, it is never refreshed and is always available.
+Using Angular Services methods, the data is maintained throughout the life of an application, that is, it's never refreshed and is always available.
#### Component communication using Angular services
diff --git a/docs/dg/dev/frontend-development/202404.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md b/docs/dg/dev/frontend-development/202404.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md
index 1af2feaf23d..ff8232b5a92 100644
--- a/docs/dg/dev/frontend-development/202404.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md
+++ b/docs/dg/dev/frontend-development/202404.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md
@@ -37,7 +37,7 @@ This document explains the Table Feature Batch Actions component in the Componen
Table Feature Batch Actions is a feature of the Table Component that allows triggering batch/multiple actions from rows.
As Table Feature Batch Actions is based on the [Table Feature Selectable](/docs/dg/dev/frontend-development/{{page.version}}/marketplace/table-design/table-feature-extension/table-feature-selectable.html), batch actions must be registered and enabled via the table config. Batch actions are functions that can be performed on multiple items within a table. As soon as at least one row is selected in the table, the batch action bar with allowed actions appears at the top of the table.
-To escape the `batch action mode`, it is necessary to unselect the table rows.
+To escape the `batch action mode`, it's necessary to unselect the table rows.
Check out an example usage of the Table Feature Batch Actions in the `@spryker/table` config.
diff --git a/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/data-transformers/data-transformers.md b/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/data-transformers/data-transformers.md
index 1fdbbfcd893..782bb5430ca 100644
--- a/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/data-transformers/data-transformers.md
+++ b/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/data-transformers/data-transformers.md
@@ -136,7 +136,7 @@ export class CustomDataTransformerService implements
export class RootModule {}
```
-The context in which the Data Transformer operates is determined by the local injector where it is being used.
+The context in which the Data Transformer operates is determined by the local injector where it's being used.
## Interfaces
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md
index 10aecded4ec..8ea3cef5a23 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md
@@ -34,7 +34,7 @@ In this example, the `inject` method is used to resolve a dependency based on a
## Multi-providers
-Most dependencies in an application correspond to only one value, like a class. In some cases, it is useful to have dependencies with multiple values, like HTTP interceptors or normalizers. However, it's not very practical to configure these dependencies separately, because the application needs to access them all together at once. Therefore, you can use a special type of dependency that accepts multiple values and is linked to the same dependency injection token. These are called multi-providers.
+Most dependencies in an application correspond to only one value, like a class. In some cases, it's useful to have dependencies with multiple values, like HTTP interceptors or normalizers. However, it's not very practical to configure these dependencies separately, because the application needs to access them all together at once. Therefore, you can use a special type of dependency that accepts multiple values and is linked to the same dependency injection token. These are called multi-providers.
There are different types of multi-providers based on location an number of asterisks(`*`) in the name of their tokens. They are described in the following sections.
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection.md
index facb315f087..d5a337bbeb8 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/dependency-injection/dependency-injection.md
@@ -14,7 +14,7 @@ Dependency injection (DI) is a design pattern that provides loosely-coupled, mai
In the context of Oryx, DI enables you to customize logic deep inside the framework, which is particularly useful for projects with complex or rapidly-evolving requirements. Without DI, you need to override large portions of the logic or create a lot of boilerplate code. By leveraging DI, you can override logic while still being able to upgrade to new versions of Oryx.
-The key advantage of using Oryx's DI implementation is that it is vanilla JavaScript and can be used in other frameworks as well. Although there are popular DI packages available, using Oryx's implementation ensures seamless integration and compatibility with its features.
+The key advantage of using Oryx's DI implementation is that it's vanilla JavaScript and can be used in other frameworks as well. Although there are popular DI packages available, using Oryx's implementation ensures seamless integration and compatibility with its features.
## Next step
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/oryx-server-side-rendering.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/oryx-server-side-rendering.md
index d9ab2be3285..8434c74870f 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/oryx-server-side-rendering.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/oryx-server-side-rendering.md
@@ -11,7 +11,7 @@ redirect_from:
-Server-side rendering (SSR), including Static Site Generation (SSG) as a variant, has grown in popularity due to its ability to boost web application performance, facilitate effective Search Engine Optimization (SEO), social sharing, and improve Core Web Vitals (CWV). By delivering pre-rendered HTML from the server or even a content delivery network (CDN) to the client, SSR and SSG lead to quicker initial page load times, improve user experience (UX), and can significantly improve CWV scores. SSG, in particular, pre-renders HTML at build time, resulting in static HTML, CSS, and JavaScript files that can be served directly from a CDN. It is a useful strategy for sites with content that does not change frequently, and can improve performance, scalability, and security.
+Server-side rendering (SSR), including Static Site Generation (SSG) as a variant, has grown in popularity because of its ability to boost web application performance, facilitate effective Search Engine Optimization (SEO), social sharing, and improve Core Web Vitals (CWV). By delivering pre-rendered HTML from the server or even a content delivery network (CDN) to the client, SSR and SSG lead to quicker initial page load times, improve user experience (UX), and can significantly improve CWV scores. SSG, in particular, pre-renders HTML at build time, resulting in static HTML, CSS, and JavaScript files that can be served directly from a CDN. It is a useful strategy for sites with content that does not change frequently, and can improve performance, scalability, and security.
## Differences between server-side and client-side rendering
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md
index 0db2e871329..e214b37efbe 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md
@@ -14,7 +14,7 @@ To compose a frontend application from different backend APIs, Oryx provides a f
## Data models
-In modern web applications, it is common to communicate with an API to retrieve data. However, the response from an API can be complex and not suitable to be directly used in a component. This is where client models come into play. A _client model_ is a representation of data that is tailored specifically for the needs of a client-side application.
+In modern web applications, it's common to communicate with an API to retrieve data. However, the response from an API can be complex and not suitable to be directly used in a component. This is where client models come into play. A _client model_ is a representation of data that is tailored specifically for the needs of a client-side application.
In the Oryx framework, adapters transform API responses into a client model. Adapters make HTTP requests to load data from APIs and provide normalizers or serializers to transform the data into a more readable format. This is especially important when working with complex data standards like JSON-API, as they can be difficult for a component to work with directly.
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactive-components.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactive-components.md
index 9d96b7308ce..713bd391ca5 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactive-components.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactive-components.md
@@ -18,7 +18,7 @@ export class ProductPriceComponent extends LitElement {
}
```
-To ensure that components are reusable in different contexts, it is recommended to not couple them directly with the qualifier that is used to load data. For example, `ProductPriceComponent` does not need to be aware of `SKU`, as `SKU` can be determined from the route of the product page, the product card in a list, or the cart entry. Oryx provides a mechanism to set up a so-called context. In the case of product components, the product controller is used to resolve the SKU from the context controller.
+To ensure that components are reusable in different contexts, it's recommended to not couple them directly with the qualifier that is used to load data. For example, `ProductPriceComponent` does not need to be aware of `SKU`, as `SKU` can be determined from the route of the product page, the product card in a list, or the cart entry. Oryx provides a mechanism to set up a so-called context. In the case of product components, the product controller is used to resolve the SKU from the context controller.
`ProductController` resolves the product qualifier (SKU) from the context and returns an observable from `ProductService`. If an SKU is provided statically to the component, `ProductController` also takes `sku` as a component property into account. This can be useful in custom development or for demonstrating the component—for example, in a Storybook.
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactivity.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactivity.md
index 1c9e8965ecb..4d96ab0184f 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactivity.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/reactivity.md
@@ -20,7 +20,7 @@ This is achieved by establishing a connection between the user interface and the
Implementing reactivity in a web application is a complex challenge, especially in an SPA where data is loaded asynchronously and in real time from a backend API. Various components dynamically request the same data, and updates of the application state must be managed in a highly efficient way.
-The following is a high-level overview of the reactivity patterns available in Oryx. In the diagram, it is shown using a product component.
+The following is a high-level overview of the reactivity patterns available in Oryx. In the diagram, it's shown using a product component.
{% include diagrams/oryx/reactivity-high-level.md %}
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/signals.md b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/signals.md
index 2e35806be3b..a6f92dcd9b7 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/signals.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/architecture/reactivity/signals.md
@@ -117,7 +117,7 @@ class MyComponent extends LitElement {}
This decorator is required to make a component work with signals as expected. With the decorator, the component automatically detects signals and renders changes whenever a signal alters. It does this intelligently, considering only the signals relevant to the last render.
-Some Oryx domain components are not using this decorator directly, as it is already applied to some common domain mixins, like `ContentMixin` or `ProductMixin`.
+Some Oryx domain components are not using this decorator directly, as it's already applied to some common domain mixins, like `ContentMixin` or `ProductMixin`.
### `@elementEffect` directive
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md
index 8ce85c89a88..79696bb5643 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md
@@ -119,7 +119,7 @@ appBuilder().withOptions({'your-feature-key': {...}});
### Define default values for feature options
-To avoid forcing users to repeatedly pass the same kind of values, you can provide default values for your feature options. After you define `AppFeature.defaultOptions` for a feature, it is used when a user does not provide any option:
+To avoid forcing users to repeatedly pass the same kind of values, you can provide default values for your feature options. After you define `AppFeature.defaultOptions` for a feature, it's used when a user does not provide any option:
```ts
import { AppFeature } from '@spryker-oryx/core';
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md
index 12f074dd38a..557dfa5d512 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md
@@ -114,7 +114,7 @@ You can create custom plugins to change the behavior of an Oryx application. The
- `apply()`: main life-cycle method.
- `destroy()`: Optional cleanup method.
-When a plugin is registered to the Oryx application builder, it is _applied_ by invoking the `AppPlugin.apply()` method with an `App` instance as an argument. Then, the plugin behaves as configured.
+When a plugin is registered to the Oryx application builder, it's _applied_ by invoking the `AppPlugin.apply()` method with an `App` instance as an argument. Then, the plugin behaves as configured.
The following additional plugin life-cycle methods are invoked around the main lifecycle of _all_ plugins:
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/styling/oryx-icon-system.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/styling/oryx-icon-system.md
index 3ef9f3f6bb1..feebd438e81 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/styling/oryx-icon-system.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/styling/oryx-icon-system.md
@@ -49,7 +49,7 @@ Oryx supports both font-based icons and SVG icons, letting you choose the most s
### Font-based icons
-Font-based icons are a popular choice due to their ease of use and the availability of a wide range of icons. They offer great quality and scalability, staying sharp at various sizes. Additionally, font-based icons can be easily colored using CSS, seamlessly integrating with UI themes.
+Font-based icons are a popular choice because of their ease of use and the availability of a wide range of icons. They offer great quality and scalability, staying sharp at various sizes. Additionally, font-based icons can be easily colored using CSS, seamlessly integrating with UI themes.
Oryx leverages [Material symbols](https://fonts.google.com/icons) and [Font Awesome icons](https://fontawesome.com/). However, you can also add other icon fonts. Material Symbols are built with Variable fonts, enabling developers to edit font characteristics like line weight and fill through CSS.
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/styling/oryx-typography.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/styling/oryx-typography.md
index c794c492ac2..2bab0735ad3 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/styling/oryx-typography.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-applications/styling/oryx-typography.md
@@ -93,7 +93,7 @@ The headings get `margin: 0` to avoid any clashes in the component layout.
### Semantic HTML structure versus UI
-The semantic usage of heading elements, like h1 or h2, defines the structure, which crawlers and screen readers use to interpret the content. This enables easier content navigation, especially for those with limited sight; screen readers guide and let them skip sections that are not of interest. Consequently, if the structure is not well formatted, for example, when `h3` is followed by an `h5`, it is considered a violation of accessibility best practices.
+The semantic usage of heading elements, like h1 or h2, defines the structure, which crawlers and screen readers use to interpret the content. This enables easier content navigation, especially for those with limited sight; screen readers guide and let them skip sections that are not of interest. Consequently, if the structure is not well formatted, for example, when `h3` is followed by an `h5`, it's considered a violation of accessibility best practices.
A valid structure, however, might conflict with the UI design. UI designers use the headings in combination with the layout, which means that their options are more advanced compared to the structure only. UI designers tend to ignore the structure and favor layout options to emphasize sections of a page.
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-component-types.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-component-types.md
index bda740dc821..0b895bac855 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-component-types.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-component-types.md
@@ -42,7 +42,7 @@ Oryx functionality is organized in domains. Domain packages contain functional c
Domain components leverage the design system components to ensure a consistent UI/UX. The design system components are integrated with inputs (properties), and all of their events are handled by domain components.
-Domain components integrate with domain services to obtain and update the application state. The services handle the integration with backend APIs and application state management. In a single page application experience, domain components need to support [reactivity](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) to ensure the application state is reflected immediately after it is changed. The complexity of reactivity is avoided as much as possible in components by using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To avoid repeating the boilerplate code that is required for each domain component, domains often provide a mixin. The mixin provides the required properties and signals that can be used by the components.
+Domain components integrate with domain services to obtain and update the application state. The services handle the integration with backend APIs and application state management. In a single page application experience, domain components need to support [reactivity](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) to ensure the application state is reflected immediately after it's changed. The complexity of reactivity is avoided as much as possible in components by using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To avoid repeating the boilerplate code that is required for each domain component, domains often provide a mixin. The mixin provides the required properties and signals that can be used by the components.
Each domain package contains associated domain components. Product components, for example, are part of the `@spryker-oryx/ui` package. The components use a consistent naming convention for class and element names. For example, the Product Title component, is named `ProductTitleComponent` and can be used with the `` element. To avoid clashes with other frameworks, the elements are prefixed with `oryx-`.
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-implementing-components.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-implementing-components.md
index 91615773196..15f31cce932 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-implementing-components.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-implementing-components.md
@@ -8,7 +8,7 @@ redirect_from:
---
-Oryx components are web components built with [Lit](https://lit.dev). Lit is a lightweight open-source framework from Google that's used to build highly efficient web components. Web components can be created with any framework or even with vanilla HTML, CSS, and JavaScript. You can use any other framework instead of Lit. However, some Oryx utilities, like [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html) and component mixins, are available only with Lit.
+Oryx components are web components built with [Lit](https://lit.dev). Lit's a lightweight open-source framework from Google that's used to build highly efficient web components. Web components can be created with any framework or even with vanilla HTML, CSS, and JavaScript. You can use any other framework instead of Lit. However, some Oryx utilities, like [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html) and component mixins, are available only with Lit.
## Implementing a component
@@ -155,7 +155,7 @@ If your application needs to be indexed by crawlers, such as Google Search or Pi
When a component is server-side rendered, some of the browser APIs are not available. Most commonly known are the `window` and `document` objects. Take this into account when implementing custom components.
-Oryx renders pages on the server and returns the minimum amount of JavaScript needed. A component doesn't need JavaScript initially, but when a user start interacting with it, or when the component needs to reflect a certain application state, additional JavaScript needs to be loaded. Loading the component logic at the client side is called _hydration_. Because the component logic is loaded over the network and initialized in the application, hydration is costly. Additionally, the component might need to fetch data from a backend API. Oryx therefore tries to avoid or delay hydration till it is needed.
+Oryx renders pages on the server and returns the minimum amount of JavaScript needed. A component doesn't need JavaScript initially, but when a user start interacting with it, or when the component needs to reflect a certain application state, additional JavaScript needs to be loaded. Loading the component logic at the client side is called _hydration_. Because the component logic is loaded over the network and initialized in the application, hydration is costly. Additionally, the component might need to fetch data from a backend API. Oryx therefore tries to avoid or delay hydration till it's needed.
When developing a component, you need to configure the hydration trigger using the `@hydrate` decorator that can take an event or context. The following example shows how to set up the component to be hydrated when the context is changed:
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-managing-component-options.md b/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-managing-component-options.md
index ee8f268157e..6a1dd2177c9 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-managing-component-options.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/building-components/oryx-managing-component-options.md
@@ -121,9 +121,9 @@ protected override render(): TemplateResult {
## Using component options
-To use component options asynchronously, it is important to observe the options and react to updates in the component UI. Oryx provides a [reactive](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) framework with observable data streams that can update the UI using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To simplify the integration in the component logic, `ContentMixin` provides the `$options` signal that can be called in the render logic or other signals.
+To use component options asynchronously, it's important to observe the options and react to updates in the component UI. Oryx provides a [reactive](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) framework with observable data streams that can update the UI using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To simplify the integration in the component logic, `ContentMixin` provides the `$options` signal that can be called in the render logic or other signals.
-The following code shows how to use the `$options` signal. Due to the component option interface, the usage of the signal is type safe.
+The following code shows how to use the `$options` signal. Because of the component option interface, the usage of the signal is type safe.
```ts
@defaultOptions({
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-boilerplate.md b/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-boilerplate.md
index 022ed2fe44a..83d8d871f18 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-boilerplate.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-boilerplate.md
@@ -64,7 +64,7 @@ The following is a breakdown of the different bits of the boilerplate code.
### `package.json`
-`package.json` contains all the dependencies of the project. To simplify the dependency management, all dependencies are pulled through a single preset package. The preset package contains dependencies to all available Oryx packages. This might not be the most optimal setup over time, as it might contain a lot of "dead code", but it is a convenient starting point. As you are getting experienced with Oryx, you can consider creating a narrowed down list of dependencies.
+`package.json` contains all the dependencies of the project. To simplify the dependency management, all dependencies are pulled through a single preset package. The preset package contains dependencies to all available Oryx packages. This might not be the most optimal setup over time, as it might contain a lot of "dead code", but it's a convenient starting point. As you are getting experienced with Oryx, you can consider creating a narrowed down list of dependencies.
That being said, having unused dependencies in your project does _not_ affect the build time or run time of your project. It is only an overhead during the installation process.
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-technology.md b/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-technology.md
index d2ee1d78eb9..c25c09d2d0c 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-technology.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-technology.md
@@ -50,7 +50,7 @@ In Oryx, Web Components are used to create reusable UI components that can be us
## Lit
-Lit is a lightweight library for creating web components using TS and HTML templates. In Oryx, Lit is used to create reusable and encapsulated UI components that can be easily styled and extended. It provides a simple and intuitive API for creating custom elements and lets developers write less boilerplate code.
+Lit's a lightweight library for creating web components using TS and HTML templates. In Oryx, Lit's used to create reusable and encapsulated UI components that can be easily styled and extended. It provides a simple and intuitive API for creating custom elements and lets developers write less boilerplate code.
You can use Lit to customize Oryx, but you can also use another framework to build web components. Advantages of using Lit:
- Reusable component mixins and controllers.
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-versioning.md b/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-versioning.md
index 995ab038bd2..797ed43832c 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-versioning.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/getting-started/oryx-versioning.md
@@ -65,7 +65,7 @@ Oryx consists of a range of packages, applications, and tools. To avoid inadvert
## Backward compatibility
-The Oryx framework provides maximum compatibility with previous versions. If a feature is deprecated, it is removed completely only after a few releases.
+The Oryx framework provides maximum compatibility with previous versions. If a feature is deprecated, it's removed completely only after a few releases.
Minor releases are fully backward compatible and do not require any developer assistance.
diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/atomic-frontend.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/atomic-frontend.md
index 3aa5feaea62..323cf4ce9f2 100644
--- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/atomic-frontend.md
+++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/atomic-frontend.md
@@ -58,7 +58,7 @@ Based on their structure and use, all components are divided into the following
* *Atom*. These are the smallest, most basic building blocks of UI design. Typical examples of atoms are labels, input fields, or buttons. Usually, atoms are very abstract in their essence and limited to a single functionality that can be included in many pages. They are not very useful by themselves. Being the smallest building block of atomic design, atoms cannot include other components.
* *Molecules*. Molecules typically include two or more atoms or other molecules bonded together to serve a single purpose. These structures are already complex enough to have their own properties; however, they must not be overcomplicated and built for wide reuse.
* *Organisms*. Such components are rather specific and already provide sufficient context for the molecules and atoms they are composed of. Usually, organisms do not form a certain page, but they are rather specific as to what they do and what is their function. Typical examples of organisms can include a header, a footer, or a sidebar. Such components are already complex enough to be used directly on a page.
-* *Widgets*. This is a special component type that can be used to inject information from an external data source that might be unavailable On the backend side, a widget must contain logic to access the data source and verify whether it is available. On the frontend side, a widget must provide means to show or hide information in such a way as not to break the functionality of the entire shop if the data source is not available. A typical use case for widgets is to show information from Spryker modules that can be missing in a specific customer implementation. For example, if the Discounts module is not used in a project, this does not break the calculation of the overall price, for which reason discount information is injected as a widget. Generally, it is recommended to limit the use of widgets as much as possible in your projects.
+* *Widgets*. This is a special component type that can be used to inject information from an external data source that might be unavailable On the backend side, a widget must contain logic to access the data source and verify whether it's available. On the frontend side, a widget must provide means to show or hide information in such a way as not to break the functionality of the entire shop if the data source is not available. A typical use case for widgets is to show information from Spryker modules that can be missing in a specific customer implementation. For example, if the Discounts module is not used in a project, this does not break the calculation of the overall price, for which reason discount information is injected as a widget. Generally, it's recommended to limit the use of widgets as much as possible in your projects.
* *Templates*. Templates can be viewed as combinations of components composed according to a specific graphic layout. They are used to define a visual schema for a set of pages. Typically, pages with a common template have the same structure and share most of the content with the exception of a small portion of page-specific or widget-specific information that changes from page to page. Thus, a template serves as a backbone that defines a set of shared components and the overall layout. Examples of templates are the main site layout or the checkout layout.
* *Views*. This is the highest point in the frontend hierarchy. A view is a template filled with specific content for use in a specific case. It represents a specific page or widget. Views are the only components that can be called by the backend directly which means that they also serve as a connection point between the backend and frontend. On the backend side, views are always connected to controllers.
@@ -289,7 +289,7 @@ When defining a component template with Twig, you need to use the following defa
**Attributes:**
* `name` (required). It specifies the component name. This name is also used as the main class name for the component; therefore, the HTML element and modifiers have this name as the base.
- * `jsName` (optional): It is a Javascript name of the component. By convention, whenever Javascript behavior is added to a component, the DOM addressing for elements must be performed using dedicated classnames starting with the `-js` prefix. This prevents confusion in who-does-what: a classname starting with `js-` has no style attached to it, but only Javascript behaviour. On the other hand, any classname that does not start with `js-` is a pure style. If `jsName` is not defined explicitly, it is created automatically by prefing `js-` to the component name.
+ * `jsName` (optional): It is a Javascript name of the component. By convention, whenever Javascript behavior is added to a component, the DOM addressing for elements must be performed using dedicated classnames starting with the `-js` prefix. This prevents confusion in who-does-what: a classname starting with `js-` has no style attached to it, but only Javascript behaviour. On the other hand, any classname that does not start with `js-` is a pure style. If `jsName` is not defined explicitly, it's created automatically by prefing `js-` to the component name.
* `tag` (optional). It specifies the HTML tag name for the component. Every component is defined in the DOM as an HTML class with its dedicated tag name. Therefore, a tag name must be specified. You can use either a standard HTML5 tag name (for example, `p` or `td`) or have a custom element tag name in order to attach Javascript behavior. To create a component with custom behavior defined in Javascript, Web Component specification, specify a custom tag name. If tag name is not specified, `div`is used by default.
* `data`. It is the variable defining the data contract for the component. This variable is used the data contract for the component. The contract consists of the attributes required for the component to function properly. The attributes provided by this variable can be either required or optional. Required attributes must always be defined whenever a component is used, while optional ones can be left undefined. Nevertheless, by convention, attributes cannot have their value undefined. For this reason, if you define an optional attribute in your contract, you must set a default value for it. The default value is used if an attribute value is not set explicitly or by context.
@@ -479,7 +479,7 @@ export default class ComponentName extends Component {
}
```
-The preceding example extend the default Component model defined in the ShopUi application. However, you can extend from any component both on the Spryker core and on the project level. In this case, your new component inherits the logic and behavior of the component it is derived from. The following example shows a component inherited from the default side-drawer component of Spryker Shop:
+The preceding example extend the default Component model defined in the ShopUi application. However, you can extend from any component both on the Spryker core and on the project level. In this case, your new component inherits the logic and behavior of the component it's derived from. The following example shows a component inherited from the default side-drawer component of Spryker Shop:
```ts
// Import class SideDrawer
@@ -499,7 +499,7 @@ The `index.ts` file is required to load the client-side of the component with We
To register the component in the DOM, you need to use the `register` function of the shop application. It accepts two arguments:
-* `name`. It specifies the component's tag name. This name is associated with the component and can be used in Twig to insert the component into a template. Also, it is used in the DOM as a tag name. Whenever a tag with the specified name occurs in the DOM, the Shop Application loads the component.
+* `name`. It specifies the component's tag name. This name is associated with the component and can be used in Twig to insert the component into a template. Also, it's used in the DOM as a tag name. Whenever a tag with the specified name occurs in the DOM, the Shop Application loads the component.
* `importer`. It must be a call of Webpack's import function to import Typescript code for the component. The call must include a Webpack magic comment that specifies which type of import you want for the component, 'lazy' or 'eager'. For details, see [Dynamic Imports](https://webpack.js.org/guides/code-splitting/#dynamic-imports).
diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/customizing-spryker-frontend.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/customizing-spryker-frontend.md
index 911ac245cbe..12203951932 100644
--- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/customizing-spryker-frontend.md
+++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/customizing-spryker-frontend.md
@@ -28,7 +28,7 @@ This guide reviews customizing Spryker UI on each of these levels.
## Twig
-The visual layout of each component, whether it is a molecule or a whole organism, is defined using Symphony Twig. Twig is a template language for defining the HTML code of pages rendered dynamically. It is a common technology used for building web components, like the ones that comprise Spryker Atomic Frontend.
+The visual layout of each component, whether it's a molecule or a whole organism, is defined using Symphony Twig. Twig is a template language for defining the HTML code of pages rendered dynamically. It is a common technology used for building web components, like the ones that comprise Spryker Atomic Frontend.
For more information about Twig basics, see [Twig Homepage](https://twig.symfony.com/).
diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/frontend-customization-example-b2b-product-details-page.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/frontend-customization-example-b2b-product-details-page.md
index 8c0d4d0c76d..eb3ab34fd21 100644
--- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/frontend-customization-example-b2b-product-details-page.md
+++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/frontend-customization-example-b2b-product-details-page.md
@@ -17,7 +17,7 @@ related:
In Spryker, front-end elements have dedicated SCSS styles. To show you how to customize the Spryker front end, we broke down the *Product Details* page from our [B2B Demo Shop](/docs/about/all/b2b-suite.html#b2b-demo-shop) into separate elements with their respective style files. To customize a particular element, you adjust the code in the respective style file.
-You can see the [full version of this page](https://www.de.b2b.demo-spryker.com/en/soennecken-permanentmarker-4mm-rundspitze-M22663) in our B2B Demo Shop.
+You can see the [full version of this page](https://www.b2b-eu.demo-spryker.com/en/soennecken-permanentmarker-4mm-rundspitze-M22663) in our B2B Demo Shop.
![B2B-1](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Development+Guide/Front-End/Yves/Atomic+Frontend/%D0%A1ustomization+example+-+B2B+Product+Details+page/b2b-1.png)
diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/frontend-customization-example-b2c-product-details-page.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/frontend-customization-example-b2c-product-details-page.md
index bfd54e8b486..4a1e4e50f95 100644
--- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/frontend-customization-example-b2c-product-details-page.md
+++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/frontend-customization-example-b2c-product-details-page.md
@@ -17,7 +17,7 @@ related:
In Spryker, front-end elements have dedicated SCSS styles. To show you how to customize the Spryker front end, we broke down the *Product Details* page from our [B2C Demo Shop](/docs/about/all/b2c-suite.html#b2c-demo-shop) into separate elements with their respective style files. To customize a particular element, you adjust the code in the respective style file.
-You can see the [full version of this page](https://www.de.b2c.demo-spryker.com/en/acer-aspire-s7-134) in our B2C Demo Shop.
+You can see the [full version of this page](https://www.b2c-eu.demo-spryker.com/en/acer-aspire-s7-134) in our B2C Demo Shop.
![B2C-1](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Development+Guide/Front-End/Yves/Atomic+Frontend/%D0%A1ustomization+example+-+B2C+Product+Details+page/b2c-1.png)
diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md
index fc8eccca8b7..cb44cbd1c0a 100644
--- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md
+++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md
@@ -188,6 +188,6 @@ $('.any-target-selector').countdown('2100/01/01', function (event: any) {
{% info_block errorBox %}
-Make sure that it is invoked inside/after `mountCallback (readyCallback` can be used as well, but it's now deprecated).
+Make sure that it's invoked inside/after `mountCallback (readyCallback` can be used as well, but it's now deprecated).
{% endinfo_block %}
diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/extending-components.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/extending-components.md
index 1a5cac4ad49..d08fc90800d 100644
--- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/extending-components.md
+++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/extending-components.md
@@ -22,7 +22,7 @@ Let us review the process of extending a component on the example of **side-draw
![Open side drawer](https://spryker.s3.eu-central-1.amazonaws.com/docs/Tutorials/Introduction/Customize+Frontend/open-side-drawer.png)
-The following tutorial shows how to create a new component based on the default side drawer. The new side drawer will show an alert whenever it is present on a page. Also, the component outlook will be different.
+The following tutorial shows how to create a new component based on the default side drawer. The new side drawer will show an alert whenever it's present on a page. Also, the component outlook will be different.
## 1. Create component folder
@@ -66,7 +66,7 @@ Now, let us customize the template of the source component. The original templa
Apart from changing the icon, we are going to use different colors. This can be done via styles.
-First of all, we need to inherit the styles of the source component (_side-drawer_). It has a mixin called **shop-ui-side-drawer**. Since it is a core component shipped with Spryker Shop Suite, this mixin is shared. Therefore, it can be accessed everywhere in Shop UI. To inherit the styles, we need to include the mixin in the _SCSS_ file of our new component. To render the block, elements and modifiers with the class name of the new component, we need to pass its class name to the mixin.
+First of all, we need to inherit the styles of the source component (_side-drawer_). It has a mixin called **shop-ui-side-drawer**. Since it's a core component shipped with Spryker Shop Suite, this mixin is shared. Therefore, it can be accessed everywhere in Shop UI. To inherit the styles, we need to include the mixin in the _SCSS_ file of our new component. To render the block, elements and modifiers with the class name of the new component, we need to pass its class name to the mixin.
Let us create file `new-existing-component-side-drawer.scss`, include the original mixin of the _side-drawer_ component, and pass the class name of the new component we are creating:
diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/overriding-components.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/overriding-components.md
index b9ac523e243..6b85b5418ab 100644
--- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/overriding-components.md
+++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/overriding-components.md
@@ -41,7 +41,7 @@ To override the global component, the Twig file name on the project level must b
} {% raw %}%}{% endraw %}
```
-Since the new component will be used everywhere instead of the global one, it is also recommended to replicate the data contracts. For this purpose, the **data** and **attributes** properties need to be configured the same as in the source component. If you are going to change the outlook of the component only, without changing its **data** property, attributes etc, you can copy the source Twig file, and then make changes to the **body** block only. The block contains the visual layout of a component.
+Since the new component will be used everywhere instead of the global one, it's also recommended to replicate the data contracts. For this purpose, the **data** and **attributes** properties need to be configured the same as in the source component. If you are going to change the outlook of the component only, without changing its **data** property, attributes etc, you can copy the source Twig file, and then make changes to the **body** block only. The block contains the visual layout of a component.
As we are not going to change the component template, let us copy the whole of the source twig implementation (`vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/simple-carousel/simple-carousel.twig`) to the project level (`src/Pyz/Yves/ShopUi/Theme/default/components/molecules/simple-carousel.twig`). The Twig file will look as follows:
diff --git a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/using-components.md b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/using-components.md
index 852c69e44c1..977b802188e 100644
--- a/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/using-components.md
+++ b/docs/dg/dev/frontend-development/202404.0/yves/atomic-frontend/managing-components/using-components.md
@@ -69,7 +69,7 @@ For more details, see section _Twig_ in [Atomic Frontend](/docs/dg/dev/frontend-
## Include
-By including a component, you place it on a page as is. Each component has the `data`, `attributes`, and other properties that allow passing the necessary information to configure it, but apart from that, you can't change it. The outlook of the component depends only on configuration. By including an element, you also pass the context of the page where it is added.
+By including a component, you place it on a page as is. Each component has the `data`, `attributes`, and other properties that allow passing the necessary information to configure it, but apart from that, you can't change it. The outlook of the component depends only on configuration. By including an element, you also pass the context of the page where it's added.
The following block demonstrates how to include component `new-component-counter`.
```twig
diff --git a/docs/dg/dev/frontend-development/202404.0/yves/frontend-assets-building-and-loading.md b/docs/dg/dev/frontend-development/202404.0/yves/frontend-assets-building-and-loading.md
index 966cf259ab7..e07950afa2d 100644
--- a/docs/dg/dev/frontend-development/202404.0/yves/frontend-assets-building-and-loading.md
+++ b/docs/dg/dev/frontend-development/202404.0/yves/frontend-assets-building-and-loading.md
@@ -22,7 +22,7 @@ To support the assets loading behavior as described above, most pages considered
For the landing pages, there is the `page-critical-path` layout defining the asset's loading behavior. It is an extension of the `page-blank` layout with the overwritten `nonCriticalStyles` and `styleLazyLoader` blocks. The `page-critical-path` contains a `style-loader` component before the closing tag of ``. The `style-loader` component is responsible for loading the non-critical CSS only after the whole page is loaded.
-The `page-critical-path` layout uses cookies to track whether it is the first session on the site. If it is the first session, the critical CSS and utils are loaded into the `` tag at the start of the page loading. Only after the whole page is loaded, the `style-loader` component appends the non-critical CSS to the end of the `` tag. Otherwise, the approach for the non-landing pages is used.
+The `page-critical-path` layout uses cookies to track whether it's the first session on the site. If it's the first session, the critical CSS and utils are loaded into the `` tag at the start of the page loading. Only after the whole page is loaded, the `style-loader` component appends the non-critical CSS to the end of the `` tag. Otherwise, the approach for the non-landing pages is used.
The main purpose of the page-critical-path layout is to use the CSS Lazy Load only for the landing pages. To enable the CSS Lazy Load for your project, see [Frontend CSS Lazy Load integration](/docs/dg/dev/integrate-and-configure/integrate-css-lazy-loading.html).
@@ -46,7 +46,7 @@ A *polyfill* is a code that is used to provide modern functionality for older br
## Cache-busting mechanism
-The main idea of the *cache-busting mechanism* is to provide an ability to reset JS/CSS cache for a newly deployed version so that the new assets are delivered to the frontend applications. It is achieved by adding a hash to every asset path using an environment variable `SPRYKER_BUILD_HASH` that lets you reset the browser cache instead of a namespace variable. The path of the resources on Yves is displayed with this hash folder `assets/SPRYKER_BUILD_HASH/default/css/yves_default.app.css`. If the project is set up by Docker, the `assets` folder is present in the Docker container in a production environment. Otherwise, if it is a development environment, the `assets` folder is in a public `assets` folder rather than a container.
+The main idea of the *cache-busting mechanism* is to provide an ability to reset JS/CSS cache for a newly deployed version so that the new assets are delivered to the frontend applications. It is achieved by adding a hash to every asset path using an environment variable `SPRYKER_BUILD_HASH` that lets you reset the browser cache instead of a namespace variable. The path of the resources on Yves is displayed with this hash folder `assets/SPRYKER_BUILD_HASH/default/css/yves_default.app.css`. If the project is set up by Docker, the `assets` folder is present in the Docker container in a production environment. Otherwise, if it's a development environment, the `assets` folder is in a public `assets` folder rather than a container.
## `isCssLazyLoadSupported` Twig variable
diff --git a/docs/dg/dev/frontend-development/202404.0/yves/frontend-builder-for-yves.md b/docs/dg/dev/frontend-development/202404.0/yves/frontend-builder-for-yves.md
index 6ccda4b48a1..a27c71d7059 100644
--- a/docs/dg/dev/frontend-development/202404.0/yves/frontend-builder-for-yves.md
+++ b/docs/dg/dev/frontend-development/202404.0/yves/frontend-builder-for-yves.md
@@ -96,7 +96,7 @@ class TwigConfig extends SprykerTwigConfig
All public assets are generated into `/public/Yves/` plus the path defined in the config file, which is `assets/%namespace%/%theme%/` by default.
-For example, for the `DE` namespace and default theme, it is`/public/Yves/assets/DE/default/`.
+For example, for the `DE` namespace and default theme, it's`/public/Yves/assets/DE/default/`.
All incoming files (images, fonts, etc.) are copied from `global` (for every namespace) and `DE` folders:
diff --git a/docs/dg/dev/frontend-development/202404.0/yves/multi-theme.md b/docs/dg/dev/frontend-development/202404.0/yves/multi-theme.md
index 3ae28e3c958..c67c224210d 100644
--- a/docs/dg/dev/frontend-development/202404.0/yves/multi-theme.md
+++ b/docs/dg/dev/frontend-development/202404.0/yves/multi-theme.md
@@ -21,7 +21,7 @@ A theme is a combination of twig, CSS and JS files that make your user interface
* **Current Theme**—a single theme defined on a project level. E.g., B2B-theme, B2C-theme.
* **Default Theme**—a theme provided from Spryker by default and used in the Spryker Commerce OS. Used for incremental project updates (start from default and change components one-by-one) and a graceful fallback in case Spryker provides a new functionality which does not have own frontend in a project.
-From now on, besides the default theme, you, as a shop owner, can create and use different themes for different stores. When you select a theme, you decide how your shop is displayed. For example, you may have a New Year theme with the New year attributes that is enabled every year during the New Year holidays. Due to the development of the Spryker Commerce OS, the entities that previously were called stores (DE, EN, AT) - are now renamed into namespaces.
+From now on, besides the default theme, you, as a shop owner, can create and use different themes for different stores. When you select a theme, you decide how your shop is displayed. For example, you may have a New Year theme with the New year attributes that is enabled every year during the New Year holidays. Because of the development of the Spryker Commerce OS, the entities that previously were called stores (DE, EN, AT) - are now renamed into namespaces.
```xml
{
diff --git a/docs/dg/dev/frontend-development/202410.0/marketplace/angular-services.md b/docs/dg/dev/frontend-development/202410.0/marketplace/angular-services.md
index 4f3f6c8acdc..cd8881a5dc9 100644
--- a/docs/dg/dev/frontend-development/202410.0/marketplace/angular-services.md
+++ b/docs/dg/dev/frontend-development/202410.0/marketplace/angular-services.md
@@ -20,7 +20,7 @@ This document describes what Angular Services are, how to create and use them.
## Introduction
The Angular Services are stateless objects which provide useful functionality. These functions can be invoked from any component of Angular, such as Components and Directives. It enables services to organize and share business logic, models, data and functions with other components of an Angular application and thus divide the web application into small, reusable logical units. A service typically encapsulates a particular aspect/function of the system (HTTP, part of business logic).
-Using Angular Services methods, the data is maintained throughout the life of an application, that is, it is never refreshed and is always available.
+Using Angular Services methods, the data is maintained throughout the life of an application, that is, it's never refreshed and is always available.
#### Component communication using Angular services
diff --git a/docs/dg/dev/frontend-development/202410.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md b/docs/dg/dev/frontend-development/202410.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md
index 1af2feaf23d..ff8232b5a92 100644
--- a/docs/dg/dev/frontend-development/202410.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md
+++ b/docs/dg/dev/frontend-development/202410.0/marketplace/table-design/table-feature-extension/table-feature-batch-actions.md
@@ -37,7 +37,7 @@ This document explains the Table Feature Batch Actions component in the Componen
Table Feature Batch Actions is a feature of the Table Component that allows triggering batch/multiple actions from rows.
As Table Feature Batch Actions is based on the [Table Feature Selectable](/docs/dg/dev/frontend-development/{{page.version}}/marketplace/table-design/table-feature-extension/table-feature-selectable.html), batch actions must be registered and enabled via the table config. Batch actions are functions that can be performed on multiple items within a table. As soon as at least one row is selected in the table, the batch action bar with allowed actions appears at the top of the table.
-To escape the `batch action mode`, it is necessary to unselect the table rows.
+To escape the `batch action mode`, it's necessary to unselect the table rows.
Check out an example usage of the Table Feature Batch Actions in the `@spryker/table` config.
diff --git a/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/data-transformers/data-transformers.md b/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/data-transformers/data-transformers.md
index 1fdbbfcd893..782bb5430ca 100644
--- a/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/data-transformers/data-transformers.md
+++ b/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/data-transformers/data-transformers.md
@@ -136,7 +136,7 @@ export class CustomDataTransformerService implements
export class RootModule {}
```
-The context in which the Data Transformer operates is determined by the local injector where it is being used.
+The context in which the Data Transformer operates is determined by the local injector where it's being used.
## Interfaces
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md
index 10aecded4ec..8ea3cef5a23 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection-advanced-strategies.md
@@ -34,7 +34,7 @@ In this example, the `inject` method is used to resolve a dependency based on a
## Multi-providers
-Most dependencies in an application correspond to only one value, like a class. In some cases, it is useful to have dependencies with multiple values, like HTTP interceptors or normalizers. However, it's not very practical to configure these dependencies separately, because the application needs to access them all together at once. Therefore, you can use a special type of dependency that accepts multiple values and is linked to the same dependency injection token. These are called multi-providers.
+Most dependencies in an application correspond to only one value, like a class. In some cases, it's useful to have dependencies with multiple values, like HTTP interceptors or normalizers. However, it's not very practical to configure these dependencies separately, because the application needs to access them all together at once. Therefore, you can use a special type of dependency that accepts multiple values and is linked to the same dependency injection token. These are called multi-providers.
There are different types of multi-providers based on location an number of asterisks(`*`) in the name of their tokens. They are described in the following sections.
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection.md
index facb315f087..d5a337bbeb8 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/dependency-injection/dependency-injection.md
@@ -14,7 +14,7 @@ Dependency injection (DI) is a design pattern that provides loosely-coupled, mai
In the context of Oryx, DI enables you to customize logic deep inside the framework, which is particularly useful for projects with complex or rapidly-evolving requirements. Without DI, you need to override large portions of the logic or create a lot of boilerplate code. By leveraging DI, you can override logic while still being able to upgrade to new versions of Oryx.
-The key advantage of using Oryx's DI implementation is that it is vanilla JavaScript and can be used in other frameworks as well. Although there are popular DI packages available, using Oryx's implementation ensures seamless integration and compatibility with its features.
+The key advantage of using Oryx's DI implementation is that it's vanilla JavaScript and can be used in other frameworks as well. Although there are popular DI packages available, using Oryx's implementation ensures seamless integration and compatibility with its features.
## Next step
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/oryx-server-side-rendering.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/oryx-server-side-rendering.md
index d9ab2be3285..8434c74870f 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/oryx-server-side-rendering.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/oryx-server-side-rendering.md
@@ -11,7 +11,7 @@ redirect_from:
-Server-side rendering (SSR), including Static Site Generation (SSG) as a variant, has grown in popularity due to its ability to boost web application performance, facilitate effective Search Engine Optimization (SEO), social sharing, and improve Core Web Vitals (CWV). By delivering pre-rendered HTML from the server or even a content delivery network (CDN) to the client, SSR and SSG lead to quicker initial page load times, improve user experience (UX), and can significantly improve CWV scores. SSG, in particular, pre-renders HTML at build time, resulting in static HTML, CSS, and JavaScript files that can be served directly from a CDN. It is a useful strategy for sites with content that does not change frequently, and can improve performance, scalability, and security.
+Server-side rendering (SSR), including Static Site Generation (SSG) as a variant, has grown in popularity because of its ability to boost web application performance, facilitate effective Search Engine Optimization (SEO), social sharing, and improve Core Web Vitals (CWV). By delivering pre-rendered HTML from the server or even a content delivery network (CDN) to the client, SSR and SSG lead to quicker initial page load times, improve user experience (UX), and can significantly improve CWV scores. SSG, in particular, pre-renders HTML at build time, resulting in static HTML, CSS, and JavaScript files that can be served directly from a CDN. It is a useful strategy for sites with content that does not change frequently, and can improve performance, scalability, and security.
## Differences between server-side and client-side rendering
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md
index 0db2e871329..e214b37efbe 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/oryx-integration-of-backend-apis.md
@@ -14,7 +14,7 @@ To compose a frontend application from different backend APIs, Oryx provides a f
## Data models
-In modern web applications, it is common to communicate with an API to retrieve data. However, the response from an API can be complex and not suitable to be directly used in a component. This is where client models come into play. A _client model_ is a representation of data that is tailored specifically for the needs of a client-side application.
+In modern web applications, it's common to communicate with an API to retrieve data. However, the response from an API can be complex and not suitable to be directly used in a component. This is where client models come into play. A _client model_ is a representation of data that is tailored specifically for the needs of a client-side application.
In the Oryx framework, adapters transform API responses into a client model. Adapters make HTTP requests to load data from APIs and provide normalizers or serializers to transform the data into a more readable format. This is especially important when working with complex data standards like JSON-API, as they can be difficult for a component to work with directly.
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactive-components.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactive-components.md
index 9d96b7308ce..713bd391ca5 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactive-components.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactive-components.md
@@ -18,7 +18,7 @@ export class ProductPriceComponent extends LitElement {
}
```
-To ensure that components are reusable in different contexts, it is recommended to not couple them directly with the qualifier that is used to load data. For example, `ProductPriceComponent` does not need to be aware of `SKU`, as `SKU` can be determined from the route of the product page, the product card in a list, or the cart entry. Oryx provides a mechanism to set up a so-called context. In the case of product components, the product controller is used to resolve the SKU from the context controller.
+To ensure that components are reusable in different contexts, it's recommended to not couple them directly with the qualifier that is used to load data. For example, `ProductPriceComponent` does not need to be aware of `SKU`, as `SKU` can be determined from the route of the product page, the product card in a list, or the cart entry. Oryx provides a mechanism to set up a so-called context. In the case of product components, the product controller is used to resolve the SKU from the context controller.
`ProductController` resolves the product qualifier (SKU) from the context and returns an observable from `ProductService`. If an SKU is provided statically to the component, `ProductController` also takes `sku` as a component property into account. This can be useful in custom development or for demonstrating the component—for example, in a Storybook.
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactivity.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactivity.md
index 1c9e8965ecb..4d96ab0184f 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactivity.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/reactivity.md
@@ -20,7 +20,7 @@ This is achieved by establishing a connection between the user interface and the
Implementing reactivity in a web application is a complex challenge, especially in an SPA where data is loaded asynchronously and in real time from a backend API. Various components dynamically request the same data, and updates of the application state must be managed in a highly efficient way.
-The following is a high-level overview of the reactivity patterns available in Oryx. In the diagram, it is shown using a product component.
+The following is a high-level overview of the reactivity patterns available in Oryx. In the diagram, it's shown using a product component.
{% include diagrams/oryx/reactivity-high-level.md %}
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/signals.md b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/signals.md
index 2e35806be3b..a6f92dcd9b7 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/signals.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/architecture/reactivity/signals.md
@@ -117,7 +117,7 @@ class MyComponent extends LitElement {}
This decorator is required to make a component work with signals as expected. With the decorator, the component automatically detects signals and renders changes whenever a signal alters. It does this intelligently, considering only the signals relevant to the last render.
-Some Oryx domain components are not using this decorator directly, as it is already applied to some common domain mixins, like `ContentMixin` or `ProductMixin`.
+Some Oryx domain components are not using this decorator directly, as it's already applied to some common domain mixins, like `ContentMixin` or `ProductMixin`.
### `@elementEffect` directive
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md
index 8ce85c89a88..79696bb5643 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-feature.md
@@ -119,7 +119,7 @@ appBuilder().withOptions({'your-feature-key': {...}});
### Define default values for feature options
-To avoid forcing users to repeatedly pass the same kind of values, you can provide default values for your feature options. After you define `AppFeature.defaultOptions` for a feature, it is used when a user does not provide any option:
+To avoid forcing users to repeatedly pass the same kind of values, you can provide default values for your feature options. After you define `AppFeature.defaultOptions` for a feature, it's used when a user does not provide any option:
```ts
import { AppFeature } from '@spryker-oryx/core';
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md
index 12f074dd38a..557dfa5d512 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/oryx-application-orchestration/oryx-application-plugins.md
@@ -114,7 +114,7 @@ You can create custom plugins to change the behavior of an Oryx application. The
- `apply()`: main life-cycle method.
- `destroy()`: Optional cleanup method.
-When a plugin is registered to the Oryx application builder, it is _applied_ by invoking the `AppPlugin.apply()` method with an `App` instance as an argument. Then, the plugin behaves as configured.
+When a plugin is registered to the Oryx application builder, it's _applied_ by invoking the `AppPlugin.apply()` method with an `App` instance as an argument. Then, the plugin behaves as configured.
The following additional plugin life-cycle methods are invoked around the main lifecycle of _all_ plugins:
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/styling/oryx-icon-system.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/styling/oryx-icon-system.md
index 3ef9f3f6bb1..feebd438e81 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/styling/oryx-icon-system.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/styling/oryx-icon-system.md
@@ -49,7 +49,7 @@ Oryx supports both font-based icons and SVG icons, letting you choose the most s
### Font-based icons
-Font-based icons are a popular choice due to their ease of use and the availability of a wide range of icons. They offer great quality and scalability, staying sharp at various sizes. Additionally, font-based icons can be easily colored using CSS, seamlessly integrating with UI themes.
+Font-based icons are a popular choice because of their ease of use and the availability of a wide range of icons. They offer great quality and scalability, staying sharp at various sizes. Additionally, font-based icons can be easily colored using CSS, seamlessly integrating with UI themes.
Oryx leverages [Material symbols](https://fonts.google.com/icons) and [Font Awesome icons](https://fontawesome.com/). However, you can also add other icon fonts. Material Symbols are built with Variable fonts, enabling developers to edit font characteristics like line weight and fill through CSS.
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/styling/oryx-typography.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/styling/oryx-typography.md
index c794c492ac2..2bab0735ad3 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/styling/oryx-typography.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-applications/styling/oryx-typography.md
@@ -93,7 +93,7 @@ The headings get `margin: 0` to avoid any clashes in the component layout.
### Semantic HTML structure versus UI
-The semantic usage of heading elements, like h1 or h2, defines the structure, which crawlers and screen readers use to interpret the content. This enables easier content navigation, especially for those with limited sight; screen readers guide and let them skip sections that are not of interest. Consequently, if the structure is not well formatted, for example, when `h3` is followed by an `h5`, it is considered a violation of accessibility best practices.
+The semantic usage of heading elements, like h1 or h2, defines the structure, which crawlers and screen readers use to interpret the content. This enables easier content navigation, especially for those with limited sight; screen readers guide and let them skip sections that are not of interest. Consequently, if the structure is not well formatted, for example, when `h3` is followed by an `h5`, it's considered a violation of accessibility best practices.
A valid structure, however, might conflict with the UI design. UI designers use the headings in combination with the layout, which means that their options are more advanced compared to the structure only. UI designers tend to ignore the structure and favor layout options to emphasize sections of a page.
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-component-types.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-component-types.md
index bda740dc821..0b895bac855 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-component-types.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-component-types.md
@@ -42,7 +42,7 @@ Oryx functionality is organized in domains. Domain packages contain functional c
Domain components leverage the design system components to ensure a consistent UI/UX. The design system components are integrated with inputs (properties), and all of their events are handled by domain components.
-Domain components integrate with domain services to obtain and update the application state. The services handle the integration with backend APIs and application state management. In a single page application experience, domain components need to support [reactivity](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) to ensure the application state is reflected immediately after it is changed. The complexity of reactivity is avoided as much as possible in components by using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To avoid repeating the boilerplate code that is required for each domain component, domains often provide a mixin. The mixin provides the required properties and signals that can be used by the components.
+Domain components integrate with domain services to obtain and update the application state. The services handle the integration with backend APIs and application state management. In a single page application experience, domain components need to support [reactivity](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) to ensure the application state is reflected immediately after it's changed. The complexity of reactivity is avoided as much as possible in components by using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To avoid repeating the boilerplate code that is required for each domain component, domains often provide a mixin. The mixin provides the required properties and signals that can be used by the components.
Each domain package contains associated domain components. Product components, for example, are part of the `@spryker-oryx/ui` package. The components use a consistent naming convention for class and element names. For example, the Product Title component, is named `ProductTitleComponent` and can be used with the `` element. To avoid clashes with other frameworks, the elements are prefixed with `oryx-`.
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-implementing-components.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-implementing-components.md
index 91615773196..15f31cce932 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-implementing-components.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-implementing-components.md
@@ -8,7 +8,7 @@ redirect_from:
---
-Oryx components are web components built with [Lit](https://lit.dev). Lit is a lightweight open-source framework from Google that's used to build highly efficient web components. Web components can be created with any framework or even with vanilla HTML, CSS, and JavaScript. You can use any other framework instead of Lit. However, some Oryx utilities, like [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html) and component mixins, are available only with Lit.
+Oryx components are web components built with [Lit](https://lit.dev). Lit's a lightweight open-source framework from Google that's used to build highly efficient web components. Web components can be created with any framework or even with vanilla HTML, CSS, and JavaScript. You can use any other framework instead of Lit. However, some Oryx utilities, like [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html) and component mixins, are available only with Lit.
## Implementing a component
@@ -155,7 +155,7 @@ If your application needs to be indexed by crawlers, such as Google Search or Pi
When a component is server-side rendered, some of the browser APIs are not available. Most commonly known are the `window` and `document` objects. Take this into account when implementing custom components.
-Oryx renders pages on the server and returns the minimum amount of JavaScript needed. A component doesn't need JavaScript initially, but when a user start interacting with it, or when the component needs to reflect a certain application state, additional JavaScript needs to be loaded. Loading the component logic at the client side is called _hydration_. Because the component logic is loaded over the network and initialized in the application, hydration is costly. Additionally, the component might need to fetch data from a backend API. Oryx therefore tries to avoid or delay hydration till it is needed.
+Oryx renders pages on the server and returns the minimum amount of JavaScript needed. A component doesn't need JavaScript initially, but when a user start interacting with it, or when the component needs to reflect a certain application state, additional JavaScript needs to be loaded. Loading the component logic at the client side is called _hydration_. Because the component logic is loaded over the network and initialized in the application, hydration is costly. Additionally, the component might need to fetch data from a backend API. Oryx therefore tries to avoid or delay hydration till it's needed.
When developing a component, you need to configure the hydration trigger using the `@hydrate` decorator that can take an event or context. The following example shows how to set up the component to be hydrated when the context is changed:
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-managing-component-options.md b/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-managing-component-options.md
index ee8f268157e..6a1dd2177c9 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-managing-component-options.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/building-components/oryx-managing-component-options.md
@@ -121,9 +121,9 @@ protected override render(): TemplateResult {
## Using component options
-To use component options asynchronously, it is important to observe the options and react to updates in the component UI. Oryx provides a [reactive](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) framework with observable data streams that can update the UI using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To simplify the integration in the component logic, `ContentMixin` provides the `$options` signal that can be called in the render logic or other signals.
+To use component options asynchronously, it's important to observe the options and react to updates in the component UI. Oryx provides a [reactive](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/reactivity.html) framework with observable data streams that can update the UI using [signals](/docs/dg/dev/frontend-development/{{page.version}}/oryx/architecture/reactivity/signals.html). To simplify the integration in the component logic, `ContentMixin` provides the `$options` signal that can be called in the render logic or other signals.
-The following code shows how to use the `$options` signal. Due to the component option interface, the usage of the signal is type safe.
+The following code shows how to use the `$options` signal. Because of the component option interface, the usage of the signal is type safe.
```ts
@defaultOptions({
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-boilerplate.md b/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-boilerplate.md
index 022ed2fe44a..83d8d871f18 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-boilerplate.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-boilerplate.md
@@ -64,7 +64,7 @@ The following is a breakdown of the different bits of the boilerplate code.
### `package.json`
-`package.json` contains all the dependencies of the project. To simplify the dependency management, all dependencies are pulled through a single preset package. The preset package contains dependencies to all available Oryx packages. This might not be the most optimal setup over time, as it might contain a lot of "dead code", but it is a convenient starting point. As you are getting experienced with Oryx, you can consider creating a narrowed down list of dependencies.
+`package.json` contains all the dependencies of the project. To simplify the dependency management, all dependencies are pulled through a single preset package. The preset package contains dependencies to all available Oryx packages. This might not be the most optimal setup over time, as it might contain a lot of "dead code", but it's a convenient starting point. As you are getting experienced with Oryx, you can consider creating a narrowed down list of dependencies.
That being said, having unused dependencies in your project does _not_ affect the build time or run time of your project. It is only an overhead during the installation process.
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-technology.md b/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-technology.md
index 416c00096c3..e5610dd1252 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-technology.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-technology.md
@@ -50,7 +50,7 @@ In Oryx, Web Components are used to create reusable UI components that can be us
## Lit
-Lit is a lightweight library for creating web components using TS and HTML templates. In Oryx, Lit is used to create reusable and encapsulated UI components that can be easily styled and extended. It provides a simple and intuitive API for creating custom elements and lets developers write less boilerplate code.
+Lit's a lightweight library for creating web components using TS and HTML templates. In Oryx, Lit's used to create reusable and encapsulated UI components that can be easily styled and extended. It provides a simple and intuitive API for creating custom elements and lets developers write less boilerplate code.
You can use Lit to customize Oryx, but you can also use another framework to build web components. Advantages of using Lit:
- Reusable component mixins and controllers.
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-versioning.md b/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-versioning.md
index 995ab038bd2..797ed43832c 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-versioning.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/getting-started/oryx-versioning.md
@@ -65,7 +65,7 @@ Oryx consists of a range of packages, applications, and tools. To avoid inadvert
## Backward compatibility
-The Oryx framework provides maximum compatibility with previous versions. If a feature is deprecated, it is removed completely only after a few releases.
+The Oryx framework provides maximum compatibility with previous versions. If a feature is deprecated, it's removed completely only after a few releases.
Minor releases are fully backward compatible and do not require any developer assistance.
diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/atomic-frontend.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/atomic-frontend.md
index 3aa5feaea62..323cf4ce9f2 100644
--- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/atomic-frontend.md
+++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/atomic-frontend.md
@@ -58,7 +58,7 @@ Based on their structure and use, all components are divided into the following
* *Atom*. These are the smallest, most basic building blocks of UI design. Typical examples of atoms are labels, input fields, or buttons. Usually, atoms are very abstract in their essence and limited to a single functionality that can be included in many pages. They are not very useful by themselves. Being the smallest building block of atomic design, atoms cannot include other components.
* *Molecules*. Molecules typically include two or more atoms or other molecules bonded together to serve a single purpose. These structures are already complex enough to have their own properties; however, they must not be overcomplicated and built for wide reuse.
* *Organisms*. Such components are rather specific and already provide sufficient context for the molecules and atoms they are composed of. Usually, organisms do not form a certain page, but they are rather specific as to what they do and what is their function. Typical examples of organisms can include a header, a footer, or a sidebar. Such components are already complex enough to be used directly on a page.
-* *Widgets*. This is a special component type that can be used to inject information from an external data source that might be unavailable On the backend side, a widget must contain logic to access the data source and verify whether it is available. On the frontend side, a widget must provide means to show or hide information in such a way as not to break the functionality of the entire shop if the data source is not available. A typical use case for widgets is to show information from Spryker modules that can be missing in a specific customer implementation. For example, if the Discounts module is not used in a project, this does not break the calculation of the overall price, for which reason discount information is injected as a widget. Generally, it is recommended to limit the use of widgets as much as possible in your projects.
+* *Widgets*. This is a special component type that can be used to inject information from an external data source that might be unavailable On the backend side, a widget must contain logic to access the data source and verify whether it's available. On the frontend side, a widget must provide means to show or hide information in such a way as not to break the functionality of the entire shop if the data source is not available. A typical use case for widgets is to show information from Spryker modules that can be missing in a specific customer implementation. For example, if the Discounts module is not used in a project, this does not break the calculation of the overall price, for which reason discount information is injected as a widget. Generally, it's recommended to limit the use of widgets as much as possible in your projects.
* *Templates*. Templates can be viewed as combinations of components composed according to a specific graphic layout. They are used to define a visual schema for a set of pages. Typically, pages with a common template have the same structure and share most of the content with the exception of a small portion of page-specific or widget-specific information that changes from page to page. Thus, a template serves as a backbone that defines a set of shared components and the overall layout. Examples of templates are the main site layout or the checkout layout.
* *Views*. This is the highest point in the frontend hierarchy. A view is a template filled with specific content for use in a specific case. It represents a specific page or widget. Views are the only components that can be called by the backend directly which means that they also serve as a connection point between the backend and frontend. On the backend side, views are always connected to controllers.
@@ -289,7 +289,7 @@ When defining a component template with Twig, you need to use the following defa
**Attributes:**
* `name` (required). It specifies the component name. This name is also used as the main class name for the component; therefore, the HTML element and modifiers have this name as the base.
- * `jsName` (optional): It is a Javascript name of the component. By convention, whenever Javascript behavior is added to a component, the DOM addressing for elements must be performed using dedicated classnames starting with the `-js` prefix. This prevents confusion in who-does-what: a classname starting with `js-` has no style attached to it, but only Javascript behaviour. On the other hand, any classname that does not start with `js-` is a pure style. If `jsName` is not defined explicitly, it is created automatically by prefing `js-` to the component name.
+ * `jsName` (optional): It is a Javascript name of the component. By convention, whenever Javascript behavior is added to a component, the DOM addressing for elements must be performed using dedicated classnames starting with the `-js` prefix. This prevents confusion in who-does-what: a classname starting with `js-` has no style attached to it, but only Javascript behaviour. On the other hand, any classname that does not start with `js-` is a pure style. If `jsName` is not defined explicitly, it's created automatically by prefing `js-` to the component name.
* `tag` (optional). It specifies the HTML tag name for the component. Every component is defined in the DOM as an HTML class with its dedicated tag name. Therefore, a tag name must be specified. You can use either a standard HTML5 tag name (for example, `p` or `td`) or have a custom element tag name in order to attach Javascript behavior. To create a component with custom behavior defined in Javascript, Web Component specification, specify a custom tag name. If tag name is not specified, `div`is used by default.
* `data`. It is the variable defining the data contract for the component. This variable is used the data contract for the component. The contract consists of the attributes required for the component to function properly. The attributes provided by this variable can be either required or optional. Required attributes must always be defined whenever a component is used, while optional ones can be left undefined. Nevertheless, by convention, attributes cannot have their value undefined. For this reason, if you define an optional attribute in your contract, you must set a default value for it. The default value is used if an attribute value is not set explicitly or by context.
@@ -479,7 +479,7 @@ export default class ComponentName extends Component {
}
```
-The preceding example extend the default Component model defined in the ShopUi application. However, you can extend from any component both on the Spryker core and on the project level. In this case, your new component inherits the logic and behavior of the component it is derived from. The following example shows a component inherited from the default side-drawer component of Spryker Shop:
+The preceding example extend the default Component model defined in the ShopUi application. However, you can extend from any component both on the Spryker core and on the project level. In this case, your new component inherits the logic and behavior of the component it's derived from. The following example shows a component inherited from the default side-drawer component of Spryker Shop:
```ts
// Import class SideDrawer
@@ -499,7 +499,7 @@ The `index.ts` file is required to load the client-side of the component with We
To register the component in the DOM, you need to use the `register` function of the shop application. It accepts two arguments:
-* `name`. It specifies the component's tag name. This name is associated with the component and can be used in Twig to insert the component into a template. Also, it is used in the DOM as a tag name. Whenever a tag with the specified name occurs in the DOM, the Shop Application loads the component.
+* `name`. It specifies the component's tag name. This name is associated with the component and can be used in Twig to insert the component into a template. Also, it's used in the DOM as a tag name. Whenever a tag with the specified name occurs in the DOM, the Shop Application loads the component.
* `importer`. It must be a call of Webpack's import function to import Typescript code for the component. The call must include a Webpack magic comment that specifies which type of import you want for the component, 'lazy' or 'eager'. For details, see [Dynamic Imports](https://webpack.js.org/guides/code-splitting/#dynamic-imports).
diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/customizing-spryker-frontend.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/customizing-spryker-frontend.md
index 911ac245cbe..12203951932 100644
--- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/customizing-spryker-frontend.md
+++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/customizing-spryker-frontend.md
@@ -28,7 +28,7 @@ This guide reviews customizing Spryker UI on each of these levels.
## Twig
-The visual layout of each component, whether it is a molecule or a whole organism, is defined using Symphony Twig. Twig is a template language for defining the HTML code of pages rendered dynamically. It is a common technology used for building web components, like the ones that comprise Spryker Atomic Frontend.
+The visual layout of each component, whether it's a molecule or a whole organism, is defined using Symphony Twig. Twig is a template language for defining the HTML code of pages rendered dynamically. It is a common technology used for building web components, like the ones that comprise Spryker Atomic Frontend.
For more information about Twig basics, see [Twig Homepage](https://twig.symfony.com/).
diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/frontend-customization-example-b2b-product-details-page.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/frontend-customization-example-b2b-product-details-page.md
index 8c0d4d0c76d..eb3ab34fd21 100644
--- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/frontend-customization-example-b2b-product-details-page.md
+++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/frontend-customization-example-b2b-product-details-page.md
@@ -17,7 +17,7 @@ related:
In Spryker, front-end elements have dedicated SCSS styles. To show you how to customize the Spryker front end, we broke down the *Product Details* page from our [B2B Demo Shop](/docs/about/all/b2b-suite.html#b2b-demo-shop) into separate elements with their respective style files. To customize a particular element, you adjust the code in the respective style file.
-You can see the [full version of this page](https://www.de.b2b.demo-spryker.com/en/soennecken-permanentmarker-4mm-rundspitze-M22663) in our B2B Demo Shop.
+You can see the [full version of this page](https://www.b2b-eu.demo-spryker.com/en/soennecken-permanentmarker-4mm-rundspitze-M22663) in our B2B Demo Shop.
![B2B-1](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Development+Guide/Front-End/Yves/Atomic+Frontend/%D0%A1ustomization+example+-+B2B+Product+Details+page/b2b-1.png)
diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/frontend-customization-example-b2c-product-details-page.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/frontend-customization-example-b2c-product-details-page.md
index bfd54e8b486..4a1e4e50f95 100644
--- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/frontend-customization-example-b2c-product-details-page.md
+++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/frontend-customization-example-b2c-product-details-page.md
@@ -17,7 +17,7 @@ related:
In Spryker, front-end elements have dedicated SCSS styles. To show you how to customize the Spryker front end, we broke down the *Product Details* page from our [B2C Demo Shop](/docs/about/all/b2c-suite.html#b2c-demo-shop) into separate elements with their respective style files. To customize a particular element, you adjust the code in the respective style file.
-You can see the [full version of this page](https://www.de.b2c.demo-spryker.com/en/acer-aspire-s7-134) in our B2C Demo Shop.
+You can see the [full version of this page](https://www.b2c-eu.demo-spryker.com/en/acer-aspire-s7-134) in our B2C Demo Shop.
![B2C-1](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Development+Guide/Front-End/Yves/Atomic+Frontend/%D0%A1ustomization+example+-+B2C+Product+Details+page/b2c-1.png)
diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md
index fc8eccca8b7..cb44cbd1c0a 100644
--- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md
+++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/integrate-jquery-into-atomic-frontend.md
@@ -188,6 +188,6 @@ $('.any-target-selector').countdown('2100/01/01', function (event: any) {
{% info_block errorBox %}
-Make sure that it is invoked inside/after `mountCallback (readyCallback` can be used as well, but it's now deprecated).
+Make sure that it's invoked inside/after `mountCallback (readyCallback` can be used as well, but it's now deprecated).
{% endinfo_block %}
diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/extending-components.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/extending-components.md
index 1a5cac4ad49..d08fc90800d 100644
--- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/extending-components.md
+++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/extending-components.md
@@ -22,7 +22,7 @@ Let us review the process of extending a component on the example of **side-draw
![Open side drawer](https://spryker.s3.eu-central-1.amazonaws.com/docs/Tutorials/Introduction/Customize+Frontend/open-side-drawer.png)
-The following tutorial shows how to create a new component based on the default side drawer. The new side drawer will show an alert whenever it is present on a page. Also, the component outlook will be different.
+The following tutorial shows how to create a new component based on the default side drawer. The new side drawer will show an alert whenever it's present on a page. Also, the component outlook will be different.
## 1. Create component folder
@@ -66,7 +66,7 @@ Now, let us customize the template of the source component. The original templa
Apart from changing the icon, we are going to use different colors. This can be done via styles.
-First of all, we need to inherit the styles of the source component (_side-drawer_). It has a mixin called **shop-ui-side-drawer**. Since it is a core component shipped with Spryker Shop Suite, this mixin is shared. Therefore, it can be accessed everywhere in Shop UI. To inherit the styles, we need to include the mixin in the _SCSS_ file of our new component. To render the block, elements and modifiers with the class name of the new component, we need to pass its class name to the mixin.
+First of all, we need to inherit the styles of the source component (_side-drawer_). It has a mixin called **shop-ui-side-drawer**. Since it's a core component shipped with Spryker Shop Suite, this mixin is shared. Therefore, it can be accessed everywhere in Shop UI. To inherit the styles, we need to include the mixin in the _SCSS_ file of our new component. To render the block, elements and modifiers with the class name of the new component, we need to pass its class name to the mixin.
Let us create file `new-existing-component-side-drawer.scss`, include the original mixin of the _side-drawer_ component, and pass the class name of the new component we are creating:
diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/overriding-components.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/overriding-components.md
index b9ac523e243..6b85b5418ab 100644
--- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/overriding-components.md
+++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/overriding-components.md
@@ -41,7 +41,7 @@ To override the global component, the Twig file name on the project level must b
} {% raw %}%}{% endraw %}
```
-Since the new component will be used everywhere instead of the global one, it is also recommended to replicate the data contracts. For this purpose, the **data** and **attributes** properties need to be configured the same as in the source component. If you are going to change the outlook of the component only, without changing its **data** property, attributes etc, you can copy the source Twig file, and then make changes to the **body** block only. The block contains the visual layout of a component.
+Since the new component will be used everywhere instead of the global one, it's also recommended to replicate the data contracts. For this purpose, the **data** and **attributes** properties need to be configured the same as in the source component. If you are going to change the outlook of the component only, without changing its **data** property, attributes etc, you can copy the source Twig file, and then make changes to the **body** block only. The block contains the visual layout of a component.
As we are not going to change the component template, let us copy the whole of the source twig implementation (`vendor/spryker-shop/shop-ui/src/SprykerShop/Yves/ShopUi/Theme/default/components/molecules/simple-carousel/simple-carousel.twig`) to the project level (`src/Pyz/Yves/ShopUi/Theme/default/components/molecules/simple-carousel.twig`). The Twig file will look as follows:
diff --git a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/using-components.md b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/using-components.md
index 852c69e44c1..977b802188e 100644
--- a/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/using-components.md
+++ b/docs/dg/dev/frontend-development/202410.0/yves/atomic-frontend/managing-components/using-components.md
@@ -69,7 +69,7 @@ For more details, see section _Twig_ in [Atomic Frontend](/docs/dg/dev/frontend-
## Include
-By including a component, you place it on a page as is. Each component has the `data`, `attributes`, and other properties that allow passing the necessary information to configure it, but apart from that, you can't change it. The outlook of the component depends only on configuration. By including an element, you also pass the context of the page where it is added.
+By including a component, you place it on a page as is. Each component has the `data`, `attributes`, and other properties that allow passing the necessary information to configure it, but apart from that, you can't change it. The outlook of the component depends only on configuration. By including an element, you also pass the context of the page where it's added.
The following block demonstrates how to include component `new-component-counter`.
```twig
diff --git a/docs/dg/dev/frontend-development/202410.0/yves/frontend-assets-building-and-loading.md b/docs/dg/dev/frontend-development/202410.0/yves/frontend-assets-building-and-loading.md
index 966cf259ab7..e07950afa2d 100644
--- a/docs/dg/dev/frontend-development/202410.0/yves/frontend-assets-building-and-loading.md
+++ b/docs/dg/dev/frontend-development/202410.0/yves/frontend-assets-building-and-loading.md
@@ -22,7 +22,7 @@ To support the assets loading behavior as described above, most pages considered
For the landing pages, there is the `page-critical-path` layout defining the asset's loading behavior. It is an extension of the `page-blank` layout with the overwritten `nonCriticalStyles` and `styleLazyLoader` blocks. The `page-critical-path` contains a `style-loader` component before the closing tag of ``. The `style-loader` component is responsible for loading the non-critical CSS only after the whole page is loaded.
-The `page-critical-path` layout uses cookies to track whether it is the first session on the site. If it is the first session, the critical CSS and utils are loaded into the `` tag at the start of the page loading. Only after the whole page is loaded, the `style-loader` component appends the non-critical CSS to the end of the `` tag. Otherwise, the approach for the non-landing pages is used.
+The `page-critical-path` layout uses cookies to track whether it's the first session on the site. If it's the first session, the critical CSS and utils are loaded into the `` tag at the start of the page loading. Only after the whole page is loaded, the `style-loader` component appends the non-critical CSS to the end of the `` tag. Otherwise, the approach for the non-landing pages is used.
The main purpose of the page-critical-path layout is to use the CSS Lazy Load only for the landing pages. To enable the CSS Lazy Load for your project, see [Frontend CSS Lazy Load integration](/docs/dg/dev/integrate-and-configure/integrate-css-lazy-loading.html).
@@ -46,7 +46,7 @@ A *polyfill* is a code that is used to provide modern functionality for older br
## Cache-busting mechanism
-The main idea of the *cache-busting mechanism* is to provide an ability to reset JS/CSS cache for a newly deployed version so that the new assets are delivered to the frontend applications. It is achieved by adding a hash to every asset path using an environment variable `SPRYKER_BUILD_HASH` that lets you reset the browser cache instead of a namespace variable. The path of the resources on Yves is displayed with this hash folder `assets/SPRYKER_BUILD_HASH/default/css/yves_default.app.css`. If the project is set up by Docker, the `assets` folder is present in the Docker container in a production environment. Otherwise, if it is a development environment, the `assets` folder is in a public `assets` folder rather than a container.
+The main idea of the *cache-busting mechanism* is to provide an ability to reset JS/CSS cache for a newly deployed version so that the new assets are delivered to the frontend applications. It is achieved by adding a hash to every asset path using an environment variable `SPRYKER_BUILD_HASH` that lets you reset the browser cache instead of a namespace variable. The path of the resources on Yves is displayed with this hash folder `assets/SPRYKER_BUILD_HASH/default/css/yves_default.app.css`. If the project is set up by Docker, the `assets` folder is present in the Docker container in a production environment. Otherwise, if it's a development environment, the `assets` folder is in a public `assets` folder rather than a container.
## `isCssLazyLoadSupported` Twig variable
diff --git a/docs/dg/dev/frontend-development/202410.0/yves/frontend-builder-for-yves.md b/docs/dg/dev/frontend-development/202410.0/yves/frontend-builder-for-yves.md
index 6ccda4b48a1..a27c71d7059 100644
--- a/docs/dg/dev/frontend-development/202410.0/yves/frontend-builder-for-yves.md
+++ b/docs/dg/dev/frontend-development/202410.0/yves/frontend-builder-for-yves.md
@@ -96,7 +96,7 @@ class TwigConfig extends SprykerTwigConfig
All public assets are generated into `/public/Yves/` plus the path defined in the config file, which is `assets/%namespace%/%theme%/` by default.
-For example, for the `DE` namespace and default theme, it is`/public/Yves/assets/DE/default/`.
+For example, for the `DE` namespace and default theme, it's`/public/Yves/assets/DE/default/`.
All incoming files (images, fonts, etc.) are copied from `global` (for every namespace) and `DE` folders:
diff --git a/docs/dg/dev/frontend-development/202410.0/yves/multi-theme.md b/docs/dg/dev/frontend-development/202410.0/yves/multi-theme.md
index 3ae28e3c958..c67c224210d 100644
--- a/docs/dg/dev/frontend-development/202410.0/yves/multi-theme.md
+++ b/docs/dg/dev/frontend-development/202410.0/yves/multi-theme.md
@@ -21,7 +21,7 @@ A theme is a combination of twig, CSS and JS files that make your user interface
* **Current Theme**—a single theme defined on a project level. E.g., B2B-theme, B2C-theme.
* **Default Theme**—a theme provided from Spryker by default and used in the Spryker Commerce OS. Used for incremental project updates (start from default and change components one-by-one) and a graceful fallback in case Spryker provides a new functionality which does not have own frontend in a project.
-From now on, besides the default theme, you, as a shop owner, can create and use different themes for different stores. When you select a theme, you decide how your shop is displayed. For example, you may have a New Year theme with the New year attributes that is enabled every year during the New Year holidays. Due to the development of the Spryker Commerce OS, the entities that previously were called stores (DE, EN, AT) - are now renamed into namespaces.
+From now on, besides the default theme, you, as a shop owner, can create and use different themes for different stores. When you select a theme, you decide how your shop is displayed. For example, you may have a New Year theme with the New year attributes that is enabled every year during the New Year holidays. Because of the development of the Spryker Commerce OS, the entities that previously were called stores (DE, EN, AT) - are now renamed into namespaces.
```xml
{
diff --git a/docs/dg/dev/glue-api/202311.0/authentication-and-authorization.md b/docs/dg/dev/glue-api/202311.0/authentication-and-authorization.md
index a8aa3fcc1e8..e4cb049e89f 100644
--- a/docs/dg/dev/glue-api/202311.0/authentication-and-authorization.md
+++ b/docs/dg/dev/glue-api/202311.0/authentication-and-authorization.md
@@ -17,7 +17,7 @@ redirect_from:
---
-For authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it is represented by the Login API.
+For authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it's represented by the Login API.
To get access to a protected resource, a user obtains an *access token*. An access token is a JSON Web Token used to identify a user during API calls. Then, they pass the token in the request header.
diff --git a/docs/dg/dev/glue-api/202311.0/configure-the-included-section.md b/docs/dg/dev/glue-api/202311.0/configure-the-included-section.md
index b2b727facd9..f43ea49f5ab 100644
--- a/docs/dg/dev/glue-api/202311.0/configure-the-included-section.md
+++ b/docs/dg/dev/glue-api/202311.0/configure-the-included-section.md
@@ -34,7 +34,7 @@ By default, the option is enabled on the Spryker Core level but disabled on th
{% info_block infoBox %}
-For the purposes of boosting the API performance and bandwidth usage optimization, it is recommended to request only the information you need.
+For the purposes of boosting the API performance and bandwidth usage optimization, it's recommended to request only the information you need.
{% endinfo_block %}
diff --git a/docs/dg/dev/glue-api/202311.0/decoupled-glue-api.md b/docs/dg/dev/glue-api/202311.0/decoupled-glue-api.md
index a7fbeb2a42b..a44282afba4 100644
--- a/docs/dg/dev/glue-api/202311.0/decoupled-glue-api.md
+++ b/docs/dg/dev/glue-api/202311.0/decoupled-glue-api.md
@@ -76,7 +76,7 @@ Upon receiving an API request, an API context transfer is created where we set u
First, we hydrate `GlueRequestTransfer` with data from the `Request` object. This includes request body, query params, headers, and attributes.
-Then, `ContentNegotiator` tries to resolve what convention the application must use for this request and updates `GlueRequestTransfer` with the request format. The convention is optional, so if it isn't found, the application uses the requested and accepted format to prepare request and response data.
+Then, `ContentNegotiator` tries to resolve what convention the application must use for this request and updates `GlueRequestTransfer` with the request format. The convention is optional, so if it's not found, the application uses the requested and accepted format to prepare request and response data.
With hydrated `GlueRequestTransfer` and selected or not convention, the application executes `RequestFlowExecutor`.
diff --git a/docs/dg/dev/glue-api/202311.0/document-glue-api-endpoints.md b/docs/dg/dev/glue-api/202311.0/document-glue-api-endpoints.md
index 0d532a49b7a..4fcb06b782c 100644
--- a/docs/dg/dev/glue-api/202311.0/document-glue-api-endpoints.md
+++ b/docs/dg/dev/glue-api/202311.0/document-glue-api-endpoints.md
@@ -145,7 +145,7 @@ The following table lists descriptions of the properties you can use in the anno
| `isEmptyResponse` | The flag used to mark an endpoint that returns empty responses. |
| `responses` | A list of possible responses of the endpoint. The object must contain key-value pairs with HTTP codes as key, and a description as the value. |
-### Extending the behavior
+## Extending the behavior
The following interfaces can be used to add more data to the generated documentation.
diff --git a/docs/dg/dev/glue-api/202311.0/glue-api-tutorials/document-glue-api-resources.md b/docs/dg/dev/glue-api/202311.0/glue-api-tutorials/document-glue-api-resources.md
index b20a98714a4..9a5e03efbaf 100644
--- a/docs/dg/dev/glue-api/202311.0/glue-api-tutorials/document-glue-api-resources.md
+++ b/docs/dg/dev/glue-api/202311.0/glue-api-tutorials/document-glue-api-resources.md
@@ -65,7 +65,7 @@ vendor/bin/console rest-api:generate:documentation
---
```
-When the command completes, you can see a specification file generated in the directory with the filename as you configured in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). By default, it is `src/Generated/Glue/Specification/spryker_rest_api.schema.yml`.
+When the command completes, you can see a specification file generated in the directory with the filename as you configured in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). By default, it's `src/Generated/Glue/Specification/spryker_rest_api.schema.yml`.
## 3. Describe your REST API: Requests and responses
@@ -167,7 +167,7 @@ The following table describes the annotation keys:
| --- | --- | --- |
| `getResourceById` | When set to `true`, indicates a `GET` endpoint that returns a single resource—for example, _`/wishlists/{ID}. *`_ | The `getResourceById` and `getCollection` annotations are used for `GET` endpoints only. If neither of the notations is present for the `getAction` function or they are both set to false, a `GET` endpoint is generated anyway. However, in such a case, the resource ID is not included in the response. |
| `getCollection` | When set to `true`, indicates a `GET` endpoint that returns a collection of resources—for example, _`/wishlists.*`_ | The `getResourceById` and `getCollection` annotations are used for `GET` endpoints only. If neither of the notations is present for the `getAction` function or they are both set to false, a `GET` endpoint is generated anyway. However, in such a case, the resource ID is not included in the response. |
-| `summary` | Sets a description for the endpoint. Use it to describe, as detailed as possible, what the endpoint is used for, its purpose, and intention. | If a summary is not specified explicitly, it is generated automatically. |
+| `summary` | Sets a description for the endpoint. Use it to describe, as detailed as possible, what the endpoint is used for, its purpose, and intention. | If a summary is not specified explicitly, it's generated automatically. |
| `parameters` | Sets optional parameters for the request. | Parameters can be passed in HTTP headers, queries, cookies, or as a part of the resource URI. For more information about parameter use and the available fields, in Swagger official documentation, see [Operation Object](https://swagger.io/specification/#parameterObject). |
| `responses` | Use this parameter to describe all responses that can be generated by this endpoint and their respective response codes. | The `default` response is included automatically. There is no need to include it here. |
| `responseAttributesClassName` | Sets the FQCN of a custom transfer class that represents the response object. | Use this annotation when a response object is different from the corresponding request object. |
@@ -236,6 +236,6 @@ vendor/bin/console rest-api:generate:documentation
When the command completes, you can see a specification file generated in the directory with the filename you configure in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class).
-By default, it is `src/Pyz/Generated/Glue/Specification/spryker_rest_api.schema.yml`. The specification contains all REST API endpoints configured in Glue, on the global and project levels, along with data models for all requests and responses.
+By default, it's `src/Pyz/Generated/Glue/Specification/spryker_rest_api.schema.yml`. The specification contains all REST API endpoints configured in Glue, on the global and project levels, along with data models for all requests and responses.
To get a visual representation of your API or use it in tools like Postman (with the OpenAPI v.3 support) for development purposes, you can upload the file to [Swagger Editor](https://editor.swagger.io/).
diff --git a/docs/dg/dev/glue-api/202311.0/glue-spryks.md b/docs/dg/dev/glue-api/202311.0/glue-spryks.md
index 1a736e02022..7c002d3300c 100644
--- a/docs/dg/dev/glue-api/202311.0/glue-spryks.md
+++ b/docs/dg/dev/glue-api/202311.0/glue-spryks.md
@@ -43,8 +43,8 @@ To call a Spryk, you can use the following console commands:
| `AddGlueDeleteResource` | Adds a new `DELETE` Resource to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**resourceType** - specifies the type of API resources that will be deleted.
**clientModule** - specifies the module that provides the functionality to delete the items represented by the given API resources. The module must have the *Client* layer.
**clientMethod** - specifies the method in the *clientModule* that will be used to delete the items represented by the given API resources.
|
| `AddGluePatchResource` | Adds a new `PATCH` Resource to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**resourceType** - specifies the type of API resources that will be modified.
**clientModule** - specifies the module that provides the functionality to modify the items represented by the given API resources. The module must have the *Client* layer.
**clientMethod** - specifies the method in the *clientModule* that will be used to modify the items represented by the given API resources.
|
| `AddGluePostResource` | Adds a new `POST` Resource to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**resourceType** - specifies the type of API resources that will be created.
**clientModule** - specifies the module that provides the functionality to create the items represented by the given API resources. The module must have the *Client* layer.
**clientMethod** - specifies the method in the *clientModule* that will be used to create the items represented by the given API resources.
|
-| `AddGlueResource` | Adds a new resource to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**className** - specifies the PHP class name for the resource.
**interfaceName** - specifies the PHP interface name for the resource. By default, it is the same as the class name plus the Interface suffix.
|
-| `AddGlueResourceInterface` | Adds a new resource interface to the given module. The resource must have a resource class associated with it. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**className** - specifies the PHP class name for the resource.
**interfaceName** - specifies the PHP interface name for the resource. By default, it is the same as the class name plus the `Interface` suffix.
|
+| `AddGlueResource` | Adds a new resource to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**className** - specifies the PHP class name for the resource.
**interfaceName** - specifies the PHP interface name for the resource. By default, it's the same as the class name plus the Interface suffix.
|
+| `AddGlueResourceInterface` | Adds a new resource interface to the given module. The resource must have a resource class associated with it. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**className** - specifies the PHP class name for the resource.
**interfaceName** - specifies the PHP interface name for the resource. By default, it's the same as the class name plus the `Interface` suffix.
|
## Routing management
@@ -131,8 +131,8 @@ For more details, see section **Controller management** in [Glue Infrastructur
| SPRYK | DESCRIPTION |
| --- | --- |
-| `AddGlueProcessorModel` | Adds a new processor model to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
-| `AddGlueProcessorModelInterface` | Adds a new processor model interface to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model interface will be created.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
+| `AddGlueProcessorModel` | Adds a new processor model to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
+| `AddGlueProcessorModelInterface` | Adds a new processor model interface to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model interface will be created.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
| `AddGlueProcessorModelMethod` | Adds a new method to the given processor model. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model class is located.
**className** - specifies the class name of the model.
**input** - specifies the name of the *input* (`@param`) value of the method.
**output** - specifies the name of the *output* (`@return`) value of the method.
|
| `AddGlueProcessorModelInterfaceMethod` | Adds a new method to the given processor model interface. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the `Processor` directory where the interface class is located.
**className** - specifies the class name of the model.
**input** - specifies the name of the *input* (`@param`) value of the method.
**output** - specifies the name of the *output* (`@return`) value of the method.
|
@@ -140,8 +140,8 @@ For more details, see section **Controller management** in [Glue Infrastructur
| SPRYK | DESCRIPTION |
| --- | --- |
-| `AddGlueResourceMapper` | Adds a new resource mapper model to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model will be created. The default subdirectory is `Mapper`.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
-| `AddGlueResourceMapperInterface` | Adds a new resource mapper model Interface. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the interface will be created. The default subdirectory is **Mapper**.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the **Interface** suffix.
|
+| `AddGlueResourceMapper` | Adds a new resource mapper model to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model will be created. The default subdirectory is `Mapper`.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
+| `AddGlueResourceMapperInterface` | Adds a new resource mapper model Interface. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the interface will be created. The default subdirectory is **Mapper**.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the **Interface** suffix.
|
| `AddGlueResourceMapperMethod` | Adds a new method to the given resource mapper model. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**resourceType** - specifies the resource type that will be mapped with this method.
**fromTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **requests** to the resource properties.
**toTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **responses** to the resource properties. The default name for both the transfers consists of the resource type, camel-cased, with the `Rest` prefix and the`AttributesTransfer` suffix.
|
| `AddGlueResourceMapperInterfaceMethod` | Adds a new method to the resource mapper model interface. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**resourceType** - specifies the resource type that will be mapped with this method.
**fromTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **requests** to the resource properties.
**toTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **responses** to the resource properties. The default name for both the transfers consists of the resource type, camel-cased, with the `Rest` prefix and the`AttributesTransfer` suffix.
|
@@ -155,8 +155,8 @@ For more details, see section **Generic Rest Response** in [Glue Infrastructure
| SPRYK | DESCRIPTION |
| --- | --- |
-| `AddGlueResourceRestResponseBuilderModel` | Adds a new response builder model to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the name of the subdirectory where to create the model. By default, the Spryk uses the RestResponseBuilder subdirectory in the Processor directory of the module root folder.
**resourceType** - specifies the resource type.
**className** - specifies the class name for the model. By default, it is the same as the resource name in singular and capitalized plus the **RestResponseBuilder** suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
-| `AddGlueResourceRestResponseBuilderModelInterface` | Adds an interface for a response builder model class of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the name of the subdirectory where to create the interface. By default, the Spryk uses the `RestResponseBuilder` subdirectory in the `Processor` directory of the module root folder.
**resourceType** - specifies the resource type.
**className** - specifies the class name for the model. By default, it is the same as the resource name in singular and capitalized plus the `RestResponseBuilder` suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
+| `AddGlueResourceRestResponseBuilderModel` | Adds a new response builder model to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the name of the subdirectory where to create the model. By default, the Spryk uses the RestResponseBuilder subdirectory in the Processor directory of the module root folder.
**resourceType** - specifies the resource type.
**className** - specifies the class name for the model. By default, it's the same as the resource name in singular and capitalized plus the **RestResponseBuilder** suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
+| `AddGlueResourceRestResponseBuilderModelInterface` | Adds an interface for a response builder model class of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the name of the subdirectory where to create the interface. By default, the Spryk uses the `RestResponseBuilder` subdirectory in the `Processor` directory of the module root folder.
**resourceType** - specifies the resource type.
**className** - specifies the class name for the model. By default, it's the same as the resource name in singular and capitalized plus the `RestResponseBuilder` suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
## Adding validation
diff --git a/docs/dg/dev/glue-api/202311.0/integrate-a-ciam-provider.md b/docs/dg/dev/glue-api/202311.0/integrate-a-ciam-provider.md
index 803177d67a5..d3062f2e6f8 100644
--- a/docs/dg/dev/glue-api/202311.0/integrate-a-ciam-provider.md
+++ b/docs/dg/dev/glue-api/202311.0/integrate-a-ciam-provider.md
@@ -302,7 +302,7 @@ In the `OauthApi` module, extend the access token validation step with your CIAM
```
Adjust `OauthApiFactory` and `OauthApiDependencyProvider` to include the CIAM provider service.
-In the implementation example, it is `Pyz\Service\CiamProvider\CiamProviderServiceInterface`.
+In the implementation example, it's `Pyz\Service\CiamProvider\CiamProviderServiceInterface`.
The following example extends `AccessTokenValidator` to validate the authorization header using the CIAM provider parser:
diff --git a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md
index 80d46800d3a..454f93274ef 100644
--- a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md
+++ b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md
@@ -30,7 +30,7 @@ This is a document related to the Old Glue infrastructure. For the new one, see
{% endinfo_block %}
-[Protected resources](#protected-resources) in Spryker Glue API require user authentication. For the authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it is represented by the Login API.
+[Protected resources](#protected-resources) in Spryker Glue API require user authentication. For the authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it's represented by the Login API.
To get access to a protected resource, a user obtains an *access token*. An access token is a JSON Web Token used to identify a user during API calls. Then, they pass the token in the request header.
diff --git a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-security-and-authentication.md b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-security-and-authentication.md
index 54a68c3546d..00bc2b24ed7 100644
--- a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-security-and-authentication.md
+++ b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-api-security-and-authentication.md
@@ -26,7 +26,7 @@ This is a document related to the Old Glue infrastructure. For the new one, see
{% endinfo_block %}
-When exposing information via Spryker Glue API and integrating with third-party applications, it is essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It allows users to authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources.
+When exposing information via Spryker Glue API and integrating with third-party applications, it's essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It allows users to authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources.
The authorization mechanism provided by the Glue is flexible and allows you to define which endpoints specifically require authentication. Usually, protected endpoints include customer wish lists, carts, personal data and the like. Also, you may want to protect additional areas as required by your project. In addition to endpoints, you may require authorization to use specific REST verbs. For example, a certain endpoint can allow retrieving information, but not modifying it. In this case, the GET verb can be allowed for usage without authentication, while the PUT, PATCH and DELETE verbs will require user authentication to use.
@@ -141,7 +141,7 @@ All data related to API authentication functionality is stored in the following
|TABLE| PURPOSE|
| --- | --- |
-| spy_oauth_access_token| Stores all issued tokens. The table is not used for token verification, it is added for audit purposes only. |
+| spy_oauth_access_token| Stores all issued tokens. The table is not used for token verification, it's added for audit purposes only. |
| spy_oauth_client|Contains a list of clients that are currently using OAuth, one record for each frontend customer. The `is_confidental` field identifies whether a specific client must provide a password. |
| spy_oauth_scope | Stores user scopes.|
diff --git a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-infrastructure.md b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-infrastructure.md
index 4b5e929aac0..fc2228602ce 100644
--- a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-infrastructure.md
+++ b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-infrastructure.md
@@ -109,9 +109,9 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency
### Resource modules
-A _Resource module_ is a module that implements a single resource or a set of resources. It is responsible for accepting a request in the form of _Request Objects_ and providing responses in the form of _Response Objects_. For this purpose, the module can communicate with the Storage or Search, for which purpose it implements a [Client](/docs/dg/dev/backend-development/client/client.html). It can also communicate with the Spryker Commerce OS (Zed), however, it is recommended to avoid round trips to the database as much as possible as that can reduce API performance considerably.
+A _Resource module_ is a module that implements a single resource or a set of resources. It is responsible for accepting a request in the form of _Request Objects_ and providing responses in the form of _Response Objects_. For this purpose, the module can communicate with the Storage or Search, for which purpose it implements a [Client](/docs/dg/dev/backend-development/client/client.html). It can also communicate with the Spryker Commerce OS (Zed), however, it's recommended to avoid round trips to the database as much as possible as that can reduce API performance considerably.
-Resource modules must implement all logic related to processing a request. It is not recommended having any of the Business Logic, or a part of it, in the _GlueApplication Module_. In case you need to extend any of the built-in Glue functionality, it is always safer to extend the relevant _Resource module_ than infrastructure.
+Resource modules must implement all logic related to processing a request. It is not recommended having any of the Business Logic, or a part of it, in the _GlueApplication Module_. In case you need to extend any of the built-in Glue functionality, it's always safer to extend the relevant _Resource module_ than infrastructure.
#### Module structure
@@ -207,7 +207,7 @@ Business errors are returned as the `RestErrorMessageTransfer` objects with the
### Nested resources
-Glue API allows creating resources with parent-child relationships or, in other words, nested resources. For example, a request to `/customers/1/addresses` returns addresses for a customer with ID 1. To enable such behavior, it is necessary to define how resources depend on each other. This is done by configuring resource route plugins. When processing an URL, the _GlueApplication Module_ tries to find a correct route to a child resource. For this reason, all modules in the nesting chain should be arranged in a sequence using **ResourceWithParentPluginInterface**. Then, while handling a request to a child resource, business logic can access the parent resource identifier and process the request in the correct context.
+Glue API allows creating resources with parent-child relationships or, in other words, nested resources. For example, a request to `/customers/1/addresses` returns addresses for a customer with ID 1. To enable such behavior, it's necessary to define how resources depend on each other. This is done by configuring resource route plugins. When processing an URL, the _GlueApplication Module_ tries to find a correct route to a child resource. For this reason, all modules in the nesting chain should be arranged in a sequence using **ResourceWithParentPluginInterface**. Then, while handling a request to a child resource, business logic can access the parent resource identifier and process the request in the correct context.
#### ResourceWithParentPluginInterface
diff --git a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-rest-api.md b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-rest-api.md
index 132e44eff01..5f182049304 100644
--- a/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-rest-api.md
+++ b/docs/dg/dev/glue-api/202311.0/old-glue-infrastructure/glue-rest-api.md
@@ -43,7 +43,7 @@ For more details, see REST API reference:
## B2C API React example
-To help you understand possible use cases, we provide a sample app as an exemplary implementation (which is not a starting point for development). It can coexist with a shop as a second touchpoint in the project. From a technological perspective, it is based on our customers' interests. The app is single-page application based on a React JS library.
+To help you understand possible use cases, we provide a sample app as an exemplary implementation (which is not a starting point for development). It can coexist with a shop as a second touchpoint in the project. From a technological perspective, it's based on our customers' interests. The app is single-page application based on a React JS library.
It delivers a full customer experience from browsing the catalog to placing an order. The application helps you understand how you can use the predefined APIs to create a B2C user experience. As an example, the full power of Elasticsearch, which is already present in our [B2B](/docs/about/all/b2b-suite.html) and [B2C Demo Shops](/docs/about/all/b2c-suite.html), is leveraged through dedicated endpoints to deliver catalog search functionality with autocompletion, autosuggestion, facets, sorting, and pagination.
@@ -57,7 +57,7 @@ For more deatails about installing and running, see [B2C API React example](/doc
Glue API helps you to connect your Spryker Commerce OS with new or existing touch points. These touchpoints can be headless like voice commerce devices and chat bots, or they may come with a user interface like a mobile app. Alternative front ends also benefit from the APIs. Here are some examples:
* New frontend: Build a new frontend or use a frontend framework like Progressive Web Apps and power it by the Glue API.
-* Mobile app: a mobile app, no matter if it is native, hybrid or just a web-view, can support the same functionality as the existing demo shops do.
+* Mobile app: a mobile app, no matter if it's native, hybrid or just a web-view, can support the same functionality as the existing demo shops do.
* Voice commerce: Leverage the APIs for order history to inform your customers about the status of their delivery.
* Chatbot: Use chatbots to identify the customer that are trying to reach out to you and help them answer basic questions about your products.
diff --git a/docs/dg/dev/glue-api/202311.0/routing/create-routes.md b/docs/dg/dev/glue-api/202311.0/routing/create-routes.md
index 3ce9cfc0a5f..67326d9b978 100644
--- a/docs/dg/dev/glue-api/202311.0/routing/create-routes.md
+++ b/docs/dg/dev/glue-api/202311.0/routing/create-routes.md
@@ -50,7 +50,7 @@ class ModuleBarController extends AbstractController
```
-Even though an empty response is returned, the module's `Factory` is available and can be used to access Processor models or external dependencies the same way it is done everywhere in Spryker.
+Even though an empty response is returned, the module's `Factory` is available and can be used to access Processor models or external dependencies the same way it's done everywhere in Spryker.
{% info_block infoBox %}
diff --git a/docs/dg/dev/glue-api/202311.0/security-and-authentication.md b/docs/dg/dev/glue-api/202311.0/security-and-authentication.md
index 60111bb8941..33cdaa5ff7b 100644
--- a/docs/dg/dev/glue-api/202311.0/security-and-authentication.md
+++ b/docs/dg/dev/glue-api/202311.0/security-and-authentication.md
@@ -11,7 +11,7 @@ redirect_from:
---
-When exposing information through Spryker Glue API and integrating with third-party applications, it is essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It lets users authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources.
+When exposing information through Spryker Glue API and integrating with third-party applications, it's essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It lets users authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources.
The authorization mechanism provided by the Glue is flexible and lets you define which endpoints specifically require authentication. Usually, protected endpoints include customer wish lists, carts, personal data, and the like. Also, you may want to protect additional areas as required by your project. In addition to endpoints, you may require authorization to use specific REST verbs. For example, a certain endpoint can allow retrieving information but not modifying it. In this case, the GET verb can be allowed for usage without authentication, while the PUT, PATCH, and DELETE verbs require user authentication to use.
diff --git a/docs/dg/dev/glue-api/202311.0/use-default-glue-parameters.md b/docs/dg/dev/glue-api/202311.0/use-default-glue-parameters.md
index 3dc5a7863c8..68d13519471 100644
--- a/docs/dg/dev/glue-api/202311.0/use-default-glue-parameters.md
+++ b/docs/dg/dev/glue-api/202311.0/use-default-glue-parameters.md
@@ -21,7 +21,7 @@ The Glue JSON:API convention provides some parameter parsing out of the box. The
## Pagination
-Glue uses an offset-based pagination style: the client passes two values, `offset` and `limit`, where the limit is the number of records to display, and offset is the number of records to skip. Here is an example:
+Glue uses an offset-based pagination style: the client passes two values, `offset` and `limit`, where the limit's the number of records to display, and offset is the number of records to skip. Here is an example:
```
?page[offset]=0&page[limit]=10 # display 10 records starting at 0 (AKA page #1)
@@ -58,7 +58,7 @@ $glueResponseTransfer->getPagination()->setNbResults();
## Sorting
-Sorting can be passed part as a request as simple GET parameters `?sort=resources.age`, where value is the field by which sort resource and attribute; by default, it is ASCENDING order. To change it to DESCENDING, add a hyphen (`-`)—for example, `?sort=-resources.age`.
+Sorting can be passed part as a request as simple GET parameters `?sort=resources.age`, where value is the field by which sort resource and attribute; by default, it's ASCENDING order. To change it to DESCENDING, add a hyphen (`-`)—for example, `?sort=-resources.age`.
To get an order, you can read it from `$glueRequestTransfer->getSortings()`, which returns an array of `SortTransfer`, each containing field to be sorted. Use it to sort data when querying from persistence.
@@ -74,4 +74,4 @@ You can reduce the amount of data returned by using sparse fields. Clients can p
When processing a request, you can get this by accessing `$glueRequestTransfer->getQueryFields()`. This returns an array of strings.
-When building response attributes that are not within the fields, the list is removed, even if it is populated by resource processing.
+When building response attributes that are not within the fields, the list is removed, even if it's populated by resource processing.
diff --git a/docs/dg/dev/glue-api/202404.0/authentication-and-authorization.md b/docs/dg/dev/glue-api/202404.0/authentication-and-authorization.md
index 4ff5081a949..0c3704aa4d9 100644
--- a/docs/dg/dev/glue-api/202404.0/authentication-and-authorization.md
+++ b/docs/dg/dev/glue-api/202404.0/authentication-and-authorization.md
@@ -17,7 +17,7 @@ redirect_from:
---
-For authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it is represented by the Login API.
+For authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it's represented by the Login API.
To get access to a protected resource, a user obtains an *access token*. An access token is a JSON Web Token used to identify a user during API calls. Then, they pass the token in the request header.
diff --git a/docs/dg/dev/glue-api/202404.0/configure-the-included-section.md b/docs/dg/dev/glue-api/202404.0/configure-the-included-section.md
index 51bb714054a..87e2c466196 100644
--- a/docs/dg/dev/glue-api/202404.0/configure-the-included-section.md
+++ b/docs/dg/dev/glue-api/202404.0/configure-the-included-section.md
@@ -34,7 +34,7 @@ By default, the option is enabled on the Spryker Core level but disabled on th
{% info_block infoBox %}
-For the purposes of boosting the API performance and bandwidth usage optimization, it is recommended to request only the information you need.
+For the purposes of boosting the API performance and bandwidth usage optimization, it's recommended to request only the information you need.
{% endinfo_block %}
diff --git a/docs/dg/dev/glue-api/202404.0/decoupled-glue-api.md b/docs/dg/dev/glue-api/202404.0/decoupled-glue-api.md
index feccb86fefd..0227ef56314 100644
--- a/docs/dg/dev/glue-api/202404.0/decoupled-glue-api.md
+++ b/docs/dg/dev/glue-api/202404.0/decoupled-glue-api.md
@@ -76,7 +76,7 @@ Upon receiving an API request, an API context transfer is created where we set u
First, we hydrate `GlueRequestTransfer` with data from the `Request` object. This includes request body, query params, headers, and attributes.
-Then, `ContentNegotiator` tries to resolve what convention the application must use for this request and updates `GlueRequestTransfer` with the request format. The convention is optional, so if it isn't found, the application uses the requested and accepted format to prepare request and response data.
+Then, `ContentNegotiator` tries to resolve what convention the application must use for this request and updates `GlueRequestTransfer` with the request format. The convention is optional, so if it's not found, the application uses the requested and accepted format to prepare request and response data.
With hydrated `GlueRequestTransfer` and selected or not convention, the application executes `RequestFlowExecutor`.
diff --git a/docs/dg/dev/glue-api/202404.0/document-glue-api-endpoints.md b/docs/dg/dev/glue-api/202404.0/document-glue-api-endpoints.md
index 4862d85b370..f64ebb83c68 100644
--- a/docs/dg/dev/glue-api/202404.0/document-glue-api-endpoints.md
+++ b/docs/dg/dev/glue-api/202404.0/document-glue-api-endpoints.md
@@ -145,7 +145,7 @@ The following table lists descriptions of the properties you can use in the anno
| `isEmptyResponse` | The flag used to mark an endpoint that returns empty responses. |
| `responses` | A list of possible responses of the endpoint. The object must contain key-value pairs with HTTP codes as key, and a description as the value. |
-### Extending the behavior
+## Extending the behavior
The following interfaces can be used to add more data to the generated documentation.
diff --git a/docs/dg/dev/glue-api/202404.0/glue-api-tutorials/document-glue-api-resources.md b/docs/dg/dev/glue-api/202404.0/glue-api-tutorials/document-glue-api-resources.md
index 0fc5223eb65..33b153d442a 100644
--- a/docs/dg/dev/glue-api/202404.0/glue-api-tutorials/document-glue-api-resources.md
+++ b/docs/dg/dev/glue-api/202404.0/glue-api-tutorials/document-glue-api-resources.md
@@ -65,7 +65,7 @@ vendor/bin/console rest-api:generate:documentation
---
```
-When the command completes, you can see a specification file generated in the directory with the filename as you configured in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). By default, it is `src/Generated/Glue/Specification/spryker_rest_api.schema.yml`.
+When the command completes, you can see a specification file generated in the directory with the filename as you configured in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). By default, it's `src/Generated/Glue/Specification/spryker_rest_api.schema.yml`.
## 3. Describe your REST API: Requests and responses
@@ -167,7 +167,7 @@ The following table describes the annotation keys:
| --- | --- | --- |
| `getResourceById` | When set to `true`, indicates a `GET` endpoint that returns a single resource—for example, _`/wishlists/{ID}. *`_ | The `getResourceById` and `getCollection` annotations are used for `GET` endpoints only. If neither of the notations is present for the `getAction` function or they are both set to false, a `GET` endpoint is generated anyway. However, in such a case, the resource ID is not included in the response. |
| `getCollection` | When set to `true`, indicates a `GET` endpoint that returns a collection of resources—for example, _`/wishlists.*`_ | The `getResourceById` and `getCollection` annotations are used for `GET` endpoints only. If neither of the notations is present for the `getAction` function or they are both set to false, a `GET` endpoint is generated anyway. However, in such a case, the resource ID is not included in the response. |
-| `summary` | Sets a description for the endpoint. Use it to describe, as detailed as possible, what the endpoint is used for, its purpose, and intention. | If a summary is not specified explicitly, it is generated automatically. |
+| `summary` | Sets a description for the endpoint. Use it to describe, as detailed as possible, what the endpoint is used for, its purpose, and intention. | If a summary is not specified explicitly, it's generated automatically. |
| `parameters` | Sets optional parameters for the request. | Parameters can be passed in HTTP headers, queries, cookies, or as a part of the resource URI. For more information about parameter use and the available fields, in Swagger official documentation, see [Operation Object](https://swagger.io/specification/#parameterObject). |
| `responses` | Use this parameter to describe all responses that can be generated by this endpoint and their respective response codes. | The `default` response is included automatically. There is no need to include it here. |
| `responseAttributesClassName` | Sets the FQCN of a custom transfer class that represents the response object. | Use this annotation when a response object is different from the corresponding request object. |
@@ -236,6 +236,6 @@ vendor/bin/console rest-api:generate:documentation
When the command completes, you can see a specification file generated in the directory with the filename you configure in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class).
-By default, it is `src/Pyz/Generated/Glue/Specification/spryker_rest_api.schema.yml`. The specification contains all REST API endpoints configured in Glue, on the global and project levels, along with data models for all requests and responses.
+By default, it's `src/Pyz/Generated/Glue/Specification/spryker_rest_api.schema.yml`. The specification contains all REST API endpoints configured in Glue, on the global and project levels, along with data models for all requests and responses.
To get a visual representation of your API or use it in tools like Postman (with the OpenAPI v.3 support) for development purposes, you can upload the file to [Swagger Editor](https://editor.swagger.io/).
diff --git a/docs/dg/dev/glue-api/202404.0/glue-spryks.md b/docs/dg/dev/glue-api/202404.0/glue-spryks.md
index dcc706b86f0..e96aa225bab 100644
--- a/docs/dg/dev/glue-api/202404.0/glue-spryks.md
+++ b/docs/dg/dev/glue-api/202404.0/glue-spryks.md
@@ -43,8 +43,8 @@ To call a Spryk, you can use the following console commands:
| `AddGlueDeleteResource` | Adds a new `DELETE` Resource to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**resourceType** - specifies the type of API resources that will be deleted.
**clientModule** - specifies the module that provides the functionality to delete the items represented by the given API resources. The module must have the *Client* layer.
**clientMethod** - specifies the method in the *clientModule* that will be used to delete the items represented by the given API resources.
|
| `AddGluePatchResource` | Adds a new `PATCH` Resource to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**resourceType** - specifies the type of API resources that will be modified.
**clientModule** - specifies the module that provides the functionality to modify the items represented by the given API resources. The module must have the *Client* layer.
**clientMethod** - specifies the method in the *clientModule* that will be used to modify the items represented by the given API resources.
|
| `AddGluePostResource` | Adds a new `POST` Resource to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**resourceType** - specifies the type of API resources that will be created.
**clientModule** - specifies the module that provides the functionality to create the items represented by the given API resources. The module must have the *Client* layer.
**clientMethod** - specifies the method in the *clientModule* that will be used to create the items represented by the given API resources.
|
-| `AddGlueResource` | Adds a new resource to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**className** - specifies the PHP class name for the resource.
**interfaceName** - specifies the PHP interface name for the resource. By default, it is the same as the class name plus the Interface suffix.
|
-| `AddGlueResourceInterface` | Adds a new resource interface to the given module. The resource must have a resource class associated with it. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**className** - specifies the PHP class name for the resource.
**interfaceName** - specifies the PHP interface name for the resource. By default, it is the same as the class name plus the `Interface` suffix.
|
+| `AddGlueResource` | Adds a new resource to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**className** - specifies the PHP class name for the resource.
**interfaceName** - specifies the PHP interface name for the resource. By default, it's the same as the class name plus the Interface suffix.
|
+| `AddGlueResourceInterface` | Adds a new resource interface to the given module. The resource must have a resource class associated with it. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**className** - specifies the PHP class name for the resource.
**interfaceName** - specifies the PHP interface name for the resource. By default, it's the same as the class name plus the `Interface` suffix.
|
## Routing management
@@ -131,8 +131,8 @@ For more details, see section **Controller management** in [Glue Infrastructur
| SPRYK | DESCRIPTION |
| --- | --- |
-| `AddGlueProcessorModel` | Adds a new processor model to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
-| `AddGlueProcessorModelInterface` | Adds a new processor model interface to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model interface will be created.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
+| `AddGlueProcessorModel` | Adds a new processor model to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
+| `AddGlueProcessorModelInterface` | Adds a new processor model interface to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model interface will be created.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
| `AddGlueProcessorModelMethod` | Adds a new method to the given processor model. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model class is located.
**className** - specifies the class name of the model.
**input** - specifies the name of the *input* (`@param`) value of the method.
**output** - specifies the name of the *output* (`@return`) value of the method.
|
| `AddGlueProcessorModelInterfaceMethod` | Adds a new method to the given processor model interface. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the `Processor` directory where the interface class is located.
**className** - specifies the class name of the model.
**input** - specifies the name of the *input* (`@param`) value of the method.
**output** - specifies the name of the *output* (`@return`) value of the method.
|
@@ -140,8 +140,8 @@ For more details, see section **Controller management** in [Glue Infrastructur
| SPRYK | DESCRIPTION |
| --- | --- |
-| `AddGlueResourceMapper` | Adds a new resource mapper model to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model will be created. The default subdirectory is `Mapper`.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
-| `AddGlueResourceMapperInterface` | Adds a new resource mapper model Interface. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the interface will be created. The default subdirectory is **Mapper**.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the **Interface** suffix.
|
+| `AddGlueResourceMapper` | Adds a new resource mapper model to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model will be created. The default subdirectory is `Mapper`.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
+| `AddGlueResourceMapperInterface` | Adds a new resource mapper model Interface. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the interface will be created. The default subdirectory is **Mapper**.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the **Interface** suffix.
|
| `AddGlueResourceMapperMethod` | Adds a new method to the given resource mapper model. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**resourceType** - specifies the resource type that will be mapped with this method.
**fromTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **requests** to the resource properties.
**toTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **responses** to the resource properties. The default name for both the transfers consists of the resource type, camel-cased, with the `Rest` prefix and the`AttributesTransfer` suffix.
|
| `AddGlueResourceMapperInterfaceMethod` | Adds a new method to the resource mapper model interface. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**resourceType** - specifies the resource type that will be mapped with this method.
**fromTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **requests** to the resource properties.
**toTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **responses** to the resource properties. The default name for both the transfers consists of the resource type, camel-cased, with the `Rest` prefix and the`AttributesTransfer` suffix.
|
@@ -155,8 +155,8 @@ For more details, see section **Generic Rest Response** in [Glue Infrastructure
| SPRYK | DESCRIPTION |
| --- | --- |
-| `AddGlueResourceRestResponseBuilderModel` | Adds a new response builder model to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the name of the subdirectory where to create the model. By default, the Spryk uses the RestResponseBuilder subdirectory in the Processor directory of the module root folder.
**resourceType** - specifies the resource type.
**className** - specifies the class name for the model. By default, it is the same as the resource name in singular and capitalized plus the **RestResponseBuilder** suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
-| `AddGlueResourceRestResponseBuilderModelInterface` | Adds an interface for a response builder model class of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the name of the subdirectory where to create the interface. By default, the Spryk uses the `RestResponseBuilder` subdirectory in the `Processor` directory of the module root folder.
**resourceType** - specifies the resource type.
**className** - specifies the class name for the model. By default, it is the same as the resource name in singular and capitalized plus the `RestResponseBuilder` suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
+| `AddGlueResourceRestResponseBuilderModel` | Adds a new response builder model to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the name of the subdirectory where to create the model. By default, the Spryk uses the RestResponseBuilder subdirectory in the Processor directory of the module root folder.
**resourceType** - specifies the resource type.
**className** - specifies the class name for the model. By default, it's the same as the resource name in singular and capitalized plus the **RestResponseBuilder** suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
+| `AddGlueResourceRestResponseBuilderModelInterface` | Adds an interface for a response builder model class of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the name of the subdirectory where to create the interface. By default, the Spryk uses the `RestResponseBuilder` subdirectory in the `Processor` directory of the module root folder.
**resourceType** - specifies the resource type.
**className** - specifies the class name for the model. By default, it's the same as the resource name in singular and capitalized plus the `RestResponseBuilder` suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
## Adding validation
diff --git a/docs/dg/dev/glue-api/202404.0/integrate-a-ciam-provider.md b/docs/dg/dev/glue-api/202404.0/integrate-a-ciam-provider.md
index 611f6d78690..8beaa44e70a 100644
--- a/docs/dg/dev/glue-api/202404.0/integrate-a-ciam-provider.md
+++ b/docs/dg/dev/glue-api/202404.0/integrate-a-ciam-provider.md
@@ -302,7 +302,7 @@ In the `OauthApi` module, extend the access token validation step with your CIAM
```
Adjust `OauthApiFactory` and `OauthApiDependencyProvider` to include the CIAM provider service.
-In the implementation example, it is `Pyz\Service\CiamProvider\CiamProviderServiceInterface`.
+In the implementation example, it's `Pyz\Service\CiamProvider\CiamProviderServiceInterface`.
The following example extends `AccessTokenValidator` to validate the authorization header using the CIAM provider parser:
diff --git a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md
index 50d3cc3eed0..8496b52f9da 100644
--- a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md
+++ b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md
@@ -30,7 +30,7 @@ This is a document related to the Old Glue infrastructure. For the new one, see
{% endinfo_block %}
-[Protected resources](#protected-resources) in Spryker Glue API require user authentication. For the authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it is represented by the Login API.
+[Protected resources](#protected-resources) in Spryker Glue API require user authentication. For the authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it's represented by the Login API.
To get access to a protected resource, a user obtains an *access token*. An access token is a JSON Web Token used to identify a user during API calls. Then, they pass the token in the request header.
diff --git a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-security-and-authentication.md b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-security-and-authentication.md
index dc879b9ff6a..3021cec08f0 100644
--- a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-security-and-authentication.md
+++ b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-api-security-and-authentication.md
@@ -26,7 +26,7 @@ This is a document related to the Old Glue infrastructure. For the new one, see
{% endinfo_block %}
-When exposing information via Spryker Glue API and integrating with third-party applications, it is essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It allows users to authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources.
+When exposing information via Spryker Glue API and integrating with third-party applications, it's essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It allows users to authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources.
The authorization mechanism provided by the Glue is flexible and allows you to define which endpoints specifically require authentication. Usually, protected endpoints include customer wish lists, carts, personal data and the like. Also, you may want to protect additional areas as required by your project. In addition to endpoints, you may require authorization to use specific REST verbs. For example, a certain endpoint can allow retrieving information, but not modifying it. In this case, the GET verb can be allowed for usage without authentication, while the PUT, PATCH and DELETE verbs will require user authentication to use.
@@ -141,7 +141,7 @@ All data related to API authentication functionality is stored in the following
|TABLE| PURPOSE|
| --- | --- |
-| spy_oauth_access_token| Stores all issued tokens. The table is not used for token verification, it is added for audit purposes only. |
+| spy_oauth_access_token| Stores all issued tokens. The table is not used for token verification, it's added for audit purposes only. |
| spy_oauth_client|Contains a list of clients that are currently using OAuth, one record for each frontend customer. The `is_confidental` field identifies whether a specific client must provide a password. |
| spy_oauth_scope | Stores user scopes.|
diff --git a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-infrastructure.md b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-infrastructure.md
index 34a5cf694ee..56ca972fa59 100644
--- a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-infrastructure.md
+++ b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-infrastructure.md
@@ -109,9 +109,9 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency
### Resource modules
-A _Resource module_ is a module that implements a single resource or a set of resources. It is responsible for accepting a request in the form of _Request Objects_ and providing responses in the form of _Response Objects_. For this purpose, the module can communicate with the Storage or Search, for which purpose it implements a [Client](/docs/dg/dev/backend-development/client/client.html). It can also communicate with the Spryker Commerce OS (Zed), however, it is recommended to avoid round trips to the database as much as possible as that can reduce API performance considerably.
+A _Resource module_ is a module that implements a single resource or a set of resources. It is responsible for accepting a request in the form of _Request Objects_ and providing responses in the form of _Response Objects_. For this purpose, the module can communicate with the Storage or Search, for which purpose it implements a [Client](/docs/dg/dev/backend-development/client/client.html). It can also communicate with the Spryker Commerce OS (Zed), however, it's recommended to avoid round trips to the database as much as possible as that can reduce API performance considerably.
-Resource modules must implement all logic related to processing a request. It is not recommended having any of the Business Logic, or a part of it, in the _GlueApplication Module_. In case you need to extend any of the built-in Glue functionality, it is always safer to extend the relevant _Resource module_ than infrastructure.
+Resource modules must implement all logic related to processing a request. It is not recommended having any of the Business Logic, or a part of it, in the _GlueApplication Module_. In case you need to extend any of the built-in Glue functionality, it's always safer to extend the relevant _Resource module_ than infrastructure.
#### Module structure
@@ -207,7 +207,7 @@ Business errors are returned as the `RestErrorMessageTransfer` objects with the
### Nested resources
-Glue API allows creating resources with parent-child relationships or, in other words, nested resources. For example, a request to `/customers/1/addresses` returns addresses for a customer with ID 1. To enable such behavior, it is necessary to define how resources depend on each other. This is done by configuring resource route plugins. When processing an URL, the _GlueApplication Module_ tries to find a correct route to a child resource. For this reason, all modules in the nesting chain should be arranged in a sequence using **ResourceWithParentPluginInterface**. Then, while handling a request to a child resource, business logic can access the parent resource identifier and process the request in the correct context.
+Glue API allows creating resources with parent-child relationships or, in other words, nested resources. For example, a request to `/customers/1/addresses` returns addresses for a customer with ID 1. To enable such behavior, it's necessary to define how resources depend on each other. This is done by configuring resource route plugins. When processing an URL, the _GlueApplication Module_ tries to find a correct route to a child resource. For this reason, all modules in the nesting chain should be arranged in a sequence using **ResourceWithParentPluginInterface**. Then, while handling a request to a child resource, business logic can access the parent resource identifier and process the request in the correct context.
#### ResourceWithParentPluginInterface
diff --git a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-rest-api.md b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-rest-api.md
index 5ef4b1001a1..0f45c9aae33 100644
--- a/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-rest-api.md
+++ b/docs/dg/dev/glue-api/202404.0/old-glue-infrastructure/glue-rest-api.md
@@ -43,7 +43,7 @@ For more details, see REST API reference:
## B2C API React example
-To help you understand possible use cases, we provide a sample app as an exemplary implementation (which is not a starting point for development). It can coexist with a shop as a second touchpoint in the project. From a technological perspective, it is based on our customers' interests. The app is single-page application based on a React JS library.
+To help you understand possible use cases, we provide a sample app as an exemplary implementation (which is not a starting point for development). It can coexist with a shop as a second touchpoint in the project. From a technological perspective, it's based on our customers' interests. The app is single-page application based on a React JS library.
It delivers a full customer experience from browsing the catalog to placing an order. The application helps you understand how you can use the predefined APIs to create a B2C user experience. As an example, the full power of Elasticsearch, which is already present in our [B2B](/docs/about/all/b2b-suite.html) and [B2C Demo Shops](/docs/about/all/b2c-suite.html), is leveraged through dedicated endpoints to deliver catalog search functionality with autocompletion, autosuggestion, facets, sorting, and pagination.
@@ -57,7 +57,7 @@ For more deatails about installing and running, see [B2C API React example](/doc
Glue API helps you to connect your Spryker Commerce OS with new or existing touch points. These touchpoints can be headless like voice commerce devices and chat bots, or they may come with a user interface like a mobile app. Alternative front ends also benefit from the APIs. Here are some examples:
* New frontend: Build a new frontend or use a frontend framework like Progressive Web Apps and power it by the Glue API.
-* Mobile app: a mobile app, no matter if it is native, hybrid or just a web-view, can support the same functionality as the existing demo shops do.
+* Mobile app: a mobile app, no matter if it's native, hybrid or just a web-view, can support the same functionality as the existing demo shops do.
* Voice commerce: Leverage the APIs for order history to inform your customers about the status of their delivery.
* Chatbot: Use chatbots to identify the customer that are trying to reach out to you and help them answer basic questions about your products.
diff --git a/docs/dg/dev/glue-api/202404.0/routing/create-routes.md b/docs/dg/dev/glue-api/202404.0/routing/create-routes.md
index 5d58084c0af..f3548a395ea 100644
--- a/docs/dg/dev/glue-api/202404.0/routing/create-routes.md
+++ b/docs/dg/dev/glue-api/202404.0/routing/create-routes.md
@@ -50,7 +50,7 @@ class ModuleBarController extends AbstractController
```
-Even though an empty response is returned, the module's `Factory` is available and can be used to access Processor models or external dependencies the same way it is done everywhere in Spryker.
+Even though an empty response is returned, the module's `Factory` is available and can be used to access Processor models or external dependencies the same way it's done everywhere in Spryker.
{% info_block infoBox %}
diff --git a/docs/dg/dev/glue-api/202404.0/security-and-authentication.md b/docs/dg/dev/glue-api/202404.0/security-and-authentication.md
index 06de5af5c95..8ba29bedfb0 100644
--- a/docs/dg/dev/glue-api/202404.0/security-and-authentication.md
+++ b/docs/dg/dev/glue-api/202404.0/security-and-authentication.md
@@ -11,7 +11,7 @@ redirect_from:
---
-When exposing information through Spryker Glue API and integrating with third-party applications, it is essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It lets users authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources.
+When exposing information through Spryker Glue API and integrating with third-party applications, it's essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It lets users authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources.
The authorization mechanism provided by the Glue is flexible and lets you define which endpoints specifically require authentication. Usually, protected endpoints include customer wish lists, carts, personal data, and the like. Also, you may want to protect additional areas as required by your project. In addition to endpoints, you may require authorization to use specific REST verbs. For example, a certain endpoint can allow retrieving information but not modifying it. In this case, the GET verb can be allowed for usage without authentication, while the PUT, PATCH, and DELETE verbs require user authentication to use.
diff --git a/docs/dg/dev/glue-api/202404.0/use-default-glue-parameters.md b/docs/dg/dev/glue-api/202404.0/use-default-glue-parameters.md
index cbfe35f9bd4..6b71f5d0fd6 100644
--- a/docs/dg/dev/glue-api/202404.0/use-default-glue-parameters.md
+++ b/docs/dg/dev/glue-api/202404.0/use-default-glue-parameters.md
@@ -21,7 +21,7 @@ The Glue JSON:API convention provides some parameter parsing out of the box. The
## Pagination
-Glue uses an offset-based pagination style: the client passes two values, `offset` and `limit`, where the limit is the number of records to display, and offset is the number of records to skip. Here is an example:
+Glue uses an offset-based pagination style: the client passes two values, `offset` and `limit`, where the limit's the number of records to display, and offset is the number of records to skip. Here is an example:
```
?page[offset]=0&page[limit]=10 # display 10 records starting at 0 (AKA page #1)
@@ -58,7 +58,7 @@ $glueResponseTransfer->getPagination()->setNbResults();
## Sorting
-Sorting can be passed part as a request as simple GET parameters `?sort=resources.age`, where value is the field by which sort resource and attribute; by default, it is ASCENDING order. To change it to DESCENDING, add a hyphen (`-`)—for example, `?sort=-resources.age`.
+Sorting can be passed part as a request as simple GET parameters `?sort=resources.age`, where value is the field by which sort resource and attribute; by default, it's ASCENDING order. To change it to DESCENDING, add a hyphen (`-`)—for example, `?sort=-resources.age`.
To get an order, you can read it from `$glueRequestTransfer->getSortings()`, which returns an array of `SortTransfer`, each containing field to be sorted. Use it to sort data when querying from persistence.
@@ -74,4 +74,4 @@ You can reduce the amount of data returned by using sparse fields. Clients can p
When processing a request, you can get this by accessing `$glueRequestTransfer->getQueryFields()`. This returns an array of strings.
-When building response attributes that are not within the fields, the list is removed, even if it is populated by resource processing.
+When building response attributes that are not within the fields, the list is removed, even if it's populated by resource processing.
diff --git a/docs/dg/dev/glue-api/202410.0/authentication-and-authorization.md b/docs/dg/dev/glue-api/202410.0/authentication-and-authorization.md
index 4ff5081a949..0c3704aa4d9 100644
--- a/docs/dg/dev/glue-api/202410.0/authentication-and-authorization.md
+++ b/docs/dg/dev/glue-api/202410.0/authentication-and-authorization.md
@@ -17,7 +17,7 @@ redirect_from:
---
-For authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it is represented by the Login API.
+For authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it's represented by the Login API.
To get access to a protected resource, a user obtains an *access token*. An access token is a JSON Web Token used to identify a user during API calls. Then, they pass the token in the request header.
diff --git a/docs/dg/dev/glue-api/202410.0/configure-the-included-section.md b/docs/dg/dev/glue-api/202410.0/configure-the-included-section.md
index 51bb714054a..87e2c466196 100644
--- a/docs/dg/dev/glue-api/202410.0/configure-the-included-section.md
+++ b/docs/dg/dev/glue-api/202410.0/configure-the-included-section.md
@@ -34,7 +34,7 @@ By default, the option is enabled on the Spryker Core level but disabled on th
{% info_block infoBox %}
-For the purposes of boosting the API performance and bandwidth usage optimization, it is recommended to request only the information you need.
+For the purposes of boosting the API performance and bandwidth usage optimization, it's recommended to request only the information you need.
{% endinfo_block %}
diff --git a/docs/dg/dev/glue-api/202410.0/decoupled-glue-api.md b/docs/dg/dev/glue-api/202410.0/decoupled-glue-api.md
index feccb86fefd..0227ef56314 100644
--- a/docs/dg/dev/glue-api/202410.0/decoupled-glue-api.md
+++ b/docs/dg/dev/glue-api/202410.0/decoupled-glue-api.md
@@ -76,7 +76,7 @@ Upon receiving an API request, an API context transfer is created where we set u
First, we hydrate `GlueRequestTransfer` with data from the `Request` object. This includes request body, query params, headers, and attributes.
-Then, `ContentNegotiator` tries to resolve what convention the application must use for this request and updates `GlueRequestTransfer` with the request format. The convention is optional, so if it isn't found, the application uses the requested and accepted format to prepare request and response data.
+Then, `ContentNegotiator` tries to resolve what convention the application must use for this request and updates `GlueRequestTransfer` with the request format. The convention is optional, so if it's not found, the application uses the requested and accepted format to prepare request and response data.
With hydrated `GlueRequestTransfer` and selected or not convention, the application executes `RequestFlowExecutor`.
diff --git a/docs/dg/dev/glue-api/202410.0/document-glue-api-endpoints.md b/docs/dg/dev/glue-api/202410.0/document-glue-api-endpoints.md
index 4862d85b370..f64ebb83c68 100644
--- a/docs/dg/dev/glue-api/202410.0/document-glue-api-endpoints.md
+++ b/docs/dg/dev/glue-api/202410.0/document-glue-api-endpoints.md
@@ -145,7 +145,7 @@ The following table lists descriptions of the properties you can use in the anno
| `isEmptyResponse` | The flag used to mark an endpoint that returns empty responses. |
| `responses` | A list of possible responses of the endpoint. The object must contain key-value pairs with HTTP codes as key, and a description as the value. |
-### Extending the behavior
+## Extending the behavior
The following interfaces can be used to add more data to the generated documentation.
diff --git a/docs/dg/dev/glue-api/202410.0/glue-api-tutorials/document-glue-api-resources.md b/docs/dg/dev/glue-api/202410.0/glue-api-tutorials/document-glue-api-resources.md
index 0fc5223eb65..33b153d442a 100644
--- a/docs/dg/dev/glue-api/202410.0/glue-api-tutorials/document-glue-api-resources.md
+++ b/docs/dg/dev/glue-api/202410.0/glue-api-tutorials/document-glue-api-resources.md
@@ -65,7 +65,7 @@ vendor/bin/console rest-api:generate:documentation
---
```
-When the command completes, you can see a specification file generated in the directory with the filename as you configured in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). By default, it is `src/Generated/Glue/Specification/spryker_rest_api.schema.yml`.
+When the command completes, you can see a specification file generated in the directory with the filename as you configured in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class). By default, it's `src/Generated/Glue/Specification/spryker_rest_api.schema.yml`.
## 3. Describe your REST API: Requests and responses
@@ -167,7 +167,7 @@ The following table describes the annotation keys:
| --- | --- | --- |
| `getResourceById` | When set to `true`, indicates a `GET` endpoint that returns a single resource—for example, _`/wishlists/{ID}. *`_ | The `getResourceById` and `getCollection` annotations are used for `GET` endpoints only. If neither of the notations is present for the `getAction` function or they are both set to false, a `GET` endpoint is generated anyway. However, in such a case, the resource ID is not included in the response. |
| `getCollection` | When set to `true`, indicates a `GET` endpoint that returns a collection of resources—for example, _`/wishlists.*`_ | The `getResourceById` and `getCollection` annotations are used for `GET` endpoints only. If neither of the notations is present for the `getAction` function or they are both set to false, a `GET` endpoint is generated anyway. However, in such a case, the resource ID is not included in the response. |
-| `summary` | Sets a description for the endpoint. Use it to describe, as detailed as possible, what the endpoint is used for, its purpose, and intention. | If a summary is not specified explicitly, it is generated automatically. |
+| `summary` | Sets a description for the endpoint. Use it to describe, as detailed as possible, what the endpoint is used for, its purpose, and intention. | If a summary is not specified explicitly, it's generated automatically. |
| `parameters` | Sets optional parameters for the request. | Parameters can be passed in HTTP headers, queries, cookies, or as a part of the resource URI. For more information about parameter use and the available fields, in Swagger official documentation, see [Operation Object](https://swagger.io/specification/#parameterObject). |
| `responses` | Use this parameter to describe all responses that can be generated by this endpoint and their respective response codes. | The `default` response is included automatically. There is no need to include it here. |
| `responseAttributesClassName` | Sets the FQCN of a custom transfer class that represents the response object. | Use this annotation when a response object is different from the corresponding request object. |
@@ -236,6 +236,6 @@ vendor/bin/console rest-api:generate:documentation
When the command completes, you can see a specification file generated in the directory with the filename you configure in [step 2. Configuration](/docs/dg/dev/glue-api/{{page.version}}/glue-api-tutorials/implement-a-rest-api-resource.html#create-a-configuration-class).
-By default, it is `src/Pyz/Generated/Glue/Specification/spryker_rest_api.schema.yml`. The specification contains all REST API endpoints configured in Glue, on the global and project levels, along with data models for all requests and responses.
+By default, it's `src/Pyz/Generated/Glue/Specification/spryker_rest_api.schema.yml`. The specification contains all REST API endpoints configured in Glue, on the global and project levels, along with data models for all requests and responses.
To get a visual representation of your API or use it in tools like Postman (with the OpenAPI v.3 support) for development purposes, you can upload the file to [Swagger Editor](https://editor.swagger.io/).
diff --git a/docs/dg/dev/glue-api/202410.0/glue-spryks.md b/docs/dg/dev/glue-api/202410.0/glue-spryks.md
index dcc706b86f0..e96aa225bab 100644
--- a/docs/dg/dev/glue-api/202410.0/glue-spryks.md
+++ b/docs/dg/dev/glue-api/202410.0/glue-spryks.md
@@ -43,8 +43,8 @@ To call a Spryk, you can use the following console commands:
| `AddGlueDeleteResource` | Adds a new `DELETE` Resource to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**resourceType** - specifies the type of API resources that will be deleted.
**clientModule** - specifies the module that provides the functionality to delete the items represented by the given API resources. The module must have the *Client* layer.
**clientMethod** - specifies the method in the *clientModule* that will be used to delete the items represented by the given API resources.
|
| `AddGluePatchResource` | Adds a new `PATCH` Resource to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**resourceType** - specifies the type of API resources that will be modified.
**clientModule** - specifies the module that provides the functionality to modify the items represented by the given API resources. The module must have the *Client* layer.
**clientMethod** - specifies the method in the *clientModule* that will be used to modify the items represented by the given API resources.
|
| `AddGluePostResource` | Adds a new `POST` Resource to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**resourceType** - specifies the type of API resources that will be created.
**clientModule** - specifies the module that provides the functionality to create the items represented by the given API resources. The module must have the *Client* layer.
**clientMethod** - specifies the method in the *clientModule* that will be used to create the items represented by the given API resources.
|
-| `AddGlueResource` | Adds a new resource to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**className** - specifies the PHP class name for the resource.
**interfaceName** - specifies the PHP interface name for the resource. By default, it is the same as the class name plus the Interface suffix.
|
-| `AddGlueResourceInterface` | Adds a new resource interface to the given module. The resource must have a resource class associated with it. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**className** - specifies the PHP class name for the resource.
**interfaceName** - specifies the PHP interface name for the resource. By default, it is the same as the class name plus the `Interface` suffix.
|
+| `AddGlueResource` | Adds a new resource to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**className** - specifies the PHP class name for the resource.
**interfaceName** - specifies the PHP interface name for the resource. By default, it's the same as the class name plus the Interface suffix.
|
+| `AddGlueResourceInterface` | Adds a new resource interface to the given module. The resource must have a resource class associated with it. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the name of the module.
**applicationType** - specifies which application type should be used: Backend or Storefront. By default the **Backend** application type is used.
**Spryk-Specific Arguments:**
**className** - specifies the PHP class name for the resource.
**interfaceName** - specifies the PHP interface name for the resource. By default, it's the same as the class name plus the `Interface` suffix.
|
## Routing management
@@ -131,8 +131,8 @@ For more details, see section **Controller management** in [Glue Infrastructur
| SPRYK | DESCRIPTION |
| --- | --- |
-| `AddGlueProcessorModel` | Adds a new processor model to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
-| `AddGlueProcessorModelInterface` | Adds a new processor model interface to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model interface will be created.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
+| `AddGlueProcessorModel` | Adds a new processor model to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model will be created.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
+| `AddGlueProcessorModelInterface` | Adds a new processor model interface to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model interface will be created.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
| `AddGlueProcessorModelMethod` | Adds a new method to the given processor model. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model class is located.
**className** - specifies the class name of the model.
**input** - specifies the name of the *input* (`@param`) value of the method.
**output** - specifies the name of the *output* (`@return`) value of the method.
|
| `AddGlueProcessorModelInterfaceMethod` | Adds a new method to the given processor model interface. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the `Processor` directory where the interface class is located.
**className** - specifies the class name of the model.
**input** - specifies the name of the *input* (`@param`) value of the method.
**output** - specifies the name of the *output* (`@return`) value of the method.
|
@@ -140,8 +140,8 @@ For more details, see section **Controller management** in [Glue Infrastructur
| SPRYK | DESCRIPTION |
| --- | --- |
-| `AddGlueResourceMapper` | Adds a new resource mapper model to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model will be created. The default subdirectory is `Mapper`.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
-| `AddGlueResourceMapperInterface` | Adds a new resource mapper model Interface. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the interface will be created. The default subdirectory is **Mapper**.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the **Interface** suffix.
|
+| `AddGlueResourceMapper` | Adds a new resource mapper model to the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the model will be created. The default subdirectory is `Mapper`.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
+| `AddGlueResourceMapperInterface` | Adds a new resource mapper model Interface. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the subdirectory under the Processor directory where the interface will be created. The default subdirectory is **Mapper**.
**className** - specifies the class name for the model.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the **Interface** suffix.
|
| `AddGlueResourceMapperMethod` | Adds a new method to the given resource mapper model. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**resourceType** - specifies the resource type that will be mapped with this method.
**fromTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **requests** to the resource properties.
**toTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **responses** to the resource properties. The default name for both the transfers consists of the resource type, camel-cased, with the `Rest` prefix and the`AttributesTransfer` suffix.
|
| `AddGlueResourceMapperInterfaceMethod` | Adds a new method to the resource mapper model interface. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization:** name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**resourceType** - specifies the resource type that will be mapped with this method.
**fromTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **requests** to the resource properties.
**toTransfer** - specifies the name of the transfer class that will be used to map the properties of rest **responses** to the resource properties. The default name for both the transfers consists of the resource type, camel-cased, with the `Rest` prefix and the`AttributesTransfer` suffix.
|
@@ -155,8 +155,8 @@ For more details, see section **Generic Rest Response** in [Glue Infrastructure
| SPRYK | DESCRIPTION |
| --- | --- |
-| `AddGlueResourceRestResponseBuilderModel` | Adds a new response builder model to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the name of the subdirectory where to create the model. By default, the Spryk uses the RestResponseBuilder subdirectory in the Processor directory of the module root folder.
**resourceType** - specifies the resource type.
**className** - specifies the class name for the model. By default, it is the same as the resource name in singular and capitalized plus the **RestResponseBuilder** suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
-| `AddGlueResourceRestResponseBuilderModelInterface` | Adds an interface for a response builder model class of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the name of the subdirectory where to create the interface. By default, the Spryk uses the `RestResponseBuilder` subdirectory in the `Processor` directory of the module root folder.
**resourceType** - specifies the resource type.
**className** - specifies the class name for the model. By default, it is the same as the resource name in singular and capitalized plus the `RestResponseBuilder` suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
**interfaceName** - specifies the interface name for the model. By default, it is the same as the class name plus the `Interface` suffix.
|
+| `AddGlueResourceRestResponseBuilderModel` | Adds a new response builder model to the given resource of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the name of the subdirectory where to create the model. By default, the Spryk uses the RestResponseBuilder subdirectory in the Processor directory of the module root folder.
**resourceType** - specifies the resource type.
**className** - specifies the class name for the model. By default, it's the same as the resource name in singular and capitalized plus the **RestResponseBuilder** suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
+| `AddGlueResourceRestResponseBuilderModelInterface` | Adds an interface for a response builder model class of the given module. **Arguments**
**General Arguments:**
**mode** - *project* or *core*. The default is **project**. For details, see [Difference between Core and Project modes](/docs/dg/dev/sdks/sdk/spryks/spryks.html#core-and-project-modes).
**organization** - specifies the name of the organization for which to perform the operation. The default is **Pyz**.
**module** - specifies the module name.
**Spryk-Specific Arguments:**
**subDirectory** - specifies the name of the subdirectory where to create the interface. By default, the Spryk uses the `RestResponseBuilder` subdirectory in the `Processor` directory of the module root folder.
**resourceType** - specifies the resource type.
**className** - specifies the class name for the model. By default, it's the same as the resource name in singular and capitalized plus the `RestResponseBuilder` suffix. For example, if the resource name is `myresources`, the class name is `MyresourceRestResponseBuilder`.
**interfaceName** - specifies the interface name for the model. By default, it's the same as the class name plus the `Interface` suffix.
|
## Adding validation
diff --git a/docs/dg/dev/glue-api/202410.0/integrate-a-ciam-provider.md b/docs/dg/dev/glue-api/202410.0/integrate-a-ciam-provider.md
index 611f6d78690..8beaa44e70a 100644
--- a/docs/dg/dev/glue-api/202410.0/integrate-a-ciam-provider.md
+++ b/docs/dg/dev/glue-api/202410.0/integrate-a-ciam-provider.md
@@ -302,7 +302,7 @@ In the `OauthApi` module, extend the access token validation step with your CIAM
```
Adjust `OauthApiFactory` and `OauthApiDependencyProvider` to include the CIAM provider service.
-In the implementation example, it is `Pyz\Service\CiamProvider\CiamProviderServiceInterface`.
+In the implementation example, it's `Pyz\Service\CiamProvider\CiamProviderServiceInterface`.
The following example extends `AccessTokenValidator` to validate the authorization header using the CIAM provider parser:
diff --git a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md
index 50d3cc3eed0..8496b52f9da 100644
--- a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md
+++ b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-authentication-and-authorization.md
@@ -30,7 +30,7 @@ This is a document related to the Old Glue infrastructure. For the new one, see
{% endinfo_block %}
-[Protected resources](#protected-resources) in Spryker Glue API require user authentication. For the authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it is represented by the Login API.
+[Protected resources](#protected-resources) in Spryker Glue API require user authentication. For the authentication, Spryker implements the OAuth 2.0 mechanism. On the REST API level, it's represented by the Login API.
To get access to a protected resource, a user obtains an *access token*. An access token is a JSON Web Token used to identify a user during API calls. Then, they pass the token in the request header.
diff --git a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-security-and-authentication.md b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-security-and-authentication.md
index dc879b9ff6a..3021cec08f0 100644
--- a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-security-and-authentication.md
+++ b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-api-security-and-authentication.md
@@ -26,7 +26,7 @@ This is a document related to the Old Glue infrastructure. For the new one, see
{% endinfo_block %}
-When exposing information via Spryker Glue API and integrating with third-party applications, it is essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It allows users to authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources.
+When exposing information via Spryker Glue API and integrating with third-party applications, it's essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It allows users to authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources.
The authorization mechanism provided by the Glue is flexible and allows you to define which endpoints specifically require authentication. Usually, protected endpoints include customer wish lists, carts, personal data and the like. Also, you may want to protect additional areas as required by your project. In addition to endpoints, you may require authorization to use specific REST verbs. For example, a certain endpoint can allow retrieving information, but not modifying it. In this case, the GET verb can be allowed for usage without authentication, while the PUT, PATCH and DELETE verbs will require user authentication to use.
@@ -141,7 +141,7 @@ All data related to API authentication functionality is stored in the following
|TABLE| PURPOSE|
| --- | --- |
-| spy_oauth_access_token| Stores all issued tokens. The table is not used for token verification, it is added for audit purposes only. |
+| spy_oauth_access_token| Stores all issued tokens. The table is not used for token verification, it's added for audit purposes only. |
| spy_oauth_client|Contains a list of clients that are currently using OAuth, one record for each frontend customer. The `is_confidental` field identifies whether a specific client must provide a password. |
| spy_oauth_scope | Stores user scopes.|
diff --git a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-infrastructure.md b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-infrastructure.md
index 34a5cf694ee..56ca972fa59 100644
--- a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-infrastructure.md
+++ b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-infrastructure.md
@@ -109,9 +109,9 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency
### Resource modules
-A _Resource module_ is a module that implements a single resource or a set of resources. It is responsible for accepting a request in the form of _Request Objects_ and providing responses in the form of _Response Objects_. For this purpose, the module can communicate with the Storage or Search, for which purpose it implements a [Client](/docs/dg/dev/backend-development/client/client.html). It can also communicate with the Spryker Commerce OS (Zed), however, it is recommended to avoid round trips to the database as much as possible as that can reduce API performance considerably.
+A _Resource module_ is a module that implements a single resource or a set of resources. It is responsible for accepting a request in the form of _Request Objects_ and providing responses in the form of _Response Objects_. For this purpose, the module can communicate with the Storage or Search, for which purpose it implements a [Client](/docs/dg/dev/backend-development/client/client.html). It can also communicate with the Spryker Commerce OS (Zed), however, it's recommended to avoid round trips to the database as much as possible as that can reduce API performance considerably.
-Resource modules must implement all logic related to processing a request. It is not recommended having any of the Business Logic, or a part of it, in the _GlueApplication Module_. In case you need to extend any of the built-in Glue functionality, it is always safer to extend the relevant _Resource module_ than infrastructure.
+Resource modules must implement all logic related to processing a request. It is not recommended having any of the Business Logic, or a part of it, in the _GlueApplication Module_. In case you need to extend any of the built-in Glue functionality, it's always safer to extend the relevant _Resource module_ than infrastructure.
#### Module structure
@@ -207,7 +207,7 @@ Business errors are returned as the `RestErrorMessageTransfer` objects with the
### Nested resources
-Glue API allows creating resources with parent-child relationships or, in other words, nested resources. For example, a request to `/customers/1/addresses` returns addresses for a customer with ID 1. To enable such behavior, it is necessary to define how resources depend on each other. This is done by configuring resource route plugins. When processing an URL, the _GlueApplication Module_ tries to find a correct route to a child resource. For this reason, all modules in the nesting chain should be arranged in a sequence using **ResourceWithParentPluginInterface**. Then, while handling a request to a child resource, business logic can access the parent resource identifier and process the request in the correct context.
+Glue API allows creating resources with parent-child relationships or, in other words, nested resources. For example, a request to `/customers/1/addresses` returns addresses for a customer with ID 1. To enable such behavior, it's necessary to define how resources depend on each other. This is done by configuring resource route plugins. When processing an URL, the _GlueApplication Module_ tries to find a correct route to a child resource. For this reason, all modules in the nesting chain should be arranged in a sequence using **ResourceWithParentPluginInterface**. Then, while handling a request to a child resource, business logic can access the parent resource identifier and process the request in the correct context.
#### ResourceWithParentPluginInterface
diff --git a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-rest-api.md b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-rest-api.md
index 5ef4b1001a1..0f45c9aae33 100644
--- a/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-rest-api.md
+++ b/docs/dg/dev/glue-api/202410.0/old-glue-infrastructure/glue-rest-api.md
@@ -43,7 +43,7 @@ For more details, see REST API reference:
## B2C API React example
-To help you understand possible use cases, we provide a sample app as an exemplary implementation (which is not a starting point for development). It can coexist with a shop as a second touchpoint in the project. From a technological perspective, it is based on our customers' interests. The app is single-page application based on a React JS library.
+To help you understand possible use cases, we provide a sample app as an exemplary implementation (which is not a starting point for development). It can coexist with a shop as a second touchpoint in the project. From a technological perspective, it's based on our customers' interests. The app is single-page application based on a React JS library.
It delivers a full customer experience from browsing the catalog to placing an order. The application helps you understand how you can use the predefined APIs to create a B2C user experience. As an example, the full power of Elasticsearch, which is already present in our [B2B](/docs/about/all/b2b-suite.html) and [B2C Demo Shops](/docs/about/all/b2c-suite.html), is leveraged through dedicated endpoints to deliver catalog search functionality with autocompletion, autosuggestion, facets, sorting, and pagination.
@@ -57,7 +57,7 @@ For more deatails about installing and running, see [B2C API React example](/doc
Glue API helps you to connect your Spryker Commerce OS with new or existing touch points. These touchpoints can be headless like voice commerce devices and chat bots, or they may come with a user interface like a mobile app. Alternative front ends also benefit from the APIs. Here are some examples:
* New frontend: Build a new frontend or use a frontend framework like Progressive Web Apps and power it by the Glue API.
-* Mobile app: a mobile app, no matter if it is native, hybrid or just a web-view, can support the same functionality as the existing demo shops do.
+* Mobile app: a mobile app, no matter if it's native, hybrid or just a web-view, can support the same functionality as the existing demo shops do.
* Voice commerce: Leverage the APIs for order history to inform your customers about the status of their delivery.
* Chatbot: Use chatbots to identify the customer that are trying to reach out to you and help them answer basic questions about your products.
diff --git a/docs/dg/dev/glue-api/202410.0/routing/create-routes.md b/docs/dg/dev/glue-api/202410.0/routing/create-routes.md
index 5d58084c0af..f3548a395ea 100644
--- a/docs/dg/dev/glue-api/202410.0/routing/create-routes.md
+++ b/docs/dg/dev/glue-api/202410.0/routing/create-routes.md
@@ -50,7 +50,7 @@ class ModuleBarController extends AbstractController
```
-Even though an empty response is returned, the module's `Factory` is available and can be used to access Processor models or external dependencies the same way it is done everywhere in Spryker.
+Even though an empty response is returned, the module's `Factory` is available and can be used to access Processor models or external dependencies the same way it's done everywhere in Spryker.
{% info_block infoBox %}
diff --git a/docs/dg/dev/glue-api/202410.0/security-and-authentication.md b/docs/dg/dev/glue-api/202410.0/security-and-authentication.md
index 06de5af5c95..8ba29bedfb0 100644
--- a/docs/dg/dev/glue-api/202410.0/security-and-authentication.md
+++ b/docs/dg/dev/glue-api/202410.0/security-and-authentication.md
@@ -11,7 +11,7 @@ redirect_from:
---
-When exposing information through Spryker Glue API and integrating with third-party applications, it is essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It lets users authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources.
+When exposing information through Spryker Glue API and integrating with third-party applications, it's essential to protect API endpoints from unauthorized access. For this purpose, Spryker provides an authorization mechanism, using which you can request users to authenticate themselves before accessing a resource. For this purpose, Spryker Glue is shipped with an implementation of the OAuth 2.0 protocol. It lets users authenticate themselves with their username and password and receive an access token. The token can then be used to access protected resources.
The authorization mechanism provided by the Glue is flexible and lets you define which endpoints specifically require authentication. Usually, protected endpoints include customer wish lists, carts, personal data, and the like. Also, you may want to protect additional areas as required by your project. In addition to endpoints, you may require authorization to use specific REST verbs. For example, a certain endpoint can allow retrieving information but not modifying it. In this case, the GET verb can be allowed for usage without authentication, while the PUT, PATCH, and DELETE verbs require user authentication to use.
diff --git a/docs/dg/dev/glue-api/202410.0/use-default-glue-parameters.md b/docs/dg/dev/glue-api/202410.0/use-default-glue-parameters.md
index cbfe35f9bd4..6b71f5d0fd6 100644
--- a/docs/dg/dev/glue-api/202410.0/use-default-glue-parameters.md
+++ b/docs/dg/dev/glue-api/202410.0/use-default-glue-parameters.md
@@ -21,7 +21,7 @@ The Glue JSON:API convention provides some parameter parsing out of the box. The
## Pagination
-Glue uses an offset-based pagination style: the client passes two values, `offset` and `limit`, where the limit is the number of records to display, and offset is the number of records to skip. Here is an example:
+Glue uses an offset-based pagination style: the client passes two values, `offset` and `limit`, where the limit's the number of records to display, and offset is the number of records to skip. Here is an example:
```
?page[offset]=0&page[limit]=10 # display 10 records starting at 0 (AKA page #1)
@@ -58,7 +58,7 @@ $glueResponseTransfer->getPagination()->setNbResults();
## Sorting
-Sorting can be passed part as a request as simple GET parameters `?sort=resources.age`, where value is the field by which sort resource and attribute; by default, it is ASCENDING order. To change it to DESCENDING, add a hyphen (`-`)—for example, `?sort=-resources.age`.
+Sorting can be passed part as a request as simple GET parameters `?sort=resources.age`, where value is the field by which sort resource and attribute; by default, it's ASCENDING order. To change it to DESCENDING, add a hyphen (`-`)—for example, `?sort=-resources.age`.
To get an order, you can read it from `$glueRequestTransfer->getSortings()`, which returns an array of `SortTransfer`, each containing field to be sorted. Use it to sort data when querying from persistence.
@@ -74,4 +74,4 @@ You can reduce the amount of data returned by using sparse fields. Clients can p
When processing a request, you can get this by accessing `$glueRequestTransfer->getQueryFields()`. This returns an array of strings.
-When building response attributes that are not within the fields, the list is removed, even if it is populated by resource processing.
+When building response attributes that are not within the fields, the list is removed, even if it's populated by resource processing.
diff --git a/docs/dg/dev/guidelines/coding-guidelines/code-style-guide.md b/docs/dg/dev/guidelines/coding-guidelines/code-style-guide.md
index 6d499b005ef..e1023fb5d91 100644
--- a/docs/dg/dev/guidelines/coding-guidelines/code-style-guide.md
+++ b/docs/dg/dev/guidelines/coding-guidelines/code-style-guide.md
@@ -198,7 +198,7 @@ Storing the dates in a common time zone ensures consistency, as the time zone co
### Deprecations
-When you deprecate a method, class, or alike, it is recommended to add a short sentence on what to use instead, so all people know what to do without having to investigate deeper.
+When you deprecate a method, class, or alike, it's recommended to add a short sentence on what to use instead, so all people know what to do without having to investigate deeper.
|DEPRECATION | MESSAGE |
|---|---|
diff --git a/docs/dg/dev/guidelines/data-processing-guidelines.md b/docs/dg/dev/guidelines/data-processing-guidelines.md
index 39ca78854bb..d9aa2026136 100644
--- a/docs/dg/dev/guidelines/data-processing-guidelines.md
+++ b/docs/dg/dev/guidelines/data-processing-guidelines.md
@@ -9,11 +9,11 @@ redirect_from:
- /docs/scos/dev/guidelines/data-processing-guidelines.html
related:
- title: Making your Spryker shop secure
- link: docs/scos/dev/guidelines/security-guidelines.html
+ link: docs/dg/dev/guidelines/security-guidelines.html
- title: Module configuration convention
- link: docs/scos/dev/guidelines/module-configuration-convention.html
+ link: docs/dg/dev/guidelines/module-configuration-convention.html
- title: Project development guidelines
- link: docs/scos/dev/guidelines/project-development-guidelines.html
+ link: docs/dg/dev/guidelines/project-development-guidelines.html
- title: Data importer speed optimization
link: docs/dg/dev/data-import/page.version/data-import-optimization-guidelines.html
---
diff --git a/docs/dg/dev/guidelines/keeping-a-project-upgradable/extension-scenarios/plugins-registration.md b/docs/dg/dev/guidelines/keeping-a-project-upgradable/extension-scenarios/plugins-registration.md
index 1c63125793d..87ad1783f6a 100644
--- a/docs/dg/dev/guidelines/keeping-a-project-upgradable/extension-scenarios/plugins-registration.md
+++ b/docs/dg/dev/guidelines/keeping-a-project-upgradable/extension-scenarios/plugins-registration.md
@@ -92,7 +92,7 @@ Manifests fully support multiple plugins registration in an indexed array. Manif
Restrictions on the order of the plugins can be done with special annotation keys `before` and `after`.
-If the plugin doesn’t contain any of these keys, it is added to the end of the plugin stack.
+If the plugin doesn’t contain any of these keys, it's added to the end of the plugin stack.
If the plugin contains the `after` key and defined plugins in the `after` parameter don’t exist on the project side, the plugin is added to the end of the plugin stack.
@@ -460,7 +460,7 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
## Special situations
-* If the target dependency provider class doesn’t exist in the project, it is created and all required methods are created automatically as well.
+* If the target dependency provider class doesn’t exist in the project, it's created and all required methods are created automatically as well.
* If the target dependency provider class exists in the project without the target method, but such method exists in the parent class, the method is created and the changes are applied.
diff --git a/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/dead-code-checker.md b/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/dead-code-checker.md
index 6760f20d7a5..b80c3ec5896 100644
--- a/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/dead-code-checker.md
+++ b/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/dead-code-checker.md
@@ -11,7 +11,7 @@ The dead code checker checks for dead code that extends core classes in your pro
## Problem description
-The project has the capability to extend Spryker core classes, but over time, it may become ineffective due to changes in the project or core components.
+The project has the capability to extend Spryker core classes, but over time, it may become ineffective because of changes in the project or core components.
This results in unnecessary additional time investment from developers, as they need to update the dead code.
This check examines potential obsolete classes, with a tendency to overlook important Spryker kernel classes like `Factory`, `Facade`, or `DependencyProvider`.
If desired, you have the option to disable the dead code checker for a particular class using the `@evaluator-skip-dead-code` annotation.
diff --git a/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/minimum-allowed-shop-version.md b/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/minimum-allowed-shop-version.md
index f14308e852f..5725cdfb670 100644
--- a/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/minimum-allowed-shop-version.md
+++ b/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/minimum-allowed-shop-version.md
@@ -11,9 +11,9 @@ The *Minimum allowed shop version* check makes sure that the project uses one of
## Problem description
-To enable smooth upgradability of the project using the [Spryker Code Upgrader](/docs/ca/devscu/prepare-a-project-for-spryker-code-upgrader.html), it is essential for the project to adhere to the minimum required Spryker product release.
+To enable smooth upgradability of the project using the [Spryker Code Upgrader](/docs/ca/devscu/prepare-a-project-for-spryker-code-upgrader.html), it's essential for the project to adhere to the minimum required Spryker product release.
-In case the project does not utilize the feature packages, it is necessary to ensure that the corresponding Spryker module versions are used.
+In case the project does not utilize the feature packages, it's necessary to ensure that the corresponding Spryker module versions are used.
## Example of an evaluator error message
diff --git a/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/spryker-dev-packages-checker.md b/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/spryker-dev-packages-checker.md
index 6a5c08e1e1e..d1c040dc69f 100644
--- a/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/spryker-dev-packages-checker.md
+++ b/docs/dg/dev/guidelines/keeping-a-project-upgradable/upgradability-guidelines/spryker-dev-packages-checker.md
@@ -11,7 +11,7 @@ Spryker dev packages checker checks the project Spryker dependencies for the _de
## Problem description
-Projects contain the Spryker packages dependencies in the `require` section of the `composer.json` file. The integration of new versions of Spryker modules by the Spryker Code Upgrader may fail if some of these packages have references to specific branches that use `dev-*` constraint versions. To prevent this, it is essential to ensure that all Spryker packages have valid version constraints.
+Projects contain the Spryker packages dependencies in the `require` section of the `composer.json` file. The integration of new versions of Spryker modules by the Spryker Code Upgrader may fail if some of these packages have references to specific branches that use `dev-*` constraint versions. To prevent this, it's essential to ensure that all Spryker packages have valid version constraints.
## Example of code that causes the evaluator error
diff --git a/docs/dg/dev/guidelines/module-configuration-convention.md b/docs/dg/dev/guidelines/module-configuration-convention.md
index 2c847f03e2e..dafd6f3bf6c 100644
--- a/docs/dg/dev/guidelines/module-configuration-convention.md
+++ b/docs/dg/dev/guidelines/module-configuration-convention.md
@@ -9,11 +9,11 @@ redirect_from:
- /docs/scos/dev/guidelines/module-configuration-convention.html
related:
- title: Data Processing Guidelines
- link: docs/scos/dev/guidelines/data-processing-guidelines.html
+ link: docs/dg/dev/guidelines/data-processing-guidelines.html
- title: Making your Spryker shop secure
- link: docs/scos/dev/guidelines/security-guidelines.html
+ link: docs/dg/dev/guidelines/security-guidelines.html
- title: Project development guidelines
- link: docs/scos/dev/guidelines/project-development-guidelines.html
+ link: docs/dg/dev/guidelines/project-development-guidelines.html
---
## Definitions
diff --git a/docs/dg/dev/guidelines/performance-guidelines/architecture-performance-guidelines.md b/docs/dg/dev/guidelines/performance-guidelines/architecture-performance-guidelines.md
index d76db13027d..e2e11e9b289 100644
--- a/docs/dg/dev/guidelines/performance-guidelines/architecture-performance-guidelines.md
+++ b/docs/dg/dev/guidelines/performance-guidelines/architecture-performance-guidelines.md
@@ -22,7 +22,7 @@ Below, you will find the most common architecture design mistakes and impediment
### Duplications of slow operations
-Sometimes, due to business requirements, it’s mandatory to have a slow operation during one transaction. This slow part of functionality might be very small and hidden behind an API, but the usage of this API can go out of control.
+Sometimes, because of business requirements, it’s mandatory to have a slow operation during one transaction. This slow part of functionality might be very small and hidden behind an API, but the usage of this API can go out of control.
Let's consider an example illustrating the impact of a bad architecture design with slow operations. Imagine you have a method called `caluculateDiscount()` that generates some discounts for cart items. However, each call of this method takes 100ms, which might be a proper response time for an API. Now think of another business requirement when you need to calculate the discount for 10 separated groups of items in the cart. In this case, you need to call the `caluculateDiscount()` method 10 times, leading to 1000ms (1 second), which already poses a performance problem.
@@ -41,7 +41,7 @@ Make sure you carefully check for memory leaks during the query optimizations, a
### Optimistic vs. pessimistic locking
-Sometimes, developers use explicit locks to prevent race conditions or other issues that impact performance due to the high traffic load. This happens because all requests need to wait for the lock, which turns the parallel request processing into sequential processing and can increase the response time of all the queued requests.
+Sometimes, developers use explicit locks to prevent race conditions or other issues that impact performance because of the high traffic load. This happens because all requests need to wait for the lock, which turns the parallel request processing into sequential processing and can increase the response time of all the queued requests.
Some of the pessimistic locking use cases are:
@@ -66,7 +66,7 @@ Below, you will find an analysis of the Spryker architecture and solutions for t
### Database queries in plugins
-Spryker widely uses plugins to reduce module dependencies and to increase flexibility to make features work together smoothly. However, this can lead to some performance issues if there are database queries in each plugin. That's why it is essential to aggregate all queries to decrease the number of database operations.
+Spryker widely uses plugins to reduce module dependencies and to increase flexibility to make features work together smoothly. However, this can lead to some performance issues if there are database queries in each plugin. That's why it's essential to aggregate all queries to decrease the number of database operations.
Let's consider an example. Suppose there are 10 plugins for the cart feature to calculate items price, discount, tax, etc. Each plugin has a query to find a product by SKU per order item, which means the code will execute 10 same queries per each item in the cart.
@@ -106,7 +106,7 @@ Spryker uses Propel ORM as a database abstraction layer which allows to stay DBM
Performance is one of the key attributes when it comes to synchronous combinations. Therefore, as a rule of thumb, any database operations must be high performant and be executed fast. If ORM cannot guarantee the high-speed database operation because of the lack of features or complexity, one should avoid using it.
-For example, to display products in the Spryker shop, we need to import and propagate data into several databases. For some projects, this is a cumbersome operation due to the large volume of data. Therefore, Spryker recommends not to use ORM for these operations, but choose other solutions instead, for example, CTE, PDO, etc.
+For example, to display products in the Spryker shop, we need to import and propagate data into several databases. For some projects, this is a cumbersome operation because of the large volume of data. Therefore, Spryker recommends not to use ORM for these operations, but choose other solutions instead, for example, CTE, PDO, etc.
For data import of large files, it's also important to use bulk processing. Therefore, consider importing data into the database with chunks of 1000+ elements. The same applies to triggering events. Using bulk processing saves a lot of time for communication with the database and queues.
@@ -215,7 +215,7 @@ As the Spryker boilerplate comes with most of the features enabled, make sure yo
### Zed calls
-Zed calls are necessary when it comes to executing a database-related operation like Cart and Checkout requests. As an RPC mechanism handles these calls, it is necessary to reduce the number of calls to maximum one call to Zed. You can achieve this by:
+Zed calls are necessary when it comes to executing a database-related operation like Cart and Checkout requests. As an RPC mechanism handles these calls, it's necessary to reduce the number of calls to maximum one call to Zed. You can achieve this by:
- Exporting necessary data, only product-related ones, from Zed to Redis at the pre-calculation phase with the help of Publish and Synchronization.
- Merging duplicate Zed requests to only one customer request (AddToCart + Validations + …).
@@ -228,7 +228,7 @@ Avoid making ZED calls within QueryExpanderPlugin (from Storage or Search).
### OMS optimization
-OMS processes are the template of the order fulfillment in Spryker. The first state of OMS processes, called the NEW state, plays an important role in the checkout process. Therefore, it is necessary to make sure you don't use unnecessary features when you don't need them, for example, Reservation or Timeout transitions.
+OMS processes are the template of the order fulfillment in Spryker. The first state of OMS processes, called the NEW state, plays an important role in the checkout process. Therefore, it's necessary to make sure you don't use unnecessary features when you don't need them, for example, Reservation or Timeout transitions.
One can avoid using the unnecessary transitions by:
diff --git a/docs/dg/dev/guidelines/performance-guidelines/general-performance-guidelines.md b/docs/dg/dev/guidelines/performance-guidelines/general-performance-guidelines.md
index d12fb444fbb..eb8d6252bd0 100644
--- a/docs/dg/dev/guidelines/performance-guidelines/general-performance-guidelines.md
+++ b/docs/dg/dev/guidelines/performance-guidelines/general-performance-guidelines.md
@@ -174,7 +174,7 @@ Making calculations on the PHP side can help here a lot, as well as using `{% ra
## Activate Zed navigation cache
-The navigation of Zed is defined in XML files that need to be parsed and merged. As it does not happen quite often, it is recommended to keep the cache activated at all times (even during development) and to run `vendor/bin/console navigation:build-cache` only when something has changed.
+The navigation of Zed is defined in XML files that need to be parsed and merged. As it does not happen quite often, it's recommended to keep the cache activated at all times (even during development) and to run `vendor/bin/console navigation:build-cache` only when something has changed.
Zed navigation cache is activated by default:
diff --git a/docs/dg/dev/guidelines/project-development-guidelines.md b/docs/dg/dev/guidelines/project-development-guidelines.md
index d3a62721a91..3abdfdd397e 100644
--- a/docs/dg/dev/guidelines/project-development-guidelines.md
+++ b/docs/dg/dev/guidelines/project-development-guidelines.md
@@ -9,11 +9,11 @@ redirect_from:
- /docs/scos/dev/guidelines/project-development-guidelines.html
related:
- title: Data Processing Guidelines
- link: docs/scos/dev/guidelines/data-processing-guidelines.html
+ link: docs/dg/dev/guidelines/data-processing-guidelines.html
- title: Making your Spryker shop secure
- link: docs/scos/dev/guidelines/security-guidelines.html
+ link: docs/dg/dev/guidelines/security-guidelines.html
- title: Module configuration convention
- link: docs/scos/dev/guidelines/module-configuration-convention.html
+ link: docs/dg/dev/guidelines/module-configuration-convention.html
---
Spryker OS exposes codebase projects, which enables a high level of customization and can satisfy complex business requirements.
@@ -62,7 +62,7 @@ Instead of using, extending, and overriding [Private API](/docs/dg/dev/architect
Extending Private API is still possible, but Spryker development team can change them without a notice in the minor change, since Spryker BC break policy is only considering a Public API.
We recommend to not extend Private API classes, but implement new one based on the same interface. In this case changes in core classes will not affect your code.
-If you believe that you found a bug in Spryker module, or you want to submit a fix, new functionality by yourself, you can create a pull request to the corresponding module repository. It will be reviewed by the Spryker team and, if it is accepted, it will be merged into the core via our release process. Be advised that such PRs will be checked as a Core contribution and should be prepared accordingly.
+If you believe that you found a bug in Spryker module, or you want to submit a fix, new functionality by yourself, you can create a pull request to the corresponding module repository. It will be reviewed by the Spryker team and, if it's accepted, it will be merged into the core via our release process. Be advised that such PRs will be checked as a Core contribution and should be prepared accordingly.
## Development and tests
Starting from the first day of development, write tests for all the customizations you implement. We provide infrastructure for unit, functional, and acceptance tests.
diff --git a/docs/dg/dev/guidelines/security-guidelines.md b/docs/dg/dev/guidelines/security-guidelines.md
index 13aa57450dc..1882dc26c30 100644
--- a/docs/dg/dev/guidelines/security-guidelines.md
+++ b/docs/dg/dev/guidelines/security-guidelines.md
@@ -1,5 +1,6 @@
---
title: Security guidelines
+description: Explore operational and deployment guidelines for efficient ecommerce system management. Focus on best practices for deployment, monitoring, and scaling infrastructure.
last_updated: Sep 15, 2023
template: concept-topic-template
originalLink: https://documentation.spryker.com/2021080/docs/making-your-spryker-shop-secure
@@ -9,11 +10,11 @@ redirect_from:
- /docs/scos/dev/guidelines/making-your-spryker-shop-secure.html
related:
- title: Data Processing Guidelines
- link: docs/scos/dev/guidelines/data-processing-guidelines.html
+ link: docs/dg/dev/guidelines/data-processing-guidelines.html
- title: Module configuration convention
- link: docs/scos/dev/guidelines/module-configuration-convention.html
+ link: docs/dg/dev/guidelines/module-configuration-convention.html
- title: Project development guidelines
- link: docs/scos/dev/guidelines/project-development-guidelines.html
+ link: docs/dg/dev/guidelines/project-development-guidelines.html
---
This document describes the data security guidelines you need to follow on the application level. In cloud environments, infrastructure security measures are implemented by default, so they're not described.
diff --git a/docs/dg/dev/guidelines/testing-guidelines/building-tests-for-test-driven-devleopment.md b/docs/dg/dev/guidelines/testing-guidelines/building-tests-for-test-driven-devleopment.md
index 06d93b38d9c..dbb0d86339b 100644
--- a/docs/dg/dev/guidelines/testing-guidelines/building-tests-for-test-driven-devleopment.md
+++ b/docs/dg/dev/guidelines/testing-guidelines/building-tests-for-test-driven-devleopment.md
@@ -9,7 +9,7 @@ redirect_from:
- /docs/scos/dev/tutorials-and-howtos/introduction-tutorials/tutorial-testing-and-tdd-spryker-commerce-os.html
---
-This document helps you understand the main concepts of testing with Spryker and see how simple it is to build tests. You will use the *test-driven development (TDD)* approach.
+This document helps you understand the main concepts of testing with Spryker and see how simple it's to build tests. You will use the *test-driven development (TDD)* approach.
Spryker's testing structure and data handling make it very easy to develop using TDD. You will build a simple module that reverses a string and test it.
diff --git a/docs/dg/dev/guidelines/testing-guidelines/executing-tests/test-console-commands.md b/docs/dg/dev/guidelines/testing-guidelines/executing-tests/test-console-commands.md
index cc91e1fac61..a3f9f2d3938 100644
--- a/docs/dg/dev/guidelines/testing-guidelines/executing-tests/test-console-commands.md
+++ b/docs/dg/dev/guidelines/testing-guidelines/executing-tests/test-console-commands.md
@@ -51,7 +51,7 @@ suites:
For more information about the `codeception.yml` file, see [Test framework](/docs/dg/dev/guidelines/testing-guidelines/test-framework.html).
-2. Create the test directory `tests/PyzTests/Zed/FooModule/Communication/Plugin/Console/`, if it is not available yet.
+2. Create the test directory `tests/PyzTests/Zed/FooModule/Communication/Plugin/Console/`, if it's not available yet.
3. Add the test class:
```php
diff --git a/docs/dg/dev/guidelines/testing-guidelines/executing-tests/testing-the-publish-and-synchronization-process.md b/docs/dg/dev/guidelines/testing-guidelines/executing-tests/testing-the-publish-and-synchronization-process.md
index d99a664b9cd..fa0506f2deb 100644
--- a/docs/dg/dev/guidelines/testing-guidelines/executing-tests/testing-the-publish-and-synchronization-process.md
+++ b/docs/dg/dev/guidelines/testing-guidelines/executing-tests/testing-the-publish-and-synchronization-process.md
@@ -34,7 +34,7 @@ related:
link: docs/scos/dev/guidelines/testing-guidelines/testing-console-commands.html
---
-Publish & Synchronize (P&S) is an asynchronous process of changing data available to customers by pushing the data into storage, for example, Redis, and making it searchable, for example, with Elasticsearch. Due to its asynchronous nature, it is not easy to test the full process while developing.
+Publish & Synchronize (P&S) is an asynchronous process of changing data available to customers by pushing the data into storage, for example, Redis, and making it searchable, for example, with Elasticsearch. Because of its asynchronous nature, it's not easy to test the full process while developing.
In short, in P&S, you create or update an entity in the database. The process is like this:
diff --git a/docs/dg/dev/guidelines/testing-guidelines/running-tests-with-robot-framework.md b/docs/dg/dev/guidelines/testing-guidelines/running-tests-with-robot-framework.md
index d7559c6c4c9..ae1ba1b2145 100644
--- a/docs/dg/dev/guidelines/testing-guidelines/running-tests-with-robot-framework.md
+++ b/docs/dg/dev/guidelines/testing-guidelines/running-tests-with-robot-framework.md
@@ -134,7 +134,7 @@ To re-execute a subset of tests, for example, after fixing a bug in the system o
* Tags: `--include` and `--exclude`
* Previous status: `--rerunfailed` or `--rerunfailedsuites`
-Combining re-execution results with the original results using the default combining outputs approach doesn't work well. The main issue is that you get separate test suites, and possibly already fixed failures are also shown. In this situation, it is better to use the `--merge (-R)` option to tell Rebot to merge the results instead. In practice, this means that tests from the latter test runs replace the tests in the original.
+Combining re-execution results with the original results using the default combining outputs approach doesn't work well. The main issue is that you get separate test suites, and possibly already fixed failures are also shown. In this situation, it's better to use the `--merge (-R)` option to tell Rebot to merge the results instead. In practice, this means that tests from the latter test runs replace the tests in the original.
The following is the recommended way of re-executing failed tested:
diff --git a/docs/dg/dev/guidelines/testing-guidelines/test-helpers/test-helpers-best-practices.md b/docs/dg/dev/guidelines/testing-guidelines/test-helpers/test-helpers-best-practices.md
index 545954b874a..e90495f3319 100644
--- a/docs/dg/dev/guidelines/testing-guidelines/test-helpers/test-helpers-best-practices.md
+++ b/docs/dg/dev/guidelines/testing-guidelines/test-helpers/test-helpers-best-practices.md
@@ -14,11 +14,11 @@ You should organize helpers according to their specific roles and intended use c
During the "Act" stage, we often only invoke a specific method that requires testing. In certain situations, it might make sense to create a helper method for executing bigger processes, such as `Helper::checkout()`. This method could include actions like adding a product to the cart, initiating the checkout procedure, completing address forms, selecting payment options, and more. This helper method could then also be reused by other tests.
-### Root helper
+## Root helper
Each module should have a helper named after the module. For example, in the `spryker/customer` module, there is `CustomerHelper`. This particular helper facilitates interactions with customer-related functionalities, such as creating `CustomerTransfer` or registering a customer.
You can also use these helpers to configure the system in a manner where, for example, an in-memory message broker is used instead a remote or a locally running one. This switch simplifies testing procedures and enhances overall performance.
-### Assert helper
+## Assert helper
To prevent overburdening the root helper, specific assertions should reside in separate helpers. In the context of the Customer module example, you could establish a CustomerAssertHelper. This dedicated helper should exclusively encompass assertion methods that can be used in any other module as well.
diff --git a/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/best-practices-for-effective-testing.md b/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/best-practices-for-effective-testing.md
index 0daa6813713..b00040dd734 100644
--- a/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/best-practices-for-effective-testing.md
+++ b/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/best-practices-for-effective-testing.md
@@ -92,7 +92,7 @@ If the test failed, you will see the passed message on the console, which should
## Use as less mocks as possible
-Testing single units of your application is a good approach, however, it has some drawbacks as described in the [Test API](#test-api) section. The more you mock, the less you really test. Besides, it is very common to forget to update mocks, which leads to even more issues in your code.
+Testing single units of your application is a good approach, however, it has some drawbacks as described in the [Test API](#test-api) section. The more you mock, the less you really test. Besides, it's very common to forget to update mocks, which leads to even more issues in your code.
Of course, you can mock all the dependencies of a model under test, but, most likely, that just adds unneeded overhead to your test. In many cases, let's say at least in the happy case, your code should work with the given dependencies. Testing exceptional cases very often requires mocking to be able to test the un-happy cases. In this case, you should also try to use as little mocks as possible to get the most coverage out of a few lines of test code.
diff --git a/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/test-types-best-practices.md b/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/test-types-best-practices.md
index f38dc6de01e..539408ef9d4 100644
--- a/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/test-types-best-practices.md
+++ b/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/test-types-best-practices.md
@@ -1,6 +1,6 @@
---
title: Test types best practices
-description: Learn when and how it is best to use different test types in your Spryker project.
+description: Learn when and how it's best to use different test types in your Spryker project.
last_updated: Jun 16, 2021
template: concept-topic-template
redirect_from:
diff --git a/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/testing-concepts.md b/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/testing-concepts.md
index cc9d2049522..adf917fde6e 100644
--- a/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/testing-concepts.md
+++ b/docs/dg/dev/guidelines/testing-guidelines/testing-best-practices/testing-concepts.md
@@ -1,6 +1,6 @@
---
title: Testing concepts
-description: Testing your project is one of the best ways to ensure that your software functions as it is supposed to. The role of testing is to find bugs during the early stages of development to minimize risks.
+description: Testing your project is one of the best ways to ensure that your software functions as it's supposed to. The role of testing is to find bugs during the early stages of development to minimize risks.
last_updated: Jun 16, 2021
template: concept-topic-template
originalLink: https://documentation.spryker.com/2021080/docs/testing-concepts
@@ -34,7 +34,7 @@ related:
link: docs/scos/dev/guidelines/testing-guidelines/testing-console-commands.html
---
-Testing your project is one of the best ways to ensure that your software functions as it is supposed to. The role of testing is to find bugs during the early stages of development to minimize risks. QA is the process of assuring quality, not just verifying you will not get an error on some page.
+Testing your project is one of the best ways to ensure that your software functions as it's supposed to. The role of testing is to find bugs during the early stages of development to minimize risks. QA is the process of assuring quality, not just verifying you will not get an error on some page.
However, testing will not make a system completely bug-free, it can and will reduce the quantity of system faults, help you avoid having major and critical errors and minimize those which can just distract users from using the system.
@@ -46,7 +46,7 @@ With or without a QA engineer, we have compiled a few tips, guidelines and recom
## The four main reasons errors occur
-Errors can appear during all stages of software development: while introducing a feature, during specification, development and testing phases. These are elements of human error - features are introduced without taking into consideration how they will work for the end user, specifications don't include integration with an existing or upcoming feature, validation rules and behavior descriptions are not fully thought through and many more other intricacies that are overlooked. In the development stage, bugs are a natural occurrence and during testing it is not uncommon to discover that fixing a bug actually reveals or introduces new ones.
+Errors can appear during all stages of software development: while introducing a feature, during specification, development and testing phases. These are elements of human error - features are introduced without taking into consideration how they will work for the end user, specifications don't include integration with an existing or upcoming feature, validation rules and behavior descriptions are not fully thought through and many more other intricacies that are overlooked. In the development stage, bugs are a natural occurrence and during testing it's not uncommon to discover that fixing a bug actually reveals or introduces new ones.
Generally, errors happen from the following reasons:
@@ -70,7 +70,7 @@ We have compiled a short checklist to use while creating the specification and d
## What is “high-quality software”?
-Quality doesn't mean "bug free". Quality means, meeting the stated requirements, functions correctly where it is supposed to, there are no critical, blocking or major issues, and that bugs of other severity are brought to the possible minimum or don’t distract/prevent the user from using the system.
+Quality doesn't mean "bug free". Quality means, meeting the stated requirements, functions correctly where it's supposed to, there are no critical, blocking or major issues, and that bugs of other severity are brought to the possible minimum or don’t distract/prevent the user from using the system.
This brings us to two questions:
@@ -93,7 +93,7 @@ Is the capability of a system to prevent malicious or accidental actions outside
### Usability
-Usability defines how well the application meets user requirements. We are looking for an application that is intuitive and provides a good overall user experience. Even if you do not have a QA team you can still run usability testing. "Still" because as mentioned above, developers tend to think positively of their code. Usually a developer only wants to check that the scenarios written in the requirements are passed. But it is important to look at your software from the outside. To imagine you are not the creator but the user. Try to identify what irritates you when using the software. It is very common for us to get frustrated by bad usability and want to fix it ourselves, but we can only report bugs to the creators and wait for the fix. Here you have the opportunity to fix everything yourself in the way you see it the best!
+Usability defines how well the application meets user requirements. We are looking for an application that is intuitive and provides a good overall user experience. Even if you do not have a QA team you can still run usability testing. "Still" because as mentioned above, developers tend to think positively of their code. Usually a developer only wants to check that the scenarios written in the requirements are passed. But it's important to look at your software from the outside. To imagine you are not the creator but the user. Try to identify what irritates you when using the software. It is very common for us to get frustrated by bad usability and want to fix it ourselves, but we can only report bugs to the creators and wait for the fix. Here you have the opportunity to fix everything yourself in the way you see it the best!
Naturally, there are many more quality attributes and there are lots of articles and resources online that you can use to further research and tailor your own list, like (Chapter 16: Quality Attributes)[https://msdn.microsoft.com/en-us/library/ee658094.aspx]. However, for us, our top priority is to focus on performance, security and usability.
@@ -111,7 +111,7 @@ Here are the steps you should follow:
* Prioritize test scenarios. Sometimes you will not have enough time to run a full regression test scope for all existing features. In this case, knowing which are the highest priority scenarios helps you to concentrate on them to pass.
* Using TDD for implementation can be a good practice. First, write the acceptance tests and then implement until tests are all passed.
* Also make sure to manually test the feature at least once.
-* Testing each module as soon as it is ready. It is best not to wait until the project is more or less done. Instead, adopt the approach that if a feature is ready - test it. Use manual tests and follow your test scenarios to make the process fast and effective.
+* Testing each module as soon as it's ready. It is best not to wait until the project is more or less done. Instead, adopt the approach that if a feature is ready - test it. Use manual tests and follow your test scenarios to make the process fast and effective.
* By our estimate, testing a module such as the Product Category module with some positive and some negative cases takes 30 - 40 minutes for an experienced tester. An inexperienced person would probably take an hour. Use these estimates to help calculate the time you need for testing in your plans. Planning projects with development time and test time together, helps to create a more realistic timeline. It will also help you to be able to predict your launch date a bit better as a well-tested project is likely to have less surprises towards the end.
The following diagram illustrates what a test process looks like without a QA team.
@@ -151,7 +151,7 @@ Real example:
Link tickets and documents with feature changes to the original features. Make sure that it’s easy to find initial functionality and how it’s connected to the new changes. Be sure that support documentation is also updated and does not stay in initial state without new changes.
-Link bugs found during testing to the tested feature with a relation like "discovered by" - bugs sometimes reveal uncovered requirements steps and it is easier to track such black points if they are all linked together.
+Link bugs found during testing to the tested feature with a relation like "discovered by" - bugs sometimes reveal uncovered requirements steps and it's easier to track such black points if they are all linked together.
Link tests to use cases and other requirement tickets with relation like "covers" or "verifies", this will help you understand in the future how well your requirement tickets are covered and see whether there are any not covered by any tests.
@@ -191,7 +191,7 @@ Test environments should as much as possible, correspond with the final target o
### Where to test
-When you are working on a single module or functionality, it is easy to forget that the end result is a collection of many working pieces. Do not limit testing to just either Yves or Zed, check them both together. For example: if you create a new shipment method, it is not enough to see the success message in Zed. Take a moment to go to Yves to see that the new element is also there, functional and not throwing exceptions when you try to select/open it.
+When you are working on a single module or functionality, it's easy to forget that the end result is a collection of many working pieces. Do not limit testing to just either Yves or Zed, check them both together. For example: if you create a new shipment method, it's not enough to see the success message in Zed. Take a moment to go to Yves to see that the new element is also there, functional and not throwing exceptions when you try to select/open it.
### Test and test again
diff --git a/docs/dg/dev/integrate-and-configure/Integrate-profiler-module.md b/docs/dg/dev/integrate-and-configure/Integrate-profiler-module.md
index 0745bd4a5af..2f934fa4155 100644
--- a/docs/dg/dev/integrate-and-configure/Integrate-profiler-module.md
+++ b/docs/dg/dev/integrate-and-configure/Integrate-profiler-module.md
@@ -1,6 +1,6 @@
---
title: Integrate profiler module
-description: Learn how to integrate profiler module
+description: Learn the prerequisites and how to enable and integrate profiler module in to a Spryker based project.
last_updated: March 22, 2023
template: howto-guide-template
redirect_from:
@@ -9,7 +9,7 @@ redirect_from:
This document describes how to integrate profiler module into a Spryker project.
-## Prerequisites
+### Prerequisites
To start the integration, install the necessary features:
@@ -19,7 +19,7 @@ To start the integration, install the necessary features:
| Web Profiler for Zed | {{page.version}} | [Web Profiler feature integration](/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-for-zed.html) |
| Web Profiler for Yves | {{page.version}} | [Web Profiler feature integration](/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-widget-for-yves.html) |
-## 1) Enable extension
+### 1) Enable extension
To collect execution traces, enable the `xhprof` extension.
@@ -37,13 +37,13 @@ image:
- xhprof
```
-## 2) Bootstrap the Docker setup
+### 2) Bootstrap the Docker setup
```shell
docker/sdk boot deploy.dev.yml
```
-## 3) Install the required modules using Composer
+### 3) Install the required modules using Composer
{% info_block warningBox "Verification" %}
@@ -60,7 +60,7 @@ Ensure that the following modules have been updated:
composer require --dev spryker/profiler --ignore-platform-reqs
```
-### Set up behavior
+#### Set up behavior
1. For `Yves` application, register the following plugins:
@@ -191,12 +191,12 @@ class WebProfilerDependencyProvider extends SprykerWebProfilerDependencyProvider
}
```
-# Generate transfers
+## Generate transfers
Run the `console transfer:generate` command to generate all the necessary transfer objects.
-# Enable the configuration
+## Enable the configuration
Module Profile works as a part of Web Profiler feature. By default, Web Profiler is disabled.
To enable Web Profiler, please update `config/Shared/config_default-docker.dev.php` configuration file.
diff --git a/docs/dg/dev/integrate-and-configure/configure-database-connections.md b/docs/dg/dev/integrate-and-configure/configure-database-connections.md
index ff41cf771f3..90e5d40fac3 100644
--- a/docs/dg/dev/integrate-and-configure/configure-database-connections.md
+++ b/docs/dg/dev/integrate-and-configure/configure-database-connections.md
@@ -1,5 +1,6 @@
---
title: Configure database connections
+description: Learn how you can configure a single or multiple database connections within your Spryker based project.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/ht-setup-database-connections
@@ -8,7 +9,7 @@ redirect_from:
- /docs/scos/dev/tutorials-and-howtos/howtos/howto-set-up-database-connections.html
related:
- title: Database access credentials
- link: docs/scos/dev/set-up-spryker-locally/database-access-credentials.html
+ link: docs/dg/dev/set-up-spryker-locally/database-access-credentials.html
---
Spryker provides flexible database connection configuration.
diff --git a/docs/dg/dev/integrate-and-configure/configure-queue-worker-signal-handling.md b/docs/dg/dev/integrate-and-configure/configure-queue-worker-signal-handling.md
index 885fb1fcde4..979ba2d9719 100644
--- a/docs/dg/dev/integrate-and-configure/configure-queue-worker-signal-handling.md
+++ b/docs/dg/dev/integrate-and-configure/configure-queue-worker-signal-handling.md
@@ -1,6 +1,6 @@
---
title: Configure queue worker signal handling
-description: Configure a graceful shutdown of queue worker.
+description: Learn how you can configure a graceful shutdown of queue worker for your Spryker based projects.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/queue-worker-signal-handling
diff --git a/docs/dg/dev/integrate-and-configure/configure-services.md b/docs/dg/dev/integrate-and-configure/configure-services.md
index c246e5c96eb..0d5957defab 100644
--- a/docs/dg/dev/integrate-and-configure/configure-services.md
+++ b/docs/dg/dev/integrate-and-configure/configure-services.md
@@ -1,6 +1,6 @@
---
title: Configure services
-description: Learn how to configure services.
+description: Learn how to set up and configure services that come out of the box of your Spryker shop.
last_updated: May 8, 2024
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/configuring-services
@@ -218,18 +218,18 @@ docker/sdk clean-data
docker/sdk up --build --data
```
-## ElasticSearch
+## Elasticsearch
[Elasticsearch](https://www.elastic.co/elasticsearch/) is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents.
For more information, see the following documents:
* [Configure Elasticsearch](/docs/pbc/all/search/{{site.version}}/base-shop/tutorials-and-howtos/configure-elasticsearch.html)—describes ElastciSearch configuration in Spryker.
-* [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html)—provides detailed information about ElasticSearch.
+* [Elasticsearch documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html)—provides detailed information about Elasticsearch.
-### Configure ElasticSearch
+### Configure Elasticsearch
-In `deploy.*.yml`, adjust the `services` section to open the port used for accessing ElasticSearch:
+In `deploy.*.yml`, adjust the `services` section to open the port used for accessing Elasticsearch:
```yaml
services:
search:
diff --git a/docs/dg/dev/integrate-and-configure/forcing-https.md b/docs/dg/dev/integrate-and-configure/forcing-https.md
index dd6550a3ec6..e5260df24c0 100644
--- a/docs/dg/dev/integrate-and-configure/forcing-https.md
+++ b/docs/dg/dev/integrate-and-configure/forcing-https.md
@@ -1,6 +1,6 @@
---
title: Forcing HTTPS
-description: Use the guide to configure HTTPs and HTTP for your pages.
+description: Learn with this guide to configure HTTPs and HTTP for your pages within your Spryker project.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/ht-force-https
diff --git a/docs/dg/dev/integrate-and-configure/implementing-graceful-shutdown.md b/docs/dg/dev/integrate-and-configure/implementing-graceful-shutdown.md
index da79f7134d6..589f0bb3d03 100644
--- a/docs/dg/dev/integrate-and-configure/implementing-graceful-shutdown.md
+++ b/docs/dg/dev/integrate-and-configure/implementing-graceful-shutdown.md
@@ -9,7 +9,7 @@ redirect_from:
- /docs/scos/dev/tutorials-and-howtos/howtos/howto-handle-graceful-shutdown.html
---
-When a running process is stopped by, for example, signals like `SIGTERM` and `SIGINT`, the process is stopped right away, no matter if it is completed or not. Sometimes, such behavior is not acceptable—for example, in the case of half imported data set.
+When a running process is stopped by, for example, signals like `SIGTERM` and `SIGINT`, the process is stopped right away, no matter if it's completed or not. Sometimes, such behavior is not acceptable—for example, in the case of half imported data set.
To make sure that a process is shut down gracefully, use the `GracefulRunner` module and pass `\Generator` to its `GracefulRunnerFacadeInterface::run()` method. `GracefulRunnerFacadeInterface::run()` uses the [signal handler](https://github.com/Seldaek/signal-handler) to register a new handler [with pcntl_signal](https://www.php.net/manual/en/function.pcntl-signal.php), and wraps the passed `\Generator`. Until a signal is sent, the `\Generator::next()` method is executed to make sure that one step of your process is fully completed before the script shuts down.
diff --git a/docs/dg/dev/integrate-and-configure/integrate-and-configure.md b/docs/dg/dev/integrate-and-configure/integrate-and-configure.md
index e94f2086315..690628121dd 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-and-configure.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-and-configure.md
@@ -1,6 +1,6 @@
---
title: Integrate and configure
-description: guides for integrating technical enhancement tools with Spryker SCOS
+description: Learn with these guides for integrating technical enhancement tools with Spryker Spryker Cloud Commerce OS.
template: concept-topic-template
redirect_from:
- /docs/scos/dev/technical-enhancement-integration-guides/technical-enhancement-integration-guides.html
diff --git a/docs/dg/dev/integrate-and-configure/integrate-authorization-enabler.md b/docs/dg/dev/integrate-and-configure/integrate-authorization-enabler.md
index ede3f8f0d4a..ce50165e140 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-authorization-enabler.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-authorization-enabler.md
@@ -1,6 +1,6 @@
---
title: Integrate Authorization Enabler
-description: Learn how to enable the Authorization Enabler
+description: Learn how to enable and integrate the Authorization Enabler for your Spryker based projects.
last_updated: Sep 2, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/authorization-enabler-integration
diff --git a/docs/dg/dev/integrate-and-configure/integrate-cms-block-widgets.md b/docs/dg/dev/integrate-and-configure/integrate-cms-block-widgets.md
index 4d56de6ea0a..b0dcd7eb477 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-cms-block-widgets.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-cms-block-widgets.md
@@ -1,6 +1,6 @@
---
title: Integrate CMS block widgets
-description: Learn how to enable CMS block widget in a Spryker project.
+description: Learn how you can enable and integrate Content Management System (CMS) block widgets in a Spryker based project.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/enabling-cms-block-widget
diff --git a/docs/dg/dev/integrate-and-configure/integrate-custom-location-for-static-assets.md b/docs/dg/dev/integrate-and-configure/integrate-custom-location-for-static-assets.md
index c0cd658227d..745b3860882 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-custom-location-for-static-assets.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-custom-location-for-static-assets.md
@@ -1,5 +1,6 @@
---
title: Integrate custom location for static assets
+description: Learn how you can enable and integrate custom location for static assets within your Spryker based project.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/custom-location-for-static-assets
diff --git a/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-development-tools.md b/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-development-tools.md
index d1796976ab8..80c1ab5603c 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-development-tools.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-development-tools.md
@@ -1,6 +1,6 @@
---
title: Integrate development tools
-description: guides for integrating technical enhancement tools with Spryker SCOS
+description: Learn from these guides for integrating technical enhancement tools with Spryker Spryker Cloud Commerce OS.
template: concept-topic-template
redirect_from:
- /docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-development-tools.html
diff --git a/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-formatter.md b/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-formatter.md
index ff64967fa44..d987e860aa3 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-formatter.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-formatter.md
@@ -1,6 +1,6 @@
---
title: Integrate Formatter
-description: Learn how to integrate Formatter into your project
+description: Learn how to enable and integrate Formatter and their dependencies into your Spryker based project.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/formatter-integration-guide
@@ -10,13 +10,13 @@ redirect_from:
- /docs/scos/dev/migration-and-integration/202108.0/development-tools/formatter-integration-guide.html
related:
- title: Integrating SCSS linter
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-scss-linter.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-scss-linter.html
- title: Integrating TS linter
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-ts-linter.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-ts-linter.html
- title: Integrating Web Profiler for Zed
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-web-profiler-for-zed.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-for-zed.html
- title: Integrating Web Profiler Widget for Yves
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-web-profiler-widget-for-yves.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-widget-for-yves.html
---
Follow the steps below to integrate [Formatter](/docs/scos/dev/sdk/development-tools/formatter.html) into your project.
diff --git a/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-scss-linter.md b/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-scss-linter.md
index 85bfb87aa3a..bec14255a75 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-scss-linter.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-scss-linter.md
@@ -1,6 +1,6 @@
---
title: Integrate SCSS linter
-description: Learn how to integrate the SCSS linter into your project
+description: Learn how to enable and integrate the SCSS linter and its dependencies for your Spryker based project
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/scss-linter-integration-guide
@@ -10,16 +10,16 @@ redirect_from:
- /docs/scos/dev/migration-and-integration/202108.0/development-tools/scss-linter-integration-guide.html
related:
- title: Integrating Formatter
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-formatter.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-formatter.html
- title: Integrating TS linter
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-ts-linter.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-ts-linter.html
- title: Integrating Web Profiler for Zed
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-web-profiler-for-zed.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-for-zed.html
- title: Integrating Web Profiler Widget for Yves
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-web-profiler-widget-for-yves.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-widget-for-yves.html
---
-Follow the steps below to integrate the [SCSS linter ](/docs/scos/dev/sdk/development-tools/scss-linter.html)into your project.
+Follow the steps below to integrate the [SCSS linter](/docs/dg/dev/sdks/sdk/development-tools/scss-linter.html) into your project.
## 1. Install the dependencies
diff --git a/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-ts-linter.md b/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-ts-linter.md
index b3bf73bebd5..c58c4afddf9 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-ts-linter.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-ts-linter.md
@@ -1,6 +1,6 @@
---
title: Integrate TS linter
-description: Learn how to integrate the SCSS linter into your project
+description: Learn about the dependencies and how to enable and integrate the SCSS linter into your Spryker based project
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/ts-linter-integration-guide
@@ -10,16 +10,16 @@ redirect_from:
- /docs/scos/dev/migration-and-integration/202108.0/development-tools/ts-linter-integration-guide.html
related:
- title: Integrating Formatter
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-formatter.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-formatter.html
- title: Integrating SCSS linter
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-scss-linter.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-scss-linter.html
- title: Integrating Web Profiler for Zed
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-web-profiler-for-zed.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-for-zed.html
- title: Integrating Web Profiler Widget for Yves
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-web-profiler-widget-for-yves.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-widget-for-yves.html
---
-Follow the steps below to integrate [TS linter](/docs/scos/dev/sdk/development-tools/ts-linter.html) into your project.
+Follow the steps below to integrate [TS linter](/docs/dg/dev/sdks/sdk/development-tools/ts-linter.html) into your project.
## 1. Install the dependencies
diff --git a/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-for-zed.md b/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-for-zed.md
index 975b4e5ec1b..1e7c1492c61 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-for-zed.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-for-zed.md
@@ -10,15 +10,15 @@ redirect_from:
- /docs/scos/dev/migration-and-integration/202108.0/development-tools/web-profiler.html
related:
- title: Web Profiler Widget for Yves
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-web-profiler-widget-for-yves.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-widget-for-yves.html
- title: Integrating Formatter
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-formatter.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-formatter.html
- title: Integrating SCSS linter
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-scss-linter.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-scss-linter.html
- title: Integrating TS linter
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-ts-linter.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-ts-linter.html
- title: Integrating Web Profiler Widget for Yves
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-web-profiler-widget-for-yves.html
+ link: /docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-widget-for-yves.html
---
The _Web Profiler_ provides a toolbar for debugging and informational purposes. The toolbar is located at the bottom of a loaded page.
diff --git a/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-widget-for-yves.md b/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-widget-for-yves.md
index 4f26d6cdf23..2e43b7ba0db 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-widget-for-yves.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-widget-for-yves.md
@@ -10,15 +10,15 @@ redirect_from:
- /docs/scos/dev/migration-and-integration/202108.0/development-tools/web-profiler-widget
related:
- title: Web Profiler for Zed
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-web-profiler-for-zed.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-for-zed.html
- title: Integrating Formatter
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-formatter.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-formatter.html
- title: Integrating SCSS linter
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-scss-linter.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-scss-linter.html
- title: Integrating TS linter
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-ts-linter.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-ts-linter.html
- title: Integrating Web Profiler for Zed
- link: docs/scos/dev/technical-enhancement-integration-guides/integrating-development-tools/integrating-web-profiler-for-zed.html
+ link: docs/dg/dev/integrate-and-configure/integrate-development-tools/integrate-web-profiler-for-zed.html
---
The _Web Profiler Widget_ provides a toolbar for debugging and for informational purposes. The toolbar is located at the bottom of a loaded page.
diff --git a/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.md b/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.md
index 1117f1f0e7c..981177bf26e 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.md
@@ -1,6 +1,6 @@
---
title: Integrate elastic computing
-description: Learn how to integrate elastic computing.
+description: Learn how to integrate elastic computing including New Relic and other features for your Spryker based project.
last_updated: Jan 23, 2023
template: concept-topic-template
redirect_from:
@@ -128,7 +128,7 @@ class DataImportBusinessFactory extends SprykerDataImportBusinessFactory
}
```
-3. In `Pyz\Zed\DataImport\Business\Model\Glossary\GlossaryWriterStep`, update the writer steps by adjusting the execute method to flush `MemoryAllocatedElasticBatch` when it is full.
+3. In `Pyz\Zed\DataImport\Business\Model\Glossary\GlossaryWriterStep`, update the writer steps by adjusting the execute method to flush `MemoryAllocatedElasticBatch` when it's full.
```php
diff --git a/docs/dg/dev/integrate-and-configure/integrate-multi-database-logic.md b/docs/dg/dev/integrate-and-configure/integrate-multi-database-logic.md
index 31a587907ef..d915fba6ae9 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-multi-database-logic.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-multi-database-logic.md
@@ -1,6 +1,6 @@
---
title: Integrate multi-database logic
-description: Learn how to integrate multi-database logic
+description: Learn how to switch from using a shared database to integrate multi-database logic within your Spryker projects.
last_updated: June 2, 2022
template: howto-guide-template
redirect_from:
diff --git a/docs/dg/dev/integrate-and-configure/integrate-multi-queue-publish-structure.md b/docs/dg/dev/integrate-and-configure/integrate-multi-queue-publish-structure.md
index ca4f833c1d0..5c50b66ca09 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-multi-queue-publish-structure.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-multi-queue-publish-structure.md
@@ -1,6 +1,6 @@
---
title: Integrate multi-queue publish structure
-description: The single event queue is replaced by multiple publish queues.
+description: Learn how to integrate the Multi-queue publish structure to improve debugging and slow events in your Spryker based projects.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/multiple-publish-queue-structure
@@ -15,7 +15,7 @@ To improve debugging of failures and slow events in Spryker, we introduced a new
| PROPERTY | SINGLE PUBLISH QUEUE STRUCTURE | MULTIPLE PUBLISH QUEUE STRUCTURE |
| --- | --- | --- |
| Event processing | Infrastructure and application events are processed in the same event queue. | Infrastructure events are spread across multiple publish events. Application events are processed in the event queue. |
-| Monitoring of event consumption speed | Due to mixed listeners, event consumption speed is unpredictable and not linear. | You can monitor the speed of event consumption in each queue separately. |
+| Monitoring of event consumption speed | Because of mixed listeners, event consumption speed is unpredictable and not linear. | You can monitor the speed of event consumption in each queue separately. |
| Per event configuration of chunk size | | ✓ |
| Per event separation of workers | | ✓ |
diff --git a/docs/dg/dev/integrate-and-configure/integrate-propel-clean-command.md b/docs/dg/dev/integrate-and-configure/integrate-propel-clean-command.md
index b69e09ff8ec..889ac088c06 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-propel-clean-command.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-propel-clean-command.md
@@ -1,6 +1,6 @@
---
title: Integrate Propel clean command
-description: Learn how to integrate the Propel clean command into your project.
+description: Learn how to enable and integrate the Propel clean command into your Spryker based project.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/propel-clean-command
diff --git a/docs/dg/dev/integrate-and-configure/integrate-separate-endpoint-bootstraps.md b/docs/dg/dev/integrate-and-configure/integrate-separate-endpoint-bootstraps.md
index 6b38eadac7d..d1f84cae7d0 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-separate-endpoint-bootstraps.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-separate-endpoint-bootstraps.md
@@ -1,5 +1,6 @@
---
title: Integrate separate endpoint bootstraps
+description: Learn how to enable and integrate sperate endpoint bootstraps into your Spryker based project.
last_updated: Feb 8, 2022
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/separating-different-endpoint-bootstraps
@@ -13,7 +14,7 @@ Gateway and ZedRestApi requests require a different stack of plugins to be proce
To separate application bootstrapping into individual endpoints, take the following steps:
-### 1) Update modules using Composer
+## 1) Update modules using Composer
Update the required modules:
@@ -34,7 +35,7 @@ Update the required modules:
composer update spryker/twig spryker/session spryker/router spryker/monitoring spryker/event-dispatcher spryker/application
```
-### 2) Update modules using npm
+## 2) Update modules using npm
Update the required module:
@@ -64,7 +65,7 @@ npm install
npm run zed
```
-### 3) Add application entry points
+## 3) Add application entry points
1. Add the following application entry points:
@@ -299,7 +300,7 @@ The maintenance page is not yet compatible with Spryker Cloud.
}
```
-### 4) Separate application plugin stacks
+## 4) Separate application plugin stacks
1. Replace `ApplicationDependencyProvider::getApplicationPlugins();` with separate plugin stacks per endpoint:
@@ -378,7 +379,7 @@ class ApplicationDependencyProvider extends SprykerApplicationDependencyProvider
```
-### 5) Separate event dispatcher plugin stacks
+## 5) Separate event dispatcher plugin stacks
Update `src/Pyz/Zed/EventDispatcher/EventDispatcherDependencyProvider.php` with the following changes:
@@ -422,7 +423,7 @@ class EventDispatcherDependencyProvider extends SprykerEventDispatcherDependency
}
```
-### 6) Separate router plugin stacks
+## 6) Separate router plugin stacks
Replace `RouterDependencyProvider::getRouterPlugins();` with two new methods:
@@ -455,7 +456,7 @@ class RouterDependencyProvider extends SprykerRouterDependencyProvider
}
```
-### 7) Add console commands
+## 7) Add console commands
1. Configure the following console commands with a router cache warmup per endpoint:
@@ -514,7 +515,7 @@ sections:
...
```
-### 8) Configure the application
+## 8) Configure the application
1. Configure the Back Office error page, default port, and the ACL rule for the rest endpoint:
@@ -589,7 +590,7 @@ class SecurityGuiConfig extends SprykerSecurityGuiConfig
Make sure to do this at least 5 working days prior to the planned change.
-### 9) Update the Docker SDK
+## 9) Update the Docker SDK
1. Update the Docker SDK to version `1.36.1` or higher.
2. In the needed deploy files, replace the `zed` application with `backoffice`, `backend-gateway` and `backend-api` as follows.
diff --git a/docs/dg/dev/integrate-and-configure/remove-the-support-of-ie11.md b/docs/dg/dev/integrate-and-configure/remove-the-support-of-ie11.md
index b9a7cdbc3d6..eec9141166d 100644
--- a/docs/dg/dev/integrate-and-configure/remove-the-support-of-ie11.md
+++ b/docs/dg/dev/integrate-and-configure/remove-the-support-of-ie11.md
@@ -1,7 +1,7 @@
---
title: Remove the support of IE11
last_updated: Aug 31, 2022
-description: This document shows how to remove support of IE11 in your Spryker project.
+description: This document shows how to remove the support of IE11 in your Spryker based project.
template: concept-topic-template
redirect_from:
- /docs/scos/dev/front-end-development/migration-guide-remove-support-of-ie11.html
diff --git a/docs/dg/dev/integrate-and-configure/switch-to-a-case-sensitive-file-system-on-mac-os.md b/docs/dg/dev/integrate-and-configure/switch-to-a-case-sensitive-file-system-on-mac-os.md
index f7d998b3a3b..00439c15ff8 100644
--- a/docs/dg/dev/integrate-and-configure/switch-to-a-case-sensitive-file-system-on-mac-os.md
+++ b/docs/dg/dev/integrate-and-configure/switch-to-a-case-sensitive-file-system-on-mac-os.md
@@ -1,6 +1,6 @@
---
title: Switch to a case-sensitive file system on Mac OS
-description: Use the guide to change the case-sensitive file system on Mac OS.
+description: Use the guide to change the case-sensitive file system on Mac OS within your Spryker based projects.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/ht-case-sensitive-file-system-mac
@@ -37,7 +37,7 @@ After the disk has been created, you can see it being mounted in Finder already.
## Copy existing projects
-You can copy all existing projects to the newly created box. If it is not mounted, double-click the disk image file in Finder. After copying all your projects, you can replace your current project directory with the mount-point for the disk image so that you don't have to adjust any paths you already set up. For details, see the following section.
+You can copy all existing projects to the newly created box. If it's not mounted, double-click the disk image file in Finder. After copying all your projects, you can replace your current project directory with the mount-point for the disk image so that you don't have to adjust any paths you already set up. For details, see the following section.
## mount the disk image at boot automatically
diff --git a/docs/dg/dev/integrate-and-configure/switch-to-arm-architecture-m1-chip.md b/docs/dg/dev/integrate-and-configure/switch-to-arm-architecture-m1-chip.md
index e14cbd4cb55..23b259d0b07 100644
--- a/docs/dg/dev/integrate-and-configure/switch-to-arm-architecture-m1-chip.md
+++ b/docs/dg/dev/integrate-and-configure/switch-to-arm-architecture-m1-chip.md
@@ -1,6 +1,6 @@
---
title: Switch to ARM architecture (M1 chip)
-description: Learn how to switch Docker based projects to ARM architecture.
+description: Learn how to switch Docker based projects to ARM architecture for M Chips within your Spryker based projects.
template: howto-guide-template
redirect_from:
- /docs/scos/dev/technical-enhancement-integration-guides/switch-to-arm-architecture-m1-chip.html
diff --git a/docs/dg/dev/integrate-and-configure/twig-and-twigextension.md b/docs/dg/dev/integrate-and-configure/twig-and-twigextension.md
index a59d0f33705..a5146bc19e4 100644
--- a/docs/dg/dev/integrate-and-configure/twig-and-twigextension.md
+++ b/docs/dg/dev/integrate-and-configure/twig-and-twigextension.md
@@ -18,11 +18,11 @@ redirect_from:
- /docs/scos/dev/technical-enhancement-integration-guides/twig-and-twigextension.html
related:
- title: Cronjob scheduling
- link: docs/scos/dev/sdk/cronjob-scheduling.html
+ link: docs/dg/dev/backend-development/cronjobs/cronjobs.html
- title: Data import
link: docs/dg/dev/data-import/page.version/data-import.html
- title: Development virtual machine, docker containers & console
- link: docs/scos/dev/sdk/development-virtual-machine-docker-containers-and-console.html
+ link: docs/dg/dev/sdks/the-docker-sdk/docker-environment-infrastructure.html
---
## Twig
@@ -169,19 +169,29 @@ This interface gets the Twig environment and `ContainerInterface` to be able to
```php
addExtension(new DebugExtension());
+ $twig->addExtension(new DumpExtension(new VarCloner()));
return $twig;
}
}
+
```
{% info_block infoBox %}
diff --git a/docs/dg/dev/internationalization-and-multi-store/adding-stores-in-a-multi-database-setup.md b/docs/dg/dev/internationalization-and-multi-store/adding-stores-in-a-multi-database-setup.md
new file mode 100644
index 00000000000..376aa276fb9
--- /dev/null
+++ b/docs/dg/dev/internationalization-and-multi-store/adding-stores-in-a-multi-database-setup.md
@@ -0,0 +1,245 @@
+---
+title: "Adding stores in a multi-datatabse setup"
+description: Adding and deploying a new store in multi-db store setup requires additional steps and preparation. This guideline contains all the best practices you need to know.
+last_updated: Dec 02, 2024
+template: howto-guide-template
+redirect_from:
+ - /docs/dg/dev/internationalization-and-multi-store/add-new-store-in-multi-db-setup.html
+---
+
+Setting up a new store in an existing multi-database environment requires a detailed plan to make sure that the data and operations of existing stores remain unaffected. This document describes how to seamlessly launch a new store within a region that already hosts other stores.
+
+{% info_block warningBox %}
+This guide can be used for projects that are managing stores programmatically through code. If you're using the Dynamic Multistore feature to manage stores in the Back Office, refer to [Dynamic Multistore](/docs/pbc/all/dynamic-multistore/202410.0/dynamic-multistore.html).
+{% endinfo_block %}
+
+## Planning and best practices
+
+This section describes how to properly prepare for making changes related to your stores setup.
+
+### Clear roadmap
+
+Create a long-term plan, detailing all the stores you want to add in future. This can affect database (DB) structure, configuration, and the choice of rollout approach, making sure it's cost-efficient over time.
+
+
+### Backup strategy
+
+A backup plan needs to be ready in case of issues during deployment. Apart from DB backups, this includes considerations on all the points in the following sections, including the business side.
+
+### Environment preparation
+
+To prepare production and non-production environments for a store rollout, make sure there's no parallel development and no additional functionality to be released on top. Teams and stakeholders need to be prepared and aware of the procedure.
+
+### Repeatable process
+
+If you're planning to release more stores in future, make the process easily repeatable. This includes creating detailed documentation, release procedure, and tickets, such as epics, stories, or tasks, in your project management software. This can be a detailed script or checklist tailored to your project, covering all relevant steps, configurations, and integrations.
+
+
+## Store rollout considerations
+
+This section describes parts of the application you need to take into account when preparing a rollout plan.
+
+### Integrations and third-party systems
+* Review and adjust all third-party integrations to ensure they work with the new store setup. This mainly concerns data and its isolation across virtual DBs. Teams working with both sides of the system, such as backend, frontend, merchant portal and APIs, should have access to all the needed data.
+* Integrations, such as single sign-on, payment gateways, or inventory systems, may require updates. Teams responsible for those systems should be available and ready to do the needed changes on time.
+
+### Data import
+* Handle the data import process carefully, breaking it down into specific tasks such as configuring DBs and adjusting the data import setup to work with the new store.
+* Make sure existing DBs, for example–a DB from another country, are correctly renamed or adjusted to fit the multi-DB structure.
+* Anticipate and plan for potential updates that may arise after end-to-end testing of the project data migration.
+
+### Code buckets
+
+If code buckets are used, investigate and adjust their configurations, making sure code buckets keeps working properly after the stored is introduced. Thoroughly document the steps for adjusting the code buckets configuration.
+
+### Cloud environment and monitoring
+* Consider and adjust application performance monitoring tools, such as NewRelic and CloudWatch, to accommodate the new store. Check that all alerts and metrics are correctly configured to monitor the health and performance of the new store.
+* Consider adjusting AWS services, for example–introduce S3 buckets for the new store.
+
+### Frontend considerations
+
+Reconsider the prior topics relative to your frontend. For example–frontend separation might be a significant task, requiring layout changes between different stores and API changes.
+
+
+
+
+
+
+## Releasing a store
+
+This section provides detailed guidelines for releasing a store.
+
+For general instructions for defining new DBs, connecting them with new stores, and adding configuration, follow [Integrate multi-DB logic](/docs/dg/dev/integrate-and-configure/integrate-multi-database-logic.html).
+
+### 1. Local setup
+
+This section describes how to add the configuration and deployment recipes for a new store.
+
+
+#### Add the configuration for the new store
+
+* Using [Add and remove DBs of stores](/docs/ca/dev/multi-store-setups/add-and-remove-databases-of-stores.html), define the following new entities in your deploy file:
+
+| ENTITY | SECTION |
+| Database | `regions..services.DBs` |
+ | Store | `regions..stores`|
+| Domains | `groups..applications` |
+
+* In `stores.php`, add the configuration for the new store. For instructions, see [Integrate multi-DB logic](/docs/dg/dev/integrate-and-configure/integrate-multi-database-logic.html).
+* Prepare data import configurations and data files for the new store.
+* Adjust the local environment setup as needed, including configurations and environment variables. Examples:
+ * Frontend router configuration
+ * Code bucket configuration
+ * Create new Back Office users
+* To make these steps repeatable in future, document them.
+
+#### Running initial setup locally
+
+Bootstrap the updated configuration and run the project:
+ ```bash
+ docker/sdk boot deploy.dev.yml
+ docker/sdk up
+ ```
+
+Make sure the new store’s DB has been correctly initialized and filled up with demo data.
+
+#### Setting up additional deployment recipes
+
+When adding and deleting stores, for testing purposes, we recommend creating additional deployment install recipes in `config/install`. The following are examples of such recipes, which we tested in action. The examples are based on the default folder structure with the EU folder as a base, but you can introduce your own structure.
+
+A minimal recipe for adding a store:
+
+**config/install/EU/setup-store.yml**
+```json
+env:
+ NEW_RELIC_ENABLED: 0
+command-timeout: 7200
+stores:
+ - { STORE-1 }
+ - { STORE-2 }
+ ...
+sections:
+ init-storage:
+ setup-search-create-sources:
+ command: "vendor/bin/console search:setup:sources -vvv --no-ansi"
+ stores: true
+ init-storages-per-store:
+ propel-migrate:
+ command: "vendor/bin/console propel:migrate -vvv --no-ansi"
+ stores: true
+ ...
+```
+
+A minimal recipe for removing a store:
+**config/install/EU/delete-store.yml**
+```
+env:
+ NEW_RELIC_ENABLED: 0
+command-timeout: 7200
+stores:
+ - { STORE-1 }
+ - { STORE-2 }
+ ...
+sections:
+ scheduler-clean:
+ scheduler-clean:
+ command: "vendor/bin/console scheduler:clean -vvv --no-ansi || true"
+ stores: true
+ clean-storage:
+ clean-storage:
+ command: "vendor/bin/console storage:delete -vvv --no-ansi"
+ stores: true
+ ...
+```
+
+You can use these custom recipes for the deployment of the application by adding them to your main deployment file. Examples:
+
+```json
+...
+SPRYKER_HOOK_DESTRUCTIVE_INSTALL: "vendor/bin/install {STORES_GO_HERE} -r EU/setup-store --no-ansi -vvv"
+...
+```
+
+```json
+...
+SPRYKER_HOOK_DESTRUCTIVE_INSTALL: "vendor/bin/install {STORES_GO_HERE} -r EU/delete-store --no-ansi -vvv"
+...
+```
+
+The following sections describe how custom recipes are used in a store rollout.
+
+### 2. Staging setup
+
+This section describes how to roll out a store in a staging environment. This rollout is used to test the new store and how it affects the existing stores.
+
+#### Staging environment configuration
+
+Add the configuration for the new store to the staging environment’s configuration.
+
+To initialize the new store's DB, run a destructive deployment. To not affect existing stores, in the `image.environment` section of the deployment file, define only the new store in `SPRYKER_HOOK_DESTRUCTIVE_INSTALL`. In the following example, new PL and AT stores are introduced:
+
+```yml
+...
+SPRYKER_HOOK_DESTRUCTIVE_INSTALL: "vendor/bin/install PL,AT -r EU/destructive --no-ansi -vvv"
+...
+```
+
+We also recommend using a custom recipe for this deployment as described in [Setting up additional deployment recipes](#setting-up-additional-deployment-recipes).
+
+#### Apply the configuration
+1. Open a support request and explain the expected changes, that is that stores need to be introduced. Attach the deploy file. If the needed configuration is in a specific repository branch, reference it in the ticket and make sure the support team has access to your code base.
+2. Run the destructive deployment for the stores that have been configured in the support request.
+
+#### Deployment execution
+
+1. Deploy the new store in the staging environment.
+2. Thoroughly test the new store to confirm it operates correctly without affecting other stores, including all the external integrations in the staging mode.
+
+### 3. Production setup
+
+This section describes how to roll out a new store in a production environment.
+
+
+#### Production environment configuration
+
+Prepare the production environment’s configuration similarly to the staging setup.
+
+#### Apply the configuration
+
+* Open a support request to deploy the new store configuration to production.
+* Execute the deployment, closely monitoring the process to catch any issues early.
+
+#### Post-deployment
+
+* Verify that the new store is fully operational and that no data or services for existing stores have been affected.
+* If you updated an existing installation recipe during environment configuration, revert it back to its original state.
+
+## Releasing multiple stores in a row
+
+This section describes the changes you need to make to the procedure in [Releasing a store] to release multiple stores in a row.
+
+When releasing multiple stores, you need to prepare configuration for all the stores, but release one store at a time.
+
+This lets you avoid repeating some of the steps for multiple stores.
+
+### Release of the first store
+
+This section describes how to release the first store. It includes the preparation for releasing subsequent stores.
+
+#### 1. Local setup
+
+Prepare and test the configuration for *all* the stores you want to release.
+
+#### 2. Staging setup
+1. Prepare a staging deploy file, containing all the stores you want to release.
+2. Open a support request an describe the end result. Attach the deploy file and optionally provide a rollout schedule for all the stores.
+3. Save the configuration you've prepared separately.
+4. Update the configuration to contain only the first store you want to release.
+5. Run a destructive deployment.
+
+#### 3. Production setup
+Repeat the procedure from the previous step for production environment.
+
+### Releases of subsequent stores
+
+After releasing the first store, you can append the configuration for the next store and run a destructive deployment. This way you can release all the stores you've provided the configuration for in your initial support request. You don't have to create additional support tickets.
diff --git a/docs/dg/dev/internationalization-and-multi-store/handling-internationalization.md b/docs/dg/dev/internationalization-and-multi-store/handling-internationalization.md
index 6096f99c5a9..f7f7eec111c 100644
--- a/docs/dg/dev/internationalization-and-multi-store/handling-internationalization.md
+++ b/docs/dg/dev/internationalization-and-multi-store/handling-internationalization.md
@@ -8,7 +8,7 @@ redirect_from:
- /docs/scos/dev/tutorials-and-howtos/advanced-tutorials/tutorial-internationalization.html
---
-In international business, it is important to fine-tune a shop's behavior according to the country. Functionality that needs to be configured:
+In international business, it's important to fine-tune a shop's behavior according to the country. Functionality that needs to be configured:
* Design and layout
* Currency and price
@@ -25,7 +25,7 @@ At the same time, the product import from a PIM system cart calculation and the
## Store concept
-To cope with these challenges, Spryker’s architecture differentiates a project and a store level. That means coding and behavior can be defined on each level. Logic that is identical will be on the project level. Examples are the product structure or customer structure. At the same time, it is possible to define a store level, this will typically be used for each country the company operates in. This allows maintaining coding that is only relevant for the given store. The store will define design and layout, used currency, and price. We recommend you have a different store at least on the currency level.
+To cope with these challenges, Spryker’s architecture differentiates a project and a store level. That means coding and behavior can be defined on each level. Logic that is identical will be on the project level. Examples are the product structure or customer structure. At the same time, it's possible to define a store level, this will typically be used for each country the company operates in. This allows maintaining coding that is only relevant for the given store. The store will define design and layout, used currency, and price. We recommend you have a different store at least on the currency level.
## Internationalization vs localization
diff --git a/docs/dg/dev/internationalization-and-multi-store/set-up-multiple-stores.md b/docs/dg/dev/internationalization-and-multi-store/set-up-multiple-stores.md
index ed18df0a426..569cbea79d8 100644
--- a/docs/dg/dev/internationalization-and-multi-store/set-up-multiple-stores.md
+++ b/docs/dg/dev/internationalization-and-multi-store/set-up-multiple-stores.md
@@ -1,6 +1,6 @@
---
title: Set up multiple stores
-description: Learn how to set up multiple stores for your project.
+description: Learn how to enable and set up and create multiple stores for multiple countries or regions for your Spryker Based project.
last_updated: Dec 22, 2022
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/howto-set-up-multiple-stores
diff --git a/docs/dg/dev/miscellaneous-guides/simulating-deployments-locally.md b/docs/dg/dev/miscellaneous-guides/simulating-deployments-locally.md
index 0ae3b8e4362..74a1d4b25bc 100644
--- a/docs/dg/dev/miscellaneous-guides/simulating-deployments-locally.md
+++ b/docs/dg/dev/miscellaneous-guides/simulating-deployments-locally.md
@@ -8,7 +8,7 @@ redirect_from:
---
-Are you about to roll out an important feature to your staging or production environment and want to ensure that everything will work out right? Or you are encountering behavior in your application when it is deployed that does not seem right, and you are wondering how to best debug it? This document provides tips that can help you avoid surprises and help you prepare your project optimally for deployment and build a local development setup with which you can debug more effectively.
+Are you about to roll out an important feature to your staging or production environment and want to ensure that everything will work out right? Or you are encountering behavior in your application when it's deployed that does not seem right, and you are wondering how to best debug it? This document provides tips that can help you avoid surprises and help you prepare your project optimally for deployment and build a local development setup with which you can debug more effectively.
To simulate your application behavior and how it looks when deployed to the staging or production environment, bootstrap the `deploy.yml` files used by those environments. The following sections show what needs to be done.
diff --git a/docs/dg/dev/miscellaneous-guides/tutorial-hello-world.md b/docs/dg/dev/miscellaneous-guides/tutorial-hello-world.md
index 3a2eaf13b51..bc1f3d301a1 100644
--- a/docs/dg/dev/miscellaneous-guides/tutorial-hello-world.md
+++ b/docs/dg/dev/miscellaneous-guides/tutorial-hello-world.md
@@ -9,7 +9,7 @@ redirect_from:
- /docs/scos/dev/tutorials-and-howtos/introduction-tutorials/tutorial-hello-world-spryker-commerce-os.html
related:
- title: Module configuration convention
- link: docs/scos/dev/guidelines/module-configuration-convention.html
+ link: docs/dg/dev/guidelines/module-configuration-convention.html
---
{% info_block infoBox %}
diff --git a/docs/dg/dev/miscellaneous-guides/using-database-transaction.md b/docs/dg/dev/miscellaneous-guides/using-database-transaction.md
index 6ee6ce8d4c7..95a8de94eb2 100644
--- a/docs/dg/dev/miscellaneous-guides/using-database-transaction.md
+++ b/docs/dg/dev/miscellaneous-guides/using-database-transaction.md
@@ -1,6 +1,6 @@
---
title: Using database transactions
-description: Use the guide to understand how to handle database transactions.
+description: Use the guide to understand how to handle database transactions within your Spryker based projects.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/t-database-transactions
diff --git a/docs/dg/dev/sdks/sdk/build-flavored-spryker-sdks.md b/docs/dg/dev/sdks/sdk/build-flavored-spryker-sdks.md
index 1149d7d499c..477484ea626 100644
--- a/docs/dg/dev/sdks/sdk/build-flavored-spryker-sdks.md
+++ b/docs/dg/dev/sdks/sdk/build-flavored-spryker-sdks.md
@@ -1,6 +1,6 @@
---
title: Build flavored Spryker SDKs
-description: Find out how you can build flavored Spryker SDKs
+description: Find out how you can build flavored Spryker SDKs with extension or deep integration of the SDK within your Spryker projects.
template: howto-guide-template
last_updated: Nov 22, 2022
redirect_from:
diff --git a/docs/dg/dev/sdks/sdk/customization-strategies-and-upgradability.md b/docs/dg/dev/sdks/sdk/customization-strategies-and-upgradability.md
index ced14dca969..dc7f511ea30 100644
--- a/docs/dg/dev/sdks/sdk/customization-strategies-and-upgradability.md
+++ b/docs/dg/dev/sdks/sdk/customization-strategies-and-upgradability.md
@@ -35,7 +35,7 @@ Module configuration is one of the Public APIs. This means that Spryker makes s
### Plug and Play customization
-Plug and Play is Spryker’s out-of-the-box development strategy that allows customers to extend a project with various built-in plugins. In case there’s no plugin, it is recommended to create a feature request or create a custom plugin and wire it up in the DependencyProvider, or via configuration.
+Plug and Play is Spryker’s out-of-the-box development strategy that allows customers to extend a project with various built-in plugins. In case there’s no plugin, it's recommended to create a feature request or create a custom plugin and wire it up in the DependencyProvider, or via configuration.
Check out our [Plugins](/docs/dg/dev/backend-development/plugins/plugins.html) article to get more information.
@@ -135,7 +135,7 @@ Let’s see how this affects our upgrade process.
#### Patch releases
-Patch releases, such as for example 1.2.1 to 1.2.2, will not affect the `DEFAULT_CATEGORY_READ_CHUNK` value or usage so it is safe to automatically update to patches even if the project has modified the constant value to suit its needs.
+Patch releases, such as for example 1.2.1 to 1.2.2, will not affect the `DEFAULT_CATEGORY_READ_CHUNK` value or usage so it's safe to automatically update to patches even if the project has modified the constant value to suit its needs.
#### Minor release
diff --git a/docs/dg/dev/sdks/sdk/developing-with-spryker-sdk.md b/docs/dg/dev/sdks/sdk/developing-with-spryker-sdk.md
index 5056899df2f..f53df70550d 100644
--- a/docs/dg/dev/sdks/sdk/developing-with-spryker-sdk.md
+++ b/docs/dg/dev/sdks/sdk/developing-with-spryker-sdk.md
@@ -1,6 +1,6 @@
---
title: Developing with Spryker SDK
-description: You can install and use Spryker SDK for your development needs
+description: Learn how you can install and use Spryker SDK for your development needs with the dev enironment.
template: howto-guide-template
last_updated: Nov 22, 2022
related:
diff --git a/docs/dg/dev/sdks/sdk/development-tools/architecture-sniffer.md b/docs/dg/dev/sdks/sdk/development-tools/architecture-sniffer.md
index 706f6d09213..9a474c1595d 100644
--- a/docs/dg/dev/sdks/sdk/development-tools/architecture-sniffer.md
+++ b/docs/dg/dev/sdks/sdk/development-tools/architecture-sniffer.md
@@ -18,23 +18,23 @@ redirect_from:
- /docs/scos/dev/sdk/development-tools/architecture-sniffer.html
related:
- title: Code sniffer
- link: docs/scos/dev/sdk/development-tools/code-sniffer.html
+ link: docs/dg/dev/sdks/sdk/development-tools/code-sniffer.html
- title: Formatter
- link: docs/scos/dev/sdk/development-tools/formatter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/formatter.html
- title: Performance audit tool- Benchmark
- link: docs/scos/dev/sdk/development-tools/performance-audit-tool-benchmark.html
+ link: docs/dg/dev/sdks/sdk/development-tools/benchmark-performance-audit-tool.html
- title: PHPStan
link: docs/dg/dev/sdks/sdk/development-tools/phpstan.html
- title: SCSS linter
- link: docs/scos/dev/sdk/development-tools/scss-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/scss-linter.html
- title: TS linter
- link: docs/scos/dev/sdk/development-tools/ts-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/ts-linter.html
- title: Spryk code generator
- link: docs/scos/dev/sdk/development-tools/spryk-code-generator.html
+ link: docs/dg/dev/sdks/sdk/spryks/spryks.html
- title: Static Security Checker
- link: docs/scos/dev/sdk/development-tools/static-security-checker.html
+ link: docs/dg/dev/sdks/sdk/development-tools/static-security-checker.html
- title: Tooling config file
- link: docs/scos/dev/sdk/development-tools/tooling-config-file.html
+ link: docs/dg/dev/sdks/sdk/development-tools/tooling-configuration-file.html
---
We use our [Architecture Sniffer Tool](https://github.com/spryker/architecture-sniffer) to ensure the quality of Spryker architecture for both core and project.
diff --git a/docs/dg/dev/sdks/sdk/development-tools/benchmark-performance-audit-tool.md b/docs/dg/dev/sdks/sdk/development-tools/benchmark-performance-audit-tool.md
index 8092730d514..a18b5a06fea 100644
--- a/docs/dg/dev/sdks/sdk/development-tools/benchmark-performance-audit-tool.md
+++ b/docs/dg/dev/sdks/sdk/development-tools/benchmark-performance-audit-tool.md
@@ -1,6 +1,6 @@
---
title: "Benchmark: Performance audit tool"
-description: The Benchmark tool allows you to assess an application's performance by seeing how long it takes to load a page and how much memory the application consumes during requests.
+description: The Benchmark tool allows you to assess an application's performance by how long it takes to load a page and how much memory the it consumes during requests.
last_updated: Jun 16, 2021
template: concept-topic-template
originalLink: https://documentation.spryker.com/2021080/docs/performance-audit-tool-benchmark
diff --git a/docs/dg/dev/sdks/sdk/development-tools/code-sniffer.md b/docs/dg/dev/sdks/sdk/development-tools/code-sniffer.md
index 660edbdc68d..005dc13c849 100644
--- a/docs/dg/dev/sdks/sdk/development-tools/code-sniffer.md
+++ b/docs/dg/dev/sdks/sdk/development-tools/code-sniffer.md
@@ -17,23 +17,23 @@ redirect_from:
- /docs/scos/dev/sdk/development-tools/code-sniffer.html
related:
- title: Architecture sniffer
- link: docs/scos/dev/sdk/development-tools/architecture-sniffer.html
+ link: docs/dg/dev/sdks/sdk/development-tools/architecture-sniffer.html
- title: Formatter
- link: docs/scos/dev/sdk/development-tools/formatter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/formatter.html
- title: Performance audit tool- Benchmark
- link: docs/scos/dev/sdk/development-tools/performance-audit-tool-benchmark.html
+ link: docs/dg/dev/sdks/sdk/development-tools/benchmark-performance-audit-tool.html
- title: PHPStan
link: docs/dg/dev/sdks/sdk/development-tools/phpstan.html
- title: SCSS linter
- link: docs/scos/dev/sdk/development-tools/scss-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/scss-linter.html
- title: TS linter
- link: docs/scos/dev/sdk/development-tools/ts-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/ts-linter.html
- title: Spryk code generator
- link: docs/scos/dev/sdk/development-tools/spryk-code-generator.html
+ link: docs/dg/dev/sdks/sdk/spryks/spryks.html
- title: Static Security Checker
- link: docs/scos/dev/sdk/development-tools/static-security-checker.html
+ link: docs/dg/dev/sdks/sdk/development-tools/static-security-checker.html
- title: Tooling config file
- link: docs/scos/dev/sdk/development-tools/tooling-config-file.html
+ link: docs/dg/dev/sdks/sdk/development-tools/tooling-configuration-file.html
---
To correspond to [PSR-2](http://www.php-fig.org/psr/psr-2/) and additional standards, we integrated the well known [PHPCodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer).
diff --git a/docs/dg/dev/sdks/sdk/development-tools/development-tools.md b/docs/dg/dev/sdks/sdk/development-tools/development-tools.md
index 74375689af5..86c682fe700 100644
--- a/docs/dg/dev/sdks/sdk/development-tools/development-tools.md
+++ b/docs/dg/dev/sdks/sdk/development-tools/development-tools.md
@@ -1,6 +1,6 @@
---
title: Development tools
-description: How to use the tools associated with developing using the Spryker SDK
+description: Learn how you can use the tools associated with developing with Spryker using the Spryker SDK
last_updated: Jan 12, 2023
template: concept-topic-template
redirect_from:
diff --git a/docs/dg/dev/sdks/sdk/development-tools/formatter.md b/docs/dg/dev/sdks/sdk/development-tools/formatter.md
index cb54da3d9b7..48829511935 100644
--- a/docs/dg/dev/sdks/sdk/development-tools/formatter.md
+++ b/docs/dg/dev/sdks/sdk/development-tools/formatter.md
@@ -16,24 +16,24 @@ redirect_from:
- /docs/scos/dev/sdk/202108.0/development-tools/formatter.html
- /docs/scos/dev/sdk/development-tools/formatter.html
related:
- - title: Architecture sniffer
- link: docs/scos/dev/sdk/development-tools/architecture-sniffer.html
- title: Code sniffer
- link: docs/scos/dev/sdk/development-tools/code-sniffer.html
+ link: docs/dg/dev/sdks/sdk/development-tools/code-sniffer.html
+ - title: Architecture sniffer
+ link: docs/dg/dev/sdks/sdk/development-tools/architecture-sniffer.html
- title: Performance audit tool- Benchmark
- link: docs/scos/dev/sdk/development-tools/performance-audit-tool-benchmark.html
+ link: docs/dg/dev/sdks/sdk/development-tools/benchmark-performance-audit-tool.html
- title: PHPStan
link: docs/dg/dev/sdks/sdk/development-tools/phpstan.html
- title: SCSS linter
- link: docs/scos/dev/sdk/development-tools/scss-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/scss-linter.html
- title: TS linter
- link: docs/scos/dev/sdk/development-tools/ts-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/ts-linter.html
- title: Spryk code generator
- link: docs/scos/dev/sdk/development-tools/spryk-code-generator.html
+ link: docs/dg/dev/sdks/sdk/spryks/spryks.html
- title: Static Security Checker
- link: docs/scos/dev/sdk/development-tools/static-security-checker.html
+ link: docs/dg/dev/sdks/sdk/development-tools/static-security-checker.html
- title: Tooling config file
- link: docs/scos/dev/sdk/development-tools/tooling-config-file.html
+ link: docs/dg/dev/sdks/sdk/development-tools/tooling-configuration-file.html
---
*Formatter* allows you to find and fix code style mistakes and keep your code more readable.
diff --git a/docs/dg/dev/sdks/sdk/development-tools/phpstan.md b/docs/dg/dev/sdks/sdk/development-tools/phpstan.md
index 0ecea4f418e..b172b091e79 100644
--- a/docs/dg/dev/sdks/sdk/development-tools/phpstan.md
+++ b/docs/dg/dev/sdks/sdk/development-tools/phpstan.md
@@ -1,6 +1,6 @@
---
title: PHPStan
-description: Learn how to install and use PHPStan, a static code analyzer
+description: Learn how to install and use PHPStan, a static code analyzer within your Spryker SDK projects.
last_updated: Jun 16, 2021
template: concept-topic-template
originalLink: https://documentation.spryker.com/2021080/docs/phpstan
@@ -17,23 +17,21 @@ redirect_from:
- /docs/scos/dev/sdk/development-tools/phpstan.html
related:
- title: Architecture sniffer
- link: docs/scos/dev/sdk/development-tools/architecture-sniffer.html
- - title: Code sniffer
- link: docs/scos/dev/sdk/development-tools/code-sniffer.html
+ link: docs/dg/dev/sdks/sdk/development-tools/architecture-sniffer.html
- title: Formatter
- link: docs/scos/dev/sdk/development-tools/formatter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/formatter.html
- title: Performance audit tool- Benchmark
- link: docs/scos/dev/sdk/development-tools/performance-audit-tool-benchmark.html
+ link: docs/dg/dev/sdks/sdk/development-tools/benchmark-performance-audit-tool.html
- title: SCSS linter
- link: docs/scos/dev/sdk/development-tools/scss-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/scss-linter.html
- title: TS linter
- link: docs/scos/dev/sdk/development-tools/ts-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/ts-linter.html
- title: Spryk code generator
- link: docs/scos/dev/sdk/development-tools/spryk-code-generator.html
+ link: docs/dg/dev/sdks/sdk/spryks/spryks.html
- title: Static Security Checker
- link: docs/scos/dev/sdk/development-tools/static-security-checker.html
+ link: docs/dg/dev/sdks/sdk/development-tools/static-security-checker.html
- title: Tooling config file
- link: docs/scos/dev/sdk/development-tools/tooling-config-file.html
+ link: docs/dg/dev/sdks/sdk/development-tools/tooling-configuration-file.html
---
[PHPStan](https://github.com/phpstan/phpstan) is a static code analyzer that introspects the code without running it and catches various classes of bugs prior to unit testing.
@@ -48,7 +46,7 @@ composer require --dev phpstan/phpstan
## Usage
-1. Run the following command to generate autocompletion and prevent any error messages that might occur due to the incomplete classes:
+1. Run the following command to generate autocompletion and prevent any error messages that might occur because of the incomplete classes:
`vendor/bin/console dev:ide:generate-auto-completion`
2. Run this command to start analyzing:
`php -d memory_limit=2048M vendor/bin/phpstan analyze -l 6 -c phpstan.neon src/`
@@ -69,7 +67,7 @@ If you need to raise the level, add new rules or extensions, you can generate a
**Main configuration file inheritance**
-To avoid duplicated code while specifying a different configuration in the _parameters_ section of the `phpstat.neon` file, it is possible to extend this file and determine only the changes needed for a particular configuration of a module.
+To avoid duplicated code while specifying a different configuration in the _parameters_ section of the `phpstat.neon` file, it's possible to extend this file and determine only the changes needed for a particular configuration of a module.
### ./[ROOT]/phpstan.neon
diff --git a/docs/dg/dev/sdks/sdk/development-tools/scss-linter.md b/docs/dg/dev/sdks/sdk/development-tools/scss-linter.md
index 32261780f7c..000d2ade0c0 100644
--- a/docs/dg/dev/sdks/sdk/development-tools/scss-linter.md
+++ b/docs/dg/dev/sdks/sdk/development-tools/scss-linter.md
@@ -16,24 +16,24 @@ redirect_from:
- /docs/scos/dev/sdk/202108.0/development-tools/scss-linter.html
- /docs/scos/dev/sdk/development-tools/scss-linter.html
related:
- - title: Architecture sniffer
- link: docs/scos/dev/sdk/development-tools/architecture-sniffer.html
- title: Code sniffer
- link: docs/scos/dev/sdk/development-tools/code-sniffer.html
+ link: docs/dg/dev/sdks/sdk/development-tools/code-sniffer.html
- title: Formatter
- link: docs/scos/dev/sdk/development-tools/formatter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/formatter.html
+ - title: Architecture sniffer
+ link: docs/dg/dev/sdks/sdk/development-tools/architecture-sniffer.html
- title: Performance audit tool- Benchmark
- link: docs/scos/dev/sdk/development-tools/performance-audit-tool-benchmark.html
+ link: docs/dg/dev/sdks/sdk/development-tools/benchmark-performance-audit-tool.html
- title: PHPStan
link: docs/dg/dev/sdks/sdk/development-tools/phpstan.html
- title: TS linter
- link: docs/scos/dev/sdk/development-tools/ts-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/ts-linter.html
- title: Spryk code generator
- link: docs/scos/dev/sdk/development-tools/spryk-code-generator.html
+ link: docs/dg/dev/sdks/sdk/spryks/spryks.html
- title: Static Security Checker
- link: docs/scos/dev/sdk/development-tools/static-security-checker.html
+ link: docs/dg/dev/sdks/sdk/development-tools/static-security-checker.html
- title: Tooling config file
- link: docs/scos/dev/sdk/development-tools/tooling-config-file.html
+ link: docs/dg/dev/sdks/sdk/development-tools/tooling-configuration-file.html
---
*SCSS linter* allows you to find and fix code style mistakes. It helps a team follow the same standards and make code more readable.
diff --git a/docs/dg/dev/sdks/sdk/development-tools/static-security-checker.md b/docs/dg/dev/sdks/sdk/development-tools/static-security-checker.md
index ce1705dd665..515b2fe7560 100644
--- a/docs/dg/dev/sdks/sdk/development-tools/static-security-checker.md
+++ b/docs/dg/dev/sdks/sdk/development-tools/static-security-checker.md
@@ -16,24 +16,24 @@ redirect_from:
- /docs/scos/dev/sdk/202108.0/development-tools/static-security-checker.html
- /docs/scos/dev/sdk/development-tools/static-security-checker.html
related:
- - title: Architecture sniffer
- link: docs/scos/dev/sdk/development-tools/architecture-sniffer.html
- title: Code sniffer
- link: docs/scos/dev/sdk/development-tools/code-sniffer.html
+ link: docs/dg/dev/sdks/sdk/development-tools/code-sniffer.html
- title: Formatter
- link: docs/scos/dev/sdk/development-tools/formatter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/formatter.html
+ - title: Architecture sniffer
+ link: docs/dg/dev/sdks/sdk/development-tools/architecture-sniffer.html
- title: Performance audit tool- Benchmark
- link: docs/scos/dev/sdk/development-tools/performance-audit-tool-benchmark.html
+ link: docs/dg/dev/sdks/sdk/development-tools/benchmark-performance-audit-tool.html
- title: PHPStan
link: docs/dg/dev/sdks/sdk/development-tools/phpstan.html
- title: SCSS linter
- link: docs/scos/dev/sdk/development-tools/scss-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/scss-linter.html
- title: TS linter
- link: docs/scos/dev/sdk/development-tools/ts-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/ts-linter.html
- title: Spryk code generator
- link: docs/scos/dev/sdk/development-tools/spryk-code-generator.html
+ link: docs/dg/dev/sdks/sdk/spryks/spryks.html
- title: Tooling config file
- link: docs/scos/dev/sdk/development-tools/tooling-config-file.html
+ link: docs/dg/dev/sdks/sdk/development-tools/tooling-configuration-file.html
---
The Spryker static Security Checker allows you to detect packages with security vulnerabilities. It is based on the [Local PHP Security Checker](https://github.com/fabpot/local-php-security-checker).
diff --git a/docs/dg/dev/sdks/sdk/development-tools/tooling-configuration-file.md b/docs/dg/dev/sdks/sdk/development-tools/tooling-configuration-file.md
index d59b1f9fdb6..6e0b027aba0 100644
--- a/docs/dg/dev/sdks/sdk/development-tools/tooling-configuration-file.md
+++ b/docs/dg/dev/sdks/sdk/development-tools/tooling-configuration-file.md
@@ -16,24 +16,24 @@ redirect_from:
- /docs/scos/dev/sdk/202108.0/development-tools/tooling-config-file.html
- /docs/scos/dev/sdk/development-tools/tooling-config-file.html
related:
- - title: Architecture sniffer
- link: docs/scos/dev/sdk/development-tools/architecture-sniffer.html
- title: Code sniffer
- link: docs/scos/dev/sdk/development-tools/code-sniffer.html
+ link: docs/dg/dev/sdks/sdk/development-tools/code-sniffer.html
- title: Formatter
- link: docs/scos/dev/sdk/development-tools/formatter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/formatter.html
+ - title: Architecture sniffer
+ link: docs/dg/dev/sdks/sdk/development-tools/architecture-sniffer.html
- title: Performance audit tool- Benchmark
- link: docs/scos/dev/sdk/development-tools/performance-audit-tool-benchmark.html
+ link: docs/dg/dev/sdks/sdk/development-tools/benchmark-performance-audit-tool.html
- title: PHPStan
link: docs/dg/dev/sdks/sdk/development-tools/phpstan.html
- title: SCSS linter
- link: docs/scos/dev/sdk/development-tools/scss-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/scss-linter.html
- title: TS linter
- link: docs/scos/dev/sdk/development-tools/ts-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/ts-linter.html
- title: Spryk code generator
- link: docs/scos/dev/sdk/development-tools/spryk-code-generator.html
+ link: docs/dg/dev/sdks/sdk/spryks/spryks.html
- title: Static Security Checker
- link: docs/scos/dev/sdk/development-tools/static-security-checker.html
+ link: docs/dg/dev/sdks/sdk/development-tools/static-security-checker.html
---
In order to make the tool configuring more convenient, we introduced the `.tooling.yml` file. It contains a variety of settings for different tools in one place, helping you to keep the number of files on the root level as small as possible. The `.tooling.yml` file should also be in `.gitattributes` to be ignored for tagging:
diff --git a/docs/dg/dev/sdks/sdk/development-tools/ts-linter.md b/docs/dg/dev/sdks/sdk/development-tools/ts-linter.md
index 45333ac1a56..9d2ce5070b9 100644
--- a/docs/dg/dev/sdks/sdk/development-tools/ts-linter.md
+++ b/docs/dg/dev/sdks/sdk/development-tools/ts-linter.md
@@ -23,24 +23,24 @@ redirect_from:
- /docs/sdk/dev/development-tools/ts-linter.html
related:
- - title: Architecture sniffer
- link: docs/scos/dev/sdk/development-tools/architecture-sniffer.html
- title: Code sniffer
- link: docs/scos/dev/sdk/development-tools/code-sniffer.html
+ link: docs/dg/dev/sdks/sdk/development-tools/code-sniffer.html
- title: Formatter
- link: docs/scos/dev/sdk/development-tools/formatter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/formatter.html
+ - title: Architecture sniffer
+ link: docs/dg/dev/sdks/sdk/development-tools/architecture-sniffer.html
- title: Performance audit tool- Benchmark
- link: docs/scos/dev/sdk/development-tools/performance-audit-tool-benchmark.html
+ link: docs/dg/dev/sdks/sdk/development-tools/benchmark-performance-audit-tool.html
- title: PHPStan
link: docs/dg/dev/sdks/sdk/development-tools/phpstan.html
- title: SCSS linter
- link: docs/scos/dev/sdk/development-tools/scss-linter.html
+ link: docs/dg/dev/sdks/sdk/development-tools/scss-linter.html
- title: Spryk code generator
- link: docs/scos/dev/sdk/development-tools/spryk-code-generator.html
+ link: docs/dg/dev/sdks/sdk/spryks/spryks.html
- title: Static Security Checker
- link: docs/scos/dev/sdk/development-tools/static-security-checker.html
+ link: docs/dg/dev/sdks/sdk/development-tools/static-security-checker.html
- title: Tooling config file
- link: docs/scos/dev/sdk/development-tools/tooling-config-file.html
+ link: docs/dg/dev/sdks/sdk/development-tools/tooling-configuration-file.html
---
{% info_block warningBox "No longer supported" %}
diff --git a/docs/dg/dev/sdks/sdk/extending-spryker-sdk.md b/docs/dg/dev/sdks/sdk/extending-spryker-sdk.md
index 2544481dd81..e91b6d917e2 100644
--- a/docs/dg/dev/sdks/sdk/extending-spryker-sdk.md
+++ b/docs/dg/dev/sdks/sdk/extending-spryker-sdk.md
@@ -1,6 +1,6 @@
---
title: Extending Spryker SDK
-description: Find out how you can extend the Spryker SDK
+description: Find out how you can extend the Spryker SDK allowing third parties to contribute to the SDK without modifying it.
template: howto-guide-template
last_updated: Jan 13, 2023
redirect_from:
@@ -294,7 +294,7 @@ class YourValueResolver implements ValueResolverInterface
}
```
-You can define a value resolver as a Symfony service, for example to be able to inject services into it. If the value resolver is not defined as a service, it is instantiated by its FQCN.
+You can define a value resolver as a Symfony service, for example to be able to inject services into it. If the value resolver is not defined as a service, it's instantiated by its FQCN.
Example of defining a value resolver as a Symfony service:
diff --git a/docs/dg/dev/sdks/sdk/initialize-and-run-workflows.md b/docs/dg/dev/sdks/sdk/initialize-and-run-workflows.md
index 0541a2f7110..a2b18548a6e 100644
--- a/docs/dg/dev/sdks/sdk/initialize-and-run-workflows.md
+++ b/docs/dg/dev/sdks/sdk/initialize-and-run-workflows.md
@@ -1,6 +1,6 @@
---
title: Initialize and run workflows
-description: Learn about the Spryker SDK telemetry configuration.
+description: Learn about the Spryker SDK telemetry configuration and how you can Initialise and run workflows within your Spryker SDK project.
template: howto-guide-template
last_updated: Dec 16, 2022
redirect_from:
diff --git a/docs/dg/dev/sdks/sdk/integrate-spryker-sdk-commands-into-php-storm-command-line-tools.md b/docs/dg/dev/sdks/sdk/integrate-spryker-sdk-commands-into-php-storm-command-line-tools.md
index 151a4c17703..518131781c9 100644
--- a/docs/dg/dev/sdks/sdk/integrate-spryker-sdk-commands-into-php-storm-command-line-tools.md
+++ b/docs/dg/dev/sdks/sdk/integrate-spryker-sdk-commands-into-php-storm-command-line-tools.md
@@ -1,6 +1,6 @@
---
title: Integrate Spryker SDK commands into PhpStorm command line tools
-description: You can make the Spryker SDK available for the PhpStorm.
+description: Learn how to integrate Spryker SDK commands in to PHPStorm command line tools for your Spryker based projects.
template: task-topic-template
last_updated: Nov 22, 2022
redirect_from:
diff --git a/docs/dg/dev/sdks/sdk/manifest-validation.md b/docs/dg/dev/sdks/sdk/manifest-validation.md
index 4dc603147e6..776d312f053 100644
--- a/docs/dg/dev/sdks/sdk/manifest-validation.md
+++ b/docs/dg/dev/sdks/sdk/manifest-validation.md
@@ -1,6 +1,6 @@
---
title: Manifest validation
-description: The manifest validation validates the YAML structure for a task.
+description: Learn about the Manifest validation feature where it validates the YAML structure for a task within your Spryker projects.
template: howto-guide-template
redirect_from:
- /docs/sdk/dev/manifest-validation.html
diff --git a/docs/dg/dev/sdks/sdk/spryker-sdk.md b/docs/dg/dev/sdks/sdk/spryker-sdk.md
index 494d0f53cf2..af9110e58c8 100644
--- a/docs/dg/dev/sdks/sdk/spryker-sdk.md
+++ b/docs/dg/dev/sdks/sdk/spryker-sdk.md
@@ -1,6 +1,6 @@
---
title: Spryker SDK
-description: Learn about the Spryker SDK and how you can use it in your project.
+description: Learn all about the Spryker SDK and how you can use it to enhance your Spryker projects.
template: concept-topic-template
last_updated: Aug 31, 2023
redirect_from:
diff --git a/docs/dg/dev/sdks/sdk/spryks/adding-spryks.md b/docs/dg/dev/sdks/sdk/spryks/adding-spryks.md
index 1f8b33ffb95..7eb5e60453b 100644
--- a/docs/dg/dev/sdks/sdk/spryks/adding-spryks.md
+++ b/docs/dg/dev/sdks/sdk/spryks/adding-spryks.md
@@ -1,6 +1,6 @@
---
title: Adding Spryks
-description: Find out how you can add a new Spryk
+description: Find out how you can add a new Spryk in to your Spryker project with Spryker SDKs
template: howto-guide-template
redirect_from:
- /docs/sdk/dev/spryks/adding-a-new-spryk.html
@@ -8,7 +8,7 @@ redirect_from:
last_updated: Nov 10, 2022
related:
- title: Spryk configuration reference
- link: docs/sdk/dev/spryks/spryk-configuration-reference.html
+ link: docs/dg/dev/sdks/sdk/spryks/spryk-configuration-reference.html
---
To add a new Spryk, you need to add a YAML configuration file to the `config/spryk/spryks/` directory.
diff --git a/docs/dg/dev/sdks/sdk/spryks/checking-and-debugging-spryks.md b/docs/dg/dev/sdks/sdk/spryks/checking-and-debugging-spryks.md
index 033231f1a59..eae66659748 100644
--- a/docs/dg/dev/sdks/sdk/spryks/checking-and-debugging-spryks.md
+++ b/docs/dg/dev/sdks/sdk/spryks/checking-and-debugging-spryks.md
@@ -1,6 +1,6 @@
---
title: Checking and debugging Spryks
-description: Find out how you can check and debug Spryks
+description: Learn how you can check, troubleshoot and debug Spryks nad how to avoid dependencies within your Spryker project.
template: howto-guide-template
redirect_from:
- /docs/sdk/dev/spryks/checking-and-debugging-spryks.html
diff --git a/docs/dg/dev/sdks/sdk/spryks/enabling-and-disabling-the-code-sniffer-for-spryks.md b/docs/dg/dev/sdks/sdk/spryks/enabling-and-disabling-the-code-sniffer-for-spryks.md
index 32294dc3057..469c2c3a8ce 100644
--- a/docs/dg/dev/sdks/sdk/spryks/enabling-and-disabling-the-code-sniffer-for-spryks.md
+++ b/docs/dg/dev/sdks/sdk/spryks/enabling-and-disabling-the-code-sniffer-for-spryks.md
@@ -1,6 +1,6 @@
---
title: Enabling and disabling the Code Sniffer for Spryks
-description: Find out how you can enable or disable the Code Sniffer when running Spryks
+description: Find out how you can enable or disable the Code Sniffer when running Spryks within your spryker projects.
template: howto-guide-template
redirect_from:
- /docs/sdk/dev/spryks/enabling-and-disabling-the-code-sniffer-for-spryks.html
diff --git a/docs/dg/dev/sdks/sdk/spryks/fileresolver.md b/docs/dg/dev/sdks/sdk/spryks/fileresolver.md
index 4c5d9320076..f1ac4c0ad49 100644
--- a/docs/dg/dev/sdks/sdk/spryks/fileresolver.md
+++ b/docs/dg/dev/sdks/sdk/spryks/fileresolver.md
@@ -1,6 +1,6 @@
---
title: FileResolver
-description: Find out how you can enable or disable the Code Sniffer when running Spryks
+description: Learn all about the FileResolver, a core part to file management within your Spryker Projects.
template: howto-guide-template
redirect_from:
- /docs/sdk/dev/spryks/fileresolver.html
diff --git a/docs/dg/dev/sdks/sdk/spryks/spryk-configuration-reference.md b/docs/dg/dev/sdks/sdk/spryks/spryk-configuration-reference.md
index a30a9a6b93f..a2f2e015be4 100644
--- a/docs/dg/dev/sdks/sdk/spryks/spryk-configuration-reference.md
+++ b/docs/dg/dev/sdks/sdk/spryks/spryk-configuration-reference.md
@@ -1,6 +1,6 @@
---
title: Spryk configuration reference
-description: Learn about the Spryk file structure and its elements
+description: Learn about the Spryk file structure and its elements with this Spryks configuration reference for your projects.
template: howto-guide-template
redirect_from:
- /docs/sdk/dev/spryks/spryk-configuration-reference.html
diff --git a/docs/dg/dev/sdks/sdk/spryks/spryks-qa-automation.md b/docs/dg/dev/sdks/sdk/spryks/spryks-qa-automation.md
index 722c25d0a4f..42220fd430b 100644
--- a/docs/dg/dev/sdks/sdk/spryks/spryks-qa-automation.md
+++ b/docs/dg/dev/sdks/sdk/spryks/spryks-qa-automation.md
@@ -1,6 +1,6 @@
---
title: Spryks QA automation
-description: QA automation lets you run QA tools and unit tests required by Spryker
+description: Learn all about QA automation lets you run QA tools and unit tests required by Spryker
template: howto-guide-template
redirect_from:
- /docs/sdk/dev/spryks/qa-automation.html
diff --git a/docs/dg/dev/sdks/sdk/task-set.md b/docs/dg/dev/sdks/sdk/task-set.md
index 8874d41a65a..298734e1cb6 100644
--- a/docs/dg/dev/sdks/sdk/task-set.md
+++ b/docs/dg/dev/sdks/sdk/task-set.md
@@ -1,6 +1,6 @@
---
title: Task set
-description: Task set is a group of related tasks that you can run with one command.
+description: Learn about task sets and how a Task set is a group of related tasks that you can run with one command.
template: concept-topic-template
redirect_from:
- /docs/sdk/dev/task-set.html
diff --git a/docs/dg/dev/sdks/sdk/task.md b/docs/dg/dev/sdks/sdk/task.md
index 8815b425043..71c16876c1f 100644
--- a/docs/dg/dev/sdks/sdk/task.md
+++ b/docs/dg/dev/sdks/sdk/task.md
@@ -1,6 +1,6 @@
---
title: Task
-description: Task is the smallest unit for running commands in the Spryker SDK which serves as a command wrapper.
+description: Learn about Tasks and how a Task is the smallest unit for running commands in the Spryker SDK which serves as a command wrapper.
template: concept-topic-template
redirect_from:
- /docs/sdk/dev/task.html
diff --git a/docs/dg/dev/sdks/sdk/telemetry.md b/docs/dg/dev/sdks/sdk/telemetry.md
index e57a737943b..b5b6e7fc8a0 100644
--- a/docs/dg/dev/sdks/sdk/telemetry.md
+++ b/docs/dg/dev/sdks/sdk/telemetry.md
@@ -1,6 +1,6 @@
---
title: Telemetry
-description: Learn about the Spryker SDK telemetry configuration.
+description: Learn about the Spryker SDK telemetry configuration and how to implement custom events within your Spryker project.
template: howto-guide-template
redirect_from:
- /docs/sdk/dev/telemetry.html
diff --git a/docs/dg/dev/sdks/sdk/troubleshooting/spryker-sdk-command-not-found.md b/docs/dg/dev/sdks/sdk/troubleshooting/spryker-sdk-command-not-found.md
index ea8a43d23fd..86886931913 100644
--- a/docs/dg/dev/sdks/sdk/troubleshooting/spryker-sdk-command-not-found.md
+++ b/docs/dg/dev/sdks/sdk/troubleshooting/spryker-sdk-command-not-found.md
@@ -1,27 +1,27 @@
---
title: spryker-sdk command not found
-description: Troubleshooting for the Spryker SDK document.
+description: Learn how to Troubleshooting and resolve for the Spryker SDK command not found within your spryker projects.
template: concept-topic-template
redirect_from:
- /docs/sdk/dev/troubleshooting/spryker-sdk-command-not-found.html
last_updated: Jan 18, 2023
---
-# Troubleshooting
+## Troubleshooting
-## `spryker-sdk` command not found.
+### `spryker-sdk` command not found.
The `spryker-sdk` command cannot be found.
-## Description
+### Description
The `spryker-sdk` command cannot be found.
-## Cause
+### Cause
The command might not exist in your file.
-## Solution
+### Solution
1. Add the command manually to your `shell rc` file. Depending on your shell it can be `~/.bashrc`, `~/.zshrc`, `~/.profile`, and other names.
diff --git a/docs/dg/dev/sdks/sdk/value-resolvers.md b/docs/dg/dev/sdks/sdk/value-resolvers.md
index cbe759204ce..7c451b6ce2e 100644
--- a/docs/dg/dev/sdks/sdk/value-resolvers.md
+++ b/docs/dg/dev/sdks/sdk/value-resolvers.md
@@ -1,6 +1,6 @@
---
title: Value resolvers
-description: Spryker SDK has several value resolvers described in this document.
+description: Learn about Spryker SDK and its several value resolvers described in this document for your spryker projects.
template: concept-topic-template
redirect_from:
- /docs/sdk/dev/value-resolvers.html
diff --git a/docs/dg/dev/sdks/sdk/vcs-connector.md b/docs/dg/dev/sdks/sdk/vcs-connector.md
index 938de0884b6..2cf388c879a 100644
--- a/docs/dg/dev/sdks/sdk/vcs-connector.md
+++ b/docs/dg/dev/sdks/sdk/vcs-connector.md
@@ -1,6 +1,6 @@
---
title: VCS connector
-description: The VCS connector feature for the Spryker SDK.
+description: A quick guide to learn everyting you need to know about the VCS connector feature for the Spryker SDK.
template: concept-topic-template
redirect_from:
- /docs/sdk/dev/vcs.html
diff --git a/docs/dg/dev/sdks/the-docker-sdk/choosing-a-mount-mode.md b/docs/dg/dev/sdks/the-docker-sdk/choosing-a-mount-mode.md
index ac692374c4a..4c9881c0ba6 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/choosing-a-mount-mode.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/choosing-a-mount-mode.md
@@ -1,6 +1,6 @@
---
title: Choosing a mount mode
-description: Learn about supported mount modes and how to choose one.
+description: Learn about supported mount modes and how to choose one depending of your operating system for your Spryker Project.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/choosing-a-mount-mode
diff --git a/docs/dg/dev/sdks/the-docker-sdk/configure-a-mount-mode.md b/docs/dg/dev/sdks/the-docker-sdk/configure-a-mount-mode.md
index ab7ffa6e48c..cf52d4f1550 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/configure-a-mount-mode.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/configure-a-mount-mode.md
@@ -1,6 +1,6 @@
---
title: Configure a mount mode
-description: Learn how to configure a mount mode.
+description: Learn about supported mount modes and how to configure one depending of your operating system for your Spryker Project.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/configuring-a-mount-mode
diff --git a/docs/dg/dev/sdks/the-docker-sdk/configure-access-to-private-repositories.md b/docs/dg/dev/sdks/the-docker-sdk/configure-access-to-private-repositories.md
index 5247e2276b0..766d19cee9b 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/configure-access-to-private-repositories.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/configure-access-to-private-repositories.md
@@ -1,6 +1,6 @@
---
title: Configure access to private repositories
-description: Configure your local environment to access private repositories.
+description: Learn how to configure your local environment to access private repositories for your Spryker project.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/configuring-access-to-private-repositories
diff --git a/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file-inheritance-common-use-cases.md b/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file-inheritance-common-use-cases.md
index c46f86716a3..7a716ac8c87 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file-inheritance-common-use-cases.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file-inheritance-common-use-cases.md
@@ -1,6 +1,6 @@
---
title: "Deploy file inheritance: common use cases"
-description: Examples of using deploy file inheritance
+description: Learn about common use cases for deploy file inheritance and how you can enhance your Spryker projects.
template: concept-topic-template
last_updated: Nov 21, 2023
related:
diff --git a/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file-reference.md b/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file-reference.md
index 5657678d30f..e4561fe1c3c 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file-reference.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file-reference.md
@@ -345,7 +345,7 @@ image:
Defines PHP settings.
{% info_block warningBox "Memory Limits" %}
-Please note that the maximum recommended PHP memory limit is 2048M. Going above this limit is rarely necessary and can lead to stability and performance issues in your environment. Test any configuration change carefully in a non-production setting.
+Please note that the maximum recommended PHP memory limit's 2048M. Going above this limit's rarely necessary and can lead to stability and performance issues in your environment. Test any configuration change carefully in a non-production setting.
{% endinfo_block %}
@@ -852,7 +852,7 @@ Defines the composer settings to be used during deployment.
## Services
You can configure and use external tools that are shipped with Spryker in Docker as services.
-If a service has a dedicated configuration, it is configured and run when the current environment is set up and executed.
+If a service has a dedicated configuration, it's configured and run when the current environment is set up and executed.
The following services are supported:
diff --git a/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file.md b/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file.md
index 0300d1e951f..e541b1247f2 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/deploy-file/deploy-file.md
@@ -1,6 +1,6 @@
---
title: Deploy file
-description: Overview of the deploy file
+description: Learn about the Spryker Deploy yaml file and how it works to deploy your Spryker environment.
template: concept-topic-template
last_updated: Nov 21, 2023
related:
@@ -174,7 +174,7 @@ Deploy files are merged in the following order:
## Parameter inheritance
-When merging deploy files, the deploy file builder skips each duplicate parameter that was present in the previous parsed deploy files. For example, in `deploy.dev.yml`, memory limit is defined as follows:
+When merging deploy files, the deploy file builder skips each duplicate parameter that was present in the previous parsed deploy files. For example, in `deploy.dev.yml`, memory limit's defined as follows:
```yaml
image:
@@ -184,7 +184,7 @@ image:
memory_limit: 2048M
```
-And, in `./spryker/generator/deploy-file-generator/templates/services.deploy.template.yml`, the memory limit is defined as follows:
+And, in `./spryker/generator/deploy-file-generator/templates/services.deploy.template.yml`, the memory limit's defined as follows:
```yaml
image:
diff --git a/docs/dg/dev/sdks/the-docker-sdk/docker-environment-infrastructure.md b/docs/dg/dev/sdks/the-docker-sdk/docker-environment-infrastructure.md
index 5bf14361a59..6e44a77f270 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/docker-environment-infrastructure.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/docker-environment-infrastructure.md
@@ -1,5 +1,6 @@
---
title: Docker environment infrastructure
+description: Learn all about the infrastructure of Spryker in a Docker environment for your Spryker baed projects.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/docker-environment-infrastructure
diff --git a/docs/dg/dev/sdks/the-docker-sdk/docker-sdk-configuration-reference.md b/docs/dg/dev/sdks/the-docker-sdk/docker-sdk-configuration-reference.md
index d9916e12a35..af94582a188 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/docker-sdk-configuration-reference.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/docker-sdk-configuration-reference.md
@@ -1,6 +1,6 @@
---
title: Docker SDK configuration reference
-description: Instructions for the most common configuration cases of the Docker SDK.
+description: A guide with instructions for the most common configuration cases of the Docker SDK for Spryker based projects.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/docker-sdk-configuration-reference
diff --git a/docs/dg/dev/sdks/the-docker-sdk/docker-sdk-quick-start-guide.md b/docs/dg/dev/sdks/the-docker-sdk/docker-sdk-quick-start-guide.md
index 67e1e9883c3..cbe5f8dbbfa 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/docker-sdk-quick-start-guide.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/docker-sdk-quick-start-guide.md
@@ -1,6 +1,6 @@
---
title: Docker SDK quick start guide
-description: Get started with Spryker Docker SDK.
+description: Get up and running quickly with this Quick start guide for Docker SDK for your Spryker projects.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/docker-sdk-quick-start-guide
diff --git a/docs/dg/dev/sdks/the-docker-sdk/installation-recipes-of-deployment-pipelines.md b/docs/dg/dev/sdks/the-docker-sdk/installation-recipes-of-deployment-pipelines.md
index 8234476ea51..840f314fc9d 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/installation-recipes-of-deployment-pipelines.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/installation-recipes-of-deployment-pipelines.md
@@ -1,6 +1,6 @@
---
title: Installation recipes of deployment pipelines
-description: Installation recipe commands and file structure.
+description: Learn all about the Spryker Installation recipes of your deployment pipelines for your spryker based projects.
last_updated: Nov 29, 2022
template: howto-guide-template
redirect_from:
diff --git a/docs/dg/dev/sdks/the-docker-sdk/reset-docker-environments.md b/docs/dg/dev/sdks/the-docker-sdk/reset-docker-environments.md
index cfa8cfa03e2..4645af7983d 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/reset-docker-environments.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/reset-docker-environments.md
@@ -1,6 +1,6 @@
---
title: Reset Docker environments
-description: Learn how to restart your Spryker in Docker from scratch.
+description: Learn how to restart and reset your docker environments to start from scratch for your Spryker projects.
last_updated: Jun 18, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/howto-reset-a-docker-environment
diff --git a/docs/dg/dev/sdks/the-docker-sdk/running-commands-with-the-docker-sdk.md b/docs/dg/dev/sdks/the-docker-sdk/running-commands-with-the-docker-sdk.md
index 94a5fab4bc8..7ca9efbd34f 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/running-commands-with-the-docker-sdk.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/running-commands-with-the-docker-sdk.md
@@ -1,6 +1,6 @@
---
title: Running commands with the Docker SDK
-description: How to use Docker SDK command line interface.
+description: Learn how to use Docker SDK command line interface to run commands for your Spryker based project.
last_updated: Jan 16, 2024
template: howto-guide-template
---
diff --git a/docs/dg/dev/sdks/the-docker-sdk/running-tests-with-the-docker-sdk.md b/docs/dg/dev/sdks/the-docker-sdk/running-tests-with-the-docker-sdk.md
index d4092b24502..9774e3942c5 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/running-tests-with-the-docker-sdk.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/running-tests-with-the-docker-sdk.md
@@ -1,6 +1,6 @@
---
title: Running tests with the Docker SDK
-description: Learn how to run tests with the Docker SDK.
+description: Learn how you can run tests in different ways with the Docker SDK for your Spryker based projects.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/running-tests-with-the-docker-sdk
diff --git a/docs/dg/dev/sdks/the-docker-sdk/update-the-docker-sdk.md b/docs/dg/dev/sdks/the-docker-sdk/update-the-docker-sdk.md
index 708dc07eff6..5c3f9f45b4a 100644
--- a/docs/dg/dev/sdks/the-docker-sdk/update-the-docker-sdk.md
+++ b/docs/dg/dev/sdks/the-docker-sdk/update-the-docker-sdk.md
@@ -1,5 +1,6 @@
---
title: Update the Docker SDK
+description: Learn how you can update the Docker SDK to a newer version depending on the installation of your Spryker instance.
last_updated: Jun 1, 2024
template: howto-guide-template
diff --git a/docs/dg/dev/set-up-spryker-locally/configure-after-installing/configure-debugging/configure-debugging.md b/docs/dg/dev/set-up-spryker-locally/configure-after-installing/configure-debugging/configure-debugging.md
index c41ad7e1174..c968a0167b1 100644
--- a/docs/dg/dev/set-up-spryker-locally/configure-after-installing/configure-debugging/configure-debugging.md
+++ b/docs/dg/dev/set-up-spryker-locally/configure-after-installing/configure-debugging/configure-debugging.md
@@ -1,6 +1,6 @@
---
title: Configure debugging
-description: Learn how to configure debugging in Docker.
+description: Learn how you can configure debugging in Docker for your Local environment Spryker based projects.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/configuring-debugging-in-docker
diff --git a/docs/dg/dev/set-up-spryker-locally/configure-after-installing/configure-debugging/set-up-xdebug-profiling.md b/docs/dg/dev/set-up-spryker-locally/configure-after-installing/configure-debugging/set-up-xdebug-profiling.md
index 6fae5b410cb..01a12b5d7db 100644
--- a/docs/dg/dev/set-up-spryker-locally/configure-after-installing/configure-debugging/set-up-xdebug-profiling.md
+++ b/docs/dg/dev/set-up-spryker-locally/configure-after-installing/configure-debugging/set-up-xdebug-profiling.md
@@ -1,6 +1,6 @@
---
title: Set up XDebug profiling
-description: Learn how to setup XDebug profiling in a local development environment.
+description: Learn how to setup XDebug profiling in a local development environment for your Spryker based projects.
template: howto-guide-templatel
redirect_from:
- /docs/scos/dev/tutorials-and-howtos/howtos/howto-setup-xdebug-profiling.html
diff --git a/docs/dg/dev/set-up-spryker-locally/configure-after-installing/configure-spryker-after-installing.md b/docs/dg/dev/set-up-spryker-locally/configure-after-installing/configure-spryker-after-installing.md
index 812963b736f..45cb1d9e66e 100644
--- a/docs/dg/dev/set-up-spryker-locally/configure-after-installing/configure-spryker-after-installing.md
+++ b/docs/dg/dev/set-up-spryker-locally/configure-after-installing/configure-spryker-after-installing.md
@@ -1,6 +1,6 @@
---
title: Configure Spryker after installing
-description: Instructions for Configure Spryker after installing it with Docker
+description: Learn with these instructions to Configure Spryker Local environments after installing it with Docker
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/post-installation-steps-and-additional-info
@@ -15,7 +15,7 @@ redirect_from:
- /docs/scos/dev/set-up-spryker-locally/installing-spryker-with-development-virtual-machine/configuring-spryker-with-devvm/updating-node.js-in-devvm-to-the-latest-version.html
related:
- title: Set up a self-signed SSL certificate
- link: docs/scos/dev/set-up-spryker-locally/configure-after-installing/set-up-a-self-signed-ssl-certificate.html
+ link: docs/dg/dev/set-up-spryker-locally/configure-after-installing/set-up-a-self-signed-ssl-certificate.html
---
This document describes how to configure Spryker after installing it.
diff --git a/docs/dg/dev/set-up-spryker-locally/database-access-credentials.md b/docs/dg/dev/set-up-spryker-locally/database-access-credentials.md
index 3d2b7517551..2a6ff5e26c0 100644
--- a/docs/dg/dev/set-up-spryker-locally/database-access-credentials.md
+++ b/docs/dg/dev/set-up-spryker-locally/database-access-credentials.md
@@ -1,6 +1,6 @@
---
title: Database access credentials
-description: Database access credentials for MariaDB, MySQL, and PostgreSQL.
+description: Learn how to find Database access credentials for MariaDB, MySQL, and PostgreSQL for your Local Spryker Environments.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/database-access-credentials
diff --git a/docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-windows-with-wsl1.md b/docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-windows-with-wsl1.md
index 94686616c51..5b4186f723d 100644
--- a/docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-windows-with-wsl1.md
+++ b/docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-windows-with-wsl1.md
@@ -1,6 +1,6 @@
---
title: Install Docker prerequisites on Windows with WSL1
-description: This page describes the steps that are to be performed before you can start working with Spryker in Docker on Windows.
+description: This page describes the steps that are to be performed before you can start working with Spryker in Docker on Windows with WSL1.
template: howto-guide-template
last_updated: Jul 5, 2023
originalLink: https://documentation.spryker.com/v5/docs/docker-installation-prerequisites-windows
@@ -10,11 +10,11 @@ redirect_from:
related:
- title: Install Docker prerequisites on Linux
- link: docs/scos/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-linux.html
+ link: docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-linux.html
- title: Install Docker prerequisites on MacOS
- link: docs/scos/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-macos.html
+ link: docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-macos.html
- title: Install Docker prerequisites on Windows with WSL2
- link: docs/scos/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-windows-with-wsl2.html
+ link: docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-windows-with-wsl2.html
---
This document describes the prerequisites for installing Spryker on Windows.
diff --git a/docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-windows-with-wsl2.md b/docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-windows-with-wsl2.md
index af3f978704e..7ec50e589d6 100644
--- a/docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-windows-with-wsl2.md
+++ b/docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-windows-with-wsl2.md
@@ -1,6 +1,6 @@
---
title: Install Docker prerequisites on Windows with WSL2
-description: This page describes the steps that are to be performed before you can start working with Spryker in Docker on Windows.
+description: This page describes the steps that are to be performed before you can start working with Spryker in Docker on Windows with WSL2.
last_updated: Oct 21, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/installing-docker-prerequisites-on-windows
@@ -11,11 +11,11 @@ redirect_from:
- /docs/scos/dev/setup/installing-spryker-with-docker/docker-installation-prerequisites/installing-docker-prerequisites-on-windows-with-wsl2.html
related:
- title: Install Docker prerequisites on Linux
- link: docs/scos/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-linux.html
+ link: docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-linux.html
- title: Install Docker prerequisites on MacOS
- link: docs/scos/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-macos.html
+ link: docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-macos.html
- title: Install Docker prerequisites on Windows with WSL1
- link: docs/scos/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-windows-with-wsl1.html
+ link: docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites-on-windows-with-wsl1.html
---
This document describes the prerequisites for installing Spryker on Windows.
diff --git a/docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites.md b/docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites.md
index c64ab92dfa1..3f4e24244cd 100644
--- a/docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites.md
+++ b/docs/dg/dev/set-up-spryker-locally/install-spryker/install-docker-prerequisites/install-docker-prerequisites.md
@@ -1,6 +1,6 @@
---
title: Installing Docker prerequisites
-description: This section
+description: Learn about the prerequisites needed for installing Spryker in docker on Linux, MacOS or Windows
last_updated: Mar 30, 2023
template: howto-guide-template
redirect_from:
diff --git a/docs/dg/dev/set-up-spryker-locally/install-spryker/install/choose-an-installation-mode.md b/docs/dg/dev/set-up-spryker-locally/install-spryker/install/choose-an-installation-mode.md
index 2a0d3f903fd..d61c9438dde 100644
--- a/docs/dg/dev/set-up-spryker-locally/install-spryker/install/choose-an-installation-mode.md
+++ b/docs/dg/dev/set-up-spryker-locally/install-spryker/install/choose-an-installation-mode.md
@@ -1,6 +1,6 @@
---
title: Choose an installation mode
-description: Choose an installation mode to install Spryker in.
+description: Learn about choosing between the Development or Demo installation mode when setting up your Spryker Shop in a Local environment.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/choosing-an-installation-mode
@@ -11,7 +11,7 @@ redirect_from:
- /docs/scos/dev/setup/installing-spryker-with-docker/installation-guides/choosing-an-installation-mode.html
related:
- title: Database access credentials
- link: docs/scos/dev/set-up-spryker-locally/set-up-spryker-locally.html
+ link: docs/dg/dev/set-up-spryker-locally/set-up-spryker-locally.html
---
diff --git a/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-demo-mode-on-macos-and-linux.md b/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-demo-mode-on-macos-and-linux.md
index b0cee8a7336..012b34f812c 100644
--- a/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-demo-mode-on-macos-and-linux.md
+++ b/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-demo-mode-on-macos-and-linux.md
@@ -1,6 +1,6 @@
---
title: Install in Demo mode on MacOS and Linux
-description: Learn how to install Spryker in Demo mode on MacOS and Linux.
+description: Learn how you can install Spryker in Demo mode on MacOS and Linux in a local environment.
last_updated: Jul 5, 2022
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/installing-in-demo-mode-on-macos-and-linux
@@ -10,7 +10,7 @@ redirect_from:
- /docs/scos/dev/setup/installing-spryker-with-docker/installation-guides/installing-in-demo-mode-on-macos-and-linux.html
related:
- title: Database access credentials
- link: docs/scos/dev/set-up-spryker-locally/set-up-spryker-locally.html
+ link: docs/dg/dev/set-up-spryker-locally/set-up-spryker-locally.html
---
{% info_block infoBox "" %}
diff --git a/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-demo-mode-on-windows.md b/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-demo-mode-on-windows.md
index 1aa281ea1eb..6bae8e30597 100644
--- a/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-demo-mode-on-windows.md
+++ b/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-demo-mode-on-windows.md
@@ -1,6 +1,6 @@
---
title: Install in Demo mode on Windows
-description: Learn how to install Spryker in Demo mode on Windows.
+description: Learn how you can install and configure Spryker in Demo mode on Windows in a local environment.
last_updated: Oct 21, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/installing-in-demo-mode-on-windows
@@ -10,7 +10,7 @@ redirect_from:
- /docs/scos/dev/setup/installing-spryker-with-docker/installation-guides/installing-in-demo-mode-on-windows.html
related:
- title: Database access credentials
- link: docs/scos/dev/set-up-spryker-locally/set-up-spryker-locally.html
+ link: docs/dg/dev/set-up-spryker-locally/set-up-spryker-locally.html
---
This doc describes how to install Spryker in [Demo Mode](/docs/dg/dev/set-up-spryker-locally/install-spryker/install/choose-an-installation-mode.html#demo-mode) on Windows.
diff --git a/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-development-mode-on-macos-and-linux.md b/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-development-mode-on-macos-and-linux.md
index c9bf7ecc4c9..e190ec546f6 100644
--- a/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-development-mode-on-macos-and-linux.md
+++ b/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-development-mode-on-macos-and-linux.md
@@ -1,6 +1,6 @@
---
title: Install in Development mode on MacOS and Linux
-description: Learn how to install Spryker in Development mode on MacOS and Linux.
+description: Learn how to install and configure Spryker in Development mode on MacOS and Linux in a local environment.
last_updated: Oct 21, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/installing-in-development-mode-on-macos-and-linux
@@ -15,7 +15,7 @@ redirect_from:
- /docs/scos/dev/setup/installing-spryker-with-docker/installation-guides/installing-in-development-mode-on-macos-and-linux.html
related:
- title: Database access credentials
- link: docs/scos/dev/set-up-spryker-locally/set-up-spryker-locally.html
+ link: docs/dg/dev/set-up-spryker-locally/set-up-spryker-locally.html
---
{% info_block infoBox "Info" %}
diff --git a/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-development-mode-on-windows.md b/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-development-mode-on-windows.md
index 485307de613..cb8247190f4 100644
--- a/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-development-mode-on-windows.md
+++ b/docs/dg/dev/set-up-spryker-locally/install-spryker/install/install-in-development-mode-on-windows.md
@@ -1,6 +1,6 @@
---
title: Install in Development mode on Windows
-description: Learn how to install Spryker in Development mode on Windows.
+description: Learn how to install and configure Spryker in Development mode on Windows in a local environment.
last_updated: Oct 21, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/installing-in-development-mode-on-windows
@@ -11,7 +11,7 @@ redirect_from:
- /docs/scos/dev/setup/installing-spryker-with-docker/installation-guides/installing-in-development-mode-on-windows.html
related:
- title: Database access credentials
- link: docs/scos/dev/set-up-spryker-locally/set-up-spryker-locally.html
+ link: docs/dg/dev/set-up-spryker-locally/set-up-spryker-locally.html
---
diff --git a/docs/dg/dev/set-up-spryker-locally/manage-dependencies-with-composer.md b/docs/dg/dev/set-up-spryker-locally/manage-dependencies-with-composer.md
index 2bb8fa85af0..318b0b61eb7 100644
--- a/docs/dg/dev/set-up-spryker-locally/manage-dependencies-with-composer.md
+++ b/docs/dg/dev/set-up-spryker-locally/manage-dependencies-with-composer.md
@@ -1,6 +1,6 @@
---
title: Manage dependencies with Composer
-description: Spryker Cloud Commerce OS uses Composer as a dependency manager.
+description: Spryker Cloud Commerce OS uses Composer as a dependency manager this guide helps you learn how to manage those dependencies with your Local Spryker Environement.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/composer
@@ -44,7 +44,7 @@ SCCOS consists of a number of independent components. Each of them has a dedicat
You can check the current `composer.json` file in the corresponding [repository of the Cart module](https://github.com/spryker/cart).
-In the project level `composer.json` file you can specify the components that you want to use along with their versions like it is done in the [Spryker Commerce OS](https://github.com/spryker-shop/suite ):
+In the project level `composer.json` file you can specify the components that you want to use along with their versions like it's done in the [Spryker Commerce OS](https://github.com/spryker-shop/suite ):
```php
...
@@ -133,7 +133,7 @@ For each module that you want to add:
1. Name or rename the new module by using the old module’s name and prefixing it with `replace_`. For example, create a dummy file called `replace_refund` to replace the refund module. This will help to keep track of any replaces you do in the project.
2. In the newly created dummy module directory, create an empty `composer.json` file and add the following Composer Configuration Information.
3. Add the newly created module to your project’s `composer.json` file by going into your project’s `composer.json` and adding the new location.
- 4. Check if the core module is in your project’s `composer.json` file and if it is, remove it.
+ 4. Check if the core module is in your project’s `composer.json` file and if it's, remove it.
* Execute composer update with the replace module name:
diff --git a/docs/dg/dev/set-up-spryker-locally/quickstart-guides-install-spryker/quickstart-guide-install-spryker-on-macos-and-linux.md b/docs/dg/dev/set-up-spryker-locally/quickstart-guides-install-spryker/quickstart-guide-install-spryker-on-macos-and-linux.md
index 4550a519fc4..04114c61278 100644
--- a/docs/dg/dev/set-up-spryker-locally/quickstart-guides-install-spryker/quickstart-guide-install-spryker-on-macos-and-linux.md
+++ b/docs/dg/dev/set-up-spryker-locally/quickstart-guides-install-spryker/quickstart-guide-install-spryker-on-macos-and-linux.md
@@ -1,6 +1,6 @@
---
title: "Quickstart guide: Install Spryker on MacOS and Linux"
-description: Get started with Spryker on MacOS and Linux
+description: A quickstart guide to get you up and running installing Spryker in a local environment on MacOS and Linux.
last_updated: Feb 3, 2022
template: howto-guide-template
redirect_from:
diff --git a/docs/dg/dev/set-up-spryker-locally/quickstart-guides-install-spryker/quickstart-guide-install-spryker-on-windows.md b/docs/dg/dev/set-up-spryker-locally/quickstart-guides-install-spryker/quickstart-guide-install-spryker-on-windows.md
index 4f0667118a4..ed7db5c7de7 100644
--- a/docs/dg/dev/set-up-spryker-locally/quickstart-guides-install-spryker/quickstart-guide-install-spryker-on-windows.md
+++ b/docs/dg/dev/set-up-spryker-locally/quickstart-guides-install-spryker/quickstart-guide-install-spryker-on-windows.md
@@ -1,6 +1,6 @@
---
title: "Quickstart guide: Install Spryker on Windows"
-description: Get started with Spryker using Docker on Windows
+description: A quickstart guide to get you up and running installing Spryker in a local environment on Windows.
last_updated: Feb 03, 2023
template: howto-guide-template
redirect_from:
diff --git a/docs/dg/dev/set-up-spryker-locally/quickstart-guides-install-spryker/quickstart-guides-install-spryker.md b/docs/dg/dev/set-up-spryker-locally/quickstart-guides-install-spryker/quickstart-guides-install-spryker.md
index 1a305177be2..97a9cc52e28 100644
--- a/docs/dg/dev/set-up-spryker-locally/quickstart-guides-install-spryker/quickstart-guides-install-spryker.md
+++ b/docs/dg/dev/set-up-spryker-locally/quickstart-guides-install-spryker/quickstart-guides-install-spryker.md
@@ -1,6 +1,6 @@
---
title: "Quickstart guides: Install Spryker"
-description: Quick install Spryker B2B, B2C, Marketplace B2B, Marketplace B2C
+description: Get up and running quickly with these Quickstart guides on how to install Spryker B2B, B2C, Marketplace B2B, Marketplace B2C in a local environment.
last_updated: Feb 3, 2023
template: concept-topic-template
redirect_from:
diff --git a/docs/dg/dev/set-up-spryker-locally/set-up-spryker-locally.md b/docs/dg/dev/set-up-spryker-locally/set-up-spryker-locally.md
index c9ba4ee25c1..26d6d61821a 100644
--- a/docs/dg/dev/set-up-spryker-locally/set-up-spryker-locally.md
+++ b/docs/dg/dev/set-up-spryker-locally/set-up-spryker-locally.md
@@ -1,6 +1,6 @@
---
title: Set up Spryker locally
-description: Set up Spryker Cloud Commerce OS locally
+description: Learn how you can set up Spryker Cloud Commerce OS in to a local enviroment for Demos, development and experimentation purposes.
template: concept-topic-template
last_updated: Jun 23, 2023
redirect_from:
diff --git a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.md b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.md
index 54c6acaf62c..cbb1980c884 100644
--- a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.md
+++ b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.md
@@ -1,6 +1,6 @@
---
title: An error during front end setup
-description: Learn how to fix the error error during front end setup
+description: Learn how to troubleshoot and resolve an error during front end setup with your Spryker local environment.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/an-error-during-front-end-setup
@@ -10,19 +10,19 @@ redirect_from:
- /docs/scos/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-docker-installation/an-error-during-front-end-setup.html
related:
- title: Demo data was imported incorrectly
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
- title: Docker daemon is not running
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
- title: docker-sync cannot start
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
- title: Error 403 No valid crumb was included in the request
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
- title: Node Sass does not yet support your current environment
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
- title: Setup of new indexes throws an exception
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
- title: Vendor folder synchronization error
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
---
## Description
diff --git a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.md b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.md
index 99588009967..6d2e5980104 100644
--- a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.md
+++ b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.md
@@ -1,6 +1,6 @@
---
title: Demo data was imported incorrectly
-description: Learn how to fix the issue when demo data was imported incorrectly
+description: Learn how to troubleshoot and resolve the error Demo data was importer incorrectly with your Spryker local environment.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/demo-data-was-imported-incorrectly
@@ -10,19 +10,19 @@ redirect_from:
- /docs/scos/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-docker-installation/demo-data-was-imported-incorrectly.html
related:
- title: An error during front end setups
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
- title: Docker daemon is not running
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
- title: docker-sync cannot start
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
- title: Error 403 No valid crumb was included in the request
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
- title: Node Sass does not yet support your current environment
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
- title: Setup of new indexes throws an exception
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
- title: Vendor folder synchronization error
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
---
## Description
diff --git a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.md b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.md
index 738ae11317f..c1fd694cb52 100644
--- a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.md
+++ b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.md
@@ -1,6 +1,6 @@
---
title: Docker daemon is not running
-description: Learn how to fix the issue when the Docker daemon is not running
+description: Learn how to troubleshoot and resolve the error docker daemon is not running with your Spryker local environment.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/docker-daemon-is-not-running
@@ -10,19 +10,19 @@ redirect_from:
- /docs/scos/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-docker-installation/docker-daemon-is-not-running.html
related:
- title: An error during front end setups
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
- title: Demo data was imported incorrectly
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
- title: docker-sync cannot start
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
- title: Error 403 No valid crumb was included in the request
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
- title: Node Sass does not yet support your current environment
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
- title: Setup of new indexes throws an exception
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
- title: Vendor folder synchronization error
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
---
## Description
diff --git a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.md b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.md
index 11a8ccacc88..2d0282138fc 100644
--- a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.md
+++ b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.md
@@ -1,6 +1,6 @@
---
title: docker-sync cannot start
-description: Learn how to fix the issue with docker-sync not starting
+description: Learn how to troubleshoot and resolve the error docker-sync cannot start with your Spryker local environment.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/docker-sync-cannot-start
@@ -10,19 +10,19 @@ redirect_from:
- /docs/scos/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-docker-installation/docker-sync-cannot-start.html
related:
- title: An error during front end setups
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
- title: Demo data was imported incorrectly
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
- title: Docker daemon is not running
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
- title: Error 403 No valid crumb was included in the request
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
- title: Node Sass does not yet support your current environment
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
- title: Setup of new indexes throws an exception
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
- title: Vendor folder synchronization error
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
---
When running `docker-sync clean`, you might get two errors as described below.
diff --git a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.md b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.md
index 151316953a9..d3c76538fc0 100644
--- a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.md
+++ b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.md
@@ -1,6 +1,6 @@
---
title: Error 403 No valid crumb was included in the request
-description: Learn how to fix the issue with no valid crumbs provided.
+description: Learn how to troubleshoot and resolve the error 403 No valid crumb was included in the request within your Spryker local environment.
last_updated: May 4, 2022
template: troubleshooting-guide-template
redirect_from:
@@ -9,19 +9,19 @@ redirect_from:
related:
- title: An error during front end setups
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
- title: Demo data was imported incorrectly
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
- title: Docker daemon is not running
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
- title: docker-sync cannot start
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
- title: Node Sass does not yet support your current environment
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
- title: Setup of new indexes throws an exception
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
- title: Vendor folder synchronization error
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
---
diff --git a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.md b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.md
index 3c9d65afee1..13e9ce5676a 100644
--- a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.md
+++ b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.md
@@ -1,6 +1,6 @@
---
title: Node Sass does not yet support your current environment
-description: Learn how to fix the issue with unsupported Saas
+description: Learn how to troubleshoot and resolve the issue of unsupported Sass within your Spryker local environment.
last_updated: May 4, 2022
template: troubleshooting-guide-template
redirect_from:
@@ -9,19 +9,19 @@ redirect_from:
related:
- title: An error during front end setups
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
- title: Demo data was imported incorrectly
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
- title: Docker daemon is not running
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
- title: docker-sync cannot start
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
- title: Error 403 No valid crumb was included in the request
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
- title: Setup of new indexes throws an exception
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
- title: Vendor folder synchronization error
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
---
You get the error: `Node Sass does not yet support your current environment: Linux Unsupported architecture (arm64) with Node.js`.
diff --git a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.md b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.md
index a20c71ad577..4cf7add2f17 100644
--- a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.md
+++ b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.md
@@ -1,6 +1,6 @@
---
title: Setup of new indexes throws an exception
-description: Learn how to fix the issue when setup of new indexes throws an exception
+description: Learn how to troubleshoot and resolve when setup of new indexes throws an exception within your Spryker local environment.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/setup-of-new-indexes-throws-an-exception
@@ -11,19 +11,19 @@ redirect_from:
- /docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
related:
- title: An error during front end setups
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
- title: Demo data was imported incorrectly
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
- title: Docker daemon is not running
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
- title: docker-sync cannot start
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
- title: Error 403 No valid crumb was included in the request
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
- title: Node Sass does not yet support your current environment
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
- title: Vendor folder synchronization error
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.html
---
## Description
diff --git a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/troubleshooting-installation.md b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/troubleshooting-installation.md
index 4118d383bfa..7b677e51ee6 100644
--- a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/troubleshooting-installation.md
+++ b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/troubleshooting-installation.md
@@ -1,6 +1,6 @@
---
title: Troubleshooting installation
-description: Troubleshoot installation issues.
+description: Learn how you can troubleshoot issues that occur during installing Spryker to a local environment.
last_updated: Jun 16, 2023
template: troubleshooting-guide-template
redirect_from:
diff --git a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.md b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.md
index 2a22b96333f..3e4813e02e8 100644
--- a/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.md
+++ b/docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/vendor-folder-synchronization-error.md
@@ -1,6 +1,6 @@
---
title: Vendor folder synchronization error
-description: Learn how to fix the vendor folder synchronization error
+description: Learn how you can troubleshoot and resolve the Vendor Folder Synchronization Error within your Spryker local environment.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/vendor-folder-synchronization-error
@@ -10,19 +10,19 @@ redirect_from:
- /docs/scos/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-docker-installation/vendor-folder-synchronization-error.html
related:
- title: An error during front end setups
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/an-error-during-front-end-setup.html
- title: Demo data was imported incorrectly
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/demo-data-was-imported-incorrectly.html
- title: Docker daemon is not running
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-daemon-is-not-running.html
- title: docker-sync cannot start
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/docker-sync-cannot-start.html
- title: Error 403 No valid crumb was included in the request
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/error-403-no-valid-crumb-was-included-in-the-request.html
- title: Node Sass does not yet support your current environment
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/node-saas-does-not-yet-support-your-current-environment.html
- title: Setup of new indexes throws an exception
- link: docs/scos/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
+ link: docs/dg/dev/set-up-spryker-locally/troubleshooting-installation/setup-of-new-indexes-throws-an-exception.html
---
You get an error similar to `vendor/bin/console: not found`.
diff --git a/docs/dg/dev/supported-versions-of-php.md b/docs/dg/dev/supported-versions-of-php.md
index 011f76b0151..041221bbf9f 100644
--- a/docs/dg/dev/supported-versions-of-php.md
+++ b/docs/dg/dev/supported-versions-of-php.md
@@ -29,7 +29,7 @@ Before switching PHP versions in production environments, ensure to check this n
{% info_block infoBox "Info" %}
-PHP 8.2+ is a hard requirement from December 2023 due to the modules being PHP 8.2+.
+PHP 8.2+ is a hard requirement from December 2023 because of the modules being PHP 8.2+.
{% endinfo_block %}
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-debugging-in-docker/nc-command-does-not-give-any-output.md b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-debugging-in-docker/nc-command-does-not-give-any-output.md
index bc5785b31ae..0a94d67b285 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-debugging-in-docker/nc-command-does-not-give-any-output.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-debugging-in-docker/nc-command-does-not-give-any-output.md
@@ -1,6 +1,6 @@
---
title: nc command does not give any output
-description: If the nc command does not give any output, contact us
+description: Learn what to do if the nc Command does not give any output when troubleshooting your Spryker project.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/nc-command-does-not-give-any-output
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-debugging-in-docker/nc-command-tells-that-the-port-is-opened.md b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-debugging-in-docker/nc-command-tells-that-the-port-is-opened.md
index 6173012c602..3a1632c71ee 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-debugging-in-docker/nc-command-tells-that-the-port-is-opened.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-debugging-in-docker/nc-command-tells-that-the-port-is-opened.md
@@ -1,6 +1,6 @@
---
title: nc command tells that the port is opened
-description: Learn how to fix the issue when nc command tells that the port is opened
+description: Learn how to fix the issue when nc command tells that the port is opened when troubleshooting your Spryker project.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/nc-command-tells-that-the-port-is-opened
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-debugging-in-docker/xdebug-does-not-work.md b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-debugging-in-docker/xdebug-does-not-work.md
index 7610ff95d0c..5b68d2f1e9a 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-debugging-in-docker/xdebug-does-not-work.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-debugging-in-docker/xdebug-does-not-work.md
@@ -1,6 +1,6 @@
---
title: Xdebug does not work
-description: Learn how to fix the issue with a non-working Xdebug
+description: Learn how to fix the issue with a non-working Xdebug when troubleshooting your Spryker project.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/xdebug-does-not-work
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/413-request-entity-too-large.md b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/413-request-entity-too-large.md
index 8526bf0b99b..736db4e3c3f 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/413-request-entity-too-large.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/413-request-entity-too-large.md
@@ -1,6 +1,6 @@
---
title: 413 Request Entity Too Large
-description: Learn how to fix the issue 413 Request Entity Too Large
+description: Learn how to fix the issue 413 Request Entity Too Large when running your applications in docker with your Spryker projects.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/413-request-entity-too-large
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/an-application-is-not-reachable-via-http.md b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/an-application-is-not-reachable-via-http.md
index bc4e0c790e8..763a52cae20 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/an-application-is-not-reachable-via-http.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/an-application-is-not-reachable-via-http.md
@@ -1,6 +1,6 @@
---
title: An application is not reachable via http
-description: Learn how to fix the issue when an application is not reachable via http
+description: Learn how to fix the issue when an application is not reachable via http when running your applications in docker with your Spryker projects.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/an-application-is-not-reachable-via-http
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/mutagen-error.md b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/mutagen-error.md
index ea25c56b358..67200137d21 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/mutagen-error.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/mutagen-error.md
@@ -1,6 +1,6 @@
---
title: Mutagen error
-description: Learn how to fix the Mutagen error
+description: Learn how to fix the Mutagen error when running applications in docker with your Spryker projects.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/mutagen-error
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/mutagen-synchronization-issue.md b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/mutagen-synchronization-issue.md
index 5c46dc52725..dc8731607c9 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/mutagen-synchronization-issue.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/mutagen-synchronization-issue.md
@@ -1,6 +1,6 @@
---
title: Mutagen synchronization issue
-description: Learn how to fix the Mutagen synchronization issue
+description: Learn how to fix the Mutagen synchronization issue when running applications in docker with your Spryker projects.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/mutagen-synchronization-issue
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/port-is-already-occupied-on-host.md b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/port-is-already-occupied-on-host.md
index d6d0158eef6..be72cab6db5 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/port-is-already-occupied-on-host.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-docker-issues/troubleshooting-running-applications-in-docker/port-is-already-occupied-on-host.md
@@ -1,6 +1,6 @@
---
title: Port is already occupied on host
-description: Learn how to fix the issue when port is already occupied on host
+description: Learn how to fix the issue when port is already occupied on host when running applications in docker for your Spryker projects.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/port-is-already-occupied-on-host
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/composer-version-2-compatibility-issues.md b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/composer-version-2-compatibility-issues.md
index a4b729c32c6..f05a11808e4 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/composer-version-2-compatibility-issues.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/composer-version-2-compatibility-issues.md
@@ -1,6 +1,6 @@
---
title: Composer version 2 compatibility issues
-description: Learn how to solve Composer version 2 compatibility issues.
+description: Learn how to troubleshoot and solve Composer version 2 compatibility issues within your Spryker based projects.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/composer-version-2-compatibility-issues
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/could-not-resolve-host-zed-calls-are-forbidden-from-zed.md b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/could-not-resolve-host-zed-calls-are-forbidden-from-zed.md
index 63acfe00a61..6f5ad25f981 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/could-not-resolve-host-zed-calls-are-forbidden-from-zed.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/could-not-resolve-host-zed-calls-are-forbidden-from-zed.md
@@ -1,6 +1,6 @@
---
title: Could not resolve host zed.calls.are.forbidden.from.zed
-description: The solution for the zed.calls.are.forbidden.from.zed
+description: The solution to resolve the zed.calls.are.forbidden.from.zed issue within your Spryker based project.
last_updated: Nov 24, 2023
template: troubleshooting-guide-template
related:
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/error-remove-spryker-logs-volume-is-in-use.md b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/error-remove-spryker-logs-volume-is-in-use.md
index 41cc2e7c50a..b2b20a0e92c 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/error-remove-spryker-logs-volume-is-in-use.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/error-remove-spryker-logs-volume-is-in-use.md
@@ -1,6 +1,6 @@
---
title: ERROR- remove spryker_logs- volume is in use
-description: The solution to the `ERROR- remove spryker_logs- volume is in use` error.
+description: Learn how to troubleshoot and the solution to the `ERROR- remove spryker_logs- volume is in use` error within your Spryker projects.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/error-remove-spryker-logs-volume-is-in-use
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/fail-whale-on-the-frontend.md b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/fail-whale-on-the-frontend.md
index 148da5582a8..0f78a907796 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/fail-whale-on-the-frontend.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/fail-whale-on-the-frontend.md
@@ -1,6 +1,6 @@
---
title: Fail whale on the frontend
-description: The solution for the fail whale on the front end.
+description: Learn how to troubleshoot and the solution for the fail whale on the front end within your Spryker based projects.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/fail-whale-on-the-front-end
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/no-data-on-the-storefront.md b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/no-data-on-the-storefront.md
index 1029a1f9f3a..d0e9b473bf3 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/no-data-on-the-storefront.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/no-data-on-the-storefront.md
@@ -1,6 +1,6 @@
---
title: No data on the Storefront
-description: The solution to the data being absent on the Storefront.
+description: A troubleshoot guide for the solution to the data being absent on the Storefront within your Spryker projects.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/no-data-on-the-storefront
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/phpstan-memory-issues.md b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/phpstan-memory-issues.md
index ae022e9d5ae..0d7f21be3ba 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/phpstan-memory-issues.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/phpstan-memory-issues.md
@@ -1,5 +1,6 @@
---
title: PHPStan memory issues
+description: Learn how to troubleshoot and resolve PHPStan memory issues that you may come across in your Spryker based projects.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/phpstan-memory-issues
@@ -10,7 +11,7 @@ redirect_from:
## Cause
-PHPStan needs to parse all files and due to Spryker's magic with resolving classes, e.g., `$this->getFacade()`, PHPStan needs to look up this class on its own when the `@method` annotation is missing.
+PHPStan needs to parse all files and because of Spryker's magic with resolving classes, e.g., `$this->getFacade()`, PHPStan needs to look up this class on its own when the `@method` annotation is missing.
## Solution
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/prices-filter-and-sorting-does-t-work-on-frontend.md b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/prices-filter-and-sorting-does-t-work-on-frontend.md
index cc05794adcf..5a57044b533 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/prices-filter-and-sorting-does-t-work-on-frontend.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/prices-filter-and-sorting-does-t-work-on-frontend.md
@@ -1,6 +1,6 @@
---
title: Prices filter and sorting doesn't work on Frontend
-description: Explanation why these filters might not work.
+description: Learn the explanation to why prices and sorting filters might not work within your Spryker based project.
last_updated: Oct 6, 2023
template: troubleshooting-guide-template
---
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/processtimedoutexception-after-queue-task-start.md b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/processtimedoutexception-after-queue-task-start.md
index fcf25f46c05..16902a54772 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/processtimedoutexception-after-queue-task-start.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/processtimedoutexception-after-queue-task-start.md
@@ -1,6 +1,6 @@
---
title: ProcessTimedOutException after queue-task-start
-description: Learn how to fix the exception after running queue-task-start
+description: Learn how to fix the exception after running queue-task-start within your Spryker based projects.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/processtimedoutexception-after-queuetaskstart
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/the-spy-oms-transition-log-table-takes-up-too-much-space.md b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/the-spy-oms-transition-log-table-takes-up-too-much-space.md
index 9f6af344636..a05f833e311 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/the-spy-oms-transition-log-table-takes-up-too-much-space.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/the-spy-oms-transition-log-table-takes-up-too-much-space.md
@@ -1,6 +1,6 @@
---
title: The spy_oms_transition_log table takes up too much space
-description: Configure transition logs to be removed automatically.
+description: Learn how you can Configure transition logs to be removed automatically within your Spryker projects.
last_updated: Jun 16, 2021
template: troubleshooting-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/the-spy-oms-transition-log-table-takes-up-too-much-space
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/troubleshooting-rabbitmq/troubleshooting-rabbitmq.md b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/troubleshooting-rabbitmq/troubleshooting-rabbitmq.md
index 380f18fec7b..c27405a9e90 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/troubleshooting-rabbitmq/troubleshooting-rabbitmq.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/troubleshooting-rabbitmq/troubleshooting-rabbitmq.md
@@ -1,6 +1,6 @@
---
title: Troubleshooting RabbitMQ
-description: Troubleshoot RabbitMQ issues
+description: Common issues that may occur with RabbitMQ and how to troubleshoot and resolve those issues within you Spryker based project.
template: concept-topic-template
redirect_from:
- /docs/scos/dev/troubleshooting/troubleshooting-general-technical-issues/troubleshooting-rabbitmq/troubleshooting-rabbitmq.html
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/external-calls-several-calls-to-zed.md b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/external-calls-several-calls-to-zed.md
index f54a8a42e7b..21b49fe4678 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/external-calls-several-calls-to-zed.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/external-calls-several-calls-to-zed.md
@@ -1,6 +1,6 @@
---
title: External calls—several calls to Zed
-description: Troubleshoot the performance issue with several external calls to Zed
+description: Troubleshoot the performance issue with several external calls to Zed with your Spryker based project.
template: troubleshooting-guide-template
redirect_from:
- /docs/scos/dev/troubleshooting/troubleshooting-performance-issues/external-calls-several-calls-to-zed.html
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/external-calls-take-a-lot-of-time.md b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/external-calls-take-a-lot-of-time.md
index 4e3b61bae9f..281efaac0cf 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/external-calls-take-a-lot-of-time.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/external-calls-take-a-lot-of-time.md
@@ -1,6 +1,6 @@
---
title: External calls take a lot of time
-description: Troubleshoot the performance issue with external calls taking much time
+description: Learn how to troubleshoot the performance issue with external calls taking much time within your Spryker project.
template: troubleshooting-guide-template
redirect_from:
- /docs/scos/dev/troubleshooting/troubleshooting-performance-issues/external-calls-take-a-lot-of-time.html
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/n+1-problem.md b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/n+1-problem.md
index 535de174f2a..4fc8b4d846c 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/n+1-problem.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/n+1-problem.md
@@ -1,6 +1,6 @@
---
title: N+1 problem
-description: N+1 problem
+description: Learn how to troubleshoot and resolve issues for N+1 problems within your Spryker based projects.
template: troubleshooting-guide-template
redirect_from:
- /docs/scos/dev/troubleshooting/troubleshooting-performance-issues/n+1-problem.html
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/not-optimised-composer-on-the-production-environment.md b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/not-optimised-composer-on-the-production-environment.md
index 36faf18bf51..88fe9ff240b 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/not-optimised-composer-on-the-production-environment.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/not-optimised-composer-on-the-production-environment.md
@@ -1,6 +1,6 @@
---
title: Not optimized Composer on the production environment
-description: Fix the issue when all pages are slow on the production environment
+description: Fix the issue when all pages are slow on the production environment and optimize compose within your Spryker projects.
template: troubleshooting-guide-template
redirect_from:
- /docs/scos/dev/troubleshooting/troubleshooting-performance-issues/not-optimised-composer-on-the-production-environment.html
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/redis-session-lock.md b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/redis-session-lock.md
index 01144dc6b1a..5db78d64fc5 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/redis-session-lock.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/redis-session-lock.md
@@ -141,7 +141,7 @@ $config[SessionConstants::YVES_SESSION_SAVE_HANDLER] = CONDITION ?
SessionRedisConfig::SESSION_HANDLER_REDIS_LOCKING;
```
-In this example, `CONDITION` can be any operation with a boolean result, but it is impostant to keep it quickly executed, not to make a bottleneck from configuration declartion.
+In this example, `CONDITION` can be any operation with a boolean result, but it's impostant to keep it quickly executed, not to make a bottleneck from configuration declartion.
Here's one of the possible examples of a condition:
- `str_contains($_SERVER['HTTP_USER_AGENT'] ?? '', 'Googlebot')` or
- `str_contains($_SERVER['REQUEST_URI'] ?? '', '/some-url')` or
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/slow-publish-and-synchronization.md b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/slow-publish-and-synchronization.md
index 47d8f11f457..0d3e4fe29db 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/slow-publish-and-synchronization.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/slow-publish-and-synchronization.md
@@ -1,6 +1,6 @@
---
title: Slow Publish and Synchronization
-description: Publish and Synchronization is slow on all or some actions.
+description: Learn how to troubelshoot and resolve if Publish and Synchronization is slow on all or some actions for your Spryker projects.
template: troubleshooting-guide-template
last_updated: Feb 23, 2023
redirect_from:
diff --git a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/troubleshooting-performance-issues.md b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/troubleshooting-performance-issues.md
index 6ad0b8d72fa..91401099d5f 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/troubleshooting-performance-issues.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting-performance-issues/troubleshooting-performance-issues.md
@@ -1,6 +1,6 @@
---
title: Troubleshooting performance issues
-description: Learn how you can troubleshoot the most common performance issues
+description: Learn how you can troubleshoot and resolve the most common performance issues within your Spryker based projects
template: concept-topic-template
redirect_from:
- /docs/scos/dev/troubleshooting/troubleshooting-performance-issues/troubleshooting-performance-issues.html
diff --git a/docs/dg/dev/troubleshooting/troubleshooting.md b/docs/dg/dev/troubleshooting/troubleshooting.md
index 160ec562aa5..48d966447c4 100644
--- a/docs/dg/dev/troubleshooting/troubleshooting.md
+++ b/docs/dg/dev/troubleshooting/troubleshooting.md
@@ -1,6 +1,6 @@
---
title: Troubleshooting
-description: Learn how you can fix technical issues with Spryker
+description: Learn how you can troubleshoot and resolve technical issues with your Spryker based project.
template: concept-topic-template
last_updated: Jun 30, 2023
redirect_from:
diff --git a/docs/dg/dev/updating-spryker/feature-or-module-updates.md b/docs/dg/dev/updating-spryker/feature-or-module-updates.md
index 8bb8cafd063..c082ea7f3b1 100644
--- a/docs/dg/dev/updating-spryker/feature-or-module-updates.md
+++ b/docs/dg/dev/updating-spryker/feature-or-module-updates.md
@@ -1,6 +1,6 @@
---
title: Feature or module updates
-description: Choose at which level to take updates
+description: Learn how to update modules or features and to choose at which level to take updates within your Spryker based projects.
last_updated: Jun 16, 2021
template: concept-topic-template
redirect_from:
diff --git a/docs/dg/dev/updating-spryker/installing-features-and-updating-modules.md b/docs/dg/dev/updating-spryker/installing-features-and-updating-modules.md
index 7c3d526aac2..b22cee3e46b 100644
--- a/docs/dg/dev/updating-spryker/installing-features-and-updating-modules.md
+++ b/docs/dg/dev/updating-spryker/installing-features-and-updating-modules.md
@@ -1,6 +1,6 @@
---
title: Installing features and updating modules
-description: Learn how to take different kinds of updates and install new packages
+description: Learn how to take different kinds of updates and install new packages within your Spryker based projects.
last_updated: Jun 16, 2021
template: concept-topic-template
redirect_from:
diff --git a/docs/dg/dev/updating-spryker/planning-updates.md b/docs/dg/dev/updating-spryker/planning-updates.md
index 08ac148924d..a2cdd1a651a 100644
--- a/docs/dg/dev/updating-spryker/planning-updates.md
+++ b/docs/dg/dev/updating-spryker/planning-updates.md
@@ -1,6 +1,6 @@
---
title: Planning updates
-description: Learn how to plan updates in your development process
+description: Learn how to build a process and plan updates in your development process for your Spryker projects.
last_updated: Apr 3, 2023
template: concept-topic-template
redirect_from:
diff --git a/docs/dg/dev/updating-spryker/switch-demo-shop-version.md b/docs/dg/dev/updating-spryker/switch-demo-shop-version.md
index 235a0b38c71..3fd589ebd6b 100644
--- a/docs/dg/dev/updating-spryker/switch-demo-shop-version.md
+++ b/docs/dg/dev/updating-spryker/switch-demo-shop-version.md
@@ -1,6 +1,6 @@
---
title: Switch Demo Shop version
-description: Learn how to switch the version of a Demo Shop
+description: Learn how you can switch the version of a Demo Shop to a previous or next version within your Spryker projects.
last_updated: Apr 13, 2023
template: howto-guide-template
redirect_from:
diff --git a/docs/dg/dev/updating-spryker/testing-updates.md b/docs/dg/dev/updating-spryker/testing-updates.md
index 9fbfc897be5..be18cc3a5ef 100644
--- a/docs/dg/dev/updating-spryker/testing-updates.md
+++ b/docs/dg/dev/updating-spryker/testing-updates.md
@@ -1,6 +1,6 @@
---
title: Testing updates
-description: Learn how to test your code after taking updates
+description: Learn how you can test your code after taking updates to make sure your Spryker based projects work as expected.
last_updated: Apr 3, 2023
template: howto-guide-template
redirect_from:
diff --git a/docs/dg/dev/updating-spryker/troubleshooting-updates.md b/docs/dg/dev/updating-spryker/troubleshooting-updates.md
index 6d1e6fa80f3..af7b73fde6c 100644
--- a/docs/dg/dev/updating-spryker/troubleshooting-updates.md
+++ b/docs/dg/dev/updating-spryker/troubleshooting-updates.md
@@ -1,6 +1,6 @@
---
title: Troubleshooting updates
-description: Common update issues and how to solve them
+description: Learn how to troubleshoot and resolve common update issues and errors within your Spryker based projects.
last_updated: Jun 16, 2021
template: concept-topic-template
redirect_from:
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-from-auth-to-securitygui-module.md b/docs/dg/dev/upgrade-and-migrate/migrate-from-auth-to-securitygui-module.md
index 1c700ac2bdf..6d8f5e90a78 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-from-auth-to-securitygui-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-from-auth-to-securitygui-module.md
@@ -1,5 +1,6 @@
---
title: Migrate from Auth to SecurityGui module
+description: Learn how to migrate from the Auth module to the Security GUI Module within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-auth-module-to-securitygui-module
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-from-tslint-to-eslint.md b/docs/dg/dev/upgrade-and-migrate/migrate-from-tslint-to-eslint.md
index c00c8acc364..f92fb293723 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-from-tslint-to-eslint.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-from-tslint-to-eslint.md
@@ -1,6 +1,6 @@
---
title: Migrate from TSLint to ESLint
-description: Use this guide to migrate the project from TSLint to ESLint.
+description: Use this guide to learn how to migrate the project from TSLint to ESLint for your Spryker based projects.
last_updated: Mar 24, 2023
template: module-migration-guide-template
redirect_from:
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-from-yarn-to-npm.md b/docs/dg/dev/upgrade-and-migrate/migrate-from-yarn-to-npm.md
index 369fdf08a52..16015fa7a43 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-from-yarn-to-npm.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-from-yarn-to-npm.md
@@ -1,7 +1,7 @@
---
title: Migrate from Yarn to npm
last_updated: May 15, 2023
-description: Use this guide to migrate the project from Yarn to npm.
+description: Learn how to migrate your Spryker based projects from Yarn to npm in this helpful migration guide.
template: concept-topic-template
redirect_from:
- /docs/scos/dev/front-end-development/migration-guide-switch-from-yarn-to-npm.html
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-adapt-the-filesystem-based-features.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-adapt-the-filesystem-based-features.md
index 4c4a2dcf32f..039f37ff6be 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-adapt-the-filesystem-based-features.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-adapt-the-filesystem-based-features.md
@@ -1,6 +1,6 @@
---
title: 'Migrate to cloud: Adapt the file system-based features'
-description: To migrate to SCCOS, one of the steps, is restoring Elasticsearch and Redis.
+description: Learn how to migrate to Spryker Cloud Commerce os and adapt the file system based features for your Spryker project.
template: howto-guide-template
redirect_from:
- /docs/scos/dev/migration-concepts/migrate-to-sccos/step-8-adapt-the-filesystem-based-features.html
@@ -8,7 +8,7 @@ last_updated: Dec 6, 2023
---
-Due to the specifics of the Spryker architecture, all containers, such as Yves, Gateway, Backoffice, Jenkins, or Glue are isolated from each other and don't share any volume. For more details, refer to [Docker environment infrastructure](/docs/dg/dev/sdks/the-docker-sdk/docker-environment-infrastructure.html).
+Because of the specifics of the Spryker architecture, all containers, such as Yves, Gateway, Backoffice, Jenkins, or Glue are isolated from each other and don't share any volume. For more details, refer to [Docker environment infrastructure](/docs/dg/dev/sdks/the-docker-sdk/docker-environment-infrastructure.html).
For a shared file storage solution, we recommend using S3 buckets. For an illustrative example, see the [Data Import](/docs/ca/dev/configure-data-import-from-an-s3-bucket.html) feature based on an S3 bucket for file storage.
For more details on the suggested file system, see [Flysystem feature](/docs/dg/dev/backend-development/data-manipulation/data-ingestion/structural-preparations/flysystem.html).
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-add-frontend-assets.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-add-frontend-assets.md
index e16f2888a93..5ae368c8a1e 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-add-frontend-assets.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-add-frontend-assets.md
@@ -1,6 +1,6 @@
---
title: 'Migrate to cloud: Add frontend assets'
-description: To migrate to SCCOS, one of the steps, is adding the frontend assets.
+description: Learn how to migrate to Spryker Cloud Commerce OS and add frontend assets in your Spryker based project.
template: howto-guide-template
redirect_from:
- /docs/scos/dev/migration-concepts/migrate-to-sccos/step-10-add-frontend-assets.html
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-choose-a-multi-store-setup.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-choose-a-multi-store-setup.md
index 901d7e07e11..a35d28641f0 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-choose-a-multi-store-setup.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-choose-a-multi-store-setup.md
@@ -1,6 +1,6 @@
---
title: 'Migrate to cloud: Choose a multi-store setup'
-description: To migrate to SCCOS, one of the steps, is choosing a multi-store setup
+description: Learn how to migrate to Spryker Cloud Commerce OS and choose a multi-store setup within your Spryker based projects.
template: howto-guide-template
redirect_from:
- /docs/scos/dev/migration-concepts/migrate-to-sccos/step-12-choose-a-multi-store-setup.html
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-finalize-the-migration.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-finalize-the-migration.md
index b745affbf4a..4e79d557141 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-finalize-the-migration.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-finalize-the-migration.md
@@ -1,6 +1,6 @@
---
title: 'Migrate to cloud: Finalize the migration'
-description:
+description: Learn about how to finalize the migration to Spryker Cloud Commerce OS and what you need to do to prepare your Spryker project for go live.
template: howto-guide-template
redirect_from:
- /docs/scos/dev/migration-concepts/migrate-to-sccos/step-14-finalize-the-migration.html
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-integrate-the-docker-sdk.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-integrate-the-docker-sdk.md
index d05a4929622..4c08538322c 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-integrate-the-docker-sdk.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-integrate-the-docker-sdk.md
@@ -1,6 +1,6 @@
---
title: "Migrate to cloud: Integrate the Docker SDK"
-description: Learn how to integrate the Docker SDK
+description: Learn how to integrate the Docker SDK to start your migration to Spryker Cloud Commerce OS.
template: howto-guide-template
last_updated: Dec 6, 2023
redirect_from:
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-migrate-database.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-migrate-database.md
index 7cef590c69e..6119a2f9e8d 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-migrate-database.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-migrate-database.md
@@ -1,6 +1,6 @@
---
title: 'Migrate to cloud: Migrate database'
-description: To migrate to SCCOS, one of the steps is migrating the database
+description: Learn how to migrate to Spryker Cloud Commerce OS and migrate your data to the databse within your Spryker based project.
template: howto-guide-template
redirect_from:
- /docs/scos/dev/migration-concepts/migrate-to-sccos/step-13-migrate-database.html
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-migrate-non-standard-services.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-migrate-non-standard-services.md
index 026d375a9df..d988903b5f2 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-migrate-non-standard-services.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-migrate-non-standard-services.md
@@ -1,6 +1,6 @@
---
title: 'Migrate to cloud: Migrate non-standard services'
-description: To migrate to SCCOS, you need to migrate non-standard services.
+description: Learn how to migrate to Spryker Cloud Commerce OS and migrate non-standard services within your Spryker based project.
template: howto-guide-template
redirect_from:
- /docs/scos/dev/migration-concepts/migrate-to-sccos/step-3-migrate-non-standard-services.html
@@ -9,7 +9,7 @@ redirect_from:
Spryker comes pre-configured with the following services by default:
* RabbitMQ
-* ElasticSearch
+* Elasticsearch
* Redis
* MariaDB
* Jenkins
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-restore-es-and-redis.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-restore-es-and-redis.md
index 0ad98f50f4b..460765e4869 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-restore-es-and-redis.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-restore-es-and-redis.md
@@ -1,6 +1,6 @@
---
title: 'Migrate to cloud: Restore Elasticsearch and Redis'
-description: To migrate to SCCOS, one of the steps, is restoring Elasticsearch and Redis.
+description: Learn how to migrate to Spryker Cloud Commerce OS and restore Elasticsearch and Redis within your Spryker based project.
template: howto-guide-template
redirect_from:
- /docs/scos/dev/migration-concepts/migrate-to-sccos/step-7-restore-es-and-redis.html
@@ -18,7 +18,7 @@ There is a default `vendor/bin/console sync:data` command in Spryker that lets y
Considering this fact, ensure that the `sync:data` command can restore your Elasticsearch and Redis from scratch in a consistent and resilient way. This especially applies to custom `*Storage` and `*Search` modules, as they should have synchronization plugins implemented and enabled.
-Due to the large data size, sometimes the command can't process all the records and fails. In this case, it can be executed per resource as follows:
+Because of the large data size, sometimes the command can't process all the records and fails. In this case, it can be executed per resource as follows:
```bash
console sync:data url
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-upgrade-the-php-version.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-upgrade-the-php-version.md
index bd4369a09ba..82212910156 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-upgrade-the-php-version.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-upgrade-the-php-version.md
@@ -1,6 +1,6 @@
---
title: 'Migrate to cloud: Upgrade the PHP version'
-description: To migrate to SCCOS, you need to upgrade the PHP version.
+description: Learn how to migrate to Spryker Cloud Commerce OS and upgrade the PHP version for your Spryker based project.
template: howto-guide-template
redirect_from:
- /docs/scos/dev/migration-concepts/migrate-to-sccos/step-2-upgrade-the-php-version.html
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-wire-custom-services.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-wire-custom-services.md
index c705b41a1e1..1ea0434ade0 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-wire-custom-services.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-cloud/migrate-to-cloud-wire-custom-services.md
@@ -1,6 +1,6 @@
---
title: 'Migrate to cloud: Wire custom services'
-description: When migrating to SCCOS, you can wire the custom services.
+description: Learn how to migrate to Spryker Cloud Commerce OS and wire custom services for Spryker based project.
template: howto-guide-template
redirect_from:
- /docs/scos/dev/migration-concepts/migrate-to-sccos/step-11-wire-custom-services.html
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-decoupled-glue-infrastructure/decoupled-glue-infrastructure-integrate-api-key-authorization.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-decoupled-glue-infrastructure/decoupled-glue-infrastructure-integrate-api-key-authorization.md
index b0931d90978..c76a0111dc0 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-decoupled-glue-infrastructure/decoupled-glue-infrastructure-integrate-api-key-authorization.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-decoupled-glue-infrastructure/decoupled-glue-infrastructure-integrate-api-key-authorization.md
@@ -1,6 +1,6 @@
---
title: "Decoupled Glue infrastructure: Integrate the API Key authorization"
-description: Integration of the API Key authorization mechanism into a Spryker project.
+description: Learn about Integration of the API Key authorization mechanism into a Spryker based project.
last_updated: October 10, 2023
template: feature-integration-guide-template
redirect_from:
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-decoupled-glue-infrastructure/decoupled-glue-infrastructure-integrate-the-documentation-generator.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-decoupled-glue-infrastructure/decoupled-glue-infrastructure-integrate-the-documentation-generator.md
index 4c57f5ac056..25f12e0a670 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-decoupled-glue-infrastructure/decoupled-glue-infrastructure-integrate-the-documentation-generator.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-decoupled-glue-infrastructure/decoupled-glue-infrastructure-integrate-the-documentation-generator.md
@@ -1,6 +1,6 @@
---
title: "Decoupled Glue infrastructure: Integrate the documentation generator"
-description: Integrate the Glue documentation generation into your project
+description: Learn how to integrate the Glue documentation generation into your Spryker based project
template: feature-integration-guide-template
last_updated: Oct 30, 2023
redirect_from:
diff --git a/docs/dg/dev/upgrade-and-migrate/migrate-to-docker/adjust-jenkins-for-a-docker-environment.md b/docs/dg/dev/upgrade-and-migrate/migrate-to-docker/adjust-jenkins-for-a-docker-environment.md
index 42be85395a0..d77eeb5f9e1 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrate-to-docker/adjust-jenkins-for-a-docker-environment.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrate-to-docker/adjust-jenkins-for-a-docker-environment.md
@@ -1,6 +1,6 @@
---
title: Adjust Jenkins for a Docker environment
-description: DevOPS guidelines for running Spryker in Docker.
+description: Learn how you can adjust Jenkins with these DevOPS guidelines for running Spryker projects in Docker.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/additional-devops-guidelines
diff --git a/docs/dg/dev/upgrade-and-migrate/migrating-from-twig-v1-to-twig-v3.md b/docs/dg/dev/upgrade-and-migrate/migrating-from-twig-v1-to-twig-v3.md
index 49f3dd3938b..9f859dce035 100644
--- a/docs/dg/dev/upgrade-and-migrate/migrating-from-twig-v1-to-twig-v3.md
+++ b/docs/dg/dev/upgrade-and-migrate/migrating-from-twig-v1-to-twig-v3.md
@@ -1,6 +1,6 @@
---
title: Migrate from Twig v1 to Twig v3
-description: The article describes how you can migrate from Twig v1 to Twig v3
+description: The article describes how you can migrate from Twig v1 to Twig v3 for your Spryker based projects.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migrating-from-twig-v1-to-twig-v3
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/container.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/container.md
index 5de07359adf..4adcad51b60 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/container.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/container.md
@@ -18,7 +18,7 @@ A *container* is a class which holds one or more object collections or definitio
The container is used to add services and allow other application plugins access them. Services are integrations like Twig or Symfony components like Security or Form. To be able to configure or change the services easily, they are added to the applications as a part of [application plugins](/docs/dg/dev/upgrade-and-migrate/silex-replacement/application.html).
-It's important that almost everything that is accessible through the container should only be instantiated when it is requested. It's not as important for static values like `isDebugMode` as it is important for expensive instantiations.
+It's important that almost everything that is accessible through the container should only be instantiated when it's requested. It's not as important for static values like `isDebugMode` as it's important for expensive instantiations.
## Where is the container used?
@@ -166,7 +166,7 @@ if ($container->has('your service identifier')) {
}
```
-With the code, you can alter your service without loading it. Your service will only be loaded when it is requested from the container using `container::get()`.
+With the code, you can alter your service without loading it. Your service will only be loaded when it's requested from the container using `container::get()`.
## Global services
@@ -228,4 +228,4 @@ class ModuleCommunicationFactory extends AbstractCommunicationFactory
`FrozenServiceException` - The service `your service identifier` is marked as frozen and can't be extended at this point.
**then**
-If you try to extend a service which was already requested from the container, you will see this exception. A debugger will help you to find a solution. Check which code causes this error by setting a breakpoint in the container where this exception is thrown. Most likely, you will spot the issue right away. If not, set an additional conditional breakpoint in the first line of the `container::get()` method: `$id === 'your service identifier'`. It instructs the debugger to stop when the service identifier which brings the exception is retrieved from the container. Now check the code which wants to retrieve the service and change it in a way that it is called only after `container::extend()` was executed.
+If you try to extend a service which was already requested from the container, you will see this exception. A debugger will help you to find a solution. Check which code causes this error by setting a breakpoint in the container where this exception is thrown. Most likely, you will spot the issue right away. If not, set an additional conditional breakpoint in the first line of the `container::get()` method: `$id === 'your service identifier'`. It instructs the debugger to stop when the service identifier which brings the exception is retrieved from the container. Now check the code which wants to retrieve the service and change it in a way that it's called only after `container::extend()` was executed.
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-yves.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-yves.md
index d6e7bf7838b..cdc2deecb7f 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-yves.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-yves.md
@@ -42,7 +42,7 @@ Routers are added to the `\Pyz\Yves\Router\RouterDependencyProvider::getRouterPl
The Router can be configured with the following `\Spryker\Yves\Router\RouterEnvironmentConfigConstantsYves` options:
-* `\Spryker\Shared\Router\RouterConstants::YVES_IS_CACHE_ENABLED` - use this option to enable/disable the cache. By default, it is enabled.
+* `\Spryker\Shared\Router\RouterConstants::YVES_IS_CACHE_ENABLED` - use this option to enable/disable the cache. By default, it's enabled.
* `\Spryker\Shared\Router\RouterConstants::YVES_CACHE_PATH` - use this option if you want to change the path to the generated cache files.
* `\Spryker\Shared\Router\RouterConstants::YVES_IS_SSL_ENABLED` - use this option to enable/disable the Router's SSL capabilities.
* `\Spryker\Shared\Router\RouterConstants::YVES_SSL_EXCLUDED_ROUTE_NAMES` - use this option to disable SSL for the specific route names when SSL is enabled.
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-zed.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-zed.md
index 7dc12cbadf0..7f50aa7e014 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-zed.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router-zed.md
@@ -34,7 +34,7 @@ Additionally, you need to add the following plugins to the `\Pyz\Zed\EventDispat
The Router can be configured with the following `RouterEnvironmentConfigConstantsZed` options:
-* `\Spryker\Zed\Router\RouterConstants::ZED_IS_CACHE_ENABLED` - use this option to enable/disable the cache. By default, it is enabled.
+* `\Spryker\Zed\Router\RouterConstants::ZED_IS_CACHE_ENABLED` - use this option to enable/disable the cache. By default, it's enabled.
* `\Spryker\Zed\Router\RouterConstants::ZED_CACHE_PATH` - use this if you want to change the path to the generated cache files.
* `\Spryker\Zed\Router\RouterConstants::ZED_IS_SSL_ENABLED` - use this to enable/disable Router's SSL capabilities.
* `\Spryker\Zed\Router\RouterConstants::ZED_SSL_EXCLUDED_ROUTE_NAMES` - use this to disable SSL for the specific route names when SSL is enabled.
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router.md
index bad154ce4da..80b7877d77d 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/router/router.md
@@ -1,6 +1,6 @@
---
title: Router
-description: This section lists documents inside the Router section.
+description: Learn how you can Install, Integrate and Configure the router for both Yves and Zed in your Spryker based projects.
last_updated: Apr 26, 2023
template: concept-topic-template
redirect_from:
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-errorhandler-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-errorhandler-module.md
index 260c9d8bdc4..8c62d366d2d 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-errorhandler-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-errorhandler-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the ErrorHandler module
-description: Use the guide to perform the ErrorHandler part of the Silex Migration Effort.
+description: Learn how you can upgrade the ErrorHandler module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-errorhandler
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-form-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-form-module.md
index 60c85d9fb1f..5d3b208df3f 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-form-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-form-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the Form module
-description: Use the guide to perform the Form part of the Silex Migration Effort.
+description: Learn how you can upgrade the form module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-form
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-http-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-http-module.md
index 60bd7cc2cff..9be29cde6dc 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-http-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-http-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the HTTP module
-description: Use the guide to perform the HTTP part of the Silex Migration Effort.
+description: Learn how you can upgrade the HTTP module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-http
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-locale-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-locale-module.md
index f35b428ca3e..f4a5e103fe4 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-locale-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-locale-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the Locale module
-description: Use the guide to perform the Locale part of the Silex Migration Effort.
+description: Learn how you can upgrade the Locale module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-locale
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-messenger-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-messenger-module.md
index 31ccb7128a0..27a7aefe583 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-messenger-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-messenger-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the Messenger module
-description: Use the guide to perform the Messenger part of the Silex Migration Effort.
+description: Learn how you can upgrade the messenger module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-messenger
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-propel-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-propel-module.md
index 68c2fd844f0..80cd72813b8 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-propel-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-propel-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the Propel module
-description: Use the guide to perform the Propel part of the Silex Migration Effort.
+description: Learn how you can upgrade the Propel module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-propel
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-router-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-router-module.md
index b2b3e093d33..651eaa6151c 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-router-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-router-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the Router module
-description: Use the guide to perform the Router part of the Silex Migration Effort.
+description: Learn how you can upgrade the Router module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-router
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-security-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-security-module.md
index c626de87cf7..ba6b25cc900 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-security-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-security-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the Security module
-description: Use the guide to perform the Security part of the Silex Migration Effort.
+description: Learn how you can upgrade the security module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-security
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-session-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-session-module.md
index 0ad2acf19bb..770904c0b79 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-session-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-session-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the Session module
-description: Use the guide to perform the Session part of the Silex Migration Effort.
+description: Learn how you can upgrade the session module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-session
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-store-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-store-module.md
index 6d6702de15d..7484cb5019a 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-store-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-store-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the Store module
-description: Use the guide to perform the Store part of the Silex Migration Effort.
+description: Learn how you can upgrade the store module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-store
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-translator-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-translator-module.md
index b9373577dc5..294399887a1 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-translator-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-translator-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the Translator module
-description: Use the guide to perform the Translator part of the Silex Migration Effort.
+description: Learn how you can upgrade the translator module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-translator
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-twig-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-twig-module.md
index 3ea00937b24..5a8a58903e3 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-twig-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-twig-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the Twig module
-description: Use the guide to perform the Twig part of the Silex Migration Effort.
+description: Learn how you can upgrade the twig module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-twig
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-validator-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-validator-module.md
index 74b395b0ea5..e494271de16 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-validator-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-validator-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the Validator module
-description: Use the guide to perform the Validator part of the Silex Migration Effort.
+description: Learn how you can upgrade the validator module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-validator
diff --git a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-webprofiler-module.md b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-webprofiler-module.md
index 6745c97857a..e95d2946886 100644
--- a/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-webprofiler-module.md
+++ b/docs/dg/dev/upgrade-and-migrate/silex-replacement/upgrade-modules/upgrade-the-webprofiler-module.md
@@ -1,6 +1,6 @@
---
title: Upgrade the WebProfiler module
-description: Use the guide to perform the WebProfiler part of the Silex Migration Effort.
+description: Learn how you can upgrade the WebProfiler module of the Silex Migration within your Spryker based projects.
last_updated: Jun 16, 2021
template: module-migration-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/migration-guide-webprofiler
diff --git a/docs/dg/dev/upgrade-and-migrate/upgrade-nodejs-to-v18-and-npm-to-v9.md b/docs/dg/dev/upgrade-and-migrate/upgrade-nodejs-to-v18-and-npm-to-v9.md
index 5e3bb15c94a..3157e5e2077 100644
--- a/docs/dg/dev/upgrade-and-migrate/upgrade-nodejs-to-v18-and-npm-to-v9.md
+++ b/docs/dg/dev/upgrade-and-migrate/upgrade-nodejs-to-v18-and-npm-to-v9.md
@@ -1,7 +1,7 @@
---
title: Upgrade Node.js to v18 and npm to v9
last_updated: May 16, 2023
-description: Use this guide to upgrade Node.js to v18 and npm to v9.
+description: Learn how you can upgreade your Node.js to version 18 and how to upgrade NPM to version 9 for your Spryker projects.
template: concept-topic-template
redirect_from:
- /docs/scos/dev/front-end-development/202304.0/migration-guide-upgrade-nodejs-to-v18-and-npm-to-v9.html
diff --git a/docs/dg/dev/upgrade-and-migrate/upgrade-publish-and-sync.md b/docs/dg/dev/upgrade-and-migrate/upgrade-publish-and-sync.md
index d6b6fce4df0..4d437c4340d 100644
--- a/docs/dg/dev/upgrade-and-migrate/upgrade-publish-and-sync.md
+++ b/docs/dg/dev/upgrade-and-migrate/upgrade-publish-and-sync.md
@@ -47,7 +47,7 @@ $stores['DE']['queuePools']['synchronizationPool'] = [
#### Module layers
-In Previous version the listener plugins has been extended from Abstract plugin classes and now this has changed due to obey the Spryker architecture and moved into business layer and open APIs from Facade classes.
+In Previous version the listener plugins has been extended from Abstract plugin classes and now this has changed because of obey the Spryker architecture and moved into business layer and open APIs from Facade classes.
### Version 1 of the EventBehavior modules
diff --git a/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-12.md b/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-12.md
index 67a063212a5..1f2723342d0 100644
--- a/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-12.md
+++ b/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-12.md
@@ -1,6 +1,6 @@
---
title: Upgrade to Angular 12
-description: Use the guide to update versions of the Angular and related modules.
+description: Learn how you can upgrade to Version 12 of Angular for your Spryker project for improved performance and security.
template: module-migration-guide-template
last_updated: Jul 13, 2023
redirect_from:
diff --git a/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-15.md b/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-15.md
index cf026ec6e21..7c1898b0451 100644
--- a/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-15.md
+++ b/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-15.md
@@ -1,6 +1,6 @@
---
title: Upgrade to Angular 15
-description: Use the guide to update versions of the Angular and related modules.
+description: Learn how you can upgrade to Version 15 of Angular for your Spryker project for bug fixes, optimized performance and tooling.
last_updated: Mar 24, 2023
template: module-migration-guide-template
redirect_from:
diff --git a/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-17.md b/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-17.md
index b061d068a11..94c2d103d91 100644
--- a/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-17.md
+++ b/docs/dg/dev/upgrade-and-migrate/upgrade-to-angular-17.md
@@ -1,6 +1,6 @@
---
title: Upgrade to Angular 17
-description: Use the guide to update versions of the Angular and related modules.
+description: Learn how you can upgrade to Version 17 of Angular for your Spryker project for bug fixes, optimized performance and tooling.
template: module-migration-guide-template
---
diff --git a/docs/dg/dev/upgrade-and-migrate/upgrade-to-php-83.md b/docs/dg/dev/upgrade-and-migrate/upgrade-to-php-83.md
index bed8d5aa00d..91b6b664bf3 100644
--- a/docs/dg/dev/upgrade-and-migrate/upgrade-to-php-83.md
+++ b/docs/dg/dev/upgrade-and-migrate/upgrade-to-php-83.md
@@ -95,7 +95,7 @@ docker/sdk boot && docker/sdk up --build
## 5. Test the upgrade
-Thoroughly test your application to identify any issues due to the PHP version upgrade:
+Thoroughly test your application to identify any issues because of the PHP version upgrade:
- Automated tests: Run unit, integration, and functional tests.
- Manual testing: Test critical application functionality.
diff --git a/docs/dg/dev/upgrade-and-migrate/upgrade-to-stylelint-16-and-css-loader-6.md b/docs/dg/dev/upgrade-and-migrate/upgrade-to-stylelint-16-and-css-loader-6.md
index 1d2eb5bff4a..35a5fc6ac0f 100644
--- a/docs/dg/dev/upgrade-and-migrate/upgrade-to-stylelint-16-and-css-loader-6.md
+++ b/docs/dg/dev/upgrade-and-migrate/upgrade-to-stylelint-16-and-css-loader-6.md
@@ -1,6 +1,6 @@
---
title: Upgrade to Stylelint 16 and css-loader 6
-description: Learn how to update versions of the Stylelint and css-loader.
+description: Learn how you can upgrade to version 16 of Stylelint and upgrade to version 6 of css-loader for your spryker projects.
template: module-migration-guide-template
---
diff --git a/docs/dg/dev/upgrade-and-migrate/upgrade-to-symfony-5.md b/docs/dg/dev/upgrade-and-migrate/upgrade-to-symfony-5.md
index e57ba523af3..4434e3eafae 100644
--- a/docs/dg/dev/upgrade-and-migrate/upgrade-to-symfony-5.md
+++ b/docs/dg/dev/upgrade-and-migrate/upgrade-to-symfony-5.md
@@ -10,7 +10,7 @@ redirect_from:
- /docs/scos/dev/technical-enhancements/symfony-5-integration.html
---
-Spryker supports Symfony 5 that was released in November 2019. We tried to keep BC for all three major versions of Symfony, but due to some changes in version 5, we had to partially drop support for Symfony 3.
+Spryker supports Symfony 5 that was released in November 2019. We tried to keep BC for all three major versions of Symfony, but because of some changes in version 5, we had to partially drop support for Symfony 3.
{% info_block warningBox "Avoid old Symfony versions" %}
@@ -24,7 +24,7 @@ Although Spryker still supports older versions of Symfony, avoid installing them
Most of the changes in Symfony 5 are related to changes in `symfony/http-kernel` and the `symfony/translation` components. In version 4 of the `symfony/http-kernel` component, new event classes were introduced, some were deprecated, and the event classes are final in version 5. Thus, we had to use the new final event classes and refactor some modules that use the old event classes.
-In version 5 of the `symfony/translation` component, some interfaces were extracted into the `symfony/translation-contracts` component. Due to this, we had to refactor some modules that used those interfaces.
+In version 5 of the `symfony/translation` component, some interfaces were extracted into the `symfony/translation-contracts` component. Because of this, we had to refactor some modules that used those interfaces.
## Upgrade Symfony to version 5
diff --git a/docs/dg/dev/upgrade-and-migrate/upgrade-to-symfony-6.md b/docs/dg/dev/upgrade-and-migrate/upgrade-to-symfony-6.md
index 12d9f7336fa..6bf9b9624e3 100644
--- a/docs/dg/dev/upgrade-and-migrate/upgrade-to-symfony-6.md
+++ b/docs/dg/dev/upgrade-and-migrate/upgrade-to-symfony-6.md
@@ -1,6 +1,6 @@
---
title: Upgrade to Symfony 6.4
-description: Learn about the main changes in the new Symfony version 6
+description: Learn how you can upgrade the version 6.4 of Symfony for your Spryker projects and Spryker modules that use Symfony.
last_updated: Apr 1, 2024
template: howto-guide-template
redirect_from:
diff --git a/docs/dg/dev/upgrade-and-migrate/upgrade-to-webpack-v5.md b/docs/dg/dev/upgrade-and-migrate/upgrade-to-webpack-v5.md
index c13e4fb5aa1..8d9f2d75819 100644
--- a/docs/dg/dev/upgrade-and-migrate/upgrade-to-webpack-v5.md
+++ b/docs/dg/dev/upgrade-and-migrate/upgrade-to-webpack-v5.md
@@ -1,6 +1,6 @@
---
title: Upgrade to Webpack v5
-description: Use the guide to update versions of the Webpack and related modules.
+description: Use the guide to update versions of the Webpack to Version 5 and related modules for your Spryker projects.
last_updated: Jan 12, 2023
template: module-migration-guide-template
redirect_from:
diff --git a/docs/dg/dev/zed-api/integrate-zed-api/integrate-zed-api-for-merchant-relationships.md b/docs/dg/dev/zed-api/integrate-zed-api/integrate-zed-api-for-merchant-relationships.md
index 11042a70550..af8bc431492 100644
--- a/docs/dg/dev/zed-api/integrate-zed-api/integrate-zed-api-for-merchant-relationships.md
+++ b/docs/dg/dev/zed-api/integrate-zed-api/integrate-zed-api-for-merchant-relationships.md
@@ -1,6 +1,6 @@
---
title: Integrate Zed API for merchant relationships
-description: Learn how to integrate the Zed API for merchant relationships into your project.
+description: Learn how to integrate Spryker ZED API for merchant relationships into your Spryker based project.
template: feature-integration-guide-template
last_updated: Nov 6, 2023
redirect_from:
diff --git a/docs/dg/dev/zed-api/tutorial-using-zed-api.md b/docs/dg/dev/zed-api/tutorial-using-zed-api.md
index b7ddd5a3f79..4e675bfe639 100644
--- a/docs/dg/dev/zed-api/tutorial-using-zed-api.md
+++ b/docs/dg/dev/zed-api/tutorial-using-zed-api.md
@@ -1,5 +1,6 @@
---
title: "Tutorial: Using Zed API"
+description: Learn how to use the ZED API, creating simple client librarys or extracting controller endpoints to use within your Spryker Projects.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/t-zed-rest-api
@@ -93,9 +94,9 @@ After this step log into Zed and try opening `http://ZED_HOST/api/v1/doc` and `h
## 2. Create a business model to examine facade classes using reflection
-First, it is needed to create an empty model class `ApiEntry` in the business layer, it can be placed in `Business/Model/ApiEntry.php`.
+First, it's needed to create an empty model class `ApiEntry` in the business layer, it can be placed in `Business/Model/ApiEntry.php`.
-This class must be created in a factory of the module. Additionally, the factory must provide additional dependencies from facades of other modules. To simplify the solution, facades can be created dynamically based on GET parameters of the request, while in real life it is advised to always specify these dependencies implicitly.
+This class must be created in a factory of the module. Additionally, the factory must provide additional dependencies from facades of other modules. To simplify the solution, facades can be created dynamically based on GET parameters of the request, while in real life it's advised to always specify these dependencies implicitly.
Considering all of above, the factory implementation can look like this:
diff --git a/docs/dg/dev/zed-api/zed-api-beta.md b/docs/dg/dev/zed-api/zed-api-beta.md
index 58f3e60ab36..e9f69ed5df0 100644
--- a/docs/dg/dev/zed-api/zed-api-beta.md
+++ b/docs/dg/dev/zed-api/zed-api-beta.md
@@ -94,7 +94,7 @@ JSON_PARTIAL_OUTPUT_ON_ERROR | JSON_PRETTY_PRINT
* 405 Method Not Allowed - When an HTTP method is being requested that isn’t allowed for the authenticated user. 410 Gone - Indicates that the resource at this end point is no longer available. Useful as a blanket response for old API versions.
* 415 Unsupported Media Type - If incorrect content type was provided as part of the request.
* 422 Unprocessable Entity - Used for validation errors.
-* 429 Too Many Requests - When a request is rejected due to rate limiting.
+* 429 Too Many Requests - When a request is rejected because of rate limiting.
* 500 Internal Server Error - An internal error of the API. Something is broken.
## Development tools
diff --git a/docs/dg/dev/zed-api/zed-api-configuration.md b/docs/dg/dev/zed-api/zed-api-configuration.md
index ba2a00a8d3e..489cb1f2169 100644
--- a/docs/dg/dev/zed-api/zed-api-configuration.md
+++ b/docs/dg/dev/zed-api/zed-api-configuration.md
@@ -1,6 +1,6 @@
---
title: Zed API configuration
-description: The article describes how you can configure API for Zed.
+description: Learn how you can configure the Spryker Zed API and install it within your Spryker based projects.
last_updated: Jun 16, 2021
template: concept-topic-template
originalLink: https://documentation.spryker.com/2021080/docs/zed-api-config
diff --git a/docs/dg/dev/zed-api/zed-api-resources.md b/docs/dg/dev/zed-api/zed-api-resources.md
index ade40f76dd6..f600968bc62 100644
--- a/docs/dg/dev/zed-api/zed-api-resources.md
+++ b/docs/dg/dev/zed-api/zed-api-resources.md
@@ -1,5 +1,6 @@
---
-title: Zed API resources
+title: Zed API resources\
+description: Some quick and helpful resources when it comes to using Spryker Zed API within your Spryker based projects.
last_updated: Jun 16, 2021
template: concept-topic-template
originalLink: https://documentation.spryker.com/2021080/docs/zed-api-resources
diff --git a/docs/dg/dev/zed-api/zed-api.md b/docs/dg/dev/zed-api/zed-api.md
index 68bd93bcae2..8aa146ba047 100644
--- a/docs/dg/dev/zed-api/zed-api.md
+++ b/docs/dg/dev/zed-api/zed-api.md
@@ -1,6 +1,6 @@
---
title: Zed API
-description: This section lists documents inside the Zed API section.
+description: Learn everything you need to know about the Spryker Zed API and how you can configure and use it within your Spryker based projects.
last_updated: Apr 26, 2023
template: concept-topic-template
redirect_from:
diff --git a/docs/pbc/all/business-intelligence/202410.0/amazon-quicksight-third-party-integration/amazon-quicksight.md b/docs/pbc/all/business-intelligence/202410.0/amazon-quicksight-third-party-integration/amazon-quicksight.md
index 01c7f67328a..5b5a54425fe 100644
--- a/docs/pbc/all/business-intelligence/202410.0/amazon-quicksight-third-party-integration/amazon-quicksight.md
+++ b/docs/pbc/all/business-intelligence/202410.0/amazon-quicksight-third-party-integration/amazon-quicksight.md
@@ -15,6 +15,14 @@ Highlights:
* Highly customizable, offering multiple options to tailor reports & analytics workflows
* Aggregate data across various systems
+
+
+
+
## Data sources and datasets
This feature supports data from Spryker projects and third-party systems. When you set up Amazon QuickSight, the data from your project is available by default, and you can add other data sources if needed.
@@ -120,7 +128,7 @@ The default dashboard contains the following sheets.
| ----------------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| Total Sales | KPI | Indicates overall business revenue and helps track growth or identify trends. | Track overall revenue trends. If growth slows, evaluate pricing strategies, marketing efforts, or product performance. |
| Total Orders | Table | Reflects customer activity and signals demand and operational performance. | Monitor order volume to measure demand. Sudden changes may indicate issues with pricing, stock availability, or competition. |
- | Total Canceled | KPI | Quantifies the financial loss due to order cancellations, helping assess the monetary impact of cancellations and identify trends or root causes | Analyze canceled order trends to identify common causes like shipping delays or inventory shortages and take corrective action. |
+ | Total Canceled | KPI | Quantifies the financial loss because of order cancellations, helping assess the monetary impact of cancellations and identify trends or root causes | Analyze canceled order trends to identify common causes like shipping delays or inventory shortages and take corrective action. |
| Cancelation Rate | Donut chart | Reveals issues in inventory, delivery, or customer decision-making. | Investigate and reduce factors causing high cancellation rates, such as unclear product descriptions or lack of customer support. |
| Return Rate | Donut chart | Highlights product quality or customer dissatisfaction issues. | Identify patterns in high return rates and address them by improving product quality, descriptions, or customer expectations. |
| "Waiting for Return" Order Items | KPI | Tracks pending returns, aiding better inventory and refund management. | Monitor pending returns to ensure timely processing and better inventory management. |
diff --git a/docs/pbc/all/carrier-management/202311.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md b/docs/pbc/all/carrier-management/202311.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md
index 6d0fd2fb338..b47498d43db 100644
--- a/docs/pbc/all/carrier-management/202311.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md
+++ b/docs/pbc/all/carrier-management/202311.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md
@@ -44,7 +44,7 @@ data:import:shipment-price
## Additional information
-The field *value* must be an *integer* as it is the internal format to store money (currency) in the Spryker Demo Shop. Float values get converted into integer through multiplying by 100. For example, if the shipment cost is 5.50 EUR, the value in the CSV file should be 550.
+The field *value* must be an *integer* as it's the internal format to store money (currency) in the Spryker Demo Shop. Float values get converted into integer through multiplying by 100. For example, if the shipment cost is 5.50 EUR, the value in the CSV file should be 550.
Fields `shipment_method_key`, `store` and `currency` are mandatory, and must be valid (imported already from existing database values, or created manually using the precedent CSV files: `shipment_method.csv` and `currency.csv` and `stores.php` configuration project file). Empty value fields are imported as zeros.
diff --git a/docs/pbc/all/carrier-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-and-shipment-methods-when-submitting-checkout-data.md b/docs/pbc/all/carrier-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-and-shipment-methods-when-submitting-checkout-data.md
index 2a478facabd..4f2844c40fe 100644
--- a/docs/pbc/all/carrier-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-and-shipment-methods-when-submitting-checkout-data.md
+++ b/docs/pbc/all/carrier-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-and-shipment-methods-when-submitting-checkout-data.md
@@ -534,7 +534,7 @@ To retrieve all available shipment methods, submit checkout data with one or mor
| CODE | REASON |
| --- | --- |
-| 400 | Bad request. This error can occur due to the following reasons:
The POST data is incorrect.
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
+| 400 | Bad request. This error can occur because of the following reasons:
The POST data is incorrect.
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
| 422 | The checkout data is incorrect. |
| 1101 | Checkout data is invalid. |
| 1102 | Order cannot be placed. |
diff --git a/docs/pbc/all/carrier-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-when-checking-out-purchases.md b/docs/pbc/all/carrier-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-when-checking-out-purchases.md
index cf7f6e038df..8a395058c31 100644
--- a/docs/pbc/all/carrier-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-when-checking-out-purchases.md
+++ b/docs/pbc/all/carrier-management/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-when-checking-out-purchases.md
@@ -360,7 +360,7 @@ To retrieve order shipments, include `orders` and `order-shipments`.
| STATUS | REASONS |
| --- | --- |
-| 400 | Bad request. This error can occur due to the following reasons:
The POST data is incorrect;
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
+| 400 | Bad request. This error can occur because of the following reasons:
The POST data is incorrect;
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
| 404 | Order not found. |
| 422 | Order payment is not updated. Checkout data is incorrect. |
| 1101 | Checkout data is invalid. |
diff --git a/docs/pbc/all/carrier-management/202404.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md b/docs/pbc/all/carrier-management/202404.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md
index 6d0fd2fb338..b47498d43db 100644
--- a/docs/pbc/all/carrier-management/202404.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md
+++ b/docs/pbc/all/carrier-management/202404.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md
@@ -44,7 +44,7 @@ data:import:shipment-price
## Additional information
-The field *value* must be an *integer* as it is the internal format to store money (currency) in the Spryker Demo Shop. Float values get converted into integer through multiplying by 100. For example, if the shipment cost is 5.50 EUR, the value in the CSV file should be 550.
+The field *value* must be an *integer* as it's the internal format to store money (currency) in the Spryker Demo Shop. Float values get converted into integer through multiplying by 100. For example, if the shipment cost is 5.50 EUR, the value in the CSV file should be 550.
Fields `shipment_method_key`, `store` and `currency` are mandatory, and must be valid (imported already from existing database values, or created manually using the precedent CSV files: `shipment_method.csv` and `currency.csv` and `stores.php` configuration project file). Empty value fields are imported as zeros.
diff --git a/docs/pbc/all/carrier-management/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-and-shipment-methods-when-submitting-checkout-data.md b/docs/pbc/all/carrier-management/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-and-shipment-methods-when-submitting-checkout-data.md
index 2a478facabd..4f2844c40fe 100644
--- a/docs/pbc/all/carrier-management/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-and-shipment-methods-when-submitting-checkout-data.md
+++ b/docs/pbc/all/carrier-management/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-and-shipment-methods-when-submitting-checkout-data.md
@@ -534,7 +534,7 @@ To retrieve all available shipment methods, submit checkout data with one or mor
| CODE | REASON |
| --- | --- |
-| 400 | Bad request. This error can occur due to the following reasons:
The POST data is incorrect.
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
+| 400 | Bad request. This error can occur because of the following reasons:
The POST data is incorrect.
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
| 422 | The checkout data is incorrect. |
| 1101 | Checkout data is invalid. |
| 1102 | Order cannot be placed. |
diff --git a/docs/pbc/all/carrier-management/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-when-checking-out-purchases.md b/docs/pbc/all/carrier-management/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-when-checking-out-purchases.md
index cf7f6e038df..8a395058c31 100644
--- a/docs/pbc/all/carrier-management/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-when-checking-out-purchases.md
+++ b/docs/pbc/all/carrier-management/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-when-checking-out-purchases.md
@@ -360,7 +360,7 @@ To retrieve order shipments, include `orders` and `order-shipments`.
| STATUS | REASONS |
| --- | --- |
-| 400 | Bad request. This error can occur due to the following reasons:
The POST data is incorrect;
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
+| 400 | Bad request. This error can occur because of the following reasons:
The POST data is incorrect;
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
| 404 | Order not found. |
| 422 | Order payment is not updated. Checkout data is incorrect. |
| 1101 | Checkout data is invalid. |
diff --git a/docs/pbc/all/carrier-management/202410.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md b/docs/pbc/all/carrier-management/202410.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md
index b0453d46a60..0ac25738de9 100644
--- a/docs/pbc/all/carrier-management/202410.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md
+++ b/docs/pbc/all/carrier-management/202410.0/base-shop/import-and-export-data/import-file-details-shipment-price.csv.md
@@ -45,7 +45,7 @@ data:import:shipment-price
## Additional information
-The field *value* must be an *integer* as it is the internal format to store money (currency) in the Spryker Demo Shop. Float values get converted into integer through multiplying by 100. For example, if the shipment cost is 5.50 EUR, the value in the CSV file should be 550.
+The field *value* must be an *integer* as it's the internal format to store money (currency) in the Spryker Demo Shop. Float values get converted into integer through multiplying by 100. For example, if the shipment cost is 5.50 EUR, the value in the CSV file should be 550.
Fields `shipment_method_key`, `store` and `currency` are mandatory, and must be valid (imported already from existing database values, or created manually using the precedent CSV files: `shipment_method.csv` and `currency.csv` and `stores.php` configuration project file). Empty value fields are imported as zeros.
diff --git a/docs/pbc/all/carrier-management/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-and-shipment-methods-when-submitting-checkout-data.md b/docs/pbc/all/carrier-management/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-and-shipment-methods-when-submitting-checkout-data.md
index 9ee112674a7..2c6557c39cf 100644
--- a/docs/pbc/all/carrier-management/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-and-shipment-methods-when-submitting-checkout-data.md
+++ b/docs/pbc/all/carrier-management/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-and-shipment-methods-when-submitting-checkout-data.md
@@ -534,7 +534,7 @@ To retrieve all available shipment methods, submit checkout data with one or mor
| CODE | REASON |
| --- | --- |
-| 400 | Bad request. This error can occur due to the following reasons:
The POST data is incorrect.
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
+| 400 | Bad request. This error can occur because of the following reasons:
The POST data is incorrect.
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
| 422 | The checkout data is incorrect. |
| 1101 | Checkout data is invalid. |
| 1102 | Order cannot be placed. |
diff --git a/docs/pbc/all/carrier-management/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-when-checking-out-purchases.md b/docs/pbc/all/carrier-management/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-when-checking-out-purchases.md
index ed59d8746d1..33b704b762a 100644
--- a/docs/pbc/all/carrier-management/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-when-checking-out-purchases.md
+++ b/docs/pbc/all/carrier-management/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-shipments-when-checking-out-purchases.md
@@ -360,7 +360,7 @@ To retrieve order shipments, include `orders` and `order-shipments`.
| STATUS | REASONS |
| --- | --- |
-| 400 | Bad request. This error can occur due to the following reasons:
The POST data is incorrect;
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
+| 400 | Bad request. This error can occur because of the following reasons:
The POST data is incorrect;
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
| 404 | Order not found. |
| 422 | Order payment is not updated. Checkout data is incorrect. |
| 1101 | Checkout data is invalid. |
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/calculation-data-structure.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/calculation-data-structure.md
index 5d0e1ca3cd1..21552f869da 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/calculation-data-structure.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/calculation-data-structure.md
@@ -62,7 +62,7 @@ The entire data object is stored in the session, and it consists of the followin
|sumGrossPrice (int)|The sum of item's gross price, calculated with `PriceCalculatorPlugin`.|
|unitNetPrice (int) | A single item net price, set with `CartItemPricePlugin` (cart expander). |
| sumNetPrice (int) | The sum of items net price, calculated with `PriceCalculatorPlugin`. |
-| unitPrice (int) | A single item price without assuming whether it is new or gross. This value must be used everywhere the price is displayed. It lets you switch tax mode without side effects. It's set with `CartItemPricePlugin` (cart expander). |
+| unitPrice (int) | A single item price without assuming whether it's new or gross. This value must be used everywhere the price is displayed. It lets you switch tax mode without side effects. It's set with `CartItemPricePlugin` (cart expander). |
| sumPrice (int) | The sum of item's price calculated with `PriceCalculatorPlugin`. |
| taxRate (float) | The current tax rate set by `ProductItemTaxRateCalculatorPlugin`. |
| refundableAmount (int) | The item's available refundable amount (order only). It's set by `RefundableAmountCalculatorPlugin`. |
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md
index 7021b48f2ac..8f349b7a7cd 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md
@@ -1,6 +1,6 @@
---
title: Checkout process review and implementation
-description: This document provides an overview of the checkout process and how it is implemented in Spryker.
+description: This document provides an overview of the checkout process and how it's implemented in Spryker.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/checkout-process-review-and-implementation
@@ -27,7 +27,7 @@ related:
link: docs/scos/dev/back-end-development/data-manipulation/datapayload-conversion/checkout/checkout-steps.html
---
-### Checkout process
+## Checkout process
To use the checkout in Yves, you need to configure it correctly and provide dependencies. Each step can have a form, a controller action, the implementation of the step logic, and a Twig template to render the HTML.
@@ -54,13 +54,13 @@ Using a data provider is the only way to pass any external data to the form and
Each data provider is passed when `FormCollection` is created. When the handle method is called, the `FormCollection` handler creates all form types and passes the data from data providers to them.
-### Checkout quote transfer lifetime
+## Checkout quote transfer lifetime
![Quote_transfer_lifetime.png](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Checkout/Multi-Step+Checkout/Checkout+Process/quote-transfer-lifetime.png)
When a process or `postCondition()` is called on `StepProcess`, it tries to get the current valid step by walking through the stack of steps and calling `postCondition()` for each, starting from the first in the stack. If `postCondition()` fails, then this step is used for later processing. After that, the view variables with `QuoteTransfer` and form are passed to Twig, and the HTML is rendered.
-#### Postcondition
+### Postcondition
_Postcondition_ is an essential part of the Processing step. It indicates if a step has all the data that it needs and if its requirements are satisfied. You can't access the next step from the stack if the previous step's postconditions are not met, but you can navigate to any step where postconditions are satisfied (`return true`).
@@ -68,19 +68,19 @@ Postconditions are called twice per step processing:
* To find the current step or if we can access the current step.
* After `execute()`, to make sure the step was completed and that we can continue to the next step.
-#### Postcondition error route
+### Postcondition error route
Inside your step, you can set a postcondition error route if you need to redirect to another error route than the one specified during the step construction.
-### How the quote transfer is mapped inside forms
+## How the quote transfer is mapped inside forms
Symfony forms provide a mechanism to store data into objects without needing manual mapping. It's called [Data transformers](https://symfony.com/doc/current/form/data_transformers.html). There are a few important conditions required to make this work. Because you are passing the entire `QuoteTransfer`, the form handler does not know which fields you are trying to use. Symfony provides a few ways to handle this situation:
* Using [property_path](https://symfony.com/doc/current/reference/forms/types/form.html#property-path) configuration directive. It uses the full path to object property you are about to map form into—for example, `payment.paypal` maps your form to `QuoteTransfer:payment:paypal`; this works when the property is not on the same level and when you are using subforms.
* Using the main form that includes subforms. Each subform has to be configured with the `data_class` option, which is the FQCN of the transfer object you are about to use. This works when the property is on the top level.
-### Checkout form submission
+## Checkout form submission
-On form submission, the same processing starts with the difference that if form submit is detected, then the validation is called:
+On form submission, the same processing starts with the difference that if form submit's detected, then the validation is called:
* If the form is invalid, then the view is rendered with validation errors.
* If form data is valid, then `execute()` is called on the step that executes the step-related logic.
@@ -88,17 +88,17 @@ For example, add the address to `QuoteTransfer` or get payment details from Zed,
You decide what to do in each `execute()` method. It's essential that after `execute()` runs, the updated returned `QuoteTransfer` must satisfy `postCondition()` so that `StepProcess` can take another step from the stack.
-#### Required input
+### Required input
Normally each step requires input from the customer. However, there are cases when there is no need to render a form or a view, but some processing is still required, that is, `PlaceOrderStep` and `EntryStep`. Each step provides the implementation of the `requireInput()` method. `StepProcess` calls this method and reacts accordingly. If `requireInput()` is false, after running `execute()`, `postConditions` must be satisfied.
-#### Precondition and escape route
+### Precondition and escape route
Preconditions are called before each step; this is a check to indicate that the step can't be processed in a usual way.
For example, the cart is empty. If `preCondition()` returns false, the customer is redirected to `escapeRoute` provided when configuring the step.
-#### External redirect URL
+### External redirect URL
Sometimes it's required to redirect the customer to an external URL (outside application). The step must implement `StepWithExternalRedirectInterface::getExternalRedirectUrl()`, which returns the URL to redirect customer after `execute()` is ran.
@@ -110,11 +110,11 @@ Each step must implement `StepInterface`.
![Step_flow.png](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Checkout/Multi-Step+Checkout/Checkout+Process/step-flow.png)
-### Placing the order
+## Placing the order
After the customer clicks the submit button during `SummaryStep`, `PlaceOrderStep` is started. This step takes `QuoteTransfer` and starts the checkout workflow to store the order in the system. Zed's Checkout module contains some plugins where you can add additional behavior, check preconditions, and save or execute postcondition checks.
-#### Plugins
+### Plugins
Zed's Checkout module contains four types of plugins to extend the behavior on placing an order. Any plugin has access to `QuoteTransfer` that is supposed to be read-only and `CheckoutResponseTransfer` data object that can be modified.
@@ -123,7 +123,7 @@ Zed's Checkout module contains four types of plugins to extend the behavior on p
* `CheckPostConditions`—is for checking conditions after saving, the last time to react if something did not happen according to plan. It's called after the state machine execution.
* `PostSaveHook`—is called after order placement, and sets the success flag to false, if redirect must be headed to an error page afterward.
-#### Checkout response transfer
+### Checkout response transfer
* `isSuccess` (boolean)—indicates if the checkout process was successful.
* errors (`CheckoutErrorTransfer`)—list of errors that occurred during the execution of the plugins.
@@ -131,19 +131,19 @@ Zed's Checkout module contains four types of plugins to extend the behavior on p
* `redirectUrl` (string)—URL to redirect customer after the order was placed successfully.
* `saveOrder` (`SaveOrderTransfer`)—stores ids of the items that OrderSaver plugins have saved.
-#### Checkout error transfer
+### Checkout error transfer
* `errorCode` (int)—numeric error code. The checkout error codes are listed in the following section [Checkout error codes](#checkout-error-codes).
* `message` (string)—error message.
-#### Checkout error codes
+### Checkout error codes
* `4001`—customer email already used.
* `4002`—product unavailable.
* `4003`—cart amount does not match.
* `5000`—unknown error.
-#### Save order transfer
+### Save order transfer
* `idSalesOrder` (int)—The unique ID of the current saved order.
* `orderReference` (string)—An auto-generated unique ID of the order.
@@ -151,12 +151,12 @@ Zed's Checkout module contains four types of plugins to extend the behavior on p
There are already some plugins implemented with each of those types:
-#### Precondition plugins
+### Precondition plugins
* `CustomerPreConditionCheckerPlugin`—checks if the email of the customer is already used.
* `ProductsAvailableCheckoutPreConditionPlugin`—check if the items contained in the cart are in stock.
-#### Postcondition plugins
+### Postcondition plugins
* `OrderCustomerSavePlugin`—saves or creates a customer in the database if the customer is new or the ID is not set (guest customers are ignored).
* `SalesOrderSaverPlugin`—saves order information and creates `sales_order` and `sales_order_item` tables.
@@ -165,11 +165,11 @@ There are already some plugins implemented with each of those types:
* `OrderShipmentSavePlugin`—saves order shipment information to the `sales_expense` table.
* `SalesPaymentCheckoutDoSaveOrderPlugin`—saves order payments to the `spy_sales_payment` table.
-#### Pre-save condition plugin
+### Pre-save condition plugin
`SalesOrderExpanderPlugin`—expands items by quantity and recalculate quote.
-#### State machine
+### State machine
A state machine is triggered in the `CheckoutWorkflow` class from the Checkout module; the execution starts after precondition and order saver plugins store no errors into `CheckoutResponseTransfer`.
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-steps.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-steps.md
index 99f7e0e4ab8..7facabe4ebb 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-steps.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/extend-and-customize/checkout-steps.md
@@ -45,7 +45,7 @@ The checkout process consists of the following steps:
Read on to learn more on each step.
## Entry step
-The entry step redirects the customer to the correct step based on the `QuoteTransfer` state. This step requires `input = false`, so it is not rendered.
+The entry step redirects the customer to the correct step based on the `QuoteTransfer` state. This step requires `input = false`, so it's not rendered.
## Customer step
The customer step provides three forms:
@@ -56,7 +56,7 @@ The customer step provides three forms:
This step is responsible for filling `CustomerTransfer` with corresponding data. The authentication logic is left to the customer module, this step only delegates calls to and from the customer module and mapping data with forms.
## Address step
-The address step is the step where the customer fills billing and shipping addresses in `QuoteTransfer::billingAddress` and `QuoteTransfer::shippingAddress`, respectively. This step lets the returning customers select one of the existing addresses or create a new one. A new address will be created only if the **Save new address to address book** checkbox is selected. Otherwise, it is saved in the order but is not stored in the database. This allows a customer to skip the new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it's only created when the order is placed, and the `OrderCustomerSavePlugin` plugin is enabled.
+The address step is the step where the customer fills billing and shipping addresses in `QuoteTransfer::billingAddress` and `QuoteTransfer::shippingAddress`, respectively. This step lets the returning customers select one of the existing addresses or create a new one. A new address will be created only if the **Save new address to address book** checkbox is selected. Otherwise, it's saved in the order but is not stored in the database. This allows a customer to skip the new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it's only created when the order is placed, and the `OrderCustomerSavePlugin` plugin is enabled.
## Shipment step
Get shipment method information and store it in the quote. This step requires additional configuration because different shipment providers and different ways forms must be handled for each.
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/approval-process-feature-overview.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/approval-process-feature-overview.md
index e3fe1e3e26b..bfd6bb34756 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/approval-process-feature-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/approval-process-feature-overview.md
@@ -20,7 +20,7 @@ Permissions related to the approval process are configured based on the restrict
Approvers can only approve orders of employees *within their own business unit*.
-If an employee with a *Buy up to grand total* limit is in a business unit without any approvers, at the checkout, the employee can't see any approvers to send their order to and thus can't proceed with their order. Not even if another business unit of the same company does have an approver. And not even if that other business unit is the direct parent of the employee's business unit.
+If an employee with a *Buy up to grand total* limit's in a business unit without any approvers, at the checkout, the employee can't see any approvers to send their order to and thus can't proceed with their order. Not even if another business unit of the same company does have an approver. And not even if that other business unit is the direct parent of the employee's business unit.
{% endinfo_block %}
@@ -138,7 +138,7 @@ The company has the following company users:
| Manager | Approver | Has the *Approve up to grand total* permission set to €600. |
| Head of the department | Approver | Has the *Approve up to grand total* permission set to €1000. |
-Quote C needs approval that has to be provided by the head of the department because the manager's approval limit is lower than the quote grand total. After the request has been approved by the head of the department, the buyer can complete the checkout.
+Quote C needs approval that has to be provided by the head of the department because the manager's approval limit's lower than the quote grand total. After the request has been approved by the head of the department, the buyer can complete the checkout.
#### Case 4: Approval Process is not initiated
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md
index 572f3147f74..06043caa999 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md
@@ -25,4 +25,4 @@ For the **Add to cart** icon to be active for the product on the **Catalog** pag
A product belonging to a [product group](/docs/pbc/all/product-information-management/{{site.version}}/base-shop/feature-overviews/product-feature-overview/product-feature-overview.html) can also be added to the cart from the **Category** page. However, like with regular products, a product from the product group must have no more than one variant and be available.
-If a product has [options](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/feature-overviews/product-options-feature-overview.html), it can be added to the cart from the Category page, but it is added without any options.
+If a product has [options](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/feature-overviews/product-options-feature-overview.html), it can be added to the cart from the Category page, but it's added without any options.
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md
index 05007878a4a..4e34fd82ab1 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md
@@ -95,7 +95,7 @@ All the thresholds have a store relation. If you have a multi-store and multi-cu
## Merchant order thresholds
-A *merchant order threshold* is a threshold that is applied to the customers belonging to the [merchant relation](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/merchant-b2b-contracts-and-contract-requests-feature-overview.html) for which it is defined.
+A *merchant order threshold* is a threshold that is applied to the customers belonging to the [merchant relation](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/merchant-b2b-contracts-and-contract-requests-feature-overview.html) for which it's defined.
If global and merchant order thresholds are defined, both are applied to the customers' orders belonging to the merchant relation.
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/comments-feature-overview.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/comments-feature-overview.md
index 85d096f0afe..9d6a376b3a2 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/comments-feature-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/comments-feature-overview.md
@@ -23,7 +23,7 @@ Thus, the Comments feature lets your B2B customers effectively communicate and d
## Comments widget
-Within the Comments feature, we have created the Comments widget. The widget can be placed on any entity page. In our case, it is the **Shopping Cart** page.
+Within the Comments feature, we have created the Comments widget. The widget can be placed on any entity page. In our case, it's the **Shopping Cart** page.
The comment contains the following information:
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/quick-add-to-cart-feature-overview.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/quick-add-to-cart-feature-overview.md
index 3b820acd7bf..93417e40e48 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/quick-add-to-cart-feature-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/feature-overviews/quick-add-to-cart-feature-overview.md
@@ -116,7 +116,7 @@ You can upload only one file at a time.
By default, only concrete SKUs are validated. On successful upload, items and quantities are extracted and filled out in the quick order form fields.
-In case the quantity is not valid due to [quantity restrictions](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/feature-overviews/non-splittable-products-feature-overview.html) setting, the quantity is changed to a valid number.
+In case the quantity is not valid because of [quantity restrictions](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/feature-overviews/non-splittable-products-feature-overview.html) setting, the quantity is changed to a valid number.
If there are already products added to the quick order list, the products from the CSV file are added to the bottom of the quick order template.
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-global-thresholds.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-global-thresholds.md
index 36cf02caa74..f0b01fb703f 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-global-thresholds.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-global-thresholds.md
@@ -69,7 +69,7 @@ In the **Message** field, enter *{% raw %}{{{% endraw %}threshold{% raw %}}}{% e
| ATTRIBUTE |DESCRIPTION|
| --- | --- |
-| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it is displayed. |
+| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it's displayed. |
| ENTER THRESHOLD VALUE | Depending on the threshold type, defines the value that should be reached or not reached.|
|MESSAGE |Short message that informs the customer about the threshold conditions. For example, _You should add items for {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} to pass a recommended threshold. You can't proceed with checkout._
Enter {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} or {% raw %}{{{% endraw %}fee{% raw %}}}{% endraw %} to reference the threshold name or the defined fee respectively. When the message is rendered on the Storefront, the placeholders are replaced with the values from **Enter threshold value** and **Enter flexible fee** or **Enter fixed fee** fields. |
| ENTER FIXED FEE | Adds this value to cart if the threshold is not reached. |
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md
index a978691f21c..105ff504470 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md
@@ -73,7 +73,7 @@ The page refreshes with a success message displayed.
| ATTRIBUTE |DESCRIPTION|
| --- | --- |
-| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it is displayed. |
+| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it's displayed. |
| ENTER THRESHOLD VALUE | Depending on the threshold type, defines the value that should be reached or not reached.|
|MESSAGE |Short message that informs the customer about the threshold conditions. For example, _You should add items for {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} to pass a recommended threshold. You can't proceed with checkout._
Enter {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} or {% raw %}{{{% endraw %}fee{% raw %}}}{% endraw %} to reference the threshold name or the defined fee respectively. When the message is rendered on the Storefront, the placeholders are replaced with the values from **Enter threshold value** and **Enter flexible fee** or **Enter fixed fee** fields. |
| ENTER FIXED FEE | Adds this value to cart if the threshold is not reached. |
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md
index 8147d22b943..794a48b9248 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md
@@ -16,7 +16,7 @@ This endpoint allows finalizing the checkout process by placing an order.
After sending a request, the cart is deleted, and you cannot make any further changes in the checkout data. This means the endpoint is best used for checkouts that can be performed in one pass or for finalizing a checkout after [submitting checkout data](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.html).
-The endpoint also provides information on whether it is necessary to redirect the user to a third-party page to complete the payment.
+The endpoint also provides information on whether it's necessary to redirect the user to a third-party page to complete the payment.
## Installation
@@ -1212,7 +1212,7 @@ To retrieve order shipments, include `orders` and `order-shipments`.
| STATUS | REASONS |
| --- | --- |
-| 400 | Bad request. This error can occur due to the following reasons:
The POST data is incorrect;
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
+| 400 | Bad request. This error can occur because of the following reasons:
The POST data is incorrect;
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
| 404 | Order not found. |
| 422 | Order payment is not updated. Checkout data is incorrect. |
| 1101 | Checkout data is invalid. |
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md
index 9a8ce0ec108..4417d89ac72 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md
@@ -1173,8 +1173,8 @@ In case of a successful update, the endpoint responds with information that can
| addresses | iso2Code | String | Specifies an ISO 2 Country Code to use. |
| addresses | company | String | Specifies the customer's company. |
| addresses | phone | String | Specifies the customer's phone number. |
-| addresses | isDefaultShipping | String | Defines if it is the default shipping address of the customer. |
-| addresses | isDefaultBilling | String | Defines if it is the default billing address of the customer. |
+| addresses | isDefaultShipping | String | Defines if it's the default shipping address of the customer. |
+| addresses | isDefaultBilling | String | Defines if it's the default billing address of the customer. |
| shipments | Items | Array | A list of items in the shipment. |
| shipments | requestedDeliveryDate | Date | Desired delivery date. |
| shipments | shippingAddress | Object | The address to which this shipment will be delivered. |
@@ -1221,7 +1221,7 @@ In case of a successful update, the endpoint responds with information that can
| CODE | REASON |
| --- | --- |
-| 400 | Bad request. This error can occur due to the following reasons:
The POST data is incorrect.
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
+| 400 | Bad request. This error can occur because of the following reasons:
The POST data is incorrect.
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
| 422 | The checkout data is incorrect. |
| 1101 | Checkout data is invalid. |
| 1102 | Order cannot be placed. |
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md
index e48232f20aa..2bd5d9843aa 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md
@@ -3002,7 +3002,7 @@ To delete a cart, send the request:
{% info_block infoBox "Deleting carts" %}
-You cannot delete a cart if it is the customer's only cart. If you attempt to delete a customer's last cart, the endpoint responds with the **422 Unprocessable Entry** status code. If you delete the default cart of a customer, another cart will be assigned as default automatically.
+You cannot delete a cart if it's the customer's only cart. If you attempt to delete a customer's last cart, the endpoint responds with the **422 Unprocessable Entry** status code. If you delete the default cart of a customer, another cart will be assigned as default automatically.
{% endinfo_block %}
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md
index bc1e48de308..25b4b6a4538 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md
@@ -2691,7 +2691,7 @@ To change the number of items in a cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| ***cart_uuid*** | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#create-a-cart) or [Retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#retrieve-registered-users-carts) to get it. |
-| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it is equal to the item’s SKU. |
+| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it's equal to the item’s SKU. |
### Request
@@ -3176,7 +3176,7 @@ To remove an item from a registered user's cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| ***{% raw %}{{{% endraw %}cart_uuid{% raw %}}}{% endraw %}*** | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#create-a-cart) or [Retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#retrieve-registered-users-carts) to get it. |
-| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it is equal to the item’s SKU. |
+| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it's equal to the item’s SKU. |
### Request
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md
index b843729cd90..a14136fb6f2 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md
@@ -2879,7 +2879,7 @@ To change item quantity, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| ***{% raw %}{{{% endraw %}guest_cart_id{% raw %}}}{% endraw %}*** | The unique ID of the guest cart in the system. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). |
-| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
+| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
### Request
@@ -3250,7 +3250,7 @@ To remove an item from a guest cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| ***{% raw %}{{{% endraw %}guest_cart_id{% raw %}}}{% endraw %}*** | The unique ID of the guest cart in the system. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). |
-| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
+| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
### Request
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md
index 81db053841c..c77c806b2ad 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md
@@ -1006,7 +1006,7 @@ For the attributes of other included resources, see:
Guest carts are anonymous as they are not related to any user. If a user registers or logs in, the guest cart can be automatically assigned to their account.
-To assign a guest cart to a customer, for example, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it is an existing customer, or request to create a customer account if it is a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart:
+To assign a guest cart to a customer, for example, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it's an existing customer, or request to create a customer account if it's a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart:
**src/Pyz/Zed/CartsRestApi/CartsRestApiConfig.php**
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md
index 4cbc9a411ad..645ee521a4b 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md
@@ -85,7 +85,7 @@ class ItemTaxAmountCalculatorPlugin extends AbstractPlugin implements Calculatio
}
```
-6. Add a new facade method: `Pyz\Zed\Tax\TaxFacade::calculateItemTax()` and create the `TaxFacade` class extending Spryker Core `TaxFacade` if it is not present.
+6. Add a new facade method: `Pyz\Zed\Tax\TaxFacade::calculateItemTax()` and create the `TaxFacade` class extending Spryker Core `TaxFacade` if it's not present.
```php
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -4270,7 +4270,7 @@ To retrieve a registered user's cart, send the request:
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md
index a8ef70a03c3..d355d594a99 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md
@@ -1470,7 +1470,7 @@ It is the responsibility of the API Client to track whether the selected items a
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -1547,7 +1547,7 @@ It is the responsibility of the API Client to track whether the selected items a
| groupKey | String | Unique item identifier. The value is generated based on product properties. |
| abstractSku | String | Unique identifier of the abstract product owning this concrete product. |
| amount | Integer | Amount of the products in the cart. |
-| unitPrice | Integer | Single item price without assuming if it is net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. |
+| unitPrice | Integer | Single item price without assuming if it's net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. |
| sumPrice | Integer | Sum of all items prices calculated. |
| taxRate | Integer | Current tax rate in percent. |
| unitNetPrice | Integer | Single item net price. |
@@ -1614,7 +1614,7 @@ To change the number of items in a cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| {% raw %}***{{cart_uuid}}***{% endraw %} | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html) or [retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html#retrieve-a-registered-users-cart) to get it. |
-| {% raw %}***{{item_group_key}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. |
+| {% raw %}***{{item_group_key}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. |
### Request
@@ -1784,7 +1784,7 @@ To remove an item from a registered user's cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| {% raw %}***{{cart_uuid}}***{% endraw %} | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html) or [retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html#retrieve-a-registered-users-cart) to get it. |
-| {% raw %}***{{item_group_key}}***{% endraw %}| Group key of the item. Usually, it is equal to the item’s SKU. |
+| {% raw %}***{{item_group_key}}***{% endraw %}| Group key of the item. Usually, it's equal to the item’s SKU. |
### Request
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md b/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md
index 35e673ffb17..67fd6bea1c0 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md
@@ -1593,7 +1593,7 @@ It is the responsibility of the API Client to track whether the selected items a
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -1760,7 +1760,7 @@ To change item quantity, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| {% raw %}***{{guest_cart_id}}***{% endraw %}| Unique identifier of the guest cart. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). |
-| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
+| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
### Request
@@ -1823,7 +1823,7 @@ To remove an item from a guest cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| {% raw %}***{{guest_cart_id}}***{% endraw %}| Unique identifier of the guest cart. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). |
-| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
+| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
### Request
diff --git a/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md b/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md
index f20f35baa25..45181eada92 100644
--- a/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md
+++ b/docs/pbc/all/cart-and-checkout/202311.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md
@@ -1811,7 +1811,7 @@ When retrieving the cart with `guestCartId`, the response includes a single obje
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -1948,7 +1948,7 @@ For the attributes of other included resources, see:
Guest carts are anonymous as they are not related to any user. If a user registers or logs in, the guest cart can be automatically assigned to their account.
-To assign a guest cart to a customer, that is, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it is an existing customer, or request to create a customer account if it is a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart:
+To assign a guest cart to a customer, that is, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it's an existing customer, or request to create a customer account if it's a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart:
**src/Pyz/Zed/CartsRestApi/CartsRestApiConfig.php**
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/calculation-data-structure.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/calculation-data-structure.md
index 5d0e1ca3cd1..21552f869da 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/calculation-data-structure.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/calculation-data-structure.md
@@ -62,7 +62,7 @@ The entire data object is stored in the session, and it consists of the followin
|sumGrossPrice (int)|The sum of item's gross price, calculated with `PriceCalculatorPlugin`.|
|unitNetPrice (int) | A single item net price, set with `CartItemPricePlugin` (cart expander). |
| sumNetPrice (int) | The sum of items net price, calculated with `PriceCalculatorPlugin`. |
-| unitPrice (int) | A single item price without assuming whether it is new or gross. This value must be used everywhere the price is displayed. It lets you switch tax mode without side effects. It's set with `CartItemPricePlugin` (cart expander). |
+| unitPrice (int) | A single item price without assuming whether it's new or gross. This value must be used everywhere the price is displayed. It lets you switch tax mode without side effects. It's set with `CartItemPricePlugin` (cart expander). |
| sumPrice (int) | The sum of item's price calculated with `PriceCalculatorPlugin`. |
| taxRate (float) | The current tax rate set by `ProductItemTaxRateCalculatorPlugin`. |
| refundableAmount (int) | The item's available refundable amount (order only). It's set by `RefundableAmountCalculatorPlugin`. |
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md
index 7021b48f2ac..8f349b7a7cd 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md
@@ -1,6 +1,6 @@
---
title: Checkout process review and implementation
-description: This document provides an overview of the checkout process and how it is implemented in Spryker.
+description: This document provides an overview of the checkout process and how it's implemented in Spryker.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/checkout-process-review-and-implementation
@@ -27,7 +27,7 @@ related:
link: docs/scos/dev/back-end-development/data-manipulation/datapayload-conversion/checkout/checkout-steps.html
---
-### Checkout process
+## Checkout process
To use the checkout in Yves, you need to configure it correctly and provide dependencies. Each step can have a form, a controller action, the implementation of the step logic, and a Twig template to render the HTML.
@@ -54,13 +54,13 @@ Using a data provider is the only way to pass any external data to the form and
Each data provider is passed when `FormCollection` is created. When the handle method is called, the `FormCollection` handler creates all form types and passes the data from data providers to them.
-### Checkout quote transfer lifetime
+## Checkout quote transfer lifetime
![Quote_transfer_lifetime.png](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Checkout/Multi-Step+Checkout/Checkout+Process/quote-transfer-lifetime.png)
When a process or `postCondition()` is called on `StepProcess`, it tries to get the current valid step by walking through the stack of steps and calling `postCondition()` for each, starting from the first in the stack. If `postCondition()` fails, then this step is used for later processing. After that, the view variables with `QuoteTransfer` and form are passed to Twig, and the HTML is rendered.
-#### Postcondition
+### Postcondition
_Postcondition_ is an essential part of the Processing step. It indicates if a step has all the data that it needs and if its requirements are satisfied. You can't access the next step from the stack if the previous step's postconditions are not met, but you can navigate to any step where postconditions are satisfied (`return true`).
@@ -68,19 +68,19 @@ Postconditions are called twice per step processing:
* To find the current step or if we can access the current step.
* After `execute()`, to make sure the step was completed and that we can continue to the next step.
-#### Postcondition error route
+### Postcondition error route
Inside your step, you can set a postcondition error route if you need to redirect to another error route than the one specified during the step construction.
-### How the quote transfer is mapped inside forms
+## How the quote transfer is mapped inside forms
Symfony forms provide a mechanism to store data into objects without needing manual mapping. It's called [Data transformers](https://symfony.com/doc/current/form/data_transformers.html). There are a few important conditions required to make this work. Because you are passing the entire `QuoteTransfer`, the form handler does not know which fields you are trying to use. Symfony provides a few ways to handle this situation:
* Using [property_path](https://symfony.com/doc/current/reference/forms/types/form.html#property-path) configuration directive. It uses the full path to object property you are about to map form into—for example, `payment.paypal` maps your form to `QuoteTransfer:payment:paypal`; this works when the property is not on the same level and when you are using subforms.
* Using the main form that includes subforms. Each subform has to be configured with the `data_class` option, which is the FQCN of the transfer object you are about to use. This works when the property is on the top level.
-### Checkout form submission
+## Checkout form submission
-On form submission, the same processing starts with the difference that if form submit is detected, then the validation is called:
+On form submission, the same processing starts with the difference that if form submit's detected, then the validation is called:
* If the form is invalid, then the view is rendered with validation errors.
* If form data is valid, then `execute()` is called on the step that executes the step-related logic.
@@ -88,17 +88,17 @@ For example, add the address to `QuoteTransfer` or get payment details from Zed,
You decide what to do in each `execute()` method. It's essential that after `execute()` runs, the updated returned `QuoteTransfer` must satisfy `postCondition()` so that `StepProcess` can take another step from the stack.
-#### Required input
+### Required input
Normally each step requires input from the customer. However, there are cases when there is no need to render a form or a view, but some processing is still required, that is, `PlaceOrderStep` and `EntryStep`. Each step provides the implementation of the `requireInput()` method. `StepProcess` calls this method and reacts accordingly. If `requireInput()` is false, after running `execute()`, `postConditions` must be satisfied.
-#### Precondition and escape route
+### Precondition and escape route
Preconditions are called before each step; this is a check to indicate that the step can't be processed in a usual way.
For example, the cart is empty. If `preCondition()` returns false, the customer is redirected to `escapeRoute` provided when configuring the step.
-#### External redirect URL
+### External redirect URL
Sometimes it's required to redirect the customer to an external URL (outside application). The step must implement `StepWithExternalRedirectInterface::getExternalRedirectUrl()`, which returns the URL to redirect customer after `execute()` is ran.
@@ -110,11 +110,11 @@ Each step must implement `StepInterface`.
![Step_flow.png](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Checkout/Multi-Step+Checkout/Checkout+Process/step-flow.png)
-### Placing the order
+## Placing the order
After the customer clicks the submit button during `SummaryStep`, `PlaceOrderStep` is started. This step takes `QuoteTransfer` and starts the checkout workflow to store the order in the system. Zed's Checkout module contains some plugins where you can add additional behavior, check preconditions, and save or execute postcondition checks.
-#### Plugins
+### Plugins
Zed's Checkout module contains four types of plugins to extend the behavior on placing an order. Any plugin has access to `QuoteTransfer` that is supposed to be read-only and `CheckoutResponseTransfer` data object that can be modified.
@@ -123,7 +123,7 @@ Zed's Checkout module contains four types of plugins to extend the behavior on p
* `CheckPostConditions`—is for checking conditions after saving, the last time to react if something did not happen according to plan. It's called after the state machine execution.
* `PostSaveHook`—is called after order placement, and sets the success flag to false, if redirect must be headed to an error page afterward.
-#### Checkout response transfer
+### Checkout response transfer
* `isSuccess` (boolean)—indicates if the checkout process was successful.
* errors (`CheckoutErrorTransfer`)—list of errors that occurred during the execution of the plugins.
@@ -131,19 +131,19 @@ Zed's Checkout module contains four types of plugins to extend the behavior on p
* `redirectUrl` (string)—URL to redirect customer after the order was placed successfully.
* `saveOrder` (`SaveOrderTransfer`)—stores ids of the items that OrderSaver plugins have saved.
-#### Checkout error transfer
+### Checkout error transfer
* `errorCode` (int)—numeric error code. The checkout error codes are listed in the following section [Checkout error codes](#checkout-error-codes).
* `message` (string)—error message.
-#### Checkout error codes
+### Checkout error codes
* `4001`—customer email already used.
* `4002`—product unavailable.
* `4003`—cart amount does not match.
* `5000`—unknown error.
-#### Save order transfer
+### Save order transfer
* `idSalesOrder` (int)—The unique ID of the current saved order.
* `orderReference` (string)—An auto-generated unique ID of the order.
@@ -151,12 +151,12 @@ Zed's Checkout module contains four types of plugins to extend the behavior on p
There are already some plugins implemented with each of those types:
-#### Precondition plugins
+### Precondition plugins
* `CustomerPreConditionCheckerPlugin`—checks if the email of the customer is already used.
* `ProductsAvailableCheckoutPreConditionPlugin`—check if the items contained in the cart are in stock.
-#### Postcondition plugins
+### Postcondition plugins
* `OrderCustomerSavePlugin`—saves or creates a customer in the database if the customer is new or the ID is not set (guest customers are ignored).
* `SalesOrderSaverPlugin`—saves order information and creates `sales_order` and `sales_order_item` tables.
@@ -165,11 +165,11 @@ There are already some plugins implemented with each of those types:
* `OrderShipmentSavePlugin`—saves order shipment information to the `sales_expense` table.
* `SalesPaymentCheckoutDoSaveOrderPlugin`—saves order payments to the `spy_sales_payment` table.
-#### Pre-save condition plugin
+### Pre-save condition plugin
`SalesOrderExpanderPlugin`—expands items by quantity and recalculate quote.
-#### State machine
+### State machine
A state machine is triggered in the `CheckoutWorkflow` class from the Checkout module; the execution starts after precondition and order saver plugins store no errors into `CheckoutResponseTransfer`.
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-steps.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-steps.md
index 99f7e0e4ab8..7facabe4ebb 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-steps.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/extend-and-customize/checkout-steps.md
@@ -45,7 +45,7 @@ The checkout process consists of the following steps:
Read on to learn more on each step.
## Entry step
-The entry step redirects the customer to the correct step based on the `QuoteTransfer` state. This step requires `input = false`, so it is not rendered.
+The entry step redirects the customer to the correct step based on the `QuoteTransfer` state. This step requires `input = false`, so it's not rendered.
## Customer step
The customer step provides three forms:
@@ -56,7 +56,7 @@ The customer step provides three forms:
This step is responsible for filling `CustomerTransfer` with corresponding data. The authentication logic is left to the customer module, this step only delegates calls to and from the customer module and mapping data with forms.
## Address step
-The address step is the step where the customer fills billing and shipping addresses in `QuoteTransfer::billingAddress` and `QuoteTransfer::shippingAddress`, respectively. This step lets the returning customers select one of the existing addresses or create a new one. A new address will be created only if the **Save new address to address book** checkbox is selected. Otherwise, it is saved in the order but is not stored in the database. This allows a customer to skip the new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it's only created when the order is placed, and the `OrderCustomerSavePlugin` plugin is enabled.
+The address step is the step where the customer fills billing and shipping addresses in `QuoteTransfer::billingAddress` and `QuoteTransfer::shippingAddress`, respectively. This step lets the returning customers select one of the existing addresses or create a new one. A new address will be created only if the **Save new address to address book** checkbox is selected. Otherwise, it's saved in the order but is not stored in the database. This allows a customer to skip the new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it's only created when the order is placed, and the `OrderCustomerSavePlugin` plugin is enabled.
## Shipment step
Get shipment method information and store it in the quote. This step requires additional configuration because different shipment providers and different ways forms must be handled for each.
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/approval-process-feature-overview.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/approval-process-feature-overview.md
index 134526ad96f..709864692cc 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/approval-process-feature-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/approval-process-feature-overview.md
@@ -20,7 +20,7 @@ Permissions related to the approval process are configured based on the restrict
Approvers can only approve orders of employees *within their own business unit*.
-If an employee with a *Buy up to grand total* limit is in a business unit without any approvers, at the checkout, the employee can't see any approvers to send their order to and thus can't proceed with their order. Not even if another business unit of the same company does have an approver. And not even if that other business unit is the direct parent of the employee's business unit.
+If an employee with a *Buy up to grand total* limit's in a business unit without any approvers, at the checkout, the employee can't see any approvers to send their order to and thus can't proceed with their order. Not even if another business unit of the same company does have an approver. And not even if that other business unit is the direct parent of the employee's business unit.
{% endinfo_block %}
@@ -138,7 +138,7 @@ The company has the following company users:
| Manager | Approver | Has the *Approve up to grand total* permission set to €600. |
| Head of the department | Approver | Has the *Approve up to grand total* permission set to €1000. |
-Quote C needs approval that has to be provided by the head of the department because the manager's approval limit is lower than the quote grand total. After the request has been approved by the head of the department, the buyer can complete the checkout.
+Quote C needs approval that has to be provided by the head of the department because the manager's approval limit's lower than the quote grand total. After the request has been approved by the head of the department, the buyer can complete the checkout.
#### Case 4: Approval Process is not initiated
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md
index 572f3147f74..06043caa999 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md
@@ -25,4 +25,4 @@ For the **Add to cart** icon to be active for the product on the **Catalog** pag
A product belonging to a [product group](/docs/pbc/all/product-information-management/{{site.version}}/base-shop/feature-overviews/product-feature-overview/product-feature-overview.html) can also be added to the cart from the **Category** page. However, like with regular products, a product from the product group must have no more than one variant and be available.
-If a product has [options](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/feature-overviews/product-options-feature-overview.html), it can be added to the cart from the Category page, but it is added without any options.
+If a product has [options](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/feature-overviews/product-options-feature-overview.html), it can be added to the cart from the Category page, but it's added without any options.
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md
index 05007878a4a..4e34fd82ab1 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md
@@ -95,7 +95,7 @@ All the thresholds have a store relation. If you have a multi-store and multi-cu
## Merchant order thresholds
-A *merchant order threshold* is a threshold that is applied to the customers belonging to the [merchant relation](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/merchant-b2b-contracts-and-contract-requests-feature-overview.html) for which it is defined.
+A *merchant order threshold* is a threshold that is applied to the customers belonging to the [merchant relation](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/merchant-b2b-contracts-and-contract-requests-feature-overview.html) for which it's defined.
If global and merchant order thresholds are defined, both are applied to the customers' orders belonging to the merchant relation.
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/comments-feature-overview.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/comments-feature-overview.md
index 85d096f0afe..9d6a376b3a2 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/comments-feature-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/comments-feature-overview.md
@@ -23,7 +23,7 @@ Thus, the Comments feature lets your B2B customers effectively communicate and d
## Comments widget
-Within the Comments feature, we have created the Comments widget. The widget can be placed on any entity page. In our case, it is the **Shopping Cart** page.
+Within the Comments feature, we have created the Comments widget. The widget can be placed on any entity page. In our case, it's the **Shopping Cart** page.
The comment contains the following information:
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/quick-add-to-cart-feature-overview.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/quick-add-to-cart-feature-overview.md
index 45a7c9b89e8..5d95efeb1d5 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/quick-add-to-cart-feature-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/feature-overviews/quick-add-to-cart-feature-overview.md
@@ -116,7 +116,7 @@ You can upload only one file at a time.
By default, only concrete SKUs are validated. On successful upload, items and quantities are extracted and filled out in the quick order form fields.
-In case the quantity is not valid due to [quantity restrictions](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/feature-overviews/non-splittable-products-feature-overview.html) setting, the quantity is changed to a valid number.
+In case the quantity is not valid because of [quantity restrictions](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/feature-overviews/non-splittable-products-feature-overview.html) setting, the quantity is changed to a valid number.
If there are already products added to the quick order list, the products from the CSV file are added to the bottom of the quick order template.
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-global-thresholds.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-global-thresholds.md
index 36cf02caa74..f0b01fb703f 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-global-thresholds.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-global-thresholds.md
@@ -69,7 +69,7 @@ In the **Message** field, enter *{% raw %}{{{% endraw %}threshold{% raw %}}}{% e
| ATTRIBUTE |DESCRIPTION|
| --- | --- |
-| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it is displayed. |
+| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it's displayed. |
| ENTER THRESHOLD VALUE | Depending on the threshold type, defines the value that should be reached or not reached.|
|MESSAGE |Short message that informs the customer about the threshold conditions. For example, _You should add items for {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} to pass a recommended threshold. You can't proceed with checkout._
Enter {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} or {% raw %}{{{% endraw %}fee{% raw %}}}{% endraw %} to reference the threshold name or the defined fee respectively. When the message is rendered on the Storefront, the placeholders are replaced with the values from **Enter threshold value** and **Enter flexible fee** or **Enter fixed fee** fields. |
| ENTER FIXED FEE | Adds this value to cart if the threshold is not reached. |
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md
index a978691f21c..105ff504470 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md
@@ -73,7 +73,7 @@ The page refreshes with a success message displayed.
| ATTRIBUTE |DESCRIPTION|
| --- | --- |
-| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it is displayed. |
+| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it's displayed. |
| ENTER THRESHOLD VALUE | Depending on the threshold type, defines the value that should be reached or not reached.|
|MESSAGE |Short message that informs the customer about the threshold conditions. For example, _You should add items for {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} to pass a recommended threshold. You can't proceed with checkout._
Enter {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} or {% raw %}{{{% endraw %}fee{% raw %}}}{% endraw %} to reference the threshold name or the defined fee respectively. When the message is rendered on the Storefront, the placeholders are replaced with the values from **Enter threshold value** and **Enter flexible fee** or **Enter fixed fee** fields. |
| ENTER FIXED FEE | Adds this value to cart if the threshold is not reached. |
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md
index 8147d22b943..794a48b9248 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md
@@ -16,7 +16,7 @@ This endpoint allows finalizing the checkout process by placing an order.
After sending a request, the cart is deleted, and you cannot make any further changes in the checkout data. This means the endpoint is best used for checkouts that can be performed in one pass or for finalizing a checkout after [submitting checkout data](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.html).
-The endpoint also provides information on whether it is necessary to redirect the user to a third-party page to complete the payment.
+The endpoint also provides information on whether it's necessary to redirect the user to a third-party page to complete the payment.
## Installation
@@ -1212,7 +1212,7 @@ To retrieve order shipments, include `orders` and `order-shipments`.
| STATUS | REASONS |
| --- | --- |
-| 400 | Bad request. This error can occur due to the following reasons:
The POST data is incorrect;
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
+| 400 | Bad request. This error can occur because of the following reasons:
The POST data is incorrect;
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
| 404 | Order not found. |
| 422 | Order payment is not updated. Checkout data is incorrect. |
| 1101 | Checkout data is invalid. |
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md
index 882f59e6191..fb4dc761fb0 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md
@@ -1172,7 +1172,7 @@ In case of a successful update, the endpoint responds with information that can
| CODE | REASON |
| --- | --- |
-| 400 | Bad request. This error can occur due to the following reasons:
The POST data is incorrect.
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
+| 400 | Bad request. This error can occur because of the following reasons:
The POST data is incorrect.
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
| 422 | The checkout data is incorrect. |
| 1101 | Checkout data is invalid. |
| 1102 | Order cannot be placed. |
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md
index b8861ef6993..b03fa816fd9 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md
@@ -3006,7 +3006,7 @@ To delete a cart, send the request:
{% info_block infoBox "Deleting carts" %}
-You cannot delete a cart if it is the customer's only cart. If you attempt to delete a customer's last cart, the endpoint responds with the **422 Unprocessable Entry** status code. If you delete the default cart of a customer, another cart will be assigned as default automatically.
+You cannot delete a cart if it's the customer's only cart. If you attempt to delete a customer's last cart, the endpoint responds with the **422 Unprocessable Entry** status code. If you delete the default cart of a customer, another cart will be assigned as default automatically.
{% endinfo_block %}
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md
index 50f138993a1..5d2a6ed4c0c 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md
@@ -2704,7 +2704,7 @@ To change the number of items in a cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| ***cart_uuid*** | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#create-a-cart) or [Retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#retrieve-registered-users-carts) to get it. |
-| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it is equal to the item’s SKU. |
+| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it's equal to the item’s SKU. |
### Request
@@ -3189,7 +3189,7 @@ To remove an item from a registered user's cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| ***{% raw %}{{{% endraw %}cart_uuid{% raw %}}}{% endraw %}*** | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#create-a-cart) or [Retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#retrieve-registered-users-carts) to get it. |
-| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it is equal to the item’s SKU. |
+| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it's equal to the item’s SKU. |
### Request
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md
index 5ff5eddd985..135ecbfad06 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md
@@ -2890,7 +2890,7 @@ To change item quantity, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| ***{% raw %}{{{% endraw %}guest_cart_id{% raw %}}}{% endraw %}*** | The unique ID of the guest cart in the system. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). |
-| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
+| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
### Request
@@ -3274,7 +3274,7 @@ To remove an item from a guest cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| ***{% raw %}{{{% endraw %}guest_cart_id{% raw %}}}{% endraw %}*** | The unique ID of the guest cart in the system. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). |
-| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
+| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
### Request
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md
index 1a0b73dc91c..c5f0160b9aa 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md
@@ -1006,7 +1006,7 @@ When retrieving the cart with `guestCartId`, the response includes a single obje
Guest carts are anonymous as they are not related to any user. If a user registers or logs in, the guest cart can be automatically assigned to their account.
-To assign a guest cart to a customer, for example, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it is an existing customer, or request to create a customer account if it is a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart:
+To assign a guest cart to a customer, for example, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it's an existing customer, or request to create a customer account if it's a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart:
**src/Pyz/Zed/CartsRestApi/CartsRestApiConfig.php**
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md
index 4cbc9a411ad..645ee521a4b 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md
@@ -85,7 +85,7 @@ class ItemTaxAmountCalculatorPlugin extends AbstractPlugin implements Calculatio
}
```
-6. Add a new facade method: `Pyz\Zed\Tax\TaxFacade::calculateItemTax()` and create the `TaxFacade` class extending Spryker Core `TaxFacade` if it is not present.
+6. Add a new facade method: `Pyz\Zed\Tax\TaxFacade::calculateItemTax()` and create the `TaxFacade` class extending Spryker Core `TaxFacade` if it's not present.
```php
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -4272,7 +4272,7 @@ To retrieve a registered user's cart, send the request:
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md
index a8ef70a03c3..d355d594a99 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md
@@ -1470,7 +1470,7 @@ It is the responsibility of the API Client to track whether the selected items a
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -1547,7 +1547,7 @@ It is the responsibility of the API Client to track whether the selected items a
| groupKey | String | Unique item identifier. The value is generated based on product properties. |
| abstractSku | String | Unique identifier of the abstract product owning this concrete product. |
| amount | Integer | Amount of the products in the cart. |
-| unitPrice | Integer | Single item price without assuming if it is net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. |
+| unitPrice | Integer | Single item price without assuming if it's net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. |
| sumPrice | Integer | Sum of all items prices calculated. |
| taxRate | Integer | Current tax rate in percent. |
| unitNetPrice | Integer | Single item net price. |
@@ -1614,7 +1614,7 @@ To change the number of items in a cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| {% raw %}***{{cart_uuid}}***{% endraw %} | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html) or [retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html#retrieve-a-registered-users-cart) to get it. |
-| {% raw %}***{{item_group_key}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. |
+| {% raw %}***{{item_group_key}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. |
### Request
@@ -1784,7 +1784,7 @@ To remove an item from a registered user's cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| {% raw %}***{{cart_uuid}}***{% endraw %} | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html) or [retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html#retrieve-a-registered-users-cart) to get it. |
-| {% raw %}***{{item_group_key}}***{% endraw %}| Group key of the item. Usually, it is equal to the item’s SKU. |
+| {% raw %}***{{item_group_key}}***{% endraw %}| Group key of the item. Usually, it's equal to the item’s SKU. |
### Request
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md b/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md
index 35e673ffb17..67fd6bea1c0 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md
@@ -1593,7 +1593,7 @@ It is the responsibility of the API Client to track whether the selected items a
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -1760,7 +1760,7 @@ To change item quantity, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| {% raw %}***{{guest_cart_id}}***{% endraw %}| Unique identifier of the guest cart. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). |
-| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
+| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
### Request
@@ -1823,7 +1823,7 @@ To remove an item from a guest cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| {% raw %}***{{guest_cart_id}}***{% endraw %}| Unique identifier of the guest cart. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). |
-| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
+| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
### Request
diff --git a/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md b/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md
index 31fbed8ec03..d0ca2ac1e9b 100644
--- a/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md
+++ b/docs/pbc/all/cart-and-checkout/202404.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md
@@ -1811,7 +1811,7 @@ When retrieving the cart with `guestCartId`, the response includes a single obje
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -1950,7 +1950,7 @@ For the attributes of other included resources, see:
Guest carts are anonymous as they are not related to any user. If a user registers or logs in, the guest cart can be automatically assigned to their account.
-To assign a guest cart to a customer, that is, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it is an existing customer, or request to create a customer account if it is a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart:
+To assign a guest cart to a customer, that is, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it's an existing customer, or request to create a customer account if it's a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart:
**src/Pyz/Zed/CartsRestApi/CartsRestApiConfig.php**
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/calculation-data-structure.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/calculation-data-structure.md
index 550dd95f015..b6659f5c394 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/calculation-data-structure.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/calculation-data-structure.md
@@ -62,7 +62,7 @@ The entire data object is stored in the session, and it consists of the followin
|sumGrossPrice (int)|The sum of item's gross price, calculated with `PriceCalculatorPlugin`.|
|unitNetPrice (int) | A single item net price, set with `CartItemPricePlugin` (cart expander). |
| sumNetPrice (int) | The sum of items net price, calculated with `PriceCalculatorPlugin`. |
-| unitPrice (int) | A single item price without assuming whether it is new or gross. This value must be used everywhere the price is displayed. It lets you switch tax mode without side effects. It's set with `CartItemPricePlugin` (cart expander). |
+| unitPrice (int) | A single item price without assuming whether it's new or gross. This value must be used everywhere the price is displayed. It lets you switch tax mode without side effects. It's set with `CartItemPricePlugin` (cart expander). |
| sumPrice (int) | The sum of item's price calculated with `PriceCalculatorPlugin`. |
| taxRate (float) | The current tax rate set by `ProductItemTaxRateCalculatorPlugin`. |
| refundableAmount (int) | The item's available refundable amount (order only). It's set by `RefundableAmountCalculatorPlugin`. |
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md
index 7021b48f2ac..8f349b7a7cd 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-process-review-and-implementation.md
@@ -1,6 +1,6 @@
---
title: Checkout process review and implementation
-description: This document provides an overview of the checkout process and how it is implemented in Spryker.
+description: This document provides an overview of the checkout process and how it's implemented in Spryker.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/checkout-process-review-and-implementation
@@ -27,7 +27,7 @@ related:
link: docs/scos/dev/back-end-development/data-manipulation/datapayload-conversion/checkout/checkout-steps.html
---
-### Checkout process
+## Checkout process
To use the checkout in Yves, you need to configure it correctly and provide dependencies. Each step can have a form, a controller action, the implementation of the step logic, and a Twig template to render the HTML.
@@ -54,13 +54,13 @@ Using a data provider is the only way to pass any external data to the form and
Each data provider is passed when `FormCollection` is created. When the handle method is called, the `FormCollection` handler creates all form types and passes the data from data providers to them.
-### Checkout quote transfer lifetime
+## Checkout quote transfer lifetime
![Quote_transfer_lifetime.png](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Checkout/Multi-Step+Checkout/Checkout+Process/quote-transfer-lifetime.png)
When a process or `postCondition()` is called on `StepProcess`, it tries to get the current valid step by walking through the stack of steps and calling `postCondition()` for each, starting from the first in the stack. If `postCondition()` fails, then this step is used for later processing. After that, the view variables with `QuoteTransfer` and form are passed to Twig, and the HTML is rendered.
-#### Postcondition
+### Postcondition
_Postcondition_ is an essential part of the Processing step. It indicates if a step has all the data that it needs and if its requirements are satisfied. You can't access the next step from the stack if the previous step's postconditions are not met, but you can navigate to any step where postconditions are satisfied (`return true`).
@@ -68,19 +68,19 @@ Postconditions are called twice per step processing:
* To find the current step or if we can access the current step.
* After `execute()`, to make sure the step was completed and that we can continue to the next step.
-#### Postcondition error route
+### Postcondition error route
Inside your step, you can set a postcondition error route if you need to redirect to another error route than the one specified during the step construction.
-### How the quote transfer is mapped inside forms
+## How the quote transfer is mapped inside forms
Symfony forms provide a mechanism to store data into objects without needing manual mapping. It's called [Data transformers](https://symfony.com/doc/current/form/data_transformers.html). There are a few important conditions required to make this work. Because you are passing the entire `QuoteTransfer`, the form handler does not know which fields you are trying to use. Symfony provides a few ways to handle this situation:
* Using [property_path](https://symfony.com/doc/current/reference/forms/types/form.html#property-path) configuration directive. It uses the full path to object property you are about to map form into—for example, `payment.paypal` maps your form to `QuoteTransfer:payment:paypal`; this works when the property is not on the same level and when you are using subforms.
* Using the main form that includes subforms. Each subform has to be configured with the `data_class` option, which is the FQCN of the transfer object you are about to use. This works when the property is on the top level.
-### Checkout form submission
+## Checkout form submission
-On form submission, the same processing starts with the difference that if form submit is detected, then the validation is called:
+On form submission, the same processing starts with the difference that if form submit's detected, then the validation is called:
* If the form is invalid, then the view is rendered with validation errors.
* If form data is valid, then `execute()` is called on the step that executes the step-related logic.
@@ -88,17 +88,17 @@ For example, add the address to `QuoteTransfer` or get payment details from Zed,
You decide what to do in each `execute()` method. It's essential that after `execute()` runs, the updated returned `QuoteTransfer` must satisfy `postCondition()` so that `StepProcess` can take another step from the stack.
-#### Required input
+### Required input
Normally each step requires input from the customer. However, there are cases when there is no need to render a form or a view, but some processing is still required, that is, `PlaceOrderStep` and `EntryStep`. Each step provides the implementation of the `requireInput()` method. `StepProcess` calls this method and reacts accordingly. If `requireInput()` is false, after running `execute()`, `postConditions` must be satisfied.
-#### Precondition and escape route
+### Precondition and escape route
Preconditions are called before each step; this is a check to indicate that the step can't be processed in a usual way.
For example, the cart is empty. If `preCondition()` returns false, the customer is redirected to `escapeRoute` provided when configuring the step.
-#### External redirect URL
+### External redirect URL
Sometimes it's required to redirect the customer to an external URL (outside application). The step must implement `StepWithExternalRedirectInterface::getExternalRedirectUrl()`, which returns the URL to redirect customer after `execute()` is ran.
@@ -110,11 +110,11 @@ Each step must implement `StepInterface`.
![Step_flow.png](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Checkout/Multi-Step+Checkout/Checkout+Process/step-flow.png)
-### Placing the order
+## Placing the order
After the customer clicks the submit button during `SummaryStep`, `PlaceOrderStep` is started. This step takes `QuoteTransfer` and starts the checkout workflow to store the order in the system. Zed's Checkout module contains some plugins where you can add additional behavior, check preconditions, and save or execute postcondition checks.
-#### Plugins
+### Plugins
Zed's Checkout module contains four types of plugins to extend the behavior on placing an order. Any plugin has access to `QuoteTransfer` that is supposed to be read-only and `CheckoutResponseTransfer` data object that can be modified.
@@ -123,7 +123,7 @@ Zed's Checkout module contains four types of plugins to extend the behavior on p
* `CheckPostConditions`—is for checking conditions after saving, the last time to react if something did not happen according to plan. It's called after the state machine execution.
* `PostSaveHook`—is called after order placement, and sets the success flag to false, if redirect must be headed to an error page afterward.
-#### Checkout response transfer
+### Checkout response transfer
* `isSuccess` (boolean)—indicates if the checkout process was successful.
* errors (`CheckoutErrorTransfer`)—list of errors that occurred during the execution of the plugins.
@@ -131,19 +131,19 @@ Zed's Checkout module contains four types of plugins to extend the behavior on p
* `redirectUrl` (string)—URL to redirect customer after the order was placed successfully.
* `saveOrder` (`SaveOrderTransfer`)—stores ids of the items that OrderSaver plugins have saved.
-#### Checkout error transfer
+### Checkout error transfer
* `errorCode` (int)—numeric error code. The checkout error codes are listed in the following section [Checkout error codes](#checkout-error-codes).
* `message` (string)—error message.
-#### Checkout error codes
+### Checkout error codes
* `4001`—customer email already used.
* `4002`—product unavailable.
* `4003`—cart amount does not match.
* `5000`—unknown error.
-#### Save order transfer
+### Save order transfer
* `idSalesOrder` (int)—The unique ID of the current saved order.
* `orderReference` (string)—An auto-generated unique ID of the order.
@@ -151,12 +151,12 @@ Zed's Checkout module contains four types of plugins to extend the behavior on p
There are already some plugins implemented with each of those types:
-#### Precondition plugins
+### Precondition plugins
* `CustomerPreConditionCheckerPlugin`—checks if the email of the customer is already used.
* `ProductsAvailableCheckoutPreConditionPlugin`—check if the items contained in the cart are in stock.
-#### Postcondition plugins
+### Postcondition plugins
* `OrderCustomerSavePlugin`—saves or creates a customer in the database if the customer is new or the ID is not set (guest customers are ignored).
* `SalesOrderSaverPlugin`—saves order information and creates `sales_order` and `sales_order_item` tables.
@@ -165,11 +165,11 @@ There are already some plugins implemented with each of those types:
* `OrderShipmentSavePlugin`—saves order shipment information to the `sales_expense` table.
* `SalesPaymentCheckoutDoSaveOrderPlugin`—saves order payments to the `spy_sales_payment` table.
-#### Pre-save condition plugin
+### Pre-save condition plugin
`SalesOrderExpanderPlugin`—expands items by quantity and recalculate quote.
-#### State machine
+### State machine
A state machine is triggered in the `CheckoutWorkflow` class from the Checkout module; the execution starts after precondition and order saver plugins store no errors into `CheckoutResponseTransfer`.
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-steps.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-steps.md
index 99f7e0e4ab8..7facabe4ebb 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-steps.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/extend-and-customize/checkout-steps.md
@@ -45,7 +45,7 @@ The checkout process consists of the following steps:
Read on to learn more on each step.
## Entry step
-The entry step redirects the customer to the correct step based on the `QuoteTransfer` state. This step requires `input = false`, so it is not rendered.
+The entry step redirects the customer to the correct step based on the `QuoteTransfer` state. This step requires `input = false`, so it's not rendered.
## Customer step
The customer step provides three forms:
@@ -56,7 +56,7 @@ The customer step provides three forms:
This step is responsible for filling `CustomerTransfer` with corresponding data. The authentication logic is left to the customer module, this step only delegates calls to and from the customer module and mapping data with forms.
## Address step
-The address step is the step where the customer fills billing and shipping addresses in `QuoteTransfer::billingAddress` and `QuoteTransfer::shippingAddress`, respectively. This step lets the returning customers select one of the existing addresses or create a new one. A new address will be created only if the **Save new address to address book** checkbox is selected. Otherwise, it is saved in the order but is not stored in the database. This allows a customer to skip the new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it's only created when the order is placed, and the `OrderCustomerSavePlugin` plugin is enabled.
+The address step is the step where the customer fills billing and shipping addresses in `QuoteTransfer::billingAddress` and `QuoteTransfer::shippingAddress`, respectively. This step lets the returning customers select one of the existing addresses or create a new one. A new address will be created only if the **Save new address to address book** checkbox is selected. Otherwise, it's saved in the order but is not stored in the database. This allows a customer to skip the new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it's only created when the order is placed, and the `OrderCustomerSavePlugin` plugin is enabled.
## Shipment step
Get shipment method information and store it in the quote. This step requires additional configuration because different shipment providers and different ways forms must be handled for each.
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/approval-process-feature-overview.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/approval-process-feature-overview.md
index 1994885b70a..cdf46ae0514 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/approval-process-feature-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/approval-process-feature-overview.md
@@ -20,7 +20,7 @@ Permissions related to the approval process are configured based on the restrict
Approvers can only approve orders of employees *within their own business unit*.
-If an employee with a *Buy up to grand total* limit is in a business unit without any approvers, at the checkout, the employee can't see any approvers to send their order to and thus can't proceed with their order. Not even if another business unit of the same company does have an approver. And not even if that other business unit is the direct parent of the employee's business unit.
+If an employee with a *Buy up to grand total* limit's in a business unit without any approvers, at the checkout, the employee can't see any approvers to send their order to and thus can't proceed with their order. Not even if another business unit of the same company does have an approver. And not even if that other business unit is the direct parent of the employee's business unit.
{% endinfo_block %}
@@ -138,7 +138,7 @@ The company has the following company users:
| Manager | Approver | Has the *Approve up to grand total* permission set to €600. |
| Head of the department | Approver | Has the *Approve up to grand total* permission set to €1000. |
-Quote C needs approval that has to be provided by the head of the department because the manager's approval limit is lower than the quote grand total. After the request has been approved by the head of the department, the buyer can complete the checkout.
+Quote C needs approval that has to be provided by the head of the department because the manager's approval limit's lower than the quote grand total. After the request has been approved by the head of the department, the buyer can complete the checkout.
#### Case 4: Approval Process is not initiated
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md
index 572f3147f74..06043caa999 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/cart-feature-overview/quick-order-from-the-catalog-page-overview.md
@@ -25,4 +25,4 @@ For the **Add to cart** icon to be active for the product on the **Catalog** pag
A product belonging to a [product group](/docs/pbc/all/product-information-management/{{site.version}}/base-shop/feature-overviews/product-feature-overview/product-feature-overview.html) can also be added to the cart from the **Category** page. However, like with regular products, a product from the product group must have no more than one variant and be available.
-If a product has [options](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/feature-overviews/product-options-feature-overview.html), it can be added to the cart from the Category page, but it is added without any options.
+If a product has [options](/docs/pbc/all/product-information-management/{{page.version}}/base-shop/feature-overviews/product-options-feature-overview.html), it can be added to the cart from the Category page, but it's added without any options.
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md
index c3fb8cc03a3..ee2038caf77 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/checkout-feature-overview/order-thresholds-overview.md
@@ -95,7 +95,7 @@ All the thresholds have a store relation. If you have a multi-store and multi-cu
## Merchant order thresholds
-A *merchant order threshold* is a threshold that is applied to the customers belonging to the [merchant relation](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/merchant-b2b-contracts-and-contract-requests-feature-overview.html) for which it is defined.
+A *merchant order threshold* is a threshold that is applied to the customers belonging to the [merchant relation](/docs/pbc/all/merchant-management/{{site.version}}/base-shop/merchant-b2b-contracts-and-contract-requests-feature-overview.html) for which it's defined.
If global and merchant order thresholds are defined, both are applied to the customers' orders belonging to the merchant relation.
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/comments-feature-overview.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/comments-feature-overview.md
index 85d096f0afe..9d6a376b3a2 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/comments-feature-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/comments-feature-overview.md
@@ -23,7 +23,7 @@ Thus, the Comments feature lets your B2B customers effectively communicate and d
## Comments widget
-Within the Comments feature, we have created the Comments widget. The widget can be placed on any entity page. In our case, it is the **Shopping Cart** page.
+Within the Comments feature, we have created the Comments widget. The widget can be placed on any entity page. In our case, it's the **Shopping Cart** page.
The comment contains the following information:
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/quick-add-to-cart-feature-overview.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/quick-add-to-cart-feature-overview.md
index 45a7c9b89e8..5d95efeb1d5 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/quick-add-to-cart-feature-overview.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/feature-overviews/quick-add-to-cart-feature-overview.md
@@ -116,7 +116,7 @@ You can upload only one file at a time.
By default, only concrete SKUs are validated. On successful upload, items and quantities are extracted and filled out in the quick order form fields.
-In case the quantity is not valid due to [quantity restrictions](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/feature-overviews/non-splittable-products-feature-overview.html) setting, the quantity is changed to a valid number.
+In case the quantity is not valid because of [quantity restrictions](/docs/pbc/all/cart-and-checkout/{{site.version}}/base-shop/feature-overviews/non-splittable-products-feature-overview.html) setting, the quantity is changed to a valid number.
If there are already products added to the quick order list, the products from the CSV file are added to the bottom of the quick order template.
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-global-thresholds.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-global-thresholds.md
index 281314a1c53..8914120ef31 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-global-thresholds.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-global-thresholds.md
@@ -69,7 +69,7 @@ In the **Message** field, enter *{% raw %}{{{% endraw %}threshold{% raw %}}}{% e
| ATTRIBUTE |DESCRIPTION|
| --- | --- |
-| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it is displayed. |
+| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it's displayed. |
| ENTER THRESHOLD VALUE | Depending on the threshold type, defines the value that should be reached or not reached.|
|MESSAGE |Short message that informs the customer about the threshold conditions. For example, _You should add items for {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} to pass a recommended threshold. You can't proceed with checkout._
Enter {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} or {% raw %}{{{% endraw %}fee{% raw %}}}{% endraw %} to reference the threshold name or the defined fee respectively. When the message is rendered on the Storefront, the placeholders are replaced with the values from **Enter threshold value** and **Enter flexible fee** or **Enter fixed fee** fields. |
| ENTER FIXED FEE | Adds this value to cart if the threshold is not reached. |
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md
index a978691f21c..105ff504470 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-in-the-back-office/define-merchant-order-thresholds.md
@@ -73,7 +73,7 @@ The page refreshes with a success message displayed.
| ATTRIBUTE |DESCRIPTION|
| --- | --- |
-| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it is displayed. |
+| STORE AND CURRENCY | Defines the store to which the threshold is applied and the currency in which it's displayed. |
| ENTER THRESHOLD VALUE | Depending on the threshold type, defines the value that should be reached or not reached.|
|MESSAGE |Short message that informs the customer about the threshold conditions. For example, _You should add items for {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} to pass a recommended threshold. You can't proceed with checkout._
Enter {% raw %}{{{% endraw %}threshold{% raw %}}}{% endraw %} or {% raw %}{{{% endraw %}fee{% raw %}}}{% endraw %} to reference the threshold name or the defined fee respectively. When the message is rendered on the Storefront, the placeholders are replaced with the values from **Enter threshold value** and **Enter flexible fee** or **Enter fixed fee** fields. |
| ENTER FIXED FEE | Adds this value to cart if the threshold is not reached. |
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md
index b4bc817b6de..1e2c77e8469 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/check-out/glue-api-check-out-purchases.md
@@ -16,7 +16,7 @@ This endpoint allows finalizing the checkout process by placing an order.
After sending a request, the cart is deleted, and you cannot make any further changes in the checkout data. This means the endpoint is best used for checkouts that can be performed in one pass or for finalizing a checkout after [submitting checkout data](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.html).
-The endpoint also provides information on whether it is necessary to redirect the user to a third-party page to complete the payment.
+The endpoint also provides information on whether it's necessary to redirect the user to a third-party page to complete the payment.
## Installation
@@ -1212,7 +1212,7 @@ To retrieve order shipments, include `orders` and `order-shipments`.
| STATUS | REASONS |
| --- | --- |
-| 400 | Bad request. This error can occur due to the following reasons:
The POST data is incorrect;
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
+| 400 | Bad request. This error can occur because of the following reasons:
The POST data is incorrect;
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
| 404 | Order not found. |
| 422 | Order payment is not updated. Checkout data is incorrect. |
| 1101 | Checkout data is invalid. |
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md
index 882f59e6191..fb4dc761fb0 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/check-out/glue-api-submit-checkout-data.md
@@ -1172,7 +1172,7 @@ In case of a successful update, the endpoint responds with information that can
| CODE | REASON |
| --- | --- |
-| 400 | Bad request. This error can occur due to the following reasons:
The POST data is incorrect.
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
+| 400 | Bad request. This error can occur because of the following reasons:
The POST data is incorrect.
Neither **Authorization** nor **X-Anonymous-Customer-Unique-Id** headers were provided in the request.
|
| 422 | The checkout data is incorrect. |
| 1101 | Checkout data is invalid. |
| 1102 | Order cannot be placed. |
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md
index b8861ef6993..b03fa816fd9 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.md
@@ -3006,7 +3006,7 @@ To delete a cart, send the request:
{% info_block infoBox "Deleting carts" %}
-You cannot delete a cart if it is the customer's only cart. If you attempt to delete a customer's last cart, the endpoint responds with the **422 Unprocessable Entry** status code. If you delete the default cart of a customer, another cart will be assigned as default automatically.
+You cannot delete a cart if it's the customer's only cart. If you attempt to delete a customer's last cart, the endpoint responds with the **422 Unprocessable Entry** status code. If you delete the default cart of a customer, another cart will be assigned as default automatically.
{% endinfo_block %}
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md
index 50f138993a1..5d2a6ed4c0c 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-items-in-carts-of-registered-users.md
@@ -2704,7 +2704,7 @@ To change the number of items in a cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| ***cart_uuid*** | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#create-a-cart) or [Retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#retrieve-registered-users-carts) to get it. |
-| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it is equal to the item’s SKU. |
+| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it's equal to the item’s SKU. |
### Request
@@ -3189,7 +3189,7 @@ To remove an item from a registered user's cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| ***{% raw %}{{{% endraw %}cart_uuid{% raw %}}}{% endraw %}*** | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#create-a-cart) or [Retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-carts-of-registered-users/glue-api-manage-carts-of-registered-users.html#retrieve-registered-users-carts) to get it. |
-| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it is equal to the item’s SKU. |
+| ***{% raw %}{{{% endraw %}itemgroupkey{% raw %}}}{% endraw %}*** | Group key of the item. Usually, it's equal to the item’s SKU. |
### Request
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md
index 5ff5eddd985..135ecbfad06 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-cart-items.md
@@ -2890,7 +2890,7 @@ To change item quantity, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| ***{% raw %}{{{% endraw %}guest_cart_id{% raw %}}}{% endraw %}*** | The unique ID of the guest cart in the system. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). |
-| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
+| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
### Request
@@ -3274,7 +3274,7 @@ To remove an item from a guest cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| ***{% raw %}{{{% endraw %}guest_cart_id{% raw %}}}{% endraw %}*** | The unique ID of the guest cart in the system. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). |
-| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
+| ***{% raw %}{{{% endraw %}groupKey{% raw %}}}{% endraw %}*** | The group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
### Request
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md
index 1a0b73dc91c..c5f0160b9aa 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.md
@@ -1006,7 +1006,7 @@ When retrieving the cart with `guestCartId`, the response includes a single obje
Guest carts are anonymous as they are not related to any user. If a user registers or logs in, the guest cart can be automatically assigned to their account.
-To assign a guest cart to a customer, for example, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it is an existing customer, or request to create a customer account if it is a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart:
+To assign a guest cart to a customer, for example, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it's an existing customer, or request to create a customer account if it's a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart:
**src/Pyz/Zed/CartsRestApi/CartsRestApiConfig.php**
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md
index 4cbc9a411ad..645ee521a4b 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/base-shop/tutorials-and-howtos/tutorial-calculator-plugin.md
@@ -85,7 +85,7 @@ class ItemTaxAmountCalculatorPlugin extends AbstractPlugin implements Calculatio
}
```
-6. Add a new facade method: `Pyz\Zed\Tax\TaxFacade::calculateItemTax()` and create the `TaxFacade` class extending Spryker Core `TaxFacade` if it is not present.
+6. Add a new facade method: `Pyz\Zed\Tax\TaxFacade::calculateItemTax()` and create the `TaxFacade` class extending Spryker Core `TaxFacade` if it's not present.
```php
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -4272,7 +4272,7 @@ To retrieve a registered user's cart, send the request:
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md b/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md
index dbf16d9a299..eb4536ee50c 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/carts-of-registered-users/manage-items-in-carts-of-registered-users.md
@@ -1470,7 +1470,7 @@ It is the responsibility of the API Client to track whether the selected items a
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -1547,7 +1547,7 @@ It is the responsibility of the API Client to track whether the selected items a
| groupKey | String | Unique item identifier. The value is generated based on product properties. |
| abstractSku | String | Unique identifier of the abstract product owning this concrete product. |
| amount | Integer | Amount of the products in the cart. |
-| unitPrice | Integer | Single item price without assuming if it is net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. |
+| unitPrice | Integer | Single item price without assuming if it's net or gross. This value should be used everywhere the price is displayed. It allows switching tax mode without side effects. |
| sumPrice | Integer | Sum of all items prices calculated. |
| taxRate | Integer | Current tax rate in percent. |
| unitNetPrice | Integer | Single item net price. |
@@ -1614,7 +1614,7 @@ To change the number of items in a cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| {% raw %}***{{cart_uuid}}***{% endraw %} | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html) or [retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html#retrieve-a-registered-users-cart) to get it. |
-| {% raw %}***{{item_group_key}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. |
+| {% raw %}***{{item_group_key}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. |
### Request
@@ -1784,7 +1784,7 @@ To remove an item from a registered user's cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| {% raw %}***{{cart_uuid}}***{% endraw %} | Unique identifier of a cart. [Create a cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html) or [retrieve a registered user's carts](/docs/pbc/all/cart-and-checkout/{{page.version}}/marketplace/manage-using-glue-api/carts-of-registered-users/manage-carts-of-registered-users.html#retrieve-a-registered-users-cart) to get it. |
-| {% raw %}***{{item_group_key}}***{% endraw %}| Group key of the item. Usually, it is equal to the item’s SKU. |
+| {% raw %}***{{item_group_key}}***{% endraw %}| Group key of the item. Usually, it's equal to the item’s SKU. |
### Request
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md b/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md
index 35e673ffb17..67fd6bea1c0 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-cart-items.md
@@ -1593,7 +1593,7 @@ It is the responsibility of the API Client to track whether the selected items a
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -1760,7 +1760,7 @@ To change item quantity, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| {% raw %}***{{guest_cart_id}}***{% endraw %}| Unique identifier of the guest cart. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). |
-| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
+| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
### Request
@@ -1823,7 +1823,7 @@ To remove an item from a guest cart, send the request:
| PATH PARAMETER | DESCRIPTION |
| --- | --- |
| {% raw %}***{{guest_cart_id}}***{% endraw %}| Unique identifier of the guest cart. To get it, [retrieve a guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart). |
-| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it is equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
+| {% raw %}***{{groupKey}}***{% endraw %} | Group key of the item. Usually, it's equal to the item’s SKU. To get it, [retrieve the guest cart](/docs/pbc/all/cart-and-checkout/{{page.version}}/base-shop/manage-using-glue-api/manage-guest-carts/glue-api-manage-guest-carts.html#retrieve-a-guest-cart) with the guest cart items included. |
### Request
diff --git a/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md b/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md
index 31fbed8ec03..d0ca2ac1e9b 100644
--- a/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md
+++ b/docs/pbc/all/cart-and-checkout/202410.0/marketplace/manage-using-glue-api/guest-carts/manage-guest-carts.md
@@ -1811,7 +1811,7 @@ When retrieving the cart with `guestCartId`, the response includes a single obje
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -1950,7 +1950,7 @@ For the attributes of other included resources, see:
Guest carts are anonymous as they are not related to any user. If a user registers or logs in, the guest cart can be automatically assigned to their account.
-To assign a guest cart to a customer, that is, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it is an existing customer, or request to create a customer account if it is a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart:
+To assign a guest cart to a customer, that is, merge the carts, include the unique identifier associated with the customer in the `X-Anonymous-Customer-Unique-Id` header of the authentication request if it's an existing customer, or request to create a customer account if it's a new one. Adjust the configuration constant to create a cart for the newly authenticated customer while merging the guest cart with the customer cart:
**src/Pyz/Zed/CartsRestApi/CartsRestApiConfig.php**
diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/cms-blocks-overview.md b/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/cms-blocks-overview.md
index 300c1a08732..0aacc97e81b 100644
--- a/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/cms-blocks-overview.md
+++ b/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/cms-blocks-overview.md
@@ -25,7 +25,7 @@ The CMS feature is shipped with several block templates by default. A developer
## CMS block validity period
-When creating a block, you can select validity dates. The dates define when the block starts and stops being displayed on the pages it is added to on the Storefront. For example, if you are planning to run a promotion campaign, you can create a banner beforehand and define when it starts and stops being displayed based on the promotion period.
+When creating a block, you can select validity dates. The dates define when the block starts and stops being displayed on the pages it's added to on the Storefront. For example, if you are planning to run a promotion campaign, you can create a banner beforehand and define when it starts and stops being displayed based on the promotion period.
## CMS block store relation
diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md b/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md
index eac371535d2..ad35b414590 100644
--- a/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md
+++ b/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md
@@ -38,7 +38,7 @@ A Developer can create more CMS Block email templates.
### Naming of email CMS blocks
-Being a multi-purpose entity, CMS Blocks relies strongly on its naming when used as an email. The CMS Block name defines the email template it is assigned to.
+Being a multi-purpose entity, CMS Blocks relies strongly on its naming when used as an email. The CMS Block name defines the email template it's assigned to.
#### Template assignment
@@ -116,7 +116,7 @@ To learn how a Back Office User creates translations, see [Managing Glossary](/d
### Variables in Email Templates
-Also, you can use variables to adjust details like a customer name in the emails automatically. For example, if you add the `firstName` variable, when the email is sent, the variable is replaced with the first name of the customer it is sent to. Unlike glossary keys, variables are defined on the code level, namely in the transfer object definition.
+Also, you can use variables to adjust details like a customer name in the emails automatically. For example, if you add the `firstName` variable, when the email is sent, the variable is replaced with the first name of the customer it's sent to. Unlike glossary keys, variables are defined on the code level, namely in the transfer object definition.
A developer can provide a full list of variables and create new ones.
diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/templates-and-slots-overview.md b/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/templates-and-slots-overview.md
index 11b88dbd67e..196f7650eb6 100644
--- a/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/templates-and-slots-overview.md
+++ b/docs/pbc/all/content-management-system/202311.0/base-shop/cms-feature-overview/templates-and-slots-overview.md
@@ -165,7 +165,7 @@ The template list contains the following information:
| description | Template description. It is shown in the Back Office. | "The layout of Slots in the Home Page, always below Store Header including Navigation, and above Store Footer." |
Note the following:
-* If a template has only inactive slots, it is still considered a template with slots. Therefore, it is shown in the **Slots** section.
+* If a template has only inactive slots, it's still considered a template with slots. Therefore, it's shown in the **Slots** section.
* If a template is on an imported template list but does not have a slot, it's not considered a template with slots. Therefore, it's not displayed in the **Slots** section.
### Slot list
@@ -179,7 +179,7 @@ The slot list contains the following information:
| content provider | Defines the source of content of this slot. | SprykerCmsSlotBlock |
| name | Alphabetical identifier of the slot. It is shown in the Back Office. | "Header Top" |
| description | Description of the slot. It is shown in the Back Office. | "A content area in the Header section, that is below the logo and search section and above main navigation" |
-| status | Defines whether the slot is active or not where "0" stands for "inactive" and "1" stands for "active". If a slot is inactive, it is not rendered in the Storefront by the slot widget. | 1 |
+| status | Defines whether the slot is active or not where "0" stands for "inactive" and "1" stands for "active". If a slot is inactive, it's not rendered in the Storefront by the slot widget. | 1 |
## Content providers
A content provider is a source from which Slot Widget fetches content to embed into slots and, subsequently, render it in the Storefront. With templates and slots, you can use slots to embed the content created in your Spryker project or CMS editors of technology partners (for example, [CoreMedia](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/coremedia.html), [E-spirit](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/e-spirit.html), [Styla](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/styla.html), [Magnolia](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/magnolia.html)).
@@ -196,7 +196,7 @@ The following schema shows how content is managed with the help of templates wit
![image](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/CMS/Templates+%26+Slots/Templates+%26+Slots+Feature+Overview/templates-and-slots.png)
## Visibility conditions
-When the content manager assigns a CMS block to a slot, it is displayed on all the pages to which the template with the slot is applied. To narrow down the number of pages to a needed selection, the content manager can define visibility conditions for each CMS block assigned to a slot. Visibility conditions are defined by selecting particular pages in which the content of a CMS block will be displayed. When visibility conditions are defined, the slot widget checks if the CMS block must be rendered in an opened page or not. Then, it either renders or skips it.
+When the content manager assigns a CMS block to a slot, it's displayed on all the pages to which the template with the slot is applied. To narrow down the number of pages to a needed selection, the content manager can define visibility conditions for each CMS block assigned to a slot. Visibility conditions are defined by selecting particular pages in which the content of a CMS block will be displayed. When visibility conditions are defined, the slot widget checks if the CMS block must be rendered in an opened page or not. Then, it either renders or skips it.
Page identifiers used to define visibility conditions depend on the page type to which a template with slots is applied. You can check identifiers for each page type in the following table.
@@ -255,7 +255,7 @@ Properties are used by slot widgets to identify for which entity content is bein
You can add other properties to meet your project or external content provider requirements.
#### Property Types
-Properties can be either `required` or `autofilled`. If a property is of the required type, it is entered manually and the slot widget does not render the content if one of the required values is not filled. If a property is of the auto-filled type, when sending a request to fetch content, the slot widget fills this value based on the page opened on the Storefront and fetches the corresponding content. For example, if you want a slot widget to fill `locale` and `store` values automatically, it looks as follows:
+Properties can be either `required` or `autofilled`. If a property is of the required type, it's entered manually and the slot widget does not render the content if one of the required values is not filled. If a property is of the auto-filled type, when sending a request to fetch content, the slot widget fills this value based on the page opened on the Storefront and fetches the corresponding content. For example, if you want a slot widget to fill `locale` and `store` values automatically, it looks as follows:
```twig
{% raw %}{%{% endraw %} cms_slot "cms-slot-key" autofilled ['locale', 'store'] required ['requiredProperty'] with {
diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md b/docs/pbc/all/content-management-system/202311.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md
index ec0f8912501..d8b28975b35 100644
--- a/docs/pbc/all/content-management-system/202311.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md
+++ b/docs/pbc/all/content-management-system/202311.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md
@@ -30,7 +30,7 @@ This document describes the `cms_slot.csv` file to configure [CMS Slot](/docs/pb
| content_provider | ✓ | String |Must be a valid type of content provider. | Defines the source of content of this slot. |
| name | ✓ | String | | Alphabetical identifier of the slot. It will be shown in the Back Office. |
| description | ✓ | String | | Description of the slot. It will be shown in the Back Office. |
-| is_active | | Boolean |
Inactive = 0
Active = 1
If empty during the import, the slots will be imported as inactive.
| Indicates if the slot is active or inactive. If the slot is inactive, it is not rendered in the Storefront by the slot widget. |
+| is_active | | Boolean |
Inactive = 0
Active = 1
If empty during the import, the slots will be imported as inactive.
| Indicates if the slot is active or inactive. If the slot is inactive, it's not rendered in the Storefront by the slot widget. |
diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md
index d535f364159..8521a332119 100644
--- a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md
+++ b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md
@@ -58,7 +58,7 @@ You don’t need to activate the email CMS block, as the deactivated status of t
* Add a [glossary key](/docs/pbc/all/miscellaneous/{{page.version}}/manage-in-the-back-office/add-translations.html) to the email block. When the email is sent, the key is replaced with the translation you defined for the locale selected by the customer. To learn how to add translations, see [Managing glossary](/docs/pbc/all/miscellaneous/{{page.version}}/manage-in-the-back-office/add-translations.html).
-* Add variables to the email CMS block to replace them with customer and order specific details. When the email is sent, the variables are replaced with the actual details. For example, add *firstName*, and it is replaced with the name of the customer the email is sent to. A developer can provide a full list of variables and create new ones.
+* Add variables to the email CMS block to replace them with customer and order specific details. When the email is sent, the variables are replaced with the actual details. For example, add *firstName*, and it's replaced with the name of the customer the email is sent to. A developer can provide a full list of variables and create new ones.
## Reference information: Create an email CMS block
diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md
index 3fe4820b048..12dad949cc9 100644
--- a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md
+++ b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md
@@ -19,14 +19,14 @@ related:
link: docs/pbc/all/content-management-system/page.version/base-shop/product-sets-feature-overview.html
---
-This document describes how to reorder product sets in the Back Office by defining weight. A product set's weight, relatively to other the other product sets' weight on a page defines how high it is on a page.
+This document describes how to reorder product sets in the Back Office by defining weight. A product set's weight, relatively to other the other product sets' weight on a page defines how high it's on a page.
To reorder product sets by editing their weight, do the following:
1. Go to **Merchandising > Product Sets**.
2. On the **Product Sets** page, click **Reorder Product Sets**.
This opens the **Reorder Product Sets** page. The product sets are displayed in the ascending order of their current weight.
-3. Change the **WEIGHT** of each product set, so that it is in the needed position relatively to the other product sets.
+3. Change the **WEIGHT** of each product set, so that it's in the needed position relatively to the other product sets.
4. Click **Submit**.
This opens the **Product Sets** page with a success message displayed. The updated **WEIGHT** is displayed in the list and the product sets are ordered according to it.
diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-cms-pages.md b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-cms-pages.md
index d71a1378a3a..01aa0d0fd4d 100644
--- a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-cms-pages.md
+++ b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-cms-pages.md
@@ -46,7 +46,7 @@ This endpoint returns activated CMS pages only. Also, if there are more than 12
### Request
-Due to the Storefront layout, by default, the number of the retrieved pages is a multiple of 12. If you have less than 12 active CMS pages, the above request returns all of them. If you have more, you can enable paging and receive results in pages. For this purpose, use the `limit` and `offset` parameters in your request.
+Because of the Storefront layout, by default, the number of the retrieved pages is a multiple of 12. If you have less than 12 active CMS pages, the above request returns all of them. If you have more, you can enable paging and receive results in pages. For this purpose, use the `limit` and `offset` parameters in your request.
Keep in mind that you can not retrieve the number of results, which is not a multiple of 12. Except for the cases when:
diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md
index eac6f5b82ad..44a21d725e1 100644
--- a/docs/pbc/all/content-management-system/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md
+++ b/docs/pbc/all/content-management-system/202311.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md
@@ -50,7 +50,7 @@ Request sample: `GET http://glue.mysprykershop.com/navigations/SOCIAL_LINKS`
{% info_block infoBox "Performance" %}
-If a navigation tree has a category child node, include the `category-nodes` resource to retrieve the category information without extra calls to the `/category-nodes` endpoint. Retrieving the category information can affect the performance of the Navigation API. We recommend doing it only when it is absolutely necessary.
+If a navigation tree has a category child node, include the `category-nodes` resource to retrieve the category information without extra calls to the `/category-nodes` endpoint. Retrieving the category information can affect the performance of the Navigation API. We recommend doing it only when it's absolutely necessary.
{% endinfo_block %}
diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/create-a-custom-content-item.md b/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/create-a-custom-content-item.md
index 85443026ba0..75927763479 100644
--- a/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/create-a-custom-content-item.md
+++ b/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/create-a-custom-content-item.md
@@ -38,7 +38,7 @@ To create a new content form plugin, follow these steps:
* `getTypeKey()`—returns a string with the name of your content item—for example, Foo.
* `getTermKey()`—returns a string displaying the term for this content type in database—for example, `Foo`, `Foo List` or `Foo Query`. In database, a content type can have different term representations. Correspondingly, there are different ways of getting information about content. For example:
* `Foo List`—product list IDs.
- * `Foo Query`—product query as part of SQL/ElasticSearch query. This value is displayed in the Back Office, in **Content Management > Content Items**.
+ * `Foo Query`—product query as part of SQL/Elasticsearch query. This value is displayed in the Back Office, in **Content Management > Content Items**.
* `getForm()`—a form class name with a namespace which is displayed on the **Content create** or **Content edit** pages.
* `getTransferObject()`—maps form data to a content term transfer object—for example, `ContentFooTermTransfer`.
diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md b/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md
index 6af1f2836cc..ff8272c3e5b 100644
--- a/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md
+++ b/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md
@@ -14,7 +14,7 @@ related:
link: docs/pbc/all/content-management-system/page.version/base-shop/cms-feature-overview/cms-feature-overview.html
---
-By default, the CMS module doesn't specify the content field's size. For MySQL and MariaDB, it is transferred to TEXT (65535 bytes), and for PostgreSQL, it is transferred to TEXT (unlimited length).
+By default, the CMS module doesn't specify the content field's size. For MySQL and MariaDB, it's transferred to TEXT (65535 bytes), and for PostgreSQL, it's transferred to TEXT (unlimited length).
If your project requires more, you can redefine the field's size in the `spy_cms_version` table.
diff --git a/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md b/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md
index 24bd13e61b0..2569ef10dfb 100644
--- a/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md
+++ b/docs/pbc/all/content-management-system/202311.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md
@@ -246,7 +246,7 @@ class PersonalizedProductQueryPlugin implements QueryInterface
{% info_block infoBox %}
-The limit passed in the constructor of the query plugin. Also, the seed value is `session_id()` of the customer and it is used with the random score from Elasticsearch. You can change these values according to your needs.
+The limit passed in the constructor of the query plugin. Also, the seed value is `session_id()` of the customer and it's used with the random score from Elasticsearch. You can change these values according to your needs.
{% endinfo_block %}
diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/cms-blocks-overview.md b/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/cms-blocks-overview.md
index 300c1a08732..0aacc97e81b 100644
--- a/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/cms-blocks-overview.md
+++ b/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/cms-blocks-overview.md
@@ -25,7 +25,7 @@ The CMS feature is shipped with several block templates by default. A developer
## CMS block validity period
-When creating a block, you can select validity dates. The dates define when the block starts and stops being displayed on the pages it is added to on the Storefront. For example, if you are planning to run a promotion campaign, you can create a banner beforehand and define when it starts and stops being displayed based on the promotion period.
+When creating a block, you can select validity dates. The dates define when the block starts and stops being displayed on the pages it's added to on the Storefront. For example, if you are planning to run a promotion campaign, you can create a banner beforehand and define when it starts and stops being displayed based on the promotion period.
## CMS block store relation
diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md b/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md
index 244daf4c4fe..8bae34a724d 100644
--- a/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md
+++ b/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md
@@ -38,7 +38,7 @@ A Developer can create more CMS Block email templates.
### Naming of email CMS blocks
-Being a multi-purpose entity, CMS Blocks relies strongly on its naming when used as an email. The CMS Block name defines the email template it is assigned to.
+Being a multi-purpose entity, CMS Blocks relies strongly on its naming when used as an email. The CMS Block name defines the email template it's assigned to.
#### Template assignment
@@ -122,7 +122,7 @@ To learn how a Back Office User creates translations, see [Managing Glossary](/d
### Variables in Email Templates
-Also, you can use variables to adjust details like a customer name in the emails automatically. For example, if you add the `firstName` variable, when the email is sent, the variable is replaced with the first name of the customer it is sent to. Unlike glossary keys, variables are defined on the code level, namely in the transfer object definition.
+Also, you can use variables to adjust details like a customer name in the emails automatically. For example, if you add the `firstName` variable, when the email is sent, the variable is replaced with the first name of the customer it's sent to. Unlike glossary keys, variables are defined on the code level, namely in the transfer object definition.
A developer can provide a full list of variables and create new ones.
diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/templates-and-slots-overview.md b/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/templates-and-slots-overview.md
index 11b88dbd67e..196f7650eb6 100644
--- a/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/templates-and-slots-overview.md
+++ b/docs/pbc/all/content-management-system/202404.0/base-shop/cms-feature-overview/templates-and-slots-overview.md
@@ -165,7 +165,7 @@ The template list contains the following information:
| description | Template description. It is shown in the Back Office. | "The layout of Slots in the Home Page, always below Store Header including Navigation, and above Store Footer." |
Note the following:
-* If a template has only inactive slots, it is still considered a template with slots. Therefore, it is shown in the **Slots** section.
+* If a template has only inactive slots, it's still considered a template with slots. Therefore, it's shown in the **Slots** section.
* If a template is on an imported template list but does not have a slot, it's not considered a template with slots. Therefore, it's not displayed in the **Slots** section.
### Slot list
@@ -179,7 +179,7 @@ The slot list contains the following information:
| content provider | Defines the source of content of this slot. | SprykerCmsSlotBlock |
| name | Alphabetical identifier of the slot. It is shown in the Back Office. | "Header Top" |
| description | Description of the slot. It is shown in the Back Office. | "A content area in the Header section, that is below the logo and search section and above main navigation" |
-| status | Defines whether the slot is active or not where "0" stands for "inactive" and "1" stands for "active". If a slot is inactive, it is not rendered in the Storefront by the slot widget. | 1 |
+| status | Defines whether the slot is active or not where "0" stands for "inactive" and "1" stands for "active". If a slot is inactive, it's not rendered in the Storefront by the slot widget. | 1 |
## Content providers
A content provider is a source from which Slot Widget fetches content to embed into slots and, subsequently, render it in the Storefront. With templates and slots, you can use slots to embed the content created in your Spryker project or CMS editors of technology partners (for example, [CoreMedia](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/coremedia.html), [E-spirit](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/e-spirit.html), [Styla](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/styla.html), [Magnolia](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/magnolia.html)).
@@ -196,7 +196,7 @@ The following schema shows how content is managed with the help of templates wit
![image](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/CMS/Templates+%26+Slots/Templates+%26+Slots+Feature+Overview/templates-and-slots.png)
## Visibility conditions
-When the content manager assigns a CMS block to a slot, it is displayed on all the pages to which the template with the slot is applied. To narrow down the number of pages to a needed selection, the content manager can define visibility conditions for each CMS block assigned to a slot. Visibility conditions are defined by selecting particular pages in which the content of a CMS block will be displayed. When visibility conditions are defined, the slot widget checks if the CMS block must be rendered in an opened page or not. Then, it either renders or skips it.
+When the content manager assigns a CMS block to a slot, it's displayed on all the pages to which the template with the slot is applied. To narrow down the number of pages to a needed selection, the content manager can define visibility conditions for each CMS block assigned to a slot. Visibility conditions are defined by selecting particular pages in which the content of a CMS block will be displayed. When visibility conditions are defined, the slot widget checks if the CMS block must be rendered in an opened page or not. Then, it either renders or skips it.
Page identifiers used to define visibility conditions depend on the page type to which a template with slots is applied. You can check identifiers for each page type in the following table.
@@ -255,7 +255,7 @@ Properties are used by slot widgets to identify for which entity content is bein
You can add other properties to meet your project or external content provider requirements.
#### Property Types
-Properties can be either `required` or `autofilled`. If a property is of the required type, it is entered manually and the slot widget does not render the content if one of the required values is not filled. If a property is of the auto-filled type, when sending a request to fetch content, the slot widget fills this value based on the page opened on the Storefront and fetches the corresponding content. For example, if you want a slot widget to fill `locale` and `store` values automatically, it looks as follows:
+Properties can be either `required` or `autofilled`. If a property is of the required type, it's entered manually and the slot widget does not render the content if one of the required values is not filled. If a property is of the auto-filled type, when sending a request to fetch content, the slot widget fills this value based on the page opened on the Storefront and fetches the corresponding content. For example, if you want a slot widget to fill `locale` and `store` values automatically, it looks as follows:
```twig
{% raw %}{%{% endraw %} cms_slot "cms-slot-key" autofilled ['locale', 'store'] required ['requiredProperty'] with {
diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md b/docs/pbc/all/content-management-system/202404.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md
index ec0f8912501..d8b28975b35 100644
--- a/docs/pbc/all/content-management-system/202404.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md
+++ b/docs/pbc/all/content-management-system/202404.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md
@@ -30,7 +30,7 @@ This document describes the `cms_slot.csv` file to configure [CMS Slot](/docs/pb
| content_provider | ✓ | String |Must be a valid type of content provider. | Defines the source of content of this slot. |
| name | ✓ | String | | Alphabetical identifier of the slot. It will be shown in the Back Office. |
| description | ✓ | String | | Description of the slot. It will be shown in the Back Office. |
-| is_active | | Boolean |
Inactive = 0
Active = 1
If empty during the import, the slots will be imported as inactive.
| Indicates if the slot is active or inactive. If the slot is inactive, it is not rendered in the Storefront by the slot widget. |
+| is_active | | Boolean |
Inactive = 0
Active = 1
If empty during the import, the slots will be imported as inactive.
| Indicates if the slot is active or inactive. If the slot is inactive, it's not rendered in the Storefront by the slot widget. |
diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md
index d535f364159..8521a332119 100644
--- a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md
+++ b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md
@@ -58,7 +58,7 @@ You don’t need to activate the email CMS block, as the deactivated status of t
* Add a [glossary key](/docs/pbc/all/miscellaneous/{{page.version}}/manage-in-the-back-office/add-translations.html) to the email block. When the email is sent, the key is replaced with the translation you defined for the locale selected by the customer. To learn how to add translations, see [Managing glossary](/docs/pbc/all/miscellaneous/{{page.version}}/manage-in-the-back-office/add-translations.html).
-* Add variables to the email CMS block to replace them with customer and order specific details. When the email is sent, the variables are replaced with the actual details. For example, add *firstName*, and it is replaced with the name of the customer the email is sent to. A developer can provide a full list of variables and create new ones.
+* Add variables to the email CMS block to replace them with customer and order specific details. When the email is sent, the variables are replaced with the actual details. For example, add *firstName*, and it's replaced with the name of the customer the email is sent to. A developer can provide a full list of variables and create new ones.
## Reference information: Create an email CMS block
diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md
index 3fe4820b048..12dad949cc9 100644
--- a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md
+++ b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md
@@ -19,14 +19,14 @@ related:
link: docs/pbc/all/content-management-system/page.version/base-shop/product-sets-feature-overview.html
---
-This document describes how to reorder product sets in the Back Office by defining weight. A product set's weight, relatively to other the other product sets' weight on a page defines how high it is on a page.
+This document describes how to reorder product sets in the Back Office by defining weight. A product set's weight, relatively to other the other product sets' weight on a page defines how high it's on a page.
To reorder product sets by editing their weight, do the following:
1. Go to **Merchandising > Product Sets**.
2. On the **Product Sets** page, click **Reorder Product Sets**.
This opens the **Reorder Product Sets** page. The product sets are displayed in the ascending order of their current weight.
-3. Change the **WEIGHT** of each product set, so that it is in the needed position relatively to the other product sets.
+3. Change the **WEIGHT** of each product set, so that it's in the needed position relatively to the other product sets.
4. Click **Submit**.
This opens the **Product Sets** page with a success message displayed. The updated **WEIGHT** is displayed in the list and the product sets are ordered according to it.
diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-cms-pages.md b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-cms-pages.md
index f5372a19070..5ae2ea62d66 100644
--- a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-cms-pages.md
+++ b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-cms-pages.md
@@ -46,7 +46,7 @@ This endpoint returns activated CMS pages only. Also, if there are more than 12
### Request
-Due to the Storefront layout, by default, the number of the retrieved pages is a multiple of 12. If you have less than 12 active CMS pages, the above request returns all of them. If you have more, you can enable paging and receive results in pages. For this purpose, use the `limit` and `offset` parameters in your request.
+Because of the Storefront layout, by default, the number of the retrieved pages is a multiple of 12. If you have less than 12 active CMS pages, the above request returns all of them. If you have more, you can enable paging and receive results in pages. For this purpose, use the `limit` and `offset` parameters in your request.
Keep in mind that you can not retrieve the number of results, which is not a multiple of 12. Except for the cases when:
diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md
index e6aa66f80f6..b93662504d9 100644
--- a/docs/pbc/all/content-management-system/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md
+++ b/docs/pbc/all/content-management-system/202404.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md
@@ -50,7 +50,7 @@ Request sample: `GET http://glue.mysprykershop.com/navigations/SOCIAL_LINKS`
{% info_block infoBox "Performance" %}
-If a navigation tree has a category child node, include the `category-nodes` resource to retrieve the category information without extra calls to the `/category-nodes` endpoint. Retrieving the category information can affect the performance of the Navigation API. We recommend doing it only when it is absolutely necessary.
+If a navigation tree has a category child node, include the `category-nodes` resource to retrieve the category information without extra calls to the `/category-nodes` endpoint. Retrieving the category information can affect the performance of the Navigation API. We recommend doing it only when it's absolutely necessary.
{% endinfo_block %}
diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/create-a-custom-content-item.md b/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/create-a-custom-content-item.md
index efb4eaf9e99..cf40de9ac9f 100644
--- a/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/create-a-custom-content-item.md
+++ b/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/create-a-custom-content-item.md
@@ -38,7 +38,7 @@ To create a new content form plugin, follow these steps:
* `getTypeKey()`—returns a string with the name of your content item—for example, Foo.
* `getTermKey()`—returns a string displaying the term for this content type in database—for example, `Foo`, `Foo List` or `Foo Query`. In database, a content type can have different term representations. Correspondingly, there are different ways of getting information about content. For example:
* `Foo List`—product list IDs.
- * `Foo Query`—product query as part of SQL/ElasticSearch query. This value is displayed in the Back Office, in **Content Management > Content Items**.
+ * `Foo Query`—product query as part of SQL/Elasticsearch query. This value is displayed in the Back Office, in **Content Management > Content Items**.
* `getForm()`—a form class name with a namespace which is displayed on the **Content create** or **Content edit** pages.
* `getTransferObject()`—maps form data to a content term transfer object—for example, `ContentFooTermTransfer`.
diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md b/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md
index 6af1f2836cc..ff8272c3e5b 100644
--- a/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md
+++ b/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md
@@ -14,7 +14,7 @@ related:
link: docs/pbc/all/content-management-system/page.version/base-shop/cms-feature-overview/cms-feature-overview.html
---
-By default, the CMS module doesn't specify the content field's size. For MySQL and MariaDB, it is transferred to TEXT (65535 bytes), and for PostgreSQL, it is transferred to TEXT (unlimited length).
+By default, the CMS module doesn't specify the content field's size. For MySQL and MariaDB, it's transferred to TEXT (65535 bytes), and for PostgreSQL, it's transferred to TEXT (unlimited length).
If your project requires more, you can redefine the field's size in the `spy_cms_version` table.
diff --git a/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md b/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md
index 24bd13e61b0..2569ef10dfb 100644
--- a/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md
+++ b/docs/pbc/all/content-management-system/202404.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md
@@ -246,7 +246,7 @@ class PersonalizedProductQueryPlugin implements QueryInterface
{% info_block infoBox %}
-The limit passed in the constructor of the query plugin. Also, the seed value is `session_id()` of the customer and it is used with the random score from Elasticsearch. You can change these values according to your needs.
+The limit passed in the constructor of the query plugin. Also, the seed value is `session_id()` of the customer and it's used with the random score from Elasticsearch. You can change these values according to your needs.
{% endinfo_block %}
diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/cms-blocks-overview.md b/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/cms-blocks-overview.md
index 300c1a08732..0aacc97e81b 100644
--- a/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/cms-blocks-overview.md
+++ b/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/cms-blocks-overview.md
@@ -25,7 +25,7 @@ The CMS feature is shipped with several block templates by default. A developer
## CMS block validity period
-When creating a block, you can select validity dates. The dates define when the block starts and stops being displayed on the pages it is added to on the Storefront. For example, if you are planning to run a promotion campaign, you can create a banner beforehand and define when it starts and stops being displayed based on the promotion period.
+When creating a block, you can select validity dates. The dates define when the block starts and stops being displayed on the pages it's added to on the Storefront. For example, if you are planning to run a promotion campaign, you can create a banner beforehand and define when it starts and stops being displayed based on the promotion period.
## CMS block store relation
diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md b/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md
index 62c1f2d6d19..96559aef308 100644
--- a/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md
+++ b/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/email-as-a-cms-block-overview.md
@@ -39,7 +39,7 @@ A Developer can create more CMS Block email templates.
### Naming of email CMS blocks
-Being a multi-purpose entity, CMS Blocks relies strongly on its naming when used as an email. The CMS Block name defines the email template it is assigned to.
+Being a multi-purpose entity, CMS Blocks relies strongly on its naming when used as an email. The CMS Block name defines the email template it's assigned to.
#### Template assignment
@@ -123,7 +123,7 @@ To learn how a Back Office User creates translations, see [Managing Glossary](/d
### Variables in Email Templates
-Also, you can use variables to adjust details like a customer name in the emails automatically. For example, if you add the `firstName` variable, when the email is sent, the variable is replaced with the first name of the customer it is sent to. Unlike glossary keys, variables are defined on the code level, namely in the transfer object definition.
+Also, you can use variables to adjust details like a customer name in the emails automatically. For example, if you add the `firstName` variable, when the email is sent, the variable is replaced with the first name of the customer it's sent to. Unlike glossary keys, variables are defined on the code level, namely in the transfer object definition.
A developer can provide a full list of variables and create new ones.
diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/templates-and-slots-overview.md b/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/templates-and-slots-overview.md
index 11b88dbd67e..196f7650eb6 100644
--- a/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/templates-and-slots-overview.md
+++ b/docs/pbc/all/content-management-system/202410.0/base-shop/cms-feature-overview/templates-and-slots-overview.md
@@ -165,7 +165,7 @@ The template list contains the following information:
| description | Template description. It is shown in the Back Office. | "The layout of Slots in the Home Page, always below Store Header including Navigation, and above Store Footer." |
Note the following:
-* If a template has only inactive slots, it is still considered a template with slots. Therefore, it is shown in the **Slots** section.
+* If a template has only inactive slots, it's still considered a template with slots. Therefore, it's shown in the **Slots** section.
* If a template is on an imported template list but does not have a slot, it's not considered a template with slots. Therefore, it's not displayed in the **Slots** section.
### Slot list
@@ -179,7 +179,7 @@ The slot list contains the following information:
| content provider | Defines the source of content of this slot. | SprykerCmsSlotBlock |
| name | Alphabetical identifier of the slot. It is shown in the Back Office. | "Header Top" |
| description | Description of the slot. It is shown in the Back Office. | "A content area in the Header section, that is below the logo and search section and above main navigation" |
-| status | Defines whether the slot is active or not where "0" stands for "inactive" and "1" stands for "active". If a slot is inactive, it is not rendered in the Storefront by the slot widget. | 1 |
+| status | Defines whether the slot is active or not where "0" stands for "inactive" and "1" stands for "active". If a slot is inactive, it's not rendered in the Storefront by the slot widget. | 1 |
## Content providers
A content provider is a source from which Slot Widget fetches content to embed into slots and, subsequently, render it in the Storefront. With templates and slots, you can use slots to embed the content created in your Spryker project or CMS editors of technology partners (for example, [CoreMedia](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/coremedia.html), [E-spirit](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/e-spirit.html), [Styla](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/styla.html), [Magnolia](/docs/pbc/all/content-management-system/{{page.version}}/base-shop/third-party-integrations/magnolia.html)).
@@ -196,7 +196,7 @@ The following schema shows how content is managed with the help of templates wit
![image](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/CMS/Templates+%26+Slots/Templates+%26+Slots+Feature+Overview/templates-and-slots.png)
## Visibility conditions
-When the content manager assigns a CMS block to a slot, it is displayed on all the pages to which the template with the slot is applied. To narrow down the number of pages to a needed selection, the content manager can define visibility conditions for each CMS block assigned to a slot. Visibility conditions are defined by selecting particular pages in which the content of a CMS block will be displayed. When visibility conditions are defined, the slot widget checks if the CMS block must be rendered in an opened page or not. Then, it either renders or skips it.
+When the content manager assigns a CMS block to a slot, it's displayed on all the pages to which the template with the slot is applied. To narrow down the number of pages to a needed selection, the content manager can define visibility conditions for each CMS block assigned to a slot. Visibility conditions are defined by selecting particular pages in which the content of a CMS block will be displayed. When visibility conditions are defined, the slot widget checks if the CMS block must be rendered in an opened page or not. Then, it either renders or skips it.
Page identifiers used to define visibility conditions depend on the page type to which a template with slots is applied. You can check identifiers for each page type in the following table.
@@ -255,7 +255,7 @@ Properties are used by slot widgets to identify for which entity content is bein
You can add other properties to meet your project or external content provider requirements.
#### Property Types
-Properties can be either `required` or `autofilled`. If a property is of the required type, it is entered manually and the slot widget does not render the content if one of the required values is not filled. If a property is of the auto-filled type, when sending a request to fetch content, the slot widget fills this value based on the page opened on the Storefront and fetches the corresponding content. For example, if you want a slot widget to fill `locale` and `store` values automatically, it looks as follows:
+Properties can be either `required` or `autofilled`. If a property is of the required type, it's entered manually and the slot widget does not render the content if one of the required values is not filled. If a property is of the auto-filled type, when sending a request to fetch content, the slot widget fills this value based on the page opened on the Storefront and fetches the corresponding content. For example, if you want a slot widget to fill `locale` and `store` values automatically, it looks as follows:
```twig
{% raw %}{%{% endraw %} cms_slot "cms-slot-key" autofilled ['locale', 'store'] required ['requiredProperty'] with {
diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md b/docs/pbc/all/content-management-system/202410.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md
index b94e0de4b52..478e8d47ace 100644
--- a/docs/pbc/all/content-management-system/202410.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md
+++ b/docs/pbc/all/content-management-system/202410.0/base-shop/import-and-export-data/import-file-details-cms-slot.csv.md
@@ -31,7 +31,7 @@ This document describes the `cms_slot.csv` file to configure [CMS Slot](/docs/pb
| content_provider | ✓ | String |Must be a valid type of content provider. | Defines the source of content of this slot. |
| name | ✓ | String | | Alphabetical identifier of the slot. It will be shown in the Back Office. |
| description | ✓ | String | | Description of the slot. It will be shown in the Back Office. |
-| is_active | | Boolean |
Inactive = 0
Active = 1
If empty during the import, the slots will be imported as inactive.
| Indicates if the slot is active or inactive. If the slot is inactive, it is not rendered in the Storefront by the slot widget. |
+| is_active | | Boolean |
Inactive = 0
Active = 1
If empty during the import, the slots will be imported as inactive.
| Indicates if the slot is active or inactive. If the slot is inactive, it's not rendered in the Storefront by the slot widget. |
diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md
index f3359f89ae7..d2d47276151 100644
--- a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md
+++ b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/blocks/create-email-cms-blocks.md
@@ -58,7 +58,7 @@ You don’t need to activate the email CMS block, as the deactivated status of t
* Add a [glossary key](/docs/pbc/all/miscellaneous/{{page.version}}/manage-in-the-back-office/add-translations.html) to the email block. When the email is sent, the key is replaced with the translation you defined for the locale selected by the customer. To learn how to add translations, see [Managing glossary](/docs/pbc/all/miscellaneous/{{page.version}}/manage-in-the-back-office/add-translations.html).
-* Add variables to the email CMS block to replace them with customer and order specific details. When the email is sent, the variables are replaced with the actual details. For example, add *firstName*, and it is replaced with the name of the customer the email is sent to. A developer can provide a full list of variables and create new ones.
+* Add variables to the email CMS block to replace them with customer and order specific details. When the email is sent, the variables are replaced with the actual details. For example, add *firstName*, and it's replaced with the name of the customer the email is sent to. A developer can provide a full list of variables and create new ones.
## Reference information: Create an email CMS block
diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md
index e6ced71c3cb..4fc4721f6a2 100644
--- a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md
+++ b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-in-the-back-office/product-sets/reorder-product-sets.md
@@ -19,14 +19,14 @@ related:
link: docs/pbc/all/content-management-system/page.version/base-shop/product-sets-feature-overview.html
---
-This document describes how to reorder product sets in the Back Office by defining weight. A product set's weight, relatively to other the other product sets' weight on a page defines how high it is on a page.
+This document describes how to reorder product sets in the Back Office by defining weight. A product set's weight, relatively to other the other product sets' weight on a page defines how high it's on a page.
To reorder product sets by editing their weight, do the following:
1. Go to **Merchandising > Product Sets**.
2. On the **Product Sets** page, click **Reorder Product Sets**.
This opens the **Reorder Product Sets** page. The product sets are displayed in the ascending order of their current weight.
-3. Change the **WEIGHT** of each product set, so that it is in the needed position relatively to the other product sets.
+3. Change the **WEIGHT** of each product set, so that it's in the needed position relatively to the other product sets.
4. Click **Submit**.
This opens the **Product Sets** page with a success message displayed. The updated **WEIGHT** is displayed in the list and the product sets are ordered according to it.
diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-cms-pages.md b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-cms-pages.md
index a7121e3c2f0..67eab1891cb 100644
--- a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-cms-pages.md
+++ b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-cms-pages.md
@@ -46,7 +46,7 @@ This endpoint returns activated CMS pages only. Also, if there are more than 12
### Request
-Due to the Storefront layout, by default, the number of the retrieved pages is a multiple of 12. If you have less than 12 active CMS pages, the above request returns all of them. If you have more, you can enable paging and receive results in pages. For this purpose, use the `limit` and `offset` parameters in your request.
+Because of the Storefront layout, by default, the number of the retrieved pages is a multiple of 12. If you have less than 12 active CMS pages, the above request returns all of them. If you have more, you can enable paging and receive results in pages. For this purpose, use the `limit` and `offset` parameters in your request.
Keep in mind that you can not retrieve the number of results, which is not a multiple of 12. Except for the cases when:
diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md
index e6aa66f80f6..b93662504d9 100644
--- a/docs/pbc/all/content-management-system/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md
+++ b/docs/pbc/all/content-management-system/202410.0/base-shop/manage-using-glue-api/glue-api-retrieve-navigation-trees.md
@@ -50,7 +50,7 @@ Request sample: `GET http://glue.mysprykershop.com/navigations/SOCIAL_LINKS`
{% info_block infoBox "Performance" %}
-If a navigation tree has a category child node, include the `category-nodes` resource to retrieve the category information without extra calls to the `/category-nodes` endpoint. Retrieving the category information can affect the performance of the Navigation API. We recommend doing it only when it is absolutely necessary.
+If a navigation tree has a category child node, include the `category-nodes` resource to retrieve the category information without extra calls to the `/category-nodes` endpoint. Retrieving the category information can affect the performance of the Navigation API. We recommend doing it only when it's absolutely necessary.
{% endinfo_block %}
diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/create-a-custom-content-item.md b/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/create-a-custom-content-item.md
index efb4eaf9e99..cf40de9ac9f 100644
--- a/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/create-a-custom-content-item.md
+++ b/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/create-a-custom-content-item.md
@@ -38,7 +38,7 @@ To create a new content form plugin, follow these steps:
* `getTypeKey()`—returns a string with the name of your content item—for example, Foo.
* `getTermKey()`—returns a string displaying the term for this content type in database—for example, `Foo`, `Foo List` or `Foo Query`. In database, a content type can have different term representations. Correspondingly, there are different ways of getting information about content. For example:
* `Foo List`—product list IDs.
- * `Foo Query`—product query as part of SQL/ElasticSearch query. This value is displayed in the Back Office, in **Content Management > Content Items**.
+ * `Foo Query`—product query as part of SQL/Elasticsearch query. This value is displayed in the Back Office, in **Content Management > Content Items**.
* `getForm()`—a form class name with a namespace which is displayed on the **Content create** or **Content edit** pages.
* `getTransferObject()`—maps form data to a content term transfer object—for example, `ContentFooTermTransfer`.
diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md b/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md
index a6b7f495dc1..9b43dc0f600 100644
--- a/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md
+++ b/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/define-the-maximum-size-of-content-fields.md
@@ -14,7 +14,7 @@ related:
link: docs/pbc/all/content-management-system/page.version/base-shop/cms-feature-overview/cms-feature-overview.html
---
-By default, the CMS module doesn't specify the content field's size. For MySQL and MariaDB, it is transferred to TEXT (65535 bytes), and for PostgreSQL, it is transferred to TEXT (unlimited length).
+By default, the CMS module doesn't specify the content field's size. For MySQL and MariaDB, it's transferred to TEXT (65535 bytes), and for PostgreSQL, it's transferred to TEXT (unlimited length).
If your project requires more, you can redefine the field's size in the `spy_cms_version` table.
diff --git a/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md b/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md
index 24bd13e61b0..2569ef10dfb 100644
--- a/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md
+++ b/docs/pbc/all/content-management-system/202410.0/base-shop/tutorials-and-howtos/tutorial-content-and-search-personalized-catalog-pages.md
@@ -246,7 +246,7 @@ class PersonalizedProductQueryPlugin implements QueryInterface
{% info_block infoBox %}
-The limit passed in the constructor of the query plugin. Also, the seed value is `session_id()` of the customer and it is used with the random score from Elasticsearch. You can change these values according to your needs.
+The limit passed in the constructor of the query plugin. Also, the seed value is `session_id()` of the customer and it's used with the random score from Elasticsearch. You can change these values according to your needs.
{% endinfo_block %}
diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/business-units-overview.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/business-units-overview.md
index 305de572427..ec3588684ec 100644
--- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/business-units-overview.md
+++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/business-units-overview.md
@@ -37,7 +37,7 @@ To create a business unit, its name and email address must be specified.
{% info_block infoBox %}
-The user can also select a parent business unit of the newly created unit. If it is not specified, the new business unit is created with the "0" level in the hierarchy—for example, as a parent.
+The user can also select a parent business unit of the newly created unit. If it's not specified, the new business unit is created with the "0" level in the hierarchy—for example, as a parent.
{% endinfo_block %}
@@ -62,7 +62,7 @@ The following are special characteristics of business units:
{% info_block infoBox %}
-A business unit's children that are one level below it, become 0 level parent business units, and their children become 1 level children.
+A business unit is children that are one level below it, become 0 level parent business units, and their children become 1 level children.
{% endinfo_block %}
diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-accounts-overview.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-accounts-overview.md
index 113abcc59af..d73e2409a43 100644
--- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-accounts-overview.md
+++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-accounts-overview.md
@@ -42,7 +42,7 @@ The level below the business unit is the *company address*. The company address
One company address can be assigned to several business units. For example, if IT and Sales departments are located in the same office, they can share one company address.
-However, a department may be distributed between several locations and have several addresses. For example, if it is a building company, and each unit is a construction site, for each order made for this department, one selects which address of the department the order is to be delivered to. Also, default billing and shipping addresses can't be assigned to business units.
+However, a department may be distributed between several locations and have several addresses. For example, if it's a building company, and each unit is a construction site, for each order made for this department, one selects which address of the department the order is to be delivered to. Also, default billing and shipping addresses can't be assigned to business units.
## Company user
diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md
index 8f9c5a6d6bd..de9221e3cd6 100644
--- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md
+++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md
@@ -12,7 +12,7 @@ redirect_from:
- /docs/scos/user/features/202204.0/company-account-feature-overview/company-user-roles-and-permissions-overview.html
---
-Usually, employees within a company have different roles (for example, purchasing, administration, supervision). These roles are related to company users and are referred to as **Company Roles**. A role can be default (the **is_default** option), which means that it is used for all new users automatically.
+Usually, employees within a company have different roles (for example, purchasing, administration, supervision). These roles are related to company users and are referred to as **Company Roles**. A role can be default (the **is_default** option), which means that it's used for all new users automatically.
Upon initial creation of the first company user, the default role is Admin. After the Admin user has been created, they create the structure of the company and can define the default role to be used further on.
diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/customer-account-management-feature-overview/password-management-overview.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/customer-account-management-feature-overview/password-management-overview.md
index 9b2f311132a..e2d48a4a351 100644
--- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/customer-account-management-feature-overview/password-management-overview.md
+++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/customer-account-management-feature-overview/password-management-overview.md
@@ -23,7 +23,7 @@ You can create customer accounts by [importing](/docs/dg/dev/data-import/{{page.
With the help of [Glue API](/docs/dg/dev/glue-api/{{page.version}}/old-glue-infrastructure/glue-rest-api.html), you can change and reset customer account passwords. This can be useful when you want to use a single authentication in all the apps connected to your shop. To learn how a developer can do it, see [Change a customer’s password](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-manage-customer-passwords.html#change-a-customers-password) and [Reset a customer’s password](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-manage-customer-passwords.html#reset-a-customers-password).
-On the Storefront, it is mandatory to enter a password when creating a customer account. After the account is created, you can update the password in the customer account or request a password reset using email.
+On the Storefront, it's mandatory to enter a password when creating a customer account. After the account is created, you can update the password in the customer account or request a password reset using email.
## Related Business User documents
diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-in-the-back-office/manage-companies.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-in-the-back-office/manage-companies.md
index 9776b74f82f..85ac51e112f 100644
--- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-in-the-back-office/manage-companies.md
+++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-in-the-back-office/manage-companies.md
@@ -34,7 +34,7 @@ To start managing companies, go to **Customers
{% info_block warningBox "Company headquarters" %}
-Once a company is created, one business unit for it is created automatically. This business unit is the company's headquarters. To edit it, see [Edit company units](/docs/pbc/all/customer-relationship-management/{{page.version}}/base-shop/manage-in-the-back-office/company-units/edit-company-units.html).
+Once a company is created, one business unit for it's created automatically. This business unit is the company's headquarters. To edit it, see [Edit company units](/docs/pbc/all/customer-relationship-management/{{page.version}}/base-shop/manage-in-the-back-office/company-units/edit-company-units.html).
{% endinfo_block %}
diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md
index 9c084b6eda7..b8a4b3f376d 100644
--- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md
+++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/company-account/glue-api-retrieve-business-units.md
@@ -215,7 +215,7 @@ To retrieve a business unit, send the request:
| name | String | Specifies the name of the business unit. |
| email | String | Specifies the email address of the business unit. |
| phone | String | Specifies the telephone number of the business unit. |
-| externalUrl | String | Specifies the URL of the business unit's website. |
+| externalUrl | String | Specifies the URL of the business unit is website. |
| bic | String | Specifies the Bank Identifier Code of the business unit. |
| iban | String | Specifies the International Bank Account Number of the business unit. |
| defaultBillingAddress | String | Specifies the ID of the business unit default billing address. For details on how to retrieve the actual address, see the *Retrieving Business Unit Addresses* section. |
diff --git a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md
index 1600c84577c..f6effd7cef8 100644
--- a/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md
+++ b/docs/pbc/all/customer-relationship-management/202311.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md
@@ -36,7 +36,7 @@ The Customer API allows creating customers and manage their account data. This i
In your development, these resources can help you:
-* Retrieve relevant customer information. for any page where it is needed.
+* Retrieve relevant customer information. for any page where it's needed.
* Retrieve customer subscriptions to availability notifications.
* Enable customer registration.
* Allow customer login and authentication.
diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/business-units-overview.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/business-units-overview.md
index aaf82d752c7..54f7b000b4a 100644
--- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/business-units-overview.md
+++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/business-units-overview.md
@@ -37,7 +37,7 @@ To create a business unit, its name and email address must be specified.
{% info_block infoBox %}
-The user can also select a parent business unit of the newly created unit. If it is not specified, the new business unit is created with the "0" level in the hierarchy—for example, as a parent.
+The user can also select a parent business unit of the newly created unit. If it's not specified, the new business unit is created with the "0" level in the hierarchy—for example, as a parent.
{% endinfo_block %}
@@ -62,7 +62,7 @@ The following are special characteristics of business units:
{% info_block infoBox %}
-A business unit's children that are one level below it, become 0 level parent business units, and their children become 1 level children.
+A business unit is children that are one level below it, become 0 level parent business units, and their children become 1 level children.
{% endinfo_block %}
diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-accounts-overview.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-accounts-overview.md
index 29f5cd200bd..153408d23d7 100644
--- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-accounts-overview.md
+++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-accounts-overview.md
@@ -42,7 +42,7 @@ The level below the business unit is the *company address*. The company address
One company address can be assigned to several business units. For example, if IT and Sales departments are located in the same office, they can share one company address.
-However, a department may be distributed between several locations and have several addresses. For example, if it is a building company, and each unit is a construction site, for each order made for this department, one selects which address of the department the order is to be delivered to. Also, default billing and shipping addresses can't be assigned to business units.
+However, a department may be distributed between several locations and have several addresses. For example, if it's a building company, and each unit is a construction site, for each order made for this department, one selects which address of the department the order is to be delivered to. Also, default billing and shipping addresses can't be assigned to business units.
## Company user
diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md
index b463d896919..2e95137c1ce 100644
--- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md
+++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/company-account-feature-overview/company-user-roles-and-permissions-overview.md
@@ -12,7 +12,7 @@ redirect_from:
- /docs/scos/user/features/202204.0/company-account-feature-overview/company-user-roles-and-permissions-overview.html
---
-Usually, employees within a company have different roles (for example, purchasing, administration, supervision). These roles are related to company users and are referred to as **Company Roles**. A role can be default (the **is_default** option), which means that it is used for all new users automatically.
+Usually, employees within a company have different roles (for example, purchasing, administration, supervision). These roles are related to company users and are referred to as **Company Roles**. A role can be default (the **is_default** option), which means that it's used for all new users automatically.
Upon initial creation of the first company user, the default role is Admin. After the Admin user has been created, they create the structure of the company and can define the default role to be used further on.
diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/customer-account-management-feature-overview/password-management-overview.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/customer-account-management-feature-overview/password-management-overview.md
index 9b2f311132a..e2d48a4a351 100644
--- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/customer-account-management-feature-overview/password-management-overview.md
+++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/customer-account-management-feature-overview/password-management-overview.md
@@ -23,7 +23,7 @@ You can create customer accounts by [importing](/docs/dg/dev/data-import/{{page.
With the help of [Glue API](/docs/dg/dev/glue-api/{{page.version}}/old-glue-infrastructure/glue-rest-api.html), you can change and reset customer account passwords. This can be useful when you want to use a single authentication in all the apps connected to your shop. To learn how a developer can do it, see [Change a customer’s password](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-manage-customer-passwords.html#change-a-customers-password) and [Reset a customer’s password](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-manage-customer-passwords.html#reset-a-customers-password).
-On the Storefront, it is mandatory to enter a password when creating a customer account. After the account is created, you can update the password in the customer account or request a password reset using email.
+On the Storefront, it's mandatory to enter a password when creating a customer account. After the account is created, you can update the password in the customer account or request a password reset using email.
## Related Business User documents
diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-in-the-back-office/manage-companies.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-in-the-back-office/manage-companies.md
index 9776b74f82f..85ac51e112f 100644
--- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-in-the-back-office/manage-companies.md
+++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-in-the-back-office/manage-companies.md
@@ -34,7 +34,7 @@ To start managing companies, go to **Customers
{% info_block warningBox "Company headquarters" %}
-Once a company is created, one business unit for it is created automatically. This business unit is the company's headquarters. To edit it, see [Edit company units](/docs/pbc/all/customer-relationship-management/{{page.version}}/base-shop/manage-in-the-back-office/company-units/edit-company-units.html).
+Once a company is created, one business unit for it's created automatically. This business unit is the company's headquarters. To edit it, see [Edit company units](/docs/pbc/all/customer-relationship-management/{{page.version}}/base-shop/manage-in-the-back-office/company-units/edit-company-units.html).
{% endinfo_block %}
diff --git a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md
index 708c9268f12..288ed5ea248 100644
--- a/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md
+++ b/docs/pbc/all/customer-relationship-management/202404.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md
@@ -36,7 +36,7 @@ The Customer API allows creating customers and manage their account data. This i
In your development, these resources can help you:
-* Retrieve relevant customer information. for any page where it is needed.
+* Retrieve relevant customer information. for any page where it's needed.
* Retrieve customer subscriptions to availability notifications.
* Enable customer registration.
* Allow customer login and authentication.
diff --git a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/business-units-overview.md b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/business-units-overview.md
index aaf82d752c7..54f7b000b4a 100644
--- a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/business-units-overview.md
+++ b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/business-units-overview.md
@@ -37,7 +37,7 @@ To create a business unit, its name and email address must be specified.
{% info_block infoBox %}
-The user can also select a parent business unit of the newly created unit. If it is not specified, the new business unit is created with the "0" level in the hierarchy—for example, as a parent.
+The user can also select a parent business unit of the newly created unit. If it's not specified, the new business unit is created with the "0" level in the hierarchy—for example, as a parent.
{% endinfo_block %}
@@ -62,7 +62,7 @@ The following are special characteristics of business units:
{% info_block infoBox %}
-A business unit's children that are one level below it, become 0 level parent business units, and their children become 1 level children.
+A business unit is children that are one level below it, become 0 level parent business units, and their children become 1 level children.
{% endinfo_block %}
diff --git a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/company-accounts-overview.md b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/company-accounts-overview.md
index 29f5cd200bd..153408d23d7 100644
--- a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/company-accounts-overview.md
+++ b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/company-account-feature-overview/company-accounts-overview.md
@@ -42,7 +42,7 @@ The level below the business unit is the *company address*. The company address
One company address can be assigned to several business units. For example, if IT and Sales departments are located in the same office, they can share one company address.
-However, a department may be distributed between several locations and have several addresses. For example, if it is a building company, and each unit is a construction site, for each order made for this department, one selects which address of the department the order is to be delivered to. Also, default billing and shipping addresses can't be assigned to business units.
+However, a department may be distributed between several locations and have several addresses. For example, if it's a building company, and each unit is a construction site, for each order made for this department, one selects which address of the department the order is to be delivered to. Also, default billing and shipping addresses can't be assigned to business units.
## Company user
diff --git a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/customer-account-management-feature-overview/password-management-overview.md b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/customer-account-management-feature-overview/password-management-overview.md
index df305b567c9..befa467e38e 100644
--- a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/customer-account-management-feature-overview/password-management-overview.md
+++ b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/customer-account-management-feature-overview/password-management-overview.md
@@ -23,7 +23,7 @@ You can create customer accounts by [importing](/docs/dg/dev/data-import/{{page.
With the help of [Glue API](/docs/dg/dev/glue-api/{{page.version}}/old-glue-infrastructure/glue-rest-api.html), you can change and reset customer account passwords. This can be useful when you want to use a single authentication in all the apps connected to your shop. To learn how a developer can do it, see [Change a customer’s password](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-manage-customer-passwords.html#change-a-customers-password) and [Reset a customer’s password](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-manage-customer-passwords.html#reset-a-customers-password).
-On the Storefront, it is mandatory to enter a password when creating a customer account. After the account is created, you can update the password in the customer account or request a password reset using email.
+On the Storefront, it's mandatory to enter a password when creating a customer account. After the account is created, you can update the password in the customer account or request a password reset using email.
## Related Business User documents
diff --git a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-in-the-back-office/manage-companies.md b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-in-the-back-office/manage-companies.md
index 9776b74f82f..85ac51e112f 100644
--- a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-in-the-back-office/manage-companies.md
+++ b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-in-the-back-office/manage-companies.md
@@ -34,7 +34,7 @@ To start managing companies, go to **Customers
{% info_block warningBox "Company headquarters" %}
-Once a company is created, one business unit for it is created automatically. This business unit is the company's headquarters. To edit it, see [Edit company units](/docs/pbc/all/customer-relationship-management/{{page.version}}/base-shop/manage-in-the-back-office/company-units/edit-company-units.html).
+Once a company is created, one business unit for it's created automatically. This business unit is the company's headquarters. To edit it, see [Edit company units](/docs/pbc/all/customer-relationship-management/{{page.version}}/base-shop/manage-in-the-back-office/company-units/edit-company-units.html).
{% endinfo_block %}
diff --git a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md
index 9edbc7626ef..a6365a52080 100644
--- a/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md
+++ b/docs/pbc/all/customer-relationship-management/202410.0/base-shop/manage-using-glue-api/customers/glue-api-manage-customers.md
@@ -36,7 +36,7 @@ The Customer API allows creating customers and manage their account data. This i
In your development, these resources can help you:
-* Retrieve relevant customer information. for any page where it is needed.
+* Retrieve relevant customer information. for any page where it's needed.
* Retrieve customer subscriptions to availability notifications.
* Enable customer registration.
* Allow customer login and authentication.
diff --git a/docs/pbc/all/data-exchange/202311.0/sending-requests-with-data-exchange-api.md b/docs/pbc/all/data-exchange/202311.0/sending-requests-with-data-exchange-api.md
index d7b9452140b..94195c4670b 100644
--- a/docs/pbc/all/data-exchange/202311.0/sending-requests-with-data-exchange-api.md
+++ b/docs/pbc/all/data-exchange/202311.0/sending-requests-with-data-exchange-api.md
@@ -310,7 +310,7 @@ For example, configure `isCreatable: false` for `iso3_code` and send the same re
```
-Certain database-specific configurations may result in issues independent of entity configurations. For example, with MariaDB, it is impossible to set the ID value for an auto-incremented field. Additionally, the `iso2_code` field in the `spy_country` table must have a unique value. Therefore, before creating a new record, you need to make sure you are not passing a duplicate value for this field. If a duplicate value is passed, the following is returned:
+Certain database-specific configurations may result in issues independent of entity configurations. For example, with MariaDB, it's impossible to set the ID value for an auto-incremented field. Additionally, the `iso2_code` field in the `spy_country` table must have a unique value. Therefore, before creating a new record, you need to make sure you are not passing a duplicate value for this field. If a duplicate value is passed, the following is returned:
```json
[
@@ -427,7 +427,7 @@ If `id_country` is not found, the following is returned:
{% info_block infoBox %}
-Similarly to the `POST` request, it is important to consider database-specific configurations when sending a `PATCH` request.
+Similarly to the `POST` request, it's important to consider database-specific configurations when sending a `PATCH` request.
{% endinfo_block %}
diff --git a/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md b/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md
index 0930f349839..1af0d69fb97 100644
--- a/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md
+++ b/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md
@@ -33,7 +33,7 @@ The Akeneo PIM Integration App works with B2C and B2B business models of Spryker
Akeneo lets you create products with up to 3 levels of enrichment, while Spryker lets you select multiple super attributes to enrich product information and create product variants.
-For example, if you want to create a T-shirt with varying sizes and colors, here is how it is created in Akeneo:
+For example, if you want to create a T-shirt with varying sizes and colors, here is how it's created in Akeneo:
*Root* Product Model = T-shirt
*Level 1* Product Models (created by varying colour) = Yellow T-shirt, red T-shirt
*Level 2* Product Variants (with variant: size) = Yellow T-shirt small, yellow T-shirt large, red T-shirt small, red T-shirt Large
diff --git a/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md b/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md
index da07215e364..b6a62fab174 100644
--- a/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md
+++ b/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md
@@ -152,7 +152,7 @@ To configure this transformer, do the following:
To configure this transformer, do the following:
-1. In *Stock value*, specify the value of the stock that the product will have after it is imported into Spryker. You can specify 0 as well, but in this case, in SCCOS, this product would be considered as out-of-stock, and, therefore, be unavailable in the Storefront.
+1. In *Stock value*, specify the value of the stock that the product will have after it's imported into Spryker. You can specify 0 as well, but in this case, in SCCOS, this product would be considered as out-of-stock, and, therefore, be unavailable in the Storefront.
2. Optional: Specify the warehouse where this stock should be kept. For details about the warehouses in the Spryker Back Office, see [Create warehouses](/docs/pbc/all/warehouse-management-system/{{page.version}}/base-shop/manage-in-the-back-office/create-warehouses.html).
![memo-base-product-set-stock](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/data-exchange/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/3-configure-data-mapping-between-akeneo-and-spryker/memo-base-product-set-stock.png)
diff --git a/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md b/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md
index 918bc916e61..b4d5357842f 100644
--- a/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md
+++ b/docs/pbc/all/data-exchange/202311.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md
@@ -84,7 +84,7 @@ To create the scheduler, do the following:
5. In *Expression*, enter the time you want the scheduler to run. Use [Crontab guru](https://crontab.guru/) to set the time in the right format.
6. Create one more scheduler with the same parameters, but for step 3, select the *Run outgoing configuration* job.
-Since the number of tasks that can be processed is limited, it is recommended to create a scheduler that would remove completed tasks after the specified intervals.
+Since the number of tasks that can be processed is limited, it's recommended to create a scheduler that would remove completed tasks after the specified intervals.
To create such a scheduler, do the following:
diff --git a/docs/pbc/all/data-exchange/202404.0/sending-requests-with-data-exchange-api.md b/docs/pbc/all/data-exchange/202404.0/sending-requests-with-data-exchange-api.md
index 289e8fcf47d..20e0967ffb4 100644
--- a/docs/pbc/all/data-exchange/202404.0/sending-requests-with-data-exchange-api.md
+++ b/docs/pbc/all/data-exchange/202404.0/sending-requests-with-data-exchange-api.md
@@ -310,7 +310,7 @@ For example, configure `isCreatable: false` for `iso3_code` and send the same re
```
-Certain database-specific configurations may result in issues independent of entity configurations. For example, with MariaDB, it is impossible to set the ID value for an auto-incremented field. Additionally, the `iso2_code` field in the `spy_country` table must have a unique value. Therefore, before creating a new record, you need to make sure you are not passing a duplicate value for this field. If a duplicate value is passed, the following is returned:
+Certain database-specific configurations may result in issues independent of entity configurations. For example, with MariaDB, it's impossible to set the ID value for an auto-incremented field. Additionally, the `iso2_code` field in the `spy_country` table must have a unique value. Therefore, before creating a new record, you need to make sure you are not passing a duplicate value for this field. If a duplicate value is passed, the following is returned:
```json
[
@@ -427,7 +427,7 @@ If `id_country` is not found, the following is returned:
{% info_block infoBox %}
-Similarly to the `POST` request, it is important to consider database-specific configurations when sending a `PATCH` request.
+Similarly to the `POST` request, it's important to consider database-specific configurations when sending a `PATCH` request.
{% endinfo_block %}
@@ -636,7 +636,7 @@ to the child entities based on the newly created parent entity's ID.
By default, the Data Exchange API uses a transactional approach to save data. If an error occurs during the saving process, the entire transaction is rolled back, and no data is saved. However, in some cases, you may want to save data non-transactionally. In the non-transactional mode, the API wraps each entity and its related records (if present in the request) in a separate transaction.
To enable the non-transactional behavior, you need to set the `X-Is-Transactional` with the value `false` in the request.
-In the following example, the first entity will be saved successfully, while the second entity won't be saved due to the missing `rate` field.
+In the following example, the first entity will be saved successfully, while the second entity won't be saved because of the missing `rate` field.
```bash
@@ -676,7 +676,7 @@ Content-Length: 445
```
-Due to the non-transactional mode, the user will receive a response with the saved entity in the `data` field and an error message in the `error` field.
+Because of the non-transactional mode, the user will receive a response with the saved entity in the `data` field and an error message in the `error` field.
```json
{
diff --git a/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md b/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md
index 0930f349839..1af0d69fb97 100644
--- a/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md
+++ b/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md
@@ -33,7 +33,7 @@ The Akeneo PIM Integration App works with B2C and B2B business models of Spryker
Akeneo lets you create products with up to 3 levels of enrichment, while Spryker lets you select multiple super attributes to enrich product information and create product variants.
-For example, if you want to create a T-shirt with varying sizes and colors, here is how it is created in Akeneo:
+For example, if you want to create a T-shirt with varying sizes and colors, here is how it's created in Akeneo:
*Root* Product Model = T-shirt
*Level 1* Product Models (created by varying colour) = Yellow T-shirt, red T-shirt
*Level 2* Product Variants (with variant: size) = Yellow T-shirt small, yellow T-shirt large, red T-shirt small, red T-shirt Large
diff --git a/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md b/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md
index 89f217a9b2d..db820a52f77 100644
--- a/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md
+++ b/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md
@@ -152,7 +152,7 @@ To configure this transformer, do the following:
To configure this transformer, do the following:
-1. In *Stock value*, specify the value of the stock that the product will have after it is imported into Spryker. You can specify 0 as well, but in this case, in SCCOS, this product would be considered as out-of-stock, and, therefore, be unavailable in the Storefront.
+1. In *Stock value*, specify the value of the stock that the product will have after it's imported into Spryker. You can specify 0 as well, but in this case, in SCCOS, this product would be considered as out-of-stock, and, therefore, be unavailable in the Storefront.
2. Optional: Specify the warehouse where this stock should be kept. For details about the warehouses in the Spryker Back Office, see [Create warehouses](/docs/pbc/all/warehouse-management-system/{{page.version}}/base-shop/manage-in-the-back-office/create-warehouses.html).
![memo-base-product-set-stock](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/data-exchange/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/3-configure-data-mapping-between-akeneo-and-spryker/memo-base-product-set-stock.png)
diff --git a/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md b/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md
index 918bc916e61..b4d5357842f 100644
--- a/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md
+++ b/docs/pbc/all/data-exchange/202404.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md
@@ -84,7 +84,7 @@ To create the scheduler, do the following:
5. In *Expression*, enter the time you want the scheduler to run. Use [Crontab guru](https://crontab.guru/) to set the time in the right format.
6. Create one more scheduler with the same parameters, but for step 3, select the *Run outgoing configuration* job.
-Since the number of tasks that can be processed is limited, it is recommended to create a scheduler that would remove completed tasks after the specified intervals.
+Since the number of tasks that can be processed is limited, it's recommended to create a scheduler that would remove completed tasks after the specified intervals.
To create such a scheduler, do the following:
diff --git a/docs/pbc/all/data-exchange/202410.0/sending-requests-with-data-exchange-api.md b/docs/pbc/all/data-exchange/202410.0/sending-requests-with-data-exchange-api.md
index 6f7e7ed2d0c..0371e523811 100644
--- a/docs/pbc/all/data-exchange/202410.0/sending-requests-with-data-exchange-api.md
+++ b/docs/pbc/all/data-exchange/202410.0/sending-requests-with-data-exchange-api.md
@@ -310,7 +310,7 @@ For example, configure `isCreatable: false` for `iso3_code` and send the same re
```
-Certain database-specific configurations may result in issues independent of entity configurations. For example, with MariaDB, it is impossible to set the ID value for an auto-incremented field. Additionally, the `iso2_code` field in the `spy_country` table must have a unique value. Therefore, before creating a new record, you need to make sure you are not passing a duplicate value for this field. If a duplicate value is passed, the following is returned:
+Certain database-specific configurations may result in issues independent of entity configurations. For example, with MariaDB, it's impossible to set the ID value for an auto-incremented field. Additionally, the `iso2_code` field in the `spy_country` table must have a unique value. Therefore, before creating a new record, you need to make sure you are not passing a duplicate value for this field. If a duplicate value is passed, the following is returned:
```json
[
@@ -427,7 +427,7 @@ If `id_country` is not found, the following is returned:
{% info_block infoBox %}
-Similarly to the `POST` request, it is important to consider database-specific configurations when sending a `PATCH` request.
+Similarly to the `POST` request, it's important to consider database-specific configurations when sending a `PATCH` request.
{% endinfo_block %}
@@ -636,7 +636,7 @@ to the child entities based on the newly created parent entity's ID.
By default, the Data Exchange API uses a transactional approach to save data. If an error occurs during the saving process, the entire transaction is rolled back, and no data is saved. However, in some cases, you may want to save data non-transactionally. In the non-transactional mode, the API wraps each entity and its related records (if present in the request) in a separate transaction.
To enable the non-transactional behavior, you need to set the `X-Is-Transactional` with the value `false` in the request.
-In the following example, the first entity will be saved successfully, while the second entity won't be saved due to the missing `rate` field.
+In the following example, the first entity will be saved successfully, while the second entity won't be saved because of the missing `rate` field.
```bash
@@ -676,7 +676,7 @@ Content-Length: 445
```
-Due to the non-transactional mode, the user will receive a response with the saved entity in the `data` field and an error message in the `error` field.
+Because of the non-transactional mode, the user will receive a response with the saved entity in the `data` field and an error message in the `error` field.
```json
{
diff --git a/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md b/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md
index 1d0ef2d11b1..deb60f56699 100644
--- a/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md
+++ b/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/akeneo-pim-integration-app.md
@@ -33,7 +33,7 @@ The Akeneo PIM Integration App works with B2C and B2B business models of Spryker
Akeneo lets you create products with up to 3 levels of enrichment, while Spryker lets you select multiple super attributes to enrich product information and create product variants.
-For example, if you want to create a T-shirt with varying sizes and colors, here is how it is created in Akeneo:
+For example, if you want to create a T-shirt with varying sizes and colors, here is how it's created in Akeneo:
*Root* Product Model = T-shirt
*Level 1* Product Models (created by varying colour) = Yellow T-shirt, red T-shirt
*Level 2* Product Variants (with variant: size) = Yellow T-shirt small, yellow T-shirt large, red T-shirt small, red T-shirt Large
diff --git a/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md b/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md
index 945bdf80080..b1c67111e19 100644
--- a/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md
+++ b/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/configure-data-mapping-between-akeneo-and-sccos.md
@@ -152,7 +152,7 @@ To configure this transformer, do the following:
To configure this transformer, do the following:
-1. In *Stock value*, specify the value of the stock that the product will have after it is imported into Spryker. You can specify 0 as well, but in this case, in SCCOS, this product would be considered as out-of-stock, and, therefore, be unavailable in the Storefront.
+1. In *Stock value*, specify the value of the stock that the product will have after it's imported into Spryker. You can specify 0 as well, but in this case, in SCCOS, this product would be considered as out-of-stock, and, therefore, be unavailable in the Storefront.
2. Optional: Specify the warehouse where this stock should be kept. For details about the warehouses in the Spryker Back Office, see [Create warehouses](/docs/pbc/all/warehouse-management-system/{{page.version}}/base-shop/manage-in-the-back-office/create-warehouses.html).
![memo-base-product-set-stock](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/data-exchange/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/3-configure-data-mapping-between-akeneo-and-spryker/memo-base-product-set-stock.png)
diff --git a/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md b/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md
index 918bc916e61..b4d5357842f 100644
--- a/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md
+++ b/docs/pbc/all/data-exchange/202410.0/spryker-middleware-powered-by-alumio/integration-apps/akeneo-pim-integration-app/configure-the-akeneo-pim-integration-app/create-tasks-and-import-products-from-akeneo-to-sccos.md
@@ -84,7 +84,7 @@ To create the scheduler, do the following:
5. In *Expression*, enter the time you want the scheduler to run. Use [Crontab guru](https://crontab.guru/) to set the time in the right format.
6. Create one more scheduler with the same parameters, but for step 3, select the *Run outgoing configuration* job.
-Since the number of tasks that can be processed is limited, it is recommended to create a scheduler that would remove completed tasks after the specified intervals.
+Since the number of tasks that can be processed is limited, it's recommended to create a scheduler that would remove completed tasks after the specified intervals.
To create such a scheduler, do the following:
diff --git a/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/create-discounts.md b/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/create-discounts.md
index 85e4596ec3e..5c0f9048cef 100644
--- a/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/create-discounts.md
+++ b/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/create-discounts.md
@@ -151,7 +151,7 @@ To give away a promotional product for free, select percentage calculator type a
Similarly to [defining discounted products](#discount-application-type-query-string), the conditions on which a discount is a applied are defined using a query string.
-Example: The discount is applied if five or more items are in the cart, and if it is Tuesday or Wednesday.
+Example: The discount is applied if five or more items are in the cart, and if it's Tuesday or Wednesday.
![Discount Condition](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Discount/Discount+Conditions:+Reference+Information/discount-condition.png)
The **THE DISCOUNT CAN BE APPLIED IF THE QUERY APPLIES FOR AT LEAST X ITEM(S).** defines a minimum number of items that must fulfill the query for the discount to be applies. By default, the minimum order amount value is 1. It means that the discount is applied if there is one item in a cart the fulfills the query.
diff --git a/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/edit-discounts.md b/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/edit-discounts.md
index 09fdd09f62f..6ab4f6c2cc1 100644
--- a/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/edit-discounts.md
+++ b/docs/pbc/all/discount-management/202311.0/base-shop/manage-in-the-back-office/edit-discounts.md
@@ -149,7 +149,7 @@ To give away a promotional product for free, select percentage calculator type a
Similarly do [defining discounted products](#discount-application-type-query-string), the conditions in which a discount is a applied are defined using a query string.
-Example: The discount is applied if five or more items are in the cart, and if it is Tuesday or Wednesday.
+Example: The discount is applied if five or more items are in the cart, and if it's Tuesday or Wednesday.
![Discount Condition](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Discount/Discount+Conditions:+Reference+Information/discount-condition.png)
The **THE DISCOUNT CAN BE APPLIED IF THE QUERY APPLIES FOR AT LEAST X ITEM(S).** defines a minimum number of items that must fulfill the query for the discount to be applies. By default, the minimum order amount value is 1. It means that the discount is applied if there is one item in a cart the fulfills the query.
diff --git a/docs/pbc/all/discount-management/202311.0/base-shop/promotions-discounts-feature-overview.md b/docs/pbc/all/discount-management/202311.0/base-shop/promotions-discounts-feature-overview.md
index 969994ca77b..6ac1700e4d9 100644
--- a/docs/pbc/all/discount-management/202311.0/base-shop/promotions-discounts-feature-overview.md
+++ b/docs/pbc/all/discount-management/202311.0/base-shop/promotions-discounts-feature-overview.md
@@ -63,7 +63,7 @@ A discount can have one or more decision rules. Find an example combination belo
In this case, the discount is applied if the cart contains three items and the purchase is made on the fifth day of the week (Friday).
-Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount Management capability, a query requests information from a cart to check if it is eligible for the discount. By specifying decision rules, you define the parameters of the query.
+Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount Management capability, a query requests information from a cart to check if it's eligible for the discount. By specifying decision rules, you define the parameters of the query.
In the Back Office, you create decision rules in a Query Builder. Query Builder transforms the decision rules into a single query.
@@ -101,7 +101,7 @@ A *rule group* is a separate set of rules with its own combination operator.
![Decision rule group](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-group.png)
-With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it is evaluated on all levels of the hierarchy. At each level, there can be both rules and rule groups.
+With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it's evaluated on all levels of the hierarchy. At each level, there can be both rules and rule groups.
![Decision rule hierarchy](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-hierarchy.png)
@@ -155,7 +155,7 @@ The promotional product discount only applies if the product is added to the car
{% endinfo_block %}
-A Back Office user can either give away promotional products for free or provide a discount for these products by specifying the percentage value, or a fixed amount, to be discounted from their price. When giving a product for free, the percentage value must be 100%. Using a fixed amount discount for a free product is also possible, where the amount is equal to a product's price, but it is not recommended due to the possibility of price fluctuations and differences across multiple products.
+A Back Office user can either give away promotional products for free or provide a discount for these products by specifying the percentage value, or a fixed amount, to be discounted from their price. When giving a product for free, the percentage value must be 100%. Using a fixed amount discount for a free product is also possible, where the amount is equal to a product's price, but it's not recommended because of the possibility of price fluctuations and differences across multiple products.
![Collection - promotional product](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/features/promotions-discounts-feature-overview.md/202200.0/collection-promotional-product.png)
diff --git a/docs/pbc/all/discount-management/202311.0/marketplace/marketplace-promotions-discounts-feature-overview.md b/docs/pbc/all/discount-management/202311.0/marketplace/marketplace-promotions-discounts-feature-overview.md
index 65383f7eeee..8f9350ef3a5 100644
--- a/docs/pbc/all/discount-management/202311.0/marketplace/marketplace-promotions-discounts-feature-overview.md
+++ b/docs/pbc/all/discount-management/202311.0/marketplace/marketplace-promotions-discounts-feature-overview.md
@@ -22,7 +22,7 @@ A product catalog manager selects a discount type when [creating a discount](/do
{% info_block warningBox %}
-Creating cart rules or vouchers based on any merchant parameters, such as a merchant ID or product offer, is not available by default in the current implementation and needs to be added on the project level by extending the Discount Engine. However, it is possible to create cart rules and vouchers for the Marketplace products. See [Create discounts](/docs/pbc/all/discount-management/{{page.version}}/base-shop/manage-in-the-back-office/create-discounts.html) for more details.
+Creating cart rules or vouchers based on any merchant parameters, such as a merchant ID or product offer, is not available by default in the current implementation and needs to be added on the project level by extending the Discount Engine. However, it's possible to create cart rules and vouchers for the Marketplace products. See [Create discounts](/docs/pbc/all/discount-management/{{page.version}}/base-shop/manage-in-the-back-office/create-discounts.html) for more details.
{% endinfo_block %}
@@ -75,7 +75,7 @@ A discount can have one or more decision rules. Find an exemplary combination be
In this case, the discount is applied if the cart contains three items and the purchase is made on the fifth day of the week (Friday).
-Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount feature, a query requests information from a cart to check if it is eligible for the discount. By specifying decision rules, you define the parameters of the query.
+Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount feature, a query requests information from a cart to check if it's eligible for the discount. By specifying decision rules, you define the parameters of the query.
In the Back Office, a product catalog manager creates decision rules in a Query Builder. The decision rules created in the Query Builder are transformed into a single query.
@@ -123,7 +123,7 @@ A rule group is a separate set of rules with its own combination operator.
![Decision rule group](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-group.png)
-With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it is evaluated on all levels of the hierarchy. On each level, there can be both rules and rule groups.
+With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it's evaluated on all levels of the hierarchy. On each level, there can be both rules and rule groups.
![Decision rule hierarchy](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-hierarchy.png)
diff --git a/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/create-discounts.md b/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/create-discounts.md
index 0342bc2f2c0..56f3cde277d 100644
--- a/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/create-discounts.md
+++ b/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/create-discounts.md
@@ -151,7 +151,7 @@ To give away a promotional product for free, select percentage calculator type a
Similarly to [defining discounted products](#discount-application-type-query-string), the conditions on which a discount is a applied are defined using a query string.
-Example: The discount is applied if five or more items are in the cart, and if it is Tuesday or Wednesday.
+Example: The discount is applied if five or more items are in the cart, and if it's Tuesday or Wednesday.
![Discount Condition](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Discount/Discount+Conditions:+Reference+Information/discount-condition.png)
The **THE DISCOUNT CAN BE APPLIED IF THE QUERY APPLIES FOR AT LEAST X ITEM(S).** defines a minimum number of items that must fulfill the query for the discount to be applies. By default, the minimum order amount value is 1. It means that the discount is applied if there is one item in a cart the fulfills the query.
diff --git a/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/edit-discounts.md b/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/edit-discounts.md
index 09fdd09f62f..6ab4f6c2cc1 100644
--- a/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/edit-discounts.md
+++ b/docs/pbc/all/discount-management/202404.0/base-shop/manage-in-the-back-office/edit-discounts.md
@@ -149,7 +149,7 @@ To give away a promotional product for free, select percentage calculator type a
Similarly do [defining discounted products](#discount-application-type-query-string), the conditions in which a discount is a applied are defined using a query string.
-Example: The discount is applied if five or more items are in the cart, and if it is Tuesday or Wednesday.
+Example: The discount is applied if five or more items are in the cart, and if it's Tuesday or Wednesday.
![Discount Condition](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Discount/Discount+Conditions:+Reference+Information/discount-condition.png)
The **THE DISCOUNT CAN BE APPLIED IF THE QUERY APPLIES FOR AT LEAST X ITEM(S).** defines a minimum number of items that must fulfill the query for the discount to be applies. By default, the minimum order amount value is 1. It means that the discount is applied if there is one item in a cart the fulfills the query.
diff --git a/docs/pbc/all/discount-management/202404.0/base-shop/promotions-discounts-feature-overview.md b/docs/pbc/all/discount-management/202404.0/base-shop/promotions-discounts-feature-overview.md
index 969994ca77b..6ac1700e4d9 100644
--- a/docs/pbc/all/discount-management/202404.0/base-shop/promotions-discounts-feature-overview.md
+++ b/docs/pbc/all/discount-management/202404.0/base-shop/promotions-discounts-feature-overview.md
@@ -63,7 +63,7 @@ A discount can have one or more decision rules. Find an example combination belo
In this case, the discount is applied if the cart contains three items and the purchase is made on the fifth day of the week (Friday).
-Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount Management capability, a query requests information from a cart to check if it is eligible for the discount. By specifying decision rules, you define the parameters of the query.
+Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount Management capability, a query requests information from a cart to check if it's eligible for the discount. By specifying decision rules, you define the parameters of the query.
In the Back Office, you create decision rules in a Query Builder. Query Builder transforms the decision rules into a single query.
@@ -101,7 +101,7 @@ A *rule group* is a separate set of rules with its own combination operator.
![Decision rule group](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-group.png)
-With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it is evaluated on all levels of the hierarchy. At each level, there can be both rules and rule groups.
+With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it's evaluated on all levels of the hierarchy. At each level, there can be both rules and rule groups.
![Decision rule hierarchy](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-hierarchy.png)
@@ -155,7 +155,7 @@ The promotional product discount only applies if the product is added to the car
{% endinfo_block %}
-A Back Office user can either give away promotional products for free or provide a discount for these products by specifying the percentage value, or a fixed amount, to be discounted from their price. When giving a product for free, the percentage value must be 100%. Using a fixed amount discount for a free product is also possible, where the amount is equal to a product's price, but it is not recommended due to the possibility of price fluctuations and differences across multiple products.
+A Back Office user can either give away promotional products for free or provide a discount for these products by specifying the percentage value, or a fixed amount, to be discounted from their price. When giving a product for free, the percentage value must be 100%. Using a fixed amount discount for a free product is also possible, where the amount is equal to a product's price, but it's not recommended because of the possibility of price fluctuations and differences across multiple products.
![Collection - promotional product](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/features/promotions-discounts-feature-overview.md/202200.0/collection-promotional-product.png)
diff --git a/docs/pbc/all/discount-management/202404.0/marketplace/marketplace-promotions-discounts-feature-overview.md b/docs/pbc/all/discount-management/202404.0/marketplace/marketplace-promotions-discounts-feature-overview.md
index 65383f7eeee..8f9350ef3a5 100644
--- a/docs/pbc/all/discount-management/202404.0/marketplace/marketplace-promotions-discounts-feature-overview.md
+++ b/docs/pbc/all/discount-management/202404.0/marketplace/marketplace-promotions-discounts-feature-overview.md
@@ -22,7 +22,7 @@ A product catalog manager selects a discount type when [creating a discount](/do
{% info_block warningBox %}
-Creating cart rules or vouchers based on any merchant parameters, such as a merchant ID or product offer, is not available by default in the current implementation and needs to be added on the project level by extending the Discount Engine. However, it is possible to create cart rules and vouchers for the Marketplace products. See [Create discounts](/docs/pbc/all/discount-management/{{page.version}}/base-shop/manage-in-the-back-office/create-discounts.html) for more details.
+Creating cart rules or vouchers based on any merchant parameters, such as a merchant ID or product offer, is not available by default in the current implementation and needs to be added on the project level by extending the Discount Engine. However, it's possible to create cart rules and vouchers for the Marketplace products. See [Create discounts](/docs/pbc/all/discount-management/{{page.version}}/base-shop/manage-in-the-back-office/create-discounts.html) for more details.
{% endinfo_block %}
@@ -75,7 +75,7 @@ A discount can have one or more decision rules. Find an exemplary combination be
In this case, the discount is applied if the cart contains three items and the purchase is made on the fifth day of the week (Friday).
-Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount feature, a query requests information from a cart to check if it is eligible for the discount. By specifying decision rules, you define the parameters of the query.
+Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount feature, a query requests information from a cart to check if it's eligible for the discount. By specifying decision rules, you define the parameters of the query.
In the Back Office, a product catalog manager creates decision rules in a Query Builder. The decision rules created in the Query Builder are transformed into a single query.
@@ -123,7 +123,7 @@ A rule group is a separate set of rules with its own combination operator.
![Decision rule group](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-group.png)
-With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it is evaluated on all levels of the hierarchy. On each level, there can be both rules and rule groups.
+With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it's evaluated on all levels of the hierarchy. On each level, there can be both rules and rule groups.
![Decision rule hierarchy](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-hierarchy.png)
diff --git a/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/create-discounts.md b/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/create-discounts.md
index 2694645c81c..18bde28d5af 100644
--- a/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/create-discounts.md
+++ b/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/create-discounts.md
@@ -151,7 +151,7 @@ To give away a promotional product for free, select percentage calculator type a
Similarly to [defining discounted products](#discount-application-type-query-string), the conditions on which a discount is a applied are defined using a query string.
-Example: The discount is applied if five or more items are in the cart, and if it is Tuesday or Wednesday.
+Example: The discount is applied if five or more items are in the cart, and if it's Tuesday or Wednesday.
![Discount Condition](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Discount/Discount+Conditions:+Reference+Information/discount-condition.png)
The **THE DISCOUNT CAN BE APPLIED IF THE QUERY APPLIES FOR AT LEAST X ITEM(S).** defines a minimum number of items that must fulfill the query for the discount to be applies. By default, the minimum order amount value is 1. It means that the discount is applied if there is one item in a cart the fulfills the query.
diff --git a/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/edit-discounts.md b/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/edit-discounts.md
index 09fdd09f62f..6ab4f6c2cc1 100644
--- a/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/edit-discounts.md
+++ b/docs/pbc/all/discount-management/202410.0/base-shop/manage-in-the-back-office/edit-discounts.md
@@ -149,7 +149,7 @@ To give away a promotional product for free, select percentage calculator type a
Similarly do [defining discounted products](#discount-application-type-query-string), the conditions in which a discount is a applied are defined using a query string.
-Example: The discount is applied if five or more items are in the cart, and if it is Tuesday or Wednesday.
+Example: The discount is applied if five or more items are in the cart, and if it's Tuesday or Wednesday.
![Discount Condition](https://spryker.s3.eu-central-1.amazonaws.com/docs/User+Guides/Back+Office+User+Guides/Discount/Discount+Conditions:+Reference+Information/discount-condition.png)
The **THE DISCOUNT CAN BE APPLIED IF THE QUERY APPLIES FOR AT LEAST X ITEM(S).** defines a minimum number of items that must fulfill the query for the discount to be applies. By default, the minimum order amount value is 1. It means that the discount is applied if there is one item in a cart the fulfills the query.
diff --git a/docs/pbc/all/discount-management/202410.0/base-shop/promotions-discounts-feature-overview.md b/docs/pbc/all/discount-management/202410.0/base-shop/promotions-discounts-feature-overview.md
index 969994ca77b..6ac1700e4d9 100644
--- a/docs/pbc/all/discount-management/202410.0/base-shop/promotions-discounts-feature-overview.md
+++ b/docs/pbc/all/discount-management/202410.0/base-shop/promotions-discounts-feature-overview.md
@@ -63,7 +63,7 @@ A discount can have one or more decision rules. Find an example combination belo
In this case, the discount is applied if the cart contains three items and the purchase is made on the fifth day of the week (Friday).
-Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount Management capability, a query requests information from a cart to check if it is eligible for the discount. By specifying decision rules, you define the parameters of the query.
+Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount Management capability, a query requests information from a cart to check if it's eligible for the discount. By specifying decision rules, you define the parameters of the query.
In the Back Office, you create decision rules in a Query Builder. Query Builder transforms the decision rules into a single query.
@@ -101,7 +101,7 @@ A *rule group* is a separate set of rules with its own combination operator.
![Decision rule group](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-group.png)
-With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it is evaluated on all levels of the hierarchy. At each level, there can be both rules and rule groups.
+With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it's evaluated on all levels of the hierarchy. At each level, there can be both rules and rule groups.
![Decision rule hierarchy](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-hierarchy.png)
@@ -155,7 +155,7 @@ The promotional product discount only applies if the product is added to the car
{% endinfo_block %}
-A Back Office user can either give away promotional products for free or provide a discount for these products by specifying the percentage value, or a fixed amount, to be discounted from their price. When giving a product for free, the percentage value must be 100%. Using a fixed amount discount for a free product is also possible, where the amount is equal to a product's price, but it is not recommended due to the possibility of price fluctuations and differences across multiple products.
+A Back Office user can either give away promotional products for free or provide a discount for these products by specifying the percentage value, or a fixed amount, to be discounted from their price. When giving a product for free, the percentage value must be 100%. Using a fixed amount discount for a free product is also possible, where the amount is equal to a product's price, but it's not recommended because of the possibility of price fluctuations and differences across multiple products.
![Collection - promotional product](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/features/promotions-discounts-feature-overview.md/202200.0/collection-promotional-product.png)
diff --git a/docs/pbc/all/discount-management/202410.0/marketplace/marketplace-promotions-discounts-feature-overview.md b/docs/pbc/all/discount-management/202410.0/marketplace/marketplace-promotions-discounts-feature-overview.md
index 65383f7eeee..8f9350ef3a5 100644
--- a/docs/pbc/all/discount-management/202410.0/marketplace/marketplace-promotions-discounts-feature-overview.md
+++ b/docs/pbc/all/discount-management/202410.0/marketplace/marketplace-promotions-discounts-feature-overview.md
@@ -22,7 +22,7 @@ A product catalog manager selects a discount type when [creating a discount](/do
{% info_block warningBox %}
-Creating cart rules or vouchers based on any merchant parameters, such as a merchant ID or product offer, is not available by default in the current implementation and needs to be added on the project level by extending the Discount Engine. However, it is possible to create cart rules and vouchers for the Marketplace products. See [Create discounts](/docs/pbc/all/discount-management/{{page.version}}/base-shop/manage-in-the-back-office/create-discounts.html) for more details.
+Creating cart rules or vouchers based on any merchant parameters, such as a merchant ID or product offer, is not available by default in the current implementation and needs to be added on the project level by extending the Discount Engine. However, it's possible to create cart rules and vouchers for the Marketplace products. See [Create discounts](/docs/pbc/all/discount-management/{{page.version}}/base-shop/manage-in-the-back-office/create-discounts.html) for more details.
{% endinfo_block %}
@@ -75,7 +75,7 @@ A discount can have one or more decision rules. Find an exemplary combination be
In this case, the discount is applied if the cart contains three items and the purchase is made on the fifth day of the week (Friday).
-Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount feature, a query requests information from a cart to check if it is eligible for the discount. By specifying decision rules, you define the parameters of the query.
+Multiple decision rules form a query. A query is a request for information based on the defined parameters. In the Discount feature, a query requests information from a cart to check if it's eligible for the discount. By specifying decision rules, you define the parameters of the query.
In the Back Office, a product catalog manager creates decision rules in a Query Builder. The decision rules created in the Query Builder are transformed into a single query.
@@ -123,7 +123,7 @@ A rule group is a separate set of rules with its own combination operator.
![Decision rule group](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-group.png)
-With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it is evaluated on all levels of the hierarchy. On each level, there can be both rules and rule groups.
+With the rule groups, you can build multiple levels of rule hierarchy. When a cart is evaluated against the rules, it's evaluated on all levels of the hierarchy. On each level, there can be both rules and rule groups.
![Decision rule hierarchy](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Promotions+%26+Discounts/Discount/Discount+Feature+Overview/decision-rule-hierarchy.png)
diff --git a/docs/pbc/all/dynamic-multistore/202311.0/base-shop/delete-stores.md b/docs/pbc/all/dynamic-multistore/202311.0/base-shop/delete-stores.md
index 26979843174..58e4633c566 100644
--- a/docs/pbc/all/dynamic-multistore/202311.0/base-shop/delete-stores.md
+++ b/docs/pbc/all/dynamic-multistore/202311.0/base-shop/delete-stores.md
@@ -59,7 +59,7 @@ vendor/bin/console scheduler:suspend
## Clean data and configuration in related database tables
-1. Due to the foreign key relationship with the store entity, delete the data from the following tables:
+1. Because of the foreign key relationship with the store entity, delete the data from the following tables:
- `spy_price_product_store`
- `spy_asset_store`
- `spy_availability_abstract`
diff --git a/docs/pbc/all/dynamic-multistore/202404.0/base-shop/delete-stores.md b/docs/pbc/all/dynamic-multistore/202404.0/base-shop/delete-stores.md
index 26979843174..58e4633c566 100644
--- a/docs/pbc/all/dynamic-multistore/202404.0/base-shop/delete-stores.md
+++ b/docs/pbc/all/dynamic-multistore/202404.0/base-shop/delete-stores.md
@@ -59,7 +59,7 @@ vendor/bin/console scheduler:suspend
## Clean data and configuration in related database tables
-1. Due to the foreign key relationship with the store entity, delete the data from the following tables:
+1. Because of the foreign key relationship with the store entity, delete the data from the following tables:
- `spy_price_product_store`
- `spy_asset_store`
- `spy_availability_abstract`
diff --git a/docs/pbc/all/dynamic-multistore/202410.0/base-shop/delete-stores.md b/docs/pbc/all/dynamic-multistore/202410.0/base-shop/delete-stores.md
index f2e787c13d6..011c2909dad 100644
--- a/docs/pbc/all/dynamic-multistore/202410.0/base-shop/delete-stores.md
+++ b/docs/pbc/all/dynamic-multistore/202410.0/base-shop/delete-stores.md
@@ -53,7 +53,7 @@ vendor/bin/console scheduler:suspend
## Clean data and configuration in related database tables
-1. Due to the foreign key relationship with the store entity, delete the data from the following tables:
+1. Because of the foreign key relationship with the store entity, delete the data from the following tables:
- `spy_price_product_store`
- `spy_asset_store`
- `spy_availability_abstract`
diff --git a/docs/pbc/all/dynamic-multistore/202410.0/base-shop/dynamic-multistore-feature-overview.md b/docs/pbc/all/dynamic-multistore/202410.0/base-shop/dynamic-multistore-feature-overview.md
index c68bf60aae2..f7841174310 100644
--- a/docs/pbc/all/dynamic-multistore/202410.0/base-shop/dynamic-multistore-feature-overview.md
+++ b/docs/pbc/all/dynamic-multistore/202410.0/base-shop/dynamic-multistore-feature-overview.md
@@ -14,7 +14,7 @@ related:
link: docs/pbc/all/dynamic-multistore/page.version/marketplace/install-dynamic-multistore-the-marketplace-merchant-portal-core.html
---
-The *Dynamic Multistore* feature lets you create and manage multiple stores within the same region in the Back Office. It streamlines the setup and maintenance of distinct stores tailored to various customer segments, regions, or product categories.
+*Dynamic Multistore* (DMS) lets you create and manage multiple stores within the same region in the Back Office. It streamlines the setup and maintenance of distinct stores tailored to various customer segments, regions, or product categories.
In the Back Office, in the **Administration > Stores**, you can view the list of stores in the current region. The **Stores** page shows all the stores within a specific region.
@@ -104,8 +104,13 @@ When you add a new store, to enable store-related entities for customers, you ne
To avoid manually assigning entities in the Back Office, you can assign them using data import. For more details, see [Import stores](/docs/pbc/all/dynamic-multistore/{{page.version}}/base-shop/import-stores.html).
+## Differences in modes
-## How Dynamic Multistore affects a project
+This section describes the differences in different parts of application in DMS on and off modes.
+
+
+
+## Differences between applications with and without Dynamic Multistore
In this example, EU region has DE and AT stores. US region has a US store. Dynamic Multistore introduces the following changes in this setup:
@@ -135,10 +140,168 @@ In this example, EU region has DE and AT stores. US region has a US store. Dynam
![storefront-store-switcher](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/storefront-store-switcher.png)
+
+
+### Store context in different applications with Dynamic Multistore
+
+All the applications work with the several stores within one region with the following differences:
+* Back Office and Merchant Portal operate with data from all the stores within a region and don't require a store context.
+* Storefront, GlueStorefront, and Glue require a store context and operate within only one provided store. If a store isn't provided, the default one is used.
+
+### Cloud infrastructure differences
+
+DMS doesn't affect cloud infrastructure. The only related changes are in the deployment files, which are described in the following sections.
+
+
+### Deployment file differences
+
+Applacation configurations are defined differently depending on whether DMS is on or off.
+
+#### Environment variables configuration
+
+DMS off:
+
+```yaml
+SPRYKER_HOOK_BEFORE_DEPLOY: 'vendor/bin/install -r pre-deploy.dynamic-store-off -vvv'
+SPRYKER_HOOK_AFTER_DEPLOY: 'true'
+SPRYKER_HOOK_INSTALL: 'vendor/bin/install -r production.dynamic-store-off --no-ansi -vvv'
+SPRYKER_HOOK_DESTRUCTIVE_INSTALL: 'vendor/bin/install -r destructive.dynamic-store-off --no-ansi -vvv'
+SPRYKER_YVES_HOST_DE: de.{{DOMAIN_ZONE}}
+SPRYKER_YVES_HOST_AT: at.{{DOMAIN_ZONE}}
+```
+
+DMS on:
+
+```yaml
+SPRYKER_HOOK_BEFORE_DEPLOY: 'vendor/bin/install -r pre-deploy -vvv'
+SPRYKER_HOOK_AFTER_DEPLOY: 'true'
+SPRYKER_HOOK_INSTALL: 'vendor/bin/install -r dynamic-store --no-ansi -vvv'
+SPRYKER_HOOK_DESTRUCTIVE_INSTALL: 'vendor/bin/install -r destructive --no-ansi -vvv'
+SPRYKER_DYNAMIC_STORE_MODE: true
+SPRYKER_YVES_HOST_EU: yves.eu.{{DOMAIN_ZONE}}
+```
+
+#### Regions configuration
+
+DMS off:
+
+```yaml
+regions:
+ stores:
+ DE:
+ services:
+ broker:
+ namespace: de_queue
+ key_value_store:
+ namespace: 1
+ search:
+ namespace: de_search
+ session:
+ namespace: 2
+ AT:
+ services:
+ broker:
+ namespace: at_queue
+ key_value_store:
+ namespace: 3
+ search:
+ namespace: at_search
+ session:
+ namespace: 4
+```
+DMS on:
+
+```yaml
+regions:
+ broker:
+ namespace: eu-docker
+ key_value_store:
+ namespace: 1
+ search:
+ namespace: eu_search
+```
+
+
+#### Applications configuration
+
+The following examples show the difference for the `merchant-portal` application. The difference is similar for all the applications.
+
+DMS off:
+
+```yaml
+ mportal:
+ application: merchant-portal
+ endpoints:
+ mp.de.{{DOMAIN_ZONE}}:
+ entry-point: MerchantPortal
+ store: DE
+ primal: true
+ services:
+ session:
+ namespace: 7
+ mp.at.{{DOMAIN_ZONE}}:
+ entry-point: MerchantPortal
+ store: AT
+ services:
+ session:
+ namespace: 8
+```
+
+DMS on:
+
+```yaml
+mportal:
+ application: merchant-portal
+ endpoints:
+ mp.eu.{{DOMAIN_ZONE}}:
+ region: EU
+ <<: *frontend-auth
+ entry-point: MerchantPortal
+ primal: true
+ services:
+ session:
+ namespace: 7
+```
+
+{% info_block infoBox "" %}
+
+The domain structure in DMS on mode enables store switching within the same domain.
+
+{% endinfo_block %}
+
+### Differences in the execution of console commands
+
+With DMS off, store-aware console commands are executed with the `APPLICATION_STORE` environment variable. Example:
+
+```shell
+APPLICATION_STORE=DE console search:setup:sources
+```
+
+With DMS on, all the store-aware console commands are executed with the `--store` parameter. Example:
+
+```shell
+console search:setup:sources --store=DE
+```
+
+If a store isn't provided as a parameter, the command is executed for all stores within a current region.
+
+#### Rules for implementing custom console commands in environments with Dynamic Multistore
+
+- `Store(Facade|Client)::getCurrentStore()` must not be used in the code the console command executes.
+- All store-aware commands must implement `Spryker\Zed\Kernel\Communication\Console\StoreAwareConsole` and execute actions for a specific store if the store parameter is provided; if not provided, actions are executed for all the stores in the region.
+- We recommend using the `--store` parameter instead of `APPLICATION_STORE` env variable; both methods are supported.
+
+
+### Store-specific entities in Data Exchange API
+
+There're no specific requirements, and the changes you need to make depend on the database structure. These entities should be handled in the same way as any other exposed through Data Exchange API database table.
+
+
+
## Data import performance
The number of stores affects data import speed: the more stores you have, the slower the data import. Importing products for 40 stores takes approximately 5 times longer than for 8 stores.
## Limitations
-With Dynamic Multistore, the separated setup is only possible with stores belonging to different regions. To learn about setups, see [Multi-store setups](/docs/ca/dev/multi-store-setups/multi-store-setups.html)
+With Dynamic Multistore, the separated setup is only possible with stores belonging to different regions. To learn about setups, see [Multi-store setups](/docs/ca/dev/multi-store-setups/multi-store-setups.html).
diff --git a/docs/pbc/all/dynamic-multistore/202410.0/base-shop/enable-dynamic-multistore.md b/docs/pbc/all/dynamic-multistore/202410.0/base-shop/enable-dynamic-multistore.md
new file mode 100644
index 00000000000..008d535aab3
--- /dev/null
+++ b/docs/pbc/all/dynamic-multistore/202410.0/base-shop/enable-dynamic-multistore.md
@@ -0,0 +1,193 @@
+---
+title: Enable Dynamic Multistore
+description: Learn how to enable the Dynamic Store feature on the latest codebase
+last_updated: Dec 19, 2024
+template: howto-guide-template
+---
+
+
+This document describes how to enable [Dynamic Multistore](/docs/pbc/all/dynamic-multistore/{{page.version}}/base-shop/dynamic-multistore-feature-overview.html) (DMS).
+
+## Prerequisites
+
+If your project version is below 202307.0, [Install Dynamic Multistore](/docs/pbc/all/dynamic-multistore/{{page.version}}/base-shop/install-and-upgrade/install-features/install-dynamic-multistore.html).
+
+### Enable Dynamic Multistore
+
+{% info_block warningBox "Staging environment" %}
+To avoid unexpected downtime and data loss, perform and test *all* of the following steps in a staging environment first.
+{% endinfo_block %}
+
+
+
+1. Replace `StoreClient::getCurrentStore()` and `StoreFacade::getCurrentStore()` methods with `StoreStorageClient:getStoreNames()`, `StoreStorageClient::findStoreByName()`, or `StoreFacade::getStoreCollection()` in the following:
+ * Back Office
+ * Merchant Portal
+ * Console Commands
+ * Gateway
+ * BackendAPI
+
+2. Update custom console commands to meet the following rules:
+ - `Store(Facade|Client)::getCurrentStore()` isn't used in the code a console command executes.
+ - All store-aware commands implement `Spryker\Zed\Kernel\Communication\Console\StoreAwareConsole` and execute actions for a specific store if a store parameter is provided; if not provided, actions are executed for all the stores in the region.
+ - Optional: We recommend using the `--store` parameter instead of `APPLICATION_STORE` env variable; both methods are supported.
+
+3. After enabling DMS, the basic domain structure will change from store to region for all the applications. For example, `https://yves.de.mysprykershop.com` will change to `https://yves.eu.mysprykershop.com`. To prevent negative SEO effects, set up the needed redirects.
+4. DMS changes the structure of RabbitMQ messages. When you're ready for the migration, wait for all the remaining messages in the queue to be processed. When the queue is empty, enable the maintenance mode.
+The downtime associated with the maintenance mode is limited to the deployment time, which usually takes up to an hour.
+
+5. Update AWS deployment files to DMS mode using the example:
+
+Original environment variables section:
+```yaml
+SPRYKER_HOOK_BEFORE_DEPLOY: 'vendor/bin/install -r pre-deploy.dynamic-store-off -vvv'
+SPRYKER_HOOK_AFTER_DEPLOY: 'true'
+SPRYKER_HOOK_INSTALL: 'vendor/bin/install -r production.dynamic-store-off --no-ansi -vvv'
+SPRYKER_HOOK_DESTRUCTIVE_INSTALL: 'vendor/bin/install -r destructive.dynamic-store-off --no-ansi -vvv'
+SPRYKER_YVES_HOST_DE: de.{{DOMAIN_ZONE}}
+SPRYKER_YVES_HOST_AT: at.{{DOMAIN_ZONE}}
+```
+
+Updated environment variables section:
+
+```yaml
+SPRYKER_HOOK_BEFORE_DEPLOY: 'vendor/bin/install -r pre-deploy -vvv'
+SPRYKER_HOOK_AFTER_DEPLOY: 'true'
+SPRYKER_HOOK_INSTALL: 'vendor/bin/install -r dynamic-store --no-ansi -vvv'
+SPRYKER_HOOK_DESTRUCTIVE_INSTALL: 'vendor/bin/install -r destructive --no-ansi -vvv'
+SPRYKER_DYNAMIC_STORE_MODE: true
+SPRYKER_YVES_HOST_EU: yves.eu.{{DOMAIN_ZONE}}
+```
+
+Original regions section:
+```yaml
+regions:
+ stores:
+ DE:
+ services:
+ broker:
+ namespace: de_queue
+ key_value_store:
+ namespace: 1
+ search:
+ namespace: de_search
+ session:
+ namespace: 2
+ AT:
+ services:
+ broker:
+ namespace: at_queue
+ key_value_store:
+ namespace: 3
+ search:
+ namespace: at_search
+ session:
+ namespace: 4
+```
+
+Updated regions section:
+
+```yaml
+regions:
+ broker:
+ namespace: eu-docker
+ key_value_store:
+ namespace: 1
+ search:
+ namespace: eu_search
+```
+
+6. Run a normal deploy for your server pipeline.
+
+
+{% info_block warningBox "Verification" %}
+- Make sure your store is available at `https://yves.eu.mysprykershop.com` or `https://backoffice.eu.mysprykershop.com`.
+- Make sure the store switcher is displayed on the Storefront.
+
+{% endinfo_block %}
+
+Your shop is now running in DMS mode.
+
+### Check if Dynamic Multistore is enabled
+
+DMS is enabled if at least one of the following applies:
+1. Using environment: If the value of `SPRYKER_DYNAMIC_STORE_MODE` environment variable is `true`
+2. Using interface: In the Back Office > **Administration** > **Stores**, an **Edit** button is displayed next to each store.
+
+## Disable Dynamic Multistore
+
+{% info_block warningBox "Staging environment" %}
+To avoid unexpected downtime and data loss, perform and test *all* of the following steps in a staging environment first.
+{% endinfo_block %}
+
+
+
+
+
+1. After disabling DMS, the basic domain structure will change from region to store for all the applications. To prevent negative SEO effects, set up the needed redirects.
+2. DMS changes the structure of RabbitMQ messages. When you're ready for the migration, wait for all the remaining messages in the queue to be processed. When the queue is empty, enable the maintenance mode.
+ (Expected downtime is limited to the deployment time, normally it takes less than 1hr)
+3. Revert changes in deploy files to disable DMS:
+
+Original environment variables section:
+```yaml
+SPRYKER_HOOK_BEFORE_DEPLOY: 'vendor/bin/install -r pre-deploy -vvv'
+SPRYKER_HOOK_AFTER_DEPLOY: 'true'
+SPRYKER_HOOK_INSTALL: 'vendor/bin/install -r dynamic-store --no-ansi -vvv'
+SPRYKER_HOOK_DESTRUCTIVE_INSTALL: 'vendor/bin/install -r destructive --no-ansi -vvv'
+SPRYKER_DYNAMIC_STORE_MODE: true
+SPRYKER_YVES_HOST_EU: yves.eu.{{DOMAIN_ZONE}}
+```
+Updated environment variables section:
+```yaml
+SPRYKER_HOOK_BEFORE_DEPLOY: 'vendor/bin/install -r pre-deploy.dynamic-store-off -vvv'
+SPRYKER_HOOK_AFTER_DEPLOY: 'true'
+SPRYKER_HOOK_INSTALL: 'vendor/bin/install -r production.dynamic-store-off --no-ansi -vvv'
+SPRYKER_HOOK_DESTRUCTIVE_INSTALL: 'vendor/bin/install -r destructive.dynamic-store-off --no-ansi -vvv'
+SPRYKER_YVES_HOST_DE: de.{{DOMAIN_ZONE}}
+SPRYKER_YVES_HOST_AT: at.{{DOMAIN_ZONE}}
+```
+
+Original regions section:
+```yaml
+regions:
+ broker:
+ namespace: eu-docker
+ key_value_store:
+ namespace: 1
+ search:
+ namespace: eu_search
+```
+
+Updated regions section:
+```yaml
+regions:
+ stores:
+ DE:
+ services:
+ broker:
+ namespace: de_queue
+ key_value_store:
+ namespace: 1
+ search:
+ namespace: de_search
+ session:
+ namespace: 2
+ AT:
+ services:
+ broker:
+ namespace: at_queue
+ key_value_store:
+ namespace: 3
+ search:
+ namespace: at_search
+ session:
+ namespace: 4
+```
+
+6. Run a normal deploy for your server pipeline.
+
+{% info_block warningBox "Verification" %}
+- Make sure your store is available at `https://yves.de.mysprykershop.com` or `https://backoffice.de.mysprykershop.com`.
+- Make sure the store switcher is *not* displayed on the Storefront.
+{% endinfo_block %}
diff --git a/docs/pbc/all/dynamic-multistore/202410.0/dynamic-multistore.md b/docs/pbc/all/dynamic-multistore/202410.0/dynamic-multistore.md
index 7fead33e4b3..1b7556eb648 100644
--- a/docs/pbc/all/dynamic-multistore/202410.0/dynamic-multistore.md
+++ b/docs/pbc/all/dynamic-multistore/202410.0/dynamic-multistore.md
@@ -5,12 +5,6 @@ last_updated: July 31, 2023
template: concept-topic-template
---
-{% info_block warningBox %}
-
-Dynamic Multistore is currently running under an *Early Access Release*. Early Access Releases are subject to specific legal terms, they are unsupported and do not provide production-ready SLAs. They can also be deprecated without a General Availability Release. Nevertheless, we welcome feedback from early adopters on these cutting-edge, exploratory features.
-
-{% endinfo_block %}
-
The *Dynamic Multistore* is an innovative feature that enables business users to effortlessly create and manage multiple online stores from the Back Office. This feature aims to streamline the process of setting up and maintaining distinct online stores, each catering to different customer segments, regions, or product categories.
Key benefits:
diff --git a/docs/pbc/all/emails/202311.0/third-party-integrations/integrate-inxmail.md b/docs/pbc/all/emails/202311.0/third-party-integrations/integrate-inxmail.md
index 5dc114886ee..c1b9eb52d79 100644
--- a/docs/pbc/all/emails/202311.0/third-party-integrations/integrate-inxmail.md
+++ b/docs/pbc/all/emails/202311.0/third-party-integrations/integrate-inxmail.md
@@ -10,7 +10,7 @@ redirect_from:
This document desribes how to integrate Inxmail.
-### New customer registration event
+## New customer registration event
Inxmail module has `\SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\InxmailPostCustomerRegistrationPlugin`. This plugin implements `PostCustomerRegistrationPluginInterface` and can be used in `\Pyz\Zed\Customer\CustomerDependencyProvider::getPostCustomerRegistrationPlugins.`
@@ -32,7 +32,7 @@ Inxmail module has `\SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\Inxmai
}
```
-### The customer asked to reset password event
+## The customer asked to reset password event
Inxmail module has `\SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\InxmailCustomerRestorePasswordMailTypePlugin`. This plugin implements `MailTypePluginInterface` and can be used in `\Pyz\Zed\Mail\MailDependencyProvider::provideBusinessLayerDependencies`
diff --git a/docs/pbc/all/emails/202404.0/third-party-integrations/integrate-inxmail.md b/docs/pbc/all/emails/202404.0/third-party-integrations/integrate-inxmail.md
index 5dc114886ee..c1b9eb52d79 100644
--- a/docs/pbc/all/emails/202404.0/third-party-integrations/integrate-inxmail.md
+++ b/docs/pbc/all/emails/202404.0/third-party-integrations/integrate-inxmail.md
@@ -10,7 +10,7 @@ redirect_from:
This document desribes how to integrate Inxmail.
-### New customer registration event
+## New customer registration event
Inxmail module has `\SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\InxmailPostCustomerRegistrationPlugin`. This plugin implements `PostCustomerRegistrationPluginInterface` and can be used in `\Pyz\Zed\Customer\CustomerDependencyProvider::getPostCustomerRegistrationPlugins.`
@@ -32,7 +32,7 @@ Inxmail module has `\SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\Inxmai
}
```
-### The customer asked to reset password event
+## The customer asked to reset password event
Inxmail module has `\SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\InxmailCustomerRestorePasswordMailTypePlugin`. This plugin implements `MailTypePluginInterface` and can be used in `\Pyz\Zed\Mail\MailDependencyProvider::provideBusinessLayerDependencies`
diff --git a/docs/pbc/all/emails/202410.0/third-party-integrations/integrate-inxmail.md b/docs/pbc/all/emails/202410.0/third-party-integrations/integrate-inxmail.md
index 7b1a15e2267..a30ae01258e 100644
--- a/docs/pbc/all/emails/202410.0/third-party-integrations/integrate-inxmail.md
+++ b/docs/pbc/all/emails/202410.0/third-party-integrations/integrate-inxmail.md
@@ -10,7 +10,7 @@ redirect_from:
This document desribes how to integrate Inxmail.
-### New customer registration event
+## New customer registration event
Inxmail module has `\SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\InxmailPostCustomerRegistrationPlugin`. This plugin implements `PostCustomerRegistrationPluginInterface` and can be used in `\Pyz\Zed\Customer\CustomerDependencyProvider::getPostCustomerRegistrationPlugins.`
@@ -32,7 +32,7 @@ Inxmail module has `\SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\Inxmai
}
```
-### The customer asked to reset password event
+## The customer asked to reset password event
Inxmail module has `\SprykerEco\Zed\Inxmail\Communication\Plugin\Customer\InxmailCustomerRestorePasswordMailTypePlugin`. This plugin implements `MailTypePluginInterface` and can be used in `\Pyz\Zed\Mail\MailDependencyProvider::provideBusinessLayerDependencies`
diff --git a/docs/pbc/all/gift-cards/202311.0/gift-cards.md b/docs/pbc/all/gift-cards/202311.0/gift-cards.md
index 4857ae752a5..fc35a1f0387 100644
--- a/docs/pbc/all/gift-cards/202311.0/gift-cards.md
+++ b/docs/pbc/all/gift-cards/202311.0/gift-cards.md
@@ -25,7 +25,7 @@ Gift cards are sensitive data and can be used to pay orders. Keep in mind that t
{% endinfo_block %}
-Gift cards follow the same rules as any product, and are bought as products. They can even be bundled. However, they are purely virtual and do not require shipping. A gift card can be applied as a voucher and redeemed to pay an order. Gift cards have two traits: a product traits and a voucher (+payment method) traits. When a gift card is bought, it is treated like a product. When it is applied, it’s a *voucher* that can be used as a payment method.
+Gift cards follow the same rules as any product, and are bought as products. They can even be bundled. However, they are purely virtual and do not require shipping. A gift card can be applied as a voucher and redeemed to pay an order. Gift cards have two traits: a product traits and a voucher (+payment method) traits. When a gift card is bought, it's treated like a product. When it's applied, it’s a *voucher* that can be used as a payment method.
Gift cards have variants just like abstract products. For example, a New Year Gift Card can have all the different values—50 Euro and 100 Euro. In this case, the New Year Gift Card would be handled like an abstract product, and 50 Euro and 100 Euro gift cards would be its variants.
@@ -76,7 +76,7 @@ The main advantage of this strategy is that the same gift card code cannot be us
### Balance strategy
-In the case of the Balance strategy, the gift card's purchase history and its balance information are checked. If after paying an order a gift card has any remaining balance, then in contrast to the Replacement strategy, the user does not get a new gift card code with the new gift card value, but the old gift card code is used instead. The remaining gift card value is calculated by the following formula: `Gift Card Value - Value of all orders where it is used`.
+In the case of the Balance strategy, the gift card's purchase history and its balance information are checked. If after paying an order a gift card has any remaining balance, then in contrast to the Replacement strategy, the user does not get a new gift card code with the new gift card value, but the old gift card code is used instead. The remaining gift card value is calculated by the following formula: `Gift Card Value - Value of all orders where it's used`.
With this strategy, a Back Office user will see gift card balance information such as the date when the gift card was used, the customer who used it, the gift card's code, and its spent value.
diff --git a/docs/pbc/all/gift-cards/202404.0/gift-cards.md b/docs/pbc/all/gift-cards/202404.0/gift-cards.md
index 4857ae752a5..fc35a1f0387 100644
--- a/docs/pbc/all/gift-cards/202404.0/gift-cards.md
+++ b/docs/pbc/all/gift-cards/202404.0/gift-cards.md
@@ -25,7 +25,7 @@ Gift cards are sensitive data and can be used to pay orders. Keep in mind that t
{% endinfo_block %}
-Gift cards follow the same rules as any product, and are bought as products. They can even be bundled. However, they are purely virtual and do not require shipping. A gift card can be applied as a voucher and redeemed to pay an order. Gift cards have two traits: a product traits and a voucher (+payment method) traits. When a gift card is bought, it is treated like a product. When it is applied, it’s a *voucher* that can be used as a payment method.
+Gift cards follow the same rules as any product, and are bought as products. They can even be bundled. However, they are purely virtual and do not require shipping. A gift card can be applied as a voucher and redeemed to pay an order. Gift cards have two traits: a product traits and a voucher (+payment method) traits. When a gift card is bought, it's treated like a product. When it's applied, it’s a *voucher* that can be used as a payment method.
Gift cards have variants just like abstract products. For example, a New Year Gift Card can have all the different values—50 Euro and 100 Euro. In this case, the New Year Gift Card would be handled like an abstract product, and 50 Euro and 100 Euro gift cards would be its variants.
@@ -76,7 +76,7 @@ The main advantage of this strategy is that the same gift card code cannot be us
### Balance strategy
-In the case of the Balance strategy, the gift card's purchase history and its balance information are checked. If after paying an order a gift card has any remaining balance, then in contrast to the Replacement strategy, the user does not get a new gift card code with the new gift card value, but the old gift card code is used instead. The remaining gift card value is calculated by the following formula: `Gift Card Value - Value of all orders where it is used`.
+In the case of the Balance strategy, the gift card's purchase history and its balance information are checked. If after paying an order a gift card has any remaining balance, then in contrast to the Replacement strategy, the user does not get a new gift card code with the new gift card value, but the old gift card code is used instead. The remaining gift card value is calculated by the following formula: `Gift Card Value - Value of all orders where it's used`.
With this strategy, a Back Office user will see gift card balance information such as the date when the gift card was used, the customer who used it, the gift card's code, and its spent value.
diff --git a/docs/pbc/all/gift-cards/202410.0/gift-cards.md b/docs/pbc/all/gift-cards/202410.0/gift-cards.md
index 4857ae752a5..fc35a1f0387 100644
--- a/docs/pbc/all/gift-cards/202410.0/gift-cards.md
+++ b/docs/pbc/all/gift-cards/202410.0/gift-cards.md
@@ -25,7 +25,7 @@ Gift cards are sensitive data and can be used to pay orders. Keep in mind that t
{% endinfo_block %}
-Gift cards follow the same rules as any product, and are bought as products. They can even be bundled. However, they are purely virtual and do not require shipping. A gift card can be applied as a voucher and redeemed to pay an order. Gift cards have two traits: a product traits and a voucher (+payment method) traits. When a gift card is bought, it is treated like a product. When it is applied, it’s a *voucher* that can be used as a payment method.
+Gift cards follow the same rules as any product, and are bought as products. They can even be bundled. However, they are purely virtual and do not require shipping. A gift card can be applied as a voucher and redeemed to pay an order. Gift cards have two traits: a product traits and a voucher (+payment method) traits. When a gift card is bought, it's treated like a product. When it's applied, it’s a *voucher* that can be used as a payment method.
Gift cards have variants just like abstract products. For example, a New Year Gift Card can have all the different values—50 Euro and 100 Euro. In this case, the New Year Gift Card would be handled like an abstract product, and 50 Euro and 100 Euro gift cards would be its variants.
@@ -76,7 +76,7 @@ The main advantage of this strategy is that the same gift card code cannot be us
### Balance strategy
-In the case of the Balance strategy, the gift card's purchase history and its balance information are checked. If after paying an order a gift card has any remaining balance, then in contrast to the Replacement strategy, the user does not get a new gift card code with the new gift card value, but the old gift card code is used instead. The remaining gift card value is calculated by the following formula: `Gift Card Value - Value of all orders where it is used`.
+In the case of the Balance strategy, the gift card's purchase history and its balance information are checked. If after paying an order a gift card has any remaining balance, then in contrast to the Replacement strategy, the user does not get a new gift card code with the new gift card value, but the old gift card code is used instead. The remaining gift card value is calculated by the following formula: `Gift Card Value - Value of all orders where it's used`.
With this strategy, a Back Office user will see gift card balance information such as the date when the gift card was used, the customer who used it, the gift card's code, and its spent value.
diff --git a/docs/pbc/all/identity-access-management/202311.0/manage-using-glue-api/glue-api-authenticate-as-a-company-user.md b/docs/pbc/all/identity-access-management/202311.0/manage-using-glue-api/glue-api-authenticate-as-a-company-user.md
index cefa7ea76f3..f3fc5b8dda3 100644
--- a/docs/pbc/all/identity-access-management/202311.0/manage-using-glue-api/glue-api-authenticate-as-a-company-user.md
+++ b/docs/pbc/all/identity-access-management/202311.0/manage-using-glue-api/glue-api-authenticate-as-a-company-user.md
@@ -105,7 +105,7 @@ Request sample: authenticate as a company user
| CODE | REASON |
| --- | --- |
-| 001 | Failed to authenticate a user. This can happen due to the following reasons:
Current authenticated customer cannot authenticate as the specified company user.
Specified company user does not exist.
Authentication token provided in the request is incorrect.
|
+| 001 | Failed to authenticate a user. This can happen because of the following reasons:
Current authenticated customer cannot authenticate as the specified company user.
Specified company user does not exist.
Authentication token provided in the request is incorrect.
|
| 002 | Authentication token is missing. |
| 901 | The `idCompanyUser` attribute is not specified, invalid, or empty. |
diff --git a/docs/pbc/all/identity-access-management/202404.0/manage-using-glue-api/glue-api-authenticate-as-a-company-user.md b/docs/pbc/all/identity-access-management/202404.0/manage-using-glue-api/glue-api-authenticate-as-a-company-user.md
index cefa7ea76f3..f3fc5b8dda3 100644
--- a/docs/pbc/all/identity-access-management/202404.0/manage-using-glue-api/glue-api-authenticate-as-a-company-user.md
+++ b/docs/pbc/all/identity-access-management/202404.0/manage-using-glue-api/glue-api-authenticate-as-a-company-user.md
@@ -105,7 +105,7 @@ Request sample: authenticate as a company user
| CODE | REASON |
| --- | --- |
-| 001 | Failed to authenticate a user. This can happen due to the following reasons:
Current authenticated customer cannot authenticate as the specified company user.
Specified company user does not exist.
Authentication token provided in the request is incorrect.
|
+| 001 | Failed to authenticate a user. This can happen because of the following reasons:
Current authenticated customer cannot authenticate as the specified company user.
Specified company user does not exist.
Authentication token provided in the request is incorrect.
|
| 002 | Authentication token is missing. |
| 901 | The `idCompanyUser` attribute is not specified, invalid, or empty. |
diff --git a/docs/pbc/all/identity-access-management/202410.0/manage-using-glue-api/glue-api-authenticate-as-a-company-user.md b/docs/pbc/all/identity-access-management/202410.0/manage-using-glue-api/glue-api-authenticate-as-a-company-user.md
index 14f4e629628..636786ff9d1 100644
--- a/docs/pbc/all/identity-access-management/202410.0/manage-using-glue-api/glue-api-authenticate-as-a-company-user.md
+++ b/docs/pbc/all/identity-access-management/202410.0/manage-using-glue-api/glue-api-authenticate-as-a-company-user.md
@@ -105,7 +105,7 @@ Request sample: authenticate as a company user
| CODE | REASON |
| --- | --- |
-| 001 | Failed to authenticate a user. This can happen due to the following reasons:
Current authenticated customer cannot authenticate as the specified company user.
Specified company user does not exist.
Authentication token provided in the request is incorrect.
|
+| 001 | Failed to authenticate a user. This can happen because of the following reasons:
Current authenticated customer cannot authenticate as the specified company user.
Specified company user does not exist.
Authentication token provided in the request is incorrect.
|
| 002 | Authentication token is missing. |
| 901 | The `idCompanyUser` attribute is not specified, invalid, or empty. |
diff --git a/docs/pbc/all/merchant-management/202311.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md b/docs/pbc/all/merchant-management/202311.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md
index f55f2e85720..5849e537601 100644
--- a/docs/pbc/all/merchant-management/202311.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md
+++ b/docs/pbc/all/merchant-management/202311.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md
@@ -25,12 +25,12 @@ On this page, you can find commonly encountered cases of product restrictions be
Product Catalog
Blacklist
-
If the merchant relation has a blacklist, all buyers in the associated business units cannot interact with any products from the blacklist. The blacklisted products are excluded from view, search, existing lists and carts. If the category is a part of a blacklist, it is greyed out in the shop navigation, however, you can change this setting on the project level so, for example, that the category is not greyed out.
+
If the merchant relation has a blacklist, all buyers in the associated business units cannot interact with any products from the blacklist. The blacklisted products are excluded from view, search, existing lists and carts. If the category is a part of a blacklist, it's greyed out in the shop navigation, however, you can change this setting on the project level so, for example, that the category is not greyed out.
All products assigned to a category are also included in the black/white list.
-
In case the products are added to the category after it was included in a list, it is reflected after some time with the help of publish & sync process.
+
In case the products are added to the category after it was included in a list, it's reflected after some time with the help of publish & sync process.
@@ -86,7 +86,7 @@ On this page, you can find commonly encountered cases of product restrictions be
Blacklist
-
If the product, that is added to the shopping list, has been blacklisted, it is displayed as if it is unavailable.
+
If the product, that is added to the shopping list, has been blacklisted, it's displayed as if it's unavailable.
@@ -100,7 +100,7 @@ On this page, you can find commonly encountered cases of product restrictions be
Blacklist
-
If a product that has been added to a list of the alternative products, is restricted, it is not suggested on product pages.
+
If a product that has been added to a list of the alternative products, is restricted, it's not suggested on product pages.
@@ -114,7 +114,7 @@ On this page, you can find commonly encountered cases of product restrictions be
Blacklist
-
If any of the products that are added to a product group, is restricted, it is not displayed in the Shop Application.
+
If any of the products that are added to a product group, is restricted, it's not displayed in the Shop Application.
@@ -128,7 +128,7 @@ On this page, you can find commonly encountered cases of product restrictions be
Blacklist
-
If any of the related products is added to a blacklist - it is not displayed in the Shop Application.
+
If any of the related products is added to a blacklist - it's not displayed in the Shop Application.
diff --git a/docs/pbc/all/merchant-management/202311.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md b/docs/pbc/all/merchant-management/202311.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md
index e13ab93c2f1..b018b05dacd 100644
--- a/docs/pbc/all/merchant-management/202311.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md
+++ b/docs/pbc/all/merchant-management/202311.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md
@@ -74,7 +74,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
@@ -111,7 +111,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -152,7 +152,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+31 123 345 733",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Video King
Gilzeweg 24 4854SG Bavel NL
Phone: +31 123 45 6789 Email: hi@video-king.nl
Represented by Managing Director: Max Mustermann Register Court: Amsterdam Register Number: 1234.4567
",
"dataPrivacy": "Video King values the privacy of your personal data."
},
@@ -184,7 +184,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567500",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Hamburg Register Number: HXX 134305
",
"dataPrivacy": "Budget Cameras values the privacy of your personal data."
},
@@ -231,7 +231,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
@@ -268,7 +268,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -383,7 +383,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
@@ -430,7 +430,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
diff --git a/docs/pbc/all/merchant-management/202311.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md b/docs/pbc/all/merchant-management/202311.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md
index 39db182cdc6..e0ffba0b605 100644
--- a/docs/pbc/all/merchant-management/202311.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md
+++ b/docs/pbc/all/merchant-management/202311.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md
@@ -52,7 +52,7 @@ See the complete configuration of the `PersistenceAcl` module at [AclEntityMetad
## How to extend the initial Persistence ACL configuration
Even though the Merchant Portal comes with the Persistence ACL configuration, which is fully ready for the full-fledged merchant operation and provides data protection, you can extend or override this configuration. To do this, implement `\Spryker\Zed\AclEntityExtension\Dependency\Plugin\AclEntityMetadataConfigExpanderPluginInterface`.
-To override the rules that are created automatically when creating a merchant and a user's merchant, it is enough to override such methods as:
+To override the rules that are created automatically when creating a merchant and a user's merchant, it's enough to override such methods as:
- `\Spryker\Zed\AclMerchantPortal\AclMerchantPortalConfig::getMerchantAclRoleEntityRules()`
- `\Spryker\Zed\AclMerchantPortal\AclMerchantPortalConfig::getMerchantUserAclRoleEntityRules()`
diff --git a/docs/pbc/all/merchant-management/202311.0/marketplace/merchant-opening-hours-feature-overview.md b/docs/pbc/all/merchant-management/202311.0/marketplace/merchant-opening-hours-feature-overview.md
index c1a1b07d1a5..13a34270a30 100644
--- a/docs/pbc/all/merchant-management/202311.0/marketplace/merchant-opening-hours-feature-overview.md
+++ b/docs/pbc/all/merchant-management/202311.0/marketplace/merchant-opening-hours-feature-overview.md
@@ -21,7 +21,7 @@ A merchant has the following:
* Merchant is opened on a usually closed day—for example, Sunday.
* Merchant has different opening hours in comparison to a normal schedule—for example, December 31st has shorter opening hours.
-* Public holidays—special days when the Merchant is not available due to the public holidays
+* Public holidays—special days when the Merchant is not available because of the public holidays
To display merchant opening hours on the Storefront, you should import the open hours information. For information about how to do that, see [File details: merchant_open_hours_date_schedule.csv](/docs/pbc/all/merchant-management/{{page.version}}/marketplace/import-and-export-data/import-file-details-merchant-open-hours-date-schedule.csv.html) and [File details: merchant_open_hours_week_day_schedule.csv](/docs/pbc/all/merchant-management/{{page.version}}/marketplace/import-and-export-data/import-file-details-merchant-open-hours-week-day-schedule.csv.html).
diff --git a/docs/pbc/all/merchant-management/202404.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md b/docs/pbc/all/merchant-management/202404.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md
index f55f2e85720..5849e537601 100644
--- a/docs/pbc/all/merchant-management/202404.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md
+++ b/docs/pbc/all/merchant-management/202404.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md
@@ -25,12 +25,12 @@ On this page, you can find commonly encountered cases of product restrictions be
Product Catalog
Blacklist
-
If the merchant relation has a blacklist, all buyers in the associated business units cannot interact with any products from the blacklist. The blacklisted products are excluded from view, search, existing lists and carts. If the category is a part of a blacklist, it is greyed out in the shop navigation, however, you can change this setting on the project level so, for example, that the category is not greyed out.
+
If the merchant relation has a blacklist, all buyers in the associated business units cannot interact with any products from the blacklist. The blacklisted products are excluded from view, search, existing lists and carts. If the category is a part of a blacklist, it's greyed out in the shop navigation, however, you can change this setting on the project level so, for example, that the category is not greyed out.
All products assigned to a category are also included in the black/white list.
-
In case the products are added to the category after it was included in a list, it is reflected after some time with the help of publish & sync process.
+
In case the products are added to the category after it was included in a list, it's reflected after some time with the help of publish & sync process.
@@ -86,7 +86,7 @@ On this page, you can find commonly encountered cases of product restrictions be
Blacklist
-
If the product, that is added to the shopping list, has been blacklisted, it is displayed as if it is unavailable.
+
If the product, that is added to the shopping list, has been blacklisted, it's displayed as if it's unavailable.
@@ -100,7 +100,7 @@ On this page, you can find commonly encountered cases of product restrictions be
Blacklist
-
If a product that has been added to a list of the alternative products, is restricted, it is not suggested on product pages.
+
If a product that has been added to a list of the alternative products, is restricted, it's not suggested on product pages.
@@ -114,7 +114,7 @@ On this page, you can find commonly encountered cases of product restrictions be
Blacklist
-
If any of the products that are added to a product group, is restricted, it is not displayed in the Shop Application.
+
If any of the products that are added to a product group, is restricted, it's not displayed in the Shop Application.
@@ -128,7 +128,7 @@ On this page, you can find commonly encountered cases of product restrictions be
Blacklist
-
If any of the related products is added to a blacklist - it is not displayed in the Shop Application.
+
If any of the related products is added to a blacklist - it's not displayed in the Shop Application.
diff --git a/docs/pbc/all/merchant-management/202404.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md b/docs/pbc/all/merchant-management/202404.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md
index e13ab93c2f1..b018b05dacd 100644
--- a/docs/pbc/all/merchant-management/202404.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md
+++ b/docs/pbc/all/merchant-management/202404.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md
@@ -74,7 +74,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
@@ -111,7 +111,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -152,7 +152,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+31 123 345 733",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Video King
Gilzeweg 24 4854SG Bavel NL
Phone: +31 123 45 6789 Email: hi@video-king.nl
Represented by Managing Director: Max Mustermann Register Court: Amsterdam Register Number: 1234.4567
",
"dataPrivacy": "Video King values the privacy of your personal data."
},
@@ -184,7 +184,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567500",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Hamburg Register Number: HXX 134305
",
"dataPrivacy": "Budget Cameras values the privacy of your personal data."
},
@@ -231,7 +231,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
@@ -268,7 +268,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -383,7 +383,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
@@ -430,7 +430,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
diff --git a/docs/pbc/all/merchant-management/202404.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md b/docs/pbc/all/merchant-management/202404.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md
index 39db182cdc6..e0ffba0b605 100644
--- a/docs/pbc/all/merchant-management/202404.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md
+++ b/docs/pbc/all/merchant-management/202404.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md
@@ -52,7 +52,7 @@ See the complete configuration of the `PersistenceAcl` module at [AclEntityMetad
## How to extend the initial Persistence ACL configuration
Even though the Merchant Portal comes with the Persistence ACL configuration, which is fully ready for the full-fledged merchant operation and provides data protection, you can extend or override this configuration. To do this, implement `\Spryker\Zed\AclEntityExtension\Dependency\Plugin\AclEntityMetadataConfigExpanderPluginInterface`.
-To override the rules that are created automatically when creating a merchant and a user's merchant, it is enough to override such methods as:
+To override the rules that are created automatically when creating a merchant and a user's merchant, it's enough to override such methods as:
- `\Spryker\Zed\AclMerchantPortal\AclMerchantPortalConfig::getMerchantAclRoleEntityRules()`
- `\Spryker\Zed\AclMerchantPortal\AclMerchantPortalConfig::getMerchantUserAclRoleEntityRules()`
diff --git a/docs/pbc/all/merchant-management/202404.0/marketplace/merchant-opening-hours-feature-overview.md b/docs/pbc/all/merchant-management/202404.0/marketplace/merchant-opening-hours-feature-overview.md
index c1a1b07d1a5..13a34270a30 100644
--- a/docs/pbc/all/merchant-management/202404.0/marketplace/merchant-opening-hours-feature-overview.md
+++ b/docs/pbc/all/merchant-management/202404.0/marketplace/merchant-opening-hours-feature-overview.md
@@ -21,7 +21,7 @@ A merchant has the following:
* Merchant is opened on a usually closed day—for example, Sunday.
* Merchant has different opening hours in comparison to a normal schedule—for example, December 31st has shorter opening hours.
-* Public holidays—special days when the Merchant is not available due to the public holidays
+* Public holidays—special days when the Merchant is not available because of the public holidays
To display merchant opening hours on the Storefront, you should import the open hours information. For information about how to do that, see [File details: merchant_open_hours_date_schedule.csv](/docs/pbc/all/merchant-management/{{page.version}}/marketplace/import-and-export-data/import-file-details-merchant-open-hours-date-schedule.csv.html) and [File details: merchant_open_hours_week_day_schedule.csv](/docs/pbc/all/merchant-management/{{page.version}}/marketplace/import-and-export-data/import-file-details-merchant-open-hours-week-day-schedule.csv.html).
diff --git a/docs/pbc/all/merchant-management/202410.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md b/docs/pbc/all/merchant-management/202410.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md
index f55f2e85720..5849e537601 100644
--- a/docs/pbc/all/merchant-management/202410.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md
+++ b/docs/pbc/all/merchant-management/202410.0/base-shop/merchant-product-restrictions-feature-overview/restricted-products-behavior.md
@@ -25,12 +25,12 @@ On this page, you can find commonly encountered cases of product restrictions be
Product Catalog
Blacklist
-
If the merchant relation has a blacklist, all buyers in the associated business units cannot interact with any products from the blacklist. The blacklisted products are excluded from view, search, existing lists and carts. If the category is a part of a blacklist, it is greyed out in the shop navigation, however, you can change this setting on the project level so, for example, that the category is not greyed out.
+
If the merchant relation has a blacklist, all buyers in the associated business units cannot interact with any products from the blacklist. The blacklisted products are excluded from view, search, existing lists and carts. If the category is a part of a blacklist, it's greyed out in the shop navigation, however, you can change this setting on the project level so, for example, that the category is not greyed out.
All products assigned to a category are also included in the black/white list.
-
In case the products are added to the category after it was included in a list, it is reflected after some time with the help of publish & sync process.
+
In case the products are added to the category after it was included in a list, it's reflected after some time with the help of publish & sync process.
@@ -86,7 +86,7 @@ On this page, you can find commonly encountered cases of product restrictions be
Blacklist
-
If the product, that is added to the shopping list, has been blacklisted, it is displayed as if it is unavailable.
+
If the product, that is added to the shopping list, has been blacklisted, it's displayed as if it's unavailable.
@@ -100,7 +100,7 @@ On this page, you can find commonly encountered cases of product restrictions be
Blacklist
-
If a product that has been added to a list of the alternative products, is restricted, it is not suggested on product pages.
+
If a product that has been added to a list of the alternative products, is restricted, it's not suggested on product pages.
@@ -114,7 +114,7 @@ On this page, you can find commonly encountered cases of product restrictions be
Blacklist
-
If any of the products that are added to a product group, is restricted, it is not displayed in the Shop Application.
+
If any of the products that are added to a product group, is restricted, it's not displayed in the Shop Application.
@@ -128,7 +128,7 @@ On this page, you can find commonly encountered cases of product restrictions be
Blacklist
-
If any of the related products is added to a blacklist - it is not displayed in the Shop Application.
+
If any of the related products is added to a blacklist - it's not displayed in the Shop Application.
diff --git a/docs/pbc/all/merchant-management/202410.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md b/docs/pbc/all/merchant-management/202410.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md
index a70f87b4f02..aa5cff7197d 100644
--- a/docs/pbc/all/merchant-management/202410.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md
+++ b/docs/pbc/all/merchant-management/202410.0/marketplace/manage-using-glue-api/glue-api-retrieve-merchants.md
@@ -74,7 +74,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
@@ -111,7 +111,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -152,7 +152,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+31 123 345 733",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Video King
Gilzeweg 24 4854SG Bavel NL
Phone: +31 123 45 6789 Email: hi@video-king.nl
Represented by Managing Director: Max Mustermann Register Court: Amsterdam Register Number: 1234.4567
",
"dataPrivacy": "Video King values the privacy of your personal data."
},
@@ -184,7 +184,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567500",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Hamburg Register Number: HXX 134305
",
"dataPrivacy": "Budget Cameras values the privacy of your personal data."
},
@@ -231,7 +231,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
@@ -268,7 +268,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567800",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Directors: Alexander Graf, Boris Lokschin Register Court: Hamburg Register Number: HRB 134310
",
"dataPrivacy": "Spryker Systems GmbH values the privacy of your personal data."
},
@@ -383,7 +383,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
@@ -430,7 +430,7 @@ This endpoint returns only [active](/docs/pbc/all/merchant-management/{{page.ver
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
},
diff --git a/docs/pbc/all/merchant-management/202410.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md b/docs/pbc/all/merchant-management/202410.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md
index 0e42d86c0fd..3b844b60b50 100644
--- a/docs/pbc/all/merchant-management/202410.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md
+++ b/docs/pbc/all/merchant-management/202410.0/marketplace/marketplace-merchant-portal-core-feature-overview/persistence-acl-configuration.md
@@ -52,7 +52,7 @@ See the complete configuration of the `PersistenceAcl` module at [AclEntityMetad
## How to extend the initial Persistence ACL configuration
Even though the Merchant Portal comes with the Persistence ACL configuration, which is fully ready for the full-fledged merchant operation and provides data protection, you can extend or override this configuration. To do this, implement `\Spryker\Zed\AclEntityExtension\Dependency\Plugin\AclEntityMetadataConfigExpanderPluginInterface`.
-To override the rules that are created automatically when creating a merchant and a user's merchant, it is enough to override such methods as:
+To override the rules that are created automatically when creating a merchant and a user's merchant, it's enough to override such methods as:
- `\Spryker\Zed\AclMerchantPortal\AclMerchantPortalConfig::getMerchantAclRoleEntityRules()`
- `\Spryker\Zed\AclMerchantPortal\AclMerchantPortalConfig::getMerchantUserAclRoleEntityRules()`
diff --git a/docs/pbc/all/merchant-management/202410.0/marketplace/merchant-opening-hours-feature-overview.md b/docs/pbc/all/merchant-management/202410.0/marketplace/merchant-opening-hours-feature-overview.md
index c1a1b07d1a5..13a34270a30 100644
--- a/docs/pbc/all/merchant-management/202410.0/marketplace/merchant-opening-hours-feature-overview.md
+++ b/docs/pbc/all/merchant-management/202410.0/marketplace/merchant-opening-hours-feature-overview.md
@@ -21,7 +21,7 @@ A merchant has the following:
* Merchant is opened on a usually closed day—for example, Sunday.
* Merchant has different opening hours in comparison to a normal schedule—for example, December 31st has shorter opening hours.
-* Public holidays—special days when the Merchant is not available due to the public holidays
+* Public holidays—special days when the Merchant is not available because of the public holidays
To display merchant opening hours on the Storefront, you should import the open hours information. For information about how to do that, see [File details: merchant_open_hours_date_schedule.csv](/docs/pbc/all/merchant-management/{{page.version}}/marketplace/import-and-export-data/import-file-details-merchant-open-hours-date-schedule.csv.html) and [File details: merchant_open_hours_week_day_schedule.csv](/docs/pbc/all/merchant-management/{{page.version}}/marketplace/import-and-export-data/import-file-details-merchant-open-hours-week-day-schedule.csv.html).
diff --git a/docs/pbc/all/merchant-management/202410.0/marketplace/tutorials-and-howtos/create-merchant-commission-collector-rule.md b/docs/pbc/all/merchant-management/202410.0/marketplace/tutorials-and-howtos/create-merchant-commission-collector-rule.md
index 07464d5d2b9..bbd21dd4767 100644
--- a/docs/pbc/all/merchant-management/202410.0/marketplace/tutorials-and-howtos/create-merchant-commission-collector-rule.md
+++ b/docs/pbc/all/merchant-management/202410.0/marketplace/tutorials-and-howtos/create-merchant-commission-collector-rule.md
@@ -293,7 +293,7 @@ class DiscountMerchantCommissionFacade extends AbstractFacade implements Discoun
## 6) Implement the collector rule plugin
The plugin will call our `DiscountAmountMerchantCommissionItemCollectorRule` class to collect order items. In our example, the plugin only accepts the `number` data type, but you can adjust it to accept other data types, like `list` or `string`.
-The `getFieldName()` method returns the field name as it is used in the item collector query string, e.g. `discount-amount >= '100'`.
+The `getFieldName()` method returns the field name as it's used in the item collector query string, e.g. `discount-amount >= '100'`.
```php
diff --git a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/glue-api-add-push-notification-subscriptions.md b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/glue-api-add-push-notification-subscriptions.md
index 16d67f38dee..e635294f4ef 100644
--- a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/glue-api-add-push-notification-subscriptions.md
+++ b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/glue-api-add-push-notification-subscriptions.md
@@ -32,7 +32,7 @@ This endpoint lets you subscribe to push notifications using Glue API.
| Authorization | string | ✓ | Alphanumeric string that authorizes the Back Office user to send requests to protected resources. Get it by [authenticating as a Back Office user](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-authenticate-as-a-back-office-user.html). |
-Request sample: `POST https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers`
+Request sample: `POST https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers`
```json
{
@@ -45,7 +45,7 @@ Request sample: `POST https://glue-backend.de.b2c.demo-spryker.com/push-notifica
"identifier": "1"
},
"payload": {
- "endpoint": "https://push-notifications.de.b2c.demo-spryker.com",
+ "endpoint": "https://push-notifications.b2c-eu.demo-spryker.com",
"publicKey": "3243-f234-3f34-d2334",
"authToken": "4o3ijfoi3j4f93j4d7fh4f34jf3d902kfh345g8jf903kdj23uf3"
},
@@ -82,7 +82,7 @@ Response sample:
"attributes": {
"providerName": "web-push-php",
"payload": {
- "endpoint": "https://push-notifications.de.b2c.demo-spryker.com",
+ "endpoint": "https://push-notifications.b2c-eu.demo-spryker.com",
"publicKey": "3243-f234-3f34-d2334",
"authToken": "4o3ijfoi3j4f93j4d7fh4f34jf3d902kfh345g8jf903kdj23uf3"
},
diff --git a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-add-push-notification-providers.md b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-add-push-notification-providers.md
index 71c38fc6ca3..0eb60720a87 100644
--- a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-add-push-notification-providers.md
+++ b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-add-push-notification-providers.md
@@ -32,7 +32,7 @@ This endpoint lets you add push notification providers to further subscribe to n
| Authorization | string | ✓ | Alphanumeric string that authorizes the Back Office user to send requests to protected resources. Get it by [authenticating as a Back Office user](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-authenticate-as-a-back-office-user.html). |
-Request sample: `POST https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers`
+Request sample: `POST https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers`
```json
{
@@ -63,7 +63,7 @@ Response sample:
"name": "Fulfillment App provider"
},
"links": {
- "self": "https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e"
+ "self": "https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e"
}
}
}
diff --git a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-delete-push-notification-providers.md b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-delete-push-notification-providers.md
index 031374adbd9..1ddbc0d05b8 100644
--- a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-delete-push-notification-providers.md
+++ b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-delete-push-notification-providers.md
@@ -33,7 +33,7 @@ This endpoint lets you delete push notification providers.
| Authorization | string | ✓ | Alphanumeric string that authorizes the Back Office user to send requests to protected resources. Get it by [authenticating as a Back Office user](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-authenticate-as-a-back-office-user.html). |
-Request sample: `DELETE https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e`
+Request sample: `DELETE https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e`
### Response
diff --git a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-retrieve-push-notification-providers.md b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-retrieve-push-notification-providers.md
index 2005edb02bf..7ea12ff6534 100644
--- a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-retrieve-push-notification-providers.md
+++ b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-retrieve-push-notification-providers.md
@@ -32,7 +32,7 @@ This endpoint lets you retrieve push notification providers to further subscribe
| Authorization | string | ✓ | Alphanumeric string that authorizes the Back Office user to send requests to protected resources. Get it by [authenticating as a Back Office user](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-authenticate-as-a-back-office-user.html). |
-Request sample: `GET https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers`
+Request sample: `GET https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers`
### Response
@@ -50,7 +50,7 @@ Request sample: `GET https://glue-backend.de.b2c.demo-spryker.com/push-notificat
"name": "web-push-php"
},
"links": {
- "self": "https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/2a304ddf-d51b-514f-bd11-6e818a27fe23"
+ "self": "https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/2a304ddf-d51b-514f-bd11-6e818a27fe23"
}
},
{
@@ -61,12 +61,12 @@ Request sample: `GET https://glue-backend.de.b2c.demo-spryker.com/push-notificat
"name": "Fulfillment App provider"
},
"links": {
- "self": "https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e"
+ "self": "https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e"
}
}
],
"links": {
- "self": "https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers"
+ "self": "https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers"
}
}
```
@@ -95,7 +95,7 @@ Request sample: `GET https://glue-backend.de.b2c.demo-spryker.com/push-notificat
| ------------- | ------------ | -------- | ------------------------------------------------------------ |
| Authorization | string | ✓ | Alphanumeric string that authorizes the Back Office user to send requests to protected resources. Get it by [authenticating as a Back Office user](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-authenticate-as-a-back-office-user.html). |
-Request sample: `GET https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/2a304ddf-d51b-514f-bd11-6e818a27fe23`
+Request sample: `GET https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/2a304ddf-d51b-514f-bd11-6e818a27fe23`
### Response
@@ -110,7 +110,7 @@ Response sample:
"name": "web-push-php"
},
"links": {
- "self": "https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/2a304ddf-d51b-514f-bd11-6e818a27fe23"
+ "self": "https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/2a304ddf-d51b-514f-bd11-6e818a27fe23"
}
}
}
diff --git a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-update-push-notification-providers.md b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-update-push-notification-providers.md
index 79a88f22ded..ea6101cb8b1 100644
--- a/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-update-push-notification-providers.md
+++ b/docs/pbc/all/miscellaneous/202311.0/manage-using-glue-api/manage-push-notification-providers/glue-api-update-push-notification-providers.md
@@ -33,7 +33,7 @@ This endpoint lets you update push notification providers.
| Authorization | string | ✓ | Alphanumeric string that authorizes the Back Office user to send requests to protected resources. Get it by [authenticating as a Back Office user](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-authenticate-as-a-back-office-user.html). |
-Request sample: `PATCH https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e`
+Request sample: `PATCH https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e`
```json
{
@@ -63,7 +63,7 @@ Response sample:
"name": "FA provider"
},
"links": {
- "self": "https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e"
+ "self": "https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e"
}
}
}
diff --git a/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md b/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md
index e048268620e..1987573a2fe 100644
--- a/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md
+++ b/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md
@@ -85,7 +85,7 @@ public function getConsoleCommands(Container $container)
* The first row of the CSV file must contain the field names. The structure of this row is identical to the data rows.
* The number of fields is limited to 128. However, the standard FACT-Finder modules require the use of a limited number of fields. For that reason, we recommend that you do not use this limit in full. If your product database contains more than 128 attributes, you can store them in the multi-attribute fields.
-* The field content is not limited in length. There is, however, a limit on the complete data record size. This limit is set at 50,000 characters. In special cases, the limit can be removed. We consider it as a part of a special FACT-Finder package creation process we perform for you.
+* The field content is not limited in length. There is, however, a limit on the complete data record size. This limit's set at 50,000 characters. In special cases, the limit can be removed. We consider it as a part of a special FACT-Finder package creation process we perform for you.
### Recommendations
@@ -94,7 +94,7 @@ public function getConsoleCommands(Container $container)
You need to create an URL for a CSV file or put it into a public folder. Then you can set up an URL and an interval in a FACT-Finder channel management panel to download the CSV file.
* A CSV file export can be scheduled with the help of a cron job or triggered by an event.
* If additional attributes are available, they can also be used by the search process.
-* If you have attribute types that vary from item to item, it does not make sense to create a separate field for every possible attribute type. Instead, you can create an attribute field that is formatted according to the following pattern: `|attribute1=value|attribute2=value|attribute3=value|`.Please note that for the Attribute field the pipe separator `(|)` appears between the attributes, as well as at the beginning and at the end of the field contents. Also note, that the symbols `|`, `#` and `=` are reserved symbols in attribute field data and therefore are not permitted here. For some attributes, it is desirable to include a unit or currency designator. You must separate the attribute name from the unit with a double tilde `(~~)`. Please note that there can only be one unit per attribute name (even if the attributes appear in different data records), so the values must be normalized beforehand.
+* If you have attribute types that vary from item to item, it does not make sense to create a separate field for every possible attribute type. Instead, you can create an attribute field that is formatted according to the following pattern: `|attribute1=value|attribute2=value|attribute3=value|`.Please note that for the Attribute field the pipe separator `(|)` appears between the attributes, as well as at the beginning and at the end of the field contents. Also note, that the symbols `|`, `#` and `=` are reserved symbols in attribute field data and therefore are not permitted here. For some attributes, it's desirable to include a unit or currency designator. You must separate the attribute name from the unit with a double tilde `(~~)`. Please note that there can only be one unit per attribute name (even if the attributes appear in different data records), so the values must be normalized beforehand.
## Checking Your Setup
diff --git a/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md b/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md
index 9ca48c7d5ca..431aa557c52 100644
--- a/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md
+++ b/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md
@@ -44,7 +44,7 @@ composer require spryker-eco/fact-finder-sdk
composer require spryker-eco/fact-finder
```
-If you faced an issue with the FACT-Finder library dependency and it is not installed, please use the following instructions:
+If you faced an issue with the FACT-Finder library dependency and it's not installed, please use the following instructions:
1. Add `composer.json`> file to the respective section of your project, `FACT-Finder/FACT-Finder-PHP-Library": "1.3.*`
2. Add to the repositories section:
diff --git a/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-the-fact-finder-ng-api.md b/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-the-fact-finder-ng-api.md
index f1a495ce047..ae6f4924a38 100644
--- a/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-the-fact-finder-ng-api.md
+++ b/docs/pbc/all/miscellaneous/202311.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-the-fact-finder-ng-api.md
@@ -230,9 +230,9 @@ class SearchRouter implements SearchRouterInterface
}
```
-If you want to use ElasticSearch for specific cases, you have to create a plugin on the project level
+If you want to use Elasticsearch for specific cases, you have to create a plugin on the project level
-**ElasticSearchHandlerPlugin**
+**ElasticsearchHandlerPlugin**
```php
file to the respective section of your project, `FACT-Finder/FACT-Finder-PHP-Library": "1.3.*`
2. Add to the repositories section:
diff --git a/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-the-fact-finder-ng-api.md b/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-the-fact-finder-ng-api.md
index f1a495ce047..154e7448675 100644
--- a/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-the-fact-finder-ng-api.md
+++ b/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-the-fact-finder-ng-api.md
@@ -230,7 +230,7 @@ class SearchRouter implements SearchRouterInterface
}
```
-If you want to use ElasticSearch for specific cases, you have to create a plugin on the project level
+If you want to use Elasticsearch for specific cases, you have to create a plugin on the project level
**ElasticSearchHandlerPlugin**
diff --git a/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md b/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md
index 47d9a914adc..c5456dd7f85 100644
--- a/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md
+++ b/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md
@@ -49,7 +49,7 @@ Basic parameters:
* `productsPerPage` - In the FACT-Finder Management Interface, you can define the number of results that will be returned on a page by default. To change the number, you can set it with this parameter.
* `sort` - By default, the result that is returned has been sorted for relevance. However, you can specify a different sort order here.
* `filter` - When a filter parameter is sent to FACT-Finder, the Search engine only returns results that correspond to the filter indicated.
-* `searchField` - Normally FACT-Finder searches all fields defined as searchable. However, it is possible to search only one specific field as well.
+* `searchField` - Normally FACT-Finder searches all fields defined as searchable. However, it's possible to search only one specific field as well.
* `noArticleNumberSearch` - Normally an article number search is carried out if the search term matches one or more set formats. You can also use parameters to prevent an article number search from being carried out.
* `sid` - Session ID.
* `useAsn` - Controls whether or not the ASN (after-search navigation block) is created.
diff --git a/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/operational-tools-monitoring-legal/vshn.md b/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/operational-tools-monitoring-legal/vshn.md
index 8aadcbc6e00..3896bc99875 100644
--- a/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/operational-tools-monitoring-legal/vshn.md
+++ b/docs/pbc/all/miscellaneous/202404.0/third-party-integrations/operational-tools-monitoring-legal/vshn.md
@@ -22,7 +22,7 @@ Since 2014 we support 300 customers & partners operating over 900 servers in 20
YOUR ADVANTAGES:
* Your partner for DevOps, Docker, Kubernetes, Openshift and 24/7 cloud operations partner & application operation.
* Our automation accelerates development, deployment and operations processes.
-* Shorter time to market due to proven technologies like Git and Docker.
+* Shorter time to market because of proven technologies like Git and Docker.
* APPUiO.ch - the Swiss container platform based on Red Hat OpenShift as Managed Service.
* Our processes are ISO 27001 certified and we operate according to the Swiss banking standards.
* Our team of experts is available to you. 24/7 in case of emergency.
diff --git a/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/glue-api-add-push-notification-subscriptions.md b/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/glue-api-add-push-notification-subscriptions.md
index b3565cad582..228c0403373 100644
--- a/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/glue-api-add-push-notification-subscriptions.md
+++ b/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/glue-api-add-push-notification-subscriptions.md
@@ -32,7 +32,7 @@ This endpoint lets you subscribe to push notifications using Glue API.
| Authorization | string | ✓ | Alphanumeric string that authorizes the Back Office user to send requests to protected resources. Get it by [authenticating as a Back Office user](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-authenticate-as-a-back-office-user.html). |
-Request sample: `POST https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers`
+Request sample: `POST https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers`
```json
{
@@ -45,7 +45,7 @@ Request sample: `POST https://glue-backend.de.b2c.demo-spryker.com/push-notifica
"identifier": "1"
},
"payload": {
- "endpoint": "https://push-notifications.de.b2c.demo-spryker.com",
+ "endpoint": "https://push-notifications.b2c-eu.demo-spryker.com",
"publicKey": "3243-f234-3f34-d2334",
"authToken": "4o3ijfoi3j4f93j4d7fh4f34jf3d902kfh345g8jf903kdj23uf3"
},
@@ -82,7 +82,7 @@ Response sample:
"attributes": {
"providerName": "web-push-php",
"payload": {
- "endpoint": "https://push-notifications.de.b2c.demo-spryker.com",
+ "endpoint": "https://push-notifications.b2c-eu.demo-spryker.com",
"publicKey": "3243-f234-3f34-d2334",
"authToken": "4o3ijfoi3j4f93j4d7fh4f34jf3d902kfh345g8jf903kdj23uf3"
},
diff --git a/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-add-push-notification-providers.md b/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-add-push-notification-providers.md
index 0c7d8a66e6c..8f6700ecfad 100644
--- a/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-add-push-notification-providers.md
+++ b/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-add-push-notification-providers.md
@@ -32,7 +32,7 @@ This endpoint lets you add push notification providers to further subscribe to n
| Authorization | string | ✓ | Alphanumeric string that authorizes the Back Office user to send requests to protected resources. Get it by [authenticating as a Back Office user](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-authenticate-as-a-back-office-user.html). |
-Request sample: `POST https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers`
+Request sample: `POST https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers`
```json
{
@@ -63,7 +63,7 @@ Response sample:
"name": "Fulfillment App provider"
},
"links": {
- "self": "https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e"
+ "self": "https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e"
}
}
}
diff --git a/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-delete-push-notification-providers.md b/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-delete-push-notification-providers.md
index 5d47ed9517c..83f7bc1eee5 100644
--- a/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-delete-push-notification-providers.md
+++ b/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-delete-push-notification-providers.md
@@ -33,7 +33,7 @@ This endpoint lets you delete push notification providers.
| Authorization | string | ✓ | Alphanumeric string that authorizes the Back Office user to send requests to protected resources. Get it by [authenticating as a Back Office user](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-authenticate-as-a-back-office-user.html). |
-Request sample: `DELETE https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e`
+Request sample: `DELETE https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e`
### Response
diff --git a/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-retrieve-push-notification-providers.md b/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-retrieve-push-notification-providers.md
index 7196c0c86ce..693b938d363 100644
--- a/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-retrieve-push-notification-providers.md
+++ b/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-retrieve-push-notification-providers.md
@@ -32,7 +32,7 @@ This endpoint lets you retrieve push notification providers to further subscribe
| Authorization | string | ✓ | Alphanumeric string that authorizes the Back Office user to send requests to protected resources. Get it by [authenticating as a Back Office user](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-authenticate-as-a-back-office-user.html). |
-Request sample: `GET https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers`
+Request sample: `GET https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers`
### Response
@@ -50,7 +50,7 @@ Request sample: `GET https://glue-backend.de.b2c.demo-spryker.com/push-notificat
"name": "web-push-php"
},
"links": {
- "self": "https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/2a304ddf-d51b-514f-bd11-6e818a27fe23"
+ "self": "https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/2a304ddf-d51b-514f-bd11-6e818a27fe23"
}
},
{
@@ -61,12 +61,12 @@ Request sample: `GET https://glue-backend.de.b2c.demo-spryker.com/push-notificat
"name": "Fulfillment App provider"
},
"links": {
- "self": "https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e"
+ "self": "https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e"
}
}
],
"links": {
- "self": "https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers"
+ "self": "https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers"
}
}
```
@@ -95,7 +95,7 @@ Request sample: `GET https://glue-backend.de.b2c.demo-spryker.com/push-notificat
| ------------- | ------------ | -------- | ------------------------------------------------------------ |
| Authorization | string | ✓ | Alphanumeric string that authorizes the Back Office user to send requests to protected resources. Get it by [authenticating as a Back Office user](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-authenticate-as-a-back-office-user.html). |
-Request sample: `GET https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/2a304ddf-d51b-514f-bd11-6e818a27fe23`
+Request sample: `GET https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/2a304ddf-d51b-514f-bd11-6e818a27fe23`
### Response
@@ -110,7 +110,7 @@ Response sample:
"name": "web-push-php"
},
"links": {
- "self": "https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/2a304ddf-d51b-514f-bd11-6e818a27fe23"
+ "self": "https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/2a304ddf-d51b-514f-bd11-6e818a27fe23"
}
}
}
diff --git a/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-update-push-notification-providers.md b/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-update-push-notification-providers.md
index 00432077846..23815fa9fe4 100644
--- a/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-update-push-notification-providers.md
+++ b/docs/pbc/all/miscellaneous/202410.0/manage-using-glue-api/manage-push-notification-providers/glue-api-update-push-notification-providers.md
@@ -33,7 +33,7 @@ This endpoint lets you update push notification providers.
| Authorization | string | ✓ | Alphanumeric string that authorizes the Back Office user to send requests to protected resources. Get it by [authenticating as a Back Office user](/docs/pbc/all/identity-access-management/{{page.version}}/manage-using-glue-api/glue-api-authenticate-as-a-back-office-user.html). |
-Request sample: `PATCH https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e`
+Request sample: `PATCH https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e`
```json
{
@@ -63,7 +63,7 @@ Response sample:
"name": "FA provider"
},
"links": {
- "self": "https://glue-backend.de.b2c.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e"
+ "self": "https://glue-backend.b2c-eu.demo-spryker.com/push-notification-providers/ffb5875e-00d3-5436-ae67-08b7c9837f3e"
}
}
}
diff --git a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md
index e048268620e..1987573a2fe 100644
--- a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md
+++ b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/exporting-product-data-for-fact-finder.md
@@ -85,7 +85,7 @@ public function getConsoleCommands(Container $container)
* The first row of the CSV file must contain the field names. The structure of this row is identical to the data rows.
* The number of fields is limited to 128. However, the standard FACT-Finder modules require the use of a limited number of fields. For that reason, we recommend that you do not use this limit in full. If your product database contains more than 128 attributes, you can store them in the multi-attribute fields.
-* The field content is not limited in length. There is, however, a limit on the complete data record size. This limit is set at 50,000 characters. In special cases, the limit can be removed. We consider it as a part of a special FACT-Finder package creation process we perform for you.
+* The field content is not limited in length. There is, however, a limit on the complete data record size. This limit's set at 50,000 characters. In special cases, the limit can be removed. We consider it as a part of a special FACT-Finder package creation process we perform for you.
### Recommendations
@@ -94,7 +94,7 @@ public function getConsoleCommands(Container $container)
You need to create an URL for a CSV file or put it into a public folder. Then you can set up an URL and an interval in a FACT-Finder channel management panel to download the CSV file.
* A CSV file export can be scheduled with the help of a cron job or triggered by an event.
* If additional attributes are available, they can also be used by the search process.
-* If you have attribute types that vary from item to item, it does not make sense to create a separate field for every possible attribute type. Instead, you can create an attribute field that is formatted according to the following pattern: `|attribute1=value|attribute2=value|attribute3=value|`.Please note that for the Attribute field the pipe separator `(|)` appears between the attributes, as well as at the beginning and at the end of the field contents. Also note, that the symbols `|`, `#` and `=` are reserved symbols in attribute field data and therefore are not permitted here. For some attributes, it is desirable to include a unit or currency designator. You must separate the attribute name from the unit with a double tilde `(~~)`. Please note that there can only be one unit per attribute name (even if the attributes appear in different data records), so the values must be normalized beforehand.
+* If you have attribute types that vary from item to item, it does not make sense to create a separate field for every possible attribute type. Instead, you can create an attribute field that is formatted according to the following pattern: `|attribute1=value|attribute2=value|attribute3=value|`.Please note that for the Attribute field the pipe separator `(|)` appears between the attributes, as well as at the beginning and at the end of the field contents. Also note, that the symbols `|`, `#` and `=` are reserved symbols in attribute field data and therefore are not permitted here. For some attributes, it's desirable to include a unit or currency designator. You must separate the attribute name from the unit with a double tilde `(~~)`. Please note that there can only be one unit per attribute name (even if the attributes appear in different data records), so the values must be normalized beforehand.
## Checking Your Setup
diff --git a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md
index 9ca48c7d5ca..431aa557c52 100644
--- a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md
+++ b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-fact-finder.md
@@ -44,7 +44,7 @@ composer require spryker-eco/fact-finder-sdk
composer require spryker-eco/fact-finder
```
-If you faced an issue with the FACT-Finder library dependency and it is not installed, please use the following instructions:
+If you faced an issue with the FACT-Finder library dependency and it's not installed, please use the following instructions:
1. Add `composer.json`> file to the respective section of your project, `FACT-Finder/FACT-Finder-PHP-Library": "1.3.*`
2. Add to the repositories section:
diff --git a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-the-fact-finder-ng-api.md b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-the-fact-finder-ng-api.md
index f1a495ce047..154e7448675 100644
--- a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-the-fact-finder-ng-api.md
+++ b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/installing-and-configuring-the-fact-finder-ng-api.md
@@ -230,7 +230,7 @@ class SearchRouter implements SearchRouterInterface
}
```
-If you want to use ElasticSearch for specific cases, you have to create a plugin on the project level
+If you want to use Elasticsearch for specific cases, you have to create a plugin on the project level
**ElasticSearchHandlerPlugin**
diff --git a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md
index 47d9a914adc..c5456dd7f85 100644
--- a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md
+++ b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/marketing-and-conversion/analytics/fact-finder/using-fact-finder-search.md
@@ -49,7 +49,7 @@ Basic parameters:
* `productsPerPage` - In the FACT-Finder Management Interface, you can define the number of results that will be returned on a page by default. To change the number, you can set it with this parameter.
* `sort` - By default, the result that is returned has been sorted for relevance. However, you can specify a different sort order here.
* `filter` - When a filter parameter is sent to FACT-Finder, the Search engine only returns results that correspond to the filter indicated.
-* `searchField` - Normally FACT-Finder searches all fields defined as searchable. However, it is possible to search only one specific field as well.
+* `searchField` - Normally FACT-Finder searches all fields defined as searchable. However, it's possible to search only one specific field as well.
* `noArticleNumberSearch` - Normally an article number search is carried out if the search term matches one or more set formats. You can also use parameters to prevent an article number search from being carried out.
* `sid` - Session ID.
* `useAsn` - Controls whether or not the ASN (after-search navigation block) is created.
diff --git a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/operational-tools-monitoring-legal/data-virtuality.md b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/operational-tools-monitoring-legal/data-virtuality.md
index ccc723530e1..aaf03946e86 100644
--- a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/operational-tools-monitoring-legal/data-virtuality.md
+++ b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/operational-tools-monitoring-legal/data-virtuality.md
@@ -11,7 +11,7 @@ redirect_from:
## Partner Information
-[ABOUT DATA VIRTUALITY](https://datavirtuality.com/)
+[ABOUT DATA VIRTUALITY](https://www.cdata.com/virtuality/)
Data Virtuality successfully became the fastest growing big data start-up in Germany with offices in Leipzig, Frankfurt am Main and San Francisco.The Data Virtuality Platform enables detailed insights from real time and historical data with any BI tool. By combining data virtualization with an automated ETL engine, customers benefit from reducing their data integration effort by 80% and gaining faster business insights. Make your decisions based on facts. Become data driven while using and accessing all your data from multiple data sources! And everything just by using SQL.
diff --git a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/operational-tools-monitoring-legal/vshn.md b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/operational-tools-monitoring-legal/vshn.md
index 8aadcbc6e00..3896bc99875 100644
--- a/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/operational-tools-monitoring-legal/vshn.md
+++ b/docs/pbc/all/miscellaneous/202410.0/third-party-integrations/operational-tools-monitoring-legal/vshn.md
@@ -22,7 +22,7 @@ Since 2014 we support 300 customers & partners operating over 900 servers in 20
YOUR ADVANTAGES:
* Your partner for DevOps, Docker, Kubernetes, Openshift and 24/7 cloud operations partner & application operation.
* Our automation accelerates development, deployment and operations processes.
-* Shorter time to market due to proven technologies like Git and Docker.
+* Shorter time to market because of proven technologies like Git and Docker.
* APPUiO.ch - the Swiss container platform based on Red Hat OpenShift as Managed Service.
* Our processes are ISO 27001 certified and we operate according to the Swiss banking standards.
* Our team of experts is available to you. 24/7 in case of emergency.
diff --git a/docs/pbc/all/offer-management/202311.0/marketplace/glue-api-retrieve-product-offers.md b/docs/pbc/all/offer-management/202311.0/marketplace/glue-api-retrieve-product-offers.md
index e69184d7750..95d938f257d 100644
--- a/docs/pbc/all/offer-management/202311.0/marketplace/glue-api-retrieve-product-offers.md
+++ b/docs/pbc/all/offer-management/202311.0/marketplace/glue-api-retrieve-product-offers.md
@@ -230,7 +230,7 @@ To retrieve the product offers, send the request:
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
}
diff --git a/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md b/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md
index 92f7c4e3d76..834af8c642e 100644
--- a/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md
+++ b/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md
@@ -4,7 +4,7 @@ template: concept-topic-template
last_updated: Nov 21, 2023
---
-The *Marketplace Product Offer* entity is created when multiple merchants sell the same product on the Marketplace. The product offer is a variation of a concrete product with its own specific price (and volume price) and stock. It can be “owned” by any entity, however, in a B2C or B2B Marketplace, it is owned by a [merchant](/docs/marketplace/dev/feature-walkthroughs/{{page.version}}/marketplace-merchant-feature-walkthrough.html).
+The *Marketplace Product Offer* entity is created when multiple merchants sell the same product on the Marketplace. The product offer is a variation of a concrete product with its own specific price (and volume price) and stock. It can be “owned” by any entity, however, in a B2C or B2B Marketplace, it's owned by a [merchant](/docs/marketplace/dev/feature-walkthroughs/{{page.version}}/marketplace-merchant-feature-walkthrough.html).
The Marketplace product offer has its own validity dates and its own availability calculation based on its reservations.
diff --git a/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md b/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md
index 9c800d1bc64..088a941f326 100644
--- a/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md
+++ b/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md
@@ -5,7 +5,7 @@ template: concept-topic-template
last_updated: Nov 21, 2023
---
-Product Offer and data related to it is cached to enhance performance.
+Product Offer and data related to it's cached to enhance performance.
{% info_block infoBox "" %}
diff --git a/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-overview.md b/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-overview.md
index 22f4865fc28..3ce6b11758c 100644
--- a/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-overview.md
+++ b/docs/pbc/all/offer-management/202311.0/marketplace/marketplace-product-offer-feature-overview.md
@@ -60,9 +60,9 @@ Product offer status defines whether the offer is active and displayed on the St
### Visibility
-* *Active*: When an offer is active, it is displayed on the Storefront. Either merchant or Marketplace administrator can make the offer active.
+* *Active*: When an offer is active, it's displayed on the Storefront. Either merchant or Marketplace administrator can make the offer active.
-* *Inactive*: When an offer is inactive, it is not displayed on the Storefront. Either merchant or Marketplace administrator can make the offer inactive.
+* *Inactive*: When an offer is inactive, it's not displayed on the Storefront. Either merchant or Marketplace administrator can make the offer inactive.
![Offer approval flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Marketplace/Products+and+offers/Product+offer+feature+overview/offer-approval-flow.png)
@@ -76,7 +76,7 @@ The product offer prices support:
* Store
* Currency
-Product offer price follows the [concrete product price inheritance model](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html). So if the Merchant doesn't set a price in the offer, it is taken from the concrete product. Otherwise, the product offer price has a higher priority and substitutes the concrete product price if it is indicated. If at least one price is defined for the offer (for example, original), it is valid for this offer even if the concrete product has a default price (sales price), but the offer does not. For details about price types, see [Price types](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html).
+Product offer price follows the [concrete product price inheritance model](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html). So if the Merchant doesn't set a price in the offer, it's taken from the concrete product. Otherwise, the product offer price has a higher priority and substitutes the concrete product price if it's indicated. If at least one price is defined for the offer (for example, original), it's valid for this offer even if the concrete product has a default price (sales price), but the offer does not. For details about price types, see [Price types](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html).
If a [merchant custom price](/docs/pbc/all/price-management/{{page.version}}/base-shop/merchant-custom-prices-feature-overview.html) exists for a customer, they see only the prices that apply to them, based on their merchant relationship. If the merchant relationship doesn't have prices for some products, default prices are displayed for the customer.
@@ -141,7 +141,7 @@ During the checkout, offers from the same merchant are grouped for delivery so t
### Product offers on the wishlist page
-Customers can add product offers to a wishlist for future purchase. Merchant information is kept for the offer when it is added to a wishlist. Further, customers can add the offer from the wishlist to cart.
+Customers can add product offers to a wishlist for future purchase. Merchant information is kept for the offer when it's added to a wishlist. Further, customers can add the offer from the wishlist to cart.
![Product offers in wishlist](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Marketplace/Products+and+offers/Product+offer+feature+overview/add-product-offer-to-wl-and-from-wl-to-cart.gif)
diff --git a/docs/pbc/all/offer-management/202311.0/marketplace/render-merchant-product-offers-on-the-storefront.md b/docs/pbc/all/offer-management/202311.0/marketplace/render-merchant-product-offers-on-the-storefront.md
index f2075730d47..478f33aca42 100644
--- a/docs/pbc/all/offer-management/202311.0/marketplace/render-merchant-product-offers-on-the-storefront.md
+++ b/docs/pbc/all/offer-management/202311.0/marketplace/render-merchant-product-offers-on-the-storefront.md
@@ -11,7 +11,7 @@ This document explains how to render merchant product offers on the Storefront.
## Prerequisites
-The [MerchantProductOfferWidget](https://github.com/spryker-shop/merchant-product-offer-widget) module is responsible for rendering product offers on the Storefront. Make sure it is installed in your project before adding the product offers to the Storefront.
+The [MerchantProductOfferWidget](https://github.com/spryker-shop/merchant-product-offer-widget) module is responsible for rendering product offers on the Storefront. Make sure it's installed in your project before adding the product offers to the Storefront.
## Rendering product offers on the product details page
diff --git a/docs/pbc/all/offer-management/202404.0/marketplace/glue-api-retrieve-product-offers.md b/docs/pbc/all/offer-management/202404.0/marketplace/glue-api-retrieve-product-offers.md
index e69184d7750..95d938f257d 100644
--- a/docs/pbc/all/offer-management/202404.0/marketplace/glue-api-retrieve-product-offers.md
+++ b/docs/pbc/all/offer-management/202404.0/marketplace/glue-api-retrieve-product-offers.md
@@ -230,7 +230,7 @@ To retrieve the product offers, send the request:
"faxNumber": "+49 30 234567600",
"legalInformation": {
"terms": "
General Terms
(1) This privacy policy has been compiled to better serve those who are concerned with how their 'Personally identifiable information' (PII) is being used online. PII, as used in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
(2) We do not collect information from visitors of our site or other details to help you with your experience.
Using your Information
We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
To personalize user's experience and to let us deliver the type of content and product offerings in which you are most interested.
Protecting visitor information
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology.
",
- "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it is not obligatory. To meet the withdrawal deadline, it is sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
+ "cancellationPolicy": "You have the right to withdraw from this contract within 14 days without giving any reason. The withdrawal period will expire after 14 days from the day on which you acquire, or a third party other than the carrier and indicated by you acquires, physical possession of the last good. You may use the attached model withdrawal form, but it's not obligatory. To meet the withdrawal deadline, it's sufficient for you to send your communication concerning your exercise of the right of withdrawal before the withdrawal period has expired.",
"imprint": "
Represented by Managing Director: Max Mustermann Register Court: Munich Register Number: HYY 134306
",
"dataPrivacy": "Sony Experts values the privacy of your personal data."
}
diff --git a/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md b/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md
index d9d19f207a9..4fbe50fcec3 100644
--- a/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md
+++ b/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/marketplace-product-offer-feature-domain-model-and-relationships.md
@@ -4,7 +4,7 @@ template: concept-topic-template
last_updated: Nov 21, 2023
---
-The *Marketplace Product Offer* entity is created when multiple merchants sell the same product on the Marketplace. The product offer is a variation of a concrete product with its own specific price (and volume price) and stock. It can be “owned” by any entity, however, in a B2C or B2B Marketplace, it is owned by a merchant.
+The *Marketplace Product Offer* entity is created when multiple merchants sell the same product on the Marketplace. The product offer is a variation of a concrete product with its own specific price (and volume price) and stock. It can be “owned” by any entity, however, in a B2C or B2B Marketplace, it's owned by a merchant.
The Marketplace product offer has its own validity dates and its own availability calculation based on its reservations.
diff --git a/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md b/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md
index 9c800d1bc64..088a941f326 100644
--- a/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md
+++ b/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-domain-model-and-relationships/product-offer-storage.md
@@ -5,7 +5,7 @@ template: concept-topic-template
last_updated: Nov 21, 2023
---
-Product Offer and data related to it is cached to enhance performance.
+Product Offer and data related to it's cached to enhance performance.
{% info_block infoBox "" %}
diff --git a/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-overview.md b/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-overview.md
index 1f3bcbe561d..4244a38d3a1 100644
--- a/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-overview.md
+++ b/docs/pbc/all/offer-management/202404.0/marketplace/marketplace-product-offer-feature-overview.md
@@ -60,9 +60,9 @@ Product offer status defines whether the offer is active and displayed on the St
### Visibility
-* *Active*: When an offer is active, it is displayed on the Storefront. Either merchant or Marketplace administrator can make the offer active.
+* *Active*: When an offer is active, it's displayed on the Storefront. Either merchant or Marketplace administrator can make the offer active.
-* *Inactive*: When an offer is inactive, it is not displayed on the Storefront. Either merchant or Marketplace administrator can make the offer inactive.
+* *Inactive*: When an offer is inactive, it's not displayed on the Storefront. Either merchant or Marketplace administrator can make the offer inactive.
![Offer approval flow](https://spryker.s3.eu-central-1.amazonaws.com/docs/Features/Marketplace/Products+and+offers/Product+offer+feature+overview/offer-approval-flow.png)
@@ -76,7 +76,7 @@ The product offer prices support:
* Store
* Currency
-Product offer price follows the [concrete product price inheritance model](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html). So if the Merchant doesn't set a price in the offer, it is taken from the concrete product. Otherwise, the product offer price has a higher priority and substitutes the concrete product price if it is indicated. If at least one price is defined for the offer (for example, original), it is valid for this offer even if the concrete product has a default price (sales price), but the offer does not. For details about price types, see [Price types](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html).
+Product offer price follows the [concrete product price inheritance model](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html). So if the Merchant doesn't set a price in the offer, it's taken from the concrete product. Otherwise, the product offer price has a higher priority and substitutes the concrete product price if it's indicated. If at least one price is defined for the offer (for example, original), it's valid for this offer even if the concrete product has a default price (sales price), but the offer does not. For details about price types, see [Price types](/docs/pbc/all/price-management/{{page.version}}/base-shop/prices-feature-overview/prices-feature-overview.html).
If a [merchant custom price](/docs/pbc/all/price-management/{{page.version}}/base-shop/merchant-custom-prices-feature-overview.html) exists for a customer, they see only the prices that apply to them, based on their merchant relationship. If the merchant relationship doesn't have prices for some products, default prices are displayed for the customer.
@@ -158,7 +158,7 @@ During the checkout, offers from the same merchant are grouped for delivery so t
### Product offers on the wishlist page
-Customers can add product offers to a wishlist for future purchase. Merchant information is kept for the offer when it is added to a wishlist. Further, customers can add the offer from the wishlist to cart.
+Customers can add product offers to a wishlist for future purchase. Merchant information is kept for the offer when it's added to a wishlist. Further, customers can add the offer from the wishlist to cart.
-Every marketplace order contains information about the merchant orders it is split into.
+Every marketplace order contains information about the merchant orders it's split into.
### Reference information: Viewing marketplace orders
@@ -210,7 +210,7 @@ Once a return has been created, it acquires the *Waiting for return* state. You
|---|---|
| execute-return | Select this state if you accept the return. When triggering this state, the return status is changed to *Returned*. |
| refund | Select this state if you have refunded the returned items. When triggering this state, the return status is changed to *Refunded*. |
-| cancel-return | You can trigger this state after the *Waiting for return* state. Select this state if either customer changed their mind and doesn’t want to make the return anymore, or you cancel the return due to the return policy, or for other reasons. When triggering this state, the return status is changed to *Canceled*. |
+| cancel-return | You can trigger this state after the *Waiting for return* state. Select this state if either customer changed their mind and doesn’t want to make the return anymore, or you cancel the return because of the return policy, or for other reasons. When triggering this state, the return status is changed to *Canceled*. |
| ship-return | You can trigger this state after the *Cancel* return state. Select this state if you shipped the canceled return back to the customer. The return status is changed to *Shipped to customer*. |
| delivery-return | You can trigger this state after the *Shipped to customer*. Select this state if the return has been delivered to the customer. The return status is changed to *Delivered*. |
| close | You can trigger this state after the *Delivered* state. Select this state to close the return. The return status is changed to *Closed*. |
diff --git a/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-domain-model-and-relationships.md b/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-domain-model-and-relationships.md
index f0398c475b0..3771db78987 100644
--- a/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-domain-model-and-relationships.md
+++ b/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-domain-model-and-relationships.md
@@ -20,7 +20,7 @@ related:
*Marketplace Order Management* enables splitting orders into merchant orders and letting product offers be bought directly from a Storefront.
The orders are designed to be used by the Marketplace operator, while the merchant orders are always connected to a merchant. To learn more about the core Marketplace objects, see [Marketplace domain model](/docs/dg/dev/architecture/marketplace-architecture/marketplace-domain-model.html).
-By using `MerchantSalesOrderFacade::createMerchantOrderCollection()`, you can decide when to create merchant orders out of an order in your project. By default, it is created by `CreateMerchantOrdersCommandPlugin`.
+By using `MerchantSalesOrderFacade::createMerchantOrderCollection()`, you can decide when to create merchant orders out of an order in your project. By default, it's created by `CreateMerchantOrdersCommandPlugin`.
## Module dependency graph
diff --git a/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-overview/marketplace-order-management-feature-overview.md b/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-overview/marketplace-order-management-feature-overview.md
index d4c0e1d84b8..1d718726786 100644
--- a/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-overview/marketplace-order-management-feature-overview.md
+++ b/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-overview/marketplace-order-management-feature-overview.md
@@ -73,7 +73,7 @@ Rounding rules for a regular SCOS sales order also apply to the Marketplace orde
{% info_block warningBox "Warning" %}
-In some cases, due to rounding, the amounts of Marketplace order totals can differ from the amounts of the Merchant order totals in a matter of a cent or less. You can modify the behavior by changing the rounding algorithms on the project level.
+In some cases, because of rounding, the amounts of Marketplace order totals can differ from the amounts of the Merchant order totals in a matter of a cent or less. You can modify the behavior by changing the rounding algorithms on the project level.
{% endinfo_block %}
diff --git a/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-overview/marketplace-order-overview.md b/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-overview/marketplace-order-overview.md
index 5c13975a4a2..dc08f8a704f 100644
--- a/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-overview/marketplace-order-overview.md
+++ b/docs/pbc/all/order-management-system/202410.0/marketplace/marketplace-order-management-feature-overview/marketplace-order-overview.md
@@ -73,7 +73,7 @@ Rounding rules for a regular SCOS sales order also apply to the Marketplace orde
{% info_block warningBox "Warning" %}
-In some cases, due to rounding, the amounts of Marketplace order totals can differ from the amounts of the Merchant order totals in a matter of a cent or less. You can modify the behavior by changing the rounding algorithms on the project level.
+In some cases, because of rounding, the amounts of Marketplace order totals can differ from the amounts of the Merchant order totals in a matter of a cent or less. You can modify the behavior by changing the rounding algorithms on the project level.
{% endinfo_block %}
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md
index b2012190f67..af96fd4f8ab 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/interact-with-third-party-payment-providers-using-glue-api.md
@@ -51,7 +51,7 @@ The overall interaction diagram between Glue API, the API Client, and the third
First, implement a plugin that maps the checkout response and fills it with the necessary redirect URL and other attributes that are mapped. To do so, create a plugin file on the `Glue` layer: `src/Pyz/Glue/MyModule/Plugin/CheckoutRestApi/CheckoutResponseMapperPlugin.php`.
-The plugin must implement `CheckoutResponseMapperPluginInterface`. Using the `mapRestCheckoutResponseTransferToRestCheckoutResponseAttributesTransfer` function of the interface, you can set the redirect URL and specify whether it is an internal or external redirect.
+The plugin must implement `CheckoutResponseMapperPluginInterface`. Using the `mapRestCheckoutResponseTransferToRestCheckoutResponseAttributesTransfer` function of the interface, you can set the redirect URL and specify whether it's an internal or external redirect.
**Sample implementation**
@@ -99,7 +99,7 @@ The plugin must extend the `OrderPaymentUpdaterPluginInterface` and implement th
* `isAppplicable`: This function determines whether a specific payment is processed by the plugin. The function returns true if the payment must be processed; otherwise, it returns false.
* `updateOrderPayment`: This function updates the payment data in the database.
-To help you understand which payments need to be processed, you can use the optional `paymentIdentifier` field in `POST` requests to the `/order-payments` endpoint. To make sure it is always present in a request, you may require the API client to set the field to a specific value to invoke your payment plugin. The value of the field can be retrieved using the `getPaymentIdentifier` helper function.
+To help you understand which payments need to be processed, you can use the optional `paymentIdentifier` field in `POST` requests to the `/order-payments` endpoint. To make sure it's always present in a request, you may require the API client to set the field to a specific value to invoke your payment plugin. The value of the field can be retrieved using the `getPaymentIdentifier` helper function.
{% info_block infoBox %}
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md
index 682b13486e8..8f05eb2d11b 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/adyen/install-and-configure-adyen.md
@@ -82,7 +82,7 @@ The table below describes all general configuration keys and their values.
| `AdyenApiConstants::CAPTURE_ACTION_URL` | string | URL for the capture API call. |
| `AdyenApiConstants::CANCEL_ACTION_URL` | string | URL for the cancel API call. |
| `AdyenApiConstants::REFUND_ACTION_URL` | string | URL for the refund API call. |
-| `AdyenApiConstants::CANCEL_OR_REFUND_ACTION_URL` | string | URL for the API call to cancel payment. When it's not possible to know if the payment is already captured, it is used for the refund API call. |
+| `AdyenApiConstants::CANCEL_OR_REFUND_ACTION_URL` | string | URL for the API call to cancel payment. When it's not possible to know if the payment is already captured, it's used for the refund API call. |
| `AdyenApiConstants::TECHNICAL_CANCEL_ACTION_URL` | string | URL for the technical cancellation API call. |
| `AdyenApiConstants::ADJUST_AUTHORIZATION_ACTION_URL` | string | URL for the API call to adjust the authorized amount. |
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md
index 68c32f6d810..ac9bf2be884 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-sandbox-simulations.md
@@ -86,7 +86,7 @@ Next step is rendering Pay with Amazon button. Just insert this line in a proper
{% raw %}{{{% endraw %} render(path('amazonpay_paybutton')) {% raw %}}}{% endraw %}
```
-Make sure that the button is rendered and works properly. In the sandbox mode it is necessary to have Amazon Pay test account. Once buyer is signed in with his credentials, he must be redirected to the checkout page and Amazon Order Reference Id has to be passed. On the checkout page two widgets must be displayed as well as button for confirming purchase. Delivery method selection has to be build on merchant side and Amazon provides nothing for it. Nevertheless, it always depends on the country and therefore it has to be refreshed after the delivery address is selected from the widget. For this Amazon provides JavaScript callback `onAddressSelect`. In the bundle it triggers internal controller `getShipmentMethodsAction()` which triggers Facade's method `addSelectedAddressToQuote()`. This method retrieves selected location via Handling orders with Amazon Pay API and writes it to Quote. After that, it is possible to retrieve available shipment methods.
+Make sure that the button is rendered and works properly. In the sandbox mode it's necessary to have Amazon Pay test account. Once buyer is signed in with his credentials, he must be redirected to the checkout page and Amazon Order Reference Id has to be passed. On the checkout page two widgets must be displayed as well as button for confirming purchase. Delivery method selection has to be build on merchant side and Amazon provides nothing for it. Nevertheless, it always depends on the country and therefore it has to be refreshed after the delivery address is selected from the widget. For this Amazon provides JavaScript callback `onAddressSelect`. In the bundle it triggers internal controller `getShipmentMethodsAction()` which triggers Facade's method `addSelectedAddressToQuote()`. This method retrieves selected location via Handling orders with Amazon Pay API and writes it to Quote. After that, it's possible to retrieve available shipment methods.
For that purpose Spryker provides Shipment Bundle and its client with method `getAvailableMethods()`.
@@ -110,4 +110,4 @@ The rest of integration includes State machine which is different for synchronou
It receives HTTP header and body as array and string respectively and passes it to the Facade method `convertAmazonpayIpnRequest()` which returns transfer object. Exact type of it depends on the type of IPN request and may be one of those:
-`AmazonpayIpnPaymentAuthorizeRequest`, `AmazonpayIpnPaymentCaptureRequest`, `AmazonpayIpnPaymentRefundRequest`, `AmazonpayIpnOrderReferenceNotification`. Another Facade's method called `handleAmazonpayIpnRequest` is responsible for handling all these messages. Normally it changes the status of a payment in the database and triggers some State Machine event. Then state machine command and conditions take action. In case of any problems with receiving IPN messages it is possible to do the same manually using state machine buttons in Zed.
+`AmazonpayIpnPaymentAuthorizeRequest`, `AmazonpayIpnPaymentCaptureRequest`, `AmazonpayIpnPaymentRefundRequest`, `AmazonpayIpnOrderReferenceNotification`. Another Facade's method called `handleAmazonpayIpnRequest` is responsible for handling all these messages. Normally it changes the status of a payment in the database and triggers some State Machine event. Then state machine command and conditions take action. In case of any problems with receiving IPN messages it's possible to do the same manually using state machine buttons in Zed.
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md
index 83bbe754670..ad01538617a 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/amazon-pay-state-machine.md
@@ -20,7 +20,7 @@ related:
link: docs/pbc/all/payment-service-provider/page.version/base-shop/third-party-integrations/amazon-pay/obtain-an-amazon-order-reference-and-information-about-shipping-addresses.html
---
-The state machine is different for synchronous and asynchronous flow. Although from status "capture completed" it is the same and in the state machine, it's presented as a sub-process.
+The state machine is different for synchronous and asynchronous flow. Although from status "capture completed" it's the same and in the state machine, it's presented as a sub-process.
The state machine for the synchronous flow:
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md
index c2d9e3bca69..cb4cd6b44ac 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/configure-amazon-pay.md
@@ -91,7 +91,7 @@ $config[AmazonPayConstants::WIDGET_BUTTON_SIZE] = AmazonPayConfig::WIDGET_BUTTON
$config[AmazonPayConstants::WIDGET_BUTTON_COLOR] = AmazonPayConfig::WIDGET_BUTTON_COLOR_DARK_GRAY;
```
-According to Amazon Pay restrictions, a module can run either on a `localhost` domain or via HTTPS. If it is not possible to use `localhost`, HTTPS connection should be configured. For testing purposes, register a test account in the [Amazon Pay dashboard](https://pay.amazon.com/us).
+According to Amazon Pay restrictions, a module can run either on a `localhost` domain or via HTTPS. If it's not possible to use `localhost`, HTTPS connection should be configured. For testing purposes, register a test account in the [Amazon Pay dashboard](https://pay.amazon.com/us).
{% info_block warningBox "Important" %}
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md
index 6feefdb33e0..215d601206e 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/amazon-pay/handling-orders-with-amazon-pay-api.md
@@ -36,7 +36,7 @@ Each API call involves similar classes from the module:
* A logger for logging information about API calls.
* A transaction for updating transfer objects.
-Since it is a standard Spryker OS practice, an entry point is a public method of the Facade, so, the flow for a typical transaction includes the following steps:
+Since it's a standard Spryker OS practice, an entry point is a public method of the Facade, so, the flow for a typical transaction includes the following steps:
1. Logically grouping the affected order items, based on the transaction type:
* for authorize & capture - by `AuthorizationReferenceId`.
* for refund & capture status update - by `AmazonCaptureId`.
@@ -113,7 +113,7 @@ The next step is to authorize the order. It's a separate operation because in te
## Authorization in Asynchronous and Synchronous Modes. CaptureNow Setting
-The authorization API call is configurable and it reflects the whole payment process. First, an important setting is transaction_timeout which defines the maximum number of minutes allocated for the Authorise operation call to be processed, after which the authorization is automatically declined and you cannot capture funds against the authorization. The value zero means that the authorization result has to be returned immediately and it is asynchronous authorization. For the synchronous authorization, the value must be above zero but less than maximal possible 1440. Another important setting is CaptureNow. It can only be true or false and if set to true then both requests - Authorisation and Capture will be done in one step, within Authorise API call. Both setting are independent and may have all possible values. The whole order process and related State Machine depend on these settings and can be very different.
+The authorization API call is configurable and it reflects the whole payment process. First, an important setting is transaction_timeout which defines the maximum number of minutes allocated for the Authorise operation call to be processed, after which the authorization is automatically declined and you cannot capture funds against the authorization. The value zero means that the authorization result has to be returned immediately and it's asynchronous authorization. For the synchronous authorization, the value must be above zero but less than maximal possible 1440. Another important setting is CaptureNow. It can only be true or false and if set to true then both requests - Authorisation and Capture will be done in one step, within Authorise API call. Both setting are independent and may have all possible values. The whole order process and related State Machine depend on these settings and can be very different.
## Handling Declined Payments. Synchronous Workflow
@@ -127,7 +127,7 @@ When all previous steps return a positive response and authorization is accepted
If the reason is different, we can check the state of an order using `GetOrderReferenceDetailsTransaction`.
-If it is open then the order must be canceled with a `CancelOrderTransaction` call.
+If it's open then the order must be canceled with a `CancelOrderTransaction` call.
The rest of the decline flow includes logic determining where to redirect a buyer. In sandbox mode, for each test account, Amazon provides fake payment methods for emulating error API responses.
@@ -141,18 +141,18 @@ There is one special constraint related to the selected payment method `PaymentM
## Handling Declined Payments. Asynchronous Workflow
-Unlike the synchronous authorisation, it is impossible to get the result of the authorization in the response. Authorization object stays in Pending state until authorized. Capture and Refund requests can also be processed in the same way and Amazon provides Internet Payment Notification (IPN) in order to notify the shop about the new status of any asynchronous request. IPN message is an HTTP request with some special Amazon-related headers and the body which is XML string containing all data. The merchant has to specify URL for receiving and processing IPN messages. The Bundle provides two Facade's methods.
+Unlike the synchronous authorisation, it's impossible to get the result of the authorization in the response. Authorization object stays in Pending state until authorized. Capture and Refund requests can also be processed in the same way and Amazon provides Internet Payment Notification (IPN) in order to notify the shop about the new status of any asynchronous request. IPN message is an HTTP request with some special Amazon-related headers and the body which is XML string containing all data. The merchant has to specify URL for receiving and processing IPN messages. The Bundle provides two Facade's methods.
-`convertAmazonpayIpnRequest`(array `$headers`, `$body`) for converting Amazon request (which is HTTP headers and body) to the transfer object. For each type of IPN request Spryker provides related transfer object and method `convertAmazonpayIpnRequest()` returns one of them. For the processing of these transfer objects the Facade's method `handleAmazonpayIpnRequest` (`AbstractTransfer``$ipnRequestTransfer`) should be called. It `AbstractTransfer` type for its argument and it works with all types of IPN related transfer objects. A typical flow of a successful flow usually involves pending statuses of authorization and capture requests. Therefor related IPN messages have to be received and processed correctly. For retrieving same information Amazon provides also `GetAuthorizationDetails` and `GetCaptureDetails` functions and in Spryker, it is possible to update the pending statuses with State machine buttons. Once the button is clicked, the shop makes a related API call, receives a response and if the state is not pending then it updates order status according to the response message. The final status of a success flow is "capture completed". After that only Refund is available and refund workflow is asynchronous only and works in a similar way as asynchronous authorization.
+`convertAmazonpayIpnRequest`(array `$headers`, `$body`) for converting Amazon request (which is HTTP headers and body) to the transfer object. For each type of IPN request Spryker provides related transfer object and method `convertAmazonpayIpnRequest()` returns one of them. For the processing of these transfer objects the Facade's method `handleAmazonpayIpnRequest` (`AbstractTransfer``$ipnRequestTransfer`) should be called. It `AbstractTransfer` type for its argument and it works with all types of IPN related transfer objects. A typical flow of a successful flow usually involves pending statuses of authorization and capture requests. Therefor related IPN messages have to be received and processed correctly. For retrieving same information Amazon provides also `GetAuthorizationDetails` and `GetCaptureDetails` functions and in Spryker, it's possible to update the pending statuses with State machine buttons. Once the button is clicked, the shop makes a related API call, receives a response and if the state is not pending then it updates order status according to the response message. The final status of a success flow is "capture completed". After that only Refund is available and refund workflow is asynchronous only and works in a similar way as asynchronous authorization.
The more tricky case is authorization declined workflow. It is similar to synchronous decline which was described above but everything goes asynchronously and involves additional IPN messages. First of all, Authorisation IPN comes with "Declined" state of authorization status. Another important information here is ReasonCode and it affects all further steps of the process. For the reason codes, `TransactionTimedOut` and `AmazonRejected` the order simply goes to "authorization declined" state but for the
-`InvalidPaymentMethod` the customer has to change the payment method to the correct one. In this case, order receives "authorization suspended" status and Amazon sends two additional IPN messages: `OrderNotification` with the state "Open" comes in after payment method is changed by buyer and Authorisation notification as a result of authorization of a new payment method. If the new payment method passes authorization successfully then the order goes to the "auth open" state and it is possible to request a capture. In both decline cases, it is important to notify the buyer about it by email since it's the only way for him to know that payment is not possible. The text of the email letter has to be different for `InvalidPaymentMethod` case.
+`InvalidPaymentMethod` the customer has to change the payment method to the correct one. In this case, order receives "authorization suspended" status and Amazon sends two additional IPN messages: `OrderNotification` with the state "Open" comes in after payment method is changed by buyer and Authorisation notification as a result of authorization of a new payment method. If the new payment method passes authorization successfully then the order goes to the "auth open" state and it's possible to request a capture. In both decline cases, it's important to notify the buyer about it by email since it's the only way for him to know that payment is not possible. The text of the email letter has to be different for `InvalidPaymentMethod` case.
Another tricky moment about asynchronous flow is "Authorisation expired" situation. Each time the shop requests capture in the asynchronous mode it should check the current status of authorisation. Capture is only possible where the status of authorisation is "Open". If authorisation has status "Closed" and `ReasonCode` is either `ExpiredUnused` or `SellerClosed` then an order should be reauthorized with `CaptureNow` setting enabled.
## Refund
-After successful authorization and capture processes order receives the status "capture completed". From this state only one operation is possible and it is Refund. A refund can be partial if more than one item set to refund or full.
+After successful authorization and capture processes order receives the status "capture completed". From this state only one operation is possible and it's Refund. A refund can be partial if more than one item set to refund or full.
Amazon only requires the amount of money which has to be refunded and the calculation has to be implemented on the shop's side. Spryker provides a bundle for calculating the amount to refund. Regardless the chosen setting Refund is always asynchronous. Once requested, an order goes to "refund pending" status and then IPN notification will notify the shop if a refund was accepted or declined.
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billie.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billie.md
index cb85e23fe99..f09201ca4bc 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billie.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billie.md
@@ -20,7 +20,7 @@ redirect_from:
B2B-PayAfterDelivery for the 21st century
-Billie is Germany’s innovative online-only provider of flexible working capital solutions. Whether it is our award-wining, 100% digital factoring platform or our B2B-PayAfterDelivery solution for online stores:
+Billie is Germany’s innovative online-only provider of flexible working capital solutions. Whether it's our award-wining, 100% digital factoring platform or our B2B-PayAfterDelivery solution for online stores:
Aspiring start-ups, established SMEs and world-leading hidden champions all trust in Billie when it comes to fast, reliable and simple liquidity provision.
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billpay/integrate-billpay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billpay/integrate-billpay.md
index c5fe5d706e4..ffc6799b6b2 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billpay/integrate-billpay.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/billpay/integrate-billpay.md
@@ -35,7 +35,7 @@ See [Configuration Management](/docs/dg/dev/backend-development/data-manipulatio
| `BILLPAY_PUBLIC_API_KEY` | Public API Key; generated and delivered by BillPay for your portal. |
| `BILLPAY_MAX_DELAY_IN_DAYS` | Amount of days that will be added to the payment due date (e.g. in case of delayed shipping) |
| `USE_MD5_HASH` | If your security key is not md5 hash encrypted, you can do that by setting this config to 1 |
-| `USE_PRESCORE` | In if it is necessary to show all Billpay payment methods despite of Billpay prescore response, you can set this option to 0. It should be set to 1 by default. |
+| `USE_PRESCORE` | In if it's necessary to show all Billpay payment methods despite of Billpay prescore response, you can set this option to 0. It should be set to 1 by default. |
When you add options above to your project configuration, it should look somewhat like this:
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md
index a3f71a38abe..02c1837b09c 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree-request-workflow.md
@@ -22,7 +22,7 @@ related:
Both credit card and PayPal utilize the same request flow in:
* **Pre-check**: to check the user information to make sure that all the needed information is correct before doing the actual pre-authorization.
-* **Authorize**: to perform a payment risk check which is a mandatory step before every payment. The payment is considered accepted when it is authorized.
+* **Authorize**: to perform a payment risk check which is a mandatory step before every payment. The payment is considered accepted when it's authorized.
* **Revert**: to cancel the authorization step which cancels the payment before capturing.
* **Capture**: to capture the payment and receive money from the buyer.
* **Refund**: to refund the buyer when returning products.
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree.md
index f40b6ec4805..7b8db70089b 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/braintree/braintree.md
@@ -39,7 +39,7 @@ Both accounts share the same configuration with different values. Braintree uses
We use state machines for handling and managing orders and payments. To integrate Braintree payments, a state machine for Braintree should be created.
-A basic and fully functional state machine is already built (`BraintreePayPal01` and `BraintreeCreditCard01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it is preferred to contact Braintree and confirm the new state machine design and functionality.
+A basic and fully functional state machine is already built (`BraintreePayPal01` and `BraintreeCreditCard01`). You can use the same state machine or build a new one. In case a new state machine has to be built, it's preferred to contact Braintree and confirm the new state machine design and functionality.
The state machine commands and conditions trigger Braintree facade calls in order to perform the needed requests to Braintree. For simplicity, the Braintree facade uses the same calls for both credit card and PayPal payments and automatically distinguishes between the payment methods from the payment entity.
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/computop-api-calls.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/computop-api-calls.md
index 9fe31ab7348..65cc663797d 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/computop-api-calls.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/computop-api-calls.md
@@ -39,7 +39,7 @@ related:
## Inquire Call:
-Status inquiries within Paygate give detailed information about the amounts that are actually authorized, captured or credited. Especially before executing reversals via the interface reverse.aspx it is recommended to check the transaction status with inquire.aspx because Reverse.aspx re-verses not only authorizations but ALWAYS THE LAST TRANSACTION STEP.
+Status inquiries within Paygate give detailed information about the amounts that are actually authorized, captured or credited. Especially before executing reversals via the interface reverse.aspx it's recommended to check the transaction status with inquire.aspx because Reverse.aspx re-verses not only authorizations but ALWAYS THE LAST TRANSACTION STEP.
## Reverse Call:
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md
index 5c196497a8c..3c13505da1f 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/computop/integrate-payment-methods-for-computop/integrate-the-credit-card-payment-method-for-computop.md
@@ -78,7 +78,7 @@ $config[OmsConstants::ACTIVE_PROCESSES] = [
For partial capturing:
-1. Case: Merchant uses neither ETM nor PCN (`PseudoCardNumber`). After authorization has been done, you are able to do one capture. This can be a partial or a complete capture of the authorized amount. After the capture is performed you cannot do another capture. If it is a partial capture, the rest of the initial authorized amount is released.
+1. Case: Merchant uses neither ETM nor PCN (`PseudoCardNumber`). After authorization has been done, you are able to do one capture. This can be a partial or a complete capture of the authorized amount. After the capture is performed you cannot do another capture. If it's a partial capture, the rest of the initial authorized amount is released.
2. Case: Merchant uses ETM (Extended Transactions Management). You can do partial captures as long as the as the initial amount of the authorization has not been reached or you send `FinishAuth=Y` with the last capture you like to do. (see page 83 of Computop documentation)
3. Case: Merchant uses PCN. With the authorization request you get back the PCN and other credit card parameter (Expiry Date, Brand). PCN and the other parameters can be stored.
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md
index 43d9a143ff5..1c0e9591b70 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/crefopay/crefopay-payment-methods.md
@@ -59,7 +59,7 @@ You can find the state machine example in `vendor/spryker-eco/crefo-pay/config/Z
## Direct Debit
-Direct Debit is processed by the bank system once it is transferred to the bank gateway. This can take several days. While being processed, the order has PayPending status.
+Direct Debit's processed by the bank system once it's transferred to the bank gateway. This can take several days. While being processed, the order has PayPending status.
As a result of the reconciliation process, the bank system provides feedback which is evaluated automatically within CrefoPay system:
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md
index 93aa79beb1f..139505c2f0a 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-credit-card-secure-payment-method-for-heidelpay.md
@@ -75,8 +75,8 @@ Each payment option has its own template. You can find and customize it under `Y
## Payment Step Submitting
-* When customer chooses a new registration (fills in the payment form in the iframe) and clicks "Go To Summary" button, data inside the payment iframe will be serialised and sent as a POST request to Heidelpay payment system*. Heidelpay then processes the request and sends asynchronous POST request to the shop's `CONFIG_YVES_CHECKOUT_ASYNC_RESPONSE_URL` in Yves (`CreditCardController::registrationRequestAction`). This request will contain an anonymized customer credit card data and registration number (hash). This data will be persisted in Zed for future customer recognition and for the next step. In response, Heidelpay expects to get a plain URL where to redirect customer. In case of failure it is `HeidelpayController::paymentFailedAction()`, and in case of success - `CreditCardController::registrationSuccessAction()`. `RegistrationSuccessAction()` will find customer registration (through Zed) and set it to quote. Then customer is redirected to summary page.
-* When customer chooses the existing registration, it is simply set to quote and customer goes to summary step as usual.
+* When customer chooses a new registration (fills in the payment form in the iframe) and clicks "Go To Summary" button, data inside the payment iframe will be serialised and sent as a POST request to Heidelpay payment system*. Heidelpay then processes the request and sends asynchronous POST request to the shop's `CONFIG_YVES_CHECKOUT_ASYNC_RESPONSE_URL` in Yves (`CreditCardController::registrationRequestAction`). This request will contain an anonymized customer credit card data and registration number (hash). This data will be persisted in Zed for future customer recognition and for the next step. In response, Heidelpay expects to get a plain URL where to redirect customer. In case of failure it's `HeidelpayController::paymentFailedAction()`, and in case of success - `CreditCardController::registrationSuccessAction()`. `RegistrationSuccessAction()` will find customer registration (through Zed) and set it to quote. Then customer is redirected to summary page.
+* When customer chooses the existing registration, it's simply set to quote and customer goes to summary step as usual.
* This javascript behavior can be found and customized under `assets/Yves/js/modules/creditCardFrame.js` file. ** This overhead with payment->registrationRequest->registrationSuccess->summary is necessary, because `registrationRequest` is called asynchronously from the outside, where customer session is not available. Later on, `registrationSuccess` action is called already where customer session is available, so we can add registration to quote there.
@@ -117,4 +117,4 @@ The most important data here - is the payment reference ID which can be used for
In the response Heidelpay expects an URL string which defines where customer has to be redirected. In case if customer successfully confirmed payment, it should be a link to checkout order success step, in case of failure - checkout payment failed action with error code (See See `HeidelpayController::paymentFailedAction()` and [Heidelpay workflow for errors](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/heidelpay/heidelpay-workflow-for-errors.html) section). Heidelpay redirects customer to the given URL and payment process is finished.
-**Capture the money** - later on, when the item is shipped to the customer, it is time to call "capture" command of the state machine to capture money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order state machine for `CreditCardSecureAuthorize` method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid".
+**Capture the money** - later on, when the item is shipped to the customer, it's time to call "capture" command of the state machine to capture money from the customer's account. It is done in CapturePlugin of the OMS command. In the provided basic order state machine for `CreditCardSecureAuthorize` method, command will be executed automatically, when order is manually moved into the "shipped" state. Now order can be considered as "paid".
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md
index e76ad376b75..e05b16adc97 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-direct-debit-payment-method-for-heidelpay.md
@@ -61,7 +61,7 @@ HeidelpayConfig::PAYMENT_METHOD_DIRECT_DEBIT => 'HeidelpayDirectDebit01',
```
## The Process of a Direct Debit Account Registration
-Payment flow with direct debit is divided into two workflows - based on the new "Registration," and without/with the existing "Registration." Existing "Registration" means that customer's bank account data (IBAN, Account Holder and so on) will be persisted in the database to use it again next time if customer uses the same shipping address. Otherwise, use the new "Registration" option.
+Payment flow with direct debit's divided into two workflows - based on the new "Registration," and without/with the existing "Registration." Existing "Registration" means that customer's bank account data (IBAN, Account Holder and so on) will be persisted in the database to use it again next time if customer uses the same shipping address. Otherwise, use the new "Registration" option.
When you go to the checkout payment page and choose the DirectDebit payment method, there are two payment options - to use the already existing registration (if available) or to create a new registration (always available) with the two fields IBAN and Account Holder. Existing registration is available only for registered customer after he placed an order with DirectDebit payment method, and he uses the same shipping address.
diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md
index 1795dd1a8e4..8496d694a35 100644
--- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md
+++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/heidelpay/integrate-payment-methods-for-heidelpay/integrate-the-easy-credit-payment-method-for-heidelpay.md
@@ -394,7 +394,7 @@ class CheckoutPageDependencyProvider extends SprykerShopCheckoutPageDependencyPr
{% raw %}{{{% endraw %} 'checkout.step.summary.with_method' | trans {% raw %}}}{% endraw %} {% raw %}{{{% endraw %}data.paymentMethod{% raw %}}}{% endraw %}
{% raw %}{{{% endraw %} 'checkout.step.summary.payment' | trans {% raw %}}}{% endraw %}
- {% raw %}{%{% endraw %} if data.heidelpayEasyCredit is not null {% raw %}%}{% endraw %}
+ {% raw %}{%{% endraw %} if data.heidelpayEasyCredit's not null {% raw %}%}{% endraw %}
{% raw %}{{{% endraw %} data.heidelpayEasyCredit.amortisationText {% raw %}}}{% endraw %}