How to Build an Inventory Management Canvas App Using Power Apps and SharePoint Online

Share
How to Build an Inventory Management Canvas App Using Power Apps and SharePoint Online

1. Project Overview

An Inventory Management Canvas App helps businesses track products, stock levels, suppliers, reorder points, and item movement in one centralized system.

Instead of managing inventory through spreadsheets, emails, or manual updates, the business can use Power Apps to create a simple front-end app, SharePoint Online to store inventory data, Power Automate to send low-stock alerts, and Power BI to analyze stock performance.

This solution is practical for:

Small businesses
Warehouses
IT asset teams
Office supply tracking
Retail teams
Field service teams
Nonprofits
Enterprise departments

The app gives users a clear view of what products are available, which items are running low, who supplies each item, and when stock is added or removed.


2. Business Problem

Many businesses still manage inventory manually using spreadsheets or disconnected systems.

That creates common problems:

Stock levels are not updated in real time
Employees do not know which products are available
Managers miss reorder points
Suppliers are tracked separately
Stock movement history is unclear
Manual updates create errors
Low-stock items are discovered too late
Reporting is difficult

The biggest issue is visibility.

If inventory staff, managers, and admins do not have one reliable source of truth, the business can easily over-order, under-order, lose items, or delay operations.


3. Solution Summary

The Inventory Management Canvas App will allow users to:

View all products
Search and filter inventory
Add new products
Edit product details
Record stock-in transactions
Record stock-out transactions
Track supplier information
Monitor low-stock products
Send low-stock alerts automatically
View inventory reports
Scan product barcodes using mobile devices

The solution uses:

Power Apps Canvas App for the user interface
SharePoint Online Lists for data storage
Power Automate for low-stock notifications
Power BI for reporting and insights


4. Target Users

Inventory Staff

Inventory staff use the app daily to update stock movement.

They can:

Search products
Check stock levels
Record stock in
Record stock out
Scan barcodes
View low-stock items

Managers

Managers use the app to monitor inventory health.

They can:

Review stock levels
Approve reorder actions
View low-stock alerts
Track item movement
Analyze inventory trends

Admins

Admins manage the system setup.

They can:

Add product categories
Manage suppliers
Update reorder points
Maintain user access
Correct inventory records
Review reporting data


5. SharePoint List Structure

This app uses three main SharePoint lists:

  1. Products List
  2. Stock Transactions List
  3. Suppliers List

You can build the first version entirely with SharePoint Online. For larger enterprise-grade apps, Dataverse may be better, but SharePoint is a practical starting point.


6. SharePoint List 1: Products List

The Products List is the master inventory list.

Each row represents one product.

Column NameData TypePurpose
TitleSingle line of textProduct name
ProductIDSingle line of textUnique product code
SKUSingle line of textStock keeping unit
BarcodeSingle line of textBarcode value
CategoryChoiceProduct category
DescriptionMultiple lines of textProduct description
SupplierLookup to Suppliers ListMain supplier
UnitCostCurrencyCost per unit
UnitPriceCurrencySelling price if needed
CurrentStockNumberCurrent available quantity
ReorderPointNumberMinimum stock level before alert
ReorderQuantityNumberSuggested reorder quantity
UnitOfMeasureChoiceEach, Box, Case, Pack, Pallet
LocationSingle line of textWarehouse, room, shelf, bin
ProductImageImage or HyperlinkProduct image
StatusChoiceActive, Inactive, Discontinued
LastStockUpdateDate and timeLast stock movement date
NotesMultiple lines of textAdditional notes

Category examples:

Office Supplies
IT Equipment
Retail Products
Cleaning Supplies
Tools
Parts
Consumables

Status values:

Active
Inactive
Discontinued

UnitOfMeasure values:

Each
Box
Case
Pack
Pallet


7. SharePoint List 2: Stock Transactions List

The Stock Transactions List stores every inventory movement.

Each row represents a stock-in or stock-out transaction.

