The Home for Magento 2 Excellence

Quality-tested Magento 2 modules. Explore. Evaluate. Elevate. #magento2

1090 Modules
628 Ready
462 Need Help
🏆 Leaderboard
Actively Maintained v1.2.0

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.

8
Downloads
Below average
0
GitHub Stars
2mo ago
Last Release
1
Open Issues
Build Issues
2/3 checks passed

Build Tests

Composer Install
DI Compile
Templates

Code Quality

CS Coding Standard
19 errors , 657 warnings
PHPStan Failed

Tested on Magento 2.4.9

Recent Test History

Each release is tested against the latest Magento version at that time.

v1.2.0 on Magento 2.4.9
Jun 7, 2026
v1.0.0 on Magento 2.4.9
Jun 1, 2026

Looking for Contributors

Dependency injection compilation fails. Your contribution could help the entire Magento community!

Contribute

Share This Module's Status

Ostoya Shopping List Magento compatibility status badge

README

Loaded from GitHub

ShoppingList

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_list and tr_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.