Hosting Architecture: Each Shop is hosted on a separate server within the same network. The Godown (Main Warehouse) and all Shops are running on independent servers, with the Godown acting as the central hub for inventory, purchases, and accounting, while the Shops manage their sales and stock independently.
Request for Guidance on Setting Up Godown (Warehouse) and Shops with Stock Transfers and Accounting
Overview of the Requirement:
I am in the process of setting up ERPNext for a business where Godown (Warehouse) manages local purchases, stock, and accounting functions, while multiple Shops operate independently. The main goal is to transfer stock from Godown to each Shop and handle sales in the shops. Godown will manage local purchases and accounting while syncing stock and sales data from each shop.
Godown (Warehouse):
- Acts as the central inventory hub for all products.
- Handles local purchases and all accounting functions (accounts payable, purchases, etc.).
- Transfers stock to individual shops based on demand.
- Receives sales and stock data from all shops.
- Tracks Shops as sublocations (e.g., Shop1, Shop2).
Shops: - Each Shop has its own Warehouse to manage its own stock.
- Shops handle Sales Invoices, Stock Reconciliation, and Sales Returns.
- Shops do not handle purchases, only receiving goods from Godown via Stock Transfers.
- Synchronizes sales data and stock updates back to Godown.
Multitenancy: - Each shop will operate as a separate site (e.g., shop1.local, shop2.local) and sync with Godown.
- Godown should have access to the sales and stock data of all shops.
What I Need Help With:
I have set up ERPNext v14, but I am encountering a few challenges and would like guidance on how to proceed. I’m open to upgrading to ERPNext v15 if necessary.
- Stock Transfers from Godown to Shops:
- How can I automate the stock transfer process from Godown to shops based on stock levels, demand, or triggers? Is there a way to automate stock replenishment from Godown to shops?
- Sales Data Sync from Shops to Godown:
- How can I automate the synchronization of sales data from the shops to Godown? Should I use custom scripts, scheduled jobs, or another method?
- Sublocation Tracking in Godown:
- I want Godown to track each shop as a sublocation. How do I set up Godown to manage shops as sublocations so it can track the stock levels and sales separately for each shop?
- Handling Accounting in Godown:
- How can I ensure Godown handles local purchases, accounts payable, and payments? What is the best way to set up Godown to manage these functions while ensuring the shops only handle sales and stock?
- Permissions and Access Control:
- How can I set up permissions so that:
- Godown users can view sales and stock data from all shops.
- Shop users can only access their own sales and stock data without interfering with other shops.
- How can I set up permissions so that:
- Multitenancy and Shop Independence:
- Each shop operates as a separate site. Do I need to adjust any multitenancy configurations for this setup? How can I ensure seamless data synchronization across all shops and Godown?
- ERPNext Version:
- Currently, I have ERPNext v14 installed, but I am open to upgrading to ERPNext v15 if necessary. Would upgrading to v15 provide better features or compatibility for this setup? Should I proceed with v14 or upgrade to v15 for my specific requirements?
Expected Outcome:
I would like to achieve the following with the help of the ERPNext community:
- Godown (Main Warehouse) handles all local purchases and accounting while transferring stock to the shops.
- Each Shop manages its own sales, inventory, and stock reconciliations but does not handle purchases.
- Sales data and stock levels from each shop are synchronized back to Godown for accurate record-keeping.
- Godown tracks Shops as sublocations for proper inventory management.
- The system operates with multitenancy, where each shop runs independently, but data is synced to Godown for reporting and accounting purposes.
Flowchart: ERPNext Data Distribution
Here is the flowchart outlining the process of Stock Transfers, Sales Sync, and Sublocation Tracking between Godown and the Shops:
Flow Explanation:
Godown (Main Warehouse):
Manages Local Purchases & Accounting: Godown is responsible for handling local purchases from suppliers and all related accounting activities (accounts payable, payments, etc.).
Stock Transfers to Shops: Godown manages the stock transfers to various shops based on the inventory needs. This involves sending stock from Godown to the respective shop’s warehouse.
Receives Sales Data & Stock Updates: After sales are made in shops, Godown receives sales data (Sales Invoices) and stock adjustments (e.g., stock sold or reconciled) from the shops.
Shops (Shop1, Shop2, etc.):
Receives Goods from Godown: Each shop receives stock from Godown via stock transfers. The goods are transferred based on shop’s inventory needs.
Manages Sales & Stock: Shops handle sales transactions (Sales Invoices) and stock management independently. They track and manage their own stock levels.
Syncs Sales Data & Stock Updates to Godown: Shops synchronize their sales data and stock updates back to Godown. This ensures that Godown remains updated on each shop’s sales and inventory.
Two-Way Synchronization:
Stock Transfer (Godown → Shops): Goods are moved from Godown to Shops to ensure that shops have sufficient stock.
Sales & Stock Sync (Shops → Godown): After sales, shops send the data to Godown to update inventory and sales records in the central warehouse.
This two-way flow ensures that Godown and Shops are always in sync, with Godown having control over stock replenishment and Shops managing daily operations and sales.
Additional Information:
- ERPNext Version: v14 (considering upgrade to v15)
- Operating System: Ubuntu 20.04
- Hosting: Shops and Godown are hosted on separate servers in the same network.
Conclusion:
I would appreciate any guidance on how to configure ERPNext for the above requirements, and any suggestions regarding upgrading to v15 to ensure smooth operation.
Thank you in advance for your help!