Service - Inventory Manager: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 3: Line 3:
Each inventory type is handled by a [[Service - Inventory (handlers)]] service.
Each inventory type is handled by a [[Service - Inventory (handlers)]] service.


The specific identification method is used for accounting and tracking individual units of inventory, this applies COGS individually to each unit and allows for transparent supply chain at a per unit level.
The ''specific identification method'' is used for accounting and tracking individual units of inventory, this applies COGS individually to each unit and allows for transparent supply chain at a per unit level. Fractional selling of units is not allowed, so when inputting inventory should input at the smallest divisible unit it can be sold at.  


The Inventory Manager service handles detail shared by all Inventory Handler services.
The Inventory Manager service handles detail shared by all Inventory Handler services.
Line 23: Line 23:
canDelete: false,
canDelete: false,
belongTo: {  
belongTo: {  
serviceTag: "user",
serviceTag: "Business",
objectType: "user"
objectType: "business"
},
},
addOnDataStructure: [
addOnDataStructure: [
Line 63: Line 63:
canDelete: false,
canDelete: false,
belongTo: {  
belongTo: {  
serviceTag: "user",
serviceTag: "Business",
objectType: "user"
objectType: "business"
},
},
addOnDataStructure: [],
addOnDataStructure: [],
Line 71: Line 71:
storageType: "graph",
storageType: "graph",
graphServerTag: "GraphHandler"
graphServerTag: "GraphHandler"
},
dynamoDB: {
storageType: "dynamoDB",
"tableName": "inventoryUnit",
}
}
     },
     },
Line 77: Line 81:
type: "string",
type: "string",
randomOnCreate: true,
randomOnCreate: true,
storageResourceTags: ['myGraph']
storageResourceTags: ['myGraph', 'inventoryUnit']
},
},
cost: { // sums all costs, or COGS for the unit
cost: { // sums all costs, or COGS for the unit
Line 94: Line 98:


* A single unit of inventory
* A single unit of inventory
* Use dynamo table to perform actions such as reserving the unit to a unique flow which moves it's location before releasing the reservation


== Object Relationships ==
== RelationshipSchemas ==
 
=== isInventoryTemplate ===
 
<syntaxhighlight lang="JavaScript">
{
isInventoryTemplate: {
storageResources: {
myGraph: {
storageType: "graph",
graphServerTag: "GraphHandler"
}
},
links: [
{
storageResourceTags: ["myGraph"],
from: {
objType: {
serviceTag: "inventoryManager",
objectType: "inventory"
},
linkType: "many",
},
to: {
objType: {
serviceTag: "inventoryTemplate",
objectType: "inventoryTemplate"
},
linkType: "one"
}
}
]
}
}
</syntaxhighlight>


=== isInventoryTemplate ===
=== isInventory ===


<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">

Latest revision as of 14:25, 19 January 2026

Overview

Each inventory type is handled by a Service - Inventory (handlers) service.

The specific identification method is used for accounting and tracking individual units of inventory, this applies COGS individually to each unit and allows for transparent supply chain at a per unit level. Fractional selling of units is not allowed, so when inputting inventory should input at the smallest divisible unit it can be sold at.

The Inventory Manager service handles detail shared by all Inventory Handler services.

Repository

....

Object Schemas

Additional Information
Per Service Schemas

objType

inventory

{
	objectType: "inventory",
	canDelete: false,
	belongTo: { 
		serviceTag: "Business",
		objectType: "business"
	},
	addOnDataStructure: [
		{
		  type: "attributeTree",    
		  attributeTreeTag: "inventoryAttributes"
		},
	],
	storageResources: {
		myGraph: {
			storageType: "graph",
			graphServerTag: "GraphHandler"
		}
    },
    fieldNames: {
		inventoryId: {
			type: "string",
			randomOnCreate: true,
			storageResourceTags: ['myGraph']
		},
    },
    identifiers: [
		{
			type: "identifier",
			fieldName: "inventoryId"
		}
    ]
}
  • Describes an inventory descriptor, or SKU, interchangeable units (fungible) are classified under the same inventory instance

inventoryUnit

{
	objectType: "inventoryUnit",
	canDelete: false,
	belongTo: { 
		serviceTag: "Business",
		objectType: "business"
	},
	addOnDataStructure: [],
	storageResources: {
		myGraph: {
			storageType: "graph",
			graphServerTag: "GraphHandler"
		},
		dynamoDB: {
			storageType: "dynamoDB",
			"tableName": "inventoryUnit",
		}
    },
    fieldNames: {
		inventoryUnitId: {
			type: "string",
			randomOnCreate: true,
			storageResourceTags: ['myGraph', 'inventoryUnit']
		},
		cost: { // sums all costs, or COGS for the unit
			type: "numeric", 
			storageResourceTags: ['myGraph']
		},
    },
    identifiers: [
		{
			type: "identifier",
			fieldName: "inventoryUnitId"
		}
    ]
}
  • A single unit of inventory
  • Use dynamo table to perform actions such as reserving the unit to a unique flow which moves it's location before releasing the reservation

RelationshipSchemas

isInventory

{
	isInventory: {
		storageResources: {
			myGraph: {
				storageType: "graph",
				graphServerTag: "GraphHandler"			
			}
		},
		links: [
			{
				storageResourceTags: ["myGraph"],
				from: {
					objType: {
						serviceTag: "inventoryManager",
						objectType: "inventoryUnit"
					},
					linkType: "many",
				},
				to: {
					objType: {
						serviceTag: "inventoryManager",
						objectType: "inventory"
					},
					linkType: "one"
				}
			}
		]
	}
}

Media

  • all inventory instances link to Media

Working documents

Inventory Manager