Testing instructions for critical flows - Automattic/woocommerce-payments GitHub Wiki

See also Critical flows.

Reference

Shopper

Merchant

WC Subscriptions integration: Shopper

WC Subscriptions integration: Merchant

Multi-currency: Merchant

Multi-currency: Shopper

Multi site flows

Set up multisite and install plugins

  1. Add a new site to your multisite network following this guide: PbPjnJ-1x-p2.
    1. Please request a multi site to be created for you if you don't have access to specialops on JN.
  2. Install the required plugins like WooCommerce and WooCommerce Payments at a network level.
    1. Go to the network dashboard by selecting My Sites -> Network Admin -> Dashboard. Markup 2022-01-31 at 15 00 50
    2. From here, select the Plugins sub menu and upload the plugin zip to install a plugin at a network level. Markup 2022-01-31 at 15 04 38
    3. In the plugin listing page, you'll be able to see Network at the bottom of the plugin. Markup 2022-01-31 at 15 13 45

Manual plugin installation

Plugin update (via plugins page)

  • Create a new site and finish setup wizard using United States address as a store address without selecting WooCommerce Payments on Business Details step (You can also use an existing site if available).
  • Install the latest stable version of WooCommerce Payments via WP-ADMIN -> Plugins page.
  • Complete WooCommerce Payments KYC flow.
  • Go to WP-ADMIN -> Plugins & click on Upload Plugin to upload the testing package.
  • Click on Replace current with uploaded to update the installed version with the new one (screenshot).
  • Confirm that the the plugin update is successful without any errors.
  • Go to WooCommerce Payments pages and confirm that they are loading as expected.

Checkout with a normal credit card

Test checkout versions

Merchant store setup

  • Ensure that "Credit card / Debit card" is the only checked payment method in "WooCommerce > Payments > WooPayments > Payments accepted on checkout"
  • The tests below test both "shortcode checkout" and "blocks checkout". Set up two separate pages to test with on your store. Add the checkout block from WooCommerce Blocks plugin.
    1. As a merchant, navigate to Pages > Add new.
    2. Add the Checkout block to the page.
    3. Make sure the Checkout block is rendered without any errors.
    4. Save the page.
    5. Go to the store page and add a product to your cart.
    6. Go to the newly created Checkout page.
    7. Make sure the newly created Checkout page is loaded without any errors.

Individual checkout version test scenarios

The individual scenarios below are each referenced in the "Shopper" tests section above, as well as the smoke tests.

Add credit card using other payment gateways

