Skip to content

Commit 42a20ed

Browse files
tw review
1 parent ab5a3ff commit 42a20ed

File tree

6 files changed

+252
-258
lines changed

6 files changed

+252
-258
lines changed

_data/sidebars/pbc_all_sidebar.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1249,8 +1249,6 @@ entries:
12491249
url: /docs/pbc/all/dynamic-multistore/base-shop/add-fields-to-back-office-forms.html
12501250
- title: Enable / Disable Dynamic Multistore
12511251
url: /docs/pbc/all/dynamic-multistore/base-shop/enable-dynamic-multistore.html
1252-
- title: FAQ Dynamic Multistore
1253-
url: /docs/pbc/all/dynamic-multistore/base-shop/faq.html
12541252
- title: Delete stores
12551253
url: /docs/pbc/all/dynamic-multistore/base-shop/delete-stores.html
12561254
- title: Import stores

_includes/pbc/all/install-features/202410.0/enable-dynamic-multistore.md

Lines changed: 0 additions & 180 deletions
This file was deleted.

docs/ca/dev/multi-store-setups/multistore-setup-options.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,9 @@ The following table provides details on infrastructure for this setup:
9898
</div>
9999

100100
### Setup 2: Isolated virtual database
101-
{% info_block warningBox "Mandatory information" %}
102-
In case if Dynamic Multistore feature enabled separate database can be used only per region, not per each store.
101+
102+
{% info_block warningBox "" %}
103+
If Dynamic Multistore is enabled, separate databases can be used only per region, not per store.
103104
{% endinfo_block %}
104105