Column NameData TypePurpose
TitleSingle line of textTransaction title
TransactionIDSingle line of textUnique transaction number
ProductLookup to Products ListRelated product
ProductIDSingle line of textProduct code for easier reporting
TransactionTypeChoiceStock In, Stock Out, Adjustment
QuantityNumberQuantity moved
TransactionDateDate and timeDate of movement
PreviousStockNumberStock before transaction
NewStockNumberStock after transaction
ReasonChoicePurchase, Sale, Damage, Return, Correction
RequestedByPersonUser who requested movement
ProcessedByPersonUser who processed movement
DepartmentChoiceDepartment using the item
ReferenceNumberSingle line of textPO, invoice, ticket, or request number
NotesMultiple lines of textTransaction notes

Stock In
Stock Out
Adjustment

Purchase
Sale
Return
Damage
Lost
Correction
Transfer
Initial Stock


8. SharePoint List 3: Suppliers List

The Suppliers List stores vendor and supplier information.

Column NameData TypePurpose
TitleSingle line of textSupplier name
SupplierIDSingle line of textUnique supplier code
ContactNameSingle line of textMain contact person
ContactEmailSingle line of textSupplier email
PhoneSingle line of textSupplier phone
WebsiteHyperlinkSupplier website
AddressMultiple lines of textSupplier address
CitySingle line of textCity
StateSingle line of textState
CountrySingle line of textCountry
PaymentTermsChoiceNet 15, Net 30, Net 60
LeadTimeDaysNumberAverage delivery lead time
SupplierRatingNumberInternal rating
StatusChoiceActive, Inactive
NotesMultiple lines of textSupplier notes

9. App Screen Design

The app should include seven main screens.

Screen 1: Inventory Dashboard

The dashboard is the landing page.

It should show:

Total products
Total stock value
Low-stock items
Out-of-stock items
Recent stock transactions
Top categories
Quick buttons for Stock In and Stock Out

Recommended controls:

KPI cards
Gallery for low-stock items
Gallery for recent transactions
Navigation buttons
Search box
Category filter

Screen 2: Product Catalog

The Product Catalog screen displays all active products.

It should include:

Search box
Category dropdown
Supplier dropdown
Status filter
Product gallery
Stock status indicator
View details button
Edit button

Gallery should show:

Product name
SKU
Category
Current stock
Reorder point
Supplier
Location
Stock status

Screen 3: Add/Edit Product

This screen allows authorized users to create or update product records.

Fields:

Product name
Product ID
SKU
Barcode
Category
Supplier
Unit cost
Current stock
Reorder point
Reorder quantity
Unit of measure
Location
Status
Notes

Use an Edit Form for simple builds or Patch formulas for more customized builds.

Screen 4: Stock In / Stock Out

This is the most important operational screen.

Users can:

Select product
Enter transaction type
Enter quantity
Enter reason
Add notes
Submit transaction
Update stock level automatically

The screen should prevent users from removing more stock than is available.

Screen 5: Low Stock Alerts

This screen shows all products where current stock is less than or equal to the reorder point.

It should show:

Product name
Current stock
Reorder point
Suggested reorder quantity
Supplier
Supplier email
Lead time
Reorder button or notification button

Screen 6: Supplier Details

This screen shows supplier records and supplier-related products.

It should include:

Supplier name
Contact person
Email
Phone
Lead time
Supplier rating
Products supplied
Active/inactive status

Screen 7: Reports Screen

The Reports screen gives managers a quick summary.

It can include:

Stock value by category
Low-stock count
Stock movement by month
Top moving products
Products by supplier
Inventory aging idea
Link to Power BI dashboard


10. Power Fx Formulas

A. Search and Filter Formula

Use this formula for the Product Catalog gallery Items property.

