PHPackages                             ostoya/module-shopping-list - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. ostoya/module-shopping-list

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

ostoya/module-shopping-list
===========================

Shopping List extension

1.2.0(2mo ago)08↓50%[1 PRs](https://github.com/0stoya/ShoppingList/pulls)PHP &gt;=8.3

Since May 4Compare

[ Source](https://github.com/0stoya/ShoppingList)[ Packagist](https://packagist.org/packages/ostoya/module-shopping-list)[ RSS](/packages/ostoya-module-shopping-list/feed)WikiDiscussions Synced 3w ago

READMEChangelog (7)Dependencies (1)Versions (11)Used By (0)

ShoppingList
============

[](#shoppinglist)

Magento 2 module `ostoya/module-shopping-list` (`Ostoya_ShoppingList`) for managing customer shopping lists and importing list items by CSV.

Installation
------------

[](#installation)

### Composer

[](#composer)

```
composer require ostoya/module-shopping-list
bin/magento module:enable Ostoya_ShoppingList
bin/magento setup:upgrade
```

### app/code

[](#appcode)

Copy this repository to `app/code/Ostoya/ShoppingList` and run:

```
bin/magento module:enable Ostoya_ShoppingList
bin/magento setup:upgrade
```

CSV import format
-----------------

[](#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
---------------

[](#frontend-routes)

- `/shoppinglist/`
- `/shoppinglist/list/view?list_id=...`

Notes
-----

[](#notes)

- Database tables remain `tr_shopping_list` and `tr_shopping_list_item`.
- No dependency on legacy custom customer pricing modules.

GraphQL API
-----------

[](#graphql-api)

All shopping-list GraphQL operations require an authenticated customer token and are scoped to the current customer.

### Query customer lists

[](#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

[](#create-list)

```
mutation CreateShoppingList {
  createShoppingList(input: { list_name: "Weekly Order" }) {
    success
    message
    list {
      list_id
      list_name
    }
  }
}
```

### Add product to list

[](#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-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
      }
    }
  }
}
```

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance85

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

6

Last Release

79d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/51473934003a3d2edaf38d33ffea86eb6f68fcac6e8755fe5eb46b74ce02eab8?d=identicon)[Watch3r!](/maintainers/Watch3r!)

---

Top Contributors

[![0stoya](https://avatars.githubusercontent.com/u/224377174?v=4)](https://github.com/0stoya "0stoya (38 commits)")

### Embed Badge

![Health badge](/badges/ostoya-module-shopping-list/health.svg)

```
[![Health](https://phpackages.com/badges/ostoya-module-shopping-list/health.svg)](https://phpackages.com/packages/ostoya-module-shopping-list)
```

###  Alternatives

[nosto/module-nostotagging

Increase your conversion rate and average order value by delivering your customers personalized product recommendations throughout their shopping journey.

27703.7k4](/packages/nosto-module-nostotagging)[tig/postnl-magento2

TIG Magento 2 PostNL extension

59570.5k5](/packages/tig-postnl-magento2)[myparcelnl/magento

A Magento 2 module that creates MyParcel labels

1860.2k](/packages/myparcelnl-magento)[loki/magento2-components

Core module for defining Alpine.js components with advanced AJAX features

1011.8k26](/packages/loki-magento2-components)[mage-os/module-llm-txt

AI-powered LLMs.txt generation for Magento 2 / Mage-OS stores. Help AI systems understand your store with OpenAI-generated content.

234.4k](/packages/mage-os-module-llm-txt)[mage-os/module-rma

Return Merchandise Authorization

214.0k](/packages/mage-os-module-rma)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
