Service - Stock Location Standard: Difference between revisions

From Izara Wiki
Jump to navigation Jump to search
(Created page with "= Overview = Handler service for basic stock locations that hold a quantity remaining per stock location and can reserve stock when building orders. One Stock Location can service many SellOffers, so each Stock Location keeps per SellOfferId list of quantities remaining = Repository = https://bitbucket.org/izara-market-products/izara-market-products-stock-location-standard = DynamoDB tables = == Standard Config Table Per Service == === Configuration tags === <...")
 
No edit summary
Line 1: Line 1:
= Overview =
= Overview =


Handler service for basic stock locations that hold a quantity remaining per stock location and can reserve stock when building orders. One Stock Location can service many SellOffers, so each Stock Location keeps per SellOfferId list of quantities remaining
Handler service for basic stock locations that hold a quantity remaining per stock location and can reserve stock when building orders. One Stock Location can service many SellOffers, so each Stock Location keeps per SellOfferId list of quantities remaining.


= Repository =
= Repository =
Line 37: Line 37:
</syntaxhighlight>
</syntaxhighlight>


= Graph database =  
== SellOfferStock ==


== [[Service - Products Graph]]==
Remaining stock for one SellOffer.
 
=== Nodes ===


<syntaxhighlight lang="JavaScript">
<syntaxhighlight lang="JavaScript">
{
{
nodeLabel: "{stockLocationSharedLib.consts.STOCKLOCATION_GRAPH_NODE_LABEL}",
sellofferId
stockTotal
stockReserved
stockAvailable
}
}
</syntaxhighlight>
</syntaxhighlight>


=== Relationships ===
* partition key: sellofferId
 
* sort key: (none)
<syntaxhighlight lang="JavaScript">
{
relationshipType: "{stockLocationSharedLib.atStockLocationGraphRelationshipType()}", // "at_StockLocation"
schema: {
immutable: true,
restrictProperties: true,
properties: {
originTimestamp: //timestamp the request to create/change this relationship was sent
},
}
}
</syntaxhighlight>
* connects sellOffer to stockLocation


== Translate Ids - stockLocation to sellOffer ==
= Notes =


* from stockLocationId to sellOfferIds
* When finding or reserving stock for a SellOffer, query graph to find the StockLocation for the sellOffer (or have it saved in the SellOffer object), then query dynamoDB for stock levels
* A SellOffer's link to StockLocation is immutable, cannot be changed


= Working documents =
= Working documents =

Revision as of 14:39, 30 April 2023

Overview

Handler service for basic stock locations that hold a quantity remaining per stock location and can reserve stock when building orders. One Stock Location can service many SellOffers, so each Stock Location keeps per SellOfferId list of quantities remaining.

Repository

https://bitbucket.org/izara-market-products/izara-market-products-stock-location-standard

DynamoDB tables

Standard Config Table Per Service

Configuration tags

{
	configTag: "StockLocationHandlerServiceNameTag"
	configKey: "StockLocationHandlerServiceNameTag"
	configValue: xxx // this own services ServiceNameTag, eg "StockLocationStandard"
}
{
	configTag: "ProductGraphServiceName"
	configKey: "ProductGraphServiceName"
	configValue: xxx // eg: "ProductGraph"
}
{
	configTag: "StockLocationManagerServiceName"
	configKey: "StockLocationManagerServiceName"
	configValue: xxx // eg: "StockLocationManager"
}

SellOfferStock

Remaining stock for one SellOffer.

{
	sellofferId
	stockTotal
	stockReserved
	stockAvailable
}
  • partition key: sellofferId
  • sort key: (none)

Notes

  • When finding or reserving stock for a SellOffer, query graph to find the StockLocation for the sellOffer (or have it saved in the SellOffer object), then query dynamoDB for stock levels
  • A SellOffer's link to StockLocation is immutable, cannot be changed

Working documents

Stock Location Standard