Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Stripe embedded account notifications component on the Overview page #10314

Open
wants to merge 21 commits into
base: develop
Choose a base branch
from

Conversation

oaratovskyi
Copy link
Contributor

@oaratovskyi oaratovskyi commented Feb 6, 2025

Fixes #9128

Changes proposed in this Pull Request

This pull request introduces an enhancement to the WooCommerce Payments plugin by integrating Stripe's notification banner component directly into the Payments > Overview page. This integration ensures that merchants receive timely Know Your Customer (KYC) notifications within WooPayments, eliminating the need to navigate to the Stripe Express dashboard. By providing these notifications in-plugin, merchants can promptly address account verification requirements, thereby reducing potential delays in account activation and improving the overall user experience.

When we fail to load the embedded component, we'll show the old po and update business details task.

Known issues / questions:

  • the overview page isn't reloaded after providing the details to the embedded component. It's technically not possible, double-checking with Stripe here p1738924535662759-slack-C03KTTK2YMA
  • the component loading is without indication, similar to https://furever.dev.
    A little bit below there's a video section where you can look at it in action.
Images
State Before After
Finish verifications image image
PO setup payouts image image
Video
KnpYfS.mov

Testing instructions

  • Check out to add/9128-account-notifs-component-on-overview-page on client
  • Make sure you're listening to the webhooks on the server
  • Reset the current account if you have one
  • Navigate to Payments > Connect and kick off new onboarding process
  • Pick More than 100M annual revenue in the MOX and other params as you prefer
  • On the embedded step, write address_line1_no_match in Address line 1 and 1111 as last 4 digits of the SSN (to trigger certain verification conditions). You must pass in legitimate values for the city, state, and postal_code arguments. Leave phone number empty.

image

  • On the next screen, type 111111111 in the SSN to trigger identity mismatch.

image

  • For bank account, type 110000000 and 000999999992 to trigger another verification.

image

  • Notice that the details are incomplete. Click agree and submit

image

  • You'll get redirected to the overview page. You will see the embedded notifications component which may look different within few minutes but eventually it'll look like this. The component loading takes few seconds, but that's how it works on https://furever.dev. Theoretically we could use some loader, but I guess it's OK like this.

image

  • Click Update and update the details using the component, Click continue.

image
image

  • Verify your bank account. You'll need to set up proper account for payouts. See images below.

image
image
OZ8XL3.png
image
image

  • Now you should be good! Click confirm

image

  • The component will disappear, but unfortunately it does not reload the page.

image

  • Reload it manually. All should be green now.

image

Testing progressive onboarding

  • Reset the account created during steps above.
  • Onboard new progressive account using the params below. Note that in JN site it can't be possible if all slots are booked.
image
  • Fill in the needed values. Click continue. Then Agree and Submit on the next screen.

image

  • Click "Start selling"

image

  • You should see embedded component loaded.

image

  • Click Update on the embedded component. Add the data there. Click continue. Then enter test bank account credentials. Click confirm.

image

  • The notice shouldn't be there anymore. Reload the page. Should be all green now.
image
  • Run npm run changelog to add a changelog file, choose patch to leave it empty if the change is not significant. You can add multiple changelog files in one PR by running this command a few times.
  • Covered with tests (or have a good reason not to test in description ☝️)
  • Tested on mobile (or does not apply)

Post merge

@botwoo
Copy link
Collaborator

botwoo commented Feb 6, 2025

Test the build

Option 1. Jetpack Beta

  • Install and activate Jetpack Beta.
  • Use this build by searching for PR number 10314 or branch name add/9128-account-notifs-component-on-overview-page in your-test.site/wp-admin/admin.php?page=jetpack-beta&plugin=woocommerce-payments

Option 2. Jurassic Ninja - available for logged-in A12s

🚀 Launch a JN site with this branch 🚀

ℹ️ Install this Tampermonkey script to get more options.


Build info:

  • Latest commit: 3b5497c
  • Build time: 2025-02-10 12:49:58 UTC

Note: the build is updated when a new commit is pushed to this PR.

Copy link
Contributor

github-actions bot commented Feb 6, 2025

Size Change: +716 B (0%)

Total Size: 1.28 MB

