Sales 360 Store Manager Extension Manual

October 21, 2025 - Reading time: 85 minutes

Sales 360 Store Manager Extension Manual.

Overview

The Store Manager extension provides multi-store/multi-tenant functionality for the Sales 360 admin panel by allowing a main administrator to assign specific stores (or tenants) to individual admin users. Once assigned, a user's administrative view will be filtered, restricting their access to only the data (such as products, orders, customers, and dashboard statistics) belonging to their assigned store.

This document assumes the core file structure and logic of the extension remain the same as the provided script, just with "Sales 360" terminology applied.

I. Installation

The MultiStore.sh script generates a single installation file: storemanager.ocmod.zip.

  1. Access the Sales 360 Admin Panel: Log in to your Sales 360 administration area.

  2. Go to Extension Installer: Navigate to Extensions > Installer.

  3. Upload the File: Click the Upload button and select the storemanager.ocmod.zip file.

  4. Wait for Success: You should see a success message once the file is uploaded and the module is added to the system.

  5. Go to Extensions: Navigate to Extensions > Extensions (or Extensions > Modules).

  6. Find and Install:

    • Filter the list to select Modules.

    • Find Store Manager in the list.

    • Click the Install button ($\text{+ icon}$) next to it.

  7. Database Setup: The installation process creates the necessary storemanager_user_store database table and registers an event hook to enable the filtering logic.


II. Configuration and Usage

After installation, the module must be configured and users must be assigned to stores.

1. Initial Setup and Status

  1. Edit the Module: On the Extensions > Extensions page, find the Store Manager module and click the Edit button ($\text{pencil icon}$).

  2. Module Status: At the top right of the module configuration page, use the Enable/Disable Toggle.

    • Enabled: The store filtering logic for assigned users is active, restricting products, orders, etc., by store.

    • Disabled: The store filtering logic is inactive; all users see all data.

  3. Current Store Access: A banner will show your current access status:

    • All Stores (Administrator): You have Full Access (Store ID 0) and can see all data.

    • Assigned Store: You are Restricted to that store's data (e.g., Restricted to Store ID: 1).


2. Managing Stores and User Assignments

The main management interface is divided into two tabs: Stores and Users.

A. Stores Tab (Primary Management)

This tab is used to manage the existing Sales 360 store entries and assign admin users to them.

  • Add/Edit Store: Use the Add Store button or the Edit button ($\text{edit icon}$) to manage the store's Name and URL in the Sales 360 system.

  • Delete Store: Use the Delete button ($\text{trash icon}$). Note: Deleting a store also deletes its assignments from the storemanager_user_store table.

  • Manage Users: Click Manage Users ($\text{users icon}$) next to a store to open a modal.

    • Assignment: Check or uncheck the box next to a user's name to assign or unassign them to the specific store.

    • Restriction: The system logic restricts a user to a single store based on the first assignment found.

B. Users Tab (Reporting View)

This tab provides a user-centric view to verify which stores have been assigned to which admin users.

  • It shows the list of users and their assigned stores (e.g., "Store A, Store B").

  • Management actions (assignment/unassignment) must be performed via the Stores tab.


III. System Functionality (Filtering Logic)

When a restricted admin user is logged into Sales 360, the event handler intercepts core system functions to filter the results based on their assigned store ID or store name.

Sales 360 Core Function (Route) Data Filtered By Logic Applied
Catalog Products (catalog/product.getProducts) Store ID Filters products using the product_to_store mapping table.
Sales Orders (sale/order.getOrders) Store Name Filters orders where the order's store_name matches the user's assigned store name.
Customer List (customer/customer.getCustomers) Store ID Filters customers where the customer's store_id matches the user's assigned store ID.
Dashboard Order Total (sale/order.getTotalOrders) Store Name Recalculates the total count for orders based on the assigned store's name.
Dashboard Total Sales (extension/opencart/report/sale.getTotalSales) Store Name Recalculates the total sales amount based on the assigned store's name.
Dashboard Total Customers (customer/customer.getTotalCustomers) Store ID Recalculates the total number of customers based on the assigned store ID.

Important Note: The filtering is applied after the core Sales 360 functions retrieve the full data set. The logic relies on matching the internal function routes listed above. Any admin pages or reports not specifically listed above may still show unfiltered, global data.

HashPalLabsBlog

At Hashpal Labs, we develop privacy-focused scripts and tools with no trackers, spyware, or ads. We offer free initial security consultations, certified cybersecurity training, and code auditing.

Our flagship product is the Sales 360 Platform, a comprehensive, privacy-first solution designed to power sales and marketing for your enterprise, restaurant, grocery store, small business, e-commerce shop, logistics operation, HRMS service, or general service provider, helping your team grow efficiently and securely.

It's also ideal for influencers looking to build and scale their own sales channels or businesses. We offer continuous mentorship and dedicated support to all our clients.

To connect with us visit:https://www.hashpallabs.com