From c283edcf125424edb86343b8059dd5ee25206367 Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Mon, 8 Jan 2024 16:58:27 +0200 Subject: [PATCH 01/23] ACP:383 adjusted algolia docs --- .../algolia/integrate-algolia.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md index e6fed88d0b6..f8f84b3a2fb 100644 --- a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md +++ b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md @@ -55,22 +55,15 @@ $config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ SearchEndpointRemovedTransfer::class => 'search-commands', ]; -$config[MessageBrokerConstants::CHANNEL_TO_TRANSPORT_MAP] = [ - //... - 'product-commands' => MessageBrokerAwsConfig::SQS_TRANSPORT, - 'search-commands' => MessageBrokerAwsConfig::SQS_TRANSPORT, - 'product-events' => 'http', -]; - $config[MessageBrokerAwsConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ //... - 'product-commands' => MessageBrokerAwsConfig::SQS_TRANSPORT, - 'search-commands' => MessageBrokerAwsConfig::SQS_TRANSPORT, + 'product-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, + 'search-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, ]; $config[MessageBrokerAwsConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ //... - 'product-events' => 'http', + 'product-events' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, ]; ``` @@ -204,6 +197,7 @@ class CatalogDependencyProvider extends SprykerCatalogDependencyProvider SearchHttpConfig::TYPE_SEARCH_HTTP => [ new BasicSearchHttpQueryExpanderPlugin(), new ProductPriceSearchHttpQueryExpanderPlugin(), + new MerchantReferenceSearchHttpQueryExpanderPlugin(), (only for marketplace) new FacetSearchHttpQueryExpanderPlugin(), ], ]; @@ -315,6 +309,7 @@ namespace Pyz\Client\SearchHttp; use Spryker\Client\Catalog\Plugin\ConfigTransferBuilder\CategoryFacetConfigTransferBuilderPlugin; use Spryker\Client\Catalog\Plugin\SearchHttp\CatalogSearchHttpConfigBuilderPlugin; use Spryker\Client\CatalogPriceProductConnector\Plugin\ConfigTransferBuilder\PriceFacetConfigTransferBuilderPlugin; +use Spryker\Client\MerchantProductSearch\Plugin\Search\MerchantProductMerchantNameSearchConfigExpanderPlugin; use Spryker\Client\ProductLabelStorage\Plugin\ProductLabelFacetConfigTransferBuilderPlugin; use Spryker\Client\ProductReview\Plugin\RatingFacetConfigTransferBuilderPlugin; use Spryker\Client\ProductSearchConfigStorage\Plugin\Config\ProductSearchConfigExpanderPlugin; @@ -352,6 +347,7 @@ class SearchHttpDependencyProvider extends SprykerSearchHttpDependencyProvider { return [ new ProductSearchConfigExpanderPlugin(), + new MerchantProductMerchantNameSearchConfigExpanderPlugin(), # for marketplace only ]; } } @@ -364,6 +360,7 @@ Add the following code to `src/Pyz/Zed/MessageBroker/MessageBrokerDependencyProv ```php //... +use Spryker\Zed\Merchant\Communication\Plugin\MessageBroker\MerchantMessageHandlerPlugin; use Spryker\Zed\Product\Communication\Plugin\MessageBroker\InitializeProductExportMessageHandlerPlugin; use Spryker\Zed\SearchHttp\Communication\Plugin\MessageBroker\SearchEndpointAvailableMessageHandlerPlugin; use Spryker\Zed\SearchHttp\Communication\Plugin\MessageBroker\SearchEndpointRemovedMessageHandlerPlugin; @@ -383,6 +380,7 @@ class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProv //... new ProductExportMessageHandlerPlugin(), new SearchEndpointMessageHandlerPlugin(), + new MerchantMessageHandlerPlugin(), # for marketplace only ]; } From 16b6aeb60becc441df8f5f336b84e74ea82791de Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Tue, 9 Jan 2024 10:47:26 +0200 Subject: [PATCH 02/23] ACP:383 adjusted payone docs --- .../integrate-payone.md | 337 +++++++++++++++++- 1 file changed, 328 insertions(+), 9 deletions(-) diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index a6471523b78..3f424ac069b 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -15,13 +15,13 @@ Before you can integrate Payone, make sure that your project is ACP-enabled. See The Payone app requires the following Spryker modules: -* `spryker/message-broker: ^1.3.0` -* `spryker/message-broker-aws: ^1.3.2` -* `spryker/payment: ^5.10.0` -* `spryker/sales: ^11.32.0` -* `spryker/sales-return: ^1.4.0` -* `spryker-shop/checkout-page: ^3.21.0` -* `spryker-shop/payment-page: ^1.2.0` +* `spryker/message-broker: ^1.9.0` +* `spryker/message-broker-aws: ^1.5.0` +* `spryker/payment: ^5.15.0` +* `spryker/sales: ^11.41.0` +* `spryker/sales-return: ^1.5.0` +* `spryker-shop/checkout-page: ^3.24.0` +* `spryker-shop/payment-page: ^1.3.0` * `spryker/oms: ^11.21.0` * `spryker/sales-payment: ^1.2.0` @@ -59,11 +59,15 @@ The Payone app requires the following Spryker modules: If the app was connected successfully, a corresponding message appears, and the app status changes to **Connected**. The payment methods you've selected in step 8, appear in **Administration > Payment methods**: ![payone-credit-card](https://spryker.s3.eu-central-1.amazonaws.com/docs/aop/user/apps/payone/payone-credit-card.png). -## 3. Add Payone domain to your allowlist +## 3. Integrate Payone + +Follow these steps to integrate Payone. + +### Add Payone domain to your allowlist To enable Payone to redirect your customers to their 3D Secure page and later to your success page, you must add the ACP domain inside your **Content Security Policy** allowlist. To do that, change your `deploy.yml` file or your `config/Shared/config_default.php` file if changing the environment variable is not possible. - In the `deploy.yml` file, introduce the required changes: +In the `deploy.yml` file, introduce the required changes: ```yml image: @@ -83,6 +87,321 @@ Alternatively, you may add the domain to the allowlist from the `config/Shared/c $config[KernelConstants::DOMAIN_WHITELIST][] = 'os.apps.aop.spryker.com'; ``` +### Configure shared configs + +Add the following config to `config/Shared/config_default.php`: + +```php +$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = +$config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ + //... + PaymentMethodAddedTransfer::class => 'payment-method-commands', + PaymentMethodDeletedTransfer::class => 'payment-method-commands', + PaymentCancelReservationRequestedTransfer::class => 'payment-commands', + PaymentConfirmationRequestedTransfer::class => 'payment-commands', + PaymentRefundRequestedTransfer::class => 'payment-commands', + PaymentPreauthorizedTransfer::class => 'payment-events', + PaymentPreauthorizationFailedTransfer::class => 'payment-events', + PaymentConfirmedTransfer::class => 'payment-events', + PaymentConfirmationFailedTransfer::class => 'payment-events', + PaymentRefundedTransfer::class => 'payment-events', + PaymentRefundFailedTransfer::class => 'payment-events', + PaymentReservationCanceledTransfer::class => 'payment-events', + PaymentCancelReservationFailedTransfer::class => 'payment-events', +]; + +$config[MessageBrokerConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ + //... + 'payment-events' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, + 'payment-method-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, +]; + +$config[MessageBrokerConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ + //... + 'payment-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, +]; + +$config[OmsConstants::PROCESS_LOCATION] = [ + //... + APPLICATION_ROOT_DIR . '/vendor/spryker/spryker/Bundles/Payment/config/Zed/Oms', # this line must be removed if exists + APPLICATION_ROOT_DIR . '/vendor/spryker/spryker/Bundles/SalesPayment/config/Zed/Oms', # this line must be added +]; + +$config[OmsConstants::ACTIVE_PROCESSES] = [ + //... + 'B2CStateMachine01', # this line must be removed if exists + 'ForeignPaymentStateMachine01', # this line must be added +]; + +$config[SalesConstants::PAYMENT_METHOD_STATEMACHINE_MAPPING] = [ + //... + PaymentConfig::PAYMENT_FOREIGN_PROVIDER => 'B2CStateMachine01', # this line must be removed if exists + PaymentConfig::PAYMENT_FOREIGN_PROVIDER => 'ForeignPaymentStateMachine01', # this line must be added +]; +``` + +### Configure dependencies in `MessageBroker` + +Add the following code to `src/Pyz/Zed/MessageBroker/MessageBrokerDependencyProvider.php`: + +```php +namespace Pyz\Zed\MessageBroker; + +use Spryker\Zed\MessageBroker\MessageBrokerDependencyProvider as SprykerMessageBrokerDependencyProvider; +use Spryker\Zed\Payment\Communication\Plugin\MessageBroker\PaymentCancelReservationFailedMessageHandlerPlugin; +use Spryker\Zed\Payment\Communication\Plugin\MessageBroker\PaymentConfirmationFailedMessageHandlerPlugin; +use Spryker\Zed\Payment\Communication\Plugin\MessageBroker\PaymentConfirmedMessageHandlerPlugin; +use Spryker\Zed\Payment\Communication\Plugin\MessageBroker\PaymentMethodMessageHandlerPlugin; +use Spryker\Zed\Payment\Communication\Plugin\MessageBroker\PaymentPreauthorizationFailedMessageHandlerPlugin; +use Spryker\Zed\Payment\Communication\Plugin\MessageBroker\PaymentPreauthorizedMessageHandlerPlugin; +use Spryker\Zed\Payment\Communication\Plugin\MessageBroker\PaymentRefundedMessageHandlerPlugin; +use Spryker\Zed\Payment\Communication\Plugin\MessageBroker\PaymentRefundFailedMessageHandlerPlugin; +use Spryker\Zed\Payment\Communication\Plugin\MessageBroker\PaymentReservationCanceledMessageHandlerPlugin; + +class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProvider +{ + /** + * @return array<\Spryker\Zed\MessageBrokerExtension\Dependency\Plugin\MessageHandlerPluginInterface> + */ + public function getMessageHandlerPlugins(): array + { + return [ + //... + new PaymentCancelReservationFailedMessageHandlerPlugin(), + new PaymentConfirmationFailedMessageHandlerPlugin(), + new PaymentConfirmedMessageHandlerPlugin(), + new PaymentPreauthorizationFailedMessageHandlerPlugin(), + new PaymentPreauthorizedMessageHandlerPlugin(), + new PaymentReservationCanceledMessageHandlerPlugin(), + new PaymentRefundedMessageHandlerPlugin(), + new PaymentRefundFailedMessageHandlerPlugin(), + new PaymentMethodMessageHandlerPlugin(), + ]; + } +} +``` + +### Configure plugins in `Checkout` + +The following plugin must be added to `src/Pyz/Zed/Checkout/CheckoutDependencyProvider.php`: + +```php +namespace Pyz\Zed\Checkout; + +use Spryker\Zed\Checkout\CheckoutDependencyProvider as SprykerCheckoutDependencyProvider; +use Spryker\Zed\Payment\Communication\Plugin\Checkout\PaymentAuthorizationCheckoutPostSavePlugin; + +class CheckoutDependencyProvider extends SprykerCheckoutDependencyProvider +{ + /** + * @param \Spryker\Zed\Kernel\Container $container + * + * @return array<\Spryker\Zed\CheckoutExtension\Dependency\Plugin\CheckoutPostSaveInterface> + */ + protected function getCheckoutPostHooks(Container $container): array + { + return [ + //... + new PaymentAuthorizationCheckoutPostSavePlugin(), + ]; + } +} +``` + +- Remove the use of the following plugins (if any): + +```php +SprykerEco\Zed\Payone\Communication\Plugin\Checkout\PayoneCheckoutDoSaveOrderPlugin; +SprykerEco\Zed\Payone\Communication\Plugin\Checkout\PayoneCheckoutPostSavePlugin; +SprykerEco\Zed\Payone\Communication\Plugin\Checkout\PayoneCheckoutPreConditionPlugin; +``` + +### Configure plugins in `CheckoutPage` + +The following plugin must be added to `src/Pyz/Yves/CheckoutPage/CheckoutPageDependencyProvider.php`: + +```php +namespace Pyz\Yves\CheckoutPage; + +use SprykerShop\Yves\CheckoutPage\CheckoutPageDependencyProvider as SprykerShopCheckoutPageDependencyProvider; +use SprykerShop\Yves\PaymentPage\Plugin\PaymentPage\PaymentForeignPaymentCollectionExtenderPlugin; + +class CheckoutPageDependencyProvider extends SprykerShopCheckoutPageDependencyProvider +{ + /** + * @return array<\SprykerShop\Yves\CheckoutPageExtension\Dependency\Plugin\PaymentCollectionExtenderPluginInterface> + */ + protected function getPaymentCollectionExtenderPlugins(): array + { + return [ + //... + new PaymentForeignPaymentCollectionExtenderPlugin(), + ]; + } +} +``` + +### Configure plugins in `Router` + +The following plugin must be added to `src/Pyz/Yves/Router/RouterDependencyProvider.php`: + +```php +namespace Pyz\Yves\Router; + +use Spryker\Yves\Router\RouterDependencyProvider as SprykerRouterDependencyProvider; +use SprykerShop\Yves\PaymentPage\Plugin\Router\PaymentPageRouteProviderPlugin; + +class RouterDependencyProvider extends SprykerRouterDependencyProvider +{ + /** + * @return array<\Spryker\Yves\RouterExtension\Dependency\Plugin\RouteProviderPluginInterface> + */ + protected function getRouteProvider(): array + { + $routeProviders = [ + //... + new PaymentPageRouteProviderPlugin(), + ]; + } +} +``` + +### Configure plugins in `Oms` + +The following file `\Pyz\Zed\Oms\OmsDependencyProvider` must be adjusted: + +- Remove the use of the following plugins (if any): + +```php +Spryker\Zed\Payment\Communication\Plugin\Command\SendEventPaymentCancelReservationPendingPlugin; +Spryker\Zed\Payment\Communication\Plugin\Command\SendEventPaymentConfirmationPendingPlugin; +Spryker\Zed\Payment\Communication\Plugin\Command\SendEventPaymentRefundPendingPlugin; +``` + +- Add next plugins: + +```php +protected function extendCommandPlugins(Container $container): Container +{ + $container->extend(self::COMMAND_PLUGINS, function (CommandCollectionInterface $commandCollection) { + //... + $commandCollection->add(new Spryker\Zed\SalesPayment\Communication\Plugin\Command\SendEventPaymentConfirmationPendingPlugin(), 'Payment/SendEventPaymentConfirmationPending'); + $commandCollection->add(new Spryker\Zed\SalesPayment\Communication\Plugin\Command\SendEventPaymentRefundPendingPlugin(), 'Payment/SendEventPaymentRefundPending'); + $commandCollection->add(new Spryker\Zed\SalesPayment\Communication\Plugin\Command\SendEventPaymentCancelReservationPendingPlugin(), 'Payment/SendEventPaymentCancelReservationPending'); + }); +} +``` + +### OMS configuration + +One single OMS file is now divided into the main process and sub-processes: +The following file must be changed `ForeignPaymentStateMachine01.xml`: + +```xml + + + + PaymentAuthorization + PaymentConfirmation + ItemSupply + ItemReturn + PaymentRefund + PaymentReservationCancel + ItemClose + +... +``` + +Main process not only combines and operates sub-processes, its main goal to build everything around the only reserved=”true” state named invoiced; +Each sub-process has its own states, events, transitions, entry and exit points and can be extended/expanded at the project level to meet all the needs of a particular tenant: + +```xml + +``` + +### Data and presentation changes + +New glossary keys were added and they require a few additional actions. Please add the following glossary keys to your glossary data import file: + +```csv +... +payment_foreign.thank_you,Danke,de_DE +payment_foreign.thank_you,Thank you,en_US +payment_foreign.go_to_my_account,Gehe zum "Benutzerkonto",de_DE +payment_foreign.go_to_my_account,Go to "My Account",en_US +payment_foreign.success.order.placement.message,Deine Bestellung ist erfolgreich bei uns eingegangen. Die Bestellbestätigung wurde soeben per E-Mail versendet. In deinem Benutzerkonto kannst deine Bestellung überprüfen und nachverfolgen.,de_DE +payment_foreign.success.order.placement.message,Your order has been paid successfully. You will receive your order confirmation email in a few minutes. You can check and track your order in your account.,en_US +payment.cancellation.title,Bezahlvorgang abgebrochen,de_DE +payment.cancellation.title,Payment cancellation,en_US +payment.cancellation.message,Du hast den Bezahlvorgang abgebrochen.,de_DE +payment.cancellation.message,You have cancelled your payment.,en_US +oms.state.reservation-cancelled,Reservation Cancelled,en_US +oms.state.reservation-cancelled,Reservation Cancelled,de_DE +oms.state.reservation-cancellation-pending,Reservation Cancellation Pending,en_US +oms.state.reservation-cancellation-pending,Reservation Cancellation Pending,de_DE +``` +Then run the data import for the glossary: + +```bash +vendor/bin/console data:import glossary +``` + +### Template changes in `CheckoutPage` + +Please be aware that if you have rewritten `@CheckoutPage/views/payment/payment.twig` on the project level: + +- You should check that for payment selection choices a form molecule uses the following code: + +```twig +{% for name, choices in data.form.paymentSelection.vars.choices %} + ... + {% embed molecule('form') with { + data: { + form: data.form[data.form.paymentSelection[key].vars.name], + ... +``` + +- Payment provider names now have glossary keys instead of a name itself, so you need to check if the names of the payment providers are translated without using the prefix: + +```twig +{% for name, choices in data.form.paymentSelection.vars.choices %} + ... +
{{ name | trans }}
+``` + +- Also, if you need, you can add the glossary keys for all the new (external) payment providers and methods to your glossary data import file. For example, there is 1 new external payment with the provider name Payone (can be found in spy_payment_method table in group_name column) and the payment method name Credit Card (can be found in spy_payment_method table in label_name column). For all of them, you can add translations to your glossary data import file like this: + +```csv +... +Payone,Payone Payments,en_US +Credit Card,Credit Card (Payone),en_US +``` +Then run the data import for the glossary: + +```bash +vendor/bin/console data:import glossary +``` + +### Console command for receiving messages + +To receive messages from the Message Bus channel execute the following console command: + +```bash +console message-broker:consume +``` + +This command must be executed periodically. To achieve this, configure Jenkins in `config/Zed/cronjobs/jenkins.php`: + +```php +$jobs[] = [ + 'name' => 'message-broker-consume-channels', + 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=15 --sleep=5', + 'schedule' => '* * * * *', + 'enable' => true, + 'stores' => $allStores, +]; +``` + ## Next steps [Activate the added payment methods](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/manage-in-the-back-office/edit-payment-methods.html) From 536ea9ebb5aa7800e680152069bd070caf617665 Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Tue, 9 Jan 2024 13:25:19 +0200 Subject: [PATCH 03/23] ACP:383 adjusted bv and uc docs --- .../integrate-payone.md | 2 +- .../integrate-bazaarvoice.md | 166 +++++++++++++++--- .../usercentrics/integrate-usercentrics.md | 143 ++++++++++++++- 3 files changed, 279 insertions(+), 32 deletions(-) diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index 3f424ac069b..e0843db8545 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -59,7 +59,7 @@ The Payone app requires the following Spryker modules: If the app was connected successfully, a corresponding message appears, and the app status changes to **Connected**. The payment methods you've selected in step 8, appear in **Administration > Payment methods**: ![payone-credit-card](https://spryker.s3.eu-central-1.amazonaws.com/docs/aop/user/apps/payone/payone-credit-card.png). -## 3. Integrate Payone +## 3. Manual Payone integration Follow these steps to integrate Payone. diff --git a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md index 79df70bbff8..cda9e9a8aab 100644 --- a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md +++ b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md @@ -14,19 +14,19 @@ Before you can integrate Bazaarvoice, make sure that your project is ACP-enabled The Bazaarvoice app requires the following Spryker modules: -* `spryker/asset: ^1.3.0` -* `spryker/asset-storage: ^1.1.0` +* `spryker/asset: ^1.6.0` +* `spryker/asset-storage: ^1.2.1` * `spryker/merchant-profile: ^1.2.1` (Marketplace only) -* `spryker/message-broker: ^1.3.0` -* `spryker/message-broker-aws: ^1.4.1` +* `spryker/message-broker: ^1.9.0` +* `spryker/message-broker-aws: ^1.5.0` * `spryker/oms: ^11.25.0` -* `spryker/product-review: ^2.10.0` -* `spryker/product-review-gui: ^1.5.0` +* `spryker/product-review: ^2.11.2` +* `spryker/product-review-gui: ^1.6.0` * `spryker-shop/asset-widget: ^1.0.0` -* `spryker-shop/cart-page: ^3.32.0` -* `spryker-shop/product-detail-page: ^3.17.0` -* `spryker-shop/product-category-widget: ^1.6.0` -* `spryker-shop/shop-ui: ^1.62.0` +* `spryker-shop/cart-page: ^3.38.0` +* `spryker-shop/product-detail-page: ^3.19.1` +* `spryker-shop/product-category-widget: ^1.7.0` +* `spryker-shop/shop-ui: ^1.71.0` * `spryker-shop/checkout-page: ^3.23.0` * `spryker-shop/merchant-page: ^1.1.0` (Marketplace only) * `spryker-shop/merchant-profile-widget: ^1.1.0` (Marketplace only) @@ -56,7 +56,7 @@ image: }' ``` -2. Update the `config/Shared/config_default.php` file: +Alternatively, you may add the domain to the allowlist from the `config/Shared/config_default.php` file. If you updated the `deploy.yml` file, this step can be ignored. ```php $config[KernelConstants::DOMAIN_WHITELIST][] = '*.bazaarvoice.com'; @@ -97,6 +97,7 @@ Example:
+
@@ -190,31 +191,36 @@ Example: ### 3. Configure a message broker -Add the following configuration to `config/Shared/common/config_default.php`: +Add the following configuration to `config/Shared/config_default.php`: + ```php use \Generated\Shared\Transfer\AddReviewsTransfer; use \Generated\Shared\Transfer\OrderStatusChangedTransfer; use \Spryker\Zed\MessageBrokerAws\MessageBrokerAwsConfig; - //... -$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = [ - //..., +$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = +$config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ + //... + AssetAddedTransfer::class => 'asset-commands', + AssetUpdatedTransfer::class => 'asset-commands', + AssetDeletedTransfer::class => 'asset-commands', + OrderStatusChangedTransfer::class => 'order-events', AddReviewsTransfer::class => 'product-review-commands', - OrderStatusChangedTransfer::class => 'order-events' ]; -$config[MessageBrokerConstants::CHANNEL_TO_TRANSPORT_MAP] = -$config[MessageBrokerAwsConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ - //..., - 'product-review-commands' => MessageBrokerAwsConfig::SQS_TRANSPORT, +$config[MessageBrokerConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ + //... + 'asset-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, + 'product-review-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, ]; -$config[MessageBrokerAwsConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ - //..., - 'order-events' => 'http', +$config[MessageBrokerConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ + //... + 'order-events' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, ]; ``` + #### Add a message handler Add the following plugin to `src/Pyz/Zed/MessageBroker/MessageBrokerDependencyProvider.php`: @@ -227,12 +233,85 @@ Add the following plugin to `src/Pyz/Zed/MessageBroker/MessageBrokerDependencyPr { return [ //..., + new AssetMessageHandlerPlugin(), new ProductReviewAddReviewsMessageHandlerPlugin(), ]; } ``` -#### Receive messages +### 4. Configure synchronization + +To configure Synchronization, follow these steps: + +#### Configure plugins in `Publisher` + +The following plugin must be added to `src/Pyz/Zed/Publisher/PublisherDependencyProvider.php`: + +```php +namespace Pyz\Zed\Publisher; + +use Spryker\Zed\AssetStorage\Communication\Plugin\Publisher\Asset\AssetDeletePublisherPlugin; +use Spryker\Zed\AssetStorage\Communication\Plugin\Publisher\Asset\AssetWritePublisherPlugin; +use Spryker\Zed\Publisher\PublisherDependencyProvider as SprykerPublisherDependencyProvider; + +class PublisherDependencyProvider extends SprykerPublisherDependencyProvider +{ + /** + * @return array<\Spryker\Zed\PublisherExtension\Dependency\Plugin\PublisherPluginInterface> + */ + protected function getAssetStoragePlugins(): array + { + return [ + new AssetWritePublisherPlugin(), + new AssetDeletePublisherPlugin(), + ]; + } +} +``` + +#### Configure plugins in `Synchronization` + +The following plugin must be added to `src/Pyz/Zed/Synchronization/SynchronizationDependencyProvider.php`: + +```php +namespace Pyz\Zed\Synchronization; + +use Spryker\Zed\AssetStorage\Communication\Plugin\Synchronization\AssetStorageSynchronizationDataPlugin; +use Spryker\Zed\Synchronization\SynchronizationDependencyProvider as SprykerSynchronizationDependencyProvider; + +class SynchronizationDependencyProvider extends SprykerSynchronizationDependencyProvider +{ + protected function getSynchronizationDataPlugins(): array + { + return [ + new AssetStorageSynchronizationDataPlugin(), + ]; + } +} +``` + +#### Configure RabbitMq in `Client` + +The following plugin must be added to `src/Pyz/Client/RabbitMq/RabbitMqConfig.php`: + +```php +namespace Pyz\Client\RabbitMq; + +use Spryker\Client\RabbitMq\RabbitMqConfig as SprykerRabbitMqConfig; +use Spryker\Shared\AssetStorage\AssetStorageConfig; + +class RabbitMqConfig extends SprykerRabbitMqConfig +{ + protected function getSynchronizationQueueConfiguration(): array + { + return [ + AssetStorageConfig::ASSET_SYNC_STORAGE_QUEUE, + ]; + } +} +``` + +### 5. Receive messages 1. To receive messages from the channel, the following command is used: @@ -245,14 +324,14 @@ console message-broker:consume ```php $jobs[] = [ 'name' => 'message-broker-consume-channels', - 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=15', + 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=15 --sleep=5', 'schedule' => '* * * * *', 'enable' => true, 'stores' => $allStores, ]; ``` -### 4. Configure OMS +### 6. Configure OMS To configure OMS, follow these steps: @@ -327,6 +406,41 @@ protected function getOrderHydrationPlugins(): array } ``` +### 7. Configure DataImport + +To configure DataImport, follow these steps: + +#### Extend csv files + +Add the following data to `data/import/common/common/product_abstract.csv`: + +```csv +Add 2 columns, for example, attribute_key_7 and value_7 with UPCs, for example +attribute_key_7 = upcs, value_7 = 12345678 +``` + +Add the following data to `data/import/common/common/product_concrete.csv`: + +```csv +Add UPCs into columns, for example +attribute_key_2 = upcs, value_2 = 12345678 +update UPC for an abstract product with the same abstract_sku +``` + +Add the following data to `data/import/common/common/product_attribute_key.csv`: + +```csv +Add a new row with the data +upcs,0 to enable support of UPC +``` + +Add the following data to `data/import/common/common/product_management_attribute.csv`: + +```csv +Add a new row with the data +upcs,select,yes,yes,,UPCs,UPCs,, +``` + ## Next steps [Configure the Bazaarvoice app](/docs/pbc/all/ratings-reviews/{{site.version}}/third-party-integrations/configure-bazaarvoice.html) for your store. diff --git a/docs/pbc/all/usercentrics/integrate-usercentrics.md b/docs/pbc/all/usercentrics/integrate-usercentrics.md index cac4fd39ded..ac4f987c086 100644 --- a/docs/pbc/all/usercentrics/integrate-usercentrics.md +++ b/docs/pbc/all/usercentrics/integrate-usercentrics.md @@ -18,13 +18,13 @@ Before you can integrate Usercentrics, make sure that your project is ACP-enable The UserCentrics app requires the following Spryker modules: -* `spryker/asset: ^1.3.0` -* `spryker/asset-storage: ^1.1.0` -* `spryker/message-broker: ^1.3.0` -* `spryker/message-broker-aws: ^1.3.2` +* `spryker/asset: ^1.6.0` +* `spryker/asset-storage: ^1.2.1` +* `spryker/message-broker: ^1.9.0` +* `spryker/message-broker-aws: ^1.5.0` * `spryker/message-broker-extension: ^1.1.0` * `spryker-shop/asset-widget: ^1.0.0` -* `spryker-shop/shop-ui: ^1.62.0` +* `spryker-shop/shop-ui: ^1.71.0` ## Integration @@ -94,6 +94,139 @@ To use Usercentrics with the Google Tag Manager, make sure the following applies - In the Google Tag Manager UI, configure the variables and triggers to work with Usercentrics. For details about how to do that, see [Google Tag Manager Configuration](https://docs.usercentrics.com/#/browser-sdk-google-tag-manager-configuration). +## Manual Usercentics integration + +Follow these steps to integrate Usercentics. + +### Configure shared configs + +Add the following config to `config/Shared/config_default.php`: + +```php +$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = +$config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ + AssetAddedTransfer::class => 'asset-commands', + AssetUpdatedTransfer::class => 'asset-commands', + AssetDeletedTransfer::class => 'asset-commands', +]; + +$config[MessageBrokerConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ + 'asset-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, +]; +``` + +### Configure dependencies in `MessageBroker` + +Add the following code to `src/Pyz/Zed/MessageBroker/MessageBrokerDependencyProvider.php`: + +```php +namespace Pyz\Zed\MessageBroker; + +use Spryker\Zed\MessageBroker\MessageBrokerDependencyProvider as SprykerMessageBrokerDependencyProvider; +use Spryker\Zed\Asset\Communication\Plugin\MessageBroker\AssetMessageHandlerPlugin; + +class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProvider +{ + /** + * @return array<\Spryker\Zed\MessageBrokerExtension\Dependency\Plugin\MessageHandlerPluginInterface> + */ + public function getMessageHandlerPlugins(): array + { + return [ + new AssetMessageHandlerPlugin(), + ]; + } +} +``` + +### Configure dependencies in `Publisher` + +Add the following code to `src/Pyz/Zed/Publisher/PublisherDependencyProvider.php`: + +```php +namespace Pyz\Zed\Publisher; + +use Spryker\Zed\AssetStorage\Communication\Plugin\Publisher\Asset\AssetDeletePublisherPlugin; +use Spryker\Zed\AssetStorage\Communication\Plugin\Publisher\Asset\AssetWritePublisherPlugin; +use Spryker\Zed\Publisher\PublisherDependencyProvider as SprykerPublisherDependencyProvider; + +class PublisherDependencyProvider extends SprykerPublisherDependencyProvider +{ + /** + * @return array<\Spryker\Zed\PublisherExtension\Dependency\Plugin\PublisherPluginInterface> + */ + protected function getAssetStoragePlugins(): array + { + return [ + new AssetWritePublisherPlugin(), + new AssetDeletePublisherPlugin(), + ]; + } +} +``` + +### Configure dependencies in `Synchronization` + +Add the following code to `src/Pyz/Zed/Synchronization/SynchronizationDependencyProvider.php`: + +```php +namespace Pyz\Zed\Synchronization; + +use Spryker\Zed\AssetStorage\Communication\Plugin\Synchronization\AssetStorageSynchronizationDataPlugin; +use Spryker\Zed\Synchronization\SynchronizationDependencyProvider as SprykerSynchronizationDependencyProvider; + +class SynchronizationDependencyProvider extends SprykerSynchronizationDependencyProvider +{ + protected function getSynchronizationDataPlugins(): array + { + return [ + new AssetStorageSynchronizationDataPlugin(), + ]; + } +} +``` + +### Configure RabbitMq in `Client` + +Add the following code to `src/Pyz/Client/RabbitMq/RabbitMqConfig.php`: + +```php +namespace Pyz\Client\RabbitMq; + +use Spryker\Client\RabbitMq\RabbitMqConfig as SprykerRabbitMqConfig; +use Spryker\Shared\AssetStorage\AssetStorageConfig; + +class RabbitMqConfig extends SprykerRabbitMqConfig +{ + protected function getSynchronizationQueueConfiguration(): array + { + return [ + AssetStorageConfig::ASSET_SYNC_STORAGE_QUEUE, + ]; + } +} +``` + +### Console command for receiving messages + +To receive messages from the Message Bus channel execute the following console command: + +```bash +console message-broker:consume +``` + +This command must be executed periodically. To achieve this, configure Jenkins in `config/Zed/cronjobs/jenkins.php`: + +```php +$jobs[] = [ + 'name' => 'message-broker-consume-channels', + 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=15 --sleep=5', + 'schedule' => '* * * * *', + 'enable' => true, + 'stores' => $allStores, +]; +``` + ## Next steps [Configure the Usercentrics app](/docs/pbc/all/usercentrics/configure-usercentrics.html) for your store. From 9de79c2a3d5bd0c937d0e6883776b0135684d11f Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Tue, 9 Jan 2024 15:26:43 +0200 Subject: [PATCH 04/23] ACP:383 adjusted general info --- .../app-composition-platform-installation.md | 7 +++-- docs/pbc/all/mb2-receiving-messages.md | 30 +++++++++++++++++++ .../integrate-payone.md | 19 ++---------- .../integrate-bazaarvoice.md | 20 ++----------- .../algolia/integrate-algolia.md | 22 ++------------ .../usercentrics/integrate-usercentrics.md | 19 ++---------- 6 files changed, 43 insertions(+), 74 deletions(-) create mode 100644 docs/pbc/all/mb2-receiving-messages.md diff --git a/docs/acp/user/app-composition-platform-installation.md b/docs/acp/user/app-composition-platform-installation.md index acb4d11a660..ac2c5fa9a06 100644 --- a/docs/acp/user/app-composition-platform-installation.md +++ b/docs/acp/user/app-composition-platform-installation.md @@ -55,10 +55,11 @@ To get your project ACP-ready, it is important to ensure that your project modul Starting with the Spryker product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.html), the ACP catalog is included by default in the Spryker Cloud product. However, you should still make sure that your Spryker project uses the latest versions of the following modules: -* `spryker/app-catalog-gui: ^1.2.0` or later -* `spryker/message-broker: ^1.4.0` or later -* `spryker/message-broker-aws: ^1.3.2` or later +* `spryker/app-catalog-gui: ^1.4.1` or later +* `spryker/message-broker: ^1.9.0` or later +* `spryker/message-broker-aws: ^1.5.0` or later * `spryker/session: ^4.15.1` or later +* `spryker/oauth-client: ^1.4.0` or later #### App modules diff --git a/docs/pbc/all/mb2-receiving-messages.md b/docs/pbc/all/mb2-receiving-messages.md new file mode 100644 index 00000000000..2a096a4ce5d --- /dev/null +++ b/docs/pbc/all/mb2-receiving-messages.md @@ -0,0 +1,30 @@ +--- +title: Receiving ACP Messages +description: Find out how you can receive ACP messages in SCCOS. +template: howto-guide-template +last_updated: Jan 09, 2024 +--- + +This document describes how to receive ACP messages in SCCOS. + +Receive messages from all channels: +```bash +console message-broker:consume +``` + +Receive messages from the specific channel: +```bash +console message-broker:consume {channel-name} # {channel-name} is the name of the channel, like `asset-commands`. +``` + +This command must be executed periodically. To achieve this, configure Jenkins in `config/Zed/cronjobs/jenkins.php`: + +```php +$jobs[] = [ + 'name' => 'message-broker-consume-channels', + 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=15 --sleep=5', + 'schedule' => '* * * * *', + 'enable' => true, + 'stores' => $allStores, +]; +``` diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index e0843db8545..244a59c220d 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -2,6 +2,7 @@ title: Integrate Payone description: Learn how you can integrate the Payone app into your Spryker shop template: howto-guide-template +last_updated: Jan 09, 2024 redirect_from: - /docs/pbc/all/payment-service-providers/payone/integrate-payone.html - /docs/pbc/all/payment-service-provider/202311.0/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.html @@ -384,23 +385,7 @@ vendor/bin/console data:import glossary ### Console command for receiving messages -To receive messages from the Message Bus channel execute the following console command: - -```bash -console message-broker:consume -``` - -This command must be executed periodically. To achieve this, configure Jenkins in `config/Zed/cronjobs/jenkins.php`: - -```php -$jobs[] = [ - 'name' => 'message-broker-consume-channels', - 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=15 --sleep=5', - 'schedule' => '* * * * *', - 'enable' => true, - 'stores' => $allStores, -]; -``` +This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.md). ## Next steps diff --git a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md index cda9e9a8aab..42fe7d11142 100644 --- a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md +++ b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md @@ -2,7 +2,7 @@ title: Integrate Bazaarvoice description: Find out how you can integrate Bazaarvoice into your Spryker shop template: howto-guide-template -last_updated: Mar 3, 2023 +last_updated: Jan 09, 2024 redirect_from: - /docs/pbc/all/ratings-reviews/third-party-integrations/integrate-bazaarvoice.html --- @@ -313,23 +313,7 @@ class RabbitMqConfig extends SprykerRabbitMqConfig ### 5. Receive messages -1. To receive messages from the channel, the following command is used: - -```bash -console message-broker:consume -``` - -2. Because this command must be executed periodically, configure Jenkins in `config/Zed/cronjobs/jenkins.php`: - -```php -$jobs[] = [ - 'name' => 'message-broker-consume-channels', - 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=15 --sleep=5', - 'schedule' => '* * * * *', - 'enable' => true, - 'stores' => $allStores, -]; -``` +This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.md). ### 6. Configure OMS diff --git a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md index f8f84b3a2fb..aeebe4326f2 100644 --- a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md +++ b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md @@ -2,7 +2,7 @@ title: Integrate Algolia description: Find out how you can integrate Algolia into your Spryker shop template: howto-guide-template -last_updated: Sep 13, 2023 +last_updated: Jan 09, 2024 redirect_from: - /docs/pbc/all/search/202400.0/base-shop/third-party-integrations/integrate-algolia.html - /docs/pbc/all/search/202311.0/base-shop/third-party-integrations/integrate-algolia.html @@ -676,25 +676,9 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency ### Console command for receiving messages -Receive messages from the channel: +This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.md). -```bash -console message-broker:consume -``` - -This command must be executed periodically. To achieve this, configure Jenkins in `config/Zed/cronjobs/jenkins.php`: - -```php -$jobs[] = [ - 'name' => 'message-broker-consume-channels', - 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=15 --sleep=5', - 'schedule' => '* * * * *', - 'enable' => true, - 'stores' => $allStores, -]; -``` - -## Additional information on Algolia integration +### Additional information on Algolia integration When integrating Algolia, you should keep in mind some peculiarities of the SearchHTTP plugins setup and differences of the default facets. diff --git a/docs/pbc/all/usercentrics/integrate-usercentrics.md b/docs/pbc/all/usercentrics/integrate-usercentrics.md index ac4f987c086..a3c37232618 100644 --- a/docs/pbc/all/usercentrics/integrate-usercentrics.md +++ b/docs/pbc/all/usercentrics/integrate-usercentrics.md @@ -2,6 +2,7 @@ title: Integrate Usercentrics description: Find out how you can integrate Usercentrics in your Spryker shop template: howto-guide-template +last_updated: Jan 09, 2024 --- To use Usercentrics, you need an account with Usercentrics. To create it, select a [Usercentrics pricing plan](https://usercentrics.com/pricing/) and create an account that lets you access the [Usercentrics Admin Interface](https://admin.usercentrics.eu/). @@ -209,23 +210,7 @@ class RabbitMqConfig extends SprykerRabbitMqConfig ### Console command for receiving messages -To receive messages from the Message Bus channel execute the following console command: - -```bash -console message-broker:consume -``` - -This command must be executed periodically. To achieve this, configure Jenkins in `config/Zed/cronjobs/jenkins.php`: - -```php -$jobs[] = [ - 'name' => 'message-broker-consume-channels', - 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=15 --sleep=5', - 'schedule' => '* * * * *', - 'enable' => true, - 'stores' => $allStores, -]; -``` +This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.md). ## Next steps From c051c18f214bb283dc54adde7fc2292f482b835c Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Tue, 9 Jan 2024 15:31:12 +0200 Subject: [PATCH 05/23] ACP:383 remove mb2 modules from apps description --- .../payone/integration-in-the-back-office/integrate-payone.md | 2 -- .../202311.0/third-party-integrations/integrate-bazaarvoice.md | 2 -- docs/pbc/all/usercentrics/integrate-usercentrics.md | 3 --- 3 files changed, 7 deletions(-) diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index 244a59c220d..97cd7d30f34 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -16,8 +16,6 @@ Before you can integrate Payone, make sure that your project is ACP-enabled. See The Payone app requires the following Spryker modules: -* `spryker/message-broker: ^1.9.0` -* `spryker/message-broker-aws: ^1.5.0` * `spryker/payment: ^5.15.0` * `spryker/sales: ^11.41.0` * `spryker/sales-return: ^1.5.0` diff --git a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md index 42fe7d11142..440b34e9414 100644 --- a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md +++ b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md @@ -17,8 +17,6 @@ The Bazaarvoice app requires the following Spryker modules: * `spryker/asset: ^1.6.0` * `spryker/asset-storage: ^1.2.1` * `spryker/merchant-profile: ^1.2.1` (Marketplace only) -* `spryker/message-broker: ^1.9.0` -* `spryker/message-broker-aws: ^1.5.0` * `spryker/oms: ^11.25.0` * `spryker/product-review: ^2.11.2` * `spryker/product-review-gui: ^1.6.0` diff --git a/docs/pbc/all/usercentrics/integrate-usercentrics.md b/docs/pbc/all/usercentrics/integrate-usercentrics.md index a3c37232618..185f29517a6 100644 --- a/docs/pbc/all/usercentrics/integrate-usercentrics.md +++ b/docs/pbc/all/usercentrics/integrate-usercentrics.md @@ -21,9 +21,6 @@ The UserCentrics app requires the following Spryker modules: * `spryker/asset: ^1.6.0` * `spryker/asset-storage: ^1.2.1` -* `spryker/message-broker: ^1.9.0` -* `spryker/message-broker-aws: ^1.5.0` -* `spryker/message-broker-extension: ^1.1.0` * `spryker-shop/asset-widget: ^1.0.0` * `spryker-shop/shop-ui: ^1.71.0` From d296fcdc5f9e42297793944205925df2cbd9985a Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Tue, 9 Jan 2024 15:33:47 +0200 Subject: [PATCH 06/23] ACP:383 refactoring --- .../third-party-integrations/algolia/integrate-algolia.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md index aeebe4326f2..db38a1ed9e8 100644 --- a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md +++ b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md @@ -678,7 +678,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.md). -### Additional information on Algolia integration +## Additional information on Algolia integration When integrating Algolia, you should keep in mind some peculiarities of the SearchHTTP plugins setup and differences of the default facets. From feb51848168ab02c7d8b86453ce6fd671fbb6f62 Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Tue, 9 Jan 2024 17:39:19 +0200 Subject: [PATCH 07/23] ACP:383 adjusted config for app instalation --- .../app-composition-platform-installation.md | 196 +++++++++--------- 1 file changed, 103 insertions(+), 93 deletions(-) diff --git a/docs/acp/user/app-composition-platform-installation.md b/docs/acp/user/app-composition-platform-installation.md index ac2c5fa9a06..261c748e8d2 100644 --- a/docs/acp/user/app-composition-platform-installation.md +++ b/docs/acp/user/app-composition-platform-installation.md @@ -2,7 +2,7 @@ title: App Composition Platform installation description: Learn how to install the App Orchestration Platform. template: concept-topic-template -last_updated: Nov 15, 2023 +last_updated: Jan 09, 2024 redirect_from: - /docs/aop/user/intro-to-acp/acp-installation.html --- @@ -38,12 +38,13 @@ The actions and level of effort required to make your project ACP-ready may vary To make your project ACP-ready, different update steps are necessary depending on the template version on which your project was started: -- SCCOS product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.html): All the changes required for ACP readiness are already included, but you should still verify them at the project level. +- SCCOS product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md) or newer: You can skip the configuration step described in this document. + - Older versions: To get the project ACP-ready, you should complete all steps described in this document. -{% info_block infoBox "Product version earlier than 202211.0" %} +{% info_block infoBox "Product version earlier than 202311.0" %} -If you were onboarded with a version older than product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.html), please [contact us](https://support.spryker.com/). +If you were onboarded with a version older than product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md), please [contact us](https://support.spryker.com/). {% endinfo_block %} @@ -53,11 +54,11 @@ To get your project ACP-ready, it is important to ensure that your project modul #### ACP modules -Starting with the Spryker product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.html), the ACP catalog is included by default in the Spryker Cloud product. However, you should still make sure that your Spryker project uses the latest versions of the following modules: +Starting with the Spryker product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md), the ACP catalog is included by default in the Spryker Cloud product. However, you should still make sure that your Spryker project uses the latest versions of the following modules: * `spryker/app-catalog-gui: ^1.4.1` or later * `spryker/message-broker: ^1.9.0` or later -* `spryker/message-broker-aws: ^1.5.0` or later +* `spryker/message-broker-aws: ^1.6.0` or later * `spryker/session: ^4.15.1` or later * `spryker/oauth-client: ^1.4.0` or later @@ -75,9 +76,9 @@ For each app you wish to use, ensure that you have the latest app-related SCOS m ### Configure SCCOS -{% info_block infoBox "This step can be omitted for Product version later than 202211.0" %} +{% info_block infoBox "This step can be omitted for Product version later than 202311.0" %} -If your version is based on product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.html) or newer, you can skip this section! +If your version is based on product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md) or newer, you can skip this section! {% endinfo_block %} @@ -108,7 +109,6 @@ $config[KernelConstants::DOMAIN_WHITELIST] = array_merge( $config[KernelConstants::DOMAIN_WHITELIST], $aopApplicationConfiguration['APP_DOMAINS'] ?? [], ); -$config[StoreConstants::STORE_NAME_REFERENCE_MAP] = $aopApplicationConfiguration['STORE_NAME_REFERENCE_MAP'] ?? []; $config[AppCatalogGuiConstants::APP_CATALOG_SCRIPT_URL] = $aopApplicationConfiguration['APP_CATALOG_SCRIPT_URL'] ?? ''; $aopAuthenticationConfiguration = json_decode(html_entity_decode((string)getenv('SPRYKER_AOP_AUTHENTICATION')), true); @@ -116,7 +116,11 @@ $config[OauthAuth0Constants::AUTH0_CUSTOM_DOMAIN] = $aopAuthenticationConfigurat $config[OauthAuth0Constants::AUTH0_CLIENT_ID] = $aopAuthenticationConfiguration['AUTH0_CLIENT_ID'] ?? ''; $config[OauthAuth0Constants::AUTH0_CLIENT_SECRET] = $aopAuthenticationConfiguration['AUTH0_CLIENT_SECRET'] ?? ''; -$config[MessageBrokerConstants::CHANNEL_TO_TRANSPORT_MAP] = +$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = +$config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ + // Here we will define the transport map accordinally to APP (PBC) +]; + $config[MessageBrokerAwsConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ // Here we will define the receiver transport map accordinally to APP (PBC) ]; @@ -125,11 +129,24 @@ $config[MessageBrokerAwsConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ // Here we will define the sender transport map accordinally to APP (PBC) ]; -$aopInfrastructureConfiguration = json_decode(html_entity_decode((string)getenv('SPRYKER_AOP_INFRASTRUCTURE')), true); +// -------------------------------- ACP AWS -------------------------------------- +$config[MessageBrokerAwsConstants::HTTP_CHANNEL_SENDER_BASE_URL] = getenv('SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL') ?: ''; +$config[MessageBrokerAwsConstants::HTTP_CHANNEL_RECEIVER_BASE_URL] = getenv('SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_RECEIVER_BASE_URL') ?: ''; -$config[MessageBrokerAwsConstants::SQS_RECEIVER_CONFIG] = json_encode($aopInfrastructureConfiguration['SPRYKER_MESSAGE_BROKER_SQS_RECEIVER_CONFIG'] ?? []); -$config[MessageBrokerAwsConstants::HTTP_SENDER_CONFIG] = $aopInfrastructureConfiguration['SPRYKER_MESSAGE_BROKER_HTTP_SENDER_CONFIG'] ?? []; +$config[MessageBrokerConstants::IS_ENABLED] = ( + $config[MessageBrokerAwsConstants::HTTP_CHANNEL_SENDER_BASE_URL] + && $config[MessageBrokerAwsConstants::HTTP_CHANNEL_RECEIVER_BASE_URL] +); +$config[SearchHttpConstants::TENANT_IDENTIFIER] + = $config[ProductConstants::TENANT_IDENTIFIER] + = $config[MessageBrokerConstants::TENANT_IDENTIFIER] + = $config[MessageBrokerAwsConstants::CONSUMER_ID] + = $config[OauthClientConstants::TENANT_IDENTIFIER] + = $config[PaymentConstants::TENANT_IDENTIFIER] + = $config[AppCatalogGuiConstants::TENANT_IDENTIFIER] + = getenv('SPRYKER_TENANT_IDENTIFIER') ?: ''; + // ---------------------------------------------------------------------------- // ------------------------------ OAUTH --------------------------------------- // ---------------------------------------------------------------------------- @@ -147,7 +164,7 @@ $config[OauthClientConstants::OAUTH_OPTION_AUDIENCE_FOR_PAYMENT_AUTHORIZE] = 'ao ``` -1. In the `navigation.xml` file, add one more navigation item: +2. In the `navigation.xml` file, add one more navigation item: ```xml ... @@ -178,16 +195,14 @@ $config[OauthClientConstants::OAUTH_OPTION_AUDIENCE_FOR_PAYMENT_AUTHORIZE] = 'ao namespace Pyz\Zed\MessageBroker; use Spryker\Zed\MessageBroker\Communication\Plugin\MessageBroker\CorrelationIdMessageAttributeProviderPlugin; +use Spryker\Zed\MessageBroker\Communication\Plugin\MessageBroker\TenantActorMessageAttributeProviderPlugin; use Spryker\Zed\MessageBroker\Communication\Plugin\MessageBroker\TimestampMessageAttributeProviderPlugin; use Spryker\Zed\MessageBroker\Communication\Plugin\MessageBroker\TransactionIdMessageAttributeProviderPlugin; use Spryker\Zed\MessageBroker\Communication\Plugin\MessageBroker\ValidationMiddlewarePlugin; use Spryker\Zed\MessageBroker\MessageBrokerDependencyProvider as SprykerMessageBrokerDependencyProvider; -use Spryker\Zed\MessageBrokerAws\Communication\Plugin\MessageBroker\Receiver\AwsSqsMessageReceiverPlugin; -use Spryker\Zed\MessageBrokerAws\Communication\Plugin\MessageBroker\Sender\HttpMessageSenderPlugin; +use Spryker\Zed\MessageBrokerAws\Communication\Plugin\MessageBroker\Sender\HttpChannelMessageSenderPlugin; use Spryker\Zed\OauthClient\Communication\Plugin\MessageBroker\AccessTokenMessageAttributeProviderPlugin; use Spryker\Zed\Session\Communication\Plugin\MessageBroker\SessionTrackingIdMessageAttributeProviderPlugin; -use Spryker\Zed\Store\Communication\Plugin\MessageBroker\CurrentStoreReferenceMessageAttributeProviderPlugin; -use Spryker\Zed\Store\Communication\Plugin\MessageBroker\StoreReferenceMessageValidatorPlugin; class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProvider { @@ -197,7 +212,7 @@ class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProv public function getMessageSenderPlugins(): array { return [ - new HttpMessageSenderPlugin(), + new HttpChannelMessageSenderPlugin(), ]; } @@ -207,7 +222,7 @@ class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProv public function getMessageReceiverPlugins(): array { return [ - new AwsSqsMessageReceiverPlugin(), + new HttpChannelMessageReceiverPlugin(), ]; } @@ -219,10 +234,10 @@ class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProv return [ new CorrelationIdMessageAttributeProviderPlugin(), new TimestampMessageAttributeProviderPlugin(), - new CurrentStoreReferenceMessageAttributeProviderPlugin(), new AccessTokenMessageAttributeProviderPlugin(), new TransactionIdMessageAttributeProviderPlugin(), new SessionTrackingIdMessageAttributeProviderPlugin(), + new TenantActorMessageAttributeProviderPlugin(), ]; } @@ -235,21 +250,46 @@ class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProv new ValidationMiddlewarePlugin(), ]; } +} +``` + + +4. In the `MessageBrokerAwsDependencyProvider.php` file, enable the following module plugins: + +
+src/Pyz/Zed/MessageBrokerAws/MessageBrokerAwsDependencyProvider.php + +```php + + * @return list<\Spryker\Zed\MessageBrokerAwsExtension\Dependency\Plugin\HttpChannelMessageReceiverRequestExpanderPluginInterface> */ - public function getExternalValidatorPlugins(): array + protected function getHttpChannelMessageReceiverRequestExpanderPlugins(): array { return [ - new StoreReferenceMessageValidatorPlugin(), + new ConsumerIdHttpChannelMessageReceiverRequestExpanderPlugin(), + new AccessTokenHttpChannelMessageReceiverRequestExpanderPlugin(), ]; } } ```
-4. In the `MessageBrokerConfig.php` file, adjust the following module config: +5. In the `MessageBrokerConfig.php` file, adjust the following module config: **src/Pyz/Zed/MessageBroker/MessageBrokerConfig.php**: @@ -284,9 +324,7 @@ class MessageBrokerConfig extends SprykerMessageBrokerConfig } ``` -5. In the `OauthClientDependencyProvider.php` file, enable the following module plugins: - -In the `MessageBrokerConfig.php`, adjust the following module config: +6. In the `OauthClientDependencyProvider.php` file, enable the following module plugins:
src/Pyz/Zed/OauthClient/OauthClientDependencyProvider.php @@ -301,9 +339,10 @@ In the `MessageBrokerConfig.php`, adjust the following module config: namespace Pyz\Zed\OauthClient; +use Spryker\Zed\MessageBroker\Communication\Plugin\OauthClient\TenantIdentifierAccessTokenRequestExpanderPlugin; use Spryker\Zed\OauthAuth0\Communication\Plugin\OauthClient\Auth0OauthAccessTokenProviderPlugin; +use Spryker\Zed\OauthAuth0\Communication\Plugin\OauthClient\CacheKeySeedAccessTokenRequestExpanderPlugin; use Spryker\Zed\OauthClient\OauthClientDependencyProvider as SprykerOauthClientDependencyProvider; -use Spryker\Zed\Store\Communication\Plugin\OauthClient\CurrentStoreReferenceAccessTokenRequestExpanderPlugin; class OauthClientDependencyProvider extends SprykerOauthClientDependencyProvider { @@ -323,25 +362,20 @@ class OauthClientDependencyProvider extends SprykerOauthClientDependencyProvider protected function getAccessTokenRequestExpanderPlugins(): array { return [ - new CurrentStoreReferenceAccessTokenRequestExpanderPlugin(), + new CacheKeySeedAccessTokenRequestExpanderPlugin(), + new TenantIdentifierAccessTokenRequestExpanderPlugin(), ]; } } ```
-### 3. Update the SCCOS deploy.yml file +#### Provide ACP-related SCCOS environment variables This section describes the variables that you must configure for use within your SCCOS AWS environment. You need to define the environment variables in the `deploy.yml` file of *each* SCCOS environment like testing, staging, and production. There will be multiple general environment variables that in turn will contain several configurations. -{% info_block warningBox "Warning" %} - -It is crucial to specify the keys for the environment variables. The infrastructure values, such as `SPRYKER_AOP_INFRASTRUCTURE` and `STORE_NAME_REFERENCE_MAP`, are provided by Spryker OPS upon request. - -{% endinfo_block %} - General structure: ```json @@ -355,58 +389,56 @@ Data structure example for a demo environment connected to the Spryker ACP produ ```json #AOP +SPRYKER_TENANT_IDENTIFIER: "tenant-<>" + +SPRYKER_AOP_AUTHENTICATION: '{ + "AUTH0_CUSTOM_DOMAIN": "spryker-prod.eu.auth0.com", + "AUTH0_CLIENT_SECRET": "<>", + "AUTH0_CLIENT_ID": "<>" +}' + SPRYKER_AOP_APPLICATION: '{ "APP_CATALOG_SCRIPT_URL": "https://app-catalog.atrs.spryker.com/loader", - "STORE_NAME_REFERENCE_MAP": {"DE": "tenant_messages_for_store_reference_AOP_Demo_Production-DE.fifo", "AT": "tenant_messages_for_store_reference_AOP_Demo_Production-AT.fifo"}, "APP_DOMAINS": [ "os.apps.aop.spryker.com", "*.bazaarvoice.com" ] }' -SPRYKER_AOP_INFRASTRUCTURE: '{ - "SPRYKER_MESSAGE_BROKER_HTTP_SENDER_CONFIG": { - "endpoint":"https:\/\/events.atrs.spryker.com\/events\/tenant" - }, - "SPRYKER_MESSAGE_BROKER_SQS_RECEIVER_CONFIG": { - "default": { - "endpoint":"https:\/\/sqs.eu-central-1.amazonaws.com", - "region":"eu-central-1", - "auto_setup":false, - "buffer_size":1 - }, - "DE": { - "queue_name":"tenant_messages_for_store_reference_AOP_Demo_Production-DE.fifo" - }, - "AT": { - "queue_name":"tenant_messages_for_store_reference_AOP_Demo_Production-AT.fifo" - } - } -}' +SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL: "https://publish.mb.spryker.com/" +SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_RECEIVER_BASE_URL: "https://consume.mb.spryker.com/" ``` -#### General configurations: SPRYKER_AOP_APPLICATION variable +### General configurations: SPRYKER_TENANT_IDENTIFIER variable -The configuration key `APP_CATALOG_SCRIPT_URL` is a URL for the App-Tenant-Registry-Service (ATRS) and the path to the JS script to load the ACP catalog. +The tenant-identifier is manually created by prefixing a UUID with `tenant-` -Example of the production ATRS_HOST and path: +Example: ```json -https://app-catalog.atrs.spryker.com/loader +SPRYKER_TENANT_IDENTIFIER: "tenant-3342063d-0920-4004-acb0-ce8c8bbae513" ``` -The configuration key: `STORE_NAME_REFERENCE_MAP` is the StoreReference mapping to the appropriate Spryker store. +### General configurations: SPRYKER_AOP_AUTHENTICATION variable + +The configuration key `SPRYKER_AOP_AUTHENTICATION` is a json which contains auth0 credentials. + +It should be placed in AWS Param Store. {% info_block infoBox "Spryker OPS" %} -The StoreReference mapping is created by Spryker OPS, and they provide you with the corresponding values to be added to your deploy.yml file. +For customers, the environment variables must be added to the AWS Parameter Store by the Spryker OPS team. {% endinfo_block %} -Example of demo stores for DE and AT: +### General configurations: SPRYKER_AOP_APPLICATION variable + +The configuration key `APP_CATALOG_SCRIPT_URL` is a URL for the App-Tenant-Registry-Service (ATRS) and the path to the JS script to load the ACP catalog. + +Example of the production ATRS_HOST and path: ```json -{"DE": "tenant_messages_for_store_reference_AOP_Demo_Production-DE", "AT": "tenant_messages_for_store_reference_AOP_Demo_Production-AT"} +https://app-catalog.atrs.spryker.com/loader ``` The configuration key `APP_DOMAINS` designates the app domains used in redirects. @@ -425,40 +457,18 @@ Example of the app domain values: "*.bazaarvoice.com" ] ``` -#### Message Broker configuration: SPRYKER_AOP_INFRASTRUCTURE variable -The configuration key `SPRYKER_MESSAGE_BROKER_SQS_RECEIVER_CONFIG` is for the receiver configuration. The queues must be defined for each store, or a default queue for all stores is to be defined. +### General configurations: SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL variable -{% info_block infoBox "Spryker OPS" %} +The configuration key `SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL` is a URL of Event Platform (EP) HTTP channel sender. -The queues are created by Spryker OPS, and they provide you with the corresponding values to be added to your deploy.yml file. +The URL is different for each environment. -{% endinfo_block %} +### General configurations: SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_RECEIVER_BASE_URL variable -Example of the receiver configuration for the Spryker production environment: +The configuration key `SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL` is a URL of Event Platform (EP) HTTP channel receiver. -```json -{ - "default": { - "endpoint":"https://sqs.eu-central-1.amazonaws.com", - "auto_setup":false, "buffer_size":1 - }, - "DE": { - "queue_name":"tenant_messages_for_store_reference_AOP_Demo_Production-DE.fifo" - }, - "": { - "queue_name":"queue_name_for_store_reference_" - } -} -``` - -Example of the `SPRYKER_MESSAGE_BROKER_HTTP_SENDER_CONFIG` configuration key value: - -```json -{ - "endpoint":"https://events.atrs.spryker.com/events/tenant" -} -``` +The URL is different for each environment. ## Next steps after the ACP-readiness From e6a256947c9013a36c6ab463681a2dbf4e73524b Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Tue, 9 Jan 2024 17:50:09 +0200 Subject: [PATCH 08/23] ACP:383 refactoring --- .../app-composition-platform-installation.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/acp/user/app-composition-platform-installation.md b/docs/acp/user/app-composition-platform-installation.md index 261c748e8d2..e107c936b4e 100644 --- a/docs/acp/user/app-composition-platform-installation.md +++ b/docs/acp/user/app-composition-platform-installation.md @@ -370,7 +370,7 @@ class OauthClientDependencyProvider extends SprykerOauthClientDependencyProvider ``` -#### Provide ACP-related SCCOS environment variables +### Provide ACP-related SCCOS environment variables This section describes the variables that you must configure for use within your SCCOS AWS environment. @@ -378,7 +378,7 @@ You need to define the environment variables in the `deploy.yml` file of *each* General structure: -```json +```yaml ENVIRONMENT_VARIABLE_NAME_A: '{ "CONFIGURATION_KEY_A":"SOME_VALUE_A", "CONFIGURATION_KEY_B":"SOME_VALUE_B" @@ -387,7 +387,7 @@ ENVIRONMENT_VARIABLE_NAME_A: '{ Data structure example for a demo environment connected to the Spryker ACP production: -```json +```yaml #AOP SPRYKER_TENANT_IDENTIFIER: "tenant-<>" @@ -409,17 +409,17 @@ SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL: "https://publish.mb.spryker SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_RECEIVER_BASE_URL: "https://consume.mb.spryker.com/" ``` -### General configurations: SPRYKER_TENANT_IDENTIFIER variable +#### General configurations: SPRYKER_TENANT_IDENTIFIER variable The tenant-identifier is manually created by prefixing a UUID with `tenant-` Example: -```json +```yaml SPRYKER_TENANT_IDENTIFIER: "tenant-3342063d-0920-4004-acb0-ce8c8bbae513" ``` -### General configurations: SPRYKER_AOP_AUTHENTICATION variable +#### General configurations: SPRYKER_AOP_AUTHENTICATION variable The configuration key `SPRYKER_AOP_AUTHENTICATION` is a json which contains auth0 credentials. @@ -431,13 +431,13 @@ For customers, the environment variables must be added to the AWS Parameter Stor {% endinfo_block %} -### General configurations: SPRYKER_AOP_APPLICATION variable +#### General configurations: SPRYKER_AOP_APPLICATION variable The configuration key `APP_CATALOG_SCRIPT_URL` is a URL for the App-Tenant-Registry-Service (ATRS) and the path to the JS script to load the ACP catalog. Example of the production ATRS_HOST and path: -```json +```yaml https://app-catalog.atrs.spryker.com/loader ``` @@ -451,20 +451,20 @@ The app domains are provided by Spryker OPS. Example of the app domain values: -```json +```yaml [ "os.apps.aop.spryker.com", "*.bazaarvoice.com" ] ``` -### General configurations: SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL variable +#### General configurations: SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL variable The configuration key `SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL` is a URL of Event Platform (EP) HTTP channel sender. The URL is different for each environment. -### General configurations: SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_RECEIVER_BASE_URL variable +#### General configurations: SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_RECEIVER_BASE_URL variable The configuration key `SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL` is a URL of Event Platform (EP) HTTP channel receiver. From 298acb7fe171d7e7b847b91246918e4055531500 Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Tue, 9 Jan 2024 17:58:55 +0200 Subject: [PATCH 09/23] ACP:383 refactoring --- docs/acp/user/app-composition-platform-installation.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/acp/user/app-composition-platform-installation.md b/docs/acp/user/app-composition-platform-installation.md index e107c936b4e..47711a0afe5 100644 --- a/docs/acp/user/app-composition-platform-installation.md +++ b/docs/acp/user/app-composition-platform-installation.md @@ -38,9 +38,11 @@ The actions and level of effort required to make your project ACP-ready may vary To make your project ACP-ready, different update steps are necessary depending on the template version on which your project was started: -- SCCOS product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md) or newer: You can skip the configuration step described in this document. +- BEFORE [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.md) It's complicated and needs an assessment by devs/SA. + +- SCCOS product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.md) Has basic ACP set up in place, all ACP modules (Apps & Platform) need updates. -- Older versions: To get the project ACP-ready, you should complete all steps described in this document. +- SCCOS product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md) or newer: You can skip the configuration step described in this document. {% info_block infoBox "Product version earlier than 202311.0" %} From ecf606de05ea9458fbb718c7050fccdaaf04bc4c Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Tue, 9 Jan 2024 17:59:47 +0200 Subject: [PATCH 10/23] ACP:383 refactoring --- docs/acp/user/app-composition-platform-installation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/acp/user/app-composition-platform-installation.md b/docs/acp/user/app-composition-platform-installation.md index 47711a0afe5..232211e75ac 100644 --- a/docs/acp/user/app-composition-platform-installation.md +++ b/docs/acp/user/app-composition-platform-installation.md @@ -38,11 +38,11 @@ The actions and level of effort required to make your project ACP-ready may vary To make your project ACP-ready, different update steps are necessary depending on the template version on which your project was started: -- BEFORE [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.md) It's complicated and needs an assessment by devs/SA. +- BEFORE [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.md) it's complicated and needs an assessment by devs/SA. -- SCCOS product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.md) Has basic ACP set up in place, all ACP modules (Apps & Platform) need updates. +- SCCOS product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.md) has basic ACP set up in place, all ACP modules (Apps & Platform) need updates. -- SCCOS product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md) or newer: You can skip the configuration step described in this document. +- SCCOS product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md) or newer: you can skip the configuration step described in this document. {% info_block infoBox "Product version earlier than 202311.0" %} From caea7047f7a183047b4e769ef09fa5fc2dfe1d36 Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Tue, 9 Jan 2024 18:01:44 +0200 Subject: [PATCH 11/23] ACP:383 refactoring --- docs/acp/user/app-composition-platform-installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/acp/user/app-composition-platform-installation.md b/docs/acp/user/app-composition-platform-installation.md index 232211e75ac..e6e65b73018 100644 --- a/docs/acp/user/app-composition-platform-installation.md +++ b/docs/acp/user/app-composition-platform-installation.md @@ -46,7 +46,7 @@ To make your project ACP-ready, different update steps are necessary depending o {% info_block infoBox "Product version earlier than 202311.0" %} -If you were onboarded with a version older than product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md), please [contact us](https://support.spryker.com/). +If you were onboarded with a version older than product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.md), please [contact us](https://support.spryker.com/). {% endinfo_block %} From 0b2ccea8590f4fcbe086bce40bef4dd25eaed8e6 Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Tue, 16 Jan 2024 17:02:06 +0200 Subject: [PATCH 12/23] ACP:383 fixed comments --- docs/acp/user/app-composition-platform-installation.md | 2 -- .../payone/integration-in-the-back-office/integrate-payone.md | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/acp/user/app-composition-platform-installation.md b/docs/acp/user/app-composition-platform-installation.md index e6e65b73018..123aee972a0 100644 --- a/docs/acp/user/app-composition-platform-installation.md +++ b/docs/acp/user/app-composition-platform-installation.md @@ -38,8 +38,6 @@ The actions and level of effort required to make your project ACP-ready may vary To make your project ACP-ready, different update steps are necessary depending on the template version on which your project was started: -- BEFORE [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.md) it's complicated and needs an assessment by devs/SA. - - SCCOS product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.md) has basic ACP set up in place, all ACP modules (Apps & Platform) need updates. - SCCOS product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md) or newer: you can skip the configuration step described in this document. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index 97cd7d30f34..7246161534d 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -341,7 +341,7 @@ oms.state.reservation-cancellation-pending,Reservation Cancellation Pending,de_D ``` Then run the data import for the glossary: -```bash +```php vendor/bin/console data:import glossary ``` From d78f24033699b2f8e6697197d690df03f0e98e15 Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Wed, 17 Jan 2024 10:57:31 +0200 Subject: [PATCH 13/23] ACP:383 changed md to html in reference link --- .../payone/integration-in-the-back-office/integrate-payone.md | 2 +- .../202311.0/third-party-integrations/integrate-bazaarvoice.md | 2 +- .../third-party-integrations/algolia/integrate-algolia.md | 2 +- docs/pbc/all/usercentrics/integrate-usercentrics.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index 7246161534d..9dca4b9c837 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -383,7 +383,7 @@ vendor/bin/console data:import glossary ### Console command for receiving messages -This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.md). +This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.html). ## Next steps diff --git a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md index 440b34e9414..4bb1ac6385c 100644 --- a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md +++ b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md @@ -311,7 +311,7 @@ class RabbitMqConfig extends SprykerRabbitMqConfig ### 5. Receive messages -This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.md). +This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.html). ### 6. Configure OMS diff --git a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md index db38a1ed9e8..85cdc805c62 100644 --- a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md +++ b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md @@ -676,7 +676,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency ### Console command for receiving messages -This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.md). +This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.html). ## Additional information on Algolia integration diff --git a/docs/pbc/all/usercentrics/integrate-usercentrics.md b/docs/pbc/all/usercentrics/integrate-usercentrics.md index 185f29517a6..c60f2535e06 100644 --- a/docs/pbc/all/usercentrics/integrate-usercentrics.md +++ b/docs/pbc/all/usercentrics/integrate-usercentrics.md @@ -207,7 +207,7 @@ class RabbitMqConfig extends SprykerRabbitMqConfig ### Console command for receiving messages -This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.md). +This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.html). ## Next steps From e1ad6a4081f7fefed8a76e2495ea9449226b57c5 Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Wed, 17 Jan 2024 15:57:16 +0200 Subject: [PATCH 14/23] refactoring --- .../payone/integration-in-the-back-office/integrate-payone.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index 9dca4b9c837..a534c15c012 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -358,6 +358,9 @@ Please be aware that if you have rewritten `@CheckoutPage/views/payment/payment. data: { form: data.form[data.form.paymentSelection[key].vars.name], ... + } + {% endembed %} +{% endfor %} ``` - Payment provider names now have glossary keys instead of a name itself, so you need to check if the names of the payment providers are translated without using the prefix: @@ -366,6 +369,7 @@ Please be aware that if you have rewritten `@CheckoutPage/views/payment/payment. {% for name, choices in data.form.paymentSelection.vars.choices %} ...
{{ name | trans }}
+{% endfor %} ``` - Also, if you need, you can add the glossary keys for all the new (external) payment providers and methods to your glossary data import file. For example, there is 1 new external payment with the provider name Payone (can be found in spy_payment_method table in group_name column) and the payment method name Credit Card (can be found in spy_payment_method table in label_name column). For all of them, you can add translations to your glossary data import file like this: From 483a8ab91d1f90a384a53dd83f0883d17f934125 Mon Sep 17 00:00:00 2001 From: Oleksandr Kiiashko Date: Wed, 17 Jan 2024 16:29:04 +0200 Subject: [PATCH 15/23] refactoring --- .../integration-in-the-back-office/integrate-payone.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index a534c15c012..6c61d601064 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -341,8 +341,8 @@ oms.state.reservation-cancellation-pending,Reservation Cancellation Pending,de_D ``` Then run the data import for the glossary: -```php -vendor/bin/console data:import glossary +```bash +console data:import glossary ``` ### Template changes in `CheckoutPage` @@ -382,7 +382,7 @@ Credit Card,Credit Card (Payone),en_US Then run the data import for the glossary: ```bash -vendor/bin/console data:import glossary +console data:import glossary ``` ### Console command for receiving messages From eb8125ba7bcb1e65c6b7b1351676953930357140 Mon Sep 17 00:00:00 2001 From: Anton Zubariev Date: Thu, 25 Jan 2024 18:17:04 +0200 Subject: [PATCH 16/23] ACP-383: MB2.0 adjustments --- .../app-composition-platform-installation.md | 165 ++---------------- docs/pbc/all/mb2-receiving-messages.md | 2 +- .../integrate-payone.md | 94 ++++++---- .../stripe/install-stripe.md | 93 +++++----- .../integrate-bazaarvoice.md | 38 +++- .../algolia/integrate-algolia.md | 17 +- ...cp-connector-module-for-tax-calculation.md | 93 ++++++---- .../usercentrics/integrate-usercentrics.md | 36 +++- 8 files changed, 270 insertions(+), 268 deletions(-) diff --git a/docs/acp/user/app-composition-platform-installation.md b/docs/acp/user/app-composition-platform-installation.md index 123aee972a0..eb081e52222 100644 --- a/docs/acp/user/app-composition-platform-installation.md +++ b/docs/acp/user/app-composition-platform-installation.md @@ -57,7 +57,7 @@ To get your project ACP-ready, it is important to ensure that your project modul Starting with the Spryker product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md), the ACP catalog is included by default in the Spryker Cloud product. However, you should still make sure that your Spryker project uses the latest versions of the following modules: * `spryker/app-catalog-gui: ^1.4.1` or later -* `spryker/message-broker: ^1.9.0` or later +* `spryker/message-broker: ^1.10.0` or later * `spryker/message-broker-aws: ^1.6.0` or later * `spryker/session: ^4.15.1` or later * `spryker/oauth-client: ^1.4.0` or later @@ -116,17 +116,16 @@ $config[OauthAuth0Constants::AUTH0_CUSTOM_DOMAIN] = $aopAuthenticationConfigurat $config[OauthAuth0Constants::AUTH0_CLIENT_ID] = $aopAuthenticationConfiguration['AUTH0_CLIENT_ID'] ?? ''; $config[OauthAuth0Constants::AUTH0_CLIENT_SECRET] = $aopAuthenticationConfiguration['AUTH0_CLIENT_SECRET'] ?? ''; -$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = -$config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ - // Here we will define the transport map accordinally to APP (PBC) +$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = [ + // Here we will define the transport map accordingly to APP (PBC) ]; $config[MessageBrokerAwsConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ - // Here we will define the receiver transport map accordinally to APP (PBC) + // Here we will define the receiver transport map accordingly to APP (PBC) ]; $config[MessageBrokerAwsConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ - // Here we will define the sender transport map accordinally to APP (PBC) + // Here we will define the sender transport map accordingly to APP (PBC) ]; // -------------------------------- ACP AWS -------------------------------------- @@ -138,12 +137,9 @@ $config[MessageBrokerConstants::IS_ENABLED] = ( && $config[MessageBrokerAwsConstants::HTTP_CHANNEL_RECEIVER_BASE_URL] ); -$config[SearchHttpConstants::TENANT_IDENTIFIER] - = $config[ProductConstants::TENANT_IDENTIFIER] +$config[OauthClientConstants::TENANT_IDENTIFIER] = $config[MessageBrokerConstants::TENANT_IDENTIFIER] = $config[MessageBrokerAwsConstants::CONSUMER_ID] - = $config[OauthClientConstants::TENANT_IDENTIFIER] - = $config[PaymentConstants::TENANT_IDENTIFIER] = $config[AppCatalogGuiConstants::TENANT_IDENTIFIER] = getenv('SPRYKER_TENANT_IDENTIFIER') ?: ''; @@ -157,10 +153,6 @@ $config[OauthClientConstants::OAUTH_OPTION_AUDIENCE_FOR_MESSAGE_BROKER] = 'aop-e $config[AppCatalogGuiConstants::OAUTH_PROVIDER_NAME] = OauthAuth0Config::PROVIDER_NAME; $config[AppCatalogGuiConstants::OAUTH_GRANT_TYPE] = OauthAuth0Config::GRANT_TYPE_CLIENT_CREDENTIALS; $config[AppCatalogGuiConstants::OAUTH_OPTION_AUDIENCE] = 'aop-atrs'; - -$config[OauthClientConstants::OAUTH_PROVIDER_NAME_FOR_PAYMENT_AUTHORIZE] = OauthAuth0Config::PROVIDER_NAME; -$config[OauthClientConstants::OAUTH_GRANT_TYPE_FOR_PAYMENT_AUTHORIZE] = OauthAuth0Config::GRANT_TYPE_CLIENT_CREDENTIALS; -$config[OauthClientConstants::OAUTH_OPTION_AUDIENCE_FOR_PAYMENT_AUTHORIZE] = 'aop-app'; ``` @@ -181,6 +173,12 @@ $config[OauthClientConstants::OAUTH_OPTION_AUDIENCE_FOR_PAYMENT_AUTHORIZE] = 'ao 3. In the `MessageBrokerDependencyProvider.php` file, enable the following module plugins: +{% info_block infoBox "Note" %} + +Please ensure that you have no deprecated plugins enabled. Ideally, the content of each of the methods listed below should exactly match the provided example. + +{% endinfo_block %} +
src/Pyz/Zed/MessageBroker/MessageBrokerDependencyProvider.php @@ -289,42 +287,13 @@ class MessageBrokerAwsDependencyProvider extends SprykerMessageBrokerAwsDependen ```
-5. In the `MessageBrokerConfig.php` file, adjust the following module config: +5. In the `OauthClientDependencyProvider.php` file, enable the following module plugins: -**src/Pyz/Zed/MessageBroker/MessageBrokerConfig.php**: +{% info_block infoBox "Note" %} -```php - - */ - public function getProtectedMessageAttributes(): array - { - return [ - MessageAttributesTransfer::AUTHORIZATION, - ]; - } -} -``` - -6. In the `OauthClientDependencyProvider.php` file, enable the following module plugins: +{% endinfo_block %}
src/Pyz/Zed/OauthClient/OauthClientDependencyProvider.php @@ -370,109 +339,9 @@ class OauthClientDependencyProvider extends SprykerOauthClientDependencyProvider ```
-### Provide ACP-related SCCOS environment variables - -This section describes the variables that you must configure for use within your SCCOS AWS environment. - -You need to define the environment variables in the `deploy.yml` file of *each* SCCOS environment like testing, staging, and production. There will be multiple general environment variables that in turn will contain several configurations. - -General structure: - -```yaml -ENVIRONMENT_VARIABLE_NAME_A: '{ - "CONFIGURATION_KEY_A":"SOME_VALUE_A", - "CONFIGURATION_KEY_B":"SOME_VALUE_B" -}' -``` - -Data structure example for a demo environment connected to the Spryker ACP production: - -```yaml -#AOP -SPRYKER_TENANT_IDENTIFIER: "tenant-<>" - -SPRYKER_AOP_AUTHENTICATION: '{ - "AUTH0_CUSTOM_DOMAIN": "spryker-prod.eu.auth0.com", - "AUTH0_CLIENT_SECRET": "<>", - "AUTH0_CLIENT_ID": "<>" -}' - -SPRYKER_AOP_APPLICATION: '{ - "APP_CATALOG_SCRIPT_URL": "https://app-catalog.atrs.spryker.com/loader", - "APP_DOMAINS": [ - "os.apps.aop.spryker.com", - "*.bazaarvoice.com" - ] -}' - -SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL: "https://publish.mb.spryker.com/" -SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_RECEIVER_BASE_URL: "https://consume.mb.spryker.com/" -``` - -#### General configurations: SPRYKER_TENANT_IDENTIFIER variable - -The tenant-identifier is manually created by prefixing a UUID with `tenant-` - -Example: - -```yaml -SPRYKER_TENANT_IDENTIFIER: "tenant-3342063d-0920-4004-acb0-ce8c8bbae513" -``` - -#### General configurations: SPRYKER_AOP_AUTHENTICATION variable - -The configuration key `SPRYKER_AOP_AUTHENTICATION` is a json which contains auth0 credentials. - -It should be placed in AWS Param Store. - -{% info_block infoBox "Spryker OPS" %} - -For customers, the environment variables must be added to the AWS Parameter Store by the Spryker OPS team. - -{% endinfo_block %} - -#### General configurations: SPRYKER_AOP_APPLICATION variable - -The configuration key `APP_CATALOG_SCRIPT_URL` is a URL for the App-Tenant-Registry-Service (ATRS) and the path to the JS script to load the ACP catalog. - -Example of the production ATRS_HOST and path: - -```yaml -https://app-catalog.atrs.spryker.com/loader -``` - -The configuration key `APP_DOMAINS` designates the app domains used in redirects. - -{% info_block infoBox "Spryker OPS" %} - -The app domains are provided by Spryker OPS. - -{% endinfo_block %} - -Example of the app domain values: - -```yaml -[ - "os.apps.aop.spryker.com", - "*.bazaarvoice.com" -] -``` - -#### General configurations: SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL variable - -The configuration key `SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL` is a URL of Event Platform (EP) HTTP channel sender. - -The URL is different for each environment. - -#### General configurations: SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_RECEIVER_BASE_URL variable - -The configuration key `SPRYKER_MESSAGE_BROKER_HTTP_CHANNEL_SENDER_BASE_URL` is a URL of Event Platform (EP) HTTP channel receiver. - -The URL is different for each environment. - ## Next steps after the ACP-readiness -After configuring the files, updating all modules, and adding the requested keys with their corresponding values provided by Spryker OPS to the `deploy.yml` file, the SCCOS codebase is now up-to-date. Once redeployed, your environment is ACP-ready. +After configuring the files and updating all modules, the SCCOS codebase is now up-to-date. Once redeployed, your environment is ACP-ready. The next step is to get your newly updated and deployed ACP-ready SCCOS environment ACP-enabled. The ACP enablement step is fully handled by Spryker and implies the registration of your ACP-ready SCCOS environment with ACP by connecting it with the ACP App-Tenant-Registry-Service (ATRS) as well as the Event Platform (EP) so that the ACP catalog is able to work with SCCOS. diff --git a/docs/pbc/all/mb2-receiving-messages.md b/docs/pbc/all/mb2-receiving-messages.md index 2a096a4ce5d..5e3514d3810 100644 --- a/docs/pbc/all/mb2-receiving-messages.md +++ b/docs/pbc/all/mb2-receiving-messages.md @@ -22,7 +22,7 @@ This command must be executed periodically. To achieve this, configure Jenkins i ```php $jobs[] = [ 'name' => 'message-broker-consume-channels', - 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=15 --sleep=5', + 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=30 --sleep=5', 'schedule' => '* * * * *', 'enable' => true, 'stores' => $allStores, diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index 6c61d601064..e665bb4ff77 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -62,37 +62,36 @@ If the app was connected successfully, a corresponding message appears, and the Follow these steps to integrate Payone. -### Add Payone domain to your allowlist - -To enable Payone to redirect your customers to their 3D Secure page and later to your success page, you must add the ACP domain inside your **Content Security Policy** allowlist. To do that, change your `deploy.yml` file or your `config/Shared/config_default.php` file if changing the environment variable is not possible. - -In the `deploy.yml` file, introduce the required changes: - -```yml -image: - environment: - SPRYKER_AOP_APPLICATION: '{ - "APP_DOMAINS": [ - "os.apps.aop.spryker.com", - ... - ], - ... - }' -``` - -Alternatively, you may add the domain to the allowlist from the `config/Shared/config_default.php` file. If you updated the `deploy.yml` file, this step can be ignored. - -```php -$config[KernelConstants::DOMAIN_WHITELIST][] = 'os.apps.aop.spryker.com'; -``` - ### Configure shared configs Add the following config to `config/Shared/config_default.php`: ```php -$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = -$config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ +use Spryker\Shared\OauthClient\OauthClientConstants; +use Generated\Shared\Transfer\PaymentMethodAddedTransfer; +use Generated\Shared\Transfer\PaymentMethodDeletedTransfer; +use Generated\Shared\Transfer\PaymentCancelReservationRequestedTransfer; +use Generated\Shared\Transfer\PaymentConfirmationRequestedTransfer; +use Generated\Shared\Transfer\PaymentRefundRequestedTransfer; +use Generated\Shared\Transfer\PaymentPreauthorizedTransfer; +use Generated\Shared\Transfer\PaymentPreauthorizationFailedTransfer; +use Generated\Shared\Transfer\PaymentConfirmedTransfer; +use Generated\Shared\Transfer\PaymentConfirmationFailedTransfer; +use Generated\Shared\Transfer\PaymentRefundedTransfer; +use Generated\Shared\Transfer\PaymentRefundFailedTransfer; +use Generated\Shared\Transfer\PaymentReservationCanceledTransfer; +use Generated\Shared\Transfer\PaymentCancelReservationFailedTransfer; +use Spryker\Shared\MessageBroker\MessageBrokerConstants; +use Spryker\Shared\Oms\OmsConstants; +use Spryker\Shared\Payment\PaymentConstants; +use Spryker\Shared\Sales\SalesConstants; +use Spryker\Zed\MessageBrokerAws\MessageBrokerAwsConfig; +use Spryker\Zed\Payment\PaymentConfig; + +//... +$config[PaymentConstants::TENANT_IDENTIFIER] = getenv('SPRYKER_TENANT_IDENTIFIER') ?: ''; + +$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = [ //... PaymentMethodAddedTransfer::class => 'payment-method-commands', PaymentMethodDeletedTransfer::class => 'payment-method-commands', @@ -122,21 +121,29 @@ $config[MessageBrokerConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ $config[OmsConstants::PROCESS_LOCATION] = [ //... - APPLICATION_ROOT_DIR . '/vendor/spryker/spryker/Bundles/Payment/config/Zed/Oms', # this line must be removed if exists - APPLICATION_ROOT_DIR . '/vendor/spryker/spryker/Bundles/SalesPayment/config/Zed/Oms', # this line must be added + //APPLICATION_ROOT_DIR . '/vendor/spryker/payment/config/Zed/Oms', # this line must be removed if exists + APPLICATION_ROOT_DIR . '/vendor/spryker/sales-payment/config/Zed/Oms', # this line must be added ]; $config[OmsConstants::ACTIVE_PROCESSES] = [ //... - 'B2CStateMachine01', # this line must be removed if exists + //'B2CStateMachine01', # this line must be removed if exists 'ForeignPaymentStateMachine01', # this line must be added ]; $config[SalesConstants::PAYMENT_METHOD_STATEMACHINE_MAPPING] = [ //... - PaymentConfig::PAYMENT_FOREIGN_PROVIDER => 'B2CStateMachine01', # this line must be removed if exists + //PaymentConfig::PAYMENT_FOREIGN_PROVIDER => 'B2CStateMachine01', # this line must be removed if exists PaymentConfig::PAYMENT_FOREIGN_PROVIDER => 'ForeignPaymentStateMachine01', # this line must be added ]; + +// ---------------------------------------------------------------------------- +// ------------------------------ OAUTH --------------------------------------- +// ---------------------------------------------------------------------------- +//... +$config[OauthClientConstants::OAUTH_PROVIDER_NAME_FOR_PAYMENT_AUTHORIZE] = OauthAuth0Config::PROVIDER_NAME; +$config[OauthClientConstants::OAUTH_GRANT_TYPE_FOR_PAYMENT_AUTHORIZE] = OauthAuth0Config::GRANT_TYPE_CLIENT_CREDENTIALS; +$config[OauthClientConstants::OAUTH_OPTION_AUDIENCE_FOR_PAYMENT_AUTHORIZE] = 'aop-app'; ``` ### Configure dependencies in `MessageBroker` @@ -180,6 +187,33 @@ class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProv } ``` +### Configure channels in `MessageBroker` configuration + +Add the following code to `src/Pyz/Zed/MessageBroker/MessageBrokerConfig.php`: + +```php +namespace Pyz\Zed\MessageBroker; + +use Spryker\Zed\MessageBroker\MessageBrokerConfig as SprykerMessageBrokerConfig; + +class MessageBrokerConfig extends SprykerMessageBrokerConfig +{ + /** + * @return array + */ + public function getDefaultWorkerChannels(): array + { + return [ + //... + 'payment-events', + 'payment-method-commands', + ]; + } + + //... +} +``` + ### Configure plugins in `Checkout` The following plugin must be added to `src/Pyz/Zed/Checkout/CheckoutDependencyProvider.php`: diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.md index 95a85e9d670..6da902d88a0 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.md @@ -26,7 +26,7 @@ Before integrating Stripe, ensure the following prerequisites are met: Your project probably already contains the following code in `config/Shared/config_default.php` already. If not, add it: ```php -// ... +//... use Generated\Shared\Transfer\PaymentConfirmationFailedTransfer; use Generated\Shared\Transfer\PaymentConfirmationRequestedTransfer; @@ -35,29 +35,36 @@ use Generated\Shared\Transfer\PaymentMethodAddedTransfer; use Generated\Shared\Transfer\PaymentMethodDeletedTransfer; use Generated\Shared\Transfer\PaymentPreauthorizationFailedTransfer; use Generated\Shared\Transfer\PaymentPreauthorizedTransfer; -use Spryker\Shared\Sales\SalesConstants; +use Spryker\Shared\MessageBroker\MessageBrokerConstants; use Spryker\Shared\Oms\OmsConstants; +use Spryker\Shared\Payment\PaymentConstants; +use Spryker\Shared\Sales\SalesConstants; +use Spryker\Zed\MessageBrokerAws\MessageBrokerAwsConfig; use Spryker\Zed\Oms\OmsConfig; use Spryker\Zed\Payment\PaymentConfig; -// ... +//... +$config[PaymentConstants::TENANT_IDENTIFIER] = getenv('SPRYKER_TENANT_IDENTIFIER') ?: ''; $config[OmsConstants::PROCESS_LOCATION] = [ - // ... + //... OmsConfig::DEFAULT_PROCESS_LOCATION, - APPLICATION_ROOT_DIR . '/vendor/spryker/sales-payment/config/Zed/Oms', + //APPLICATION_ROOT_DIR . '/vendor/spryker/payment/config/Zed/Oms', # this line must be removed if exists + APPLICATION_ROOT_DIR . '/vendor/spryker/sales-payment/config/Zed/Oms', # this line must be added ]; $config[OmsConstants::ACTIVE_PROCESSES] = [ - // ... - 'ForeignPaymentStateMachine01', + //... + //'B2CStateMachine01', # this line must be removed if exists + 'ForeignPaymentStateMachine01', # this line must be added ]; $config[SalesConstants::PAYMENT_METHOD_STATEMACHINE_MAPPING] = [ - // ... - PaymentConfig::PAYMENT_FOREIGN_PROVIDER => 'ForeignPaymentStateMachine01', + //... + //PaymentConfig::PAYMENT_FOREIGN_PROVIDER => 'B2CStateMachine01', # this line must be removed if exists + PaymentConfig::PAYMENT_FOREIGN_PROVIDER => 'ForeignPaymentStateMachine01', # this line must be added ]; -$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = -$config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ +$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = [ + //... PaymentMethodAddedTransfer::class => 'payment-method-commands', PaymentMethodDeletedTransfer::class => 'payment-method-commands', PaymentConfirmationRequestedTransfer::class => 'payment-commands', @@ -67,22 +74,19 @@ $config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ PaymentConfirmationFailedTransfer::class => 'payment-events', ]; -$config[MessageBrokerAwsConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ - // ... - - 'payment-method-commands' => MessageBrokerAwsConfig::SQS_TRANSPORT, - 'payment-events' => MessageBrokerAwsConfig::SQS_TRANSPORT, +$config[MessageBrokerConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ + //... + 'payment-method-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, + 'payment-events' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, ]; -$config[MessageBrokerAwsConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ - // ... - - 'payment-commands' => 'http', +$config[MessageBrokerConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ + //... + 'payment-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, ]; ``` - ## 2. Configure the Message Broker dependency provider Your project probably already contains the following code in `src/Pyz/Zed/MessageBroker/MessageBrokerDependencyProvider.php` already. If not, add it: @@ -106,7 +110,7 @@ class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProv public function getMessageHandlerPlugins(): array { return [ - // ... + //... # These plugins are handling messages sent from Stripe app to SCCOS. new PaymentConfirmationFailedMessageHandlerPlugin(), @@ -120,39 +124,42 @@ class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProv ``` -## 3. Add Stripe domain to your allowlist +### 3. Configure channels in Message Broker configuration -To enable Stripe to redirect your customers to the Stripe payment page and later to your payment success page, you must add the ACP domain inside your *Content Security Policy* allowlist. To do that, change your `deploy-{your_environment}.yml` file or your `config/Shared/config_default.php` file if changing the environment variable isn't possible. +Add the following code to `src/Pyz/Zed/MessageBroker/MessageBrokerConfig.php`: -In the `deploy.yml` file, introduce the required changes: +```php +namespace Pyz\Zed\MessageBroker; -```yml -image: - environment: - SPRYKER_AOP_APPLICATION: '{ - "APP_DOMAINS": [ - "stripe.acp.spryker.com", - ... - ], - ... - }' -``` +use Spryker\Zed\MessageBroker\MessageBrokerConfig as SprykerMessageBrokerConfig; -Alternatively, you may add the domain to the allowlist from the `config/Shared/config_default.php` file. If you updated the `deploy.yml` file, ignore this step. +class MessageBrokerConfig extends SprykerMessageBrokerConfig +{ + /** + * @return array + */ + public function getDefaultWorkerChannels(): array + { + return [ + //... + 'payment-events', + 'payment-method-commands', + ]; + } -```php -$config[KernelConstants::DOMAIN_WHITELIST][] = 'stripe.acp.spryker.com'; + //... +} ``` ## 4. Configure the OMS dependency provider Your project is likely to have the following in `src/Pyz/Zed/Oms/OmsDependencyProvider.php` already. If not, add it: ```php -// ... +//... use Spryker\Zed\SalesPayment\Communication\Plugin\Oms\SendEventPaymentConfirmationPendingPlugin; -// ... +//... /** * @param \Spryker\Zed\Kernel\Container $container @@ -163,11 +170,11 @@ use Spryker\Zed\SalesPayment\Communication\Plugin\Oms\SendEventPaymentConfirmati { $container->extend(self::COMMAND_PLUGINS, function (CommandCollectionInterface $commandCollection) { - // ... + //... $commandCollection->add(new SendEventPaymentConfirmationPendingPlugin(), 'Payment/SendEventPaymentConfirmationPending'); - // ... + //... return $commandCollection; }); diff --git a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md index 4bb1ac6385c..2a5c976788a 100644 --- a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md +++ b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md @@ -192,13 +192,14 @@ Example: Add the following configuration to `config/Shared/config_default.php`: ```php -use \Generated\Shared\Transfer\AddReviewsTransfer; -use \Generated\Shared\Transfer\OrderStatusChangedTransfer; -use \Spryker\Zed\MessageBrokerAws\MessageBrokerAwsConfig; +use Generated\Shared\Transfer\AddReviewsTransfer; +use Generated\Shared\Transfer\OrderStatusChangedTransfer; +use Spryker\Shared\MessageBroker\MessageBrokerConstants; +use Spryker\Zed\MessageBrokerAws\MessageBrokerAwsConfig; + //... -$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = -$config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ +$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = [ //... AssetAddedTransfer::class => 'asset-commands', AssetUpdatedTransfer::class => 'asset-commands', @@ -237,6 +238,33 @@ Add the following plugin to `src/Pyz/Zed/MessageBroker/MessageBrokerDependencyPr } ``` +#### Configure channels + +Add the following code to `src/Pyz/Zed/MessageBroker/MessageBrokerConfig.php`: + +```php +namespace Pyz\Zed\MessageBroker; + +use Spryker\Zed\MessageBroker\MessageBrokerConfig as SprykerMessageBrokerConfig; + +class MessageBrokerConfig extends SprykerMessageBrokerConfig +{ + /** + * @return array + */ + public function getDefaultWorkerChannels(): array + { + return [ + //... + 'asset-commands', + 'product-review-commands', + ]; + } + + //... +} +``` + ### 4. Configure synchronization To configure Synchronization, follow these steps: diff --git a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md index 85cdc805c62..79d558ed783 100644 --- a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md +++ b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md @@ -31,8 +31,6 @@ Follow these steps to integrate Algolia. Add the following config to `config/Shared/config_default.php`: ```php -//... - use Generated\Shared\Transfer\InitializeProductExportTransfer; use Generated\Shared\Transfer\ProductCreatedTransfer; use Generated\Shared\Transfer\ProductDeletedTransfer; @@ -40,11 +38,18 @@ use Generated\Shared\Transfer\ProductExportedTransfer; use Generated\Shared\Transfer\ProductUpdatedTransfer; use Generated\Shared\Transfer\SearchEndpointAvailableTransfer; use Generated\Shared\Transfer\SearchEndpointRemovedTransfer; +use Spryker\Shared\MessageBroker\MessageBrokerConstants; +use Spryker\Shared\Product\ProductConstants; +use Spryker\Shared\SearchHttp\SearchHttpConstants; +use Spryker\Zed\MessageBrokerAws\MessageBrokerAwsConfig; //... -$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = -$config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ +$config[SearchHttpConstants::TENANT_IDENTIFIER] + = $config[ProductConstants::TENANT_IDENTIFIER] + = getenv('SPRYKER_TENANT_IDENTIFIER') ?: ''; + +$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = [ //... ProductExportedTransfer::class => 'product-events', ProductCreatedTransfer::class => 'product-events', @@ -55,13 +60,13 @@ $config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ SearchEndpointRemovedTransfer::class => 'search-commands', ]; -$config[MessageBrokerAwsConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ +$config[MessageBrokerConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ //... 'product-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, 'search-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, ]; -$config[MessageBrokerAwsConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ +$config[MessageBrokerConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ //... 'product-events' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, ]; diff --git a/docs/pbc/all/tax-management/202311.0/base-shop/third-party-integrations/vertex/install-vertex/integrate-the-acp-connector-module-for-tax-calculation.md b/docs/pbc/all/tax-management/202311.0/base-shop/third-party-integrations/vertex/install-vertex/integrate-the-acp-connector-module-for-tax-calculation.md index 18ecb4d3549..412c702fdc8 100644 --- a/docs/pbc/all/tax-management/202311.0/base-shop/third-party-integrations/vertex/install-vertex/integrate-the-acp-connector-module-for-tax-calculation.md +++ b/docs/pbc/all/tax-management/202311.0/base-shop/third-party-integrations/vertex/install-vertex/integrate-the-acp-connector-module-for-tax-calculation.md @@ -19,37 +19,38 @@ To integrate the connector module for the Vertex app, follow these steps. Add the following config to `config/Shared/config_default.php`: ```php -// ... - use Generated\Shared\Transfer\ConfigureTaxAppTransfer; use Generated\Shared\Transfer\DeleteTaxAppTransfer; use Generated\Shared\Transfer\SubmitPaymentTaxInvoiceTransfer; +use Spryker\Shared\MessageBroker\MessageBrokerConstants; use Spryker\Shared\TaxApp\TaxAppConstants; use Spryker\Zed\OauthAuth0\OauthAuth0Config; +use Spryker\Zed\MessageBrokerAws\MessageBrokerAwsConfig; -// ... +//... +$config[TaxAppConstants::TENANT_IDENTIFIER] = getenv('SPRYKER_TENANT_IDENTIFIER') ?: ''; $config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = [ - // ... + //... ConfigureTaxAppTransfer::class => 'tax-commands', DeleteTaxAppTransfer::class => 'tax-commands', SubmitPaymentTaxInvoiceTransfer::class => 'payment-tax-invoice-commands', ]; -$config[MessageBrokerAwsConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ - // ... - - 'tax-commands' => MessageBrokerAwsConfig::SQS_TRANSPORT, +$config[MessageBrokerConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ + //... + 'tax-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, ]; -$config[MessageBrokerAwsConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ - // ... - - 'payment-tax-invoice-commands' => 'http', +$config[MessageBrokerConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ + //... + 'payment-tax-invoice-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, ]; -// ... - +// ---------------------------------------------------------------------------- +// ------------------------------ OAUTH --------------------------------------- +// ---------------------------------------------------------------------------- +//... $config[TaxAppConstants::OAUTH_PROVIDER_NAME] = OauthAuth0Config::PROVIDER_NAME; $config[TaxAppConstants::OAUTH_GRANT_TYPE] = OauthAuth0Config::GRANT_TYPE_CLIENT_CREDENTIALS; $config[TaxAppConstants::OAUTH_OPTION_AUDIENCE] = 'aop-app'; @@ -60,13 +61,13 @@ $config[TaxAppConstants::OAUTH_OPTION_AUDIENCE] = 'aop-app'; Update `src/Pyz/Zed/Calculation/CalculationDependencyProvider.php` as follows: ```php -// ... +//... use Spryker\Zed\Calculation\Communication\Plugin\Calculator\ItemDiscountAmountFullAggregatorPlugin; use Spryker\Zed\Calculation\Communication\Plugin\Calculator\PriceToPayAggregatorPlugin; use Spryker\Zed\TaxApp\Communication\Plugin\Calculation\TaxAppCalculationPlugin; -// ... +//... /** * @param \Spryker\Zed\Kernel\Container $container @@ -77,7 +78,7 @@ use Spryker\Zed\TaxApp\Communication\Plugin\Calculation\TaxAppCalculationPlugin; { /** @var array<\Spryker\Zed\Calculation\Dependency\Plugin\CalculationPluginInterface> $pluginStack */ $pluginStack = [ - // ... + //... # Suggested plugins order is shown. @@ -89,7 +90,7 @@ use Spryker\Zed\TaxApp\Communication\Plugin\Calculation\TaxAppCalculationPlugin; new PriceToPayAggregatorPlugin(), - // ... + //... ]; return $pluginStack; @@ -103,7 +104,7 @@ use Spryker\Zed\TaxApp\Communication\Plugin\Calculation\TaxAppCalculationPlugin; protected function getOrderCalculatorPluginStack(Container $container): array { return [ - // ... + //... # Suggested plugins order is shown. @@ -115,11 +116,11 @@ use Spryker\Zed\TaxApp\Communication\Plugin\Calculation\TaxAppCalculationPlugin; new PriceToPayAggregatorPlugin(), - // ... + //... ]; } -// ... +//... ``` {% info_block infoBox "Updating from TaxApp module version <=0.2.3" %} @@ -133,7 +134,7 @@ Previously, we recommended to disable the default tax calculation plugins. This Create or update `src/Pyz/Zed/TaxApp/TaxAppDependencyProvider.php` as follows: ```php -// ... +//... use Spryker\Zed\Calculation\Communication\Plugin\Calculator\ItemTaxAmountFullAggregatorPlugin; use Spryker\Zed\Calculation\Communication\Plugin\Calculator\PriceToPayAggregatorPlugin; @@ -141,7 +142,7 @@ use Spryker\Zed\Tax\Communication\Plugin\Calculator\TaxAmountAfterCancellationCa use Spryker\Zed\Tax\Communication\Plugin\Calculator\TaxAmountCalculatorPlugin; use Spryker\Zed\Tax\Communication\Plugin\Calculator\TaxRateAverageAggregatorPlugin; -// ... +//... /** * {@inheritDoc} @@ -177,7 +178,7 @@ use Spryker\Zed\Tax\Communication\Plugin\Calculator\TaxRateAverageAggregatorPlug ]; } -// ... +//... ``` In general, `getFallbackQuoteCalculationPlugins()` and `getFallbackOrderCalculationPlugins()` methods should contain the tax calculation plugins, which are replaced by `TaxAppCalculationPlugin` in `\Pyz\Zed\Calculation\CalculationDependencyProvider`. @@ -217,7 +218,7 @@ class ShopApplicationDependencyProvider extends SprykerShopApplicationDependency protected function getGlobalWidgets(): array { return [ - // ... + //... # This widget is replacing Spryker default tax display in cart summary page with text stating that tax amount will be calculated during checkout process. CartSummaryHideTaxAmountWidget::class, @@ -263,7 +264,7 @@ class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProv public function getMessageHandlerPlugins(): array { return [ - // ... + //... # This plugin is handling messages sent from Vertex app to SCCOS. new TaxAppMessageHandlerPlugin(), @@ -273,7 +274,33 @@ class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProv ``` -### 5. Optional: Sending tax invoices to Vertex and handling refunds +### 5. Configure channels in `MessageBroker` configuration + +Add the following code to `src/Pyz/Zed/MessageBroker/MessageBrokerConfig.php`: + +```php +namespace Pyz\Zed\MessageBroker; + +use Spryker\Zed\MessageBroker\MessageBrokerConfig as SprykerMessageBrokerConfig; + +class MessageBrokerConfig extends SprykerMessageBrokerConfig +{ + /** + * @return array + */ + public function getDefaultWorkerChannels(): array + { + return [ + //... + 'tax-commands', + ]; + } + + //... +} +``` + +### 6. Optional: Sending tax invoices to Vertex and handling refunds Configure payment `config/Zed/oms/{your_payment_oms}.xml`as in the following example: @@ -341,12 +368,12 @@ Configure payment `config/Zed/oms/{your_payment_oms}.xml`as in the following exa Add the config to `src/Pyz/Zed/Oms/OmsDependencyProvider.php`: ```php -// ... +//... use Spryker\Zed\TaxApp\Communication\Plugin\Oms\Command\SubmitPaymentTaxInvoicePlugin; use Spryker\Zed\TaxApp\Communication\Plugin\Oms\OrderRefundedEventListenerPlugin; -// ... +//... # This configuration is necessary for Invoice functionality /** @@ -358,11 +385,11 @@ use Spryker\Zed\TaxApp\Communication\Plugin\Oms\OrderRefundedEventListenerPlugin { $container->extend(self::COMMAND_PLUGINS, function (CommandCollectionInterface $commandCollection) { - // ... + //... $commandCollection->add(new SubmitPaymentTaxInvoicePlugin(), 'TaxApp/SubmitPaymentTaxInvoice'); - // ... + //... return $commandCollection; }); @@ -370,7 +397,7 @@ use Spryker\Zed\TaxApp\Communication\Plugin\Oms\OrderRefundedEventListenerPlugin return $container; } -// ... +//... # This configuration is necessary for Refund functionality /** @@ -383,7 +410,7 @@ use Spryker\Zed\TaxApp\Communication\Plugin\Oms\OrderRefundedEventListenerPlugin ]; } -// ... +//... ``` This configuration of `getOmsEventTriggeredListenerPlugins` method is required to ensure that the correct tax amount will be used during the refund process. diff --git a/docs/pbc/all/usercentrics/integrate-usercentrics.md b/docs/pbc/all/usercentrics/integrate-usercentrics.md index c60f2535e06..b9f6e704336 100644 --- a/docs/pbc/all/usercentrics/integrate-usercentrics.md +++ b/docs/pbc/all/usercentrics/integrate-usercentrics.md @@ -101,14 +101,20 @@ Follow these steps to integrate Usercentics. Add the following config to `config/Shared/config_default.php`: ```php -$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = -$config[MessageBrokerAwsConstants::MESSAGE_TO_CHANNEL_MAP] = [ +use Spryker\Shared\MessageBroker\MessageBrokerConstants; +use Spryker\Zed\MessageBrokerAws\MessageBrokerAwsConfig; + +//... + +$config[MessageBrokerConstants::MESSAGE_TO_CHANNEL_MAP] = [ + //... AssetAddedTransfer::class => 'asset-commands', AssetUpdatedTransfer::class => 'asset-commands', AssetDeletedTransfer::class => 'asset-commands', ]; $config[MessageBrokerConstants::CHANNEL_TO_RECEIVER_TRANSPORT_MAP] = [ + //... 'asset-commands' => MessageBrokerAwsConfig::HTTP_CHANNEL_TRANSPORT, ]; ``` @@ -137,6 +143,32 @@ class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProv } ``` +### Configure channels in `MessageBroker` configuration + +Add the following code to `src/Pyz/Zed/MessageBroker/MessageBrokerConfig.php`: + +```php +namespace Pyz\Zed\MessageBroker; + +use Spryker\Zed\MessageBroker\MessageBrokerConfig as SprykerMessageBrokerConfig; + +class MessageBrokerConfig extends SprykerMessageBrokerConfig +{ + /** + * @return array + */ + public function getDefaultWorkerChannels(): array + { + return [ + //... + 'asset-commands', + ]; + } + + //... +} +``` + ### Configure dependencies in `Publisher` Add the following code to `src/Pyz/Zed/Publisher/PublisherDependencyProvider.php`: From ff1d1e797d33b62a80e2b60b2380139fd8bdc337 Mon Sep 17 00:00:00 2001 From: Anton Zubariev Date: Fri, 26 Jan 2024 09:24:08 +0200 Subject: [PATCH 17/23] ACP-383: CR fixes --- .../integrate-payone.md | 72 +++++++++++++------ .../stripe/install-stripe.md | 39 ++++++++++ 2 files changed, 89 insertions(+), 22 deletions(-) diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index e665bb4ff77..f018c2714b8 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -324,32 +324,60 @@ protected function extendCommandPlugins(Container $container): Container }); } ``` - -### OMS configuration -One single OMS file is now divided into the main process and sub-processes: -The following file must be changed `ForeignPaymentStateMachine01.xml`: +### Optional: Configure your payment OMS + +The complete default payment OMS configuration is available at `/vendor/spryker/sales-payment/config/Zed/Oms/ForeignPaymentStateMachine01.xml`. Optionally, you can configure your own payment `config/Zed/oms/{your_payment_oms}.xml`as in the following example. This example demonstrates how to configure the order state machine transition from `ready for dispatch` to `payment capture pending`: ```xml - - - - PaymentAuthorization - PaymentConfirmation - ItemSupply - ItemReturn - PaymentRefund - PaymentReservationCancel - ItemClose - -... -``` + + -Main process not only combines and operates sub-processes, its main goal to build everything around the only reserved=”true” state named invoiced; -Each sub-process has its own states, events, transitions, entry and exit points and can be extended/expanded at the project level to meet all the needs of a particular tenant: + -```xml - + + + + + + + + + + + + + + + + + + ready for dispatch + payment capture pending + capture payment + + + + + + + + + + + + + + + + + + + ``` ### Data and presentation changes @@ -379,7 +407,7 @@ Then run the data import for the glossary: console data:import glossary ``` -### Template changes in `CheckoutPage` +### Optional: Template changes in `CheckoutPage` Please be aware that if you have rewritten `@CheckoutPage/views/payment/payment.twig` on the project level: diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.md index 6da902d88a0..88db0e2a0e0 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.md @@ -239,6 +239,45 @@ The complete default payment OMS configuration is available at `/vendor/spryker/ ``` +### Optional: Template changes in `CheckoutPage` + +Please be aware that if you have rewritten `@CheckoutPage/views/payment/payment.twig` on the project level: + +- You should check that for payment selection choices a form molecule uses the following code: + +```twig +{% for name, choices in data.form.paymentSelection.vars.choices %} + ... + {% embed molecule('form') with { + data: { + form: data.form[data.form.paymentSelection[key].vars.name], + ... + } + {% endembed %} +{% endfor %} +``` + +- Payment provider names now have glossary keys instead of a name itself, so you need to check if the names of the payment providers are translated without using the prefix: + +```twig +{% for name, choices in data.form.paymentSelection.vars.choices %} + ... +
{{ name | trans }}
+{% endfor %} +``` + +- Also, if you need, you can add the glossary keys for all the new (external) payment providers and methods to your glossary data import file. For example, there is 1 new external payment with the provider name Payone (can be found in spy_payment_method table in group_name column) and the payment method name Credit Card (can be found in spy_payment_method table in label_name column). For all of them, you can add translations to your glossary data import file like this: + +```csv +... +Payone,Payone Payments,en_US +Credit Card,Credit Card (Payone),en_US +``` +Then run the data import for the glossary: + +```bash +console data:import glossary +``` ## Next step [Configure Stripe in the Back Office](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/stripe/configure-stripe.html) From d32aee21e1781779b1cf61055fb7171fc4a9391b Mon Sep 17 00:00:00 2001 From: Anton Zubariev Date: Fri, 26 Jan 2024 10:45:39 +0200 Subject: [PATCH 18/23] Update docs/pbc/all/usercentrics/integrate-usercentrics.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: René Klatt --- docs/pbc/all/usercentrics/integrate-usercentrics.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/pbc/all/usercentrics/integrate-usercentrics.md b/docs/pbc/all/usercentrics/integrate-usercentrics.md index b9f6e704336..8a74dc08bc4 100644 --- a/docs/pbc/all/usercentrics/integrate-usercentrics.md +++ b/docs/pbc/all/usercentrics/integrate-usercentrics.md @@ -183,8 +183,8 @@ use Spryker\Zed\Publisher\PublisherDependencyProvider as SprykerPublisherDepende class PublisherDependencyProvider extends SprykerPublisherDependencyProvider { /** - * @return array<\Spryker\Zed\PublisherExtension\Dependency\Plugin\PublisherPluginInterface> - */ + * @return array<\Spryker\Zed\PublisherExtension\Dependency\Plugin\PublisherPluginInterface> + */ protected function getAssetStoragePlugins(): array { return [ From 1acf6c01b5eb0e184679dc674fcf57f8fc935b62 Mon Sep 17 00:00:00 2001 From: Helen Kravchenko Date: Fri, 26 Jan 2024 13:32:52 +0100 Subject: [PATCH 19/23] adding a file to sidebar --- _data/sidebars/acp_user_sidebar.yml | 2 ++ .../user/receive-acp-messages.md} | 9 +++++---- 2 files changed, 7 insertions(+), 4 deletions(-) rename docs/{pbc/all/mb2-receiving-messages.md => acp/user/receive-acp-messages.md} (66%) diff --git a/_data/sidebars/acp_user_sidebar.yml b/_data/sidebars/acp_user_sidebar.yml index 0cfdf9343fb..d583719cfae 100644 --- a/_data/sidebars/acp_user_sidebar.yml +++ b/_data/sidebars/acp_user_sidebar.yml @@ -41,4 +41,6 @@ entries: url: /docs/acp/user/sync-api.html - title: Async API url: /docs/acp/user/async-api.html + - title: Receive ACP messages + url: /docs/acp/user/receive-acp-messages.html diff --git a/docs/pbc/all/mb2-receiving-messages.md b/docs/acp/user/receive-acp-messages.md similarity index 66% rename from docs/pbc/all/mb2-receiving-messages.md rename to docs/acp/user/receive-acp-messages.md index 5e3514d3810..ad00ca97194 100644 --- a/docs/pbc/all/mb2-receiving-messages.md +++ b/docs/acp/user/receive-acp-messages.md @@ -1,5 +1,5 @@ --- -title: Receiving ACP Messages +title: Receive ACP Messages description: Find out how you can receive ACP messages in SCCOS. template: howto-guide-template last_updated: Jan 09, 2024 @@ -7,17 +7,18 @@ last_updated: Jan 09, 2024 This document describes how to receive ACP messages in SCCOS. -Receive messages from all channels: +To receive messages from all the channels, run the following command: ```bash console message-broker:consume ``` -Receive messages from the specific channel: +To receive messages from a specific channel, run the following command: + ```bash console message-broker:consume {channel-name} # {channel-name} is the name of the channel, like `asset-commands`. ``` -This command must be executed periodically. To achieve this, configure Jenkins in `config/Zed/cronjobs/jenkins.php`: +This command must be executed periodically. To set up this periodic execution, configure Jenkins in `config/Zed/cronjobs/jenkins.php`: ```php $jobs[] = [ From 205ec44d4ca7dc0ad6207872f654c82a45c51299 Mon Sep 17 00:00:00 2001 From: Helen Kravchenko Date: Fri, 26 Jan 2024 14:35:17 +0100 Subject: [PATCH 20/23] fixing twig syntax --- .../third-party-integrations/stripe/install-stripe.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.md index 88db0e2a0e0..6c6154e787e 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.md @@ -246,6 +246,7 @@ Please be aware that if you have rewritten `@CheckoutPage/views/payment/payment. - You should check that for payment selection choices a form molecule uses the following code: ```twig +{% raw %} {% for name, choices in data.form.paymentSelection.vars.choices %} ... {% embed molecule('form') with { @@ -254,16 +255,19 @@ Please be aware that if you have rewritten `@CheckoutPage/views/payment/payment. ... } {% endembed %} -{% endfor %} +{% endfor %} +{% endraw %} ``` - Payment provider names now have glossary keys instead of a name itself, so you need to check if the names of the payment providers are translated without using the prefix: ```twig +{% raw %} {% for name, choices in data.form.paymentSelection.vars.choices %} ...
{{ name | trans }}
{% endfor %} +{% endraw %} ``` - Also, if you need, you can add the glossary keys for all the new (external) payment providers and methods to your glossary data import file. For example, there is 1 new external payment with the provider name Payone (can be found in spy_payment_method table in group_name column) and the payment method name Credit Card (can be found in spy_payment_method table in label_name column). For all of them, you can add translations to your glossary data import file like this: From ee35d671c4280ddf847b71f4aa4266a9dd21df8d Mon Sep 17 00:00:00 2001 From: Helen Kravchenko Date: Fri, 26 Jan 2024 14:48:21 +0100 Subject: [PATCH 21/23] fixing twig syntax --- .../integration-in-the-back-office/integrate-payone.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index f018c2714b8..ee0b8a043f9 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -414,6 +414,7 @@ Please be aware that if you have rewritten `@CheckoutPage/views/payment/payment. - You should check that for payment selection choices a form molecule uses the following code: ```twig +{% raw %} {% for name, choices in data.form.paymentSelection.vars.choices %} ... {% embed molecule('form') with { @@ -422,16 +423,19 @@ Please be aware that if you have rewritten `@CheckoutPage/views/payment/payment. ... } {% endembed %} -{% endfor %} +{% endfor %} +{% endraw %} ``` - Payment provider names now have glossary keys instead of a name itself, so you need to check if the names of the payment providers are translated without using the prefix: ```twig +{% raw %} {% for name, choices in data.form.paymentSelection.vars.choices %} ...
{{ name | trans }}
{% endfor %} +{% endraw %} ``` - Also, if you need, you can add the glossary keys for all the new (external) payment providers and methods to your glossary data import file. For example, there is 1 new external payment with the provider name Payone (can be found in spy_payment_method table in group_name column) and the payment method name Credit Card (can be found in spy_payment_method table in label_name column). For all of them, you can add translations to your glossary data import file like this: From 07539f4301e4055c3ef5833f9c63c0d7f262a991 Mon Sep 17 00:00:00 2001 From: Helen Kravchenko Date: Fri, 26 Jan 2024 15:23:36 +0100 Subject: [PATCH 22/23] fixing broken links --- docs/acp/user/app-composition-platform-installation.md | 10 +++++----- docs/acp/user/receive-acp-messages.md | 4 ++-- .../integration-in-the-back-office/integrate-payone.md | 2 +- .../third-party-integrations/integrate-bazaarvoice.md | 2 +- .../algolia/integrate-algolia.md | 2 +- docs/pbc/all/usercentrics/integrate-usercentrics.md | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/acp/user/app-composition-platform-installation.md b/docs/acp/user/app-composition-platform-installation.md index eb081e52222..6f691998bae 100644 --- a/docs/acp/user/app-composition-platform-installation.md +++ b/docs/acp/user/app-composition-platform-installation.md @@ -38,13 +38,13 @@ The actions and level of effort required to make your project ACP-ready may vary To make your project ACP-ready, different update steps are necessary depending on the template version on which your project was started: -- SCCOS product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.md) has basic ACP set up in place, all ACP modules (Apps & Platform) need updates. +- SCCOS product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.html) has basic ACP set up in place, all ACP modules (Apps & Platform) need updates. -- SCCOS product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md) or newer: you can skip the configuration step described in this document. +- SCCOS product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.html) or newer: you can skip the configuration step described in this document. {% info_block infoBox "Product version earlier than 202311.0" %} -If you were onboarded with a version older than product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.md), please [contact us](https://support.spryker.com/). +If you were onboarded with a version older than product release [202211.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202211.0/release-notes-202211.0.html), please [contact us](https://support.spryker.com/). {% endinfo_block %} @@ -54,7 +54,7 @@ To get your project ACP-ready, it is important to ensure that your project modul #### ACP modules -Starting with the Spryker product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md), the ACP catalog is included by default in the Spryker Cloud product. However, you should still make sure that your Spryker project uses the latest versions of the following modules: +Starting with the Spryker product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.html), the ACP catalog is included by default in the Spryker Cloud product. However, you should still make sure that your Spryker project uses the latest versions of the following modules: * `spryker/app-catalog-gui: ^1.4.1` or later * `spryker/message-broker: ^1.10.0` or later @@ -78,7 +78,7 @@ For each app you wish to use, ensure that you have the latest app-related SCOS m {% info_block infoBox "This step can be omitted for Product version later than 202311.0" %} -If your version is based on product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.md) or newer, you can skip this section! +If your version is based on product release [202311.0](/docs/scos/user/intro-to-spryker/releases/release-notes/release-notes-202311.0/release-notes-202311.0.html) or newer, you can skip this section. {% endinfo_block %} diff --git a/docs/acp/user/receive-acp-messages.md b/docs/acp/user/receive-acp-messages.md index ad00ca97194..57a7f0ebe67 100644 --- a/docs/acp/user/receive-acp-messages.md +++ b/docs/acp/user/receive-acp-messages.md @@ -23,9 +23,9 @@ This command must be executed periodically. To set up this periodic execution, c ```php $jobs[] = [ 'name' => 'message-broker-consume-channels', - 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=30 --sleep=5', + 'command' => '$PHP_BIN vendor/bin/console message-broker:consume --time-limit=15 --sleep=5', 'schedule' => '* * * * *', 'enable' => true, 'stores' => $allStores, ]; -``` +``` \ No newline at end of file diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index ee0b8a043f9..db6c8ed2e8e 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -453,7 +453,7 @@ console data:import glossary ### Console command for receiving messages -This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.html). +This document describes how to [receive messages](/docs/acp/user/receive-acp-messages.md). ## Next steps diff --git a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md index 2a5c976788a..efc3b30a2a9 100644 --- a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md +++ b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md @@ -339,7 +339,7 @@ class RabbitMqConfig extends SprykerRabbitMqConfig ### 5. Receive messages -This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.html). +This document describes how to [receive messages](/docs/acp/user/receive-acp-messages.md). ### 6. Configure OMS diff --git a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md index 79d558ed783..92d51b5e4ff 100644 --- a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md +++ b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md @@ -681,7 +681,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency ### Console command for receiving messages -This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.html). +This document describes how to [receive messages](/docs/acp/user/receive-acp-messages.md). ## Additional information on Algolia integration diff --git a/docs/pbc/all/usercentrics/integrate-usercentrics.md b/docs/pbc/all/usercentrics/integrate-usercentrics.md index 8a74dc08bc4..986bdf79125 100644 --- a/docs/pbc/all/usercentrics/integrate-usercentrics.md +++ b/docs/pbc/all/usercentrics/integrate-usercentrics.md @@ -239,7 +239,7 @@ class RabbitMqConfig extends SprykerRabbitMqConfig ### Console command for receiving messages -This document describes how to [receive messages](/docs/pbc/all/mb2-receiving-messages.html). +This document describes how to [receive messages](/docs/acp/user/receive-acp-messages.md). ## Next steps From 7897dfe2eccd6d022e5a25e629c85f368924b736 Mon Sep 17 00:00:00 2001 From: Helen Kravchenko Date: Fri, 26 Jan 2024 15:59:19 +0100 Subject: [PATCH 23/23] fixing a lik --- .../payone/integration-in-the-back-office/integrate-payone.md | 2 +- .../202311.0/third-party-integrations/integrate-bazaarvoice.md | 2 +- .../third-party-integrations/algolia/integrate-algolia.md | 2 +- docs/pbc/all/usercentrics/integrate-usercentrics.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md index db6c8ed2e8e..28c28fb967b 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/payone/integration-in-the-back-office/integrate-payone.md @@ -453,7 +453,7 @@ console data:import glossary ### Console command for receiving messages -This document describes how to [receive messages](/docs/acp/user/receive-acp-messages.md). +This document describes how to [receive messages](/docs/acp/user/receive-acp-messages.html). ## Next steps diff --git a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md index efc3b30a2a9..089e924e598 100644 --- a/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md +++ b/docs/pbc/all/ratings-reviews/202311.0/third-party-integrations/integrate-bazaarvoice.md @@ -339,7 +339,7 @@ class RabbitMqConfig extends SprykerRabbitMqConfig ### 5. Receive messages -This document describes how to [receive messages](/docs/acp/user/receive-acp-messages.md). +This document describes how to [receive messages](/docs/acp/user/receive-acp-messages.html). ### 6. Configure OMS diff --git a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md index 92d51b5e4ff..ca58b5d5c06 100644 --- a/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md +++ b/docs/pbc/all/search/202311.0/base-shop/third-party-integrations/algolia/integrate-algolia.md @@ -681,7 +681,7 @@ class SynchronizationDependencyProvider extends SprykerSynchronizationDependency ### Console command for receiving messages -This document describes how to [receive messages](/docs/acp/user/receive-acp-messages.md). +This document describes how to [receive messages](/docs/acp/user/receive-acp-messages.html). ## Additional information on Algolia integration diff --git a/docs/pbc/all/usercentrics/integrate-usercentrics.md b/docs/pbc/all/usercentrics/integrate-usercentrics.md index 986bdf79125..380427b5dca 100644 --- a/docs/pbc/all/usercentrics/integrate-usercentrics.md +++ b/docs/pbc/all/usercentrics/integrate-usercentrics.md @@ -239,7 +239,7 @@ class RabbitMqConfig extends SprykerRabbitMqConfig ### Console command for receiving messages -This document describes how to [receive messages](/docs/acp/user/receive-acp-messages.md). +This document describes how to [receive messages](/docs/acp/user/receive-acp-messages.html). ## Next steps