Expected outcome: Customers should be able to add credit cards to their account using other payment gateways without errors poping out (in Stripe's context)

Testing Instructions

  • Have WooPayments installed and configured
  • Have some other Credit Card Payment method installed and configured (e.g.: WC Stripe)
  • Log in as a customer
  • Go to My account > Payment Methods
  • Click on Add Payment Method
  • Fill the other gateway Credit Card details
  • Try to submit
  • The error "Your card number is incomplete" should not show up

Regular Checkout

  • Add regular product to cart and go to checkout as a guest.
  • Confirm that card fields are displayed.
  • Fill the form with missing credit card fields, submit form, confirm errors are displayed.
  • Fill the form with card number 4242424242424242, future expiration date, and any CVC code, submit the form.
  • Confirm order complete page is shown.
  • As a merchant, under WooCommerce > Orders, confirm that the latest order was created successfully.
  • Under transactions, confirm that the transaction details are recorded successfully.

Checkout with SCA card

Follow the steps for regular checkout (above) but use one of the SCA cards: https://stripe.com/docs/testing#regulatory-cards. When placing the order an additional modal should be displayed to confirm card authorisation.

Checkout failures (with various cards)

Note: When testing card failures, make sure you keep the errors under 10 failures in a lapse of 5 minutes. Passing this threshold results in the Card Testing Prevention flag being enabled for your account, which will prevent you from using test cards when testing other flows. This flag can be lifted, but it's simpler to avoid it.

Follow the steps for checkout with a normal card but using the following test cards:

Card number Expected error message
4000000000000002 Error: Your card was declined.
4000000000009995 Error: Your card has insufficient funds.
4000000000009987 Error: Your card was declined.
4000000000000069 Error: Your card has expired.
4000000000000127 Error: Your card's security code is incorrect.
4000000000000119 Error: An error occurred while processing your card. Try again in a little bit.
4242424242424241 Your card number is invalid.

Checkout & save payment method

  • As a merchant, go to the Payments > Settings page, and make sure the "Enable payments via saved cards" setting is enabled.
  • Add regular product to cart and go to checkout as a logged in user.
  • Confirm that card fields are displayed.
  • Fill the form with card number 4242424242424242, future expiration date, and any CVC code.
  • Check the "save payment method" option and checkout.
  • Confirm order complete page is shown.
  • As a merchant, under WooCommerce > Orders, confirm that the latest order was created successfully.
  • Under transactions, confirm that the transaction details are recorded successfully.
  • Back as a customer, add another item to cart and go to checkout to confirm that the saved payment method is displayed.
  • Confirm you can successfully checkout with that saved payment method.

Repeat the instructions, but use a 3DS test card instead (please ensure to use the 3DS card for the saved payment method as well): 4000002500003155.

Pay for Order

  • Add a product and go to the checkout page
  • Pay with a declined card 4000000000000002 - the error should occur which is expected
  • Navigate to My account -> Orders and click Pay button in Actions column for the latest order
  • Select 'Use a new payment method', fill the form but do not fill some of the inputs.
  • Click on 'Pay for Order', check that you see the errors displayed.
  • Fill out the form, check the box 'Save payment information to my account for future purchases.', click on 'Pay for Order', verify the order is placed.
  • Check that the payment method has been saved, for example from My Account > Payment Methods.
  • Set the order again to "Pending Payment" and test with a card that requires confirmation (4000002500003155).
  • Test without saving the payment method.
  • Repeat steps 1-6 but this time, pay with any non-card payment method (e.g. giropay, P24, EPS)

Toggle terms when saving payment methods

  • As a customer, add a subscription product to the cart and proceed the checkout page.
  • Ensure that the legal mandate is present underneath the payment fields inside on the card page.
  • Ensure the "save payment information to my account for future purchases" checkbox is not shown.
  • Remove any subscription products from the cart and add a regular product.
  • Proceed to the checkout and note that when the save payment checkbox is checked, the legal mandate appears.
  • Confirm that this mandate disappears if the checkbox is unchecked.

Subscription checkout & renewal

  • Install and enable the Subscriptions plugin.
  • Create a subscription product.
  • Change store currency to Euros
  • Add Giropay payment method from WooCommerce > Settings > Payments > Payment Methods
  • Add the subscription product to the cart and continue with checkout.
  • Change the currency to "EUR"
  • Ensure that only "Credit card / debit card" payment method is displayed at checkout
  • Checkout and confirm the subscription was successfully processed in the admin area.
  • Confirm that the subscription was processed successfully from the customer's My Account > Subscriptions area.
  • Check ability to renew now on subscription.
  • Change renewal date to be sooner if desired (min of 1 hour ahead, see instructions here) and confirm subscription automatically renews.

Subscription checkout with Link & payment method change

  • Install and enable the Subscriptions plugin.
  • Create a subscription product.
  • Enable "Stripe Link" as a payment method
  • Add the subscription product to the cart and continue with checkout.
  • Purchase a subscription (using a different customer account as the test before) with Stripe Link.
  • Go to My account -> Subscriptions and find the subscription you just purchased. Click View
  • On the opened details page, click Change payment
  • Use a new card payment method and fill the form in with card number 4242424242424242, future expiration date, and any CVC code.
  • Click Change payment method and confirm that you are successfully redirected back to the subscription's details page
  • Confirm that on the details page, in the Payment row, you see the details of the card you just added
  • Check ability to renew now on subscription.
  • Change renewal date to be sooner if desired (min of 1 hour ahead) and confirm subscription automatically renews.

Giropay Checkout

  • Change store currency to Euros
  • Change store billing country to Germany
  • Add Giropay payment method from WooCommerce > Settings > Payments > Payment Methods
  • Add a regular product to cart
  • Go to checkout, confirm UPE fields are displayed with option to select Giropay.
  • Select Giropay and checkout
  • Approve the transaction from the Stripe test page
  • Confirm order complete page is shown.
  • As a merchant, under WooCommerce > Orders, confirm that the latest order was created successfully.
  • Under transactions, confirm that the transaction details are recorded successfully.

Bancontact checkout

  • Change store billing country to Belgium
  • If EUR is your default currency, navigate to WooCommerce > Settings > General and change the currency to USD.
  • If EUR is an enabled currency in your store, navigate to WooCommerce > Settings > Multi-Currency and remove EUR as a currency.
  • Navigate to Payments > Settings.
  • Click Add payment method, verify Bancontact is in the modal, along with its icon.
  • Select Bancontact, a notice should appear stating that Euros are being added to your store. Click Add selected, then scroll to the bottom and click Save changes.
  • Verify Bancontact and its logo are now in the Payment methods area.
  • Navigate to WooCommerce > Settings > Multi-Currency and verify EUR is now an enabled currency in your store.
  • On the frontend, add an item to your cart, and go to checkout.
  • Verify your currency is not EUR, payment method should show as Credit card / debit card and when selecting Use a new payment method, Bancontact should not appear.
  • Switch your currency to EUR, payment method should show as Popular payment methods and when selecting Use a new payment method, Bancontact should appear.
  • Select Bancontact.
  • Complete checkout/place order.
  • You will be taken to a Stripe test confirmation page, choose Authorize test payment.
  • Once order is received, navigate to WooCommerce > Orders in the admin.
  • Find your order and select it.
  • Click Refund, and then increase a line item in your order to 1.
  • Click Refund via WooCommerce Payments, verify your refund completed.
  • Navigate to Payments > Transactions, you should see your Payment and Payment refund listed for your order, verify both have the Bancontact logo.
  • Click on the Payment, then verify the Payment method both at the top and bottom are correctly formatting (they will have default test info).
  • Do the same for the Payment refund.
  • Navigate to Payments > Settings, then click the trash can icon to delete Bancontact. Verify the name and the logo in the modal are correct, then click Remove, scroll to the bottom and Save changes.
  • Verify Bancontact is no longer in the list of Payment methods.

P24 checkout

  • Change store billing country to Poland
  • If Polish zloty is an enabled currency in your store, navigate to WooCommerce > Settings > Multi-Currency and remove PLN as a currency.
  • Navigate to Payments > Settings.
  • Click Add payment method, verify P24 is in the modal, along with its icon.
  • Select P24, a notice should appear stating that PLN are being added to your store. Click Add selected, then scroll to the bottom and click Save changes.
  • Verify PLN and its logo are now in the Payment methods area.
  • Navigate to WooCommerce > Settings > Multi-Currency and verify PLN is now an enabled currency in your store.
  • On the frontend, add an item to your cart, and go to checkout.
  • Verify your currency is not EUR or PLN, payment method should show as Credit card / debit card and when selecting Use a new payment method, P24 should not appear.
  • Switch your currency to EUR, payment method should show as Popular payment methods and when selecting Use a new payment method, P24 should appear.
  • Switch your currency to PLN, payment method should show as Popular payment methods and when selecting Use a new payment method, P24 should appear.
  • Select P24.
  • Complete checkout/place order.
  • You will be taken to a Stripe test confirmation page, choose Authorize test payment.
  • Once order is received, navigate to WooCommerce > Orders in the admin.
  • Find your order and select it.
  • Click Refund, and then increase a line item in your order to 1.
  • Click Refund via WooCommerce Payments, verify your refund completed.
  • Navigate to Payments > Transactions, you should see your Payment and Payment refund listed for your order, verify both have the P24 logo.
  • Click on the Payment, then verify the Payment method both at the top and bottom are correctly formatting (they will have default test info).
  • Do the same for the Payment refund.
  • Navigate to Payments > Settings, then click the trash can icon to delete P24. Verify the name and the logo in the modal are correct, then click Remove, scroll to the bottom and Save changes.
  • Verify P24 is no longer in the list of Payment methods.

iDeal checkout

  • Change store billing country to the Netherlands
  • If EUR is an enabled currency in your store, navigate to WooCommerce > Settings > Multi-Currency and remove EUR as a currency.
  • Navigate to Payments > Settings.
  • Click Add payment method, verify iDEAL is in the modal, along with its icon.
  • Select iDEAL, a notice should appear stating that EUR are being added to your store. Click Add selected, then scroll to the bottom and click Save changes.
  • Verify iDEAL and its logo are now in the Payment methods area.
  • Navigate to WooCommerce > Settings > Multi-Currency and verify EUR is now an enabled currency in your store.
  • On the frontend, add an item to your cart, and go to checkout.
  • Verify your currency is not EUR, payment method should show as Credit card / debit card and when selecting Use a new payment method, iDEAL should not appear.
  • Switch your currency to EUR, payment method should show as Popular payment methods and when selecting Use a new payment method, iDEAL should appear.
  • Select iDEAL.
  • Complete checkout/place order.
  • You will be taken to a Stripe test confirmation page, choose Authorize test payment.
  • Once order is received, navigate to WooCommerce > Orders in the admin.
  • Find your order and select it.
  • Click Refund, and then increase a line item in your order to 1.
  • Click Refund via WooCommerce Payments, verify your refund completed.
  • Navigate to Payments > Transactions, you should see your Payment and Payment refund listed for your order, verify both have the iDEAL logo.
  • Click on the Payment, then verify the Payment method both at the top and bottom are correctly formatting (they will have default test info).
  • Do the same for the Payment refund.
  • Navigate to Payments > Settings, then de-select the checkbox to delete iDEAL. Verify the name and the logo in the modal are correct, then click Remove, scroll to the bottom and Save changes.
  • Verify iDEAL is no longer in the list of Payment methods.

Klarna checkout

As a merchant, ensure "Klarna" is enabled in the WooPayments settings, at Payments > Settings in the "Payment methods" section. If you onboarded on Stripe with a US-based account, you can follow the instructions below. If the account you onboarded with is not US-based, you'll need to change billing country/currency accordingly.

  • On the frontend, add an item to your cart, and go to checkout.
    • Ensure that the presentment currency is "USD" via the currency widget (in case of multi-currency sites) or via WooCommerce > Settings > General, "Currency" section (in case of single currency site)
  • Enter a US-based billing address
  • Verify "Klarna" and its logo are now in the Payment methods area
  • Select "Klarna" from the list of available payment methods
  • Click "Place order"
  • You'll be redirected to the Klarna testing page
  • Select "Pay now in full with card"
  • Pay with Klarna. You'll be redirected back to the merchant's site.
  • As a merchant, navigate to WooCommerce > Orders.
  • Find your order and select it.
  • On the order page, ensure the order details states "Payment via Klarna" under the order number.
  • On the order page, click the "Refund" button.
  • Increase the item quantity to 1 for the item to be refunded
  • Click the "Refund {amount} via WooPayments (Klarna)", verify the refund completed.
  • Navigate to Payments > Transactions, you should see your payment and payment refund listed for the order. Verify both have the Klarna logo.
  • Navigate to Payments > Settings, then de-select the checkbox to delete Klarna. Verify the name and the logo in the modal are correct, then click Remove, scroll to the bottom and Save changes.
  • Verify Klarna is no longer in the list of Payment methods at checkout.

Affirm checkout

As a merchant, ensure "Affirm" is enabled in the WooPayments settings, at Payments > Settings in the "Payment methods" section. If you onboarded on Stripe with a US-based account, you can follow the instructions below. If the account you onboarded with is not US-based, you'll need to change billing country/currency accordingly.

  • On the frontend, add at least $50 worth of items to your cart, and go to checkout.
    • Ensure that the presentment currency is "USD" via the currency widget (in case of multi-currency sites) or via WooCommerce > Settings > General, "Currency" section (in case of single currency site)
  • Enter a US-based billing address
  • Verify "Affirm" and its logo are now in the Payment methods area
  • Select "Affirm" from the list of available payment methods
  • Click "Place order"
  • You'll be redirected to the Affirm testing page
  • Click "Authorize test payment". You'll be redirected back to the merchant's site.
  • As a merchant, navigate to WooCommerce > Orders.
  • Find your order and select it.
  • On the order page, ensure the order details states "Payment via Affirm" under the order number.
  • On the order page, click the "Refund" button.
  • Increase the item quantity to 1 for the item to be refunded
  • Click the "Refund {amount} via WooPayments (Affirm)", verify the refund completed.
  • Navigate to Payments > Transactions, you should see your payment and payment refund listed for the order. Verify both have the Affirm logo.
  • Navigate to Payments > Settings, then de-select the checkbox to delete Affirm. Verify the name and the logo in the modal are correct, then click Remove, scroll to the bottom and Save changes.
  • Verify Affirm is no longer in the list of Payment methods at checkout.

Afterpay checkout

As a merchant, ensure "Afterpay" is enabled in the WooPayments settings, at Payments > Settings in the "Payment methods" section. If you onboarded on Stripe with a US-based account, you can follow the instructions below. If the account you onboarded with is not US-based, you'll need to change billing country/currency accordingly.

  • On the frontend, add an item to your cart, and go to checkout.
    • Ensure that the presentment currency is "USD" via the currency widget (in case of multi-currency sites) or via WooCommerce > Settings > General, "Currency" section (in case of single currency site)
  • Enter a US-based billing address
  • Verify "Afterpay" and its logo are now in the Payment methods area
  • Select "Afterpay" from the list of available payment methods
  • Click "Place order"
  • You'll be redirected to the Afterpay testing page
  • Click "Authorize test payment". You'll be redirected back to the merchant's site.
  • As a merchant, navigate to WooCommerce > Orders.
  • Find your order and select it.
  • On the order page, ensure the order details states "Payment via Afterpay" under the order number.
  • On the order page, click the "Refund" button.
  • Increase the item quantity to 1 for the item to be refunded
  • Click the "Refund {amount} via WooPayments (Afterpay)", verify the refund completed.
  • Navigate to Payments > Transactions, you should see your payment and payment refund listed for the order. Verify both have the Afterpay logo.
  • Navigate to Payments > Settings, then click the trash can icon to delete Afterpay. Verify the name and the logo in the modal are correct, then click Remove, scroll to the bottom and Save changes.
  • Verify Afterpay is no longer in the list of Payment methods at checkout.

WooPay checkout

Requirements

  • Merchant account must be US-based
  • WooPay must be enabled at checkout (Via WooCommerce > WooPayments Settings > Express checkouts) 2023-08-18 14 10 31
  • WooPay must be enabled on the product page (Via WooCommerce > WooPayments Settings > Express checkouts > WooPay > "Customize") Screenshot 2023-08-18 at 2 13 48 PM

WooPay testing instructions

  • As a customer, navigate to a product page for a product (any kind of product should work: simple, variable, virtual, subscription)
  • Click "Buy with WooPay" next to the "Add to cart" CTA
  • Customer should be redirected to the WooPay checkout page and presented with a login form. Note: If you click the button very quickly after page load you will get the OTP modal to complete the email and OTP steps and then get redirected.
  • Enter a new email address into the "sign up" email field, click "Continue" Screenshot 2023-10-05 at 9 13 50 PM
  • Enter a valid phone number, click "verify your account"
  • Enter the OTP code you received on the phone number previously entered
  • The full checkout form should now load
  • Fill in the details for the shipping address, card details
  • Click "Place order"
  • You should be redirected to the "Order success" page on the merchant's site Screenshot 2023-08-18 at 2 26 46 PM
  • Add a new product to the cart
  • Go to the checkout page
  • Enter the email address you previously entered on the "Email" field on checkout
  • You should be prompted to log into WooPay (or be redirected directly to checkout, based on your browser's settings)
  • Once landed on WooPay you should have the payment method/shipping address you used previously
  • Click "Place order"
  • You should be redirected to the "Order success" page on the merchant's site

Manage payment method with regular card

  • As a Shopper navigate to My account -> Payment methods and click Add payment method button.
  • Fill the form in with card number 4242424242424242, future expiration date, and any CVC code.
  • Click Add payment method button.
  • Observe Payment method successfully added. success message.
  • Observe the payment method listed on the payment methods page:
  • Use the newly saved payment method to purchase a simple product

Delete payment method

  • After a payment method being added in 'Add new payment method', note the 'Delete' button located on the right side of the payment method entry.
  • Click the 'Delete' button.
  • Observe 'Payment method deleted.' success message.
  • Observe the payment method is not listed anymore:

Manage payment method with 3DSv2 card

  • As a Shopper navigate to My account -> Payment methods and click Add payment method button.
  • Fill the form in with card number 4000000000003220, future expiration date, and any CVC code
  • Click Add payment method button
  • Observe the 3DS authentication pop-up modal appears correctly
  • Fail the authentication and confirm that the user sees the error notice We are unable to authenticate your payment method. Please choose a different payment method and try again.
  • Click Add payment method button once more and confirm that the authentication pop-up modal appears as expected
  • Complete the authentication
  • Observe Payment method successfully added. success message.
  • Observe the payment method listed on the payment methods page.
  • Use the newly saved payment method to purchase a simple product

Manage payment method with declined 3DSv2 card

  • Click Add payment method button on the payment methods page
  • Fill the form in with card number 4000000000000002 , future expiration date, and any CVC code
  • Confirm the error notice Error: Your card was declined. is displayed.

Checkout with Payment Request

Payment Request without the live account can only be tested with Chrome browser and its Payment Request Button feature.

  1. Enable Payment Request under Payment > Settings page and save settings. Payment Request settings
  2. Ensure that the store is accessible via public HTTPS URL (e.g. with Jurassic Ninja).
  3. Add a real valid credit card to Chrome Payment settings. Test card used to work but no longer. See https://github.com/Automattic/woocommerce-payments/issues/4092.

Note: "Payment Request" option ( Apple Pay, Google Pay, etc. ) will be disabled for subscriptions with free trial if the product isn't virtual or downloadable. This is a limitation of checkout flow and not an issue.

Test add a new payment method to an existing subscription

Expected outcome: I am able to successfully change a subscription's payment method via My Account.

Testing instructions

Make sure that Manual Renewal Payments is disabled

  • As a Merchant, ensure the WooCommerce Subscriptions plugin is installed.
  • As a Shopper, purchase any subscription product.
  • Navigate to My account → Subscriptions and open the newly created subscription entry.
  • Observe 3 buttons for “Actions”. Click “Change payment” button.
  • In the second block, select “Use a new payment method” option.
  • Provide 5555555555554444 as the test card number, future expiration date, and a CVC code.
  • Click the “Change payment method” button.
  • Ensure the payment method is updated successfully.

Shipping cost changes when switching shipping methods

Testing instructions

First of all you'll need at least two shipping methods for at least one shipping zone.

  • Go to WooCommerce > Settings > Shipping.
  • Click "Locations not covered by your other zones".
  • Click "Add shipping method" -> Select "Flat rate" in dropdown then click "Add shipping method".
  • Click "Add shipping method" -> Select "Free shipping" in dropdown then click "Add shipping method".
  • Mouse over "Flat rate" then click "Edit". set "Cost" to 20. Click "Save changes".
  • Create a simple product. Set price to 20.
  • Go to the product's page.
  • Click "Buy now" button
  • "Shipping" should cost $0 so far. Total should be $20.
  • Enter/chose a shipping address.
  • Notice "Shipping" costs $20 now. Total should be $40.
  • In Shipping Method, chose "Free shipping"
  • Shipping now should costs $0. Total should be $20.

Stripe Link

Expected outcome

Ability to save payment information to Stripe Link and use it for the checkout.

Testing instructions

  • Navigate to Payments > Settings
  • Check the Link by Stripe checkbox in the Express checkouts section
  • If the previous step is not possible and there's a message on the checkbox stating To enable Link by Stripe, you must first disable WooPay, then uncheck the WooPay payment method and try to check Link by Stripe again
  • Save changes
  • Set store currency to USD (Merchant site -> My account -> Account details -> Default currency)
  • Add any product to the cart and proceed to the checkout
  • Before continuing with the next steps, ensure that the email input field on the checkout page is not filled out with the email that exists on the Stripe Link. Refresh the page if any changes were made to accomplish this
  • On the checkout page, confirm that the Stripe Link button is visible in the email input field
  • In case page loading ended up with the email input field being filled out with an email address, click the Stripe Link button and confirm, that the Save your information to pay faster with Link is shown as part of the Stripe Payment Element.
  • In case page loading ended up with the email input field being empty, type any email that doesn't exist in the Stripe Link system and confirm that the checkbox from the screenshot above is successfully displayed as part of the Stripe Payment Element.

  • After providing all the informations, click Place order and confirm that the checkout finished successfully.

  • Add a new product to the cart and go to the checkout page

  • Type in the email address that was previously saved to the Stripe Link account

  • Confirm that the Stripe autofill authentication modal appeared

  • Enter 000000 and confirm, that the autofill modal now lists the address that was saved in the previous testing steps

  • Confirm that all the billing fields (First Name, Last Name, Address Line 1, Address Line 2, City, State, Postcode and Country) are populated successfully from the saved Stripe Link account

  • Type in a phone number

  • When opening Card gateway, confirm that it's replaced with the Stripe Link element that refers to the card that was saved in the previous steps

  • Click Place order and confirm that the checkout ended up with a success

  • Navigate to WooCommerce -> Orders, find the order you've just made and confirm that it's in the Processing status

Stripe Link - Checkout with Blocks

Perform all the steps as for the classic checkout described above (except the note below), in the same sequence. Instead of classic checkout, create a Blocks checkout page and use it for the checkout.

Note: For the blocks checkout, the Stripe Link button will appear only after the Payment Element radio button is clicked and the element is opened.

Checkout from Product Page

  1. Go to product page and select product options (quantity and other params if required by product).
  2. Click Pay now button.
  3. Pick saved card from Chrome payment UI.
  4. Order should be completed successfully.

Checkout from the Cart

  1. Add several products to cart and go the cart page.
  2. Adjust cart settings if needed.
  3. Click Pay now button.
  4. Pick saved card from Chrome payment UI.
  5. Order should be completed successfully.

Checkout with 3DS card

  1. Set-up Payment Request as described above.
  2. Add a 3DS test card like 4000002500003155 to Chrome Payment settings. Any cardholder name, valid expiration date and any CVV will work.
  3. Try to pay with that card using the Payment Request button.
  4. Order should be completed successfully.

Open admin area as non-admin

  1. Open an incognito window
  2. As a Merchant go to wp-admin > Users > Add new user
  3. Create a new user with the editor role
  4. Log to wp-admin using the newly created user credentials
  5. Make sure no error shows up
  6. Keep this tab open and execute again steps 3 and 4 while doing the onboarding as an admin on another tab/browser repeat again after onboarding

Onboard via WooCommerce setup wizard

Note: this flow downloads and installs the latest plugin version from WordPress.org.

  1. Create a new site, complete setup wizard using United States address as a store address and selecting WC Payments on Business Details step.

  1. On the Home screen select Setup WooCommerce Payments task to trigger KYC flow.
  2. After KYC flow completion you should be redirected to the setup payment methods task screen.

  1. Go to Payments > Settings page to confirm the account is created and its status displayed.

Onboard via WooCommerce Task List

Note: this flow downloads and installs the latest plugin version from WordPress.org.

  1. Create a new site and finish setup wizard using United States address as a store address without selecting WooCommerce Payments on Business Details step.
  2. On the Home screen select Setup payments task and install WooCommerce Payments from listed payment methods card. After plugin installation KYC flow should start automatically.
  3. After KYC flow completion you should be redirected back to the setup payment methods task screen.
  4. Go to Payments > Settings page to confirm the account is created and its status displayed.

Onboard via Payments Connect

  1. Create a new site and finish setup wizard using United States address as a store address without selecting WooCommerce Payments on Business Details step.
  2. Go to Plugins > Add New on your WordPress site. Click on Upload plugin and upload the current WooPayments testing plugin .zip file. Activate the installed WooPayments plugin.
  3. Ensure that Enable the WCPay dev mode is checked in the WCPay Dev Tools settings.
  4. Click on the Payments menu item to go to the Payments Connect page. Make sure you see a notice that "Sanbdox mode is enabled, only test accounts will be created."
  5. Click on the Verify business details button and you should be redirected to the Onboarding wizard.

The Payments Connect page

  1. You should now see the step asking for business details, such as country, business type and business industry. Some fields might be prefilled. Fill in all the fields and make sure that for the business legal structure field (labeled What type of legal entity is your business?) you choose the Individual select option. Click on Continue.

Onboarding Wizard - business details

  1. You should now see the final step of the wizard asking for an estimated annual Ecommerce revenue and timeline for taking your store live. Choose the Less than 250k option for the select field labeled with What is your estimated annual Ecommerce revenue (USD)?, and Within 1 month for the select field labeled with What is the estimated timeline for taking your store live?. Click on Continue.

Onboarding Wizard - final step

  1. You should see a loading step and then be redirected to the Stripe KYC.
  2. Leave the KYC process immediately by clicking Return to WooPayments.

Onboarding Wizard - Stripe KYC

  1. You will be redirected to the Payments > Overview page. Go to the Account details page section and make sure that Payments are disabled.
  2. Click "Finish setup" button on the top of the Overview page, and you'll be redirected to the Stripe KYC again.

Onboarding Wizard - Finish Setup task

  1. In the Stripe KYC, the country, business type and industry should be already filled with what you provided in the WooPayments wizard.
  2. Click on Continue and you will be taken directly to the last step of the Stripe KYC with an Agree and submit button. You should not be required to provide bank account details or other documents.
  3. Click on the Agree and submit button and you will be redirected to the Payments > Overview page (with the menu 'Payments' active).
  4. You will see a popup window asking you if you want to setup payments and deposits or just enable payments. Click on "Start selling" and the popup window will close.
  1. Go to the Account details page section and make sure that Payments are enabled.

Onboarding account - payments enabled

  1. Click "Start receiving deposits" button, you should be redirected to the Stripe KYC.

Onboarding account - start receiving deposits

  1. Provide all the details on the Stripe KYC, such as birth date, address, test bank account etc and click "Submit".
  2. You should be redirected to the Payments -> Overview page, check that both Payments and Deposits are enabled (it may take a few mins for Stripe webhook to arrive, in that case you need to refresh the page after few mins).

Onboarding account - complete

Onboard via Payments Connect as a builder

  1. Create a new site and finish setup wizard using United States address as a store address without selecting WooCommerce Payments on Business Details step.
  2. Go to Plugins > Add New on your WordPress site. Click on Upload plugin and upload the current WooPayments testing plugin .zip file. Activate the installed WooPayments plugin.
  3. Click on the Payments menu item to go to the Payments Connect page. Make sure you do not see a notice that "Sandbox mode is enabled, only test accounts will be created."
  4. Click on the I'm setting up a store for someone else block and click Enable sandbox mode button.

image

  1. You should be redirected to the Stripe KYC.
  2. Leave the KYC process immediately by clicking Return to WooPayments.
  3. You will be redirected to the Payments > Overview page. Go to the Account details page section and make sure that Payments and Deposits are disabled.
  4. Click "Finish setup" button on the top of the Overview page, and you'll be redirected to the Stripe KYC again.
  5. Fill in all the data in the Stripe KYC and click on Agree and submit button.
  6. You will be redirected to the Payments > Overview page. Go to the Account details page section and make sure that Payments are enabled. It may take a few mins for webhook to arrive, so you may need to refresh the page in a few mins. Right after the redirect status is Pending Verification.
  7. Check that the account has test mode enabled (notice on top of the overview page).
  8. Click "Set up payments" in the notice, it will open a popup, click Continue

Onboarding as builder - go live

  1. Verify you are redirected to the onboarding wizard.

Onboarding as builder - select merchant path

Manual plugin installation and setup

  1. Create a new site and finish setup wizard using United States address as a store address without selecting WooCommerce Payments on Business Details step.
  2. Follow instructions in the docs (https://docs.woocommerce.com/document/payments/#section-2) to manually install and set up WooCommerce Payments.
  3. After completing KYC flow you should be redirected to Account Overview Page (with the menu 'Payments' active).
  4. Make sure there is success note.

Manual capture

  1. Using Merchant account enable Manual capture on Payments > Settings page and save settings.
  2. Follow normal card checkout flow as a Shopper to make a purchase. Take a note of order number created.
  3. Using Merchant account go WooCommerce > Orders page and open the order created above. The order should have status On Hold.
  4. In the order sidebar choose Capture charge in Order actions dropdown and click > button next to it. After page reload the order should change status to Processing and notes should be added to the order about successful charge.

Note: when trying to change order status to "Cancelled" before capturing a payment, a modal should appear to indicate that authorization will be cancelled. If approved, order form will be submitted to process status change.

Full refund

  1. Go to the order page for the order purchased with WC Payments. You might need to create one using steps from normal card checkout flow.
  2. Click Refund button to activate refund UI.
  3. Update Qty and Refund amount fields to make sure all products and fees are refunded.
  4. Click Refund via WooCommerce Payments button to issue refund.
  5. After page reload check order status (Refunded) and notes in the right sidebar. Successful refund notes should be added.
  6. Go to transaction details page by clicking the link at one of the order notes (pi_abcd...).
  7. Check transaction summary and timeline details. It should reflect status Refunded and refunded amounts.

Partial refund

  1. Go to the order page for the order purchased with WC Payments. You might need to create one using steps from normal card checkout flow.
  2. Click Refund button to activate refund UI.
  3. Update Qty and Refund amount fields to make sure only part (not all) products and fees are refunded.
  4. Click Refund via WooCommerce Payments button to issue refund.
  5. After page reload check order status (Processing) and notes in the right sidebar. Successful refund notes should be added.
  6. Go to transaction details page by clicking the link at one of the order notes (pi_abcd...).
  7. Check transaction summary and timeline details. It should reflect status Partial refund and refunded amounts.
  8. Repeat steps 2-6. Make sure following partial refunds work well and reflected on Payment details page.

Refund failure

  1. As a Shopper make a purchase using test card 4000000000005126 and make a note of order number.
  2. As a Merchant go to the order page for the created order.
  3. Click Refund button to activate refund UI.
  4. Update Qty and Refund amount fields to make sure all or part of the products and fees are refunded.
  5. Click Refund via WooCommerce Payments button to issue refund.
  6. After page reload check order status (Refunded) and notes in the right sidebar. Successful refund notes should be added.
  7. Reload the order page, check that refund failure notes added to the order.
  8. Go to Payments > Transactions page.
  9. Check transaction with Refund failure status is listed.

View transactions

  1. As a Merchant, navigate to 'Payments -> Transactions'.
  2. For a random transaction, ensure the presented links from columns 'Order', 'Subscription', 'Customer' and'Deposit' are opening.
  3. Ensure the totals rendered at the transactions list bottom reflecting the correct amount of transactions.
  4. Ensure that sorting the list by 'Date/Time', 'Amount', 'Fees', 'Net' is not changing the totals and sorts list entries as expected.

Filter transactions

  1. As a Merchant, navigate to 'Payments -> Transactions'.
  2. Note the select box above the transactions list.
  3. Click it, click 'Advanced filters', 'Add filter', 'Date' appearing sequentially when the previous element being clicked.
  4. The newly appeared element will list a select box with several operators: 'Before', 'After', 'Between'.
  5. For each of the operators, provide a date/dates range and click 'Filter'.
  6. Ensure the listing updated and contains only entries satisfying the filter and the totals are reflecting the proper amount of transactions.

Search transactions

  1. As a Merchant, navigate to 'Payments -> Transactions'.
  2. Note the search element in the transaction list: .
  3. Remove the search element content and type in an order number, wait for autocompletion and click the value it suggests (e.g. 'Order #001').
  4. Ensure the listing updated and contains only entries satisfying the filter and the totals are reflecting the proper amount of transactions.
  5. Remove the search element content and type in a customer name, wait for autocompletion and click the value it suggests (e.g. 'Customer Name (email)').
  6. Ensure the listing updated and contains only entries satisfying the filter and the totals are reflecting the proper amount of transactions.

Download transactions as CSV file

  1. As a Merchant, navigate to 'Payments -> Transactions'.
  2. Apply a date filter, and date sorting to the transactions list.
  3. Note the 'Download' element in the transaction list: .
  4. Click it and open the created file.
  5. Ensure the document entries are matching the list contents.

View transaction details

  1. As a Merchant, navigate to 'Payments -> Transactions'.
  2. Click on a transaction entry for a card payment.
  3. Observe the page content, it should be similar to this screenshot:
  4. Ensure the timeline contains similar entries.
  5. Ensure the data (order total, fees, dates, and card number) are matching between all 3 blocks.

View deposits

This should be tested on a long-lived site to ensure there is an existing history of deposits.

  1. As a Merchant, navigate to 'Payments -> Deposits'.
  2. Ensure the totals rendered at the deposits list bottom reflecting the correct amount of deposits.
  3. Ensure that sorting the list by 'Date', 'Amount' is not changing the totals and sorts list entries as expected.

Dispute created notifications

  1. As a Shopper make a test purchase using card '4000000000002685'.
  2. After the order is completed, at merchant's email should arrive an email with the title 'You have a disputed payment for ... (ch_...)'.
  3. Ensure the email properly states the order total in 'The disputed charge is for ... USD. This amount, plus a $15.00 USD ...'.
  4. Ensure the 'View and respond' link from the email is properly opening to the transaction details page showing the dispute details.

Add order notes and update order status when disputes are created or closed

Expected outcome

  • An order note is created when:
    • A dispute is created
    • A dispute is closed
    • Dispute funds have been withdrawn
    • Dispute funds have been reinstated
  • An order's status is changed to:
    • on-hold when a dispute is created
    • completed when a dispute is closed and the dispute is not a loss
    • refunded when a dispute is closed and the dispute is a loss
  • The order refund button should change to:
    • disabled when a dispute is created
    • enabled when a dispute is closed and the dispute is not a loss
    • Not visible when a dispute is is closed and the dispute is a loss
  • With WooCommerce 7.9+, expect a notice under order details that looks like this:

Testing Instructions

  • Purchase a product using a dispute-specific test card
  • Navigate to the order page as admin (WooCommerce > Orders)
  • Ensure the order has been set to on-hold and there is an order note indicating a dispute was created and that links to the correct dispute page
  • Using the dispute link in the order note, navigate to the transaction detail page and make sure dispute details are listed
  • Accept the dispute
  • Navigate back to the order page as admin
  • Ensure there is a new order note indicating the dispute was closed and the order has an appropriate status
  • Repeat steps 1-4 above
  • This time Challenge the dispute, being sure to include the string winning_evidence in the Additional Information field
  • Again, navigate to the order page and confirm the order status (completed) and note
  • Repeat steps 1-4 once more
  • Again, Challenge the dispute, being sure to include the string losing_evidence in the Additional Information field
  • Again, navigate to the order page and confirm the order status (refunded) and note

Save evidence

  1. Open the link from the email you received in 'Dispute created notifications' testing instructions.
  2. Click 'Challenge dispute' button.
  3. Pick a product type, e.g. 'Physical product'
  4. Fill in some test data (with at least one small file attached) and click 'Save evidence' button at the very bottom of the form.
  5. After submission, a list of disputes expected to appear.
  6. Ensure the list contains the evidence and it is in 'Under review' status.

Winning dispute

  1. Follow instructions from 'Dispute created notifications'.
  2. Follow instructions from 'Save evidence', but provide 'winning_evidence' as value for the 'Additional details' text area.
  3. After submission, a list of disputes expected to appear.
  4. Ensure the list contains the evidence and it is in 'Won' status.
  5. Ensure merchant receives an email with the title 'You won a dispute for ... (ch_...)'.
  6. Ensure the email properly states the order total in 'The disputed charge was for ... USD. This amount, plus a $15.00 USD ...'.

Losing dispute

  1. Follow instructions from 'Dispute created notifications'.
  2. Follow instructions from 'Save evidence', but provide 'losing_evidence' as value for the 'Additional details' text area.
  3. After submission, a list of disputes expected to appear.
  4. Ensure the list contains the evidence and it is in 'Lost' status.
  5. Ensure merchant receives an email with the title 'You lost a dispute for ... (ch_...)'.
  6. Ensure the email properly states the order total in 'The disputed charge is for ... USD. This amount, plus a $15.00 USD ...'.

Transaction / Dispute / Deposit details for large dataset

Please refer to the "Call for testing" post for the test site and its credentials, or ask the release lead if it's missing.

  1. Upload the version under test that was provided in the Call for testing
  2. Purchase a product using a test card for disputes (https://stripe.com/docs/testing#disputes)
  3. Visit Payments > Transactions and make sure that everything displayed looks correct
    • Each column shows the expected value (amount, number, name, ...)
    • Order #, Customer, and Deposit date columns have links to another place (like the Order details screen for the Order # column)
    • None of the columns are blank or wrongly formatted (like N/A for the Order # column)
  4. Visit Payments > Disputes and make sure that everything displayed looks correct
    • Each column shows the expected value (reason, status, dates, ...)
    • Order # and Customer columns have links to another place (like the Order details screen for the Order # column)
    • Each row has a link to the related transaction details page that will display dispute details
    • None of the columns are blank or wrongly formatted
  5. Visit Payments > Deposits and make sure that everything displayed looks correct
    • Each column shows the expected value (amount, status, date, ...)
    • Each row has a link to the transactions included in that particular deposit
    • None of the columns are blank or wrongly formatted

Manual capture from Uncaptured tab in Transactions page

  1. Using Merchant account enable Issue an authorization on checkout, and capture later on Transactions section of Payments > Settings page and save settings.
  2. Follow normal card checkout flow as a Shopper to make a purchase. Take a note of order number created.
  3. Using Merchant account go to Payments > Transactions. Check there is an Uncaptured tab next to Transactions tab.
  1. Click on Uncaptured tab. Check there is a table of Uncaptured transactions, similar to this screenshot:
  1. In the Uncaptured transactions table, locate the row with the order you created in previous step. Note it and click on 'Capture' button.
  2. Check that the button shows a loading state.
  3. After a moment, check that a notification appears informing that the order was successfully captured.
  1. Click on Transactions tab. Check that a new row of type Charge is added to the table for the order you just captured.

Manual capture from payment details page

  1. Using Merchant account enable Issue an authorization on checkout, and capture later on Transactions section of Payments > Settings page and save settings.
  2. Follow normal card checkout flow as a Shopper to make a purchase. Take a note of order number created.
  3. Using Merchant account go to Payments > Transactions. Check there is an Uncaptured tab next to Transactions tab.
  4. Click on Uncaptured tab. Check there is a table of Uncaptured transactions, similar to this screenshot:
  1. In the Uncaptured transactions table, click on the row with the order you created in previous step. It will take you to the payment details page.
  2. In the payment details page, check that there is a section that contains information about the capture deadline and a Capture button, like in this screenshot:
  1. Click on 'Capture' button.
  2. Check that the button shows a loading state.
  3. After a moment, check that a notification appears informing that the order was successfully captured and that the Capture button and deadline disappears.
  1. Check that the Timeline section is updated: payment successfully charged, amount added to next deposit and payment status changed to Paid

View Uncaptured transactions in Transactions page

  1. Using Merchant account enable Issue an authorization on checkout, and capture later on Transactions section of Payments > Settings page and save settings.
  2. Follow normal card checkout flow as a Shopper to make a purchase.
  3. Using Merchant account go to Payments > Transactions. Check there is an Uncaptured tab next to Transactions tab and click it.
  4. Check the totals rendered at the bottom of the table are correct.

WooCommerce Subscriptions integration test flows

All of the flows in this section require WooCommerce Subscriptions installed and active.

Note: there are separate flows for integrated WCPay Subscriptions.

Purchase subscription product

Ensure WooCommerce Subscriptions is installed and active.

  1. As a Merchant create a subscription product (see official documentation for more details).
  2. As a Shopper purchase the product using a test card.
  3. Navigate to 'My account -> Subscriptions'.
  4. Ensure the new subscription is listed there: .
  5. Ensure 'Subscription' link and 'View' button are opening.

Purchase free trial subscription

Ensure WooCommerce Subscriptions is installed and active.

  1. As a Merchant create a subscription product (see official documentation for more details).
  2. Modify the subscription: set 'Free trial' to e.g. 14 days, click 'Update' button in the top-right block on the product edit page.
  3. As a Shopper add the product to the cart and start the checkout.
  4. Ensure the total is '$0.00' and the product price includes e.g. ' with a 14-day free trial'.
  5. Ensure the order items have 'Recurring totals' section with correct subscription price.
  6. Complete the checkout and navigate to 'My account -> Subscriptions'.
  7. Ensure the new subscription is listed.

Note: "Payment Request" option ( Apple Pay, Google Pay, etc. ) will be disabled for subscriptions with free trial if the product isn't virtual or downloadable. This is a limitation of checkout flow and not an issue.

Purchase multiple subscriptions

Ensure WooCommerce Subscriptions is installed and active.

  1. As a Merchant create 2 subscription products (see official documentation for more details).
  2. As a Shopper add both products to the cart and complete checkout.
  3. Navigate to 'My account -> Subscriptions'.
  4. Ensure the listing contains only one new entry, click the 'View' button on the right side of the entry.
  5. Ensure 'Subscription totals' section lists the subscription products with the correct price.

Renew subscription

Ensure WooCommerce Subscriptions is installed and active.

  1. Follow steps from 'Purchase subscription product'.
  2. As a Shopper, navigate to 'My account -> Subscriptions'.
  3. Note the newly created subscription and click the 'View' button located on the right side of the corresponding list entry.
  4. Note the content of the 'Related orders' section (after renewing a new entry expected to be listed there).
  5. Note the 'Renew now' button and click it.
  6. You expected to land on the checkout page.
  7. Ensure the 'Complete checkout to renew now.' success message is shown up.
  8. Complete the checkout and ensure the 'Related orders' section in the subscription has a new entry.

Change subscription payment method to a new card

Ensure WooCommerce Subscriptions is installed and active.

  1. Follow steps from 'Purchase subscription product'.
  2. As a Shopper, navigate to 'My account -> Subscriptions' and open the newly created subscription entry.
  3. Observe 3 buttons for 'Actions'. Click 'Change payment' button.
  4. In the second block, select 'Use a new payment method' option.
  5. Provide 4242424242424242 as the test card number, future expiration date, and a CVC code.
  6. Click 'Change payment method' button.
  7. Observe the 'Payment method updated.' success message.
  8. Ensure the 'Payment' line in the very first block is reflecting the card data you have provided.

Change subscription payment method to saved card

Ensure WooCommerce Subscriptions is installed and active.

  1. Follow steps from 'Add new payment method'.
  2. Follow steps from 'Purchase subscription product'.
  3. As a Shopper, navigate to 'My account -> Subscriptions' and open the newly created subscription entry.
  4. In the very first block, observe 3 buttons. Click 'Change payment' button.
  5. In the second block, select the method created at the first step.
  6. Click 'Change payment method' button.
  7. Observe the 'Payment method updated.' success message.
  8. Ensure the 'Payment' line in the very first block is reflecting the card data you have provided.

Set subscriptions default payment method

Ensure WooCommerce Subscriptions is installed and active.

Follow steps from 'Change payment method to saved card', except:

  1. Make 2 purchases of subscription products, so you get 2 entries in the subscription listing.
  2. Make sure to mark 'Update the payment method used for all of my current subscriptions (optional)' checkbox when changing the payment method.
  3. Ensure both subscription entries are using the selected payment method.

Change subscriptions default payment method

Ensure WooCommerce Subscriptions is installed and active.

After completing steps from 'Set default payment method' change payment method again:

  1. Make sure to mark 'Update the payment method used for all of my current subscriptions (optional)' checkbox when changing the payment method.
  2. Ensure both subscription entries are using the new payment method.

Renew subscription automatically

Ensure WooCommerce Subscriptions is installed and active.

  1. As a Merchant create a subscription product (see official documentation for more details).
  2. As a Merchant navigate to 'WooCommerce -> Settings -> Subscriptions'
  3. Enable 'Display the auto renewal toggle' and click 'Save changes' button on page bottom.
  4. As a Shopper add the subscription product to the cart and complete checkout.
  5. As a Shopper, navigate to 'My account -> Subscriptions' and open the newly created subscription entry.
  6. Ensure 'Auto renew' toggle is available and enabled.
  7. Ensure 'Payment' states the selected payment method.
  8. Copy the subscription ID (#) for your newly created subscription.
  9. As a Merchant, navigate to 'WooCommerce -> Status -> Scheduled Actions'.
  10. As a Merchant, use the subscription ID in the 'Search hook, args and claim ID' field, on the top-right corner of the page.
  11. Search for a 'Pending' hook named 'woocommerce_scheduled_subscription_payment' and which argument states 'subscription_id' => {SUBSCRIPTION_ID}.
  12. Hover over the table row and click 'Run' to simulate an automatic renewal for the newly created subscription.
  13. As a Shopper, navigate to 'My account -> Subscriptions', and ensure the given subscription is updated and another order entry is attached to it under 'Related orders'.

Renew subscription manually

Ensure WooCommerce Subscriptions is installed and active.

  1. As a Merchant create a subscription product (see official documentation for more details).
  2. As a Merchant navigate to 'WooCommerce -> Settings -> Subscriptions'
  3. Enable 'Accept Manual Renewals', enable 'Accept Early Renewal Payments' and ' Turn off Automatic Payments ' and click 'Save changes' button on page bottom.
  4. As a Shopper add the subscription product to the cart and complete checkout.
  5. As a Shopper, navigate to 'My account -> Subscriptions' and open the newly created subscription entry.
  6. Ensure 'Payment' states 'Via Manual Renewal'.
  7. Observe 2 buttons for 'Actions'. Click 'Renew now' button.
  8. Ensure you are landed to the checkout page and can complete the checkout.
  9. Navigate to 'My account -> Subscriptions -> View Subscription' and ensure the subscription is updated and a new order entry is attached under 'Related orders'.

Multi-currency: Set up

  1. Go to WooCommerce -> Home. You will see a generic inbox notification prompting the merchant to set up multi-currency. Clicking Set up now will redirect the merchant to WP Admin on the "Multi-Currency" tab on the WooCommerce > Settings page.
  2. On the settings page, click the Add Currencies button. A modal should appear.
  3. Verify that the search box works as expected by searching for a currency and verifying that the currency list updates only the expected currency displays.
  4. Verify that all the flags are displaying correctly.
  5. Tick the Danish Krone option in the currency list then click Update selected. The UI should update and Danish Krone should now be in the list of enabled currencies.
  6. Verify that currency code isn’t being duplicated in the modal and in the list.
  7. Click the bin icon to the right of Danish Krone. Verify that Danish Krone gets removed from the list of enabled currencies.
  8. Make sure there is no way to edit/delete the default currency.

Multi-currency: Edit

  1. As a Merchant go to WooCommerce > Settings > Multi-Currency, and then click manage for one of the currencies (You may need to add more than one currency to see manage)
  2. Change any setting
  3. Save
  4. You should see no error or blank page in this process

Multi-currency: Add widget

  1. In WP Admin, click on Appearance > Widgets. Verify you can see "Currency Switcher" in the list of available widgets.
  2. Click on the currency switcher widget and add it to the sidebar of the site. Tick both the Display currency symbols and Display flags options.
  3. Go to Settings -> General and change the default currency of the store from USD to EUR.
  4. Go to Settings -> Multi-Currency. Check that the default currency is Euros, and the rates displayed for the other currencies are roughly in line with the current currency conversion rates between Euros and each currency.
  5. Go to Settings -> General and change the default currency of the store back to USD.
  6. Go back to the Settings -> Multi-Currency page and verify that USD is now the default currency, and the rates being displayed are now in line with the conversion rates between USD and each currency.

Multi-currency: onboarding

Expected outcome

If the users didn't complete the MC onboarding, the action button on the note on WooCommerce > Home titled Sell users in multiple currencies should redirect the users to the Multi-currency onboarding screen. And users can complete the onboarding and set the Multi-currency parameters like enabled currencies, storefront breadcrumb switcher and auto currency switch feature from that screen.

Testing instructions

Manual Testing:

  1. Open WooCommerce > Home page and click Sell worldwide in multiple currencies link in the Things to do next task list, or click the Set up now button in the Sell worldwide in multiple currencies titled note.
  2. Check the currency in the description matches the store currency.
  3. Follow the wizard tasks
  4. Check if the button shows the right amount
  5. Check if WooCommerce Multi-Currency tab settings match with the settings you've chosen in the onboarding wizard.
  6. Check if you can re-enter the onboarding wizard once you've completed the tasks.

Upe manual testing

  1. Enable some UPE methods to pre-add currencies to the enabled currencies list
  2. Open the onboarding wizard
  3. Check if those pre-added currencies available for selection, they shouldn't be on the checkbox list, they should be displayed as text above the currency selection form.

Status Reset

Once you completed the onboarding wizard, you can delete the wcpay_multi_currency_setup_completed option to reset the onboarding status with this query:

DELETE FROM wp_options where option_name = 'wcpay_multi_currency_setup_completed'

If you want the whole multi-currency states reverted back, you can run this query:

DELETE FROM wp_options where option_name like '%multi_currency%'

Multi-currency: Block Widget for Currency Switcher

Expected outcome

Users will have a configurable currency switcher on their widget areas, which they can style and hide/show features as they want. They can have multiple widgets with different settings.

ℹ️ Known issue: Flags icons (emojis) are not supported on every device. For example Windows will render the country code instead.

Testing instructions

As a block widget:

  1. Go to Appearance -> Widgets in WP Admin, add a new block to the sidebar by clicking the plus icon at the bottom of the existing sidebar widgets, and selecting Currency Switcher.
  2. Click update on the top right corner of the page, then open a new tab on your site and verify that you can see the currency switcher in the sidebar.
  3. Go back to Appearance -> Widgets and open the settings pane on the right. Play with toggling the various settings on/off and verify that the preview of the widget updates accordingly
  4. After making some changes, click update, then go to a page on your site and verify the currency switcher style updated accordingly.
  5. Test changing the currency via the new widget that was added, and do a few quick smoke tests to make sure currency is converted as expected on the store and when purchasing a product.

As a block via the editor:

  1. Go to Pages -> Add New and add a test page to your site. Open the block editor for the new page. Add a new block to this page and select Currency Switcher.
  2. Switch to Preview mode (or save the change then go to the page on your store) and verify that you can see the currency switcher on the page where you added it.
  3. Repeat the tests above (changing the options and ensuring the changes get applied) to make sure all is working as expected when the widget is added as a block on a page.

Multi-currency: Check out as a guest shopper

  1. Go to the shop page on the site. Verify the currency switcher appears in the sidebar. Change the selected currency and verify that the page should reload and all items in the shop will now display in the selected currency.
  2. Test toggling the Display currency symbol option and verify the currency symbol no longer displays in the currency switcher list. Do the same with the Display flags option.
  3. Add some items to the cart and go to the cart page, click Proceed to checkout, then click Place order on the checkout page. Use a Stripe test card: 4242 4242 4242 4242, any cardholder name, valid expiration date and CVV will work.
  4. Order should be completed correctly.

Multi-currency: Checkout as a logged-in shopper

  1. Go to the My Account -> Account Details page. Update the "Default currency" option, save changes.
  2. Go to the shop page. Prices should be displayed in your selected currency.
  3. Add some items to the cart and go to the cart page, click Proceed to checkout, then click Place order on the checkout page. Use a Stripe test card: 4242 4242 4242 4242, any cardholder name, valid expiration date and CVV will work.
  4. Order should be completed correctly.