SortByColumns(
    Filter(
        Products,
        Status.Value = "Active" &&
        (
            IsBlank(txtSearchProduct.Text) ||
            StartsWith(Title, txtSearchProduct.Text) ||
            StartsWith(SKU, txtSearchProduct.Text) ||
            StartsWith(ProductID, txtSearchProduct.Text)
        ) &&
        (
            IsBlank(ddCategory.Selected.Value) ||
            Category.Value = ddCategory.Selected.Value
        )
    ),
    "Title",
    SortOrder.Ascending
)

B. Low Stock Warning Formula

Use this for a label Text property.

If(
    ThisItem.CurrentStock <= ThisItem.ReorderPoint,
    "Low Stock",
    "In Stock"
)

C. Low Stock Label Color

Use this for a label Color property.

If(
    ThisItem.CurrentStock <= ThisItem.ReorderPoint,
    Color.Red,
    Color.Green
)

D. Low Stock Card Fill Color

Use this for a gallery template Fill property.

If(
    ThisItem.CurrentStock <= ThisItem.ReorderPoint,
    RGBA(255, 235, 235, 1),
    RGBA(255, 255, 255, 1)
)

Use this for the Low Stock gallery Items property.

SortByColumns(
    Filter(
        Products,
        Status.Value = "Active" &&
        CurrentStock <= ReorderPoint
    ),
    "CurrentStock",
    SortOrder.Ascending
)

F. Product Details Lookup

Use this to show the selected product details.

LookUp(
    Products,
    ID = galProducts.Selected.ID
)

G. Stock In Patch Formula

Use this when adding inventory.

With(
    {
        SelectedProduct: galProducts.Selected,
        Qty: Value(txtQuantity.Text),
        NewStock: galProducts.Selected.CurrentStock + Value(txtQuantity.Text)
    },
    If(
        Qty <= 0,
        Notify("Please enter a valid quantity.", NotificationType.Error),
        Patch(
            Products,
            SelectedProduct,
            {
                CurrentStock: NewStock,
                LastStockUpdate: Now()
            }
        );

        Patch(
            StockTransactions,
            Defaults(StockTransactions),
            {
                Title: "Stock In - " & SelectedProduct.Title,
                Product: {
                    Id: SelectedProduct.ID,
                    Value: SelectedProduct.Title
                },
                ProductID: SelectedProduct.ProductID,
                TransactionType: {Value: "Stock In"},
                Quantity: Qty,
                PreviousStock: SelectedProduct.CurrentStock,
                NewStock: NewStock,
                TransactionDate: Now(),
                Reason: {Value: ddReason.Selected.Value},
                ProcessedBy: User(),
                Notes: txtTransactionNotes.Text
            }
        );

        Notify("Stock added successfully.", NotificationType.Success);
        Reset(txtQuantity);
        Reset(txtTransactionNotes)
    )
)

H. Stock Out Patch Formula

Use this when removing inventory.

With(
    {
        SelectedProduct: galProducts.Selected,
        Qty: Value(txtQuantity.Text),
        NewStock: galProducts.Selected.CurrentStock - Value(txtQuantity.Text)
    },
    If(
        Qty <= 0,
        Notify("Please enter a valid quantity.", NotificationType.Error),

        Qty > SelectedProduct.CurrentStock,
        Notify("You cannot remove more stock than available.", NotificationType.Error),

        Patch(
            Products,
            SelectedProduct,
            {
                CurrentStock: NewStock,
                LastStockUpdate: Now()
            }
        );

        Patch(
            StockTransactions,
            Defaults(StockTransactions),
            {
                Title: "Stock Out - " & SelectedProduct.Title,
                Product: {
                    Id: SelectedProduct.ID,
                    Value: SelectedProduct.Title
                },
                ProductID: SelectedProduct.ProductID,
                TransactionType: {Value: "Stock Out"},
                Quantity: Qty,
                PreviousStock: SelectedProduct.CurrentStock,
                NewStock: NewStock,
                TransactionDate: Now(),
                Reason: {Value: ddReason.Selected.Value},
                ProcessedBy: User(),
                Notes: txtTransactionNotes.Text
            }
        );

        Notify("Stock removed successfully.", NotificationType.Success);
        Reset(txtQuantity);
        Reset(txtTransactionNotes)
    )
)

