Magento_RequisitionList
The Magento_RequisitionList module allows a customer to create multiple lists of frequently-purchased items and use those lists for order placement. This feature is available for both logged-in users and guests.
# Magento Modules:
* Magento_RequisitionList
* Magento_RequisitionListGraphQl
* Magento_BundleRequisitionList
* Magento_BundleRequisitionListGraphQl
* Magento_ConfigurableRequisitionList
* Magento_ConfigurableRequisitionListGraphQl
* Magento_DownloadableRequisitionListGraphQl
* Magento_GiftCardRequisitionList
* Magento_GiftCardRequisitionListGraphQl
* Magento_GroupedRequisitionList
> `Magento_RequisitionList` is the main storefront affecting module.
> `Magento_BundleRequisitionList`, `Magento_ConfigurableRequisitionList`, `Magento_GroupedRequisitionList` each contain a layout XML change only. All other modules have no storefront impact.
# Adobe Commerce Packages
* magento/module-requisition-list
* magento/module-requisition-list-graph-ql
* magento/module-bundle-requisition-list
* magento/module-bundle-requisition-list-graph-ql
* magento/module-configurable-requisition-list
* magento/module-configurable-requisition-list-graph-ql
* magento/module-downloadable-requisition-list-graph-ql
* magento/module-gift-card-requisition-list
* magento/module-gift-card-requisition-list-graph-ql
* magento/module-grouped-requisition-list
# 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-requisition-list
## Features
> All points are rated according to priority as P1 (critical), P2 (important), P3 (minor).
- [x] basic - does not break layout/design
> Note: All below features assume output only if requisitions lists are enabled in Stores > Configuration: `btob/website_configuration/requisition_list_active`.
> Note: requisition lists are a customer feature and unlike most B2B features are in no way related to company accounts.
### Global - Customer Account Header
- [x] [P3] Add 'My Requisition Lists' when logged in
> Requires https://gitlab.hyva.io/hyva-themes/magento2-default-theme/-/merge_requests/837 to be merged to allow for extensibility.
### Category & Search Pages (`/catalog/category/view/id/{id}/`, `/catalogsearch/result/?q=*` & `/catalogsearch/advanced/result/?*`)
- [x] [P1] Add product to existing requisition list
- [x] [P1] Create new requisition list and add product to it (see modal features below)
- [x] [P1] Redirect to product page with message for selecting options if a complex product / custom options
- [x] [P2] Add product to requisition list with configurable swatch selections
#### Add Requisition List Modal
- [x] [P1] Add list name (required)
- [x] [P1] Add list description (optional)
- [x] [P1] Submit (save/create) list
- [x] [P1] Cancel/close modal
### Product Detail Pages (`/catalog/product/view/id/{id}/`)
- [x] [P1] Add product to existing requisition list
- [x] [P1] Create new requisition list and add product to it (see modal features below)
- [x] [P2] Validation for selecting required options before adding to list (submitting)
- [x] [P3] Support for related / upsell products (see category/search list above)
###### Visual QA
- [x] [P2] While above completed areas are functional, they need styling
#### Add Requisition List Modal
- [x] [P1] Add list name (required)
- [x] [P1] Add list description (optional)
- [x] [P1] Submit (save/create) list
- [x] [P1] Cancel/close modal
### Cart (`/checkout/cart/`)
- [x] [P2] Add all cart items to existing requistion list
- [x] [P2] Create new requisition list and add all cart items to it (see modal features below)
- [x] [P2] Add individual cart items to existing requistion list
- [x] [P2] Create new requisition list and add individual cart item to it
- [x] [P3] Support for crosssell products (see category/search list above)
#### Add Requisition List Modal
- [x] [P1] Add list name (required)
- [x] [P1] Add list description (optional)
- [x] [P1] Submit (save/create) list
- [x] [P1] Cancel/close modal
### Account Area (all pages)
- [x] [P1] Add 'My Requisition Lists' to account area navigation menu
### Requisition List Listing Page (`/requisition_list/requisition/`)
- [x] [P1] Create new requisition list link (see modal features below)
- [x] [P1] Show requisition lists table
- Name, description, items count, last updated (activity), action columns
- [x] [P1] View existing requisition list link
- [x] [P2] Pagination works
- [x] [P2] Limiter works
- [x] UX improvement - should consider being able to delete lists from this page like other grids
###### Visual QA
- [x] [P2] While above completed areas are functional, they need styling
- [x] [P2] Rename any mention of 'Project' to 'Requisition List'
#### Add Requisition List Modal
- [x] [P1] Add list name (required)
- [x] [P1] Add list description (optional)
- [x] [P1] Submit (save/create) list
- [x] [P1] Cancel/close modal
### Requisition List Detail Page (`/requisition_list/requisition/view/requisition_id/{id}/`)
- [x] [P1] Update list details - 'rename' link (see modal features below)
- [x] [P2] Export list to CSV link
- [x] [P3] Print list link
- [x] [P3] Total items count
- [x] [P1] Requisition list items table
- Name, SKU, price, qty and subtotal
- [x] [P1] Change item qty and update list (button below table)
- Qtys not updating at present
- [x] [P1] Delete requisition list item (see modal features below)
- [x] [P2] Configure items link/icon (for products with options)
- [x] [P1] Select/deselect indivdual items
- [x] [P2] Select/deselect all items
- [x] [P1] Mass action - add selected items to cart (via button below table)
- [x] [P1] Mass action - remove selected items (see modal features below)
- [x] [P2] Mass action - move selected items to new/existing list
- [x] [P2] Mass action - copy selected items to new/existing list
###### Visual QA
- [x] [P2] While above completed areas are functional, they need styling
- [x] [P2] Rename any mention of 'Project' to 'Requisition List'
#### Update Requisition List Details Modal
- [x] [P1] Add list name (required)
- [x] [P1] Add list description (optional)
- [x] [P1] Submit (save/create) list
- [x] [P1] Cancel/close modal
#### Remove Requisition List Item(s) Modal
- [x] [P1] Add list name (required)
- [x] [P1] Add list description (optional)
- [x] [P1] Submit (save/create) list
- [x] [P1] Cancel/close modal
### Requisition List Print (`/requisition_list/requisition/print/requisition_id/{id}/`)
- [x] [P3] Can view/print (output as per Luma)
> Just missing title/item count - items output working
### Requisition List Configure Item (`/requisition_list/item/configure/item_id/{id}/id/{id}/requisition_id/{id}/`)
- [x] [P2] Update product options and update in requisition list
- [x] [P2] Ensure product option validation works (i.e. required options selected)
> Note: separate layout XML files for bundle, configurable and grouped products exist for this page in their respective additional modules, e.g. `Magento_BundleRequisitionList`.
> Could improve UX here - main 'add to cart' button is prominent when in most cases it's the requisition list that will want to be updated on this page
<img src="/uploads/78ca27bcf12159e348c532f00dc00300/Requisition_List_Item_Configure.png" width="400" height="auto" />
### Order Detail Page (`/sales/order/view/order_id/{id}/`)
- [x] [P2] Add order items to existing requisition list
- [x] [P2] Add order items to new requisition list (see modal features below)
#### Add Requisition List Modal
- [x] [P1] Add list name (required)
- [x] [P1] Add list description (optional)
- [x] [P1] Submit (save/create) list
- [x] [P1] Cancel/close modal
## Contributors
* @anastasiia.bondar
* @jward
* @ryanhissey
* @ryan-copeland
## Voting
Use :thumbsup: to cast your vote.
issue