Magento_NegotiableQuote
# Magento Modules:
* Magento_NegotiableQuote
* Magento_NegotiableQuoteAsyncOrder
* Magento_NegotiableQuoteGraphQl
* Magento_NegotiableQuoteSharedCatalog
* Magento_NegotiableQuoteWeee
* Magento_CheckoutAddressSearchNegotiableQuote
* Magento_CheckoutAgreementsNegotiableQuote
* Magento_ConfigurableNegotiableQuote
* Magento_GiftCardNegotiableQuote
* Magento_PaypalNegotiableQuote
> Only `Magento_NegotiableQuote` contains storefront affecting logic/output.
> `Magento_CheckoutAddressSearchNegotiableQuote` and `Magento_CheckoutAgreementsNegotiableQuote` affect checkout only (along with `Magento_NegotiableQuote`).
# Adobe Commerce Packages
* magento/module-negotiable-quote
* magento/module-negotiable-quote-async-order
* magento/module-negotiable-quote-graph-ql
* magento/module-negotiable-quote-shared-catalog
* magento/module-negotiable-quote-weee
* magento/module-order-history-search
* magento/module-checkout-agreements-negotiable-quote
* magento/module-checkout-agreements-purchase-order
* magento/module-configurable-negotiable-quote
* magento/module-gift-card-negotiable-quote
* magento/module-paypal-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-magento-negotiable-quote
## Features
> 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 main Hyvä Theme only. See #118 for details on Hyvä Checkout compatibility. All checkout features are also supported using the fallback Luma checkout.
> Note: All below features assume output only if 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.
### Global - Customer Account Header
<details>
<summary>Feature complete (click to expand items checklist)</summary>
- [x] [P3] Add 'My Quotes' link when logged in
- [x] [P2] Visible with relevant permissions only (view/manage quotes)
</details>
### Cart (`/checkout/cart/`)
<details>
<summary>Feature complete (click to expand items checklist)</summary>
- [x] [P1] Request a quote link
- [x] [P2] Visible with relevant permissions only (request/manage quotes)
- [x] [P2] Disable quote button if minimum spend not set
- [x] [P2] Display message if minimum spend not set (and message set in config)
- [x] [P1] Request a quote modal
- [x] [P2] Add comment
- [x] [P1] Add quote name
- [x] [P2] Upload file
- [x] [P2] File validation
- [x] [P1] Submit/create quote
- [x] [P2] Display error message when trying to request a quote when a coupon code/discount is applied
</details>
### Account Area (all pages)
<details>
<summary>Feature complete (click to expand items checklist)</summary>
- [x] [P1] Add 'My Quotes' to account area navigation menu
- [x] [P2] Visible with relevant permissions only (view/manage quotes)
</details>
### Quote Listing Page (`/negotiable_quote/quote/`)
<details>
<summary>Feature complete (click to expand items checklist)</summary>
- [x] [P1] Accessible with relevant permissions only (view/manage quotes)
- [x] [P1] Quote listing table
- Quote Name, Created, Created By, Status, Last Updated, Quote Total and Action columns
- [x] [P1] View quote action
- [x] [P2] Switch between all company/my quotes only
- [x] [P2] Only display if user has relevant permissions
- [x] [P2] Pagination works
- [x] [P2] Limiter works
- [x] [P2] Now results message (when no matching quotes)
</details>
### Quote Detail Page (`/negotiable_quote/quote/view/quote_id/{id}/`)
<details>
<summary>Feature complete (click to expand items checklist)</summary>
- [x] [P1] Accessible with relevant permissions only (view/manage quotes)
#### Header Area
- [x] [P1] Show quote name / status
- [x] [P1] Show quote creation date and user (created by)
- [x] [P1] Show quote expiration date
- [x] [P2] Show quote sales rep
- [x] [P2] Show and link to order (for completed quotes)
- [x] [P2] Show quote messages (e.g. warning message if not quote owner, or when quote prices expired)
- [x] [P1] Close quote
- [x] [P2] Visible/enabled with relevant permissions only (request/manage quotes) and quote owner
- [x] [P1] Delete quote
- [x] [P2] Visible/enabled with relevant permissions only (request/manage quotes) and quote owner
- [x] [P3] Add modal to confirm deletion (as per Luma)
- [x] [P3] Print quote
#### Info Tabs
##### Items
- [x] [P1] Show quote items
- Name, SKU, price, stock, qty, subtotal, actions (delete/notes)
- [x] [P2] Update item qty's
- [x] [P2] Visible/enabled with relevant permissions only (request/manage quotes) and quote owner
- [x] [P2] Delete items
- [x] [P2] Visible/enabled with relevant permissions only (request/manage quotes) and quote owner
- [x] [P2] View notes from (or left to) seller for each item
- [x] [P2] Leave a note to seller for each item (add or edit existing)*
- [x] [P2] Visible/enabled with relevant permissions only (request/manage quotes) and quote owner
- [x] [P2] Show item totals
- [x] [P3] Can collapse/expand subtotals (collapsed by default)
- [x] [P2] All updates/changes saved as made (not when sending for review)
> *This has been moved inline on the page (is a modal on Luma) to reduce qty update duplication (which also contains bugs in Luma)
##### Comments
- [x] [P2] Show comments
- [x] [P2] Show / link to attachments
##### History Log
- [x] [P2] Show all updates, including status changes and comments
- [x] [P2] Show / link to attachments
#### Shipping Information
- [x] [P1] Show shipping address
- [x] [P3] Show telephone as link (`:tel`)
- [x] [P1] Update / select shipping address*
- [x] [P2] Visible/enabled with relevant permissions only (request/manage quotes and quote owner)
- [x] [P1] Add new address (directs and returns from address book page)
- [x] [P2] Visible/enabled with relevant permissions only (request/manage quotes and quote owner)
- [x] [P2] Show resubmit warning message when address changed
- [x] [P1] Show selected shipping method
- [x] [P2] All updates/changes saved as made (not when sending for review)
> *Select address moved inline on the page (no modal used like in Luma)
#### Add Comments
- [x] [P1] Add comments
- [x] [P2] Visible/enabled with relevant permissions only (request/manage quotes) and quote owner
- [x] [P2] Add attachment
- [x] [P2] Visible/enabled with relevant permissions only (request/manage quotes) and quote owner
- [x] [P2] File size, type and name validation
- [x] [P2] Submit / save comment (and attachment)
- [x] [P2] Remove selected attachement
#### Actions
- [x] [P1] 'Send for Review' button
- [x] [P2] Redirect to success page
- [x] [P2] Visible/enabled with relevant permissions only (request/manage quotes) and quote owner
- [x] 'Proceed to Checkout' button
- [x] [P2] Only enable/visible if quote is allowed to go proceed to checkout
- [x] [P2] Only enable/visible with relevant permissions (checkout with quote and quote owner)
- [x] [P2] Removes negotiated prices first (with modal warning) if quote has expired*
#### Locked Quote View
> When the quote has been submitted as is with the seller (admin user) for review
- [x] [P2] Show quote locked warning message
<img src="/uploads/dd61bd604ac731530fbbf07751e9feaa/image.png" width="500" height="auto" />
- [x] [P2] Disable delete quote button (remove from page)
- [x] [P2] Disable item qty updates (remove from page)
- [x] [P2] Disable item delete (remove from page)
- [x] [P2] Disable leaving item notes for seller (remove from page)
- [x] [P2] Disable selecting (changing) shipping address (remove from page)
- [x] [P2] Disable adding new shipping address (remove from page)
- [x] [P2] Disable leaving comments / attachments (remove from page)
- [x] [P2] Disable 'Send for Review' button (remove from page)
</details>
### Quote Detail Print (`/negotiable_quote/quote/print/quote_id/{id}/`)
<details>
<summary>Feature complete (click to expand items checklist)</summary>
- [x] [P3] Accessible with relevant permissions only (view/manage quotes)
- [x] [P3] Show quote information for print (as per Luma)
</details>
### Quote Send Success Page (`/negotiable_quote/quote/send/`)
<details>
<summary>Feature complete (click to expand items checklist)</summary>
- [x] [P1] Show quote sent success message
- [x] [P1] Show and link to quote (with ID)
- [x] [P3] 'Continue Shopping' button (goes to homepage)
</details>
### Account Dashboard Recent Orders (`/customer/account/`)
<details>
<summary>Completed features (click to expand items checklist)</summary>
- [x] [P2] Don't display quote orders in recent orders
- [x] [P3] Reorder link cart merge / replace (see modal features below)
#### Reorder Cart Merge/Replace Modal
- [x] [P3] Trigger modal only if cart not empty
- [x] [P3] Show warning message
- [x] [P3] 'Merge' cart items button
- [x] [P3] 'Replace' cart items button
- [x] [P3] Cancel/close modal
</details>
### Order Listing Page (`/sales/order/history/`)
<details>
<summary>Completed features (click to expand items checklist)</summary>
- [x] [P2] Remove reorder button for orders placed as quotes
- [x] [P3] Reorder link cart merge / replace (see modal features below)
- [~] [P3] Order filters/columns*
> *Functionality is repplaced/improved by order search history module #82 - not relevant to make this compatible within this module
#### Reorder Cart Merge/Replace Modal
- [x] [P3] Trigger modal only if cart not empty
- [x] [P3] Show warning message
- [x] [P3] 'Merge' cart items button
- [x] [P3] 'Replace' cart items button
- [x] [P3] Cancel/close modal
</details>
### Order Detail Page (`/sales/order/view/order_id/{id}`)
<details>
<summary>Completed features (click to expand items checklist)</summary>
- [x] [P2] Display / link to quote
- [x] [P2] Show created date and user
- [x] [P2] Remove reorder button for orders placed as quotes
- [x] [P3] Reorder link cart merge / replace (see modal features below)
#### Reorder Cart Merge/Replace Modal
- [x] [P3] Trigger modal only if cart not empty
- [x] [P3] Show warning message
- [x] [P3] 'Merge' cart items button
- [x] [P3] 'Replace' cart items button
- [x] [P3] Cancel/close modal
</details>
### Order Detail Print (`/sales/order/print/order_id/{id}`)
<details>
<summary>Completed features (click to expand items checklist)</summary>
- [x] [P3] Show created date and user
</details>
## Contributors
@patrykbura
## Voting
Use :thumbsup: to cast your vote.
issue