I. Conditional Formatting for Stock Status Icon

Use this for an icon Color property.

Switch(
    true,
    ThisItem.CurrentStock <= 0,
    Color.Red,
    ThisItem.CurrentStock <= ThisItem.ReorderPoint,
    Color.Orange,
    Color.Green
)

J. Stock Status Text

Use this for a label Text property.

Switch(
    true,
    ThisItem.CurrentStock <= 0,
    "Out of Stock",
    ThisItem.CurrentStock <= ThisItem.ReorderPoint,
    "Low Stock",
    "In Stock"
)

11. Barcode Scanner Option

A barcode scanner can make the app much easier to use on mobile devices.

Use cases:

Scan product barcode
Find product instantly
Record stock in
Record stock out
Verify item before movement
Reduce manual typing errors

Basic Barcode Scanner Logic

When barcode is scanned, store the barcode value and find the product.

Set(
    varScannedBarcode,
    First(BarcodeReader1.Barcodes).Value
);

Set(
    varScannedProduct,
    LookUp(
        Products,
        Barcode = varScannedBarcode
    )
);

If(
    IsBlank(varScannedProduct),
    Notify("Product not found.", NotificationType.Error),
    Navigate(scrProductDetails)
)

Product Details Screen Item Property

varScannedProduct

Practical Note

Barcode scanning works best when each product has a clean and unique barcode value in the Products List.


12. Power Automate Flow for Low-Stock Email Alerts

You can build a Power Automate flow that sends email alerts when products reach the reorder point.

Option 1: Scheduled Low-Stock Alert Flow

This is usually the safest option.

Flow Name

Inventory Low Stock Daily Alert

Trigger

Recurrence
Run once per day, for example 7:00 AM

Flow Steps

  1. Trigger: Recurrence
  2. Action: Get items from Products SharePoint List
  3. Filter Query: CurrentStock le ReorderPoint and Status eq 'Active'
  4. Condition: If low-stock products exist
  5. Create HTML table
  6. Send email to inventory manager
  7. Optional: Post message in Teams

Email Subject

Low Stock Inventory Alert

Email Body

Include:

Product name
SKU
Current stock
Reorder point
Supplier
Suggested reorder quantity
Location

Option 2: Instant Alert After Stock Update

Trigger the flow when an item is modified in the Products List.

Then check:

CurrentStock is less than or equal to ReorderPoint
Status equals Active
LowStockAlertSent is not Yes

This avoids repeated emails.

For this approach, add a Yes/No column to Products:

LowStockAlertSent

When the alert is sent, update this column to Yes.

When stock is replenished above reorder point, reset it to No.


13. Role-Based Access

A good inventory app should not give every user the same permissions.

Inventory Staff

Can:

View products
Record stock in
Record stock out
View suppliers

Cannot:

Delete products
Change reorder point
Change supplier master data

Manager

Can:

View all records
Approve adjustments
View reports
Receive alerts
Edit reorder points

Admin

Can:

Manage product records
Manage suppliers
Manage user access
Correct transactions
Edit app settings

Simple Role List

Create a SharePoint list called AppUsers.

Columns:

UserEmail — Single line of text
Role — Choice: Staff, Manager, Admin
Status — Choice: Active, Inactive

OnStart or App Start Formula

Set(
    varCurrentUserRole,
    LookUp(
        AppUsers,
        UserEmail = User().Email && Status.Value = "Active",
        Role.Value
    )
)

Show Admin Button Only to Admins

varCurrentUserRole = "Admin"

Manager or Admin Access

varCurrentUserRole in ["Manager", "Admin"]

14. Power BI Reporting Idea

Power BI can connect to the SharePoint lists and create an inventory dashboard.

Page 1: Inventory Overview

KPIs:

Total products
Total stock value
Low-stock count
Out-of-stock count
Total suppliers
Monthly stock movement

Page 2: Stock Movement

Visuals:

