Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 61 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,72 @@
# Inventory Extension - <small>[LNbits](https://github.com/lnbits/lnbits) extension</small>
<a href="https://lnbits.com" target="_blank" rel="noopener noreferrer">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://i.imgur.com/QE6SIrs.png">
<img src="https://i.imgur.com/fyKPgVT.png" alt="LNbits" style="width:280px">
</picture>
</a>

<small>For more about LNbits extensions see the [LNbits Extensions guide](https://github.com/lnbits/lnbits/wiki/LNbits-Extensions).</small>
[![License: MIT](https://img.shields.io/badge/License-MIT-success?logo=open-source-initiative&logoColor=white)](./LICENSE)
[![Built for LNbits](https://img.shields.io/badge/Built%20for-LNbits-4D4DFF?logo=lightning&logoColor=white)](https://github.com/lnbits/lnbits)

The Inventory extension provides a simple inventory manager with item metadata and stock quantities. It is designed to be used standalone or as a shared inventory source for other LNbits extensions that need to reference items and availability.
# Inventory Extension – <small>[LNbits](https://github.com/lnbits/lnbits) extension</small>

The **Inventory extension** provides a simple and flexible inventory manager for
tracking items, metadata, and stock quantities.

It is designed to work **standalone** or as a **shared inventory source** for other
LNbits extensions that need to reference products, prices, or availability
(for example PoS-style extensions).

## Overview

Inventory offers a centralized way to manage products inside LNbits while keeping
the data reusable across multiple extensions.

Instead of each extension maintaining its own product list, Inventory can act as
a single source of truth for item data and stock levels.

## Highlights

- Create, edit, and manage inventory items.
- Track stock quantities with quick inline updates.
- Tag items for easier filtering and organization.
- Share inventory data across extensions.
- Create, edit, and manage inventory items
- Track stock quantities with quick inline updates
- Store item metadata such as names, descriptions, and tags
- Tag items for easier filtering and organization
- Share inventory data across multiple LNbits extensions

## Typical Use Cases

- Managing products for point-of-sale or checkout extensions
- Reusing item data across multiple LNbits extensions
- Tracking availability and stock changes over time
- Keeping product information centralized and consistent

## Standalone and Integrations

The Inventory extension can be used on its own as a lightweight inventory manager.

When used alongside other LNbits extensions, it can provide:
- Shared access to item definitions
- Centralized stock tracking
- Consistent product metadata across different workflows

This makes it especially useful for PoS-style setups and other extensions that
depend on structured product data.

## Screenshots

![Inventory manager overview](static/1.png)
![Inventory item details](static/2.png)
![Inventory manager table](static/3.png)

## Notes

- Inventory focuses on item management and availability, not payments.
- Extensions that integrate with Inventory remain responsible for their own
payment logic and workflows.

## Powered by LNbits

[LNbits](https://lnbits.com) is a free and open-source lightning accounts system.

[![Visit LNbits Shop](https://img.shields.io/badge/Visit-LNbits%20Shop-7C3AED?logo=shopping-cart&logoColor=white&labelColor=5B21B6)](https://shop.lnbits.com/)
[![Try myLNbits SaaS](https://img.shields.io/badge/Try-myLNbits%20SaaS-2563EB?logo=lightning&logoColor=white&labelColor=1E40AF)](https://my.lnbits.com/login)
18 changes: 10 additions & 8 deletions config.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
{
"id": "inventory",
"version": "0.1.0",
"name": "Inventory",
"repo": "https://github.com/lnbits/inventory",
"short_description": "Shared Inventory extension",
"description": "",
"tile": "/inventory/static/inventory.png",
"min_lnbits_version": "1.4.0",
"donate": "donate@legend.lnbits.com",
"min_lnbits_version": "1.3.0",
"contributors": [
{
"name": "Tiago Vasconcelos",
"uri": "https://github.com/talvasconcelos",
"role": "Developer"
},
{
"name": "Ben Arc",
"uri": "https://github.com/arcbtc",
"role": "Dev"
}
],
"images": [
Expand All @@ -29,5 +27,9 @@
],
"description_md": "https://raw.githubusercontent.com/lnbits/inventory/main/description.md",
"terms_and_conditions_md": "https://raw.githubusercontent.com/lnbits/inventory/main/toc.md",
"license": "MIT"
"license": "MIT",
"paid_features": "",
"tags": ["Merchant", "Commerce"],
"donate": "",
"hidden": false
}
17 changes: 10 additions & 7 deletions description.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
An easily clonable extension that can be used a base for building a new extension.
Manage product inventories with stock tracking, pricing, and tax configuration.

THe usual development enviroment is:
Its functions include:

- Clone the myextension repo to your own repo
- Edit the cloned repos manifest to your details
- Install into LNbits
- Delete the cloned extensions folder in your LNbits install
- Create a symbolic link to the extensions folder, from the where you have pulled your extension `ln -s /where/you/cloned/myextension /your/lnbits/installl/lnbits/lnbits/extensions/`
- Creating inventories with items, prices, and descriptions
- Tracking stock quantities and reorder thresholds
- Configuring discounts and tax rates per item
- Assigning managers to help manage inventory
- Importing and exporting item data
- Logging all inventory updates for auditing

A comprehensive inventory management system for merchants and retailers who need to track products, pricing, and stock levels across their operations.
2 changes: 1 addition & 1 deletion static/js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -650,7 +650,7 @@ window.app = Vue.createApp({
async createManager(data) {
try {
const tagSelection =
data.tags === undefined ? this.inventory?.tags ?? [] : data.tags
data.tags === undefined ? (this.inventory?.tags ?? []) : data.tags
const payload = {
inventory_id: data.inventory_id,
name: data.name,
Expand Down
Loading