105106
![setup-2](https://spryker.s3.eu-central-1.amazonaws.com/docs/cloud/spryker-cloud-commerce-os/multi-store-setups/setup-2.png)

docs/pbc/all/dynamic-multistore/202410.0/base-shop/dynamic-multistore-feature-overview.md

Lines changed: 61 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ related:
1414
link: docs/pbc/all/dynamic-multistore/page.version/marketplace/install-dynamic-multistore-the-marketplace-merchant-portal-core.html
1515
---
1616

17-
The *Dynamic Multistore* feature lets you create and manage multiple stores within the same region in the Back Office. It streamlines the setup and maintenance of distinct stores tailored to various customer segments, regions, or product categories.
17+
*Dynamic Multistore* (DMS) lets you create and manage multiple stores within the same region in the Back Office. It streamlines the setup and maintenance of distinct stores tailored to various customer segments, regions, or product categories.
1818

1919
In the Back Office, in the **Administration&nbsp;<span aria-label="and then">></span> Stores**, you can view the list of stores in the current region. The **Stores** page shows all the stores within a specific region.
2020

@@ -106,9 +106,58 @@ To avoid manually assigning entities in the Back Office, you can assign them usi
106106

107107
## Differences in modes
108108

109-
## Deployment file difference
109+
This section describes the differences in different parts of application in DMS on and off modes.
110110

111-
### Environment variable section
111+
112+
113+
## Differences between applications with and without Dynamic Multistore
114+
115+
In this example, EU region has DE and AT stores. US region has a US store. Dynamic Multistore introduces the following changes in this setup:
116+
117+
- URLs for Storefront, Back Office, Merchant Portal, and Glue API contain region instead of store name. For example–the URL of the Back Office is `https://backoffice.eu.mysprykershop.com` instead of `https://backoffice.de.mysprykershop.com`.
118+
119+
- RabbitMQ virtual hosts contain region instead of store. For example–`eu-docker` instead of `de-docker`.
120+
121+
![rabbitmq-virtual-hosts-non-dms](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/rabbitmq-virtual-hosts-non-dms.png)
122+
123+
![rabbitmq-virtual-hosts-dms](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/rabbitmq-virtual-hosts-dms.png)
124+
125+
- Jenkins job names contain region instead of store. For example–`EU_queue-worker-start` instead of `DE_queue-worker-start`.
126+
127+
![jenkins-jobs-non-dms](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/jenkins-jobs-non-dms.png)
128+
129+
![jenkins-jobs-dms](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/jenkins-jobs-dms.png)
130+
131+
- Elasticsearch indexes contain store as a part of the index name for Dynamic Multistore enabled and disabled modes.
132+
133+
![elasticsearch-indexes-non-dms](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/elasticsearch-indexes-non-dms.png)
134+
135+
![elasticsearch-indexes-dms](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/elasticsearch-indexes-dms.png)
136+
137+
- Redis keys contain store as a part of the key name for Dynamic Multistore enabled and disabled modes.
138+
139+
- When Dynamic Multistore is enabled, customers can switch between available stores for a region. When a customer changes a store, it's set to the `_store` query parameter. Using the query parameter, the store is added to session under the `current_store` key. It's used for fetching store-related data.
140+
141+
![storefront-store-switcher](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/storefront-store-switcher.png)
142+
143+
144+
145+
### Store context in different applications with Dynamic Multistore
146+
147+
All the applications work with the several stores within one region with the following differences:
148+
* Back Office and Merchant Portal operate with data from all the stores within a region and don't require a store context.
149+
* Storefront, GlueStorefront, and Glue require a store context and operate within only one provided store. If a store isn't provided, the default one is used.
150+
151+
### Cloud infrastructure differences
152+
153+
DMS doesn't affect cloud infrastructure. The only related changes are in the deployment files, which are described in the following sections.
154+
155+
156+
### Deployment file differences
157+
158+
Applacation configurations are defined differently depending on whether DMS is on or off.
159+
160+
#### Environment variables configuration
112161

113162
DMS off:
114163

@@ -132,7 +181,7 @@ SPRYKER_DYNAMIC_STORE_MODE: true
132181
SPRYKER_YVES_HOST_EU: yves.eu.{{DOMAIN_ZONE}}
133182
```
134183
135-
### Regions section
184+
#### Regions configuration
136185
137186
DMS off:
138187
@@ -173,9 +222,9 @@ regions:
173222
```
174223
175224
176-
### Applications section
225+
#### Applications configuration
177226
178-
The following examples the difference for one application. The difference is similar for all the applications.
227+
The following examples show the difference for the `merchant-portal` application. The difference is similar for all the applications.
179228

180229
DMS off:
181230

@@ -216,11 +265,11 @@ mportal:
216265

217266
{% info_block infoBox "" %}
218267

219-
The domain structure is changed to enable store switching within the same domain.
268+
The domain structure in DMS on mode enables store switching within the same domain.
220269

221270
{% endinfo_block %}
222271

223-
## Difference in the execution of console commands
272+
### Differences in the execution of console commands
224273

225274
With DMS off, store-aware console commands are executed with the `APPLICATION_STORE` environment variable. Example:
226275

@@ -236,46 +285,23 @@ console search:setup:sources --store=DE
236285

237286
If a store isn't provided as a parameter, the command is executed for all stores within a current region.
238287

239-
### Rules for implementing custom console commands in environments with Dynamic Multistore
288+
#### Rules for implementing custom console commands in environments with Dynamic Multistore
240289

241290
- `Store(Facade|Client)::getCurrentStore()` must not be used in the code the console command executes.
242291
- All store-aware commands must implement `Spryker\Zed\Kernel\Communication\Console\StoreAwareConsole` and execute actions for a specific store if the store parameter is provided; if not provided, actions are executed for all the stores in the region.
243292
- We recommend using the `--store` parameter instead of `APPLICATION_STORE` env variable; both methods are supported.
244293

245-
## How Dynamic Multistore affects a project
246-
247-
In this example, EU region has DE and AT stores. US region has a US store. Dynamic Multistore introduces the following changes in this setup:
248-
249-
- URLs for Storefront, Back Office, Merchant Portal, and Glue API contain region instead of store name. For example–the URL of the Back Office is `https://backoffice.eu.mysprykershop.com` instead of `https://backoffice.de.mysprykershop.com`.
250-
251-
- RabbitMQ virtual hosts contain region instead of store. For example–`eu-docker` instead of `de-docker`.
252-
253-
![rabbitmq-virtual-hosts-non-dms](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/rabbitmq-virtual-hosts-non-dms.png)
254-
255-
![rabbitmq-virtual-hosts-dms](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/rabbitmq-virtual-hosts-dms.png)
256-
257-
- Jenkins job names contain region instead of store. For example–`EU_queue-worker-start` instead of `DE_queue-worker-start`.
258-
259-
![jenkins-jobs-non-dms](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/jenkins-jobs-non-dms.png)
260-
261-
![jenkins-jobs-dms](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/jenkins-jobs-dms.png)
262-
263-
- Elasticsearch indexes contain store as a part of the index name for Dynamic Multistore enabled and disabled modes.
264-
265-
![elasticsearch-indexes-non-dms](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/elasticsearch-indexes-non-dms.png)
266294

267-
![elasticsearch-indexes-dms](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/elasticsearch-indexes-dms.png)
295+
### Store-specific entities in Data Exchange API
268296

269-
- Redis keys contain store as a part of the key name for Dynamic Multistore enabled and disabled modes.
297+
There're no specific requirements, and the changes you need to make depend on the database structure. These entities should be handled in the same way as any other exposed through Data Exchange API database table.
270298

271-
- When Dynamic Multistore is enabled, customers can switch between available stores for a region. When a customer changes a store, it's set to the `_store` query parameter. Using the query parameter, the store is added to session under the `current_store` key. It's used for fetching store-related data.
272299

273-
![storefront-store-switcher](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/dynamic-multistore/base-shop/dynamic-multistore-feature-overview.md/storefront-store-switcher.png)
274300

275301
## Data import performance
276302

277303
The number of stores affects data import speed: the more stores you have, the slower the data import. Importing products for 40 stores takes approximately 5 times longer than for 8 stores.
278304

279305
## Limitations
280306

281-
With Dynamic Multistore, the separated setup is only possible with stores belonging to different regions. To learn about setups, see [Multi-store setups](/docs/ca/dev/multi-store-setups/multi-store-setups.html)
307+
With Dynamic Multistore, the separated setup is only possible with stores belonging to different regions. To learn about setups, see [Multi-store setups](/docs/ca/dev/multi-store-setups/multi-store-setups.html).

0 commit comments

Comments
 (0)