Stock in vs stock out trend
Top moving products
Transactions by reason
Inventory movement by department
Stock adjustment history

Page 3: Supplier Performance

Visuals:

Products by supplier
Average lead time
Low-stock products by supplier
Supplier rating
Reorder value by supplier

Page 4: Low Stock and Reorder Planning

Visuals:

Items below reorder point
Suggested reorder quantities
Reorder value estimate
Days since last update
Critical products

Useful Power BI Measures

Total Stock Value:

Total Stock Value =
SUMX(
    Products,
    Products[CurrentStock] * Products[UnitCost]
)

Low Stock Count:

Low Stock Count =
COUNTROWS(
    FILTER(
        Products,
        Products[CurrentStock] <= Products[ReorderPoint]
    )
)

Out of Stock Count:

Out of Stock Count =
COUNTROWS(
    FILTER(
        Products,
        Products[CurrentStock] <= 0
    )
)

15. Delegation and Performance Best Practices

Inventory apps can grow quickly. Plan for performance early.

Best Practices

Use indexed SharePoint columns for common filters
Filter by delegable columns when possible
Avoid loading all records into collections unnecessarily
Use StartsWith instead of complex Search when working with larger SharePoint lists
Limit galleries to active records first
Use simple filters before complex conditions
Archive old stock transactions if the list grows very large
Use separate transaction history list instead of storing history inside one product field
Avoid too many lookup columns if performance becomes slow
Use Dataverse for larger enterprise-grade requirements

Columns to Index in SharePoint

Products List:

ProductID
SKU
Barcode
Category
Status
Supplier
CurrentStock
ReorderPoint

Stock Transactions List:

ProductID
TransactionType
TransactionDate
ProcessedBy
Reason

Suppliers List:

SupplierID
Status
Country


16. Common Mistakes to Avoid

Mistake 1: Using One SharePoint List for Everything

Do not put products, suppliers, and transactions into one list.

Use separate lists for cleaner structure and better reporting.

Mistake 2: Updating Product Stock Without Transaction History

Every stock movement should create a transaction record.

Without history, managers cannot audit changes.

Mistake 3: Allowing Negative Stock

The app should prevent users from removing more stock than available unless a manager or admin allows controlled adjustments.

Mistake 4: No Reorder Point

Every important product should have a reorder point.

Without reorder points, low-stock alerts are not useful.

Mistake 5: No Role-Based Access

Inventory apps often need controls around who can update product data and who can only record movement.

Mistake 6: Ignoring Delegation

A formula may work with 200 records but fail or become unreliable with thousands of records.

Design with delegation in mind.

Mistake 7: Not Planning Reporting Early

Power BI reporting becomes easier when the data model is clean from the beginning.


17. One-Page Infographic Content

Infographic Title

Inventory Management Canvas App Blueprint

Subtitle

Track products, stock levels, suppliers, reorder points, and item movement using Power Apps and SharePoint Online.

Sections

1. Business Problem

Manual inventory tracking causes stock errors, missed reorder points, and poor visibility.

2. Target Users

Inventory Staff
Managers
Admins

3. Data Sources

Products List
Stock Transactions List
Suppliers List

4. Main Screens

Inventory Dashboard
Product Catalog
Add/Edit Product
Stock In / Stock Out
Low Stock Alerts
Supplier Details
Reports Screen

5. Key Features

Search and filter products
Track current stock
Record stock movement
Prevent negative stock
Low-stock alerts
Barcode scanning
Supplier lookup
Power BI reporting

6. Power Automate Integration

Daily low-stock email alert
Teams notification
Reorder reminder
Stock update notification

7. Power BI Reporting

Stock value
Low-stock count
Stock movement trend
Supplier performance
Reorder planning

8. Best Practices

Use separate lists
Index key columns
Track every transaction
Use role-based access
Avoid delegation issues
Keep formulas clean

9. Final Workflow

Product added → Stock updated → Transaction recorded → Low stock checked → Alert sent → Manager reviews → Power BI dashboard updated

