Skip to content

Release testing instructions for WC Payments 2.6.0

James Rodger edited this page Jun 18, 2021 · 17 revisions

Testing for Customer Multi-Currency Feature

Customer Multi-Currency allows a shop to allow their customers to choose which currency they'd like to use to see and pay for products.

Pre-requisites/Setup:

  • Set _wcpay_feature_customer_multi_currency option in the wp_options table to 1. Or use the following snippet: update_option( '_wcpay_feature_customer_multi_currency', '1' ); in the Code Snippet plugin.
  • Once you have the _wcpay_feature_customer_multi_currency option set to 1, you should be able to see a "Multi-Currency" settings tab on the settings page after clicking on Payments > Settings. Make sure this is present, in order to test the scenarios below.

Test Scenario 1

  • Go to WP Admin and click on the "Multi-Currency" tab on the WooCommerce > Settings page.
  • On the settings page, click the Add Currencies button. A modal should appear.
  • 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.
  • 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.
  • Click the bin icon to the right of Danish Krone. A modal should appear. Click Remove Currency. Verify that Danish Krone gets removed from the list of enabled currencies.

Test Scenario 2

As an admin:

  • In WP Admin, click on Appearance > Widgets. Verify you can see "Currency Switcher" in the list of available widgets.
  • 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.

As a guest user:

  • 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.
  • 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.
  • Add some items to the cart and go to the cart page, click Pay now and use a Stripe test card: 4242 4242 4242 4242, any cardholder name, valid expiration date and CVV will work.
  • Order should be completed correctly.

As a logged in user:

  • Go to the My Account -> Account Details page. Update the "Default currency" option, save changes.
  • Go to the shop page. Prices should be displayed in your selected currency.
  • Add some items to the cart and go to the cart page, click Pay now and use a Stripe test card: 4242 4242 4242 4242, any cardholder name, valid expiration date and CVV will work.
  • Order should be completed correctly.

Test Scenario 3

  • Add the currency switcher widget to the store as described in scenario 2.
  • Go to WP Admin and click on the "Multi-Currency" tab on the WooCommerce > Settings page. Make a note of the exchange rates for the EUR, NZD and CDF currencies.
  • Go to the shop page on the store, switch between USD, EUR, NZD and CDF and verify that the prices all look right (are converted from their USD price at the appropriate rate) and are formatted accordingly:
    • USD should look like $xx,xxx.xx
    • EUR should look like €xx.xxx,xx
    • CDF should look like Frxx,xxx.xx
    • NZD should look like $xx,xx.xx
  • Make sure that discounted prices and variation price ranges are rendered correctly.

Simple Products

  • Make sure the price is converted in the Shop, Product, Cart and Checkout pages.
  • Purchase the product and check that the order has the right currency and price
  • Navigate to the My Account -> Orders page and ensure that the currency used was the selected one.

Variable Products

  • Make sure the price is converted in the Shop, Product, Cart and Checkout pages.
  • Modify the selected currency and ensure the price range was updated. It is cached by WooCommerce by default, but should be refreshed when the exchange rate changes.
  • Purchase the product and check that the order has the right currency and price
  • Navigate to the My Account -> Orders page and ensure that the currency used was the selected one.

Coupons

  • Enable coupon codes in the General WooCommerce settings
  • Create three coupons, one for each type
  • Ensure that the fixed cart discount and fixed product discount amounts are converted when using them
  • Ensure that the percentage discount works correctly and the percentage defined in the coupon is applied to the order
  • Add a minimum and maximum spend usage restriction to a coupon, and check that those values are converted and matched against the cart subtotal

Shipping

  • Add a free and a flat rate shipping method to your shipping zone
  • Make sure that they work correctly on the checkout page
  • If apply_charm_only_to_products is enabled, the shipping rate should only be ceiled after conversion
  • If it's not, the shipping rate should also have the charm pricing added to it
  • Set a Minimum order amount for free shipping. Make sure that the minimum order amount is checked against the selected currency. For example:
    • If the minimum order amount is set to $100.
    • $100 in the cart should give free shipping.
    • Change the store currency to GBP.
    • The amount needed to qualify for free shipping should now be £71 (because of the conversion rate between USD and GBP).
    • Ensure that the order still qualifies for free shipping.

Taxes

  • Enable taxes in the General WooCommerce settings and create a standard tax rate
  • Ensure that taxes are correctly applied and converted when using both "Prices inclusive of tax" and "prices exclusive of tax"
  • Ensure that the shipping methods' taxes are also converted properly under both configurations

Testing for Payment Request Buttons When Guest Checkout Disabled

  1. Enable “Express checkouts” under Payments > Settings.
  2. Go to WooCommerce > Settings > Accounts & Privacy and disable the following settings:
  3. Allow customers to place orders without an account.
  4. Allow customers to create an account during checkout.
  5. Make sure you’re not logged in.
  6. Make sure you have a valid Stripe test card added to chrome://settings/payments. It can be 4242 4242 4242 4242 with any valid CVV and expiration date.
  7. Go to an HTTPS product page in Chrome and click the payment request button (Google Pay button or purple button “Buy now” above add to card). The product can be a simple product (e.g Album or Beanie), but please also test with a simple subscription product without a free trial.
  8. Notice there’s a dialog, and the Ok button redirects you to my account.
  9. Login or create an account.
  10. Notice you’re redirected to the original page and are able to continue with your order.

The behavior shown in this GIF is what’s expected from the testing.

New Settings Pages

The following settings pages have been redesigned:

  1. WCPay settings: /wp-admin/admin.php?page=wc-settings&tab=checkout&section=woocommerce_payments. The page has been redesigned. Please ensure that the settings are persisted and honored by the plugin after being saved.
  2. WCPay Express checkouts appearance: /wp-admin/admin.php?page=wc-settings&tab=checkout&section=woocommerce_payments&method=digital_wallets. The page has been redesigned. Please ensure that the settings are persisted and honored by the plugin after being saved. One thing to note in this page is that Stripe doesn’t always honor the changes of the “Express checkouts” button immediately. So for example, if the button is updated from “Size: Medium” to “Size: Large”, the change might not immediately appear. Clearing the cache after saving often resolves the issue.
  3. WC Gateways page: /wp-admin/admin.php?page=wc-settings&tab=checkout. The page will show a confirmation modal when attempting to disable WCPay.

For all these pages, after the settings are saved, they should be honored during the checkout experience.

To test the “Express checkouts” feature, ensure that:

  1. You are not testing on “localhost”
  2. You have some cards saved on GPay or on Chrome autofill or on ApplePay – see requirements here: https://stripe.com/docs/js/payment_request/can_make_payment.
Clone this wiki locally