Filename Size Change
release/woocommerce-payments/dist/index-rtl.css 35.6 kB +43 B (0%)
release/woocommerce-payments/dist/index.css 35.6 kB +42 B (0%)
release/woocommerce-payments/dist/index.js 233 kB +631 B (0%)
ℹ️ View Unchanged
Filename Size
release/woocommerce-payments/assets/css/admin.css 1.37 kB
release/woocommerce-payments/assets/css/admin.rtl.css 1.37 kB
release/woocommerce-payments/assets/css/success.css 189 B
release/woocommerce-payments/assets/css/success.rtl.css 190 B
release/woocommerce-payments/dist/blocks-checkout-rtl.css 2.66 kB
release/woocommerce-payments/dist/blocks-checkout.css 2.66 kB
release/woocommerce-payments/dist/blocks-checkout.js 55.3 kB
release/woocommerce-payments/dist/cart-block.js 17.2 kB
release/woocommerce-payments/dist/cart.js 5.73 kB
release/woocommerce-payments/dist/checkout-rtl.css 1.27 kB
release/woocommerce-payments/dist/checkout.css 1.27 kB
release/woocommerce-payments/dist/checkout.js 34.5 kB
release/woocommerce-payments/dist/express-checkout-rtl.css 236 B
release/woocommerce-payments/dist/express-checkout.css 236 B
release/woocommerce-payments/dist/express-checkout.js 15.7 kB
release/woocommerce-payments/dist/frontend-tracks.js 854 B
release/woocommerce-payments/dist/multi-currency-analytics.js 1.08 kB
release/woocommerce-payments/dist/multi-currency-rtl.css 4.29 kB
release/woocommerce-payments/dist/multi-currency-switcher-block.js 61.1 kB
release/woocommerce-payments/dist/multi-currency.css 4.29 kB
release/woocommerce-payments/dist/multi-currency.js 58.1 kB
release/woocommerce-payments/dist/order-rtl.css 740 B
release/woocommerce-payments/dist/order.css 740 B
release/woocommerce-payments/dist/order.js 42.5 kB
release/woocommerce-payments/dist/payment-gateways-rtl.css 1.34 kB
release/woocommerce-payments/dist/payment-gateways.css 1.34 kB
release/woocommerce-payments/dist/payment-gateways.js 39.1 kB
release/woocommerce-payments/dist/plugins-page-rtl.css 386 B
release/woocommerce-payments/dist/plugins-page.css 386 B
release/woocommerce-payments/dist/plugins-page.js 20.1 kB
release/woocommerce-payments/dist/product-details-rtl.css 433 B
release/woocommerce-payments/dist/product-details.css 436 B
release/woocommerce-payments/dist/product-details.js 12.5 kB
release/woocommerce-payments/dist/settings-rtl.css 11.5 kB
release/woocommerce-payments/dist/settings.css 11.4 kB
release/woocommerce-payments/dist/settings.js 223 kB
release/woocommerce-payments/dist/subscription-edit-page.js 703 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal-rtl.css 524 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.css 524 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.js 20.2 kB
release/woocommerce-payments/dist/subscription-product-onboarding-toast.js 730 B
release/woocommerce-payments/dist/subscriptions-empty-state-rtl.css 120 B
release/woocommerce-payments/dist/subscriptions-empty-state.css 120 B
release/woocommerce-payments/dist/subscriptions-empty-state.js 19.3 kB
release/woocommerce-payments/dist/tokenized-express-checkout-rtl.css 236 B
release/woocommerce-payments/dist/tokenized-express-checkout.css 236 B
release/woocommerce-payments/dist/tokenized-express-checkout.js 16.6 kB
release/woocommerce-payments/dist/tos-rtl.css 235 B
release/woocommerce-payments/dist/tos.css 235 B
release/woocommerce-payments/dist/tos.js 21.8 kB
release/woocommerce-payments/dist/woopay-direct-checkout.js 6.13 kB
release/woocommerce-payments/dist/woopay-express-button.js 23.3 kB
release/woocommerce-payments/dist/woopay-rtl.css 4.31 kB
release/woocommerce-payments/dist/woopay.css 4.28 kB
release/woocommerce-payments/dist/woopay.js 71 kB
release/woocommerce-payments/includes/subscriptions/assets/css/plugin-page.css 625 B
release/woocommerce-payments/includes/subscriptions/assets/js/plugin-page.js 814 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/i18n-loader.js 2.46 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/jetpack-script-data.js 772 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/i18n-loader.js 1.02 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/script-data.js 69 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/babel.config.js 163 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.css 2.47 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.js 14.2 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.rtl.css 2.47 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-connection.css 10 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-connection.js 28.4 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-connection.rtl.css 10 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.css 198 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.js 280 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.rtl.css 198 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.css 625 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.js 333 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.rtl.css 626 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-users.js 424 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-ajax.js 521 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-callables.js 585 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-admin-create-user.css 215 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-admin-create-user.js 521 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.css 721 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.js 412 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-users.js 632 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/about.css 1.04 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-empty-state.css 294 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-order-statuses.css 408 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin.css 3.59 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/checkout.css 301 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/modal.css 746 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/view-subscription.css 574 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/wcs-upgrade.css 414 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin-pointers.js 543 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin.js 9.4 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.js 6.78 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.min.js 3.84 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-coupon.js 545 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-subscription.js 2.52 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.js 22.2 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.min.js 11.7 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/payment-method-restrictions.js 1.29 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/wcs-meta-boxes-order.js 507 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/payment-methods.js 358 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/single-product.js 428 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/view-subscription.js 1.38 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/wcs-cart.js 782 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/modal.js 1.09 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/wcs-upgrade.js 1.26 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.css 391 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.js 3.04 kB

compressed-size-action

@oaratovskyi oaratovskyi linked an issue Feb 6, 2025 that may be closed by this pull request
@oaratovskyi oaratovskyi changed the title Add changelog Add Stripe embedded account notifications component on the Overview page Feb 6, 2025
@oaratovskyi oaratovskyi marked this pull request as ready for review February 7, 2025 10:27
@oaratovskyi oaratovskyi self-assigned this Feb 7, 2025
Base automatically changed from update/10256-extract-account-settings-logic to develop February 10, 2025 12:41
Copy link
Contributor

@mordeth mordeth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for wrangling the banner component, Oleks!

✅ The changes are looking great! Added a non-blocking minor nitpick suggestion.
✅ Testing instructions are checking out correctly!

🚀

.stripe-notifications-banner-wrapper {
padding-bottom: 0.25rem; // Stripe does it in their furever.dev site too so the border is visible.
overflow: hidden; // Stripe does it in their furever.dev site too so the border is visible.
margin-bottom: 24px;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor suggestion.

Suggested change
margin-bottom: 24px;
margin-bottom: $gap-large;

@rogermattic
Copy link

@oaratovskyi I was just looking at this. First of all – great work, it's looking great:)

I was just wondering if we have any control over where the badges are rendered. I noticed that this is the only instance (?). where the page prefixes the text label:
Screenshot 2025-02-12 at 14 35 41

Could we possibly move it so it follows the label? Do you think we should @orcungogus ?

@orcungogus
Copy link

I completely agree but I don’t think we have control over that @rogermattic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add account notifications on the Overview page
5 participants