Adobe Payment Services
## Link to original module * https://commercemarketplace.adobe.com/magento-payment-services.html (Available trough Marketplace) * https://experienceleague.adobe.com/docs/commerce-merchant-services/payment-services/overview.html?lang=en (Experience League documentation) * https://experienceleague.adobe.com/docs/commerce-merchant-services/payment-services/get-started/sandbox.html?lang=en (Sandbox testing guide) ## Hyvä Module Name * Composer package: `hyva-themes/magento2-adobe-payments` * Magento name: `Hyva_AdobePayments` * Gitlab repo: https://gitlab.hyva.io/hyva-themes/hyva-compat/magento2-adobe-payments ## Magento versions * Magento Open Source 2.4.4 or newer * Adobe Commerce 2.4.4 or newer ## Module Versions (if applicable) * 2.6.0 or newer (TBC) ## Features to be implemented All points are rated according to priority as P1 (critical), P2 (important), P3 (minor). * [x] basic - does not break layout/design > Note: this issue is for features related to the theme only. https://gitlab.hyva.io/hyva-public/checkout-integration-tracker/-/issues/546 for details on Hyvä Checkout compatibility. ### Minicart (global) > The below assumes 1 or more items are in the cart and applicable methods are enabled in config. Methods display underneath the proceed to checkout button. ![image](/uploads/8adff700b6193ac88ef04e66bb44c9e5/image.png){width="300" height="auto"} External Payment Wallets: - [x] [P1] Apple Pay - Safari only - [x] [P1] Google Pay PayPal Smart Buttons: - [x] [P1] PayPal - [ ] [P2] PayPal Pay Later - Supported countries only (see [PayPal docs](https://developer.paypal.com/docs/checkout/pay-later/us/)) - [x] [P2] Pay Later interest payments message - Varies based on cart total (e.g. 'pay in 3 interest free installments of X' if threshold met, or 'from X-Y' if not) - [ ] [P2] Venmo - US only ### Product Detail Page (`/catalog/product/view/id/{id}/`) > The below assumes the current product is in stock and applicable methods are enabled in config. Methods display underneath the add to cart button. ![image](/uploads/8821a09091d58de5d4052abda6074173/image.png){width="600" height="auto"} External Payment Wallets: - [x] [P1] Apple Pay - Safari only - [x] [P1] Google Pay PayPal Smart Buttons: - [x] [P1] PayPal - [ ] [P2] PayPal Pay Later - Supported countries only (see [PayPal docs](https://developer.paypal.com/docs/checkout/pay-later/us/)) - [x] [P2] Pay Later interest payments message - Varies based on product price (e.g. 'pay in 3 interest free installments of X' if threshold met, or 'from X-Y' if not) - [ ] [P2] Venmo - US only Product validation: - [x] Ensure required options are selected before triggering selected payment option - Show standard validation error message to customer where not - [x] Ensure qty selected is available before triggering selected payment option - Show standard validation error message to customer where not ### Cart Page (`/checkout/cart`) > The below assumes 1 or more items are in the cart and applicable methods are enabled in config. Methods display underneath the proceed to checkout button. ![image](/uploads/6b60be6c50349fe311e28fb2e892e3d4/image.png){width="600" height="auto"} External Payment Wallets: - [x] [P1] Apple Pay - Safari only - [x] [P1] Google Pay PayPal Smart Buttons: - [x] [P1] PayPal - [ ] [P2] PayPal Pay Later - Supported countries only (see [PayPal docs](https://developer.paypal.com/docs/checkout/pay-later/us/)) - [x] [P2] Pay Later interest payments message - Varies based on cart total (e.g. 'pay in 3 interest free installments of X' if threshold met, or 'from X-Y' if not) - [ ] [P2] Venmo - US only ### Order Review Page (`/paymentservicespaypal/smartbuttons/review/`) ![Screenshot_2024-06-06_at_08.14.38](/uploads/640d61ac01b6c9adc9bf98657a93399e/Screenshot_2024-06-06_at_08.14.38.png){width="600" height="auto"} - [ ] [P2] Isolated/simplified header and footer - [x] Header: logo and page title only - [ ] Footer: Copyright notice only - [ ] [P1] Select shipping method and update totals - Done via XHR in Luma - [ ] [P1] Display selected shipping address (not editable) - [x] [P1] Display payment method (not editable) - [ ] [P2] Allow adding/removing a coupon code - Note: this does not appear to work in Luma. Success/error messages are shown based on coupon validity, but totals are never updated when successful and coupon field remains in it's default state - [ ] [P3] Toggle coupon code section (hidden by default) - [ ] [P1] Shopping cart items list - [ ] Image - [x] Name - [ ] Price - [ ] Qty - [x] Subtotal - [x] [P2] Edit Shopping Cart link - Directs to `/paymentservicespaypal/smartbuttons/cancel/` to cancel/end current review process - [ ] [P1] Totals - [x] Subtotal - [ ] Shipping (when selected) - [x] Tax - [x] Grand total - Note: it is assumed discount and any other totals, e.g. gift cards in Enterprise, should also display here, but discount not working at present in Luma - [ ] [P1] Place Order button - only enabled if shipping method selected - Directs to `/paymentservicespaypal/smartbuttons/placeorder/` and then redirects user to `/paymentservicespaypal/smartbuttons/success/` on success ### Order Success Page (`/paymentservicespaypal/smartbuttons/success/`) > This route appears to have identical output as the layout XML instructions only include an update handle to the default `checkout_onepage_success` handle, i.e. all customisation appears to be backend only so no compatibility effort should be required. - [ ] [P1] Success page renders as per default ### Account Area - Stored Payment Methods (`/vault/cards/listaction/`) > The below assumes a customer account and a card has been saved as a stored payment method at checkout during a previous when logged in. ![Screenshot_2024-06-06_at_10.55.11](/uploads/afd246980c4d788f47799d6bc4a790a8/Screenshot_2024-06-06_at_10.55.11.png){width="600" height="auto"} - [ ] [P2] Stored cards for Payment Services appear within the vault - [ ] [P2] Stored cards for Payment Services can be removed from the vault ## Additional Testing Checklist > All config settings should be tested to ensure they honour the current website/store scope - [x] [P1] Payment services code only runs/outputs on the frontend when enabled in config - [x] [P1] Methods/buttons only display in the relevant locations when enabled / visible in config - [ ] [P1] Method action (e.g. authorize) matches values set in config - Valuess match but implementation only supports `authorize` - throwing errors for `authorize and capture` - [x] [P2] Method titles match values set in config - [ ] [P2] Method sort order matches values set in config - [x] [P2] Button styles match values set in config - [x] [P2] Ensure debug mode works when enabled in config ## Contributors * Bemeir ## Voting Use :thumbsup: to cast your vote.
issue