Magento_NegotiableQuote (Hyvä Checkout)
Magento Modules:
- Magento_NegotiableQuote
- Magento_CheckoutAddressSearchNegotiableQuote
- Magento_CheckoutAgreementsNegotiableQuote
Adobe Commerce Packages
- magento/module-negotiable-quote
- magento/module-checkout-address-search-negotiable-quote
- magento/module-checkout-agreements-negotiable-quote
Repository
Note: this repo is only accessible with a Hyvä Enterprise license or as a contributor.
For more details, see: https://www.hyva.io/hyva-enterprise.html.
https://gitlab.hyva.io/hyva-enterprise/b2b/magento2-ee-hyva-enterprise-checkout-b2b
Features
All points are rated according to priority as P1 (critical), P2 (important), P3 (minor).
-
basic - does not break layout/design
Note: this issue is for features related to the checkout only. See #103 for details on Hyvä Theme compatibility.
Note: All below features assume output only if the customer is logged into a company account and company accounts and negotiable quotes are enabled in Stores > Configuration (
btob/website_configuration/company_active
/btob/website_configuration/negotiablequote_active
) along with quotes being enabled for the company in 'Customer > Companies' under the 'Advanced Settings' tab.
Negotiable Quote Checkout Mode (Apply Quote / Replace Cart)
'Negotiable Quote Checkout Mode' refers to the workflow where an existing quote is in a state where an order can be placed from it (i.e. the admin user has approved/submitted a revised quote for the customer to review). This checkout mode is usually initiated from the quote detail/view page:
/negotiable_quote/quote/view/quote_id/{id}/
by the user clicking the 'Proceed To Checkout' button available on the page.
-
[P1] Negotiable quotes can be loaded into the checkout in place of the current cart contents - This is achieved in Luma by using a query parameter of
negotiableQuoteId
with a value of the negotiable quote ID, e.g./checkout/index/index/negotiableQuoteId/{id}/
- The regular checkout with any current cart items can still be accessed by removing the parameter at any time and multiple quotes can be loaded by using different quote IDs, i.e., the functionality never replaces the current standard quote (cart) at any time
- This is achieved in Luma by using a query parameter of
All below features assume the checkout is in 'negotiable quote mode' and that an address was set against the negotiable quote. Otherwise, standard functionality should apply.
Shipping Address Section
-
[P1] Lock shipping address (don't allow changing or adding a new address) -
[P1] Display a warning message: 'Your shipping address is locked. To change your shipping address, go back to the quote.' -
[P1] Provide a link back to the quote (within the above message)
Suggested enhancement: additional addresses could be either removed altogether or grayed-out to better indicate that they cannot be selected when the address is locked.
Shipping Method Section
-
[P1] Display only the selected shipping method -
[P1] Display the custom shipping method price - If one was set by the admin user (otherwise, the default shipping method price should display)
Payment Method Section
-
[P1] The same payment methods should be available to the customer/company as per the regular checkout
Order Summary Panel
-
[P3] 'X Item[s] in Cart' is replaced with 'X Item[s] in Quote'Note: this has no visual impact on Hyvä Checkout as is the basket icon/badge count is displayed instead
-
[P1] Items displayed match items from the quote -
[P1] Items qtys displayed match qtys from the quote -
[P1] Items prices displayed match prices from the quote -
[P1] Shipping address matches selected/locked address -
[P1] Shipping method matches selected/locked method -
[P3] Order subtotal is renamed 'Quote Subtotal' -
[P1] Order subtotal matches subtotal from the quote -
[P1] Order shipping total matches shipping total from the quote - Note: this can/will vary if shipping method not locked
-
[P1] Tax matches tax from the quote (where applicable) - Note: this can/will vary if shipping address/method not locked
-
[P1] Order total matches total from the quote - with adjustments: - Shipping address/method if not locked
- Discounts, reward points, gift cards, store credit*
-
[P1] Other totals output as required/set - e.g. discounts, reward points, gift cards, store credit*
*Note: from limited testing, discounts cannot be applied to a quote at checkout, but reward points, gift cards, and store credit can - adjusting the order total by the specified amount.
Suggested enhancement: no related to this task specifically, but totals that can be removed should be consistent, rather than the mix of buttons/links in Luma
🙈
Order Placement
-
[P1] The order is successfully created from the quote -
[P1] The negotiable quote's status is updated to 'Ordered' (visible via /negotiable_quote/quote/
)
Checkout Address Search Support
Note: All below features assume checkout address search is enabled in Stores > Configuration (
checkout/options/enable_address_search
) and the customer has met the threshold for the number of addresses listed (checkout/options/customer_address_limit
). See more details on address search functionality here: #107
-
[P2] Address search can be used when checking out with a negotiable quote -
[P2] Ensure the shipping address can't be modified using address search when the address is locked by the quote when checking out with a negotiable quote
Terms & Conditions Support
Note: All below features assume terms & conditions are enabled in Stores > Configuration (
checkout/options/enable_agreements
) and one or more agreements exists and is active under Stores > Terms and Conditions.
-
[P2] Checkout agreements (terms & conditions) can be used when checking out with a negotiable quote
Additional Admin Screenshots (for guidance)
Quotes default configuration
From navigation menu: Stores > Configuration
Quotes per company settings
From navigation menu: Customer > Companies
Contributors
Voting
Use