From 41dad26ede721998c23a6f9f78af797fac8902a6 Mon Sep 17 00:00:00 2001 From: Helen Kravchenko Date: Fri, 2 Feb 2024 13:43:23 +0100 Subject: [PATCH 1/4] Stripe guides update --- docs/acp/user/intro-to-acp/acp-overview.md | 1 + ...sccos-prerequisites-for-the-stripe-app.md} | 28 +++++---- .../third-party-integrations/stripe/stripe.md | 58 +++++++++++-------- 3 files changed, 52 insertions(+), 35 deletions(-) rename docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/{integrate-stripe.md => sccos-prerequisites-for-the-stripe-app.md} (90%) diff --git a/docs/acp/user/intro-to-acp/acp-overview.md b/docs/acp/user/intro-to-acp/acp-overview.md index becf337d6eb..c099f1afe39 100644 --- a/docs/acp/user/intro-to-acp/acp-overview.md +++ b/docs/acp/user/intro-to-acp/acp-overview.md @@ -21,6 +21,7 @@ The following apps are supported: - [Payone](/docs/pbc/all/payment-service-providers/payone/integrate-payone.html), a Payment Service Provider (PSP) - [Usercentrics](/docs/pbc/all/usercentrics/integrate-usercentrics.html), a Consent Management Platform (CMP) - [Bazaarvoice](/docs/pbc/all/ratings-reviews/{{site.version}}/third-party-integrations/integrate-bazaarvoice.html), a platform for User-Generated Content (UGC) +- [Stripe](/docs/pbc/all/payment-service-provider/{{site.version}}/base-shop/third-party-integrations/stripe/stripe.html), a financial infrastructure platform that enables businesses to accept payments Spryker builds all integrations of the apps and provides them in a secure and no-code way for the SCCOS. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/integrate-stripe.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/sccos-prerequisites-for-the-stripe-app.md similarity index 90% rename from docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/integrate-stripe.md rename to docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/sccos-prerequisites-for-the-stripe-app.md index 5196abd492d..443cc5a566b 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/integrate-stripe.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/sccos-prerequisites-for-the-stripe-app.md @@ -1,6 +1,6 @@ --- -title: Integrate Stripe -description: Find out how you can install Stripe in your Spryker shop +title: SCCOS prerequisites for the Stripe app +description: Find out about the SCCOS modules needed for the Stripe App to function and their configuration draft: true last_updated: Jan 31, 2024 template: howto-guide-template @@ -10,19 +10,23 @@ related: redirect_from: - /docs/pbc/all/payment-service-provider/202311.0/third-party-integrations/stripe/install-stripe.html - /docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.html +- /docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/integrate-stripe.html --- -This document describes how to integrate [Stripe](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/stripe/stripe.html) into a Spryker shop. +This document gives an overview of the SCCOS prerequisites required for the [Stripe App](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/stripe/stripe.html) to function in your Spryker Shop. -## Prerequisites +{% info_block infoBox "Info" %} -Before integrating Stripe, ensure the following prerequisites are met: +The steps listed is this document are only necessary if your Spryker shop doesn't contain the packages (or their versions are outdated) and configurations below. -- Make sure your project is ACP-enabled. See [App Composition Platform installation](/docs/acp/user/app-composition-platform-installation.html) for details. +{% endinfo_block %} -- The Stripe app catalog page lists specific packages that must be installed or upgraded before you can use the Stripe app. To check the list of the necessary packages, in the Back Office, go to **Apps**-> **Stripe**. Ensure that your installation meets these requirements. -## 1. Configure shared configs +## 1. Required packages + +The Stripe app catalog page lists specific packages that must be installed or upgraded before you can use the Stripe app. To check the list of the necessary packages, in the Back Office, go to **Apps**-> **Stripe**. Ensure that your installation meets these requirements. + +## 2. Configure shared configs Your project probably already contains the following code in `config/Shared/config_default.php` already. If not, add it: @@ -88,7 +92,7 @@ $config[MessageBrokerConstants::CHANNEL_TO_SENDER_TRANSPORT_MAP] = [ ``` -## 2. Configure the Message Broker dependency provider +## 3. 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: @@ -125,7 +129,7 @@ class MessageBrokerDependencyProvider extends SprykerMessageBrokerDependencyProv ``` -## 3. Configure channels in Message Broker configuration +## 4. Configure channels in Message Broker configuration Add the following code to `src/Pyz/Zed/MessageBroker/MessageBrokerConfig.php`: @@ -152,7 +156,7 @@ class MessageBrokerConfig extends SprykerMessageBrokerConfig } ``` -## 4. Configure the Order State Machine (OMS) +## 5. Configure the Order State Machine (OMS) Your project is likely to have the following in `src/Pyz/Zed/Oms/OmsDependencyProvider.php` already. If not, add it: ```php @@ -300,4 +304,4 @@ 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) +[Configure Stripe in the Back Office](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/stripe/configure-stripe.html) \ No newline at end of file diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/stripe.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/stripe.md index 9cd6d67694f..13686fd7808 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/stripe.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/stripe.md @@ -15,40 +15,52 @@ The Stripe integration in Spryker is a part of the App Composition Platform and ## Supported business models The Stripe App supports the business-to-business (B2B) and business-to-consumer (B2C) models. -## Prerequisites for using the Stripe app +## Features +The Stripe App has the following features: +- Interface within the Spryker ACP catalog to connect with Stripe: Users can connect to Stripe from the App Composition Platform. +- Easy switch between Test & Live mode: Users have the option to test payments in either mode. +- Responsive Redirect Payment Page: Once a connection is set up between Spryker & Stripe, upon check out, end users are redirected to a Spryker-hosted payment page where they can view activated payment methods. This works both on web and mobile. +- View Payment Methods activated in your Stripe Dashboard +- GLUE API support: Support for customers using Spryker headless. +- Authorize payments and capture later: The default OMS configuration allows you to authorize cards and capture the order amount either after shipping or based on the established business logic. +- Default OMS Configuration: We provide a default OMS configuration which can be used as an example or be modified to align with your business logic. -1. Your country is included in the [list of countries supported by Stripe](https://stripe.com/global). -2. Your business isn't listed among the [prohibited and restricted businesses](https://stripe.com/legal/restricted-businesses). -3. Your Spryker project is ACP-enabled. For more information on the ACP enablement process, see [App Composition Platform installation](/docs/acp/user/app-composition-platform-installation.html). -4. You have a Stripe account, and you have been onboarded to the Spryker platform with it. Spryker manages the onboarding process. For details, contact the [Spryker support team](https://spryker.my.site.com/support/s/). -Once you have been onboarded to the platform, you will have access to your account ID on the Stripe dashboard. The account ID is necessary to connect your project to the Stripe App. For more information on the Stripe account ID, see the [Stripe documentation](https://stripe.com/docs/payments/account). +## Prerequisites for using the Stripe app -## Setting up the Stripe app +1. You have a Stripe account. Your Stripe account needs to be connected to the Spryker platform account. We will help you with this. Kindly send a message to our [Spryker support team](https://spryker.my.site.com/support/s/). +2. Your Spryker project is ACP-enabled. For more information on the ACP enablement process, see [App Composition Platform installation](/docs/acp/user/app-composition-platform-installation.html). +3. You have the required [SCCOS prerequisites](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/stripe/install-stripe.html). +4. Your country is included in the [list of countries supported by Stripe](https://stripe.com/global). +5. Your business isn't listed among the [prohibited and restricted businesses](https://stripe.com/legal/restricted-businesses). -To set up Stripe on your project, do the following: -1. [Install Stripe](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/stripe/install-stripe.html). -2. [Configure and Connect Stripe in the Back Office](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/stripe/configure-stripe.html). -## Supported payment methods -The Stripe app supports the following payment methods: -- Cards: Visa and Mastercard +## Payment methods +The Stripe app supports all payments enabled by Stripe in your region. Learn more about [Payment methods in Stripe](https://stripe.com/docs/payments/payment-methods/overview). +However our team only tested the following payment methods +- Cards: including Visa and Mastercard - Debit card -- Bank transfer +- Bank transfer +- Klarna +- Apple Pay +- Google Pay +- Direct Debit (SEPA) / Sofortüberweisung +- iDEAL +- Link +- Przelewy24 +- Giropay {% info_block infoBox "Bank transfers" %} Keep in mind following about bank transfers in Stripe: -1. Stripe supports bank transfers in specific regions. For details on this payment method, see the Stripe documentation on [Bank transfer payments](https://stripe.com/docs/payments/bank-transfers). -2. Stripe provides some best practices for bank transfers. For example, if a business in EU wants to receive a transfer from a customer in Switzerland, it is recommended to make the transfer in Euro, not in CHF. For details, see [Stripe’s Payment Method Factsheet](https://stripe.com/ie/guides/payment-methods-guide#4-payment-methods-fact-sheets). +Stripe supports bank transfers in specific regions. You can read more about [Bank transfer payments](https://stripe.com/docs/payments/bank-transfers) here. {% endinfo_block %} -- SEPA direct debit -- iDEAL -- Klarna - -For more information about payment methods available in Stripe and regional peculiarities, see the Stripe documentation [Payment methods overview](https://stripe.com/docs/payments/payment-methods/overview). ## Current limitations -1. Refunds: The refund process using the Spryker OMS currently isn't supported. -2. Multi-Capture: Multi-Capture enables businesses to capture money paid for an order multiple times. Stripe offers it only to customers who use the IC+ pricing model. For details on the pricing model, see the Stripe documentation [Understanding Blended & Interchange+ pricing](https://support.stripe.com/questions/understanding-blended-interchange-pricing). + +The Stripe App has limited or no support for the following features: +- Refunds & Payment Cancellation: Handling refunds & payment cancellation via the Spryker OMS. +- Payment Authorization & Capture: The current logic works with separate authorization & capture. Hence, all payment methods go through this transition. +- Payment Authorization Timeout: We currently have a one-day timeout for authorizing payments. This means that payment methods such as Bank Transfers, which are not authorized within this timeframe, will experience a timeout. We recommend extending the timeout from one day to seven days. +- Multi-Capture: Partial capture of payment for orders items. \ No newline at end of file From b645efc41e48cbfe9992be2f56f1f097d3e80a2a Mon Sep 17 00:00:00 2001 From: Stanislav Matveyev Date: Fri, 2 Feb 2024 18:33:48 +0200 Subject: [PATCH 2/4] Extracted Project guidelines page --- _data/sidebars/pbc_all_sidebar.yml | 6 +- .../stripe/project-guidelines-for-stripe.md | 122 ++++++++++++++++++ .../sccos-prerequisites-for-the-stripe-app.md | 111 ---------------- 3 files changed, 126 insertions(+), 113 deletions(-) create mode 100644 docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe.md diff --git a/_data/sidebars/pbc_all_sidebar.yml b/_data/sidebars/pbc_all_sidebar.yml index 58e2bbd3bcf..d11721f6f4b 100644 --- a/_data/sidebars/pbc_all_sidebar.yml +++ b/_data/sidebars/pbc_all_sidebar.yml @@ -2407,12 +2407,14 @@ entries: - title: Stripe url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/stripe.html nested: - - title: Integrate Stripe - url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/integrate-stripe.html + - title: SCCOS prerequisites for Stripe + url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/sccos-prerequisites-for-the-stripe-app.md - title: Configure Stripe url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/configure-stripe.html - title: Disconnect Stripe url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/disconnect-stripe.html + - title: Project Guidelines for Stripe + url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe.html - title: Unzer url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/unzer/unzer.html nested: diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe.md new file mode 100644 index 00000000000..17d2a64bf4a --- /dev/null +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe.md @@ -0,0 +1,122 @@ +--- +title: Project guidelines for the Stripe app +description: Find out about the SCCOS modules needed for the Stripe App to function and their configuration +draft: true +last_updated: Jan 31, 2024 +template: howto-guide-template +related: + - title: Stripe + link: docs/pbc/all/payment-service-provider/page.version/base-shop/third-party-integrations/stripe/stripe.html +redirect_from: +- /docs/pbc/all/payment-service-provider/202311.0/third-party-integrations/stripe/install-stripe.html +- /docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/install-stripe.html +- /docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/integrate-stripe.html + +--- + +## OMS configuration for the project + +The complete default payment OMS configuration is available at `vendor/spryker/sales-payment/config/Zed/Oms/ForeignPaymentStateMachine01.xml`. + +The payment flow of the default OMS involves authorizing the initial payment, which means that the amount is temporarily blocked when the payment method permits. Then, the OMS sends requests to capture, that is, transfer of the previously blocked amount from the customer's account to the store account. + +The `Payment/Capture` command initiates the capture action. By default, this command is initiated when a Back office user clicks **Ship** on the *Order Overview* page. + +Optionally, you can change and configure your own payment OMS based on `ForeignPaymentStateMachine01.xml` from the core package and change this behavior according to your business flow. See [Install the Order Management feature](/docs/pbc/all/order-management-system/{{page.version}}/base-shop/install-and-upgrade/install-features/install-the-order-management-feature.html) for more information about the OMS feature and its configuration. + +To configure your payment OMS based on `ForeignPaymentStateMachine01.xml`, copy `ForeignPaymentStateMachine01.xml` with `Subprocess` folder to the project root `config/Zed/oms`. Then, change the name of the file and the value of ` + + + + + + + + + + + + + + + + + + + + + + ready for dispatch + payment capture pending + capture payment + + + + + + + + + + + + + + + + + + + +``` + +By default, the timeout for the payment authorization action is set to one day. This means that if the order is in the 'payment authorization pending' state, the OMS will wait for a day and then change the order state to 'payment authorization failed'. Another day later, the order is automatically transitioned to the 'payment authorization canceled' state. Therefore, if you need to increase timeouts or change the states, modify the config/Zed/oms/Subprocess/PaymentAuthorization01.xml file according to your requirements. + +## Checkout. Payment Step + +If you have rewritten `@CheckoutPage/views/payment/payment.twig` on the project level, do the following: + +1. Make sure that a form molecule uses the following code for the payment selection choices: + +```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 %} +``` + +2. If you want to change default payment provider or method names, make sure the names are translated in your payment step template: + +```twig +{% for name, choices in data.form.paymentSelection.vars.choices %} + ... +
{{ name | trans }}
+{% endfor %} +``` + +add translations to your glossary data import file: + +```csv +... +Stripe,Pay Online with Stripe,en_US +``` +Then run the data import for the glossary: + +```bash +console data:import glossary +``` \ No newline at end of file diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/sccos-prerequisites-for-the-stripe-app.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/sccos-prerequisites-for-the-stripe-app.md index 443cc5a566b..d69dcf7912e 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/sccos-prerequisites-for-the-stripe-app.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/sccos-prerequisites-for-the-stripe-app.md @@ -192,116 +192,5 @@ use Spryker\Zed\SalesPayment\Communication\Plugin\Oms\SendEventPaymentRefundPend ``` -### Optional: Configure your own payment OMS - -The complete default payment OMS configuration is available at `vendor/spryker/sales-payment/config/Zed/Oms/ForeignPaymentStateMachine01.xml`. - -The payment flow of the default OMS involves authorizing the initial payment, which means that the amount is temporarily blocked when the payment method permits. Then, the OMS sends requests to capture, that is, transfer of the previously blocked amount from the customer's account to the store account. - -The `Payment/SendEventPaymentConfirmationPending` command initiates the capture action. By default, this command is initiated when a Back office user clicks **Ship** on the *Order Overview* page. - -Optionally, you can change and configure your own payment OMS based on `ForeignPaymentStateMachine01.xml` from the core package and change this behavior according to your business flow. See [Install the Order Management feature](/docs/pbc/all/order-management-system/{{page.version}}/base-shop/install-and-upgrade/install-features/install-the-order-management-feature.html) for more information about the OMS feature and its configuration. - -To configure your payment OMS based on `ForeignPaymentStateMachine01.xml`, copy `ForeignPaymentStateMachine01.xml` with `Subprocess` folder to the project root `config/Zed/oms`. Then, change the name of the file and the value of ` - - - - - - - - - - - - - - - - - - - - - - ready for dispatch - payment capture pending - capture payment - - - - - - - - - - - - - - - - - - - -``` - -By default, the timeout for the payment authorization action is set to one day. This means that if the order is in the 'payment authorization pending' state, the OMS will wait for a day and then change the order state to 'payment authorization failed'. Another day later, the order is automatically transitioned to the 'payment authorization canceled' state. Therefore, if you need to increase timeouts or change the states, modify the config/Zed/oms/Subprocess/PaymentAuthorization01.xml file according to your requirements. - -## Optional: Introduce template changes in `CheckoutPage` - -If you have rewritten `@CheckoutPage/views/payment/payment.twig` on the project level, do the following: - -1. Make sure that a form molecule uses the following code for the payment selection choices: - -```twig -{% raw %} -{% 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 %} -{% endraw %} -``` - -2. Payment provider names now have glossary keys instead of a name itself. To accommodate this change, make sure 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 %} -``` - -3. Optional: Add the glossary keys for all the new (external) payment providers and methods to your glossary data import file. -For example, there is a new external payment with the provider name Payone, found in the `spy_payment_method` table under the `group_name` column, and the payment method name Credit Card, found in the `spy_payment_method` table under the `label_name` column. For all of them, you can add translations to your glossary data import file like this: - -```csv -... -Stripe,Pay Online with Stripe,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) \ No newline at end of file From 364a3e001e124786f04de99984205fa79d16f588 Mon Sep 17 00:00:00 2001 From: Helen Kravchenko Date: Mon, 5 Feb 2024 19:08:02 +0100 Subject: [PATCH 3/4] Adjusting the stripe guides --- _data/sidebars/pbc_all_sidebar.yml | 6 +- .../stripe/configure-stripe.md | 44 ------------- .../stripe/disconnect-stripe.md | 17 ----- ...tripe-configurations-in-the-acp-catalog.md | 65 +++++++++++++++++++ .../stripe/project-guidelines-for-stripe.md | 17 +++-- .../third-party-integrations/stripe/stripe.md | 13 ++-- 6 files changed, 85 insertions(+), 77 deletions(-) delete mode 100644 docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/configure-stripe.md delete mode 100644 docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/disconnect-stripe.md create mode 100644 docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/manage-stripe-configurations-in-the-acp-catalog.md diff --git a/_data/sidebars/pbc_all_sidebar.yml b/_data/sidebars/pbc_all_sidebar.yml index d11721f6f4b..05407935134 100644 --- a/_data/sidebars/pbc_all_sidebar.yml +++ b/_data/sidebars/pbc_all_sidebar.yml @@ -2409,10 +2409,8 @@ entries: nested: - title: SCCOS prerequisites for Stripe url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/sccos-prerequisites-for-the-stripe-app.md - - title: Configure Stripe - url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/configure-stripe.html - - title: Disconnect Stripe - url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/disconnect-stripe.html + - title: Manage Stripe configurations in the ACP catalog + url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/manage-stripe-configurations-in-the-acp-catalog.html - title: Project Guidelines for Stripe url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe.html - title: Unzer diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/configure-stripe.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/configure-stripe.md deleted file mode 100644 index f122cd80b79..00000000000 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/configure-stripe.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Configure Stripe -description: Find out how you can configure the Stripe app in your Spryker shop -draft: true -last_updated: Jan 31, 2024 -template: howto-guide-template -related: - - title: Stripe - link: docs/pbc/all/payment-service-provider/page.version/base-shop/third-party-integrations/stripe/stripe.html -redirect_from: -- /docs/pbc/all/payment-service-provider/202311.0/third-party-integrations/stripe/install-stripe.html ---- -Once you have [installed Stipe](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/stripe/install-stripe.html), you can configure it. - -## Prerequisites - -Before configuring Stripe, make sure you have met all the prerequisites listed in [Prerequisites for using the Stripe app](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/stripe/stripe.html#prerequisites-for-using-the-stripe-app). - -## Configure Stripe - -1. In your store's Back Office, go to **Apps**. -2. Click **Stripe**. - This takes you to the Stripe app details page. -3. In the top right corner of the Stripe app details page, click **Connect app**. - This displays a message about the successful connection of the app to your SCCOS. The Stripe app's status changes to *Connection pending*. -4. Go to [Stripe Dashboard](https://dashboard.stripe.com) and copy your account ID. For details on how to obtain the Stipe account it, see the [Stripe documentation](https://stripe.com/docs/payments/account). - -{% info_block infoBox "Info" %} - -It takes some time to obtain an account ID from Stripe because you have to go through a thorough vetting process, such as the "know your customer" (KYC) process, before Stripe verifies you. - -{% endinfo_block %} - -5. Go back to your store's Back Office, to the Stripe app details page. -6. In the top right corner of the Stripe app details page, click **Configure**. -7. In the *Configure* pane, fill in the *ACCOUNT ID* field with value from step 4. -8. In *Environment*, select the Stripe environment mode. For details in the Stipe modes, see the [Stripe documentation](https://stripe.com/docs/test-mode). -9. Optionally: In *Payment page title*, enter your shop name. This name will be displayed on the *Payment* page as a merchant label for the payee. -![stripe-configuration](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/payment-service-providers/stripe/configure-stripe/stripe-configuration.png) -10. Click **Save**. -If the app was connected successfully, a corresponding message appears, and the app status changes to **Connected**. -11. Activate Stripe in your store's Back office, in **Administration** -> **Payment methods**. For details, see [Edit payment methods](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/manage-in-the-back-office/edit-payment-methods.html). - - diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/disconnect-stripe.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/disconnect-stripe.md deleted file mode 100644 index fcf246663ca..00000000000 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/disconnect-stripe.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Disconnect Stripe -description: Learn how you can disconnect the Stripe app from your Spryker shop -template: howto-guide-template -last_updated: Jan 16, 2024 -redirect_from: - - /docs/pbc/all/payment-service-provider/stripe/disconnect-stripe.html - - /docs/pbc/all/payment-service-provider/202311.0/third-party-integrations/stripe/integration-in-the-back-office/disconnect-stripe.html ---- - -Disconnecting Stripe from your store removes its payment methods from the store configuration. However, you can disconnect Stripe only if there are no open orders that still use the Stripe payment method. - -To disconnect the Stripe app from your store, do the following: -1. In your store's Back Office, go to **Apps**. -2. Click **Stripe**. -3. On the Stripe app details page, next to the **Configure** button, hold the pointer over ![disconnect-button](https://spryker.s3.eu-central-1.amazonaws.com/docs/aop/user/apps/bazzarvoice/disconnect-button.png) and click **Disconnect**. -4. In the message that appears, click **Disconnect**. This removes the Stripe configurations from the Back Office and from the Storefront. diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/manage-stripe-configurations-in-the-acp-catalog.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/manage-stripe-configurations-in-the-acp-catalog.md new file mode 100644 index 00000000000..3566deff2ec --- /dev/null +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/manage-stripe-configurations-in-the-acp-catalog.md @@ -0,0 +1,65 @@ +--- +title: Manage Stripe configurations in the ACP catalog +description: Find out how you can configure the Stripe app in your Spryker shop +draft: true +last_updated: Jan 31, 2024 +template: howto-guide-template +related: + - title: Stripe + link: docs/pbc/all/payment-service-provider/page.version/base-shop/third-party-integrations/stripe/stripe.html +redirect_from: +- /docs/pbc/all/payment-service-provider/202311.0/third-party-integrations/stripe/install-stripe.html +- /docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/configure-stripe.html +- /docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/disconnect-stripe.html +--- + +This document describes how to connect configure the Stripe app in the ACP catalog of your Back Office. +Once you have , you can configure it. + +## Prerequisites + +Before configuring Stripe in the ACP catalog, make sure you have met these prerequisites: +- [Prerequisites for using the Stripe app](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/stripe/stripe.html#prerequisites-for-using-the-stripe-app) +- [SCCOS prerequisites for Stripe](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/third-party-integrations/stripe/install-stripe.html) + +## Connect and configure the Stripe app + +1. In your store's Back Office, go to **Apps**. +2. Click **Stripe**. + This takes you to the Stripe app details page. +3. In the top right corner of the Stripe app details page, click **Connect app**. + This displays a message about the successful connection of the app to your SCCOS. The Stripe app's status changes to *Connection pending*. +4. Go to [Stripe Dashboard](https://dashboard.stripe.com) and copy your account ID. Learn more about the Stripe [account id](https://stripe.com/docs/payments/account). +5. Go back to your store's Back Office, to the Stripe app details page. +6. In the top right corner of the Stripe app details page, click **Configure**. +7. In the *Configure* pane, fill in the *ACCOUNT ID* field with value from step 4. +8. In *Environment*, select if you want to use the app in test or live mode. For details on the Stripe test mode, see [Test mode](https://stripe.com/docs/test-mode). +9. Optionally: In *Payment page title*, enter your shop name. This name will be displayed on the *Payment* page as a merchant label for the payee. +![stripe-configuration](https://spryker.s3.eu-central-1.amazonaws.com/docs/pbc/all/payment-service-providers/stripe/configure-stripe/stripe-configuration.png) +10. Click **Save**. +If the app was connected successfully, a corresponding message appears, and the app status changes to **Connected**. +11. Activate Stripe in your store's Back office, in **Administration** -> **Payment methods**. For details, see [Edit payment methods](/docs/pbc/all/payment-service-provider/{{page.version}}/base-shop/manage-in-the-back-office/edit-payment-methods.html). + +## Disconnect the Stripe App + +Disconnecting the Stripe app from your store makes it unavailable to your customers as a payment option. + +{% info_block infoBox "Info" %} + +You should only disconnect if there are no open orders that still use the Stripe payment method. + +{% endinfo_block %} + +To disconnect the Stripe app from your store, do the following: +1. In your store's Back Office, go to **Apps**. +2. Click **Stripe**. +3. On the Stripe app details page, next to the **Configure** button, hold the pointer over ![disconnect-button](https://spryker.s3.eu-central-1.amazonaws.com/docs/aop/user/apps/bazzarvoice/disconnect-button.png) and click **Disconnect**. +4. In the message that appears, click **Disconnect**. This removes the Stripe configurations from the Back Office and from the Storefront. + +{% info_block infoBox "Info" %} + +If you want to use the Stripe app after the disconnection, you will need to reconnect the App. + +{% endinfo_block %} + + diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe.md index 17d2a64bf4a..6f87f2ba07c 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/project-guidelines-for-stripe.md @@ -14,6 +14,8 @@ redirect_from: --- +This document provides guidelines for projects using the Stripe app. + ## OMS configuration for the project The complete default payment OMS configuration is available at `vendor/spryker/sales-payment/config/Zed/Oms/ForeignPaymentStateMachine01.xml`. @@ -81,13 +83,14 @@ This example demonstrates how to configure the order state machine transition fr By default, the timeout for the payment authorization action is set to one day. This means that if the order is in the 'payment authorization pending' state, the OMS will wait for a day and then change the order state to 'payment authorization failed'. Another day later, the order is automatically transitioned to the 'payment authorization canceled' state. Therefore, if you need to increase timeouts or change the states, modify the config/Zed/oms/Subprocess/PaymentAuthorization01.xml file according to your requirements. -## Checkout. Payment Step +## Checkout payment step If you have rewritten `@CheckoutPage/views/payment/payment.twig` on the project level, do the following: 1. Make sure that a form molecule uses the following code for the payment selection choices: ```twig +{% raw %} {% for name, choices in data.form.paymentSelection.vars.choices %} ... @@ -97,25 +100,29 @@ If you have rewritten `@CheckoutPage/views/payment/payment.twig` on the project ... } {% endembed %} -{% endfor %} +{% endfor %} +{% endraw %} ``` -2. If you want to change default payment provider or method names, make sure the names are translated in your payment step template: +2. If you want to change default payment provider or method names, do the following: + 1. Make sure the names are translated in your payment step template: ```twig +{% raw %} {% for name, choices in data.form.paymentSelection.vars.choices %} ...
{{ name | trans }}
{% endfor %} +{% endraw %} ``` -add translations to your glossary data import file: + 2. Add translations to your glossary data import file: ```csv ... Stripe,Pay Online with Stripe,en_US ``` -Then run the data import for the glossary: + 3. Run the data import command for the glossary: ```bash console data:import glossary diff --git a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/stripe.md b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/stripe.md index 13686fd7808..d5c36a6eb30 100644 --- a/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/stripe.md +++ b/docs/pbc/all/payment-service-provider/202311.0/base-shop/third-party-integrations/stripe/stripe.md @@ -16,14 +16,14 @@ The Stripe integration in Spryker is a part of the App Composition Platform and The Stripe App supports the business-to-business (B2B) and business-to-consumer (B2C) models. ## Features -The Stripe App has the following features: -- Interface within the Spryker ACP catalog to connect with Stripe: Users can connect to Stripe from the App Composition Platform. -- Easy switch between Test & Live mode: Users have the option to test payments in either mode. +The Stripe app has the following features: +- Interface within the Spryker ACP catalog to connect with Stripe: You can connect to Stripe from the App Composition Platform. +- Easy switch between Test & Live mode: You can test payments in either mode. - Responsive Redirect Payment Page: Once a connection is set up between Spryker & Stripe, upon check out, end users are redirected to a Spryker-hosted payment page where they can view activated payment methods. This works both on web and mobile. -- View Payment Methods activated in your Stripe Dashboard +- Viewing the activated payment methods in the Stripe dashboard. - GLUE API support: Support for customers using Spryker headless. - Authorize payments and capture later: The default OMS configuration allows you to authorize cards and capture the order amount either after shipping or based on the established business logic. -- Default OMS Configuration: We provide a default OMS configuration which can be used as an example or be modified to align with your business logic. +- Default OMS Configuration: We provide a default OMS configuration which you can use an example or modify to align with your business logic. ## Prerequisites for using the Stripe app @@ -51,7 +51,6 @@ However our team only tested the following payment methods {% info_block infoBox "Bank transfers" %} -Keep in mind following about bank transfers in Stripe: Stripe supports bank transfers in specific regions. You can read more about [Bank transfer payments](https://stripe.com/docs/payments/bank-transfers) here. {% endinfo_block %} @@ -62,5 +61,5 @@ Stripe supports bank transfers in specific regions. You can read more about [Ban The Stripe App has limited or no support for the following features: - Refunds & Payment Cancellation: Handling refunds & payment cancellation via the Spryker OMS. - Payment Authorization & Capture: The current logic works with separate authorization & capture. Hence, all payment methods go through this transition. -- Payment Authorization Timeout: We currently have a one-day timeout for authorizing payments. This means that payment methods such as Bank Transfers, which are not authorized within this timeframe, will experience a timeout. We recommend extending the timeout from one day to seven days. +- Payment Authorization Timeout: There is currently a one-day timeout for authorizing payments. This means that payment methods such as bank transfers, which are not authorized within this timeframe, will experience a timeout. We recommend extending the timeout from one day to seven days. - Multi-Capture: Partial capture of payment for orders items. \ No newline at end of file From 34986268777228ffbd572430edf95e5724dfc052 Mon Sep 17 00:00:00 2001 From: Helen Kravchenko Date: Tue, 6 Feb 2024 10:37:31 +0100 Subject: [PATCH 4/4] fixing the link --- _data/sidebars/pbc_all_sidebar.yml | 2 +- .../install-the-merchant-portal-agent-assist-feature.md | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/_data/sidebars/pbc_all_sidebar.yml b/_data/sidebars/pbc_all_sidebar.yml index 05407935134..871d3b5247b 100644 --- a/_data/sidebars/pbc_all_sidebar.yml +++ b/_data/sidebars/pbc_all_sidebar.yml @@ -2408,7 +2408,7 @@ entries: url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/stripe.html nested: - title: SCCOS prerequisites for Stripe - url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/sccos-prerequisites-for-the-stripe-app.md + url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/sccos-prerequisites-for-the-stripe-app.html - title: Manage Stripe configurations in the ACP catalog url: /docs/pbc/all/payment-service-provider/base-shop/third-party-integrations/stripe/manage-stripe-configurations-in-the-acp-catalog.html - title: Project Guidelines for Stripe diff --git a/_includes/pbc/all/install-features/202403.0/marketplace/install-the-merchant-portal-agent-assist-feature.md b/_includes/pbc/all/install-features/202403.0/marketplace/install-the-merchant-portal-agent-assist-feature.md index 9d2f8cdf05b..69673a2001c 100644 --- a/_includes/pbc/all/install-features/202403.0/marketplace/install-the-merchant-portal-agent-assist-feature.md +++ b/_includes/pbc/all/install-features/202403.0/marketplace/install-the-merchant-portal-agent-assist-feature.md @@ -66,7 +66,8 @@ $config[AgentSecurityBlockerMerchantPortalConstants::AGENT_MERCHANT_PORTAL_BLOCK ```
- src/Pyz/Zed/Acl/AclConfig.php +src/Pyz/Zed/Acl/AclConfig.php + ```php