Ostoya Shopping List
ostoya/module-shopping-list
Lets customers create and manage multiple shopping lists in Magento 2, with CSV bulk import of list items (matched by customer email and list name) and a full GraphQL API for querying and modifying lists.
Build Tests
Code Quality
Tested on Magento 2.4.9
Recent Test History
Each release is tested against the latest Magento version at that time.
Top Contributors
View LeaderboardLooking for Contributors
Dependency injection compilation fails. Your contribution could help the entire Magento community!
Share This Module's Status
README
Loaded from GitHubShoppingList
Magento 2 module ostoya/module-shopping-list (Ostoya_ShoppingList) for managing customer shopping lists and importing list items by CSV.
Installation
Composer
composer require ostoya/module-shopping-list
bin/magento module:enable Ostoya_ShoppingList
bin/magento setup:upgrade
app/code
Copy this repository to app/code/Ostoya/ShoppingList and run:
bin/magento module:enable Ostoya_ShoppingList
bin/magento setup:upgrade
CSV import format
Required header:
customer_email,list_name,sku,qty
Lists are matched by customer_email + list_name; missing lists are created automatically. Duplicate SKUs in the same list are merged by increasing quantity.
Frontend routes
/shoppinglist//shoppinglist/list/view?list_id=...
Notes
- Database tables remain
tr_shopping_listandtr_shopping_list_item. - No dependency on legacy custom customer pricing modules.
GraphQL API
All shopping-list GraphQL operations require an authenticated customer token and are scoped to the current customer.
Query customer lists
query CustomerShoppingLists {
customerShoppingLists(pageSize: 10, currentPage: 1) {
total_count
items {
list_id
list_name
items_count
}
page_info {
current_page
page_size
total_pages
}
}
}
Create list
mutation CreateShoppingList {
createShoppingList(input: { list_name: "Weekly Order" }) {
success
message
list {
list_id
list_name
}
}
}
Add product to list
mutation AddProductToShoppingList {
addProductToShoppingList(
input: {
list_id: 1
sku: "ABC-123"
qty: 2
mode: SET_OR_INCREMENT
}
) {
success
message
item {
item_id
sku
qty
}
}
}
Query list detail
query CustomerShoppingList {
customerShoppingList(list_id: 1) {
list_id
list_name
items_count
items {
item_id
product_id
sku
name
qty
product {
sku
name
}
}
}
}
This content is fetched directly from the module's GitHub repository. We are not the authors of this content and take no responsibility for its accuracy, completeness, or any consequences arising from its use.