I have a Warehouse Management Software with Stock and orders manager, its developed at 50%, we need to finnish, its based in a application named Stock Manager Advanced.
This is the analysis:
There is 3 types of users at our system:
1. Admin and employers than use WMS. Can access to any Seller or company account.
2. Sellers that send us stock to be distributed, every seller have access to his own company items, stock inventory and shipments. (this type of customer are not actually implemented at POS, so it must be implemented and designed at Database)
3. Customers, they dont have anything to do at our WMS, its the customers that receive products from Sellers and this info should be imported with Shipments as shipping customers address
SO we will need a new role for Sellers, it can access to view inventory and inbox and outbox shipments and create inbox shipments in Production status
Multi seller feature:
I need using this script to convert in a system to manage a warehouse with different sellers.
1. We need make this script multi company, it means you should create Superadmin profiles with access to any companies and allow add customers that only have access to his own company, so almost all tables need the company associated with them, if its easier i think we can use Suppliers as entity to be Sellers/Companies.
2. Allow too to have a view of all sellers to allow make reports of all the sellers, profits, shipments processed of the full content warehouse/s
3. We need to adapt script to allow manage a warehouse where we offer fulfilment service to several sellers
Every customer is a company that we handle stocks, Inbound shipments (Purchases) and Outbound shipments (Sales/Shipments)
How are calculated Storage fees, Picking fees,Pack fees and Shipping cost. If shipment is COD (Cash on delivery) it have a fee, its a percentage of the total price to receive when shipment is delivered with a minimum cost, this params should be stored at the Seller profile and assigned by an admin.
Calculating Shipping cost:
We need a table of couriers with a default shipment weight assigned to them or type of delivery
Each seller has associated a Courier by default by weight of the shipmentL 50r, 100r, 1kg, 2kg, and Default for the rest. I will provide shipping table rates by weight for each courier to calculate Shipping Cost for every shipment.
If in the outbound shipment csv file is not specified a courier we will use the courier at the seller profile. We can select courier by three params specified by default: weight or if its urgent, or by SKU.
1. Correos from 0 to 50 grams
2. ASM courier for more than 50 grams
3. Correos Express for urgent mail
4. SEUR for urgent mail for urgent mail
Each seller can be configured courier preferences as admin configure it.
Courier can be assigned too by SKU too. So there is three way to assign by courier service to the shipments: Weight, Shipping method and SKU.
Should have a shipping table rates by weight associated to allow us calculate shipping costs.
Working with Inbound shipments and Calculating Storage fees:
1. We should import by csv Inbound shipments and allow enter it manually as its now.
We only can allow to import Inbound shipments of products that we have already in the inventory.
2. This should increase stock of the product. and this should update or additions to the needed tables to record how many days we have in stock every SKU to allow calculate storage fees by day and weight. This as we suggest below with warehouse_activity table can be registered creating a row by product with arrival date.
3. Inbound shipments (it should be different table than Purchases) can have several states and management in flow (production -> on way -> in warehouse)
WHen a seller have stock ready to be shipped to a warehouse, they can import it in Production State, when seller shippit it to our warehouse, they can select shipment and change it to "on way" status. WHen we receive it we change status in warehouse and confirm quantity received, if there is any missing item we should allow to record this at that inbound shipment.
Once its "in warehouse" and confirm stocks received system have to add inbound shipment to the actual inventory of each product that come in the shipment.
Note that We need to invoice our services based in Storage, Picking and Pack and Shipping cost, to do that we should calculate all fees based in the Inbound shipments received and outbounds shipments sent
Storage is calculated by day and grams since a product is received as inbound shipment in our warehouse and upto this product is shipped as outbound shipment.
To manage all this calculations i think will be good to create a table with movement of products to register when a product is received and a product is sent