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.
{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.
{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.
{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/`)
{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.
{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