Branding

Share MS Tech Solutions LLC
Share • Automate • Innovate • Transform


18. YouTube Title and Script Outline

YouTube Title

How to Build an Inventory Management App in Power Apps and SharePoint

Alternative Titles

Build an Inventory Tracker with Power Apps
Power Apps Inventory Management System Step-by-Step
Create a Stock Management App with Power Apps and SharePoint
Power Apps Canvas App Project: Inventory Management System

YouTube Script Outline

Intro

In this video, we are building a practical Inventory Management Canvas App using Power Apps and SharePoint Online.

This app will help users track products, stock levels, suppliers, reorder points, and stock movement.

Section 1: Business Problem

Explain why spreadsheets are not enough for growing inventory needs.

Section 2: Solution Architecture

Show the architecture:

Power Apps
SharePoint Lists
Power Automate
Power BI

Section 3: SharePoint List Setup

Create:

Products List
Stock Transactions List
Suppliers List

Explain the important columns.

Section 4: Build the Power Apps Screens

Build:

Dashboard
Product Catalog
Add/Edit Product
Stock In / Stock Out
Low Stock Alerts
Supplier Details
Reports Screen

Section 5: Add Power Fx Logic

Cover:

Search and filter
Low-stock labels
Stock in Patch
Stock out Patch
Conditional formatting

Section 6: Add Barcode Scanner

Show how barcode scanning can locate products quickly.

Section 7: Add Power Automate Low-Stock Alert

Create a daily low-stock notification flow.

Section 8: Reporting with Power BI

Show reporting ideas for managers.

Section 9: Best Practices

Discuss delegation, role-based access, and transaction history.

Closing

This project is a strong beginner-to-intermediate Canvas App because it combines real business logic, SharePoint data, Power Fx formulas, automation, and reporting.


19. Blog Article Outline

Blog Title

How to Build an Inventory Management Canvas App Using Power Apps and SharePoint Online

SEO Title

Power Apps Inventory Management System: Step-by-Step Canvas App Guide

Blog Sections

  1. Introduction
  2. Business Problem
  3. Solution Overview
  4. Target Users
  5. SharePoint List Architecture
  6. Products List Design
  7. Stock Transactions List Design
  8. Suppliers List Design
  9. App Screens
  10. Power Fx Formulas
  11. Barcode Scanner Option
  12. Power Automate Low-Stock Alerts
  13. Role-Based Access
  14. Power BI Reporting Ideas
  15. Delegation and Performance Best Practices
  16. Common Mistakes to Avoid
  17. Final Architecture Workflow
  18. Final Thoughts

Blog Opening Paragraph

Inventory management becomes difficult when stock levels, product details, supplier information, and item movement are tracked in spreadsheets or disconnected tools. A Power Apps Canvas App connected to SharePoint Online can give businesses a simple, modern, and mobile-friendly way to manage inventory from one place.

Blog Closing Paragraph

An Inventory Management Canvas App is one of the best practical Power Apps projects because it solves a real business problem. By combining Power Apps, SharePoint Online, Power Automate, and Power BI, businesses can improve stock visibility, reduce manual errors, and make better inventory decisions.


20. Final Architecture Workflow

The final solution works like this:

User opens Power Apps
User searches or scans product
User records stock in or stock out
Power Apps updates Products List
Power Apps creates Stock Transaction record
Power Automate checks low-stock items
Email or Teams alert is sent
Managers review stock levels
Power BI dashboard shows inventory trends


Final Thoughts

An Inventory Management Canvas App is a strong real-world Power Apps project because it combines business process design, SharePoint data modeling, Power Fx formulas, automation, barcode scanning, role-based access, and reporting.

For small businesses, it can replace spreadsheets and manual tracking.

For enterprise teams, it can become a department-level inventory solution that improves visibility, accountability, and decision-making.

The key is to design the data model first, then build the app around the business process.

Share MS Tech Solutions LLC
Share • Automate • Innovate • Transform

Read more