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.
Cookies
We do not use cookies for tracking purposes. You can choose to have your computer warn you each time a cookie is being sent, or you can choose to turn off all cookies. You do this through your browser (like Internet Explorer) settings. Each browser is a little different, so look at your browser's Help menu to learn the correct way to modify your cookies. If you disable cookies off, some features will be disabled that make your site experience more efficient and some of our services will not function properly.
Google
Google's advertising requirements can be summed up by Google's Advertising Principles. They are put in place to provide a positive experience for users. https://support.google.com/adwordspolicy/answer/1316548?hl=en We use Google AdSense Advertising on our website. Google, as a third-party vendor, uses cookies to serve ads on our site. Google's use of the DART cookie enables it to serve ads to our users based on previous visits to our site and other sites on the Internet. Users may opt-out of the use of the DART cookie by visiting the Google Ad and Content Network privacy policy.
Implementation
We along with third-party vendors, such as Google use first-party cookies (such as the Google Analytics cookies) and third-party cookies (such as the DoubleClick cookie) or other third-party identifiers together to compile data regarding user interactions with ad impressions and other ad service functions as they relate to our website. Users can set preferences for how Google advertises to you using the Google Ad Settings page. Alternatively, you can opt out by visiting the Network Advertising initiative opt out page or permanently using the Google Analytics Opt Out Browser add on.
"
cms-page--3,Placeholders Title & Content,1,1,1,/de/datenschutz,/en/privacy,Datenschutzerklärung,Data Privacy,Datenschutzerklärung,Data Privacy,Datenschutzerklärung,Data Privacy,Datenschutzerklärung,Data Privacy,Datenschutzerklärung
,Data Privacy Policy
,"Die Nutzung unserer Seite ist ohne eine Angabe von personenbezogenen Daten möglich. Für die Nutzung einzelner Services unserer Seite können sich hierfür abweichende Regelungen ergeben, die in diesem Falle nachstehend gesondert erläutert werden. Ihre personenbezogenen Daten (z.B. Name, Anschrift, E-Mail, Telefonnummer, u.ä.) werden von uns nur gemäß den Bestimmungen des deutschen Datenschutzrechts verarbeitet. Daten sind dann personenbezogen, wenn sie eindeutig einer bestimmten natürlichen Person zugeordnet werden können. Die rechtlichen Grundlagen des Datenschutzes finden Sie im Bundesdatenschutzgesetz (BDSG) und dem Telemediengesetz (TMG). Nachstehende Regelungen informieren Sie insoweit über die Art, den Umfang und Zweck der Erhebung, die Nutzung und die Verarbeitung von personenbezogenen Daten durch den Anbieter
Wir weisen darauf hin, dass die internetbasierte Datenübertragung Sicherheitslücken aufweist, ein lückenloser Schutz vor Zugriffen durch Dritte somit unmöglich ist.
Auskunft/Widerruf/Löschung
Sie können sich aufgrund des Bundesdatenschutzgesetzes bei Fragen zur Erhebung, Verarbeitung oder Nutzung Ihrer personenbezogenen Daten und deren Berichtigung, Sperrung, Löschung oder einem Widerruf einer erteilten Einwilligung unentgeltlich an uns wenden. Wir weisen darauf hin, dass Ihnen ein Recht auf Berichtigung falscher Daten oder Löschung personenbezogener Daten zusteht, sollte diesem Anspruch keine gesetzliche Aufbewahrungspflicht entgegenstehen.
der Anwaltskanzlei Weiß & Partner
","Our website may be used without entering personal information. Different rules may apply to certain services on our site, however, and are explained separately below. We collect personal information from you (e.g. name, address, email address, telephone number, etc.) in accordance with the provisions of German data protection statutes. Information is considered personal if it can be associated exclusively to a specific natural person. The legal framework for data protection may be found in the German Federal Data Protection Act (BDSG) and the Telemedia Act (TMG). The provisions below serve to provide information as to the manner, extent and purpose for collecting, using and processing personal information by the provider.
Please be aware that data transfer via the internet is subject to security risks and, therefore, complete protection against third-party access to transferred data cannot be ensured.
Information/Cancellation/Deletion
On the basis of the Federal Data Protection Act, you may contact us at no cost if you have questions relating to the collection, processing or use of your personal information, if you wish to request the correction, blocking or deletion of the same, or if you wish to cancel explicitly granted consent. Please note that you have the right to have incorrect data corrected or to have personal data deleted, where such claim is not barred by any legal obligation to retain this data.
Sample Data Privacy Policy Statement provided by the Law Offices of Weiß & Partner
"
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."
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-content-items-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-content-items-feature.md
index fc8addae7b0..cc12d8789e3 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-content-items-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-content-items-feature.md
@@ -800,7 +800,7 @@ class TwigDependencyProvider extends SprykerTwigDependencyProvider
{% info_block warningBox "Verification" %}
-Make sure that you’ve configured the content items:
+Make sure that you've configured the content items:
1. Add a content item to a CMS block or page.
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-inventory-management-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-inventory-management-feature.md
index b1c8d518947..f778dbbc267 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-inventory-management-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-inventory-management-feature.md
@@ -330,7 +330,7 @@ Sony Experts MER000006 Warehouse 1,Wallstrasse 58,,,53507,Dernau,,DE,+49 2643 48
| comment | optional | string | | Any related comment. |
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure the following:
* The CSV files have an empty line at the end.
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-merchant-b2b-contract-requests-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-merchant-b2b-contract-requests-feature.md
index 10670f8161b..758e3b57656 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-merchant-b2b-contract-requests-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-merchant-b2b-contract-requests-feature.md
@@ -159,7 +159,7 @@ MER000002,Video King,1234.4567,approved,martha@video-king.nl,1,/de/merchant/vide
console data:import stock
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure the defined picking list strategies have been imported to the `spy_stock` database table.
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-navigation-module.md b/_includes/pbc/all/install-features/202410.0/install-the-navigation-module.md
index 54e6f58818a..4ecc372a3cb 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-navigation-module.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-navigation-module.md
@@ -7,9 +7,9 @@ To prepare your project to work with Navigation:
2. Install the new database tables By running `vendor/bin/console propel:diff`. Propel will generate a migration file with the changes.
3. Apply the database changes by running `vendor/bin/console propel:migrate`.
4. Generate ORM models by running `vendor/bin/console propel:model:build`.
-5. After running this command you’ll find some new classes in your project under `\Orm\Zed\Navigation\Persistence` namespace.
+5. After running this command you'll find some new classes in your project under `\Orm\Zed\Navigation\Persistence` namespace.
- It’s important to make sure that they extend the base classes from the Spryker core, e.g.:
+ It's important to make sure that they extend the base classes from the Spryker core, e.g.:
* `\Orm\Zed\Navigation\Persistence\SpyNavigation` extends `\Spryker\Zed\Navigation\Persistence\Propel\AbstractSpyNavigation`
* `\Orm\Zed\Navigation\Persistence\SpyNavigationNode` extends `\Spryker\Zed\Navigation\Persistence\Propel\AbstractSpyNavigationNode`
@@ -71,7 +71,7 @@ The `Navigation` module ships with a twig extension that provides the `spyNaviga
* `$navigationKey`: Reference of a navigation menu by its key field (for example, "MAIN_NAVIGATION").
* `$template`: Template path used to render the navigation menu (for example, `"@application/layout/navigation/main.twig"`).
-To enable the navigation twig function, register `\Spryker\Yves\Navigation\Plugin\Provider\NavigationTwigServiceProvider` in your application’s bootstrap.
+To enable the navigation twig function, register `\Spryker\Yves\Navigation\Plugin\Provider\NavigationTwigServiceProvider` in your application's bootstrap.
```php
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Check cart product image expander plugins - make sure you can see images related to cart items in the cart page in Yves.
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-configuration-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-configuration-feature.md
index 05be4c6171a..6c0df9d6715 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-product-configuration-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-product-configuration-feature.md
@@ -2244,7 +2244,7 @@ console frontend:date-time-product-configurator:build
{% info_block warningBox "Verification" %}
Make sure that the frontend part has been built:
-1. Check that the folder `public/Configurator/dist` exists, and it’s not empty.
+1. Check that the folder `public/Configurator/dist` exists, and it's not empty.
2. Check that you can access the configurator at `https://date-time-configurator-example.mysprykershop.com/`.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-measurement-unit-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-measurement-unit-feature.md
index 88112f38069..95c979f900e 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-product-measurement-unit-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-product-measurement-unit-feature.md
@@ -871,7 +871,7 @@ Make sure that checkout workflow works with measurement unit by ordering item wi
{% info_block warningBox "Verification" %}
-Make sure that abstract products which have measurement units don’t have `add_to_cart_sku` field at Elasticsearch document.
+Make sure that abstract products which have measurement units don't have `add_to_cart_sku` field at Elasticsearch document.
{% 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 f111df98182..8196947f35b 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
@@ -215,7 +215,7 @@ class ConsoleDependencyProvider extends SprykerConsoleDependencyProvider
console data:import:product-offer-service
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that entities were imported to the following database tables respectively:
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-product-rating-and-reviews-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-product-rating-and-reviews-feature.md
index 9dc58977d40..e28e6e6a9c4 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-product-rating-and-reviews-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-product-rating-and-reviews-feature.md
@@ -927,7 +927,7 @@ Make sure that `averageRating` and `reviewCount` attributes are present in `conc
"averageRating": 4,
"reviewCount": 5,
"name": "Asus Transformer Book T200TA",
- "description": "As light as you like Transformer Book T200 is sleek, slim and oh so light — just 26mm tall and 1.5kg docked. And when need to travel even lighter, detach the 11.6-inch tablet for 11.95mm slenderness and a mere 750g weight! With up to 10.4 hours of battery life that lasts all day long, you’re free to work or play from dawn to dusk. And ASUS Instant On technology ensures that Transformer Book T200 is always responsive and ready for action! Experience outstanding performance from the latest Intel® quad-core processor. You’ll multitask seamlessly and get more done in less time. Transformer Book T200 also delivers exceptional graphics performance — with Intel HD graphics that are up to 30% faster than ever before! Transformer Book T200 is equipped with USB 3.0 connectivity for data transfers that never leave you waiting. Just attach your USB 3.0 devices to enjoy speeds that are up to 10X faster than USB 2.0!",
+ "description": "As light as you like Transformer Book T200 is sleek, slim and oh so light — just 26mm tall and 1.5kg docked. And when need to travel even lighter, detach the 11.6-inch tablet for 11.95mm slenderness and a mere 750g weight! With up to 10.4 hours of battery life that lasts all day long, you're free to work or play from dawn to dusk. And ASUS Instant On technology ensures that Transformer Book T200 is always responsive and ready for action! Experience outstanding performance from the latest Intel® quad-core processor. You'll multitask seamlessly and get more done in less time. Transformer Book T200 also delivers exceptional graphics performance — with Intel HD graphics that are up to 30% faster than ever before! Transformer Book T200 is equipped with USB 3.0 connectivity for data transfers that never leave you waiting. Just attach your USB 3.0 devices to enjoy speeds that are up to 10X faster than USB 2.0!",
"attributes": {
"product_type": "Hybrid (2-in-1)",
"form_factor": "clamshell",
@@ -1082,7 +1082,7 @@ Make sure that the response contains product-reviews as a relationship and produ
"averageRating": 4,
"reviewCount": 5,
"name": "Asus Transformer Book T200TA",
- "description": "As light as you like Transformer Book T200 is sleek, slim and oh so light — just 26mm tall and 1.5kg docked. And when need to travel even lighter, detach the 11.6-inch tablet for 11.95mm slenderness and a mere 750g weight! With up to 10.4 hours of battery life that lasts all day long, you’re free to work or play from dawn to dusk. And ASUS Instant On technology ensures that Transformer Book T200 is always responsive and ready for action! Experience outstanding performance from the latest Intel® quad-core processor. You’ll multitask seamlessly and get more done in less time. Transformer Book T200 also delivers exceptional graphics performance — with Intel HD graphics that are up to 30% faster than ever before! Transformer Book T200 is equipped with USB 3.0 connectivity for data transfers that never leave you waiting. Just attach your USB 3.0 devices to enjoy speeds that are up to 10X faster than USB 2.0!",
+ "description": "As light as you like Transformer Book T200 is sleek, slim and oh so light — just 26mm tall and 1.5kg docked. And when need to travel even lighter, detach the 11.6-inch tablet for 11.95mm slenderness and a mere 750g weight! With up to 10.4 hours of battery life that lasts all day long, you're free to work or play from dawn to dusk. And ASUS Instant On technology ensures that Transformer Book T200 is always responsive and ready for action! Experience outstanding performance from the latest Intel® quad-core processor. You'll multitask seamlessly and get more done in less time. Transformer Book T200 also delivers exceptional graphics performance — with Intel HD graphics that are up to 30% faster than ever before! Transformer Book T200 is equipped with USB 3.0 connectivity for data transfers that never leave you waiting. Just attach your USB 3.0 devices to enjoy speeds that are up to 10X faster than USB 2.0!",
"attributes": {
"product_type": "Hybrid (2-in-1)",
"form_factor": "clamshell",
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 64f01d6acad..bc03d1f6a54 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
@@ -168,12 +168,12 @@ You can reorder product sets in the Back Office. See [Reorder product sets](/doc
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-queue-data-import-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-queue-data-import-feature.md
index e4bc6d9b4c1..c5485eb6eda 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-queue-data-import-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-queue-data-import-feature.md
@@ -10,7 +10,7 @@ Run the following command to install the required modules:
composer require spryker/data-import:"1.5.0" spryker/data-import-extension:"1.1.0" --update-with-dependencies`
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that the following modules have been installed:
@@ -30,7 +30,7 @@ Generate transfer changes:
console transfer:generate`
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that the following changes have been applied in the transfer objects:
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-quick-add-to-cart-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-quick-add-to-cart-feature.md
index 212c108129f..8bb1f3b3721 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-quick-add-to-cart-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-quick-add-to-cart-feature.md
@@ -20,7 +20,7 @@ Install the required modules using Composer:
composer require spryker-feature/quick-add-to-cart:"{{page.version}}" --update-with-dependencies
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure the following modules have been installed:
@@ -39,7 +39,7 @@ Generate transfer changes:
console transfer:generate
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure the following changes have been applied in transfer objects:
@@ -144,7 +144,7 @@ Install the required modules using Composer:
composer require spryker-feature/quick-add-to-cart:"^master" --update-with-dependencies
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure the following modules have been installed:
@@ -273,7 +273,7 @@ class RouterDependencyProvider extends SprykerRouterDependencyProvider
}
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that the following URLs are available on Yves:
@@ -343,7 +343,7 @@ class QuickOrderPageDependencyProvider extends SprykerQuickOrderPageDependencyPr
}
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make the following checks at https://mysprykershop.com/quick-order:
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-quotation-process-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-quotation-process-feature.md
index 6ddc66ab2a5..4bbbb4b34a1 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-quotation-process-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-quotation-process-feature.md
@@ -71,7 +71,7 @@ class QuoteConfig extends SprykerQuoteConfig
}
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that when you converted quote request to quote, JSON data in the database column `spy_quote.quote_data` of the corresponding quote contains `quoteRequestVersionReference`.
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-reclamations-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-reclamations-feature.md
index c38991b1300..08fb1c971d9 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-reclamations-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-reclamations-feature.md
@@ -19,7 +19,7 @@ Install the required modules using Composer:
composer require spryker-feature/reclamations: "{{page.version}}" --update-with-dependencies`
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that the following modules have been installed:
@@ -39,7 +39,7 @@ console propel:install
console transfer:generate
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that the following changes have been applied by checking your database:
@@ -51,7 +51,7 @@ Make sure that the following changes have been applied by checking your database
{% endinfo_block %}
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that the following changes were implemented in the transfer objects:
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-resource-sharing-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-resource-sharing-feature.md
index 56f4be383c4..8b628e15812 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-resource-sharing-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-resource-sharing-feature.md
@@ -17,7 +17,7 @@ Install the required modules using Composer:
composer require spryker-feature/resource-sharing: "{{page.version}}" --update-with-dependencies
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure the following modules have been installed:
@@ -37,7 +37,7 @@ console propel:install
console transfer:generate
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that the following changes applied by checking your database:
@@ -47,7 +47,7 @@ Make sure that the following changes applied by checking your database:
{% endinfo_block %}
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that the following changes in transfer objects have been applied:
@@ -79,7 +79,7 @@ Install the required modules using Composer:
composer require spryker-feature/resource-sharing: "{{page.version}}" --update-with-dependencies
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure the following modules have been installed:
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-return-management-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-return-management-feature.md
index e2bc131b4e8..cc84a3bd0b3 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-return-management-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-return-management-feature.md
@@ -75,7 +75,7 @@ class SalesConfig extends SprykerSalesConfig
{% info_block warningBox "Verification" %}
-Make sure the order detail page in the Back Office shows a table with order’s returns in the **Returns** section.
+Make sure the order detail page in the Back Office shows a table with order's returns in the **Returns** section.
Make sure that when the `StateHistoryOrderItemExpanderPlugin` is not configured and `SalesConfig::isHydrateOrderHistoryToItems()` is false, the order item state history is not shown in the order items table on the order detail page.
@@ -634,7 +634,7 @@ class DataImportDependencyProvider extends SprykerDataImportDependencyProvider
}
```
-Adjust your project’s corresponding .yml configuration file to enable import as a part of full import.
+Adjust your project's corresponding .yml configuration file to enable import as a part of full import.
**data/import/config/full_import_config.yml**
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-search-widget-for-concrete-products-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-search-widget-for-concrete-products-feature.md
index cc941ae1c34..3867c19f349 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-search-widget-for-concrete-products-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-search-widget-for-concrete-products-feature.md
@@ -14,7 +14,7 @@ To start the feature integration, overview and install the necessary features:
### 1) Check the installed modules
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure the following modules have been installed:
@@ -35,7 +35,7 @@ Apply database changes and generate entity and transfer changes:
console transfer:generate
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that the following changes are present in the transfer objects:
@@ -120,7 +120,7 @@ class ShopApplicationDependencyProvider extends SprykerShopApplicationDependency
}
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure the following widgets were registered:
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-shipment-service-points-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-shipment-service-points-feature.md
index bf413b32d98..19b22b13367 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-shipment-service-points-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-shipment-service-points-feature.md
@@ -163,7 +163,7 @@ class ConsoleDependencyProvider extends SprykerConsoleDependencyProvider
console data:import:shipment-type-service-type
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that entities have been imported into the `spy_shipment_type_service_type` database table.
diff --git a/_includes/pbc/all/install-features/202410.0/install-the-uuid-generation-console-feature.md b/_includes/pbc/all/install-features/202410.0/install-the-uuid-generation-console-feature.md
index 02e3b8fc53d..affc9e13f2f 100644
--- a/_includes/pbc/all/install-features/202410.0/install-the-uuid-generation-console-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/install-the-uuid-generation-console-feature.md
@@ -83,6 +83,6 @@ class ConsoleDependencyProvider extends SprykerConsoleDependencyProvider
{% info_block warningBox "Verification" %}
-To make sure you’ve set up `UuidGeneratorConsole`, run `console | grep uuid:generate` and check that the command is found.
+To make sure you've set up `UuidGeneratorConsole`, run `console | grep uuid:generate` and check that the command is found.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-merchant-commission-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-merchant-commission-feature.md
index feb05b6a96d..813b1b506a8 100644
--- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-merchant-commission-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-merchant-commission-feature.md
@@ -414,7 +414,7 @@ merchant_commission.validation.merchant_commission_does_not_exist,Die Händlerpr
merchant_commission.validation.merchant_commission_group_does_not_exist,A merchant commission group was not found.,en_US
merchant_commission.validation.merchant_commission_group_does_not_exist,Es wurde keine Händlerprovisionsgruppe gefunden.,de_DE
merchant_commission.validation.merchant_commission_group_key_does_not_exist,A merchant commission group with the key "%key%" was not found.,en_US
-merchant_commission.validation.merchant_commission_group_does_not_exist,Die Händlerprovisionsgruppe mit dem Schlüssel „%key%“ wurde nicht gefunden.,de_DE
+merchant_commission.validation.merchant_commission_group_does_not_exist,Die Händlerprovisionsgruppe mit dem Schlüssel „%key%" wurde nicht gefunden.,de_DE
merchant_commission.validation.merchant_does_not_exist,A merchant with the reference ‘%merchant_reference%’ does not exist.,en_US
merchant_commission.validation.merchant_does_not_exist,Ein Händler mit der Referenz ‘%merchant_reference%’ existiert nicht.,de_DE
merchant_commission.validation.merchant_commission_name_invalid_length,A merchant commission name must have a length from %min% to %max% characters.,en_US
@@ -1506,7 +1506,7 @@ merchant_commission.validation.merchant_commission_does_not_exist,Die Händlerpr
merchant_commission.validation.merchant_commission_group_does_not_exist,A merchant commission group was not found.,en_US
merchant_commission.validation.merchant_commission_group_does_not_exist,Es wurde keine Händlerprovisionsgruppe gefunden.,de_DE
merchant_commission.validation.merchant_commission_group_key_does_not_exist,A merchant commission group with the key "%key%" was not found.,en_US
-merchant_commission.validation.merchant_commission_group_does_not_exist,Die Händlerprovisionsgruppe mit dem Schlüssel „%key%“ wurde nicht gefunden.,de_DE
+merchant_commission.validation.merchant_commission_group_does_not_exist,Die Händlerprovisionsgruppe mit dem Schlüssel „%key%" wurde nicht gefunden.,de_DE
merchant_commission.validation.merchant_does_not_exist,A merchant with the reference ‘%merchant_reference%’ does not exist.,en_US
merchant_commission.validation.merchant_does_not_exist,Ein Händler mit der Referenz ‘%merchant_reference%’ existiert nicht.,de_DE
merchant_commission.validation.merchant_commission_name_invalid_length,A merchant commission name must have a length from %min% to %max% characters.,en_US
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 d4da2ab1d1b..49e3c1aadfa 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'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.","Spryker Systems GmbH
Julie-Wolfthorn-Straße 1
10115 Berlin
DE
Phone: +49 (30) 2084983 50
Email: info@spryker.com
Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310
","Spryker Systems GmbH
Julie-Wolfthorn-Straße 1
10115 Berlin
DE
Phone: +49 (30) 2084983 50
Email: info@spryker.com
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
+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.","Spryker Systems GmbH
Julie-Wolfthorn-Straße 1
10115 Berlin
DE
Phone: +49 (30) 2084983 50
Email: info@spryker.com
Represented by
Managing Directors: Alexander Graf, Boris Lokschin
Register Court: Hamburg
Register Number: HRB 134310
","Spryker Systems GmbH
Julie-Wolfthorn-Straße 1
10115 Berlin
DE
Phone: +49 (30) 2084983 50
Email: info@spryker.com
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'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.",Sony Experts
Matthias-Pschorr-Straße 1
80336 München
DE
Phone: 030 1234567
Email: support@sony-experts.com
Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306
,Sony Experts
Matthias-Pschorr-Straße 1
80336 München
DE
Phone: 030 1234567
Email: support@sony-experts.com
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.",Sony Experts
Matthias-Pschorr-Straße 1
80336 München
DE
Phone: 030 1234567
Email: support@sony-experts.com
Represented by
Managing Director: Max Mustermann
Register Court: Munich
Register Number: HYY 134306
,Sony Experts
Matthias-Pschorr-Straße 1
80336 München
DE
Phone: 030 1234567
Email: support@sony-experts.com
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'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.",Budget Cameras
Spitalerstraße 3
20095 Hamburg
DE
Phone: 030 1234567
Email: support@budgetcamerasonline.com
Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305
,Budget Cameras
Spitalerstraße 3
20095 Hamburg
DE
Phone: 030 1234567
Email: support@budgetcamerasonline.com
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.",Budget Cameras
Spitalerstraße 3
20095 Hamburg
DE
Phone: 030 1234567
Email: support@budgetcamerasonline.com
Represented by
Managing Director: Max Mustermann
Register Court: Hamburg
Register Number: HXX 134305
,Budget Cameras
Spitalerstraße 3
20095 Hamburg
DE
Phone: 030 1234567
Email: support@budgetcamerasonline.com
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-cart-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-cart-feature.md
index 136a4c86a37..2143df8046b 100644
--- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-cart-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-cart-feature.md
@@ -71,7 +71,7 @@ class CartDependencyProvider extends SprykerCartDependencyProvider
{% info_block warningBox "Verification" %}
-Make sure that you can’t add an item with `merchantReference` and `sku` that do not belong to the same `MerchantProduct`(see `spy_merchant_product_abstract`).
+Make sure that you can't add an item with `merchantReference` and `sku` that do not belong to the same `MerchantProduct`(see `spy_merchant_product_abstract`).
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-offer-feature.md b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-offer-feature.md
index e62d632fd1e..ebdc8fc786f 100644
--- a/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-offer-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/marketplace/install-the-marketplace-product-offer-feature.md
@@ -482,8 +482,8 @@ Make sure that when the following entities get updated through the ORM, the corr
| TARGET ENTITY | EXAMPLE EXPECTED DATA IDENTIFIER | EXAMPLE EXPECTED DATA FRAGMENT |
|---------------|-------------------------------------------------|----------------------------------------------------------------------------------------------------------|
-| ProductOffer | kv:product_offer:offer2 | {“id_product_offer”:1,“id_merchant”:6,“product_offer_reference”:“offer1",“merchant_sku”:“GS952M00H-Q11"} |
-| ProductOffer | kv:product_concrete_product_offers:093_24495843 | [“offer3”,“offer4"] |
+| ProductOffer | kv:product_offer:offer2 | {"id_product_offer":1,"id_merchant":6,"product_offer_reference":"offer1","merchant_sku":"GS952M00H-Q11"} |
+| ProductOffer | kv:product_concrete_product_offers:093_24495843 | ["offer3","offer4"] |
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-features/202410.0/unified-commerce/install-the-warehouse-picking-feature.md b/_includes/pbc/all/install-features/202410.0/unified-commerce/install-the-warehouse-picking-feature.md
index e3e77317064..19e7536eb01 100644
--- a/_includes/pbc/all/install-features/202410.0/unified-commerce/install-the-warehouse-picking-feature.md
+++ b/_includes/pbc/all/install-features/202410.0/unified-commerce/install-the-warehouse-picking-feature.md
@@ -437,7 +437,7 @@ Sony Experts MER000006 Warehouse 1,1,multi-shipment
console data:import stock
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure the defined picking list strategies have been imported to the `spy_stock` database table.
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 ed1a87d72fc..1f2ced60bae 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
@@ -302,7 +302,7 @@ Make sure the `concrete-products` and `concrete-product-image-sets` resources ar
"is_active": true
},
"name": "Samsung Galaxy S5 mini",
- "description": "Galaxy S5 mini continues Samsung design legacy and flagship experience Outfitted with a 4.5-inch HD Super AMOLED display, the Galaxy S5 mini delivers a wide and vivid viewing experience, and its compact size provides users with additional comfort, allowing for easy operation with only one hand. Like the Galaxy S5, the Galaxy S5 mini features a unique perforated pattern on the back cover creating a modern and sleek look, along with a premium, soft touch grip. The Galaxy S5 mini enables users to enjoy the same flagship experience as the Galaxy S5 with innovative features including IP67 certification, Ultra Power Saving Mode, a heart rate monitor, fingerprint scanner, and connectivity with the latest Samsung wearable devices.The Galaxy S5 mini comes equipped with a powerful Quad Core 1.4 GHz processor and 1.5GM RAM for seamless multi-tasking, faster webpage loading, softer UI transition, and quick power up. The high-resolution 8MP camera delivers crisp and clear photos and videos, while the Galaxy S5 mini’s support of LTE Category 4 provides users with ultra-fast downloads of movies and games on-the-go. ",
+ "description": "Galaxy S5 mini continues Samsung design legacy and flagship experience Outfitted with a 4.5-inch HD Super AMOLED display, the Galaxy S5 mini delivers a wide and vivid viewing experience, and its compact size provides users with additional comfort, allowing for easy operation with only one hand. Like the Galaxy S5, the Galaxy S5 mini features a unique perforated pattern on the back cover creating a modern and sleek look, along with a premium, soft touch grip. The Galaxy S5 mini enables users to enjoy the same flagship experience as the Galaxy S5 with innovative features including IP67 certification, Ultra Power Saving Mode, a heart rate monitor, fingerprint scanner, and connectivity with the latest Samsung wearable devices.The Galaxy S5 mini comes equipped with a powerful Quad Core 1.4 GHz processor and 1.5GM RAM for seamless multi-tasking, faster webpage loading, softer UI transition, and quick power up. The high-resolution 8MP camera delivers crisp and clear photos and videos, while the Galaxy S5 mini's support of LTE Category 4 provides users with ultra-fast downloads of movies and games on-the-go. ",
"isSearchable": true,
"attributes": {
"color": "Blue"
diff --git a/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-product-offer-glue-api.md b/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-product-offer-glue-api.md
index 8dfc5b279f6..cdfbcaa9104 100644
--- a/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-product-offer-glue-api.md
+++ b/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-product-offer-glue-api.md
@@ -121,7 +121,7 @@ Make sure that `ProductOffersResourceRoutePlugin` is set up by sending the reque
Make sure that `ConcreteProductsProductOffersResourceRoutePlugin` is set up by sending the request `GET https://glue.mysprykershop.com/concrete-products/{% raw %}{{sku}}{% endraw %}/product-offers`.
-Make sure that `ProductOffersByProductConcreteSkuResourceRelationshipPlugin` is set up by sending the request `GET https://glue.mysprykershop.com/concrete-products/{% raw %}{{sku}}{% endraw %}?include=product-offers`. You should get `concrete-products` with all product’s `product-offers` as relationships.
+Make sure that `ProductOffersByProductConcreteSkuResourceRelationshipPlugin` is set up by sending the request `GET https://glue.mysprykershop.com/concrete-products/{% raw %}{{sku}}{% endraw %}?include=product-offers`. You should get `concrete-products` with all product's `product-offers` as relationships.
Make sure that `MerchantByMerchantReferenceResourceRelationshipPlugin` is set up by sending the request `GET https://glue.mysprykershop.com/product-offers/{% raw %}{{sku}}{% endraw %}?include=merchants`. The response should include the `merchants` resource along with `product-offers`.
diff --git a/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-product-offer-prices-glue-api.md b/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-product-offer-prices-glue-api.md
index 6caea2f7c87..1eede64fa41 100644
--- a/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-product-offer-prices-glue-api.md
+++ b/_includes/pbc/all/install-glue-api/202311.0/marketplace/install-the-marketplace-product-offer-prices-glue-api.md
@@ -111,7 +111,7 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency
Make sure that the `ProductOfferPricesResourceRoutePlugin` plugin is set up by sending the request `GET https://glue.mysprykershop.com/product-offers/{% raw %}{{offerReference}}{% endraw %}/product-offer-prices`.
-Make sure that the `ProductOfferPriceByProductOfferReferenceResourceRelationshipPlugin` plugin is set up by sending the request `GET https://glue.mysprykershop.com/product-offers/{% raw %}{{offerReference}}{% endraw %}?include=product-offer-prices`. You should get `product-offers` with all product offer’s `product-offer-prices` as relationships.
+Make sure that the `ProductOfferPriceByProductOfferReferenceResourceRelationshipPlugin` plugin is set up by sending the request `GET https://glue.mysprykershop.com/product-offers/{% raw %}{{offerReference}}{% endraw %}?include=product-offer-prices`. You should get `product-offers` with all product offer's `product-offer-prices` as relationships.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-product-offer-glue-api.md b/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-product-offer-glue-api.md
index 8dfc5b279f6..cdfbcaa9104 100644
--- a/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-product-offer-glue-api.md
+++ b/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-product-offer-glue-api.md
@@ -121,7 +121,7 @@ Make sure that `ProductOffersResourceRoutePlugin` is set up by sending the reque
Make sure that `ConcreteProductsProductOffersResourceRoutePlugin` is set up by sending the request `GET https://glue.mysprykershop.com/concrete-products/{% raw %}{{sku}}{% endraw %}/product-offers`.
-Make sure that `ProductOffersByProductConcreteSkuResourceRelationshipPlugin` is set up by sending the request `GET https://glue.mysprykershop.com/concrete-products/{% raw %}{{sku}}{% endraw %}?include=product-offers`. You should get `concrete-products` with all product’s `product-offers` as relationships.
+Make sure that `ProductOffersByProductConcreteSkuResourceRelationshipPlugin` is set up by sending the request `GET https://glue.mysprykershop.com/concrete-products/{% raw %}{{sku}}{% endraw %}?include=product-offers`. You should get `concrete-products` with all product's `product-offers` as relationships.
Make sure that `MerchantByMerchantReferenceResourceRelationshipPlugin` is set up by sending the request `GET https://glue.mysprykershop.com/product-offers/{% raw %}{{sku}}{% endraw %}?include=merchants`. The response should include the `merchants` resource along with `product-offers`.
diff --git a/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-product-offer-prices-glue-api.md b/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-product-offer-prices-glue-api.md
index 6caea2f7c87..1eede64fa41 100644
--- a/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-product-offer-prices-glue-api.md
+++ b/_includes/pbc/all/install-glue-api/202404.0/marketplace/install-the-marketplace-product-offer-prices-glue-api.md
@@ -111,7 +111,7 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency
Make sure that the `ProductOfferPricesResourceRoutePlugin` plugin is set up by sending the request `GET https://glue.mysprykershop.com/product-offers/{% raw %}{{offerReference}}{% endraw %}/product-offer-prices`.
-Make sure that the `ProductOfferPriceByProductOfferReferenceResourceRelationshipPlugin` plugin is set up by sending the request `GET https://glue.mysprykershop.com/product-offers/{% raw %}{{offerReference}}{% endraw %}?include=product-offer-prices`. You should get `product-offers` with all product offer’s `product-offer-prices` as relationships.
+Make sure that the `ProductOfferPriceByProductOfferReferenceResourceRelationshipPlugin` plugin is set up by sending the request `GET https://glue.mysprykershop.com/product-offers/{% raw %}{{offerReference}}{% endraw %}?include=product-offer-prices`. You should get `product-offers` with all product offer's `product-offer-prices` as relationships.
{% endinfo_block %}
diff --git a/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-product-offer-glue-api.md b/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-product-offer-glue-api.md
index 8dfc5b279f6..cdfbcaa9104 100644
--- a/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-product-offer-glue-api.md
+++ b/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-product-offer-glue-api.md
@@ -121,7 +121,7 @@ Make sure that `ProductOffersResourceRoutePlugin` is set up by sending the reque
Make sure that `ConcreteProductsProductOffersResourceRoutePlugin` is set up by sending the request `GET https://glue.mysprykershop.com/concrete-products/{% raw %}{{sku}}{% endraw %}/product-offers`.
-Make sure that `ProductOffersByProductConcreteSkuResourceRelationshipPlugin` is set up by sending the request `GET https://glue.mysprykershop.com/concrete-products/{% raw %}{{sku}}{% endraw %}?include=product-offers`. You should get `concrete-products` with all product’s `product-offers` as relationships.
+Make sure that `ProductOffersByProductConcreteSkuResourceRelationshipPlugin` is set up by sending the request `GET https://glue.mysprykershop.com/concrete-products/{% raw %}{{sku}}{% endraw %}?include=product-offers`. You should get `concrete-products` with all product's `product-offers` as relationships.
Make sure that `MerchantByMerchantReferenceResourceRelationshipPlugin` is set up by sending the request `GET https://glue.mysprykershop.com/product-offers/{% raw %}{{sku}}{% endraw %}?include=merchants`. The response should include the `merchants` resource along with `product-offers`.
diff --git a/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-product-offer-prices-glue-api.md b/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-product-offer-prices-glue-api.md
index 6caea2f7c87..1eede64fa41 100644
--- a/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-product-offer-prices-glue-api.md
+++ b/_includes/pbc/all/install-glue-api/202410.0/marketplace/install-the-marketplace-product-offer-prices-glue-api.md
@@ -111,7 +111,7 @@ class GlueApplicationDependencyProvider extends SprykerGlueApplicationDependency
Make sure that the `ProductOfferPricesResourceRoutePlugin` plugin is set up by sending the request `GET https://glue.mysprykershop.com/product-offers/{% raw %}{{offerReference}}{% endraw %}/product-offer-prices`.
-Make sure that the `ProductOfferPriceByProductOfferReferenceResourceRelationshipPlugin` plugin is set up by sending the request `GET https://glue.mysprykershop.com/product-offers/{% raw %}{{offerReference}}{% endraw %}?include=product-offer-prices`. You should get `product-offers` with all product offer’s `product-offer-prices` as relationships.
+Make sure that the `ProductOfferPriceByProductOfferReferenceResourceRelationshipPlugin` plugin is set up by sending the request `GET https://glue.mysprykershop.com/product-offers/{% raw %}{{offerReference}}{% endraw %}?include=product-offer-prices`. You should get `product-offers` with all product offer's `product-offer-prices` as relationships.
{% endinfo_block %}
diff --git a/_includes/pbc/all/upgrade-modules/replace-the-codeitnow-with-the-barcodelaminas-module.md b/_includes/pbc/all/upgrade-modules/replace-the-codeitnow-with-the-barcodelaminas-module.md
index 5e31d3e65ac..2ca3c48f96a 100644
--- a/_includes/pbc/all/upgrade-modules/replace-the-codeitnow-with-the-barcodelaminas-module.md
+++ b/_includes/pbc/all/upgrade-modules/replace-the-codeitnow-with-the-barcodelaminas-module.md
@@ -1,6 +1,6 @@
-Because of a DMCA takedown of a 3rd party library that the `spryker/code-it-now` module uses, the `spryker/code-it-now` module is deprecated. Therefore, migration to the `BarcodeLaminas` module is required.
+Because of a DMCA takedown of a third-party library that the `spryker/code-it-now` module uses, the `spryker/code-it-now` module is deprecated. Therefore, migration to the `BarcodeLaminas` module is required.
This document describes how to replace the deprecated `CodeItNow` module with `BarcodeLaminas`.
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-cms-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-cms-module.md
index 3fce76c543e..9cc79e8cc9a 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-cms-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-cms-module.md
@@ -218,9 +218,9 @@ To install the module, `"spryker/cms-block": "^1.0.0"` with Composer is required
* `vendor/bin/console propel:migrate`
* `vendor/bin/console propel:model:build`
-After running the last command, you’ll find some new classes in your project under the `\Orm\Zed\Cms\Persistence` namespace.
+After running the last command, you'll find some new classes in your project under the `\Orm\Zed\Cms\Persistence` namespace.
-It’s important to make sure that they are extending the base classes from the core, for example:
+It's important to make sure that they are extending the base classes from the core, for example:
* `Orm\Zed\Cms\Persistence\SpyCmsBlock` extends `Spryker\Zed\CmsBlock\Persistence\Propel\AbstractSpyCmsBlock`
* `Orm\Zed\Cms\Persistence\SpyCmsBlockQuery` extends `Spryker\Zed\CmsBlock\Persistence\Propel\AbstractSpyCmsBlockQuery.`
@@ -626,4 +626,4 @@ We have extended CMS pages with localized attributes such as name and HTML meta
* `vendor/bin/console propel:diff`, also manual review is necessary for the generated migration file.
* `vendor/bin/console propel:migrate`
* `vendor/bin/console propel:model:build`
-* After running the last command you’ll find some new classes in your project under the `\Orm\Zed\Cms\Persistence` namespace. It’s important to make sure that they are extending the base classes from the core, for example, `Orm\Zed\Cms\Persistence\SpyCmsPageLocalizedAttributes` extends `Spryker\Zed\Cms\Persistence\Propel\AbstractSpyCmsPageLocalizedAttributes`, and `Orm\Zed\Cms\Persistence\SpyCmsPageLocalizedAttributesQuery` extends `Spryker\Zed\Cms\Persistence\Propel\AbstractSpyCmsPageLocalizedAttributesQuery`.
+* After running the last command you'll find some new classes in your project under the `\Orm\Zed\Cms\Persistence` namespace. It's important to make sure that they are extending the base classes from the core, for example, `Orm\Zed\Cms\Persistence\SpyCmsPageLocalizedAttributes` extends `Spryker\Zed\Cms\Persistence\Propel\AbstractSpyCmsPageLocalizedAttributes`, and `Orm\Zed\Cms\Persistence\SpyCmsPageLocalizedAttributesQuery` extends `Spryker\Zed\Cms\Persistence\Propel\AbstractSpyCmsPageLocalizedAttributesQuery`.
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-cmsblock-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-cmsblock-module.md
index 6c239e5eab0..03c7d97ba98 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-cmsblock-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-cmsblock-module.md
@@ -189,7 +189,7 @@ If you have a custom CMS Block Collector, make sure that it collects CMS Blocks
4. Install the database changes by running `vendor/bin/console propel:diff`. Propel should generate a migration file with the changes.
5. Apply the database changes: `vendor/bin/console propel:migrate`
6. Generate and update ORM models: `vendor/bin/console propel:model:build`
-7. You will find some new classes in your project under the `\Orm\Zed\CmsBlock\Persistence` namespace. It’s important to make sure that they extend the base classes from the Spryker core, for example:
+7. You will find some new classes in your project under the `\Orm\Zed\CmsBlock\Persistence` namespace. It's important to make sure that they extend the base classes from the Spryker core, for example:
* `\Orm\Zed\CmsBlock\Persistence\SpyCmsBlockStore` extends `\Spryker\Zed\CmsBlock\Persistence\Propel\AbstractSpyCmsBlockStore`
* `\Orm\Zed\CmsBlock\Persistence\SpyCmsBlockStoreQuery` extends `\Spryker\Zed\CmsBlock\Persistence\Propel\AbstractSpyCmsBlockStoreQuery`
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 0b5493b9d6e..0a2e0fe5867 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-collector-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-collector-module.md
@@ -83,4 +83,4 @@ You can find additional details on [Collector module release page](https://githu
With version 4 of the Collector module, we fixed the `collector:search:export` and `collector:search:update` console commands to run for all available locales instead of just for the current one. This behavior is now consistent with the storage collector command (`collector:storage:export`).
-If you would like to upgrade to this version and you have multiple locales in your store, then you need to make sure that your collector query (in the Spryker Demoshop we use the `ProductCollectorQuery` class) is also correctly filtered by locale, otherwise it could happen that you’ll have inconsistent data in your Elasticsearch.
+If you would like to upgrade to this version and you have multiple locales in your store, then you need to make sure that your collector query (in the Spryker Demoshop we use the `ProductCollectorQuery` class) is also correctly filtered by locale, otherwise it could happen that you'll have inconsistent data in your Elasticsearch.
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-payment-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-payment-module.md
index 4852f267ff0..c121b598862 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-payment-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-payment-module.md
@@ -41,32 +41,32 @@ To enable the new version:
3. Insert new sales payment tables by executing the following queries:
```sql
-CREATE SEQUENCE “spy_sales_payment_pk_seq”;
-CREATE TABLE “spy_sales_payment”
+CREATE SEQUENCE "spy_sales_payment_pk_seq";
+CREATE TABLE "spy_sales_payment"
(
- “id_sales_payment” INTEGER NOT NULL,
- “fk_sales_order” INTEGER NOT NULL,
- “fk_sales_payment_method_type” INTEGER NOT NULL,
- “amount” INTEGER NOT NULL,
- “created_at” TIMESTAMP,
- “updated_at” TIMESTAMP,
- PRIMARY KEY (“id_sales_payment”)
+ "id_sales_payment" INTEGER NOT NULL,
+ "fk_sales_order" INTEGER NOT NULL,
+ "fk_sales_payment_method_type" INTEGER NOT NULL,
+ "amount" INTEGER NOT NULL,
+ "created_at" TIMESTAMP,
+ "updated_at" TIMESTAMP,
+ PRIMARY KEY ("id_sales_payment")
);
-CREATE SEQUENCE “spy_sales_payment_method_type_pk_seq”;
-CREATE TABLE “spy_sales_payment_method_type”
+CREATE SEQUENCE "spy_sales_payment_method_type_pk_seq";
+CREATE TABLE "spy_sales_payment_method_type"
(
- “id_sales_payment_method_type” INTEGER NOT NULL,
- “payment_provider” VARCHAR NOT NULL,
- “payment_method” VARCHAR NOT NULL,
- PRIMARY KEY (“id_sales_payment_method_type”)
+ "id_sales_payment_method_type" INTEGER NOT NULL,
+ "payment_provider" VARCHAR NOT NULL,
+ "payment_method" VARCHAR NOT NULL,
+ PRIMARY KEY ("id_sales_payment_method_type")
);
-CREATE INDEX “spy_sales_payment_method_type-type” ON “spy_sales_payment_method_type” (“payment_provider”,“payment_method”);
-ALTER TABLE “spy_sales_payment” ADD CONSTRAINT “spy_sales_payment-fk_sales_order”
- FOREIGN KEY (“fk_sales_order”)
- REFERENCES “spy_sales_order” (“id_sales_order”);
-ALTER TABLE “spy_sales_payment” ADD CONSTRAINT “spy_sales_payment-fk_sales_payment_method_type”
- FOREIGN KEY (“fk_sales_payment_method_type”)
- REFERENCES “spy_sales_payment_method_type” (“id_sales_payment_method_type”);
+CREATE INDEX "spy_sales_payment_method_type-type" ON "spy_sales_payment_method_type" ("payment_provider","payment_method");
+ALTER TABLE "spy_sales_payment" ADD CONSTRAINT "spy_sales_payment-fk_sales_order"
+ FOREIGN KEY ("fk_sales_order")
+ REFERENCES "spy_sales_order" ("id_sales_order");
+ALTER TABLE "spy_sales_payment" ADD CONSTRAINT "spy_sales_payment-fk_sales_payment_method_type"
+ FOREIGN KEY ("fk_sales_payment_method_type")
+ REFERENCES "spy_sales_payment_method_type" ("id_sales_payment_method_type");
```
You should now be able to see that the new order saved payment information into the `spy_sales_payment` table.
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-productsearch-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-productsearch-module.md
index 8a5d431552d..5948400bdfa 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-productsearch-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-productsearch-module.md
@@ -5,10 +5,10 @@
1. Requires version ^4.0.0 of Product and ^5.0.0 of Search bundles.
2. `ProductSearchFacade::activateProductSearch()` and `ProductSearchFacade::deactivateProductSearch()` are not connected to `searchableProduct` anymore.
3. `ProductSearchFacade::saveProductSearchPreferences()` was removed. Added separated create, update and clean methods instead.
-4. Added `spy_product_search_attribute` new database table for product attribute search filter handling. To get the database changes you’ll need to run `vendor/bin/console propel:diff` to generate a propel migration file, then `vendor/bin/console propel:migrate` to apply it. Make sure before the second command that you checked and cleaned up the content of the migration file if necessary.
-5. Along with the database changes you’ll need to run `vendor/bin/console propel:model:build` to generate the necessary propel classes for the changes. After running that command you’ll find some new classes in your project under `\Orm\Zed\ProductSearch\Persistence` namespace. It’s important that you make sure that they are extending the base classes from the core, for example:
+4. Added `spy_product_search_attribute` new database table for product attribute search filter handling. To get the database changes you'll need to run `vendor/bin/console propel:diff` to generate a propel migration file, then `vendor/bin/console propel:migrate` to apply it. Make sure before the second command that you checked and cleaned up the content of the migration file if necessary.
+5. Along with the database changes you'll need to run `vendor/bin/console propel:model:build` to generate the necessary propel classes for the changes. After running that command you'll find some new classes in your project under `\Orm\Zed\ProductSearch\Persistence` namespace. It's important that you make sure that they are extending the base classes from the core, for example:
1. `Orm\Zed\ProductSearch\Persistence\SpyProductSearchAttribute` extends `Spryker\Zed\ProductSearch\Persistence\Propel\AbstractSpyProductSearchAttribute`,
2. `Orm\Zed\ProductSearch\Persistence\SpyProductSearchAttributeMap` extends `Spryker\Zed\ProductSearch\Persistence\Propel\AbstractSpyProductSearchAttributeMap`.
-6. In order to activate the changes of the new product search and filter preferences Zed UIs, you’ll need to register the `Spryker\Zed\ProductSearch\Communication\Plugin\ProductSearchConfigExtensionCollectorPlugin` in your `CollectorDependencyProvider` (under the `\Spryker\Zed\Collector\CollectorDependencyProvider::STORAGE_PLUGINS` key). This will make sure to write the search and filter preferences changes into redis when the collectors run. To enable reading them you’ll also need to register `Spryker\Zed\ProductSearch\Communication\Plugin\ProductSearchConfigExtensionCollectorPlugin` in `Pyz\Client\Search\SearchDependencyProvider::createSearchConfigExpanderPlugins()`.
+6. In order to activate the changes of the new product search and filter preferences Zed UIs, you'll need to register the `Spryker\Zed\ProductSearch\Communication\Plugin\ProductSearchConfigExtensionCollectorPlugin` in your `CollectorDependencyProvider` (under the `\Spryker\Zed\Collector\CollectorDependencyProvider::STORAGE_PLUGINS` key). This will make sure to write the search and filter preferences changes into redis when the collectors run. To enable reading them you'll also need to register `Spryker\Zed\ProductSearch\Communication\Plugin\ProductSearchConfigExtensionCollectorPlugin` in `Pyz\Client\Search\SearchDependencyProvider::createSearchConfigExpanderPlugins()`.
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-quote-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-quote-module.md
index f840b3acc6f..ba4a9e01b50 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-quote-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-quote-module.md
@@ -6,7 +6,7 @@ The new version of the `Quote` module provides the ability to save customer quot
Quote storage strategy (session, database) can be changed in `Spryker\Shared\Quote\QuoteConfig::getStorageStrategy`.
-If you’re migrating the `Quote` module from version 1 to version 2, follow the steps described below.
+If you're migrating the `Quote` module from version 1 to version 2, follow the steps described below.
### Perform database migration
@@ -14,7 +14,7 @@ If you’re migrating the `Quote` module from version 1 to version 2, follow th
* Run `vendor/bin/console propel:migrate`;
* Run `vendor/bin/console propel:model:build`.
-After running the last command you’ll find some new classes in your project under `\Orm\Zed\Cms\Persistence` namespace. It’s important to make sure that they are extending the base classes from the core, for example, `Orm\Zed\Quote\Persistence\SpyQuote` extends `\Spryker\Zed\Quote\Persistence\Propel\AbstractSpyQuote``Orm\Zed\Quote\Persistence\SpyQuoteQuery extends Spryker\Zed\Quote\Persistence\Propel\AbstractSpyQuoteQuery.`
+After running the last command you'll find some new classes in your project under `\Orm\Zed\Cms\Persistence` namespace. It's important to make sure that they are extending the base classes from the core, for example, `Orm\Zed\Quote\Persistence\SpyQuote` extends `\Spryker\Zed\Quote\Persistence\Propel\AbstractSpyQuote``Orm\Zed\Quote\Persistence\SpyQuoteQuery extends Spryker\Zed\Quote\Persistence\Propel\AbstractSpyQuoteQuery.`
With this version quote storage strategies (session, database) have been added.
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 c3f4868a6ad..741e2f43783 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-search-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-search-module.md
@@ -119,7 +119,7 @@ class SearchElasticsearchConfig extends SprykerSearchElasticsearchConfig
10. Adjust all project-level Elasticsearch index definition JSON files (if any) as follows:
- Each JSON file should be renamed, so it would have one of the source identifiers (see above) as its name. The name of the definition file matters and will later be translated into index name.
- - Each JSON file should provide a definition only for one mapping type, suitable for that index. By default, *index’s only* mapping type should have the same name as the JSON file it’s described by. For example, `page.json` should only contain a definition for the `page` mapping type.
+ - Each JSON file should provide a definition only for one mapping type, suitable for that index. By default, *index's only* mapping type should have the same name as the JSON file it's described by. For example, `page.json` should only contain a definition for the `page` mapping type.
- Each JSON file should be placed inside of the directory, which matches a path pattern defined by `SearchElasticsearchConfig::getJsonSchemaDefinitionDirectories()`.
@@ -278,7 +278,7 @@ We changed the way dynamic search configuration was cached and then used. This f
* The `Spryker\Shared\Search\SearchConstants::SEARCH_CONFIG_CACHE_KEY` config was removed, but previously it was required to be filled with a key that was used to save the search config cache into Redis.
* Removed `SearchFacade::saveSearchConfigCache()` method which stored the given search cache configuration into Redis.
-* In the new version, instead of the removed code mentioned above, you’ll need to provide a list of `Spryker\Client\Search\Dependency\Plugin\SearchConfigExpanderPluginInterface` in `Pyz\Client\Search\SearchDependencyProvider::createSearchConfigExpanderPlugins()` instead.
+* In the new version, instead of the removed code mentioned above, you'll need to provide a list of `Spryker\Client\Search\Dependency\Plugin\SearchConfigExpanderPluginInterface` in `Pyz\Client\Search\SearchDependencyProvider::createSearchConfigExpanderPlugins()` instead.
We moved the possible facet type option constants from `Spryker\Client\Search\Plugin\Config\FacetConfigBuilder` to `\Spryker\Shared\Search\SearchConstants`:
@@ -288,7 +288,7 @@ We moved the possible facet type option constants from `Spryker\Client\Search\Pl
* `FacetConfigBuilder::TYPE_CATEGORY` -> `SearchConstants::FACET_TYPE_CATEGORY`
* `FacetConfigBuilder::TYPE_BOOL`-> not supported
-We have added a type field to the default “page” index type defined by `Search/src/Spryker/Shared/Search/IndexMap/search.json`. With this field it’s possible to differentiate multiple item types (e.g. products, cms pages, categories, etc.). Additionally, we also fixed the indexing strategy of store and `locale` field, they are set to “not_analyzed”. These changes require a repeated indexation of your existing data. In a non-production environment this means that you need to delete your index and then install the new one by running `vendor/bin/console setup:search`.
+We have added a type field to the default "page" index type defined by `Search/src/Spryker/Shared/Search/IndexMap/search.json`. With this field it's possible to differentiate multiple item types (e.g. products, cms pages, categories, etc.). Additionally, we also fixed the indexing strategy of store and `locale` field, they are set to "not_analyzed". These changes require a repeated indexation of your existing data. In a non-production environment this means that you need to delete your index and then install the new one by running `vendor/bin/console setup:search`.
{% info_block errorBox "Important" %}
@@ -301,4 +301,4 @@ In production environments, follow the official Elasticsearch guide about [Index
With the version 4 of the Search module, the logic and configuration of how the results are sorted has been changed. Previously there were two request parameters that controlled what field we are sorting by as well as the direction of the sorting (e.g /?sort=price&sort_order=desc).
-The new version now works with one parameter only (e.g. `/?sort=price_asc`). To migrate to the new version, you’ll need to change your configurations in your classes that implement `\Spryker\Client\Search\Dependency\Plugin\SearchConfigBuilderInterface`. Instead of providing one `SortConfigTransfer` per sorted attribute, now you need to provide two if you wish to sort by both ascending and descending order. To do this, use the `SortConfigTransfer::setIsDescending()` method, and make sure that the values in `SortConfigTransfer::setParameterName()` are unique.
+The new version now works with one parameter only (e.g. `/?sort=price_asc`). To migrate to the new version, you'll need to change your configurations in your classes that implement `\Spryker\Client\Search\Dependency\Plugin\SearchConfigBuilderInterface`. Instead of providing one `SortConfigTransfer` per sorted attribute, now you need to provide two if you wish to sort by both ascending and descending order. To do this, use the `SortConfigTransfer::setIsDescending()` method, and make sure that the values in `SortConfigTransfer::setParameterName()` are unique.
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-sharedcartpage-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-sharedcartpage-module.md
index 5c2fc3ab337..9eb5207aee5 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-sharedcartpage-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-sharedcartpage-module.md
@@ -11,7 +11,7 @@ To upgrade to the new version of the module, do the following:
1. Upgrade the `CompanyUser` module to version 2.0.0. See [Upgrade the CompanyUser module](/docs/pbc/all/customer-relationship-management/{{site.version}}/base-shop/install-and-upgrade/upgrade-modules/upgrade-the-companyuser-module.html) for more details:
```yaml
-composer require spryker/company-user: “^2.0.0”
+composer require spryker/company-user: "^2.0.0"
```
2. Regenerate transfer objects:
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-shipment-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-shipment-module.md
index 87600acbc34..38ee5e720ed 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-shipment-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-shipment-module.md
@@ -187,7 +187,7 @@ Database structure is as follows:
* Install the database changes by running `vendor/bin/console propel:diff`. Propel should generate a migration file with the changes.
* Apply the database changes: `vendor/bin/console propel:migrate`.
* Generate and update ORM models: `vendor/bin/console propel:model:build`.
- * You will find some new classes in your project under `\Orm\Zed\Shipment\Persistence` namespace. It’s important that you make sure that they extend the base classes from the Spryker core, e.g.:
+ * You will find some new classes in your project under `\Orm\Zed\Shipment\Persistence` namespace. It's important that you make sure that they extend the base classes from the Spryker core, e.g.:
* `\Orm\Zed\Shipment\Persistence\SpyShipmentMethodPrice` extends `\Spryker\Zed\Shipment\Persistence\Propel\AbstractSpyShipmentMethodPrice`
* `\Orm\Zed\Shipment\Persistence\SpyShipmentMethodPriceQuery` extends `\Spryker\Zed\Shipment\Persistence\Propel\AbstractSpyShipmentMethodPriceQuery`
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-tax-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-tax-module.md
index aaf674bdcae..acb4fe82736 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-tax-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-tax-module.md
@@ -16,9 +16,9 @@ Corresponding plugin business classes, `ExpenseTaxCalculator`, `ItemTaxCalculato
## Upgrading from version 2.* to version 3.*
-If you’re migrating the Tax module from version 2 to version 3, you need to follow the steps described below.
+If you're migrating the Tax module from version 2 to version 3, you need to follow the steps described below.
-With the version 3 of the Tax module, new tax calculation is used. The tax rate is based on the current shipping country or, if it’s unavailable, a default tax rate value is used.
+With the version 3 of the Tax module, new tax calculation is used. The tax rate is based on the current shipping country or, if it's unavailable, a default tax rate value is used.
First you need to execute a database schema migration:
```sql
diff --git a/_includes/pbc/all/upgrade-modules/upgrade-the-wishlist-module.md b/_includes/pbc/all/upgrade-modules/upgrade-the-wishlist-module.md
index a809a9703f7..237deb618f5 100644
--- a/_includes/pbc/all/upgrade-modules/upgrade-the-wishlist-module.md
+++ b/_includes/pbc/all/upgrade-modules/upgrade-the-wishlist-module.md
@@ -23,7 +23,7 @@ We have added a new dependency to `ProductStoreClient`: now use `Spryker\Client\
## Upgrading from Version 2.* to Version 3.*
-If you’re migrating the Wishlist module from version 2 to version 3, you need to follow the steps described below.
+If you're migrating the Wishlist module from version 2 to version 3, you need to follow the steps described below.
Version 3 of the Wishlist module introduced new schema, and old tables have to be deleted while new created.
First you need to drop old tables:
diff --git a/_includes/scos/user/intro-to-spryker/releases/release-notes/release-notes-202212.0/patch-release-notes-202212.0.md b/_includes/scos/user/intro-to-spryker/releases/release-notes/release-notes-202212.0/patch-release-notes-202212.0.md
index 170a3941df9..202639a2c1f 100644
--- a/_includes/scos/user/intro-to-spryker/releases/release-notes/release-notes-202212.0/patch-release-notes-202212.0.md
+++ b/_includes/scos/user/intro-to-spryker/releases/release-notes/release-notes-202212.0/patch-release-notes-202212.0.md
@@ -3,7 +3,7 @@
The patch release 202212.0-p2 includes the following changes:
- Updated github actions to enable testing newer PHP versions (8.0 & 8.1).
- Updated backoffice GUI base module to allow backoffice tables to have strict search on their columns (check this page [here](/docs/dg/dev/backend-development/zed-ui-tables/create-and-configure-zed-tables.html#configure-search-by-columns)).
-- Removed explicit usage of Devvm since it’s a deprecated concept.
+- Removed explicit usage of Devvm since it's a deprecated concept.
### GitHub release pages:
diff --git a/_internal/faq-migration-to-opensearch.md b/_internal/faq-migration-to-opensearch.md
index 8b400d81044..5ba87588e5a 100644
--- a/_internal/faq-migration-to-opensearch.md
+++ b/_internal/faq-migration-to-opensearch.md
@@ -58,7 +58,7 @@ Migration to OpenSearch provides several benefits:
* Active community: OpenSearch benefits from a thriving open-source community, driving continuous enhancement and innovation.
-## Why didn’t we get access to OpenSearch earlier?
+## Why didn't we get access to OpenSearch earlier?
We prioritize our services' stability, security, and compatibility above all else. That's why we approach upgrades with the utmost caution, ensuring that we have extensively tested and verified their functionality and compatibility before they are introduced into our ecosystem. Elasticsearch has been a reliable and robust search engine, and many of our customers still use versions under 7.10. Despite Elastic's decision to deprecate some older versions of Elasticsearch, we've been able to maintain their service continuity through our partnership with AWS, which has committed to supporting these versions without deprecation notice. As a result, there was no immediate need to rush the migration to OpenSearch.
diff --git a/_layouts/404.html b/_layouts/404.html
index 9fab636a9fe..d0cf8d37240 100644
--- a/_layouts/404.html
+++ b/_layouts/404.html
@@ -5,7 +5,7 @@
Page not found
-
The page you’re looking for does not exist.
+
The page you're looking for does not exist.
Go to Home page
diff --git a/_templates/troubleshooting-guide-template.md b/_templates/troubleshooting-guide-template.md
index a2ee60e690f..7df1c15448f 100644
--- a/_templates/troubleshooting-guide-template.md
+++ b/_templates/troubleshooting-guide-template.md
@@ -18,7 +18,7 @@ Every troubleshooting article should have its own page in the respective section
## {Description}
-
+
## Cause
diff --git a/docs/about/all/about-spryker.md b/docs/about/all/about-spryker.md
index 6d951dcf194..8f377968bc4 100644
--- a/docs/about/all/about-spryker.md
+++ b/docs/about/all/about-spryker.md
@@ -39,7 +39,7 @@ For a complete list of modules, see the [Spryker repository](https://github.com/
### Benefits of the modular architecture
-* You take only the modules or features needed for your project, without overloading it with redundant code and investing effort into something you don’t need.
+* You take only the modules or features needed for your project, without overloading it with redundant code and investing effort into something you don't need.
* You can easily grow your project by adding new modules at any time.
* You can add, delete, and test new features without worrying about breaking or pausing your live shop.
* Thanks to the atomic release approach, each module is released independently, has its own version, and is backward compatible. You can install and update the needed modules right after they are released without having to update any other installed modules.
diff --git a/docs/about/all/about-the-docs/contribute-to-the-docs/edit-the-docs-using-a-web-browser.md b/docs/about/all/about-the-docs/contribute-to-the-docs/edit-the-docs-using-a-web-browser.md
index 92eb824cca3..6359fadf27e 100644
--- a/docs/about/all/about-the-docs/contribute-to-the-docs/edit-the-docs-using-a-web-browser.md
+++ b/docs/about/all/about-the-docs/contribute-to-the-docs/edit-the-docs-using-a-web-browser.md
@@ -26,7 +26,7 @@ The Spryker documentation is hosted on GitHub, in the [spryker-docs](https://git
{% info_block infoBox "Info" %}
-We write the Spryker documentation using Markdown. If you don’t know Markdown yet, check the [GitHub Markdown Guide](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax). For the documentation-specific Markdown elements and HTML syntax used where Markdown is not enough, see [Markdown syntax](/docs/about/all/about-the-docs/style-guide/markdown-syntax.html).
+We write the Spryker documentation using Markdown. If you don't know Markdown yet, check the [GitHub Markdown Guide](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax). For the documentation-specific Markdown elements and HTML syntax used where Markdown is not enough, see [Markdown syntax](/docs/about/all/about-the-docs/style-guide/markdown-syntax.html).
{% endinfo_block %}
diff --git a/docs/about/all/about-the-docs/contribute-to-the-docs/review-docs-pull-requests.md b/docs/about/all/about-the-docs/contribute-to-the-docs/review-docs-pull-requests.md
index db32f636d42..f5acd6e11c5 100644
--- a/docs/about/all/about-the-docs/contribute-to-the-docs/review-docs-pull-requests.md
+++ b/docs/about/all/about-the-docs/contribute-to-the-docs/review-docs-pull-requests.md
@@ -20,17 +20,17 @@ related:
link: docs/about/all/about-the-docs/style-guide/markdown-syntax.html
---
-When someone requests your review of a pull request, you get an email about the request.
+When someone requests your review of a pull request (PR), you get an email about the request.
-To review a pull request, do the following:
+To review a PR, do the following:
-1. At the pull request page, click the **Files changed** tab.
+1. At the PR's page, click the **Files changed** tab.
Here you can see how many files have been changed and the changes themselves. Old text is displayed in red, the new one - in green:
![Files changed](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/contributing-to-documentation/files-changed.png)
-{% info_block infoBox "Info" %}
+{% info_block infoBox "" %}
-You can view each file in a more readable form: with images, normally-looking tables, etc. For this, click on three dots at the file path and select **View file**:
+To preview a file, click on more options menu and select **View file**:
![View file](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/contributing-to-documentation/view-file.png)
diff --git a/docs/about/all/about-the-docs/run-the-docs-locally.md b/docs/about/all/about-the-docs/run-the-docs-locally.md
index 0329348c71d..c586a38fc71 100644
--- a/docs/about/all/about-the-docs/run-the-docs-locally.md
+++ b/docs/about/all/about-the-docs/run-the-docs-locally.md
@@ -39,7 +39,7 @@ The installation process is different depending whether you are using a Mac with
* Intel-based Macs show an item labeled _Processor_ followed by the name and/or model number of the Intel processor.
-{% info_block warningBox "MacOS on M1 processor – Open Terminal using Rosetta" %}
+{% info_block warningBox "MacOS on M1 processor: open Terminal using Rosetta" %}
On a MacBook with the M1 processor, make sure your Terminal is opened with Rosetta 2, by following the instructions here. Rosetta is a translation layer that enables non-native Intel x86 apps, including Homebrew, to run on Apple Silicon Macs.
To open your terminal using Rosetta, follow these steps:
@@ -54,7 +54,7 @@ On either an M1 or an Intel Mac, follow the steps below to install Jekyll. M1-sp
#### 1. Install Homebrew
-Homebrew is a package manager for macOS because by default Mac doesn’t have a package manager. You use Homebrew to install Ruby in the next step. Additionally, when you install Homebrew, Xcode command line tools and GCC are also installed automatically.
+Homebrew is a package manager for macOS because by default Mac doesn't have a package manager. You use Homebrew to install Ruby in the next step. Additionally, when you install Homebrew, Xcode command line tools and GCC are also installed automatically.
To install Homebrew, follow these steps:
```bash
diff --git a/docs/about/all/about-the-docs/style-guide/general-rules-and-guidance-for-adding-docs.md b/docs/about/all/about-the-docs/style-guide/general-rules-and-guidance-for-adding-docs.md
index 2db32b60cf8..8b8a46d1e2d 100644
--- a/docs/about/all/about-the-docs/style-guide/general-rules-and-guidance-for-adding-docs.md
+++ b/docs/about/all/about-the-docs/style-guide/general-rules-and-guidance-for-adding-docs.md
@@ -115,7 +115,7 @@ After creating a new document, you must add it to the sidebar navigation. Keep i
### Sidebars
-Each _product/realm_ set has its own sidebar, which is represented by a YAML file in the `[_data/sidebar](https://github.com/spryker/spryker-docs/tree/master/_data/sidebars)` directory. The sidebar name is `{product}_{realm}_sidebar.yml`. So, for example, for the marketplace user documentation, the sidebar file is called `marketplace_user_sidebar.html`. The sidebar consists of the list of files that are present in the navigation. As a best practice, as soon as you create a new page, add it to your sidebar (so you don’t forget about the page).
+Each _product/realm_ set has its own sidebar, which is represented by a YAML file in the `[_data/sidebar](https://github.com/spryker/spryker-docs/tree/master/_data/sidebars)` directory. The sidebar name is `{product}_{realm}_sidebar.yml`. So, for example, for the marketplace user documentation, the sidebar file is called `marketplace_user_sidebar.html`. The sidebar consists of the list of files that are present in the navigation. As a best practice, as soon as you create a new page, add it to your sidebar (so you don't forget about the page).
```
- product: SCOS
@@ -134,10 +134,10 @@ Each _product/realm_ set has its own sidebar, which is represented by a YAML fil
### Creating landing pages for the main categories
-For each main category, like *Setup*, *Feature integration guides*, or *HowTos*, you can create an `index.md.` file. This lets you open category pages without specific files in the link. For example, let’s do that for the **Glue API guides** section of the developer guide:
+For each main category, like *Setup*, *Feature integration guides*, or *HowTos*, you can create an `index.md.` file. This lets you open category pages without specific files in the link. For example, let's do that for the **Glue API guides** section of the developer guide:
1. In `docs/marketplace/dev/glue-api-guides`, add the `index.md` file. Make sure you specify the title in the file.
-2. In the `marketplace_dev_sidebar.yml` file, add the URL for the **Glue API guides** element. You don’t have to write `index.html` at the end of the link, the link works without it:
+2. In the `marketplace_dev_sidebar.yml` file, add the URL for the **Glue API guides** element. You don't have to write `index.html` at the end of the link, the link works without it:
```
- title: Glue API guides
@@ -212,7 +212,7 @@ To delete an unnecessary or outdated page from the website, make sure to set up
This section contains most coming issues that you may face while working with docs and expected ways how to resolve the problem.
### Filename too long in Git for Windows
-If you face the “Filename too long” error, or an error like this one *“spryker.github.io/vendor/bundle/ruby/2.7.0/gems/jekyll-4.2.0/lib/jekyll/convertible.rb:222:in `write': No such file or directory @ rb_sysopen - E:/Jekyll/spryker.github.io/_site/docs/pbc/all/search/{{site.version}}/base-shop/tutorials-and-howtos/tutorial-content-and-search-attribute-cart-based-catalog-personalization/tutorial-content-and-search-attribute-cart-based-catalog-personalization.html (Errno::ENOENT)”*, run the following command to circumvent it:
+If you face the "Filename too long" error, or an error like this one *"spryker.github.io/vendor/bundle/ruby/2.7.0/gems/jekyll-4.2.0/lib/jekyll/convertible.rb:222:in `write': No such file or directory @ rb_sysopen - E:/Jekyll/spryker.github.io/_site/docs/pbc/all/search/{{site.version}}/base-shop/tutorials-and-howtos/tutorial-content-and-search-attribute-cart-based-catalog-personalization/tutorial-content-and-search-attribute-cart-based-catalog-personalization.html (Errno::ENOENT)"*, run the following command to circumvent it:
```bash
git config --system core.longpaths true
diff --git a/docs/about/all/about-the-docs/style-guide/markdown-syntax.md b/docs/about/all/about-the-docs/style-guide/markdown-syntax.md
index ada0d57a027..99a40776e13 100644
--- a/docs/about/all/about-the-docs/style-guide/markdown-syntax.md
+++ b/docs/about/all/about-the-docs/style-guide/markdown-syntax.md
@@ -93,7 +93,7 @@ Make sure to fulfill the requirements:
Currently, by default, when you add an image to your document, its size is automatically adjusted so that it does not exceed 50% of the content area. By default, 2-column tables also take 50% of the content area.
-If you want your image or a 2-column table to stretch to the content area’s size, wrap the image and the table in `` with the `width-100` class. For example:
+If you want your image or a 2-column table to stretch to the content area's size, wrap the image and the table in `
` with the `width-100` class. For example:
To make an image as wide as the content area:
@@ -373,7 +373,7 @@ Published table:
## Anchors
-You don’t have to create anchors for headings. Each heading has its default anchor that corresponds to its text. However, still check [step 2](#step-2) of this section to learn about important aspects of linking to anchors.
+You don't have to create anchors for headings. Each heading has its default anchor that corresponds to its text. However, still check [step 2](#step-2) of this section to learn about important aspects of linking to anchors.
Follow these steps to create an anchor and link to it:
@@ -420,13 +420,13 @@ Click **More** ![google-chrome-more-button](link-to-an-
To add a link to a Wistia video, use the following code: `{% raw %} {% wistia {{wistia video code}} %}{% endraw %}`, where `{video code}` is the Wistia's video code. For example, if you want to add video `https://fast.wistia.com/embed/medias/eiw5ev4gv2/`, your code should be: `{% raw %}{% wistia eiw5ev4gv2 %}{% endraw %}`.
-You can also set video’s width and height. For example:
+You can also set video's width and height. For example:
`{% raw %}{% wistia eiw5ev4gv2 960 720 %}{% endraw %}`
where
-960 - is the video’s width
-720 - is the video’s height
+960 - is the video's width
+720 - is the video's height
## Adding other videos
To add a link to a video in the .mp4 format that originates not from Wistia, add this block with the link to your video:
diff --git a/docs/about/all/about-the-docs/style-guide/style-guide-examples.md b/docs/about/all/about-the-docs/style-guide/style-guide-examples.md
index 7d1e06c9348..50d1c65497e 100644
--- a/docs/about/all/about-the-docs/style-guide/style-guide-examples.md
+++ b/docs/about/all/about-the-docs/style-guide/style-guide-examples.md
@@ -18,6 +18,6 @@ Additional guidance for introducing short and long examples:
|-|-|-|
| To introduce a short example, use a comma or an em dash. | Create a new module—for example, `src/Yves/ContentFooWidget`. | Create a new module. For example, `src/Yves/ContentFooWidget`. |
| To introduce a long example in a short sentence, use a comma or an em dash. | A customer is the final consumer of the store—for example, the person who places an order. | A customer is the final consumer of the store. For example, the person who places an order. |
-| To introduce a long example in a long sentence, write the example as a separate sentence. | A shop owner can sell the same product in different packaging units. For example, apples can be sold as an "Item", a "Bag", or "Pallet" of apples. | A shop owner can sell the same product in different packaging units—for example, apples can be sold as an "Item", a "Bag", or "Pallet" of apples. |
+| To introduce a long example in a long sentence, write the example as a separate sentence. | A shop owner can sell the same product in different packaging units. For example, apples can be sold as an "Item," a "Bag," or "Pallet" of apples. | A shop owner can sell the same product in different packaging units—for example, apples can be sold as an "Item," a "Bag," or "Pallet" of apples. |
diff --git a/docs/about/all/releases/product-and-code-releases.md b/docs/about/all/releases/product-and-code-releases.md
index c2dc47d6f6c..1a8b2e7f533 100644
--- a/docs/about/all/releases/product-and-code-releases.md
+++ b/docs/about/all/releases/product-and-code-releases.md
@@ -42,7 +42,7 @@ To accommodate both the fast pace of innovation and predictability of the upgrad
## Atomic (code) releases
-Atomic, or code release approach, implies that we introduce changes gradually and release updates only for the modified modules. So you don’t need to invest time in updating all the modules available in your project every time there is an update. Each Spryker module is released independently and has its own version. Also, every module has its own repository and dependencies declared in a `composer.json` file, which means you can select a specific module version and update it separately.
+Atomic, or code release approach, implies that we introduce changes gradually and release updates only for the modified modules. So you don't need to invest time in updating all the modules available in your project every time there is an update. Each Spryker module is released independently and has its own version. Also, every module has its own repository and dependencies declared in a `composer.json` file, which means you can select a specific module version and update it separately.
New versions of the existing Spryker modules as well as new modules are released as soon as they are ready in the [Spryker Commerce OS \(SCOS\) project repository](https://github.com/spryker-shop/suite).
diff --git a/docs/about/all/releases/release-notes-202311.0.md b/docs/about/all/releases/release-notes-202311.0.md
index 441f75192e9..14961db4242 100644
--- a/docs/about/all/releases/release-notes-202311.0.md
+++ b/docs/about/all/releases/release-notes-202311.0.md
@@ -15,7 +15,7 @@ For information about installing the Spryker Commerce OS, see [Getting started g
##
![core-commerce](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/icon_Spryker+Commerce+OS_128.png) Fulfillment App
![feature](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/feature.png)
-As part of Spryker’s Unified Commerce capability, the Fulfillment App provides an all-new user interface designed to streamline your order fulfillment process. Supporting new business models and with enhanced functionalities, the Fulfillment App simplifies tasks for warehouse and store staff, offering an efficient and effective fulfillment process.
+As part of Spryker's Unified Commerce capability, the Fulfillment App provides an all-new user interface designed to streamline your order fulfillment process. Supporting new business models and with enhanced functionalities, the Fulfillment App simplifies tasks for warehouse and store staff, offering an efficient and effective fulfillment process.
The fulfillment App includes the following features:
@@ -23,7 +23,7 @@ The fulfillment App includes the following features:
- Warehouse allocation strategy: Optimize warehouse space utilization for your specific warehouse setup.
- Offline mode: Ensure uninterrupted picking, even without an internet connection.
- Backend API architecture: Better performance and improved scalability.
-- Powered by Spryker’s Oryx Framework: Make rapid frontend customizations by utilizing a rich library of components.
+- Powered by Spryker's Oryx Framework: Make rapid frontend customizations by utilizing a rich library of components.
**Business benefits**:
- Fulfill orders faster, easier, and smarter.
@@ -94,7 +94,7 @@ The key features of the Data Exchange API include the following:
##
![data](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/data.png) Next Generation Middleware: Spryker Middleware powered by Alumio
![feature](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/feature.png)
-The Spryker Middleware powered by Alumio solves the main challenges of data integrations in a flexible and customizable way and, therefore, greatly reduces the efforts for Spryker’s data exchange use cases. It is the foundation on which we build our Integration Apps. The Spryker Middleware powered by Alumio uses Alumio data integration technology.
+The Spryker Middleware powered by Alumio solves the main challenges of data integrations in a flexible and customizable way and, therefore, greatly reduces the efforts for Spryker's data exchange use cases. It is the foundation on which we build our Integration Apps. The Spryker Middleware powered by Alumio uses Alumio data integration technology.
The Spryker Middleware powered by Alumio helps you to reach the following outcomes:
@@ -168,7 +168,7 @@ Key features of this integration include the following:
##
![acp](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/icon_App+Orchestration+Platform_128.png) Improved performance, stability, and scalability
![improvement](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/improvement.png)
-Adding 3rd party integrations via apps to your existing SCCOS solution has become easier with the App Composition Platform (ACP). Get in touch with us to get ACP enabled faster and take advantage of ACP’s steadily growing number of no and low-code apps.
+Adding third-party integrations via apps to your existing SCCOS solution has become easier with the App Composition Platform (ACP). Get in touch with us to get ACP enabled faster and take advantage of ACP's steadily growing number of no and low-code apps.
**Business benefit**:
Simplified and faster enablement of ACP for SCCOS, as well as improved scalability, performance, and data security of the entire platform.
@@ -210,7 +210,7 @@ Build an efficient path to purchase for your buyers with Algolia search, an inno
##
![code-upgrader](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/code-upgrader.png) Autointegration of code releases
![improvement](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/improvement.png)
-In addition to updating Spryker packages in your repository, with this release, Spryker Code Upgrader starts integrating plugins, settinh configurations keys, and adding new translations and similar elements to your project code. Now engineers don’t have to figure out and manually apply code changes to activate new features.
+In addition to updating Spryker packages in your repository, with this release, Spryker Code Upgrader starts integrating plugins, settinh configurations keys, and adding new translations and similar elements to your project code. Now engineers don't have to figure out and manually apply code changes to activate new features.
**Business benefit**:
Reduce the engineering time needed to integrate a Spryker module release into your project.
@@ -257,7 +257,7 @@ Install and run [Upgrader compliance Evaluator](/docs/dg/dev/guidelines/keeping-
Oryx Framework empowers developers to efficiently build composable frontends. Oryx provides a rich library of Oryx components, including a design system, allowing developers to rapidly create modern and visually appealing user interfaces. These components integrate with Spryker APIs by default, providing a seamless, decoupled experience for developers and end consumers.
**Business benefit**:
-Save time and effort with Oryx Framework. Spryker’s purpose-built framework lets developers utilize fast, lightweight, and reactive components for storefronts and other frontends that quickly and dynamically display various devices.
+Save time and effort with Oryx Framework. Spryker's purpose-built framework lets developers utilize fast, lightweight, and reactive components for storefronts and other frontends that quickly and dynamically display various devices.
### Learn more:
[Oryx in 90 seconds videos](https://www.youtube.com/playlist?list=PLJooqCSo73Sj9r_632NRtr-O0zuY7eHPb)
@@ -270,7 +270,7 @@ Oryx can be installed on your local machine and requires a Node.js or a compatib
##
![composable-frontend](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/icon_Composable+Storefront_128.png) Composable Storefront: Additional foundation features - EA (early access)
![improvement](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/user/intro-to-spryker/releases/release-notes/improvement.png)
-Additional features are being released for Spryker's new upgradeable, decoupled frontend solution — Composable Storefront. This set of features provides essential components for commonplace purchase journeys. Spryker Composable Storefront is built using Spryker’s Oryx framework, a reactive, fast, and lightweight framework.
+Additional features are being released for Spryker's new upgradeable, decoupled frontend solution — Composable Storefront. This set of features provides essential components for commonplace purchase journeys. Spryker Composable Storefront is built using Spryker's Oryx framework, a reactive, fast, and lightweight framework.
For more information about this Early Access product, contact your Spryker representative.
diff --git a/docs/about/all/releases/release-notes-202404.0.md b/docs/about/all/releases/release-notes-202404.0.md
index fc56ce1be17..16adb5456a5 100644
--- a/docs/about/all/releases/release-notes-202404.0.md
+++ b/docs/about/all/releases/release-notes-202404.0.md
@@ -76,7 +76,7 @@ The managed Security Operations Center (SOC) provides continuous monitoring, det
### Business benefits
- 24/7 security monitoring: Stay protected with round-the-clock vigilance against threats.
-- Optimized for Spryker’s infrastructure: Tailored specifically for the Spryker ecosystem, our service seamlessly integrates with your existing infrastructure.
+- Optimized for Spryker's infrastructure: Tailored specifically for the Spryker ecosystem, our service seamlessly integrates with your existing infrastructure.
- Threat detection and analysis: Use cutting-edge technology and intelligence to promptly identify and assess cybersecurity risks. Our proactive approach ensures that potential threats are detected early, minimizing the risk to your business.
- Streamlined incident response: In the event of a security incident, our coordinated response mechanism allows for a swift reaction, mitigation, and remediation. This ensures that any impact is minimized and business continuity is maintained.
- Compliance and reporting: The service is aligned with industry regulations like SOC2 and ISO27001.
diff --git a/docs/about/all/releases/release-notes-202410.0.md b/docs/about/all/releases/release-notes-202410.0.md
index ea55601449a..d8fdf5372f1 100644
--- a/docs/about/all/releases/release-notes-202410.0.md
+++ b/docs/about/all/releases/release-notes-202410.0.md
@@ -90,7 +90,7 @@ AI-powered features implemented by connecting to third-party APIs:
The AI features leverage Open AI and are provided under the following conditions:
* ChatGPT Plus, Team, or Enterprise license from OpenAI is required.
-* Provided as an Early Access release. Early Access releases are subject to specific legal terms. They’re unsupported and don’t 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.
+* Provided as an Early Access release. Early Access releases are subject to specific legal terms. They're unsupported and don't 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.
* Available as an opt-in and are not automatically integrated into the core product with this release.
* Projects take full responsibility for using AI.
@@ -130,7 +130,7 @@ The Stripe ACP app now fully supports the marketplace business model with the fo
* Marketplace or admin onboarding: Admin is onboarded and configures the Stripe ACP app.
* Merchant onboarding and KYC: Each merchant is onboarded into the Marketplace and submits a KYC with Stripe.
* Customer payment collection: Collects funds from customers through various payment methods, like credit cards, digital wallets, or bank transfers.
-* Authorization and processing: Authorization from the customer’s bank or payment provider ensures that the funds are available and the transaction is legitimate.
+* Authorization and processing: Authorization from the customer's bank or payment provider ensures that the funds are available and the transaction is legitimate.
* Payment reconciliation: Confirmed payments and refunds are ingested through an API: payment and refund confirmations, pay-in reports, settlement funds. Funds are reconciled, including splits between 1P and 3P.
* Seamless merchant payout: When directed, funds are released to the merchant, leveraging the preconfigured billing cycle rules, order status, and commission rules. This is often in near real-time. The capability can also connect with the Spryker Commission Engine to apply commissions.
* Merchants withdraw funds: Merchants can transfer earnings into a local bank account in preferred currency.
@@ -172,13 +172,13 @@ Spryker GPTs powered by OpenAI LLMs help developers automate crucial areas of so
These GPTs leverage Open AI and are provided under the following conditions:
* ChatGPT Plus, Team, or Enterprise license from OpenAI is required.
-* Provided as an Early Access release . Early Access releases are subject to specific legal terms. They’re unsupported and don’t 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.
+* Provided as an Early Access release . Early Access releases are subject to specific legal terms. They're unsupported and don't 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.
* Available as an opt-in and are not automatically integrated into the core product with this release.
* Projects take full responsibility for using AI.
### Documentation
-These GPTs are self-documenting. Have a conversation with them to understand what they can do and how to use their features. Example prompt you could use: “List your features, and for each feature you list provide guidance on how you would use the feature in a generic way. Provide examples of how I would use each feature”.
+These GPTs are self-documenting. Have a conversation with them to understand what they can do and how to use their features. Example prompt you could use: "List your features, and for each feature you list provide guidance on how you would use the feature in a generic way. Provide examples of how I would use each feature".
@@ -394,7 +394,7 @@ The following components have been updated to ensure compatibility with the late
- PHP 8.3 is now supported; support for PHP 8.1 is discontinued.
- Jenkins has been upgraded to the latest LTS version. All new cloud environments are now deployed with this version by default. For local development, the new version of Jenkins requires Docker SDK version 1.61.0 or higher.
-- Improved Jenkins’ resource management by adding SWAP memory on the infrastructure level. This addresses memory-related issues causing job failures and instability.
+- Improved Jenkins' resource management by adding SWAP memory on the infrastructure level. This addresses memory-related issues causing job failures and instability.
- The Angular framework has been updated to version 17, providing faster performance and smaller asset sizes for the merchant portal.
- PHPStan has been upgraded to version 1.10, significantly improving code analysis speed.
diff --git a/docs/about/all/releases/security-release-notes-202306.0.md b/docs/about/all/releases/security-release-notes-202306.0.md
index 2c2d274d8fc..1b44988771b 100644
--- a/docs/about/all/releases/security-release-notes-202306.0.md
+++ b/docs/about/all/releases/security-release-notes-202306.0.md
@@ -478,7 +478,7 @@ composer show spryker/merchant-profile-gui # Verify the version
## Outdated third-party library guzzlehttp/psr7
-An outdated version of the `guzzlehttp/psr7` library was identified to affect Spryker’s applications. The version in use, 2.4.3, was affected by a publicly known vulnerability that could let an attacker sneak in a newline (\n) into both the header names and values (CVE-2023-29197).
+An outdated version of the `guzzlehttp/psr7` library was identified to affect Spryker's applications. The version in use, 2.4.3, was affected by a publicly known vulnerability that could let an attacker sneak in a newline (\n) into both the header names and values (CVE-2023-29197).
### Affected modules
@@ -525,7 +525,7 @@ composer show spryker/oauth-auth0 # Verify the version
## Missing security HTTP headers
-Security-related HTTP headers were missing from Spryker’s applications. Adding these headers improves the overall security posture of the applications because they implement an additional layer of protection against common web application attacks.
+Security-related HTTP headers were missing from Spryker's applications. Adding these headers improves the overall security posture of the applications because they implement an additional layer of protection against common web application attacks.
### Affected modules
diff --git a/docs/about/all/releases/security-release-notes-202312.0.md b/docs/about/all/releases/security-release-notes-202312.0.md
index fa80482e57e..557d2edb11c 100644
--- a/docs/about/all/releases/security-release-notes-202312.0.md
+++ b/docs/about/all/releases/security-release-notes-202312.0.md
@@ -142,7 +142,7 @@ Depending on your project setup, you might need to run updates of additional mod
{% endinfo_block %}
-Other modules that belong to the merchant context might require an update as well. But this is highly dependent on the actual project setup. Since we can’t predict every variation, be advised that there are likely to be additional dependencies requiring an update.
+Other modules that belong to the merchant context might require an update as well. But this is highly dependent on the actual project setup. Since we can't predict every variation, be advised that there are likely to be additional dependencies requiring an update.
4. Update `spryker/user-password-reset`.
diff --git a/docs/about/all/releases/security-release-notes-202409.0.md b/docs/about/all/releases/security-release-notes-202409.0.md
index 1441be20b28..cfca76499db 100644
--- a/docs/about/all/releases/security-release-notes-202409.0.md
+++ b/docs/about/all/releases/security-release-notes-202409.0.md
@@ -70,9 +70,9 @@ composer require spryker/kernel:"~3.68.1"
composer show spryker/kernel # Verify the version
```
-## “Remember Me” Functionality
+## Remember me Functionality
-The "remember me" functionality is considered to be against security best practices. This fix lets you disable this functionality.
+The remember me functionality is considered to be against security best practices. This fix lets you disable this functionality.
### Affected modules
diff --git a/docs/about/all/security-audit-reports/2019.11-security-audit-by-sektioneins.md b/docs/about/all/security-audit-reports/2019.11-security-audit-by-sektioneins.md
index e3198d19625..53e4d7c0b2b 100644
--- a/docs/about/all/security-audit-reports/2019.11-security-audit-by-sektioneins.md
+++ b/docs/about/all/security-audit-reports/2019.11-security-audit-by-sektioneins.md
@@ -12,7 +12,7 @@ related:
link: docs/scos/dev/sdk/development-tools/code-sniffer.html
---
-Between October 7th and November 22nd, 2019 SektionEins performed a source code audit and penetration test of the two variants of the Spryker Framework, called Spryker B2B and Spryker B2C.
+Between October 7 and November 22, 2019 SektionEins performed a source code audit and penetration test of the two variants of the Spryker Framework, called Spryker B2B and Spryker B2C.
[SektionEins](https://www.sektioneins.de/) conducted the audit.
diff --git a/docs/about/all/security-audit-reports/2020.11-penetration-test-by-port-zero-executive-summary.md b/docs/about/all/security-audit-reports/2020.11-penetration-test-by-port-zero-executive-summary.md
index 5c01700a1e0..cc6f7afd0d0 100644
--- a/docs/about/all/security-audit-reports/2020.11-penetration-test-by-port-zero-executive-summary.md
+++ b/docs/about/all/security-audit-reports/2020.11-penetration-test-by-port-zero-executive-summary.md
@@ -9,7 +9,7 @@ redirect_from:
- /docs/scos/user/intro-to-spryker/whats-new/security-audit-reports/2020.11-penetration-test-by-port-zero-executive-summary.html
---
-During October and November 2020 the “Spryker Commerce B2C” & “Spryker Commerce B2B” of Spryker Systems GmbH were tested for security vulnerabilities and risks. The penetration testers of Port Zero GmbH rated all security vulnerabilities and gave tips for improving and fixing the issues in the penetration test report.
+During October and November 2020 the "Spryker Commerce B2C" and "Spryker Commerce B2B" of Spryker Systems GmbH were tested for security vulnerabilities and risks. The penetration testers of Port Zero GmbH rated all security vulnerabilities and gave tips for improving and fixing the issues in the penetration test report.
The penetration test was conducted voluntarily and is based on the recognized industry standard of the "OWASP Testing Guide v4.1 (2020)" as well as on the "Implementation Concept for Penetration Tests" of the German Federal Office for Information Security.
Overall, the security of *Spryker Commerce B2C* and *Spryker Commerce B2B* gave a positive impression. The penetration test revealed some information leakages, including subdomain names, software in use, version numbers, and TCP timestamps (all available without login). However, regarding Transport Layer Security (TLS), a very high-security standard (see Appendix) is in place. The security of the central authentication mechanisms and session management is working well.
diff --git a/docs/about/all/support/gdpr-compliance-guidelines.md b/docs/about/all/support/gdpr-compliance-guidelines.md
index d4d19e44640..f42acfcca20 100644
--- a/docs/about/all/support/gdpr-compliance-guidelines.md
+++ b/docs/about/all/support/gdpr-compliance-guidelines.md
@@ -13,9 +13,9 @@ This document describes how to comply with GDPR rules when running applications
The General Data Protection Regulation (GDPR) is a set of rules related to the processing of personal data, see [Document 32016R0679](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=celex:32016R0679).
-Because Spryker doesn't have complete access to customer implementations and has no control over systems that are implemented and deployed, Spryker provides partial aid with regard to GDPR compliance. To support you in implementing applications in a GDPR compliant manner, we provide features like account deletion or consent withdrawal. Because we have no control of whether these features and any further compliance steps are implemented, the GDPR compliance of each application is the respective customer’s responsibility.
+Because Spryker doesn't have complete access to customer implementations and has no control over systems that are implemented and deployed, Spryker provides partial aid with regard to GDPR compliance. To support you in implementing applications in a GDPR compliant manner, we provide features like account deletion or consent withdrawal. Because we have no control of whether these features and any further compliance steps are implemented, the GDPR compliance of each application is the respective customer's responsibility.
-In terms of functionality, compliance is supported, for example, through a customer’s ability to delete or allow deletion of account information and allow subscription or unsubscription to newsletters. Shop owners can delete customer accounts through the Back Office. These actions don't affect billing and order-related information. Account deletion anonymizes customer information and address data but keeps the relevant transaction details.
+In terms of functionality, compliance is supported, for example, through a customer's ability to delete or allow deletion of account information and allow subscription or unsubscription to newsletters. Shop owners can delete customer accounts through the Back Office. These actions don't affect billing and order-related information. Account deletion anonymizes customer information and address data but keeps the relevant transaction details.
The following guidelines describe how to make your Spryker projects compliant in the context of Spryker functionality. The guidelines don't replace official legal consulting, which we advise taking for each company. If your project has third-party and own integrations with infrastructure, like database, log files, CRM, or mail providers, you need to oversee GDPR compliance of those connections too.
diff --git a/docs/about/all/support/general-product-safety-regulation.md b/docs/about/all/support/general-product-safety-regulation.md
index 9fcebfa1ecc..90479a67699 100644
--- a/docs/about/all/support/general-product-safety-regulation.md
+++ b/docs/about/all/support/general-product-safety-regulation.md
@@ -11,9 +11,9 @@ GPSR requires that all consumer products on the EU markets are safe and establis
For a full version of regulations, see [General Product Safety Regulation](https://eur-lex.europa.eu/eli/reg/2023/988/oj).
-## Spryker’s GPSR obligations
+## Spryker's GPSR obligations
-Spryker doesn't fall into a category of directly obliged parties but Spryker’s customers do. So Spryker’s obligations are limited to enabling its customers to meet the requirements under the regulation. Customers are fully responsible for ensuring compliance with the regulations. However, Spryker has features to help customer with achieving compliance.
+Spryker doesn't fall into a category of directly obliged parties but Spryker's customers do. So Spryker's obligations are limited to enabling its customers to meet the requirements under the regulation. Customers are fully responsible for ensuring compliance with the regulations. However, Spryker has features to help customer with achieving compliance.
For example, using the Product Attributes feature, you can record any required product-specific information, like manufacturer details, product identifiers, or postal and email addresses, including for a responsible person within EU. You can also apply this feature to the warning or safety instructions. If you need to add additional details to multiple Product Details pages, you can use CMS blocks.
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 cf7fdab4fa7..484576b06e2 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
@@ -71,7 +71,7 @@ Even though this is hard to achieve with a complex product like Spryker, we stri
| 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 |
-| Cloud | Am I using Spryker’s PaaS offering, or is the shop hosted elsewhere? | If you are using Spryker’s PaaS offering, this is an important piece of information to include in your case. Since you are hosted with us, we can coordinate closely with our DevOps during the investigation and might not have to ask as many questions regarding your setup as we might need to if you are hosted elsewhere. |
+| Cloud | Am I using Spryker's PaaS offering, or is the shop hosted elsewhere? | If you are using Spryker's PaaS offering, this is an important piece of information to include in your case. Since you are hosted with us, we can coordinate closely with our DevOps during the investigation and might not have to ask as many questions regarding your setup as we might need to if you are hosted elsewhere. |
| Type of issue | Is this an infrastructure issue, or is this a software issue? | If you are a Spryker PaaS customer, you are benefiting from strict SLA times, and we want to know immediately if you suspect that there is something wrong with our PaaS offering. Inform us if you suspect your issue to be hosting-related. If you suspect your problem is software-related, it might save us time and allow us to exclude infrastructure as a factor. |
If you include all of the above, your chances of getting a fast resolution of your problems without much back and forth are significantly higher because we can concentrate on what matters and have all the info readily available.
diff --git a/docs/about/all/support/preparing-for-heavy-loads-and-traffic.md b/docs/about/all/support/preparing-for-heavy-loads-and-traffic.md
index 62c064a4ef0..cf9abc91baf 100644
--- a/docs/about/all/support/preparing-for-heavy-loads-and-traffic.md
+++ b/docs/about/all/support/preparing-for-heavy-loads-and-traffic.md
@@ -9,7 +9,7 @@ redirect_from:
- /docs/scos/user/intro-to-spryker/support/special-prepare-for-a-busy-season.html
---
-This document helps you prepare for a traditionally very busy season of the year: Black Friday, Cyber Monday, and the Holiday Season but it helps you whenever you expect your shop to receive record-breaking traffic. In this document, you can find recommendations written for business decision-makers, hosting providers, and Spryker developers. So feel free to forward our recommendations to your colleagues!
+This document helps you prepare for a traditionally very busy season of the year: Black Friday, Cyber Monday, and the Holiday Season but it helps you whenever you expect your shop to receive record-breaking traffic. In this document, you can find recommendations written for business decision-makers, hosting providers, and Spryker developers. So feel free to forward our recommendations to your colleagues.
## Business tips
diff --git a/docs/about/all/support/share-secrets-with-the-spryker-support-team.md b/docs/about/all/support/share-secrets-with-the-spryker-support-team.md
index ec579426ca8..ed5e29bd8fe 100644
--- a/docs/about/all/support/share-secrets-with-the-spryker-support-team.md
+++ b/docs/about/all/support/share-secrets-with-the-spryker-support-team.md
@@ -27,7 +27,7 @@ If we share a onetimesecret link with you, use the password provided in the Link
{% info_block warningBox %}
-Don't include information on what the secret content is for—for example, if you insert a password, don't provide the username for it. Also, don’t include any information about where and how to use the secret.
+Don't include information on what the secret content is for—for example, if you insert a password, don't provide the username for it. Also, don't include any information about where and how to use the secret.
Create a new link for every individual secret you want to share.
diff --git a/docs/about/all/support/support-case-escalations.md b/docs/about/all/support/support-case-escalations.md
index 5c8bf375152..6f2ca482c1a 100644
--- a/docs/about/all/support/support-case-escalations.md
+++ b/docs/about/all/support/support-case-escalations.md
@@ -40,7 +40,7 @@ The escalation process is designed in a way to create visibility for the right a
`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.
-`CLOSED`. After an acceptable solution is found, the escalation (not the case!) is closed. This means that the urgency of the matter was successfully reduced, and the case can be handled within the normal support process again. Usually, the internal stakeholders involved are debriefed at this point.
+`CLOSED`. After an acceptable solution is found, the escalation (not the case) is closed. This means that the urgency of the matter was successfully reduced, and the case can be handled within the normal support process again. Usually, the internal stakeholders involved are debriefed at this point.
After a valid escalation is over, Post Mortem is held and the results are shared with the partner and customer. The point of this is to make it less likely that a similar situation that causes an escalation likely can occur in the future. If the escalation was caused by infrastructure problems in production systems, a technical Root Cause Analysis (RCA) will also be shared.
diff --git a/docs/about/all/support/understanding-slas.md b/docs/about/all/support/understanding-slas.md
index 2c10dce7c3c..21697ea7687 100644
--- a/docs/about/all/support/understanding-slas.md
+++ b/docs/about/all/support/understanding-slas.md
@@ -1,6 +1,6 @@
---
title: Understanding SLAs
-description: Explore Spryker’s SLAs to understand expected response times, responsibilities, and best practices for seamless support and timely issue resolution.
+description: Explore Spryker's SLAs to understand expected response times, responsibilities, and best practices for seamless support and timely issue resolution.
last_updated: Sep 6, 2021
template: concept-topic-template
originalLink: https://documentation.spryker.com/2021080/docs/understand-slas
@@ -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'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.
+Up-to-date code generally means more stability, better support, and compatibility for third-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
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 3e2933d6b9f..b5971d7c610 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'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.
+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 6ca79d82652..6280d99c515 100644
--- a/docs/ca/dev/best-practices/jenkins-operational-best-practices.md
+++ b/docs/ca/dev/best-practices/jenkins-operational-best-practices.md
@@ -8,7 +8,7 @@ redirect_from:
last_updated: March 11, 2024
---
-This document will help you implement Spryker’s best practices to enhance the stability and performance of the Jenkins component in your Spryker PaaS environment.
+This document will help you implement Spryker's best practices to enhance the stability and performance of the Jenkins component in your Spryker PaaS environment.
Before raising issues about Jenkins performance and stability with Spryker, make sure you have fully completed the following checklist. If you have concerns or questions about it, raise them with Spryker Support.
@@ -17,7 +17,7 @@ Before raising issues about Jenkins performance and stability with Spryker, make
- Implement batch processing in your importers and be mindful of maximum memory consumption. For the implementation details, see [Data import optimization guidelines](/docs/dg/dev/data-import/202311.0/data-import-optimization-guidelines.html) and [Integrate elastic computing](/docs/dg/dev/integrate-and-configure/integrate-elastic-computing.html).
- Fine-tune the chunk size of the queues you work with.
- Make sure that your theoretical maximum memory demand for all planned parallel processes remains below the memory allocation of your Jenkins instance.
-- Verify that every PHP job you run consumes less memory than your specified PHP memory limit. There shouldn't be the error “PHP Fatal error: Out of memory”.
+- Verify that every PHP job you run consumes less memory than your specified PHP memory limit. There shouldn't be the error "PHP Fatal error: Out of memory".
- Make sure that no jobs are configured with a non-default memory limit or without any memory limit at all in `jenkins.php`. For example,`php -d memory_limit=-1 vendor/bin/console ...`.
- Avoid spawning an excessive number of workers. There should be no more than two workers per queue.
- Profile your jobs locally to understand their normal memory demand, especially when interacting with data.
@@ -33,10 +33,10 @@ The following diagram showcases different memory constraints you should consider
![memory-constraints](https://spryker.s3.eu-central-1.amazonaws.com/docs/scos/dev/tutorials-and-howtos/howtos/jenkins-stability-checklist/memory_constraints.png)
-Keep in mind that each Jenkins executor can run one PHP job, which may potentially spawn multiple PHP threads or child processes. Each process can consume RAM up to `memory_limit` value.
+Keep in mind that each Jenkins executor can run one PHP job, which may potentially spawn multiple PHP threads or child processes. Each process can consume RAM up to `memory_limit` value.
The `vendor/bin/console queue:worker:start` CLI command, in particular, is often configured to have multiple workers or threads and is typically the most RAM-intensive job. Hence, we will use it as an example moving forward.
-It is crucial to ensure that the combined theoretical maximum memory consumption, estimated using the formula below, is below the total RAM supply of the Jenkins container. By default, the Jenkins container is configured to optimize the use of the total memory supply of its host. You can calculate the Jenkins container’s available RAM by deducting 750 MB from the Jenkins memory allocation of your infrastructure package listed in our Service Description.
+It is crucial to ensure that the combined theoretical maximum memory consumption, estimated using the formula below, is below the total RAM supply of the Jenkins container. By default, the Jenkins container is configured to optimize the use of the total memory supply of its host. You can calculate the Jenkins container's available RAM by deducting 750 MB from the Jenkins memory allocation of your infrastructure package listed in our Service Description.
{% info_block infoBox "Info" %}
@@ -62,7 +62,7 @@ Make sure the following criteria are met:
{% info_block infoBox "Info" %}
-If you are running multiple stores, you might notice that jobs “pile up” with only two executors configured. This happens because adding stores usually duplicates all jobs. While most jobs are executed quickly and Jenkins cycles through these jobs rapidly, the `queue:worker:start` jobs might take longer, potentially leading to delays in message propagation for some shops. To mitigate this behavior, you can process all queues by using a single executor slot, as described in [Optimizing Jenkins execution](https://docs.spryker.com/docs/dg/dev/backend-development/cronjobs/optimizing-jenkins-execution.html).
+If you are running multiple stores, you might notice that jobs "pile up" with only two executors configured. This happens because adding stores usually duplicates all jobs. While most jobs are executed quickly and Jenkins cycles through these jobs rapidly, the `queue:worker:start` jobs might take longer, potentially leading to delays in message propagation for some shops. To mitigate this behavior, you can process all queues by using a single executor slot, as described in [Optimizing Jenkins execution](https://docs.spryker.com/docs/dg/dev/backend-development/cronjobs/optimizing-jenkins-execution.html).
{% endinfo_block %}
@@ -127,4 +127,3 @@ Make sure the following criteria are met:
With all the preparation work listed in this document, you should already notice a significant improvement in Jenkins stability. To further enhance the resilience of your setup, we have gathered the following general recommendations for you.
When the Jenkins host crashes and requires re-provisioning, there is a risk of losing all manually created jobs. To mitigate this risk, we recommend persisting important jobs in code. This ensures that when `vendor/bin/console scheduler:setup` is executed during recovery, all your critical jobs are reinstalled.
-
diff --git a/docs/ca/dev/configure-data-import-from-an-s3-bucket.md b/docs/ca/dev/configure-data-import-from-an-s3-bucket.md
index 4343fbbf61c..16bbc52eff2 100644
--- a/docs/ca/dev/configure-data-import-from-an-s3-bucket.md
+++ b/docs/ca/dev/configure-data-import-from-an-s3-bucket.md
@@ -7,7 +7,7 @@ redirect_from:
- /docs/cloud/dev/spryker-cloud-commerce-os/configuring-data-import-from-an-s3-bucket.html
---
-Unlike a local environment, a cloud one cannot hold the data you want to import for any determined amount of time. That’s why you need to store the data in persistent storage, like an S3 bucket, and configure your Spryker environment to access and use the import data there.
+Unlike a local environment, a cloud one cannot hold the data you want to import for any determined amount of time. That's why you need to store the data in persistent storage, like an S3 bucket, and configure your Spryker environment to access and use the import data there.
By default, data import relies on `\Spryker\Zed\DataImport\Business\Model\DataReader\CsvReader\CsvReader`.It works only with the `data/import` folder in the local file system, based on `\SplFileObject`.
diff --git a/docs/ca/dev/configure-deployment-pipelines/configure-azure-pipelines.md b/docs/ca/dev/configure-deployment-pipelines/configure-azure-pipelines.md
index ed3b3e18a49..b5c9b9e9a89 100644
--- a/docs/ca/dev/configure-deployment-pipelines/configure-azure-pipelines.md
+++ b/docs/ca/dev/configure-deployment-pipelines/configure-azure-pipelines.md
@@ -104,10 +104,10 @@ To connect Azure Pipelines with your AWS repository:
| VARIABLE | DESCRIPTION |
| - | - |
| `$(AZURE_REPO_URL)` | URL of your Azure repository. |
-| `$(AWS_REPO_URL)` | URL of the AWS repository you’ve received from support. |
-| `$(AWS_GIT_USERNAME)` and `$(AWS_GIT_PASSWORD)` | credentials you’ve received from support. |
+| `$(AWS_REPO_URL)` | URL of the AWS repository you've received from support. |
+| `$(AWS_GIT_USERNAME)` and `$(AWS_GIT_PASSWORD)` | credentials you've received from support. |
| `$(System.AccessToken)` | Azure DevOps internal variable to access the current repo. You can also use other auth options. For more information, see [Pipeline options for Git repositories](https://learn.microsoft.com/en-us/azure/devops/pipelines/repos/pipeline-options-for-git). |
-You’ve configured Azure pipelines.
+You've configured Azure pipelines.
diff --git a/docs/ca/dev/configure-deployment-pipelines/configure-github-actions.md b/docs/ca/dev/configure-deployment-pipelines/configure-github-actions.md
index 9604a2b43b6..c0e8ea14372 100644
--- a/docs/ca/dev/configure-deployment-pipelines/configure-github-actions.md
+++ b/docs/ca/dev/configure-deployment-pipelines/configure-github-actions.md
@@ -379,8 +379,8 @@ To run Glue API tests on Debian with PostgreSQL and PHP 8.0, follow these steps:
{% info_block infoBox "Default configuration" %}
-* Since Alpine is the default platform and a specific version is not needed, don’t define it in the image tag in the deploy and workflow files.
-* MariaDB is the default database engine, so you don’t need to define it in the deploy file.
+* Since Alpine is the default platform and a specific version is not needed, don't define it in the image tag in the deploy and workflow files.
+* MariaDB is the default database engine, so you don't need to define it in the deploy file.
{% endinfo_block %}
@@ -782,8 +782,8 @@ To run Glue API tests on Debian with PostgreSQL and PHP 8.0, follow these steps:
{% info_block infoBox "Default configuration" %}
-* Since Alpine is the default platform and a specific version is not needed, don’t define it in the image tag in the deploy and workflow files.
-* MariaDB is the default database engine, so you don’t need to define it in the deploy file.
+* Since Alpine is the default platform and a specific version is not needed, don't define it in the image tag in the deploy and workflow files.
+* MariaDB is the default database engine, so you don't need to define it in the deploy file.
{% endinfo_block %}
@@ -1204,8 +1204,8 @@ To run Glue API tests on Debian with PostgreSQL and PHP 8.0:
{% info_block infoBox "Default configuration" %}
-* Since Alpine is the default platform and we don’t need a specific version, we don’t define it in the image tag in the deploy and workflow files.
-* MariaDB is the default database engine, so we don’t need to define it in the deploy file.
+* Since Alpine is the default platform and we don't need a specific version, we don't define it in the image tag in the deploy and workflow files.
+* MariaDB is the default database engine, so we don't need to define it in the deploy file.
{% endinfo_block %}
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 78c1a88970b..5b746b32825 100644
--- a/docs/ca/dev/configure-deployment-pipelines/customize-deployment-pipelines.md
+++ b/docs/ca/dev/configure-deployment-pipelines/customize-deployment-pipelines.md
@@ -54,7 +54,7 @@ To add multiple commands to the `pre-deploy` stage:
The file should have a `.yml` extension. For example, `pre-deploy.yml`.
-2. In `deploy.yml`, define `SPRYKER_HOOK_BEFORE_DEPLOY` with the command that executes the script you’ve created:
+2. In `deploy.yml`, define `SPRYKER_HOOK_BEFORE_DEPLOY` with the command that executes the script you've created:
```yaml
environment: ...
diff --git a/docs/ca/dev/configure-deployment-pipelines/deployment-pipelines.md b/docs/ca/dev/configure-deployment-pipelines/deployment-pipelines.md
index f32d2ea711b..cbe46d5c5b6 100644
--- a/docs/ca/dev/configure-deployment-pipelines/deployment-pipelines.md
+++ b/docs/ca/dev/configure-deployment-pipelines/deployment-pipelines.md
@@ -81,10 +81,10 @@ Any shell commands specified in environment variables as hooks are executed with
```yaml
...
environment:
- SPRYKER_HOOK_BEFORE_DEPLOY: “touch /some/file && echo OK || echo FAIL“
- SPRYKER_HOOK_AFTER_DEPLOY: “curl http://some.host.com:
/notify“
- SPRYKER_HOOK_INSTALL: “chmod +x ./some_custom_script.sh && ./some_custom_scipt.sh“
- SPRYKER_HOOK_DESTRUCTIVE_INSTALL: “vendor/bin/install -r destructive --no-ansi -vvv“
+ SPRYKER_HOOK_BEFORE_DEPLOY: "touch /some/file && echo OK || echo FAIL"
+ SPRYKER_HOOK_AFTER_DEPLOY: "curl http://some.host.com:/notify"
+ SPRYKER_HOOK_INSTALL: "chmod +x ./some_custom_script.sh && ./some_custom_scipt.sh"
+ SPRYKER_HOOK_DESTRUCTIVE_INSTALL: "vendor/bin/install -r destructive --no-ansi -vvv"
...
```
diff --git a/docs/ca/dev/connect-a-code-repository.md b/docs/ca/dev/connect-a-code-repository.md
index 3e5399b9f00..2ed370a50e5 100644
--- a/docs/ca/dev/connect-a-code-repository.md
+++ b/docs/ca/dev/connect-a-code-repository.md
@@ -131,7 +131,7 @@ We connect the repository shortly after you provide the details.
## Connect a GitLab code repository
-Currently, [CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) doesn’t have a native integration of GitLab. To make it work, you can configure a [CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) repository as a mirror of a GitLab repository.
+Currently, [CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) doesn't have a native integration of GitLab. To make it work, you can configure a [CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) repository as a mirror of a GitLab repository.
{% info_block warningBox "Pushing changes" %}
diff --git a/docs/ca/dev/deploy-in-a-production-environment.md b/docs/ca/dev/deploy-in-a-production-environment.md
index b623e60128b..b6a572faf60 100644
--- a/docs/ca/dev/deploy-in-a-production-environment.md
+++ b/docs/ca/dev/deploy-in-a-production-environment.md
@@ -95,7 +95,7 @@ To deploy a specific application version, copy the version of the respective Git
![release change](https://spryker.s3.eu-central-1.amazonaws.com/cloud-docs/Spryker+Cloud/Deploying+in+a+production+environment/release-change.png)
-If the deployment is successful, the **/spryker-prod/last_deployed_version** parameter in the Parameter Store is updated with the application version you’ve deployed.
+If the deployment is successful, the **/spryker-prod/last_deployed_version** parameter in the Parameter Store is updated with the application version you've deployed.
## Check the deployed application version
diff --git a/docs/ca/dev/deploy-in-a-staging-environment.md b/docs/ca/dev/deploy-in-a-staging-environment.md
index 3eb87d69725..8e6f384ccf9 100644
--- a/docs/ca/dev/deploy-in-a-staging-environment.md
+++ b/docs/ca/dev/deploy-in-a-staging-environment.md
@@ -75,7 +75,7 @@ Enter *latest* if you want to deploy the last built application version. You can
{% info_block infoBox "Deploy types" %}
-Normal deploy is a pipeline that includes all the stages of a complete CI/CD flow. The Install stage of this pipeline does not perform any dangerous data manipulations like database cleanup or scheduler reset. If you want to reset demo data during deployment, select *DESTRUCTIVE_Deploy_Spryker_spryker-staging*.
+Normal deploy is a pipeline that includes all the stages of a complete CI/CD flow. The Install stage of this pipeline does not perform any dangerous data manipulations like database cleanup or scheduler reset. If you want to reset demo data during deployment, select *DESTRUCTIVE_Deploy_Spryker_spryker-staging*.
{% endinfo_block %}
@@ -109,7 +109,7 @@ Normal deploy is a pipeline that includes all the stages of a complete CI/CD flo
![release change](https://spryker.s3.eu-central-1.amazonaws.com/cloud-docs/Spryker+Cloud/Deploying+in+a+staging+environment/release-change-staging.png)
-If the deployment is successful, the */spryker-staging/lastdeployedversion* parameter in the [Parameter Store](https://eu-central-1.console.aws.amazon.com/systems-manager/parameters) is updated with the application version you’ve deployed.
+If the deployment is successful, the */spryker-staging/lastdeployedversion* parameter in the [Parameter Store](https://eu-central-1.console.aws.amazon.com/systems-manager/parameters) is updated with the application version you've deployed.
## Check the deployed application version
diff --git a/docs/ca/dev/environment-provisioning.md b/docs/ca/dev/environment-provisioning.md
index c58dbb78d6a..c027f4c7b9b 100644
--- a/docs/ca/dev/environment-provisioning.md
+++ b/docs/ca/dev/environment-provisioning.md
@@ -138,7 +138,7 @@ The following configuration parameters are optional:
{% info_block infoBox "Site to Site VPN" %}
-If you need Site to Site VPN, provide your internal subnet CIDR, so our Spryker VPC doesn’t overlap with it. It is crucial to evaluate this option during provisioning, as Spryker can’t change it later once the environment is provisioned. If overlapping is identified, the environment will need to be recreated.
+If you need Site to Site VPN, provide your internal subnet CIDR, so our Spryker VPC doesn't overlap with it. It is crucial to evaluate this option during provisioning, as Spryker can't change it later once the environment is provisioned. If overlapping is identified, the environment will need to be recreated.
{% endinfo_block %}
diff --git a/docs/ca/dev/environment-scaling.md b/docs/ca/dev/environment-scaling.md
index 31f03b6109c..a3be1e6bdcd 100644
--- a/docs/ca/dev/environment-scaling.md
+++ b/docs/ca/dev/environment-scaling.md
@@ -19,11 +19,11 @@ EC2 hosts are used to deploy Docker containers. One host generally has multiple
## Vertical scaling
-In vertical scaling, we are making something “bigger”. In the checkout analogy, we are “deploying” a more experienced sales clerk who has a higher “throughput” and can process more clients. In our cloud infrastructure, components that currently don't support horizontal auto-scaling are scaled vertically based on alert conditions. This applies to services such as Redis, OpenSearch, RabbitMQ, Jenkins, and RDS. Vertical scaling is also used in "task definitions". This is a configuration that determines how much CPU and RAM is available to Docker containers for services. As described in the following sections, services such as Yves are also horizontally auto-scaled by deploying more Yves containers. The containers themselves can be vertically scaled by configuring the CPU and RAM they are allowed to reserve on the host.
+In vertical scaling, we are making something "bigger". In the checkout analogy, we are "deploying" a more experienced sales clerk who has a higher "throughput" and can process more clients. In our cloud infrastructure, components that currently don't support horizontal auto-scaling are scaled vertically based on alert conditions. This applies to services such as Redis, OpenSearch, RabbitMQ, Jenkins, and RDS. Vertical scaling is also used in "task definitions". This is a configuration that determines how much CPU and RAM is available to Docker containers for services. As described in the following sections, services such as Yves are also horizontally auto-scaled by deploying more Yves containers. The containers themselves can be vertically scaled by configuring the CPU and RAM they are allowed to reserve on the host.
## Horizontal scaling
-In horizontal scaling, we are “adding more of the same” to a resource to balance out load across multiple processors. In the checkout analogy, horizontal scaling means opening another checkout line. We “deploy” another clerk so they can open up another checkout line, and the waiting customers can spread out over the two lines.
+In horizontal scaling, we are "adding more of the same" to a resource to balance out load across multiple processors. In the checkout analogy, horizontal scaling means opening another checkout line. We "deploy" another clerk so they can open up another checkout line, and the waiting customers can spread out over the two lines.
The cloud infrastructure is set up in a way that provides horizontal autoscaling based on AWS native ECS Service Auto Scaling. Horizontal autoscaling is currently configured for Spryker services, such as Yves, Glue, Backoffice, BackGW, and BackAPI, and enables these services to horizontally scale based on load. This is guard-railed by a setting that determines the minimum, desired, and maximum numbers of members of a service scaling group. A load balancer in front of each service is responsible for distributing the load across these services.
@@ -63,9 +63,9 @@ The upper limit for both host and container counts protects us from excessive co
To dial in appropriate max levels, a load test prior to going live is mission critical. In this load test, you help to establish expected (normal) load as well as peak load for your environment. After that, a buffer is applied, and the max numbers for containers and hosts will be set. If an application is continuously under heavy load, it indicates that the configured maximum is not enough. Our monitoring team is alerted about such events and can increase the limits on the fly.
-Load testing is also crucial because horizontal scaling doesn't happen in real-time and sets in with a delay. It can take some minutes for new containers to be deployed, especially if that means a new EC2 host needs to be deployed onto which new containers can be placed. So, scaling events are only a tool to catch variances in load in a delayed manner. By load testing your application, the task definitions of your services can be adjusted so that services that are bottlenecking your applications are assigned more resource budget from the get-go. This will result in fewer autoscaling events as the bottleneck can deal with more traffic before scaling needs to happen. Variances in your load will therefore lead to less “corrective action”, which makes for a more consistent and smoother experience during peak load.
+Load testing is also crucial because horizontal scaling doesn't happen in real-time and sets in with a delay. It can take some minutes for new containers to be deployed, especially if that means a new EC2 host needs to be deployed onto which new containers can be placed. So, scaling events are only a tool to catch variances in load in a delayed manner. By load testing your application, the task definitions of your services can be adjusted so that services that are bottlenecking your applications are assigned more resource budget from the get-go. This will result in fewer autoscaling events as the bottleneck can deal with more traffic before scaling needs to happen. Variances in your load will therefore lead to less "corrective action", which makes for a more consistent and smoother experience during peak load.
-Generally, “spiky” load profiles should be avoided where possible. Marketing activities, such as mass emails with direct links to offers, often lead to immense load spikes. Mostly not because many users might click the link at the same time, but because many email providers open links contained in email messages to do security checks on them. Depending on the scale of your campaign, this can lead to serious spikes in your application. Staggering campaigns, even if you are only reducing the number of emails sent per second, can already help even out the load and let the application to scale out.
+Generally, "spiky" load profiles should be avoided where possible. Marketing activities, such as mass emails with direct links to offers, often lead to immense load spikes. Mostly not because many users might click the link at the same time, but because many email providers open links contained in email messages to do security checks on them. Depending on the scale of your campaign, this can lead to serious spikes in your application. Staggering campaigns, even if you are only reducing the number of emails sent per second, can already help even out the load and let the application to scale out.
## Conclusion
diff --git a/docs/ca/dev/getting-started-with-cloud-administration.md b/docs/ca/dev/getting-started-with-cloud-administration.md
index 03c4e7fce19..14506926578 100644
--- a/docs/ca/dev/getting-started-with-cloud-administration.md
+++ b/docs/ca/dev/getting-started-with-cloud-administration.md
@@ -20,7 +20,7 @@ redirect_from:
This document is a starting point for managing your Spryker Cloud Commerce OS (SCCOS) cloud environments.
-SCCOS is a fully-managed solution. Before you start developing, we set up environments, tools, and services based on your Onboarding Questionnaire. If you didn't request something in the questionnaire, you can always do it via [support](https://spryker.force.com/support/s/).
+SCCOS is a fully managed solution. Before you start developing, we set up environments, tools, and services based on your Onboarding Questionnaire. If you didn't request something in the questionnaire, you can always do it via [support](https://spryker.force.com/support/s/).
After the initial setup, the following is configured and available:
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 339494a7443..54ad1d0e1c3 100644
--- a/docs/ca/dev/monitoring-issues-and-informing-about-alerts.md
+++ b/docs/ca/dev/monitoring-issues-and-informing-about-alerts.md
@@ -43,7 +43,7 @@ The following alerts are configured by default for all environments.
|NAME OF METRIC | DESCRIPTION |
|---|---|
-| ElastiCache Status | Checks the status of ‘ElastiCache for Redis’. |
+| ElastiCache Status | Checks the status of 'ElastiCache for Redis'. |
| Redis is not used by any service | Checks whether ElastiCache is used. |
| Redis available Memory | Checks if Redis free memory on the host is running low. |
| Redis High CPU | Checks if the Redis service is high on CPU usage. |
diff --git a/docs/ca/dev/multi-store-setups/checklist-for-a-new-store-implementation.md b/docs/ca/dev/multi-store-setups/checklist-for-a-new-store-implementation.md
index d81666e4200..84ddb00fa6c 100644
--- a/docs/ca/dev/multi-store-setups/checklist-for-a-new-store-implementation.md
+++ b/docs/ca/dev/multi-store-setups/checklist-for-a-new-store-implementation.md
@@ -1,6 +1,6 @@
---
title: Checklist for a new store implementation
-description: Follow a checklist for implementing a new store in Spryker’s multi-store setup, including environment setup, DNS configuration, and integration tasks.
+description: Follow a checklist for implementing a new store in Spryker's multi-store setup, including environment setup, DNS configuration, and integration tasks.
template: concept-topic-template
last_updated: Oct 6, 2023
redirect_from:
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 ae7a2813bad..0297c5d559f 100644
--- a/docs/ca/dev/multi-store-setups/multistore-setup-options.md
+++ b/docs/ca/dev/multi-store-setups/multistore-setup-options.md
@@ -130,7 +130,7 @@ You can have a cluster sharing the same database or use different database setup
- Use of a theme for a different visual look and feel.
- Centralized third-party integrations.
-This setup is recommended when you don’t have shared data.
+This setup is recommended when you don't have shared data.
The following table provides details on the infrastructure for this setup:
@@ -248,7 +248,7 @@ If you anticipate a high load, it's essential to consult and obtain guidance fro
| | Setup 1 | Setup 2 | Setup 3 |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ACCESSIBILITY | - Data is separated only on the application level.
- Complexity in data separation in the Back Office.
| Full data separation | Full data separation |
-| MAINTAINABILITY | - Not all features fully support Multi-Store in one database. Some features have to be customized as multi-country
- New codebase is rolled out to all countries at once.
| - Import of each country’s data into its own database only, so there is no shared catalog data.
- New codebase is rolled out to all countries at once.
| - Data import has to be executed on all environments.
- It is impossible to roll out the codebase to all regions at the same time.
|
+| MAINTAINABILITY | - Not all features fully support Multi-Store in one database. Some features have to be customized as multi-country
- New codebase is rolled out to all countries at once.
| - Import of each country's data into its own database only, so there is no shared catalog data.
- New codebase is rolled out to all countries at once.
| - Data import has to be executed on all environments.
- It is impossible to roll out the codebase to all regions at the same time.
|
| PERFORMANCE | Infrastructure is subject to more frequent scaling up in case of higher loads. | Infrastructure is subject to more frequent scaling up in case of higher loads. | Isolated AWS accounts. |
## Next steps
diff --git a/docs/ca/dev/performance-testing-in-staging-enivronments.md b/docs/ca/dev/performance-testing-in-staging-enivronments.md
index e8ec8fa6aa2..cb48b82f7cb 100644
--- a/docs/ca/dev/performance-testing-in-staging-enivronments.md
+++ b/docs/ca/dev/performance-testing-in-staging-enivronments.md
@@ -37,7 +37,7 @@ Gatling is capable of creating an immense amount of traffic from a single node,
### 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.
+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.
For instructions on setting up a developer environment using one of the available Spryker shops, you can visit our [getting started guide](/docs/dg/dev/development-getting-started-guide.html) which shows you how to set up the Spryker Commerce OS.
@@ -69,7 +69,7 @@ It should be noted that the Spryker Suite already has these changes implemented
{% endinfo_block %}
-1. Requires the *composer* package. This step is necessary if you are looking to implement the Gatling load testing tool into your project. This line will add the new package to your `composer.json` file. The `--dev` flag will install the requirements needed for development which have a version constraint (e.g. "spryker-sdk/load-testing": "^0.1.0").
+1. Requires the *composer* package. This step is necessary if you are looking to implement the Gatling load testing tool into your project. This line will add the new package to your `composer.json` file. The `--dev` flag will install the requirements needed for development which have a version constraint–for example, "spryker-sdk/load-testing": "^0.1.0").
```bash
composer require spryker-sdk/load-testing --dev
@@ -173,7 +173,7 @@ The Gatling test tool uses pre-seeded data which is used locally for both testin
- You may have data you wish to test with directly which the sample dummy data may not cover.
- Cloud-hosted applications are not able to be run in test mode.
- Cloud-hosted applications are not set up to run `codeception`.
-- Jenkins jobs in a cloud-hosted application are set up to run differently than those found on a locally-hosted environment.
+- Jenkins jobs in a cloud-hosted application are set up to run differently than those found on a locally hosted environment.
- Some cloud-hosted applications may require `BASIC AUTH` authentication or require being connected to a VPN to access.
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.
@@ -313,20 +313,20 @@ Once these fixtures have been generated, attempting to rerun them in the future
{% endinfo_block %}
-You can change the store for which you wish to generate fixtures for (i.e., `AT` or `US`). This command allows Codeception to locate the proper configuration file with the `-c` flag for the load testing tool. Once the fixtures have been generated, the data needs to be republished. We can have Jenkins do that with the same job by adding an additional build step with `Add build step`.
+You can change the store for which you wish to generate fixtures for, that is `AT` or `US`. This command allows Codeception to locate the proper configuration file with the `-c` flag for the load testing tool. Once the fixtures have been generated, the data needs to be republished. We can have Jenkins do that with the same job by adding an additional build step with `Add build step`.
```bash
APPLICATION_STORE="DE" COMMAND="$PHP_BIN vendor/bin/console publish:trigger-events" bash /usr/bin/spryker.sh
```
-From here, you can either add another build step to toggle the queue worker to run, or you can run the queue worker job already available within Jenkins, i.e. `DE__queue-worker-start`.
+From here, you can either add another build step to toggle the queue worker to run, or you can run the queue worker job already available within Jenkins, that is `DE__queue-worker-start`.
```bash
APPLICATION_STORE="DE" COMMAND="$PHP_BIN vendor/bin/console queue:worker:start -s " bash /usr/bin/spryker.sh
```
![workers](https://spryker.s3.eu-central-1.amazonaws.com/docs/ca/dev/performance-testing-in-staging-enivronments.md/workers.png)
-4. Once the build steps have been added, you can `Save` to be taken to the project status page for the newly-created job. As this is a job that you only need to run once and no schedule was set, you can select the `Build Now` option.
+4. Once the build steps have been added, you can `Save` to be taken to the project status page for the newly created job. As this is a job that you only need to run once and no schedule was set, you can select the `Build Now` option.
![build-now](https://spryker.s3.eu-central-1.amazonaws.com/docs/ca/dev/performance-testing-in-staging-enivronments.md/build-now.png)
5. With the job set to build and run, it will build a new workspace for the tasks and run each build step that you specified. Once the build has successfully completed, you can review the `Console Output` and then remove the project with `Delete Project` once you are finished, if you no longer need it.
@@ -571,9 +571,9 @@ This table shows some standard statistics such as min, max, average, standard de
This chart displays the active users during the simulation: total and per scenario.
-“Active users” is neither “concurrent users” or “users arrival rate”. It’s a kind of mixed metric that serves for both open and closed workload models, and that represents “users who were active on the system under load at a given second”.
+"Active users" is neither "concurrent users" or "users arrival rate". It's a kind of mixed metric that serves for both open and closed workload models, and that represents "users who were active on the system under load at a given second".
-It’s computed as:
+It's computed as:
```
(number of alive users at previous second)
+ (number of users that were started during this second)
diff --git a/docs/ca/dev/security/check-ecr-image-scan-results.md b/docs/ca/dev/security/check-ecr-image-scan-results.md
index 581e9c7ab21..6a6b159f3c7 100644
--- a/docs/ca/dev/security/check-ecr-image-scan-results.md
+++ b/docs/ca/dev/security/check-ecr-image-scan-results.md
@@ -13,7 +13,7 @@ redirect_from:
This document describes how to check ECR image scan results.
-After a new code is pushed to a repository, ECR scans images for known vulnerabilities. You can check scan results and resolve detected issues to protect your applications. See [Image scanning](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html) to learn more about ECR image scans.
+After a new code is pushed to a repository, ECR scans images for known vulnerabilities. You can check scan results and resolve detected issues to protect your applications. See [Image scanning](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html) to learn more about ECR image scans.
To check image scan results:
@@ -23,4 +23,4 @@ To check image scan results:
4. On the *Repositories* page, select the repository that contains the image whose scan you want to check.
5. In the *Vulnerabilities* column of the *Images* page, select **Details** next to the image whose scan you want to check.
-You’ve located ECR image scan results.
+You've located ECR image scan results.
diff --git a/docs/ca/dev/security/penetration-testing.md b/docs/ca/dev/security/penetration-testing.md
index 15f1a34e68e..65312640c59 100644
--- a/docs/ca/dev/security/penetration-testing.md
+++ b/docs/ca/dev/security/penetration-testing.md
@@ -13,6 +13,6 @@ Penetration tests are an integral part of improving the security of your applica
## Preparation for a penetration test
-Let us know about your plans to run a penetration test by reaching out to secops@spryker.com and by completing the [Penetration Test Request Form](https://docs.google.com/forms/d/e/1FAIpQLSfunn1HY-nsqueP6sRQSLmScUWlmmQyQJk9cscIVIP_5BmuOw/viewform). Make sure to provide at least a seven working days’ notice. Take into account the [AWS Penetration Testing Policy](https://aws.amazon.com/security/penetration-testing/), which outlines prohibited activities.
+Let us know about your plans to run a penetration test by reaching out to secops@spryker.com and by completing the [Penetration Test Request Form](https://docs.google.com/forms/d/e/1FAIpQLSfunn1HY-nsqueP6sRQSLmScUWlmmQyQJk9cscIVIP_5BmuOw/viewform). Make sure to provide at least a seven working days' notice. Take into account the [AWS Penetration Testing Policy](https://aws.amazon.com/security/penetration-testing/), which outlines prohibited activities.
A penetration test may get blocked by Web Application Firewalls (WAF) or other security mechanisms. Consider whitelisting the IPs used in a test. You can request WAF whitelisting by creating an Infrastructure Change Request on the [Support Portal](https://support.spryker.com).
diff --git a/docs/ca/dev/security/set-up-multi-factor-authentication.md b/docs/ca/dev/security/set-up-multi-factor-authentication.md
index d538765f2c7..9318d1024fc 100644
--- a/docs/ca/dev/security/set-up-multi-factor-authentication.md
+++ b/docs/ca/dev/security/set-up-multi-factor-authentication.md
@@ -38,4 +38,4 @@ This opens the **IAM Dashboard** page.
8. Click **Next** and follow the wizard to set up the device.
-Once MFA is activated, you’ll need to provide this factor every time you log into AWS.
+Once MFA is activated, you'll need to provide this factor every time you log into AWS.
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 53d2a42ea48..14862f60d3f 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
@@ -25,7 +25,7 @@ To point a domain to your application, point it to the respective load balancer
3. In the *Load balancer:{load balancer name}* section, select **Copy** ![copy icon](https://spryker.s3.eu-central-1.amazonaws.com/cloud-docs/Spryker+Cloud/Setting+up+a+custom+domain+name/Setting+up+a+custom+domain+name+with+a+third-party+DNS+zone+provider/copy-icon.png) next to the DNS name field.
-4. On the side of the DNS zone provider, set up a CNAME record using the copied *DNS name* as the record value. Refer to the DNS zone provider’s documentation for details.
+4. On the side of the DNS zone provider, set up a CNAME record using the copied *DNS name* as the record value. Refer to the DNS zone provider's documentation for details.
## 2. Define domain names
diff --git a/docs/ca/dev/set-up-dns.md b/docs/ca/dev/set-up-dns.md
index fa4edd70ce5..fc782cc0d2c 100644
--- a/docs/ca/dev/set-up-dns.md
+++ b/docs/ca/dev/set-up-dns.md
@@ -22,6 +22,6 @@ To use a root domain for your application (for example, spryker.com), use an IP
{% info_block infoBox "Info" %}
-We do not normally support full delegation of your DNS to us and, therefore, do not suggest that you change your domain’s NS records to ours.
+We do not normally support full delegation of your DNS to us and, therefore, do not suggest that you change your domain's NS records to ours.
{% endinfo_block %}
\ No newline at end of file
diff --git a/docs/ca/dev/set-up-notifications-for-5xx-errors.md b/docs/ca/dev/set-up-notifications-for-5xx-errors.md
index a4790e5016b..eb30106388d 100644
--- a/docs/ca/dev/set-up-notifications-for-5xx-errors.md
+++ b/docs/ca/dev/set-up-notifications-for-5xx-errors.md
@@ -34,9 +34,9 @@ To set up the notifications, do the following:
{% info_block warningBox "Verification" %}
-Return to the subscription’s page in the AWS Management Console. Refresh the page and check that the subscription’s status is *Confirmed*.
+Return to the subscription's page in the AWS Management Console. Refresh the page and check that the subscription's status is *Confirmed*.
{% endinfo_block %}
-You’ve set up the notifications and will receive emails about 5xx errors to the specified email address.
+You've set up the notifications and will receive emails about 5xx errors to the specified email address.
diff --git a/docs/ca/devscu/how-spryker-code-upgrader-works.md b/docs/ca/devscu/how-spryker-code-upgrader-works.md
index 92031e07804..0d966706d1e 100644
--- a/docs/ca/devscu/how-spryker-code-upgrader-works.md
+++ b/docs/ca/devscu/how-spryker-code-upgrader-works.md
@@ -30,7 +30,7 @@ Firstly, it applies the security releases: the releases with security updates. F
After updating the modules, the Upgrader returns the list of updated modules and proceeds to the next step.
-If the Upgrader can’t update a module, it skips the module and the remaining groups. If all the groups fail to update, the Upgrader returns the errors causing this and stops. With at least one group updated, it returns the list of updated modules and proceeds to the next step.
+If the Upgrader can't update a module, it skips the module and the remaining groups. If all the groups fail to update, the Upgrader returns the errors causing this and stops. With at least one group updated, it returns the list of updated modules and proceeds to the next step.
By default, the Upgrader updates only minor and patch versions. When the Upgrader finds a group with a [major release](/docs/dg/dev/architecture/module-api/semantic-versioning-major-vs.-minor-vs.-patch-release.html#what-is-a-major-release), it doesn't update it and informs you about that:
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 6e2126403d8..7c571f3bb77 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
@@ -28,7 +28,7 @@ To check if your module versions are supported by the Upgrader, [run the evaluat
## Implement E2E testing in development workflow
-Upgrades are provided as PRs that are automatically created in a project’s repository. To make sure all functionality works as expected, you will need to review and test the PRs before merging.
+Upgrades are provided as PRs that are automatically created in a project's repository. To make sure all functionality works as expected, you will need to review and test the PRs before merging.
## Migrate to a supported version control system
diff --git a/docs/dg/dev/acp/acp-security-assessment.md b/docs/dg/dev/acp/acp-security-assessment.md
index 1c27c6a9fb2..bb7d668b33c 100644
--- a/docs/dg/dev/acp/acp-security-assessment.md
+++ b/docs/dg/dev/acp/acp-security-assessment.md
@@ -7,9 +7,9 @@ redirect_from:
- /docs/acp/user/intro-to-acp/aop-security-assessment.html
---
-This document outlines the threat modeling and security assessment requirements and process for apps listed on the Spryker’s app catalog or the app store. It covers the following app types:
+This document outlines the threat modeling and security assessment requirements and process for apps listed on the Spryker's app catalog or the app store. It covers the following app types:
-- Pure API integrations (with 3rd party services and vendors)
+- Pure API integrations (with third-party services and vendors)
- Apps extending the Spryker Cloud Commerce Operating System (SCCOS)
- Hybrid apps
@@ -109,7 +109,7 @@ External integrations will undergo an endpoint assessment in accordance with OWA
Spryker (or an authorized third party) will test code that runs on ACP/SCCOS or code that a partner makes available to us for review. This testing will consist of Static Code Analysis with a SAST tool, as well as a manual review of the code for critical parts of the application. Partners will provide documentation to indicate the critical features of the app.
-Vulnerabilities will be sent back to the partner to fix. The partner will be expected to conduct a full review on their side before resubmitting for another round of testing. The review fee includes **three** cycles of testing. If the app requires more cycles of testing because the issues weren’t fixed, every subsequent test cycle will attract a cost.
+Vulnerabilities will be sent back to the partner to fix. The partner will be expected to conduct a full review on their side before resubmitting for another round of testing. The review fee includes **three** cycles of testing. If the app requires more cycles of testing because the issues weren't fixed, every subsequent test cycle will attract a cost.
Every app will undergo an annual full test cycle. The partner can continue enhancing the app and use static code checkers to test every release on their side.
@@ -126,7 +126,7 @@ Spryker expects that the following actions are taken by partners and app develop
{% info_block warningBox "Warning" %}
-The app developers should not consider Spryker as an outsourced security QA team. Rather, Spryker’s assessment process is a validation of the measures they have taken to ensure a secure app. They should always aim to clear the review in the first attempt.
+The app developers should not consider Spryker as an outsourced security QA team. Rather, Spryker's assessment process is a validation of the measures they have taken to ensure a secure app. They should always aim to clear the review in the first attempt.
{% endinfo_block %}
@@ -160,7 +160,7 @@ The diagram below demonstrates the security assessment procedure:
- 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'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.
+ - 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.
- Spryker can also decide to terminate the partner contract in such a scenario.
diff --git a/docs/dg/dev/architecture/architectural-convention.md b/docs/dg/dev/architecture/architectural-convention.md
index 09c0d8673ff..4df7526f97b 100644
--- a/docs/dg/dev/architecture/architectural-convention.md
+++ b/docs/dg/dev/architecture/architectural-convention.md
@@ -422,7 +422,7 @@ An application layer can have up to four logical layers with clear purpose and c
### Conventions
-- Components must be placed according to the corresponding [application layer’s](#application-layers) directory architecture to take effect.
+- Components must be placed according to the corresponding [application layer's](#application-layers) directory architecture to take effect.
- Components are required to inherit from the [application layer](#application-layers) corresponding abstract class in the `Kernel` module to take effect.
@@ -1936,7 +1936,7 @@ The following components are used in `core module development` to ensure modular
For `project development` and `module development`, these components are recommended. Consider implementing these components based on their relevance to your business or technical requirements.
### Conventions
-- Components must be placed according to the corresponding [application layer’s](#application-layers) directory architecture to take effect.
+- Components must be placed according to the corresponding [application layer's](#application-layers) directory architecture to take effect.
- The components must inherit from the [application layer's](#application-layers) corresponding abstract class in `Kernel` module to take effect.
For *core module development*
diff --git a/docs/dg/dev/architecture/architecture.md b/docs/dg/dev/architecture/architecture.md
index 98a0f74e28d..50c3f69756d 100644
--- a/docs/dg/dev/architecture/architecture.md
+++ b/docs/dg/dev/architecture/architecture.md
@@ -1,6 +1,6 @@
---
title: Architecture
-description: Explore Spryker’s architectural principles, detailing the technical foundation for a scalable, modular ecommerce platform tailored to complex digital ecosystems.
+description: Explore Spryker's architectural principles, detailing the technical foundation for a scalable, modular ecommerce platform tailored to complex digital ecosystems.
last_updated: Jun 16, 2021
template: concept-topic-template
originalLink: https://documentation.spryker.com/2021080/docs/about-the-architecture-guide
diff --git a/docs/dg/dev/architecture/marketplace-architecture/marketplace-architecture.md b/docs/dg/dev/architecture/marketplace-architecture/marketplace-architecture.md
index 0bbfd274810..822fd16e954 100644
--- a/docs/dg/dev/architecture/marketplace-architecture/marketplace-architecture.md
+++ b/docs/dg/dev/architecture/marketplace-architecture/marketplace-architecture.md
@@ -1,6 +1,6 @@
---
title: Marketplace architecture
-description: Learn how Spryker’s marketplace architecture supports scalable, customizable eCommerce solutions for B2B and B2C environments.
+description: Learn how Spryker's marketplace architecture supports scalable, customizable eCommerce solutions for B2B and B2C environments.
last_updated: Jan 12, 2023
template: concept-topic-template
redirect_from:
diff --git a/docs/dg/dev/architecture/marketplace-architecture/marketplace-domain-model.md b/docs/dg/dev/architecture/marketplace-architecture/marketplace-domain-model.md
index 3d137891bad..0a5e92cb12e 100644
--- a/docs/dg/dev/architecture/marketplace-architecture/marketplace-domain-model.md
+++ b/docs/dg/dev/architecture/marketplace-architecture/marketplace-domain-model.md
@@ -1,6 +1,6 @@
---
title: Marketplace domain model
-description: Understand Spryker’s marketplace domain model, enabling effective structuring of marketplace operations, from vendor management to product catalog integration and order flow.
+description: Understand Spryker's marketplace domain model, enabling effective structuring of marketplace operations, from vendor management to product catalog integration and order flow.
template: concept-topic-template
last_updated: Sep 21, 2023
redirect_from:
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 f51af415003..beb3e3bca7e 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
@@ -54,7 +54,7 @@ Usually, you need to run `composer update` to get Spryker Core updates, because
{% info_block infoBox %}
-Some minor updates require specific development effort for the project, which is caused by the deprecation of some old approaches or 3rd party modules. We recommend reading the [release notes](/docs/about/all/releases/product-and-code-releases.html) published after the project's start.
+Some minor updates require specific development effort for the project, which is caused by the deprecation of some old approaches or third-party modules. We recommend reading the [release notes](/docs/about/all/releases/product-and-code-releases.html) published after the project's start.
For solutions to general technical issues you might have, see [Troubleshooting general technical issues](/docs/dg/dev/troubleshooting/troubleshooting-general-technical-issues/troubleshooting-general-technical-issues.html).
diff --git a/docs/dg/dev/backend-development/cronjobs/add-and-configure-cronjobs.md b/docs/dg/dev/backend-development/cronjobs/add-and-configure-cronjobs.md
index 0f56a67b9f4..962d1305704 100644
--- a/docs/dg/dev/backend-development/cronjobs/add-and-configure-cronjobs.md
+++ b/docs/dg/dev/backend-development/cronjobs/add-and-configure-cronjobs.md
@@ -1,7 +1,7 @@
---
title: Add and configure cronjobs
last_updated: Jun 16, 2021
-description: Learn how to add and configure cronjobs in Spryker’s backend for automating tasks. Optimize your ecommerce platform's operations with effective cronjob management.
+description: Learn how to add and configure cronjobs in Spryker's backend for automating tasks. Optimize your ecommerce platform's operations with effective cronjob management.
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/adding-and-configuring-cronjob
originalArticleId: 6af304f1-b8ba-417b-874e-878e5d9a5730
diff --git a/docs/dg/dev/backend-development/cronjobs/create-a-custom-scheduler.md b/docs/dg/dev/backend-development/cronjobs/create-a-custom-scheduler.md
index cf7838aed3f..8fe5ca565db 100644
--- a/docs/dg/dev/backend-development/cronjobs/create-a-custom-scheduler.md
+++ b/docs/dg/dev/backend-development/cronjobs/create-a-custom-scheduler.md
@@ -1,6 +1,6 @@
---
title: Create a custom scheduler
-description: Learn how to create a custom scheduler in Spryker’s backend to automate tasks. Enhance your ecommerce platform's efficiency with tailored scheduling solutions.
+description: Learn how to create a custom scheduler in Spryker's backend to automate tasks. Enhance your ecommerce platform's efficiency with tailored scheduling solutions.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/ht-create-a-new-custom-scheduler
diff --git a/docs/dg/dev/backend-development/cronjobs/cronjobs.md b/docs/dg/dev/backend-development/cronjobs/cronjobs.md
index e1deb38dd32..53b7ea423c9 100644
--- a/docs/dg/dev/backend-development/cronjobs/cronjobs.md
+++ b/docs/dg/dev/backend-development/cronjobs/cronjobs.md
@@ -1,6 +1,6 @@
---
title: Cronjobs
-description: Explore how to manage and configure cronjobs in Spryker’s backend to automate tasks, ensuring smooth operation of your ecommerce platform with scheduled jobs.
+description: Explore how to manage and configure cronjobs in Spryker's backend to automate tasks, ensuring smooth operation of your ecommerce platform with scheduled jobs.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/cronjob-scheduling-guide
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 4371738c11c..01b698ff43f 100644
--- a/docs/dg/dev/backend-development/cronjobs/optimizing-jenkins-execution.md
+++ b/docs/dg/dev/backend-development/cronjobs/optimizing-jenkins-execution.md
@@ -1,6 +1,6 @@
---
title: Optimizing Jenkins execution
-description: Optimize Jenkins execution for cronjobs in Spryker’s backend. Enhance task automation performance and improve the efficiency of your ecommerce platform.
+description: Optimize Jenkins execution for cronjobs in Spryker's backend. Enhance task automation performance and improve the efficiency of your ecommerce platform.
last_updated: Jul 15, 2023
template: howto-guide-template
redirect_from:
@@ -54,7 +54,7 @@ In addition to statistics, we also capture the output of children's processes in
## Edge cases and limitation
-Child processes are killed at the end of each minute, which means those batches that were in progress will be abandoned and will return to the source queue to be processed during the next run. While we didn’t notice any issues with this approach, please note that this is still an experimental approach and may or may not change in the future. The recommendation to mitigate this is to use smaller batches to ensure children processes are running within seconds or up to 10s (rough estimate), to reduce the number of messages that will be retried.
+Child processes are killed at the end of each minute, which means those batches that were in progress will be abandoned and will return to the source queue to be processed during the next run. While we didn't notice any issues with this approach, please note that this is still an experimental approach and may or may not change in the future. The recommendation to mitigate this is to use smaller batches to ensure children processes are running within seconds or up to 10s (rough estimate), to reduce the number of messages that will be retried.
## Implementation
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 d06c32ef985..f07c43ecac6 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
@@ -1,6 +1,6 @@
---
title: Reduce Jenkins execution without P&S and data importers refactoring
-description: Learn how to reduce Jenkins execution costs in Spryker’s backend without refactoring P&S and data importers. Optimize cronjob processes for better performance.
+description: Learn how to reduce Jenkins execution costs in Spryker's backend without refactoring P&S and data importers. Optimize cronjob processes for better performance.
last_updated: Jul 15, 2023
template: howto-guide-template
redirect_from:
@@ -70,7 +70,7 @@ In addition to statistics, we also capture the output of children's processes in
### Edge cases and limitation
-Child processes are killed at the end of each minute, which means those batches that were in progress will be abandoned and will return to the source queue to be processed during the next run. While we didn’t notice any issues with this approach, keep in mind that this is still an experimental approach and may or may not change in the future. The recommendation to mitigate this is to use smaller batches to ensure children processes are running within seconds or up to roughly 10 seconds, to reduce the number of messages that will be retried.
+Child processes are killed at the end of each minute, which means those batches that were in progress will be abandoned and will return to the source queue to be processed during the next run. While we didn't notice any issues with this approach, keep in mind that this is still an experimental approach and may or may not change in the future. The recommendation to mitigate this is to use smaller batches to ensure children processes are running within seconds or up to roughly 10 seconds, to reduce the number of messages that will be retried.
## Background job orchestration solution implementation
diff --git a/docs/dg/dev/backend-development/data-manipulation/data-ingestion/data-ingestion.md b/docs/dg/dev/backend-development/data-manipulation/data-ingestion/data-ingestion.md
index 532608cf621..83cc161a22e 100644
--- a/docs/dg/dev/backend-development/data-manipulation/data-ingestion/data-ingestion.md
+++ b/docs/dg/dev/backend-development/data-manipulation/data-ingestion/data-ingestion.md
@@ -1,6 +1,6 @@
---
title: Data ingestion
-description: Explore Spryker’s data ingestion process for importing data into your ecommerce platform. Learn tools and best practices for efficient data management.
+description: Explore Spryker's data ingestion process for importing data into your ecommerce platform. Learn tools and best practices for efficient data management.
last_updated: Sep 6, 2022
template: howto-guide-template
redirect_from:
diff --git a/docs/dg/dev/backend-development/data-manipulation/data-interaction/data-interaction.md b/docs/dg/dev/backend-development/data-manipulation/data-interaction/data-interaction.md
index 2d16b301720..c715581047a 100644
--- a/docs/dg/dev/backend-development/data-manipulation/data-interaction/data-interaction.md
+++ b/docs/dg/dev/backend-development/data-manipulation/data-interaction/data-interaction.md
@@ -1,6 +1,6 @@
---
title: Data interaction
-description: Spryker’s data interaction tools offer efficient backend data handling for seamless data manipulation, processing, and optimized storage solutions.
+description: Spryker's data interaction tools offer efficient backend data handling for seamless data manipulation, processing, and optimized storage solutions.
template: concept-topic-template
redirect_from:
- /docs/scos/dev/back-end-development/data-manipulation/data-interaction/data-interaction.html
diff --git a/docs/dg/dev/backend-development/data-manipulation/data-interaction/replace-module-dependencies.md b/docs/dg/dev/backend-development/data-manipulation/data-interaction/replace-module-dependencies.md
index 3921fd797c3..4322b49f869 100644
--- a/docs/dg/dev/backend-development/data-manipulation/data-interaction/replace-module-dependencies.md
+++ b/docs/dg/dev/backend-development/data-manipulation/data-interaction/replace-module-dependencies.md
@@ -18,7 +18,7 @@ This document describes the process using an example. Assume your project uses P
## Prerequisites
-The preceding example assumes that you know exactly what core module you want to replace. If that is not the case, you need to know what are the core module’s dependencies. You can find this information in a module’s `composer.json` file. This file lists all the dependent components and can be used to locate the dependent functionality that you want to replace based on your project’s requirements.
+The preceding example assumes that you know exactly what core module you want to replace. If that is not the case, you need to know what are the core module's dependencies. You can find this information in a module's `composer.json` file. This file lists all the dependent components and can be used to locate the dependent functionality that you want to replace based on your project's requirements.
To replace a module with another module:
@@ -27,11 +27,11 @@ The following process describes adding a replace command into a new module to in
For each module that you want to add, take these steps:
1. Replace the old module with the new one by creating a dummy module repository in a directory accessible to Composer.
- 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 helps keep track of any replacements you do in the project.
+ 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 helps keep track of any replacements 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 to `shop/composer.json` and adding the new location.
- 4. Check if the core module is in your project’s `composer.json` file. If it's, remove it.
-2. Execute the composer update command with the replacement module name: composer update `“replace_”`. Running the composer update command removes all mentions of the module (for example, `refund`) and replaces it with your module (for example, `replace_refund`).
+ 3. Add the newly created module to your project's `composer.json` file by going to `shop/composer.json` and adding the new location.
+ 4. Check if the core module is in your project's `composer.json` file. If it's, remove it.
+2. Execute the composer update command with the replacement module name: composer update `"replace_"`. 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 %}
@@ -43,11 +43,11 @@ For more information on using the composer replace, see [replace](https://getcom
```
{
- "name": “/ replace_ ",
+ "name": "/ replace_ ",
"replace": {
"spryker/ ":"*"
},
- "description": “"
+ "description": ""
}
```
@@ -63,6 +63,6 @@ To check whether this has worked:
Now that we have replaced a core module with a different module, we need to connect the rest of the OS to this new module.
-To set up connectivity, check the replaced module’s usage and adapt its logic to the new module.
+To set up connectivity, check the replaced module's usage and adapt its logic to the new module.
For further assistance on project-level implementations, email us: [support@spryker.com](mailto:support@spryker.com).
diff --git a/docs/dg/dev/backend-development/data-manipulation/event/listen-to-events.md b/docs/dg/dev/backend-development/data-manipulation/event/listen-to-events.md
index 7ea1fadb279..62bf79aa6c4 100644
--- a/docs/dg/dev/backend-development/data-manipulation/event/listen-to-events.md
+++ b/docs/dg/dev/backend-development/data-manipulation/event/listen-to-events.md
@@ -1,6 +1,6 @@
---
title: Listen to events
-descritpion: Learn how to listen to and handle backend events in Spryker, improving your eCommerce platform’s data manipulation and event management.
+descritpion: Learn how to listen to and handle backend events in Spryker, improving your eCommerce platform's data manipulation and event management.
last_updated: Jun 16, 2021
template: howto-guide-template
originalLink: https://documentation.spryker.com/2021080/docs/event-listen
diff --git a/docs/dg/dev/backend-development/data-manipulation/payment-methods/payment-methods.md b/docs/dg/dev/backend-development/data-manipulation/payment-methods/payment-methods.md
index 4d2edf7fa00..fce9912b4dd 100644
--- a/docs/dg/dev/backend-development/data-manipulation/payment-methods/payment-methods.md
+++ b/docs/dg/dev/backend-development/data-manipulation/payment-methods/payment-methods.md
@@ -1,6 +1,6 @@
---
title: Payment methods
-description: Explore Spryker’s payment methods integration guide. Learn to implement, customize, and manage diverse payment options for seamless ecommerce operations.
+description: Explore Spryker's payment methods integration guide. Learn to implement, customize, and manage diverse payment options for seamless ecommerce operations.
template: concept-topic-template
redirect_from:
- /docs/scos/dev/back-end-development/data-manipulation/payment-methods/payment-methods.html
diff --git a/docs/dg/dev/backend-development/extend-spryker/extend-spryker.md b/docs/dg/dev/backend-development/extend-spryker/extend-spryker.md
index 78362e356bb..20fb8a158fe 100644
--- a/docs/dg/dev/backend-development/extend-spryker/extend-spryker.md
+++ b/docs/dg/dev/backend-development/extend-spryker/extend-spryker.md
@@ -1,6 +1,6 @@
---
title: Extend Spryker
-description: Extend Spryker’s capabilities with custom integrations. This guide provides essential steps to enhance your ecommerce platform, ensuring flexibility and scalability through tailored solutions.
+description: Extend Spryker's capabilities with custom integrations. This guide provides essential steps to enhance your ecommerce platform, ensuring flexibility and scalability through tailored solutions.
last_updated: Oct 10, 2023
template: concept-topic-template
redirect_from:
diff --git a/docs/dg/dev/backend-development/extend-spryker/spryker-os-module-customisation/install-module-structure-and-configuration.md b/docs/dg/dev/backend-development/extend-spryker/spryker-os-module-customisation/install-module-structure-and-configuration.md
index 9ed41f583ce..94f11b2a81d 100644
--- a/docs/dg/dev/backend-development/extend-spryker/spryker-os-module-customisation/install-module-structure-and-configuration.md
+++ b/docs/dg/dev/backend-development/extend-spryker/spryker-os-module-customisation/install-module-structure-and-configuration.md
@@ -35,7 +35,7 @@ All of the models of the Install module reside in the *Business* layer. The Busi
public function runInstall(InputInterface $input, OutputInterface $output): void;
```
-This method starts the installation process and expects Symfony’s console `input` and `output` objects as its arguments.
+This method starts the installation process and expects Symfony's console `input` and `output` objects as its arguments.
### Communication layer
diff --git a/docs/dg/dev/backend-development/yves/implementing-twig-extensions.md b/docs/dg/dev/backend-development/yves/implementing-twig-extensions.md
index 794baae44c9..e0031c36d6e 100644
--- a/docs/dg/dev/backend-development/yves/implementing-twig-extensions.md
+++ b/docs/dg/dev/backend-development/yves/implementing-twig-extensions.md
@@ -18,7 +18,7 @@ To implement a Twig extension, take the following steps.
## 1. Implement the filter
-To implement the filter, add the logic to a dedicated class in the module you’re currently working on:
+To implement the filter, add the logic to a dedicated class in the module you're currently working on:
```php
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 because of 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/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 9417f330d9f..a4b3f5a0a74 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: Learn Spryker’s operatable feature guidelines to ensure features are scalable, reliable, and manageable. Optimize performance while maintaining operational efficiency.
+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/code-contribution-guide.md b/docs/dg/dev/code-contribution-guide.md
index ef98026e615..99a5b6a5969 100644
--- a/docs/dg/dev/code-contribution-guide.md
+++ b/docs/dg/dev/code-contribution-guide.md
@@ -29,7 +29,7 @@ Spryker uses our proprietary licenses and common open-source licenses. In genera
1. Identify the module you would like to contribute to:
- In the `vendor/` directory there is the organization and the module name. For example, `spryker/acl`.
- - Find this module on Spryker’s GitHub https://github.com/spryker/acl.
+ - Find this module on Spryker's GitHub https://github.com/spryker/acl.
2. Review CONTRIBUTING.md and agree to the contribution terms. In case you cannot find them, [contact us](https://spryker.force.com/support/s/).
3. Fork the relevant repository as detailed [here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo).
4. Apply your code changes. Make sure the commit description clearly reflects the changes.
diff --git a/docs/dg/dev/data-import/202311.0/creating-data-importers.md b/docs/dg/dev/data-import/202311.0/creating-data-importers.md
index 77ce6a5062e..c8d35d7d73a 100644
--- a/docs/dg/dev/data-import/202311.0/creating-data-importers.md
+++ b/docs/dg/dev/data-import/202311.0/creating-data-importers.md
@@ -69,7 +69,7 @@ Once you populate all columns, your CSV file should be similar to this one:
Save the new file under `data/import/*`.
-That’s it - your import file is ready. Now you have to configure the data importer.
+That's it - your import file is ready. Now you have to configure the data importer.
## Configure the data importer
@@ -234,7 +234,7 @@ We have made sure that the data importer can be executed, but we only print a de
As mentioned in the [Prerequisites](#prerequisites), we can not use foreign keys in our import file - we need a logical identifier that can now be used to get the foreign key of a related entity.
-There are several ways of how we can get the logical identifier. For example, we could add a new Step e.g. `LocaleNameToIdLocaleStep`. However, in our case, it’s better to use a Repository, which provides us with a getter to retrieve the `id_locale` by its name. We will take this approach and do the following:
+There are several ways of how we can get the logical identifier. For example, we could add a new Step e.g. `LocaleNameToIdLocaleStep`. However, in our case, it's better to use a Repository, which provides us with a getter to retrieve the `id_locale` by its name. We will take this approach and do the following:
1. Add `LocaleRepository` to get the foreign key of a locale by its name:
@@ -443,6 +443,6 @@ public function execute(DataSetInterface $dataSet)
## 7. Run the importer
-That’s it! Now when you run the console command `vendor/bin/console data:import:product-image`, you will see an output similar to this one:
+That's it! Now when you run the console command `vendor/bin/console data:import:product-image`, you will see an output similar to this one:
![Importer command](https://spryker.s3.eu-central-1.amazonaws.com/docs/Tutorials/HowTos/HowTo+Add+New+DataImport+Type/product_image_import_console_output.png)
diff --git a/docs/dg/dev/data-import/202311.0/data-import-optimization-guidelines.md b/docs/dg/dev/data-import/202311.0/data-import-optimization-guidelines.md
index ccce49733e2..40626acb215 100644
--- a/docs/dg/dev/data-import/202311.0/data-import-optimization-guidelines.md
+++ b/docs/dg/dev/data-import/202311.0/data-import-optimization-guidelines.md
@@ -215,8 +215,8 @@ Example classes are going to be replaced with a Core CTE solution.
When we are facing some batch operation, we need to think about big data and performance under heavy loading, we are not allowed to write same code that only does the job, it needs to be scalable and fast for high usages. Below you can find our main points:
* Create batch queries and processes
-* Don’t use ORM for batch processing as it’s slow by design
-* Don’t run separated queries for each data-set
-* Don’t call any facade logic if they are slow or run internal queries
+* Don't use ORM for batch processing as it's slow by design
+* Don't run separated queries for each data-set
+* Don't call any facade logic if they are slow or run internal queries
* Release memory after each bulk operations to prevent memory issues
* Use CTE technique (supported by PostgreSQL or MySQL >= 8, and MariaDB >= 10.2)
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 542fd34373f..ccec19bd2f8 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
@@ -93,7 +93,7 @@ action:
where:
* `data_entity` represents the name of your data importer.
-* `source` describes the path to your CSV file with data to import. If the source is not specified, then CSV file defined in the module’s `Config` will be used.
+* `source` describes the path to your CSV file with data to import. If the source is not specified, then CSV file defined in the module's `Config` will be used.
Then you can run the `./vendor/bin/console data:import --config=path/to/config.yml` command to import all the data from the `config.yml` file. See [Importing Data](/docs/dg/dev/data-import/{{page.version}}/importing-data-with-a-configuration-file.html) for more details about this and other import commands you can use.
@@ -267,7 +267,7 @@ class DataImportBusinessFactory extends SprykerDataImportBusinessFactory
}
```
-That’s it. Your data importer is now appended to the DataImport module.
+That's it. Your data importer is now appended to the DataImport module.
Also, there are **bulk importers** that can be used if you have a huge amount of data to import, and existing importers may be slow.
diff --git a/docs/dg/dev/data-import/202311.0/importing-data-with-a-configuration-file.md b/docs/dg/dev/data-import/202311.0/importing-data-with-a-configuration-file.md
index 3b2ecddfa09..050c0b81fe6 100644
--- a/docs/dg/dev/data-import/202311.0/importing-data-with-a-configuration-file.md
+++ b/docs/dg/dev/data-import/202311.0/importing-data-with-a-configuration-file.md
@@ -28,7 +28,7 @@ As you can see, for both of the import types you need a **data import YML config
{% info_block infoBox "Info" %}
-If the source is not specified, then the CSV file defined in the module’s configuration file will be used. For example, for the [StockDataImport](https://github.com/spryker/stock-data-import/tree/aff1b706e7a0fb0db441b13d5c6a471e4d75cb49/src/Spryker/Zed/StockDataImport) module the CSV import file is defined in [StockDataImportConfig.php](https://github.com/spryker/stock-data-import/blob/aff1b706e7a0fb0db441b13d5c6a471e4d75cb49/src/Spryker/Zed/StockDataImport/StockDataImportConfig.php).
+If the source is not specified, then the CSV file defined in the module's configuration file will be used. For example, for the [StockDataImport](https://github.com/spryker/stock-data-import/tree/aff1b706e7a0fb0db441b13d5c6a471e4d75cb49/src/Spryker/Zed/StockDataImport) module the CSV import file is defined in [StockDataImportConfig.php](https://github.com/spryker/stock-data-import/blob/aff1b706e7a0fb0db441b13d5c6a471e4d75cb49/src/Spryker/Zed/StockDataImport/StockDataImportConfig.php).
{% endinfo_block %}
@@ -65,7 +65,7 @@ For your shop, you can create your own default YML import configuration file and
## Custom YML import configuration file
-Of course, you don’t always need to use the default YML file and import everything it contains. When you want to import some specific importers without importing everything from the default YML file, you can create a YML file, which will include just the importers you need. You don’t need to put the CSV files for import to a specific place. Instead, you just specify a correct path to them in the `source`. Also, you can perform import in batch, which means you can run the same data importer with different data. For example, your custom YML file may look like this:
+Of course, you don't always need to use the default YML file and import everything it contains. When you want to import some specific importers without importing everything from the default YML file, you can create a YML file, which will include just the importers you need. You don't need to put the CSV files for import to a specific place. Instead, you just specify a correct path to them in the `source`. Also, you can perform import in batch, which means you can run the same data importer with different data. For example, your custom YML file may look like this:
```yml
actions:
@@ -86,7 +86,7 @@ The order of import for the above example will be:
3. product-abstract (*product.csv*)
4. shipment (*shipment.csv*)
-Whenever you need to import some data, all you need to change is your YML file by defining the new data importer. You don’t need to change anything in the code.
+Whenever you need to import some data, all you need to change is your YML file by defining the new data importer. You don't need to change anything in the code.
{% info_block infoBox "" %}
diff --git a/docs/dg/dev/data-import/202404.0/creating-data-importers.md b/docs/dg/dev/data-import/202404.0/creating-data-importers.md
index a90f3cd543d..9d927da9fcc 100644
--- a/docs/dg/dev/data-import/202404.0/creating-data-importers.md
+++ b/docs/dg/dev/data-import/202404.0/creating-data-importers.md
@@ -69,7 +69,7 @@ Once you populate all columns, your CSV file should be similar to this one:
Save the new file under `data/import/*`.
-That’s it - your import file is ready. Now you have to configure the data importer.
+That's it - your import file is ready. Now you have to configure the data importer.
## Configure the data importer
@@ -234,7 +234,7 @@ We have made sure that the data importer can be executed, but we only print a de
As mentioned in the [Prerequisites](#prerequisites), we can not use foreign keys in our import file - we need a logical identifier that can now be used to get the foreign key of a related entity.
-There are several ways of how we can get the logical identifier. For example, we could add a new Step e.g. `LocaleNameToIdLocaleStep`. However, in our case, it’s better to use a Repository, which provides us with a getter to retrieve the `id_locale` by its name. We will take this approach and do the following:
+There are several ways of how we can get the logical identifier. For example, we could add a new Step e.g. `LocaleNameToIdLocaleStep`. However, in our case, it's better to use a Repository, which provides us with a getter to retrieve the `id_locale` by its name. We will take this approach and do the following:
1. Add `LocaleRepository` to get the foreign key of a locale by its name:
@@ -443,6 +443,6 @@ public function execute(DataSetInterface $dataSet)
## 7. Run the importer
-That’s it! Now when you run the console command `vendor/bin/console data:import:product-image`, you will see an output similar to this one:
+That's it! Now when you run the console command `vendor/bin/console data:import:product-image`, you will see an output similar to this one:
![Importer command](https://spryker.s3.eu-central-1.amazonaws.com/docs/Tutorials/HowTos/HowTo+Add+New+DataImport+Type/product_image_import_console_output.png)
diff --git a/docs/dg/dev/data-import/202404.0/data-import-optimization-guidelines.md b/docs/dg/dev/data-import/202404.0/data-import-optimization-guidelines.md
index e25836bdbe7..327bf9aaa66 100644
--- a/docs/dg/dev/data-import/202404.0/data-import-optimization-guidelines.md
+++ b/docs/dg/dev/data-import/202404.0/data-import-optimization-guidelines.md
@@ -215,8 +215,8 @@ Example classes are going to be replaced with a Core CTE solution.
When we are facing some batch operation, we need to think about big data and performance under heavy loading, we are not allowed to write same code that only does the job, it needs to be scalable and fast for high usages. Below you can find our main points:
* Create batch queries and processes
-* Don’t use ORM for batch processing as it’s slow by design
-* Don’t run separated queries for each data-set
-* Don’t call any facade logic if they are slow or run internal queries
+* Don't use ORM for batch processing as it's slow by design
+* Don't run separated queries for each data-set
+* Don't call any facade logic if they are slow or run internal queries
* Release memory after each bulk operations to prevent memory issues
* Use CTE technique (supported by PostgreSQL or MySQL >= 8, and MariaDB >= 10.2)
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 a17056fd725..54c531fb9ed 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
@@ -93,7 +93,7 @@ action:
where:
* `data_entity` represents the name of your data importer.
-* `source` describes the path to your CSV file with data to import. If the source is not specified, then CSV file defined in the module’s `Config` will be used.
+* `source` describes the path to your CSV file with data to import. If the source is not specified, then CSV file defined in the module's `Config` will be used.
Then you can run the `./vendor/bin/console data:import --config=path/to/config.yml` command to import all the data from the `config.yml` file. See [Importing Data](/docs/dg/dev/data-import/{{page.version}}/importing-data-with-a-configuration-file.html) for more details about this and other import commands you can use.
@@ -267,7 +267,7 @@ class DataImportBusinessFactory extends SprykerDataImportBusinessFactory
}
```
-That’s it. Your data importer is now appended to the DataImport module.
+That's it. Your data importer is now appended to the DataImport module.
Also, there are **bulk importers** that can be used if you have a huge amount of data to import, and existing importers may be slow.
diff --git a/docs/dg/dev/data-import/202404.0/importing-data-with-a-configuration-file.md b/docs/dg/dev/data-import/202404.0/importing-data-with-a-configuration-file.md
index 94212cb5283..2857fa37fd9 100644
--- a/docs/dg/dev/data-import/202404.0/importing-data-with-a-configuration-file.md
+++ b/docs/dg/dev/data-import/202404.0/importing-data-with-a-configuration-file.md
@@ -28,7 +28,7 @@ As you can see, for both of the import types you need a **data import YML config
{% info_block infoBox "Info" %}
-If the source is not specified, then the CSV file defined in the module’s configuration file will be used. For example, for the [StockDataImport](https://github.com/spryker/stock-data-import/tree/aff1b706e7a0fb0db441b13d5c6a471e4d75cb49/src/Spryker/Zed/StockDataImport) module the CSV import file is defined in [StockDataImportConfig.php](https://github.com/spryker/stock-data-import/blob/aff1b706e7a0fb0db441b13d5c6a471e4d75cb49/src/Spryker/Zed/StockDataImport/StockDataImportConfig.php).
+If the source is not specified, then the CSV file defined in the module's configuration file will be used. For example, for the [StockDataImport](https://github.com/spryker/stock-data-import/tree/aff1b706e7a0fb0db441b13d5c6a471e4d75cb49/src/Spryker/Zed/StockDataImport) module the CSV import file is defined in [StockDataImportConfig.php](https://github.com/spryker/stock-data-import/blob/aff1b706e7a0fb0db441b13d5c6a471e4d75cb49/src/Spryker/Zed/StockDataImport/StockDataImportConfig.php).
{% endinfo_block %}
@@ -65,7 +65,7 @@ For your shop, you can create your own default YML import configuration file and
## Custom YML import configuration file
-Of course, you don’t always need to use the default YML file and import everything it contains. When you want to import some specific importers without importing everything from the default YML file, you can create a YML file, which will include just the importers you need. You don’t need to put the CSV files for import to a specific place. Instead, you just specify a correct path to them in the `source`. Also, you can perform import in batch, which means you can run the same data importer with different data. For example, your custom YML file may look like this:
+Of course, you don't always need to use the default YML file and import everything it contains. When you want to import some specific importers without importing everything from the default YML file, you can create a YML file, which will include just the importers you need. You don't need to put the CSV files for import to a specific place. Instead, you just specify a correct path to them in the `source`. Also, you can perform import in batch, which means you can run the same data importer with different data. For example, your custom YML file may look like this:
```yml
actions:
@@ -86,7 +86,7 @@ The order of import for the above example will be:
3. product-abstract (*product.csv*)
4. shipment (*shipment.csv*)
-Whenever you need to import some data, all you need to change is your YML file by defining the new data importer. You don’t need to change anything in the code.
+Whenever you need to import some data, all you need to change is your YML file by defining the new data importer. You don't need to change anything in the code.
{% info_block infoBox "" %}
diff --git a/docs/dg/dev/data-import/202410.0/creating-data-importers.md b/docs/dg/dev/data-import/202410.0/creating-data-importers.md
index a90f3cd543d..9d927da9fcc 100644
--- a/docs/dg/dev/data-import/202410.0/creating-data-importers.md
+++ b/docs/dg/dev/data-import/202410.0/creating-data-importers.md
@@ -69,7 +69,7 @@ Once you populate all columns, your CSV file should be similar to this one:
Save the new file under `data/import/*`.
-That’s it - your import file is ready. Now you have to configure the data importer.
+That's it - your import file is ready. Now you have to configure the data importer.
## Configure the data importer
@@ -234,7 +234,7 @@ We have made sure that the data importer can be executed, but we only print a de
As mentioned in the [Prerequisites](#prerequisites), we can not use foreign keys in our import file - we need a logical identifier that can now be used to get the foreign key of a related entity.
-There are several ways of how we can get the logical identifier. For example, we could add a new Step e.g. `LocaleNameToIdLocaleStep`. However, in our case, it’s better to use a Repository, which provides us with a getter to retrieve the `id_locale` by its name. We will take this approach and do the following:
+There are several ways of how we can get the logical identifier. For example, we could add a new Step e.g. `LocaleNameToIdLocaleStep`. However, in our case, it's better to use a Repository, which provides us with a getter to retrieve the `id_locale` by its name. We will take this approach and do the following:
1. Add `LocaleRepository` to get the foreign key of a locale by its name:
@@ -443,6 +443,6 @@ public function execute(DataSetInterface $dataSet)
## 7. Run the importer
-That’s it! Now when you run the console command `vendor/bin/console data:import:product-image`, you will see an output similar to this one:
+That's it! Now when you run the console command `vendor/bin/console data:import:product-image`, you will see an output similar to this one:
![Importer command](https://spryker.s3.eu-central-1.amazonaws.com/docs/Tutorials/HowTos/HowTo+Add+New+DataImport+Type/product_image_import_console_output.png)
diff --git a/docs/dg/dev/data-import/202410.0/data-import-optimization-guidelines.md b/docs/dg/dev/data-import/202410.0/data-import-optimization-guidelines.md
index e25836bdbe7..327bf9aaa66 100644
--- a/docs/dg/dev/data-import/202410.0/data-import-optimization-guidelines.md
+++ b/docs/dg/dev/data-import/202410.0/data-import-optimization-guidelines.md
@@ -215,8 +215,8 @@ Example classes are going to be replaced with a Core CTE solution.
When we are facing some batch operation, we need to think about big data and performance under heavy loading, we are not allowed to write same code that only does the job, it needs to be scalable and fast for high usages. Below you can find our main points:
* Create batch queries and processes
-* Don’t use ORM for batch processing as it’s slow by design
-* Don’t run separated queries for each data-set
-* Don’t call any facade logic if they are slow or run internal queries
+* Don't use ORM for batch processing as it's slow by design
+* Don't run separated queries for each data-set
+* Don't call any facade logic if they are slow or run internal queries
* Release memory after each bulk operations to prevent memory issues
* Use CTE technique (supported by PostgreSQL or MySQL >= 8, and MariaDB >= 10.2)
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 a17056fd725..54c531fb9ed 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
@@ -93,7 +93,7 @@ action:
where:
* `data_entity` represents the name of your data importer.
-* `source` describes the path to your CSV file with data to import. If the source is not specified, then CSV file defined in the module’s `Config` will be used.
+* `source` describes the path to your CSV file with data to import. If the source is not specified, then CSV file defined in the module's `Config` will be used.
Then you can run the `./vendor/bin/console data:import --config=path/to/config.yml` command to import all the data from the `config.yml` file. See [Importing Data](/docs/dg/dev/data-import/{{page.version}}/importing-data-with-a-configuration-file.html) for more details about this and other import commands you can use.
@@ -267,7 +267,7 @@ class DataImportBusinessFactory extends SprykerDataImportBusinessFactory
}
```
-That’s it. Your data importer is now appended to the DataImport module.
+That's it. Your data importer is now appended to the DataImport module.
Also, there are **bulk importers** that can be used if you have a huge amount of data to import, and existing importers may be slow.
diff --git a/docs/dg/dev/data-import/202410.0/importing-data-with-a-configuration-file.md b/docs/dg/dev/data-import/202410.0/importing-data-with-a-configuration-file.md
index 94212cb5283..2857fa37fd9 100644
--- a/docs/dg/dev/data-import/202410.0/importing-data-with-a-configuration-file.md
+++ b/docs/dg/dev/data-import/202410.0/importing-data-with-a-configuration-file.md
@@ -28,7 +28,7 @@ As you can see, for both of the import types you need a **data import YML config
{% info_block infoBox "Info" %}
-If the source is not specified, then the CSV file defined in the module’s configuration file will be used. For example, for the [StockDataImport](https://github.com/spryker/stock-data-import/tree/aff1b706e7a0fb0db441b13d5c6a471e4d75cb49/src/Spryker/Zed/StockDataImport) module the CSV import file is defined in [StockDataImportConfig.php](https://github.com/spryker/stock-data-import/blob/aff1b706e7a0fb0db441b13d5c6a471e4d75cb49/src/Spryker/Zed/StockDataImport/StockDataImportConfig.php).
+If the source is not specified, then the CSV file defined in the module's configuration file will be used. For example, for the [StockDataImport](https://github.com/spryker/stock-data-import/tree/aff1b706e7a0fb0db441b13d5c6a471e4d75cb49/src/Spryker/Zed/StockDataImport) module the CSV import file is defined in [StockDataImportConfig.php](https://github.com/spryker/stock-data-import/blob/aff1b706e7a0fb0db441b13d5c6a471e4d75cb49/src/Spryker/Zed/StockDataImport/StockDataImportConfig.php).
{% endinfo_block %}
@@ -65,7 +65,7 @@ For your shop, you can create your own default YML import configuration file and
## Custom YML import configuration file
-Of course, you don’t always need to use the default YML file and import everything it contains. When you want to import some specific importers without importing everything from the default YML file, you can create a YML file, which will include just the importers you need. You don’t need to put the CSV files for import to a specific place. Instead, you just specify a correct path to them in the `source`. Also, you can perform import in batch, which means you can run the same data importer with different data. For example, your custom YML file may look like this:
+Of course, you don't always need to use the default YML file and import everything it contains. When you want to import some specific importers without importing everything from the default YML file, you can create a YML file, which will include just the importers you need. You don't need to put the CSV files for import to a specific place. Instead, you just specify a correct path to them in the `source`. Also, you can perform import in batch, which means you can run the same data importer with different data. For example, your custom YML file may look like this:
```yml
actions:
@@ -86,7 +86,7 @@ The order of import for the above example will be:
3. product-abstract (*product.csv*)
4. shipment (*shipment.csv*)
-Whenever you need to import some data, all you need to change is your YML file by defining the new data importer. You don’t need to change anything in the code.
+Whenever you need to import some data, all you need to change is your YML file by defining the new data importer. You don't need to change anything in the code.
{% info_block infoBox "" %}
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 29d055f7249..48084427e86 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
@@ -37,7 +37,7 @@ You'll be prompted to fill out details like the following:
## Add the package metadata
-Add the package metadata to `composer.json`. Here’s an example of what it might look like:
+Add the package metadata to `composer.json`. Here's an example of what it might look like:
{% info_block infoBox %}
diff --git a/docs/dg/dev/example-modules.md b/docs/dg/dev/example-modules.md
index 382d6dacf9f..b5a1106c93b 100644
--- a/docs/dg/dev/example-modules.md
+++ b/docs/dg/dev/example-modules.md
@@ -30,7 +30,7 @@ SCCOS uses example modules to implement functionality that is tailored to specif
* All example modules will be released as standalone modules.
* All example modules will be released under the MIT license.
* **Uniformity:**
- * Example modules will be suffixed with “example”.
+ * Example modules will be suffixed with "example".
* **Testability:**
* Example modules might include tests, but they don't have to.
* **Learnability:**
diff --git a/docs/dg/dev/frontend-development/202311.0/marketplace/angular-components.md b/docs/dg/dev/frontend-development/202311.0/marketplace/angular-components.md
index ff70b215b91..952f9c9af7d 100644
--- a/docs/dg/dev/frontend-development/202311.0/marketplace/angular-components.md
+++ b/docs/dg/dev/frontend-development/202311.0/marketplace/angular-components.md
@@ -64,16 +64,16 @@ Invoked when the change detector of the given component is invoked. It lets you
This method is invoked just before Angular destroys the component.
Use this hook to unsubscribe observables and detach event handlers to avoid memory leaks.
-### Hooks for the component’s children
+### Hooks for the component's children
`ngAfterContentInit`
-Invoked after Angular performs any content projection into the component’s view (see the previous lecture on Content Projection for more info). To get more info about content query, see the official documentation [ContentChildren](https://angular.io/api/core/ContentChildren), [ContentChild](https://angular.io/api/core/ContentChild).
+Invoked after Angular performs any content projection into the component's view (see the previous lecture on Content Projection for more info). To get more info about content query, see the official documentation [ContentChildren](https://angular.io/api/core/ContentChildren), [ContentChild](https://angular.io/api/core/ContentChild).
`ngAfterContentChecked`
Invoked each time the content of the given component has been checked by Angular's change detection mechanism.
`ngAfterViewInit`
-Invoked when the component’s view has been fully initialized. To get more info about the content query see official documentation [ViewChildren](https://angular.io/api/core/ViewChildren), [ViewChild](https://angular.io/api/core/ViewChild).
+Invoked when the component's view has been fully initialized. To get more info about the content query see official documentation [ViewChildren](https://angular.io/api/core/ViewChildren), [ViewChild](https://angular.io/api/core/ViewChild).
`ngAfterViewChecked`
Invoked each time the view of the given component has been checked by Angular's change detection mechanism.
@@ -96,10 +96,10 @@ It is an inline-defined template for the view. The template defines some markup.
It is the URL for the external file containing the template for the view.
`styles`
-These are inline-defined styles to be applied to the component’s view.
+These are inline-defined styles to be applied to the component's view.
`styleUrls`
-List of URLs to the stylesheets to be applied to the component’s view.
+List of URLs to the stylesheets to be applied to the component's view.
`providers`
It is an array where certain services for the component can be registered.
diff --git a/docs/dg/dev/frontend-development/202311.0/marketplace/extending-the-merchant-portal-frontend.md b/docs/dg/dev/frontend-development/202311.0/marketplace/extending-the-merchant-portal-frontend.md
index fafeaf37c0f..94dfa7b71bd 100644
--- a/docs/dg/dev/frontend-development/202311.0/marketplace/extending-the-merchant-portal-frontend.md
+++ b/docs/dg/dev/frontend-development/202311.0/marketplace/extending-the-merchant-portal-frontend.md
@@ -194,7 +194,7 @@ It is also possible to extend the vendor twig blocks. You need to extend the ven
{% endraw %}
```
-If a project file isn’t reflected in the browser, try to clean cache:
+If a project file isn't reflected in the browser, try to clean cache:
```bash
console cache:empty-all
diff --git a/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/actions/ui-components-library-actions.md b/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/actions/ui-components-library-actions.md
index 67615675ee8..1b0f6fa3fa7 100644
--- a/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/actions/ui-components-library-actions.md
+++ b/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/actions/ui-components-library-actions.md
@@ -96,7 +96,7 @@ export class CustomActionHandlerService implements ActionHandler
export class RootModule {}
```
-The context within which Actions operate is defined by the local injector where it’s being used.
+The context within which Actions operate is defined by the local injector where it's being used.
## Interfaces
diff --git a/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/datasources/datasource-trigger/datasource-trigger.md b/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/datasources/datasource-trigger/datasource-trigger.md
index f77c9cc4996..de2cbf631d6 100644
--- a/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/datasources/datasource-trigger/datasource-trigger.md
+++ b/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/datasources/datasource-trigger/datasource-trigger.md
@@ -107,7 +107,7 @@ export class CustomDatasourceTriggerService implements DatasourceTriggerEvent {
export class RootModule {}
```
-The context within which Datasources operate is defined by the local injector where it’s being used.
+The context within which Datasources operate is defined by the local injector where it's being used.
## Interfaces
diff --git a/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/datasources/datasources.md b/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/datasources/datasources.md
index ff696e9272b..8275c951791 100644
--- a/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/datasources/datasources.md
+++ b/docs/dg/dev/frontend-development/202311.0/marketplace/ui-components-library/datasources/datasources.md
@@ -83,7 +83,7 @@ export class CustomDatasourceService implements Datasource {
export class RootModule {}
```
-The context within which Datasources operate is defined by the local injector where it’s being used.
+The context within which Datasources operate is defined by the local injector where it's being used.
## Interfaces
diff --git a/docs/dg/dev/frontend-development/202311.0/oryx/contribute-to-oryx.md b/docs/dg/dev/frontend-development/202311.0/oryx/contribute-to-oryx.md
index b54b0d3604e..7e7e348a91c 100644
--- a/docs/dg/dev/frontend-development/202311.0/oryx/contribute-to-oryx.md
+++ b/docs/dg/dev/frontend-development/202311.0/oryx/contribute-to-oryx.md
@@ -27,7 +27,7 @@ Code that gets merged into master must be compatible with the latest minor relea
2. Create a brunch based on the master.
3. Run `npm install` in the repository root.
4. Add your changes. For more details, see [Development workflow](#development-workflow)
-5. If you’ve added code that should be tested, add tests.
+5. If you've added code that should be tested, add tests.
6. Create a PR. Provide a clear and concise description of your changes in the PR's description.
7. If the required checks are failing, look into fixing them.
diff --git a/docs/dg/dev/frontend-development/202311.0/yves/custom-twig-functions-for-yves.md b/docs/dg/dev/frontend-development/202311.0/yves/custom-twig-functions-for-yves.md
index 853a1374bf6..d026cb31431 100644
--- a/docs/dg/dev/frontend-development/202311.0/yves/custom-twig-functions-for-yves.md
+++ b/docs/dg/dev/frontend-development/202311.0/yves/custom-twig-functions-for-yves.md
@@ -23,7 +23,7 @@ To improve developer experience, [Twig](https://twig.symfony.com/) functionality
| `view` | Resolves a view path and returns a string in the following format:
`@{viewModule}/views/{viewName}/{viewName}.twig`. | `function view($viewName: string, $viewModule: string = ‘ShopUi’): string`- `$viewName` - view name (*required*).
- `$viewModule` - Spryker module in which the view is located (optional). If not specified, `ShopUi` is used.
| `{% raw %}{%{% endraw %} extends view('voucher-form', 'DiscountWidget') {% raw %}%}{% endraw %}` |
| `define` | This function is used for:- creating a default object that can be changed from an incoming context;
- defining tags used to pass properties and contract for a specific component.
For more information, see [How the "define" Twig Tag is Working](/docs/dg/dev/frontend-development/{{page.version}}/define-twig-tag.html). | None | See **Usage Example: define** below.|
| `qa` | Returns a string in the following format: `data-qa="qa values here".` | `function qa($qaValues: string[] = []): string` | `{% raw %}{{{% endraw %} qa('submit-button') {% raw %}}}{% endraw %}` |
-| `qa_* ` | Returns a string in the following format: `data-qa-name=“{qa values}”.` | `function qa_*($qaName: string, $qaValues: string[] = []): string`- `$qaName` - specifies the name to add in the left side of the data structure.
| `{% raw %}{{{% endraw %} qa_additional('value') {% raw %}}}{% endraw %}` |
+| `qa_* ` | Returns a string in the following format: `data-qa-name="{qa values}".` | `function qa_*($qaName: string, $qaValues: string[] = []): string`- `$qaName` - specifies the name to add in the left side of the data structure.
| `{% raw %}{{{% endraw %} qa_additional('value') {% raw %}}}{% endraw %}` |
**Usage Example: define**
diff --git a/docs/dg/dev/frontend-development/202404.0/marketplace/angular-components.md b/docs/dg/dev/frontend-development/202404.0/marketplace/angular-components.md
index 94c071a8aca..13145ba2ec9 100644
--- a/docs/dg/dev/frontend-development/202404.0/marketplace/angular-components.md
+++ b/docs/dg/dev/frontend-development/202404.0/marketplace/angular-components.md
@@ -64,16 +64,16 @@ Invoked when the change detector of the given component is invoked. It lets you
This method is invoked just before Angular destroys the component.
Use this hook to unsubscribe observables and detach event handlers to avoid memory leaks.
-### Hooks for the component’s children
+### Hooks for the component's children
`ngAfterContentInit`
-Invoked after Angular performs any content projection into the component’s view (see the previous lecture on Content Projection for more info). To get more info about content query, see the official documentation [ContentChildren](https://angular.io/api/core/ContentChildren), [ContentChild](https://angular.io/api/core/ContentChild).
+Invoked after Angular performs any content projection into the component's view (see the previous lecture on Content Projection for more info). To get more info about content query, see the official documentation [ContentChildren](https://angular.io/api/core/ContentChildren), [ContentChild](https://angular.io/api/core/ContentChild).
`ngAfterContentChecked`
Invoked each time the content of the given component has been checked by Angular's change detection mechanism.
`ngAfterViewInit`
-Invoked when the component’s view has been fully initialized. To get more info about the content query see official documentation [ViewChildren](https://angular.io/api/core/ViewChildren), [ViewChild](https://angular.io/api/core/ViewChild).
+Invoked when the component's view has been fully initialized. To get more info about the content query see official documentation [ViewChildren](https://angular.io/api/core/ViewChildren), [ViewChild](https://angular.io/api/core/ViewChild).
`ngAfterViewChecked`
Invoked each time the view of the given component has been checked by Angular's change detection mechanism.
@@ -96,10 +96,10 @@ It is an inline-defined template for the view. The template defines some markup.
It is the URL for the external file containing the template for the view.
`styles`
-These are inline-defined styles to be applied to the component’s view.
+These are inline-defined styles to be applied to the component's view.
`styleUrls`
-List of URLs to the stylesheets to be applied to the component’s view.
+List of URLs to the stylesheets to be applied to the component's view.
`providers`
It is an array where certain services for the component can be registered.
diff --git a/docs/dg/dev/frontend-development/202404.0/marketplace/extending-the-merchant-portal-frontend.md b/docs/dg/dev/frontend-development/202404.0/marketplace/extending-the-merchant-portal-frontend.md
index 9fb7e325061..aaf1fb0cbf9 100644
--- a/docs/dg/dev/frontend-development/202404.0/marketplace/extending-the-merchant-portal-frontend.md
+++ b/docs/dg/dev/frontend-development/202404.0/marketplace/extending-the-merchant-portal-frontend.md
@@ -194,7 +194,7 @@ It is also possible to extend the vendor twig blocks. You need to extend the ven
{% endraw %}
```
-If a project file isn’t reflected in the browser, try to clean cache:
+If a project file isn't reflected in the browser, try to clean cache:
```bash
console cache:empty-all
diff --git a/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/actions/ui-components-library-actions.md b/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/actions/ui-components-library-actions.md
index 558de847082..bbf15897f86 100644
--- a/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/actions/ui-components-library-actions.md
+++ b/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/actions/ui-components-library-actions.md
@@ -96,7 +96,7 @@ export class CustomActionHandlerService implements ActionHandler
export class RootModule {}
```
-The context within which Actions operate is defined by the local injector where it’s being used.
+The context within which Actions operate is defined by the local injector where it's being used.
## Interfaces
diff --git a/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/datasources/datasource-trigger/datasource-trigger.md b/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/datasources/datasource-trigger/datasource-trigger.md
index e68860492d2..5f4b9cc4886 100644
--- a/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/datasources/datasource-trigger/datasource-trigger.md
+++ b/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/datasources/datasource-trigger/datasource-trigger.md
@@ -107,7 +107,7 @@ export class CustomDatasourceTriggerService implements DatasourceTriggerEvent {
export class RootModule {}
```
-The context within which Datasources operate is defined by the local injector where it’s being used.
+The context within which Datasources operate is defined by the local injector where it's being used.
## Interfaces
diff --git a/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/datasources/datasources.md b/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/datasources/datasources.md
index ae588220368..f85d45370b2 100644
--- a/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/datasources/datasources.md
+++ b/docs/dg/dev/frontend-development/202404.0/marketplace/ui-components-library/datasources/datasources.md
@@ -83,7 +83,7 @@ export class CustomDatasourceService implements Datasource {
export class RootModule {}
```
-The context within which Datasources operate is defined by the local injector where it’s being used.
+The context within which Datasources operate is defined by the local injector where it's being used.
## Interfaces
diff --git a/docs/dg/dev/frontend-development/202404.0/oryx/contribute-to-oryx.md b/docs/dg/dev/frontend-development/202404.0/oryx/contribute-to-oryx.md
index bbec85de3de..6b9264f6d50 100644
--- a/docs/dg/dev/frontend-development/202404.0/oryx/contribute-to-oryx.md
+++ b/docs/dg/dev/frontend-development/202404.0/oryx/contribute-to-oryx.md
@@ -27,7 +27,7 @@ Code that gets merged into master must be compatible with the latest minor relea
2. Create a brunch based on the master.
3. Run `npm install` in the repository root.
4. Add your changes. For more details, see [Development workflow](#development-workflow)
-5. If you’ve added code that should be tested, add tests.
+5. If you've added code that should be tested, add tests.
6. Create a PR. Provide a clear and concise description of your changes in the PR's description.
7. If the required checks are failing, look into fixing them.
diff --git a/docs/dg/dev/frontend-development/202404.0/yves/custom-twig-functions-for-yves.md b/docs/dg/dev/frontend-development/202404.0/yves/custom-twig-functions-for-yves.md
index 32ef890cef1..99705aea9d3 100644
--- a/docs/dg/dev/frontend-development/202404.0/yves/custom-twig-functions-for-yves.md
+++ b/docs/dg/dev/frontend-development/202404.0/yves/custom-twig-functions-for-yves.md
@@ -23,7 +23,7 @@ To improve developer experience, [Twig](https://twig.symfony.com/) functionality
| `view` | Resolves a view path and returns a string in the following format:
`@{viewModule}/views/{viewName}/{viewName}.twig`. | `function view($viewName: string, $viewModule: string = ‘ShopUi’): string`- `$viewName` - view name (*required*).
- `$viewModule` - Spryker module in which the view is located (optional). If not specified, `ShopUi` is used.
| `{% raw %}{%{% endraw %} extends view('voucher-form', 'DiscountWidget') {% raw %}%}{% endraw %}` |
| `define` | This function is used for:- creating a default object that can be changed from an incoming context;
- defining tags used to pass properties and contract for a specific component.
For more information, see [How the "define" Twig Tag is Working](/docs/dg/dev/frontend-development/{{page.version}}/define-twig-tag.html). | None | See **Usage Example: define** below.|
| `qa` | Returns a string in the following format: `data-qa="qa values here".` | `function qa($qaValues: string[] = []): string` | `{% raw %}{{{% endraw %} qa('submit-button') {% raw %}}}{% endraw %}` |
-| `qa_* ` | Returns a string in the following format: `data-qa-name=“{qa values}”.` | `function qa_*($qaName: string, $qaValues: string[] = []): string`- `$qaName` - specifies the name to add in the left side of the data structure.
| `{% raw %}{{{% endraw %} qa_additional('value') {% raw %}}}{% endraw %}` |
+| `qa_* ` | Returns a string in the following format: `data-qa-name="{qa values}".` | `function qa_*($qaName: string, $qaValues: string[] = []): string`- `$qaName` - specifies the name to add in the left side of the data structure.
| `{% raw %}{{{% endraw %} qa_additional('value') {% raw %}}}{% endraw %}` |
**Usage Example: define**
diff --git a/docs/dg/dev/frontend-development/202410.0/marketplace/angular-components.md b/docs/dg/dev/frontend-development/202410.0/marketplace/angular-components.md
index 94c071a8aca..13145ba2ec9 100644
--- a/docs/dg/dev/frontend-development/202410.0/marketplace/angular-components.md
+++ b/docs/dg/dev/frontend-development/202410.0/marketplace/angular-components.md
@@ -64,16 +64,16 @@ Invoked when the change detector of the given component is invoked. It lets you
This method is invoked just before Angular destroys the component.
Use this hook to unsubscribe observables and detach event handlers to avoid memory leaks.
-### Hooks for the component’s children
+### Hooks for the component's children
`ngAfterContentInit`
-Invoked after Angular performs any content projection into the component’s view (see the previous lecture on Content Projection for more info). To get more info about content query, see the official documentation [ContentChildren](https://angular.io/api/core/ContentChildren), [ContentChild](https://angular.io/api/core/ContentChild).
+Invoked after Angular performs any content projection into the component's view (see the previous lecture on Content Projection for more info). To get more info about content query, see the official documentation [ContentChildren](https://angular.io/api/core/ContentChildren), [ContentChild](https://angular.io/api/core/ContentChild).
`ngAfterContentChecked`
Invoked each time the content of the given component has been checked by Angular's change detection mechanism.
`ngAfterViewInit`
-Invoked when the component’s view has been fully initialized. To get more info about the content query see official documentation [ViewChildren](https://angular.io/api/core/ViewChildren), [ViewChild](https://angular.io/api/core/ViewChild).
+Invoked when the component's view has been fully initialized. To get more info about the content query see official documentation [ViewChildren](https://angular.io/api/core/ViewChildren), [ViewChild](https://angular.io/api/core/ViewChild).
`ngAfterViewChecked`
Invoked each time the view of the given component has been checked by Angular's change detection mechanism.
@@ -96,10 +96,10 @@ It is an inline-defined template for the view. The template defines some markup.
It is the URL for the external file containing the template for the view.
`styles`
-These are inline-defined styles to be applied to the component’s view.
+These are inline-defined styles to be applied to the component's view.
`styleUrls`
-List of URLs to the stylesheets to be applied to the component’s view.
+List of URLs to the stylesheets to be applied to the component's view.
`providers`
It is an array where certain services for the component can be registered.
diff --git a/docs/dg/dev/frontend-development/202410.0/marketplace/extending-the-merchant-portal-frontend.md b/docs/dg/dev/frontend-development/202410.0/marketplace/extending-the-merchant-portal-frontend.md
index 9fb7e325061..aaf1fb0cbf9 100644
--- a/docs/dg/dev/frontend-development/202410.0/marketplace/extending-the-merchant-portal-frontend.md
+++ b/docs/dg/dev/frontend-development/202410.0/marketplace/extending-the-merchant-portal-frontend.md
@@ -194,7 +194,7 @@ It is also possible to extend the vendor twig blocks. You need to extend the ven
{% endraw %}
```
-If a project file isn’t reflected in the browser, try to clean cache:
+If a project file isn't reflected in the browser, try to clean cache:
```bash
console cache:empty-all
diff --git a/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/actions/ui-components-library-actions.md b/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/actions/ui-components-library-actions.md
index 558de847082..bbf15897f86 100644
--- a/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/actions/ui-components-library-actions.md
+++ b/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/actions/ui-components-library-actions.md
@@ -96,7 +96,7 @@ export class CustomActionHandlerService implements ActionHandler
export class RootModule {}
```
-The context within which Actions operate is defined by the local injector where it’s being used.
+The context within which Actions operate is defined by the local injector where it's being used.
## Interfaces
diff --git a/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/datasources/datasource-trigger/datasource-trigger.md b/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/datasources/datasource-trigger/datasource-trigger.md
index e68860492d2..5f4b9cc4886 100644
--- a/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/datasources/datasource-trigger/datasource-trigger.md
+++ b/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/datasources/datasource-trigger/datasource-trigger.md
@@ -107,7 +107,7 @@ export class CustomDatasourceTriggerService implements DatasourceTriggerEvent {
export class RootModule {}
```
-The context within which Datasources operate is defined by the local injector where it’s being used.
+The context within which Datasources operate is defined by the local injector where it's being used.
## Interfaces
diff --git a/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/datasources/datasources.md b/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/datasources/datasources.md
index ae588220368..f85d45370b2 100644
--- a/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/datasources/datasources.md
+++ b/docs/dg/dev/frontend-development/202410.0/marketplace/ui-components-library/datasources/datasources.md
@@ -83,7 +83,7 @@ export class CustomDatasourceService implements Datasource {
export class RootModule {}
```
-The context within which Datasources operate is defined by the local injector where it’s being used.
+The context within which Datasources operate is defined by the local injector where it's being used.
## Interfaces
diff --git a/docs/dg/dev/frontend-development/202410.0/oryx/contribute-to-oryx.md b/docs/dg/dev/frontend-development/202410.0/oryx/contribute-to-oryx.md
index bbec85de3de..6b9264f6d50 100644
--- a/docs/dg/dev/frontend-development/202410.0/oryx/contribute-to-oryx.md
+++ b/docs/dg/dev/frontend-development/202410.0/oryx/contribute-to-oryx.md
@@ -27,7 +27,7 @@ Code that gets merged into master must be compatible with the latest minor relea
2. Create a brunch based on the master.
3. Run `npm install` in the repository root.
4. Add your changes. For more details, see [Development workflow](#development-workflow)
-5. If you’ve added code that should be tested, add tests.
+5. If you've added code that should be tested, add tests.
6. Create a PR. Provide a clear and concise description of your changes in the PR's description.
7. If the required checks are failing, look into fixing them.
diff --git a/docs/dg/dev/frontend-development/202410.0/yves/custom-twig-functions-for-yves.md b/docs/dg/dev/frontend-development/202410.0/yves/custom-twig-functions-for-yves.md
index 32ef890cef1..99705aea9d3 100644
--- a/docs/dg/dev/frontend-development/202410.0/yves/custom-twig-functions-for-yves.md
+++ b/docs/dg/dev/frontend-development/202410.0/yves/custom-twig-functions-for-yves.md
@@ -23,7 +23,7 @@ To improve developer experience, [Twig](https://twig.symfony.com/) functionality
| `view` | Resolves a view path and returns a string in the following format:
`@{viewModule}/views/{viewName}/{viewName}.twig`. | `function view($viewName: string, $viewModule: string = ‘ShopUi’): string`- `$viewName` - view name (*required*).
- `$viewModule` - Spryker module in which the view is located (optional). If not specified, `ShopUi` is used.
| `{% raw %}{%{% endraw %} extends view('voucher-form', 'DiscountWidget') {% raw %}%}{% endraw %}` |
| `define` | This function is used for:- creating a default object that can be changed from an incoming context;
- defining tags used to pass properties and contract for a specific component.
For more information, see [How the "define" Twig Tag is Working](/docs/dg/dev/frontend-development/{{page.version}}/define-twig-tag.html). | None | See **Usage Example: define** below.|
| `qa` | Returns a string in the following format: `data-qa="qa values here".` | `function qa($qaValues: string[] = []): string` | `{% raw %}{{{% endraw %} qa('submit-button') {% raw %}}}{% endraw %}` |
-| `qa_* ` | Returns a string in the following format: `data-qa-name=“{qa values}”.` | `function qa_*($qaName: string, $qaValues: string[] = []): string`- `$qaName` - specifies the name to add in the left side of the data structure.
| `{% raw %}{{{% endraw %} qa_additional('value') {% raw %}}}{% endraw %}` |
+| `qa_* ` | Returns a string in the following format: `data-qa-name="{qa values}".` | `function qa_*($qaName: string, $qaValues: string[] = []): string`- `$qaName` - specifies the name to add in the left side of the data structure.
| `{% raw %}{{{% endraw %} qa_additional('value') {% raw %}}}{% endraw %}` |
**Usage Example: define**
diff --git a/docs/dg/dev/glue-api/202311.0/create-grant-type-parameters.md b/docs/dg/dev/glue-api/202311.0/create-grant-type-parameters.md
index 66842eb3268..5a961b0c3d9 100644
--- a/docs/dg/dev/glue-api/202311.0/create-grant-type-parameters.md
+++ b/docs/dg/dev/glue-api/202311.0/create-grant-type-parameters.md
@@ -134,7 +134,7 @@ class OauthDependencyProvider extends SprykerOauthDependencyProvider
}
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
* Ensure that you can authenticate as a user:
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 fc2228602ce..d3329755de0 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
@@ -280,7 +280,7 @@ If we add relationships to the `wishlist-items` and `concrete-products` resource
"isDiscontinued": false,
"discontinuedNote": null,
"name": "Sony Cyber-shot DSC-W830",
- "description": "Styled for your pocket Precision photography meets the portability of a smartphone. The W800 is small enough to take great photos, look good while doing it, and slip in your pocket. Shooting great photos and videos is easy with the W800. Buttons are positioned for ease of use, while a dedicated movie button makes shooting movies simple. The vivid 2.7-type Clear Photo LCD display screen lets you view your stills and play back movies with minimal effort. Whip out the W800 to capture crisp, smooth footage in an instant. At the press of a button, you can record blur-free 720 HD images with digital sound. Breathe new life into a picture by using built-in Picture Effect technology. There’s a range of modes to choose from – you don’t even have to download image-editing software.",
+ "description": "Styled for your pocket Precision photography meets the portability of a smartphone. The W800 is small enough to take great photos, look good while doing it, and slip in your pocket. Shooting great photos and videos is easy with the W800. Buttons are positioned for ease of use, while a dedicated movie button makes shooting movies simple. The vivid 2.7-type Clear Photo LCD display screen lets you view your stills and play back movies with minimal effort. Whip out the W800 to capture crisp, smooth footage in an instant. At the press of a button, you can record blur-free 720 HD images with digital sound. Breathe new life into a picture by using built-in Picture Effect technology. There's a range of modes to choose from – you don't even have to download image-editing software.",
"attributes": {
"hdmi": "no",
"sensor_type": "CCD",
diff --git a/docs/dg/dev/glue-api/202404.0/create-grant-type-parameters.md b/docs/dg/dev/glue-api/202404.0/create-grant-type-parameters.md
index 48c69b4b8a6..f7b100972c6 100644
--- a/docs/dg/dev/glue-api/202404.0/create-grant-type-parameters.md
+++ b/docs/dg/dev/glue-api/202404.0/create-grant-type-parameters.md
@@ -134,7 +134,7 @@ class OauthDependencyProvider extends SprykerOauthDependencyProvider
}
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
* Ensure that you can authenticate as a user:
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 56ca972fa59..f8cd4993a22 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
@@ -280,7 +280,7 @@ If we add relationships to the `wishlist-items` and `concrete-products` resource
"isDiscontinued": false,
"discontinuedNote": null,
"name": "Sony Cyber-shot DSC-W830",
- "description": "Styled for your pocket Precision photography meets the portability of a smartphone. The W800 is small enough to take great photos, look good while doing it, and slip in your pocket. Shooting great photos and videos is easy with the W800. Buttons are positioned for ease of use, while a dedicated movie button makes shooting movies simple. The vivid 2.7-type Clear Photo LCD display screen lets you view your stills and play back movies with minimal effort. Whip out the W800 to capture crisp, smooth footage in an instant. At the press of a button, you can record blur-free 720 HD images with digital sound. Breathe new life into a picture by using built-in Picture Effect technology. There’s a range of modes to choose from – you don’t even have to download image-editing software.",
+ "description": "Styled for your pocket Precision photography meets the portability of a smartphone. The W800 is small enough to take great photos, look good while doing it, and slip in your pocket. Shooting great photos and videos is easy with the W800. Buttons are positioned for ease of use, while a dedicated movie button makes shooting movies simple. The vivid 2.7-type Clear Photo LCD display screen lets you view your stills and play back movies with minimal effort. Whip out the W800 to capture crisp, smooth footage in an instant. At the press of a button, you can record blur-free 720 HD images with digital sound. Breathe new life into a picture by using built-in Picture Effect technology. There's a range of modes to choose from – you don't even have to download image-editing software.",
"attributes": {
"hdmi": "no",
"sensor_type": "CCD",
diff --git a/docs/dg/dev/glue-api/202410.0/create-grant-type-parameters.md b/docs/dg/dev/glue-api/202410.0/create-grant-type-parameters.md
index 48c69b4b8a6..f7b100972c6 100644
--- a/docs/dg/dev/glue-api/202410.0/create-grant-type-parameters.md
+++ b/docs/dg/dev/glue-api/202410.0/create-grant-type-parameters.md
@@ -134,7 +134,7 @@ class OauthDependencyProvider extends SprykerOauthDependencyProvider
}
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
* Ensure that you can authenticate as a user:
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 56ca972fa59..f8cd4993a22 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
@@ -280,7 +280,7 @@ If we add relationships to the `wishlist-items` and `concrete-products` resource
"isDiscontinued": false,
"discontinuedNote": null,
"name": "Sony Cyber-shot DSC-W830",
- "description": "Styled for your pocket Precision photography meets the portability of a smartphone. The W800 is small enough to take great photos, look good while doing it, and slip in your pocket. Shooting great photos and videos is easy with the W800. Buttons are positioned for ease of use, while a dedicated movie button makes shooting movies simple. The vivid 2.7-type Clear Photo LCD display screen lets you view your stills and play back movies with minimal effort. Whip out the W800 to capture crisp, smooth footage in an instant. At the press of a button, you can record blur-free 720 HD images with digital sound. Breathe new life into a picture by using built-in Picture Effect technology. There’s a range of modes to choose from – you don’t even have to download image-editing software.",
+ "description": "Styled for your pocket Precision photography meets the portability of a smartphone. The W800 is small enough to take great photos, look good while doing it, and slip in your pocket. Shooting great photos and videos is easy with the W800. Buttons are positioned for ease of use, while a dedicated movie button makes shooting movies simple. The vivid 2.7-type Clear Photo LCD display screen lets you view your stills and play back movies with minimal effort. Whip out the W800 to capture crisp, smooth footage in an instant. At the press of a button, you can record blur-free 720 HD images with digital sound. Breathe new life into a picture by using built-in Picture Effect technology. There's a range of modes to choose from – you don't even have to download image-editing software.",
"attributes": {
"hdmi": "no",
"sensor_type": "CCD",
diff --git a/docs/dg/dev/guidelines/coding-guidelines/code-quality.md b/docs/dg/dev/guidelines/coding-guidelines/code-quality.md
index e29c9a99775..86ad1dee5ed 100644
--- a/docs/dg/dev/guidelines/coding-guidelines/code-quality.md
+++ b/docs/dg/dev/guidelines/coding-guidelines/code-quality.md
@@ -1,6 +1,6 @@
---
title: Code Quality
-description: Spryker Commerce OS’s code base receives very high scores for quality measures,significantly higher code quality than many other ecommerce solutions.
+description: Spryker Commerce OS's code base receives very high scores for quality measures,significantly higher code quality than many other ecommerce solutions.
last_updated: Jun 16, 2021
template: concept-topic-template
originalLink: https://documentation.spryker.com/2021080/docs/code-quality
@@ -16,7 +16,7 @@ related:
link: docs/dg/dev/guidelines/coding-guidelines/secure-coding-practices.html
---
-Spryker Commerce OS’s code base receives very high scores in terms of quality measures, indicating significantly higher code quality than many other e-commerce solutions.
+Spryker Commerce OS's code base receives very high scores in terms of quality measures, indicating significantly higher code quality than many other e-commerce solutions.
Code Quality Spryker, PHPmetrics.org score in score points (x out of 100)
![Code quality](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Guidelines/Code+Quality/spryker-code-quality.png)
@@ -24,7 +24,7 @@ Code Quality Spryker, PHPmetrics.org score in score points (x out of 100)
## The Results
* *Maintainability*: Keeping code and architecture clean as crucial part of complex commerce development
-* *Accessibility*: Developers can easily understand and start working with Spryker Commerce OS’s code base
+* *Accessibility*: Developers can easily understand and start working with Spryker Commerce OS's code base
* *Bug probability*: Much lower error-proneness, resulting in fewer resources needed for bug-fixing
## Understanding the Results
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 0a9460926da..1b4a5271ed1 100644
--- a/docs/dg/dev/guidelines/coding-guidelines/code-style-guide.md
+++ b/docs/dg/dev/guidelines/coding-guidelines/code-style-guide.md
@@ -95,7 +95,7 @@ Always use one programming language per file. This allows us to use language-spe
### Comparison
-Don’t use loose comparison, always be as strict as possible.
+Don't use loose comparison, always be as strict as possible.
Bad:
@@ -132,9 +132,9 @@ You can also be more strict and use `!== null` check, especially if the returned
### Typecasting
-Don’t use `intval()` or other casting functions. Use `(int)`, `(bool)`, etc.
+Don't use `intval()` or other casting functions. Use `(int)`, `(bool)`, etc.
-Don’t use `!!` to cast to bool, use `(bool)`. There is no space after casts.
+Don't use `!!` to cast to bool, use `(bool)`. There is no space after casts.
### String functions
@@ -144,7 +144,7 @@ The performance costs are negligible, but you can easily see where you might sti
### Switch statements
-Don’t use switch statements in PHP. They only make loose comparisons, and it’s easy to mess up the break.
+Don't use switch statements in PHP. They only make loose comparisons, and it's easy to mess up the break.
### Return early and else
diff --git a/docs/dg/dev/guidelines/coding-guidelines/secure-coding-practices.md b/docs/dg/dev/guidelines/coding-guidelines/secure-coding-practices.md
index f8ec2562d19..da5cc0a8581 100644
--- a/docs/dg/dev/guidelines/coding-guidelines/secure-coding-practices.md
+++ b/docs/dg/dev/guidelines/coding-guidelines/secure-coding-practices.md
@@ -1,6 +1,6 @@
---
title: Secure Coding Practices
-description: In this article, we’ll present a series of coding practices that we recommend using when developing an e-commerce application using Spryker Commerce OS.
+description: In this article, we'll present a series of coding practices that we recommend using when developing an e-commerce application using Spryker Commerce OS.
last_updated: Jun 16, 2021
template: concept-topic-template
originalLink: https://documentation.spryker.com/2021080/docs/secure-coding-practices
@@ -16,7 +16,7 @@ related:
link: docs/dg/dev/guidelines/coding-guidelines/code-style-guide.html
---
-Unsafe coding practices can make the software application vulnerable to theft of sensitive data. In this article, we’ll present a series of coding practices that we recommend using when developing an e-commerce application using Spryker Commerce OS, that will keep your software solution secured.
+Unsafe coding practices can make the software application vulnerable to theft of sensitive data. In this article, we'll present a series of coding practices that we recommend using when developing an e-commerce application using Spryker Commerce OS, that will keep your software solution secured.
## HTTP strict transport security (HSTS)
@@ -72,7 +72,7 @@ HTTP_HOST header attacks refer to injecting malicious host in the header of the
There are two main ways to exploit this vulnerability. One would be web-cache poisoning and the other is manipulating the password reset emails to contain links to malicious applications.
-To prevent this, the HTTP_HOST request header must checked by the application. Spryker integrates Symfony’s trusted_hosts to secure the application from this type of attacks.
+To prevent this, the HTTP_HOST request header must checked by the application. Spryker integrates Symfony's trusted_hosts to secure the application from this type of attacks.
You can add the trusted hosts in the configuration file. The trusted hosts must be registered in `ApplicationServiceProvider:register(Application $app)()`
@@ -91,7 +91,7 @@ Code injection refers to any mean that allows the attacker to inject malicious c
* `require()`
* `require_once()`
-Untrusted input should be prevented to be used to determine the path to the parameter that’s passed to these functions.
+Untrusted input should be prevented to be used to determine the path to the parameter that's passed to these functions.
### PHP Code evaluation vulnerabilities
diff --git a/docs/dg/dev/guidelines/data-processing-guidelines.md b/docs/dg/dev/guidelines/data-processing-guidelines.md
index c7f68a503b8..1d2395bfbcc 100644
--- a/docs/dg/dev/guidelines/data-processing-guidelines.md
+++ b/docs/dg/dev/guidelines/data-processing-guidelines.md
@@ -18,13 +18,13 @@ related:
link: docs/dg/dev/data-import/202410.0/data-import-optimization-guidelines.html
---
-One of the most important questions addressed during project development is “How to bring data in my project?”. Spryker provides the required infrastructure to address performance and consistency when dealing with project data.
+One of the most important questions addressed during project development is "How to bring data in my project?". Spryker provides the required infrastructure to address performance and consistency when dealing with project data.
The simplest way to bring data to a project is to leverage [Data importers](/docs/dg/dev/data-import/{{site.version}}/creating-data-importers.html) and [P&S](/docs/dg/dev/backend-development/data-manipulation/data-publishing/publish-and-synchronization.html) infrastructure. See [Data importers overview and implementation](/docs/dg/dev/guidelines/data-processing-guidelines.html) for the list of available importers.
## Strategies and concepts
-Before starting the implementation, let’s consider the most important concepts and best practices that should be used during data processing.
+Before starting the implementation, let's consider the most important concepts and best practices that should be used during data processing.
### Incremental data updates
@@ -50,7 +50,7 @@ The exponential growth of SQL queries is a good refactoring reason.
To read in batches, consider pre-collecting of identifiers. Also, you can leverage table JOINs and UNIONs to enrich complete datasets in relational DBs.
-To write in batches, consider INSERT concatenations or an advanced method with CTE (described below). Concatenated INSERTs generate lots of repetitive character sequences that lead to Mbs of useless data transferred over a network. CTE doesn’t have this pitfall.
+To write in batches, consider INSERT concatenations or an advanced method with CTE (described below). Concatenated INSERTs generate lots of repetitive character sequences that lead to Mbs of useless data transferred over a network. CTE doesn't have this pitfall.
When writing in batches, there can be data inconsistency, which will be discovered only on DB query execution. In some cases, one of the business requirements is to be able to work with inconsistent data. Typically after a DB exception and transaction rollback, one could decide to stop the import process or log the data set and continue with the next one. Both options are **not optimal** as terminated processes usually cause business losses and leave an engineer no trail on what entity in a batch caused the problem. In this case, consider a fallback strategy for batch operation. The default strategy here is switching to the per-entity processing, where healthy records will reach DB, and unhealthy ones could be logged and then analyzed outside of the data import process. More details on this topic can be found [here](https://docs.spring.io/spring-batch/docs/current/reference/html/index-single.html#databaseItemWriters).
![image](https://spryker.s3.eu-central-1.amazonaws.com/docs/Developer+Guide/Guidelines/Data+Processing+Guidelines/recovery+on+batch.png)
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 442dea28ae7..68460b0e267 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,11 +92,11 @@ 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's 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.
+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.
-If the plugin contains the `before` key and defined plugins in the `before` parameter don’t exist on the project side, the plugin is added as the first plugin in plugin stack.
+If the plugin contains the `before` key and defined plugins in the `before` parameter don't exist on the project side, the plugin is added as the first plugin in plugin stack.
The following is an example of how to have multiple plugins registration in an indexed array:
@@ -460,10 +460,10 @@ class PublisherDependencyProvider extends SprykerPublisherDependencyProvider
## Special situations
-* 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 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.
-* If the target dependency provider class exists in the project without the target method, and such method also doesn’t exist in the parent class, the method is NOT created and the changes is NOT applied.
+* If the target dependency provider class exists in the project without the target method, and such method also doesn't exist in the parent class, the method is NOT created and the changes is NOT applied.
-* If the target method inside of the dependency provider class was modified on the project level and for example array was extracted into the separated method, the upgrader won’t find the array, and the changes won’t be applied.
+* If the target method inside of the dependency provider class was modified on the project level and for example array was extracted into the separated method, the upgrader won't find the array, and the changes won't be applied.
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 5cdc620edaf..a0aa3819afa 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, 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.
+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.
@@ -50,9 +50,9 @@ Some of the pessimistic locking use cases are:
To avoid performance issues, architects can recommend using optimistic locking with several different implementations according to the faced problems.
-### Synchronous communications and 3rd party calls
+### Synchronous communications and third-party calls
-Another architectural mistake is relying on a 3rd party response time to achieve promised performance for an application. Having a direct external call to a 3rd party organization during a transaction can make the performance unpredictable and impact the user experience.
+Another architectural mistake is relying on a third-party response time to achieve promised performance for an application. Having a direct external call to a third-party organization during a transaction can make the performance unpredictable and impact the user experience.
We recommend architects fulfill the requirements by providing a different solution like asynchronous communication.
diff --git a/docs/dg/dev/guidelines/performance-guidelines/elastic-computing/new-relic-transaction-grouping-by-queue-names.md b/docs/dg/dev/guidelines/performance-guidelines/elastic-computing/new-relic-transaction-grouping-by-queue-names.md
index 227aeeab7ee..5fd315d8316 100644
--- a/docs/dg/dev/guidelines/performance-guidelines/elastic-computing/new-relic-transaction-grouping-by-queue-names.md
+++ b/docs/dg/dev/guidelines/performance-guidelines/elastic-computing/new-relic-transaction-grouping-by-queue-names.md
@@ -15,7 +15,7 @@ redirect_from:
- /docs/scos/dev/guidelines/performance-guidelines/elastic-computing/new-relic-transaction-grouping-by-queue-names.html
---
-By default, the `spryker/monitoring` module groups all New Relic transactions generated from a console command by the command’s name. For example, `ooms:check-timeout`.
+By default, the `spryker/monitoring` module groups all New Relic transactions generated from a console command by the command's name. For example, `ooms:check-timeout`.
This strategy works in most cases, and you can still query the data from a needed queue using [NRQL](https://docs.newrelic.com/docs/query-your-data/nrql-new-relic-query-language/get-started/nrql-syntax-clauses-functions/). But you might want to override this behavior.
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 cc58d9fc680..cb1ac316a30 100644
--- a/docs/dg/dev/guidelines/performance-guidelines/general-performance-guidelines.md
+++ b/docs/dg/dev/guidelines/performance-guidelines/general-performance-guidelines.md
@@ -101,7 +101,7 @@ During the synchronization part of Publish & Sync, each time the `queue:task:sta
For backward compatibility reasons, `RabbitMqEnv::RABBITMQ_ENABLE_RUNTIME_SETTING_UP` is enabled by default in the module configuration class: `\Spryker\Client\RabbitMq\RabbitMqConfig::isRuntimeSettingUpEnabled`. For production environments, we recommend disabling it by setting it to `false` in `config_default.php` or another config file.
Side effects:
-- The application doesn't try to recreate queues and exchanges “on the fly” while interacting with RabbitMQ. If a queue is deleted, and the application attempts to access it, there will be an exception.
+- The application doesn't try to recreate queues and exchanges "on the fly" while interacting with RabbitMQ. If a queue is deleted, and the application attempts to access it, there will be an exception.
- The only way to create queues and exchanges to configure RabbitMQ is to run the `console queue:setup` CLI command defined in `\Spryker\Zed\RabbitMq\Communication\Console\QueueSetupConsole`. Make sure to *adjust your deploy scripts* accordingly.
## Disable INFO event logs
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 0f8a46112a1..55443566805 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
@@ -69,14 +69,14 @@ We have compiled a short checklist to use while creating the specification and d
* Did I inform the testers of specific areas which need to be double checked?
* Do the testers need any kind of help to perform the tests (for example, scripts for generating specific data)?
-## What is “high-quality software”?
+## What is "high-quality software"?
-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.
+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:
1. What should we be testing?
-2. How do we determine the software’s quality?
+2. How do we determine the software's quality?
Quality is when the software meets all the above mentioned requirements, but there are many more quality attributes surrounding the overall factors that affect behavior, design, and user experience such as performance, security and usability.
@@ -90,7 +90,7 @@ We can prevent this by thinking of performance testing in advance. Plan performa
### Security
-Is the capability of a system to prevent malicious or accidental actions outside of the designed usage, and to prevent disclosure or loss of information. When working with thousands of people’s data and personal information, security leaks and the resulting money loss means that security testing should be one of the first things you think about. Ensure that confidential user data cannot be revealed, that your frontend doesn't allow SQL injections in the text fields ( SQL injections are SQL queries that could be put into a text field like a password or username and instead of requesting authorization to the website a request is made to the DB or malicious data is written into it).
+Is the capability of a system to prevent malicious or accidental actions outside of the designed usage, and to prevent disclosure or loss of information. When working with thousands of people's data and personal information, security leaks and the resulting money loss means that security testing should be one of the first things you think about. Ensure that confidential user data cannot be revealed, that your frontend doesn't allow SQL injections in the text fields ( SQL injections are SQL queries that could be put into a text field like a password or username and instead of requesting authorization to the website a request is made to the DB or malicious data is written into it).
### Usability
@@ -150,7 +150,7 @@ Real example:
* If the procedure or accessing the DB has changed, like passwords or names and nobody except the developer knows about it, it can also cause time loss and introduce frustration when a person unaware of these changes tries to test with old steps and has no clue whether the current problems are local or something was secretly changed. Yes, everybody can ask if something doesn't work as before, but this is human psychology to try figure things out themselves before asking others.
-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 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's easier to track such black points if they are all linked together.
@@ -158,13 +158,13 @@ Link tests to use cases and other requirement tickets with relation like "covers
After each completed iteration, create reports and keep them in the same wiki where all other artifacts are based. Reports can show you the state of the project, possible risky features and things that can be improved.
-Each iteration, at least big one, should be ended with regression testing. If you don’t have time or manpower to perform a full regression, make sure to test at least all high priority test cases to see that none of the main use scenarios are broken.
+Each iteration, at least big one, should be ended with regression testing. If you don't have time or manpower to perform a full regression, make sure to test at least all high priority test cases to see that none of the main use scenarios are broken.
## Testing scenarios
Test scenarios come from use cases or other documented requirements. Use cases usually describe positive scenarios, how the system should work, sometimes also error scenarios are specified, but usually requirements only describe what a user should see with a correct behavior of the system. Even if negative scenarios are not described, think about them and put them into your test cases, because negative usage scenarios come out of positive. The requirement says, you can create an element with x,y fields using latin characters? Then for sure, there will be cases where you create an element without these fields, create an identical element or set some unexpected characters. So even if something is not specified it could be undetermined, think 360 degrees.
-We mentioned prioritizing test scenarios, make the positive cases that check what should work high priority and negative cases that check that what shouldn’t low priority (unless the case would break everything).
+We mentioned prioritizing test scenarios, make the positive cases that check what should work high priority and negative cases that check that what shouldn't low priority (unless the case would break everything).
Building Scenarios and prioritizing saves time and introduces clarity into the development environment. Consider creating a check-list of the different tests and define priority and depth for each test. How much and how deep they should go - this is all up to you and your project – focusing on critical functionality helps.
@@ -196,7 +196,7 @@ When you are working on a single module or functionality, it's easy to forget th
### Test and test again
-This is a note for developers - if you are implementing new code, logically you are already on the branch and have the application running on the VM. This is an ideal time to **take a few moments to open Yves/Zed and check that your fix works and doesn’t break anything else**. Remembering to check how the fix looks like in the UI can prevent having to make a bigger fix down the line. This simple check can save lots of time. Detecting an issue during the development stage is faster and easier to fix than during the testing stage.
+This is a note for developers - if you are implementing new code, logically you are already on the branch and have the application running on the VM. This is an ideal time to **take a few moments to open Yves/Zed and check that your fix works and doesn't break anything else**. Remembering to check how the fix looks like in the UI can prevent having to make a bigger fix down the line. This simple check can save lots of time. Detecting an issue during the development stage is faster and easier to fix than during the testing stage.
Even if you tested during development and it worked for you, ask somebody to test it after the development is done. If you do not have a QA in the team, this could be another developer or product owner, but the final check should always be done on a different machine and best - by a different person. Why? Some things can pass for you locally because you have some special extensions, software installed or a special state of DB, in an environment with different conditions something can fail, so you need to ensure that things work not only for you locally but also on all environments. Another person for testing is needed, because it will bring a new view on the feature and new scenarios of using it so new problems could be revealed.
@@ -225,4 +225,4 @@ Be prepared that even if all the tests done by test team passed, there will stil
## Endnotes
-We hope this information helps you plan your projects and resources to support producing amazing results with the Spryker Commerce OS. Remember to plan your tests and define clear priorities and requirements. Write test scenarios that reflect positive and negative cases. Run manual tests during the development stage. Keep records and think of other team members. Don’t wait with testing until testing stage, continuously test both in development and retest after merging to master – because well… things happen sometimes.
+We hope this information helps you plan your projects and resources to support producing amazing results with the Spryker Commerce OS. Remember to plan your tests and define clear priorities and requirements. Write test scenarios that reflect positive and negative cases. Run manual tests during the development stage. Keep records and think of other team members. Don't wait with testing until testing stage, continuously test both in development and retest after merging to master – because well… things happen sometimes.
diff --git a/docs/dg/dev/integrate-and-configure/configure-dynamic-yves-zed-tokens.md b/docs/dg/dev/integrate-and-configure/configure-dynamic-yves-zed-tokens.md
index 57504d07e09..b6f0150d46f 100644
--- a/docs/dg/dev/integrate-and-configure/configure-dynamic-yves-zed-tokens.md
+++ b/docs/dg/dev/integrate-and-configure/configure-dynamic-yves-zed-tokens.md
@@ -102,4 +102,4 @@ To configure dynamic Yves-Zed tokens:
3. `config_default-docker.dev.php`
-You’ve configured dynamic Yves-Zed tokens.
+You've configured dynamic Yves-Zed tokens.
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 979ba2d9719..8d1d7bfb987 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
@@ -10,9 +10,9 @@ redirect_from:
- /docs/scos/dev/technical-enhancements/queue-worker-signal-handling.html
---
-Signal Handling is a configured behavior of an application invoked by receiving a signal. Signals are sent by an operating system to interact with the application. In PHP, there are [many signals](http://linux.die.net/man/7/signal), and just a couple of them are important. For example, the `SIGTERM` signal is a request that tells an application “I would really like you to shut down”. Most applications do terminate at such request, sometimes with issues. For example, sending the `SIGTERM` signal to an application while data is being processed may result into data inconsistency. That’s where signal handling can help.
+Signal Handling is a configured behavior of an application invoked by receiving a signal. Signals are sent by an operating system to interact with the application. In PHP, there are [many signals](http://linux.die.net/man/7/signal), and just a couple of them are important. For example, the `SIGTERM` signal is a request that tells an application "I would really like you to shut down". Most applications do terminate at such request, sometimes with issues. For example, sending the `SIGTERM` signal to an application while data is being processed may result into data inconsistency. That's where signal handling can help.
-When an application is configured to treat a signal, it performs all the configured actions instead of performing the only action invoked by the signal. For example, you configure an application to finish all its processes before shutting down as instructed by the `SIGTERM` signal. It’s called a *graceful shutdown*.
+When an application is configured to treat a signal, it performs all the configured actions instead of performing the only action invoked by the signal. For example, you configure an application to finish all its processes before shutting down as instructed by the `SIGTERM` signal. It's called a *graceful shutdown*.
To configure a graceful shutdown of queue worker, define the list of signals to be handled as follows:
diff --git a/docs/dg/dev/integrate-and-configure/configure-services.md b/docs/dg/dev/integrate-and-configure/configure-services.md
index 0d5957defab..58cdedb488a 100644
--- a/docs/dg/dev/integrate-and-configure/configure-services.md
+++ b/docs/dg/dev/integrate-and-configure/configure-services.md
@@ -288,7 +288,7 @@ services:
## Swagger UI
-[Swagger UI](https://swagger.io/tools/swagger-ui/) allows anyone—be it your development team or your end consumers—to visualize and interact with the API’s resources without having any of the implementation logic in place. It’s automatically generated from your OpenAPI (formerly known as Swagger) Specification, with the visual documentation making it easy for backend implementation and client-side consumption.
+[Swagger UI](https://swagger.io/tools/swagger-ui/) allows anyone—be it your development team or your end consumers—to visualize and interact with the API's resources without having any of the implementation logic in place. It's automatically generated from your OpenAPI (formerly known as Swagger) Specification, with the visual documentation making it easy for backend implementation and client-side consumption.
For more details, see [Swagger UI documentation](https://swagger.io/docs/open-source-tools/swagger-ui/usage/installation/).
@@ -426,7 +426,7 @@ services:
#### Alternative configuration
-Use the following configuration if you are going to change server or client details often or if you don’t want to define them in your deploy file.
+Use the following configuration if you are going to change server or client details often or if you don't want to define them in your deploy file.
To enable Blackfire, follow these steps:
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 589f0bb3d03..f8bb2a5de5e 100644
--- a/docs/dg/dev/integrate-and-configure/implementing-graceful-shutdown.md
+++ b/docs/dg/dev/integrate-and-configure/implementing-graceful-shutdown.md
@@ -45,7 +45,7 @@ To learn more about the Generators, see the Generators documentation.
## Handle exceptions
-To throw an exception into the Generator code, you can use the second argument of the `GracefulRunnerFacadeInterface::run()` method. It’s the class name that must be thrown into the Generator when a signal is handled. The following example explains it in more detail:
+To throw an exception into the Generator code, you can use the second argument of the `GracefulRunnerFacadeInterface::run()` method. It's the class name that must be thrown into the Generator when a signal is handled. The following example explains it in more detail:
```php
public function import(Collection $collection): void
diff --git a/docs/dg/dev/integrate-and-configure/integrate-health-checks.md b/docs/dg/dev/integrate-and-configure/integrate-health-checks.md
index c154b1f7f7b..9d5c697b940 100644
--- a/docs/dg/dev/integrate-and-configure/integrate-health-checks.md
+++ b/docs/dg/dev/integrate-and-configure/integrate-health-checks.md
@@ -64,7 +64,7 @@ Run the following command to install the required modules:
composer require spryker-feature/spryker-core: "^{{page.version}}" --update-with-dependencies
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that the following modules have been installed:
@@ -245,7 +245,7 @@ Run the following command to apply transfer changes:
vendor/bin/console transfer:generate
```
-{% info_block warningBox “Verification” %}
+{% info_block warningBox "Verification" %}
Make sure that the following changes took place in transfer objects:
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 d1f84cae7d0..8bf58fdd254 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
@@ -281,7 +281,7 @@ The maintenance page is not yet compatible with Spryker Cloud.