Service - Catalog Standard: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
| (10 intermediate revisions by 2 users not shown) | |||
| Line 5: | Line 5: | ||
= Repository = | = Repository = | ||
https://bitbucket.org/ | https://bitbucket.org/izara-market-services/izara-market-catalogs-catalog-standard | ||
= DynamoDB tables = | = DynamoDB tables = | ||
| Line 18: | Line 18: | ||
configKey: "CatalogServiceNameTag" | configKey: "CatalogServiceNameTag" | ||
configValue: xxx // this own services CatalogServiceTag, eg "CatalogStandard" | configValue: xxx // this own services CatalogServiceTag, eg "CatalogStandard" | ||
} | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="JavaScript"> | |||
{ | |||
configTag: "CatalogGraphServiceName" | |||
configKey: "CatalogGraphServiceName" | |||
configValue: xxx // eg: "CatalogGraph" | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 47: | Line 55: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= | = Graph database = | ||
== [[Service - Catalog Graph]]== | == [[Service - Catalog Graph]]== | ||
=== | === Nodes === | ||
==== catalog ==== | ==== catalog ==== | ||
Is an origin/home/top-level node, one per catalog, allows for top level categories in that catalog to be point to a single origin node. | |||
* NodeIdentifierLabels: catalog | |||
* NodeIdentifierProperties: catalogId (random uuid) | |||
Properties: | Properties: | ||
# searchType | # searchType: sellOffer|product|variantProduct, will match the setting in the catalog service | ||
#: product|variant|variantProduct | # filter: full filter for the catalog, will combine all child categoryNode filters with the setting in the catalog service | ||
# filter | # requiredData: full requiredData for this catalog, will match the setting in the catalog service | ||
# requiredData | ==== catalogSettings ==== | ||
# categoryTreeServiceName | Versioned data Holding the editable settings for a catalog. | ||
Properties: | |||
# searchType: product|variant|variantProduct | |||
# filter: stringified object containing default search result filter | |||
# requiredData: stringified object containing default search result requiredData | |||
# categoryTreeServiceName: eg: "CategoryTreeStandard" | |||
== [[Service - Translations Graph]] == | == [[Service - Translations Graph]] == | ||
=== | === Nodes === | ||
==== | ==== CatalogName ==== | ||
* NodeIdentifierLabels: catalogName | |||
* NodeIdentifierProperties: catalogId | |||
= Ideas = | = Ideas = | ||
* One filter that will normally be on, but could be removed, is to only show items that have available quantity, this will tie into the locationtreenodeid. | * One filter that will normally be on, but could be removed, is to only show items that have available quantity, this will tie into the locationtreenodeid. | ||
= Structure from Normalize FrontEnd = | |||
<syntaxhighlight lang="JavaScript"> | |||
//in versionedData | |||
versionedData = { | |||
objTypeSetting: { | |||
serviceTag: "XX", | |||
objectType: "xx" | |||
}, | |||
filterSetting: { | |||
objType: { | |||
serviceTag: "XX", | |||
objectType: "xx" | |||
}, | |||
initialLogicalElementId: "xxxx", | |||
logicalElements: { | |||
xxxx: { | |||
logicalElementType: "logical" | "childComplexFilter" | etc, | |||
previousLogicalElmentId: null | "xxxx", | |||
nextLogicalElementId: null | "xxxx", | |||
// other params depend on logicalElementType | |||
} | |||
} | |||
}, | |||
requiredDataSetting: { | |||
fieldName: "xxx" | |||
}, | |||
//* add more new ideas | |||
//* traversalsStepSetting: {}, | |||
//* valueUserTagsSetting: {} | |||
} | |||
//* in properties of node | |||
properties = { | |||
objType: { | |||
serviceTag: "XX", | |||
objectType: "xx" | |||
}, | |||
requiredData: [ | |||
{ | |||
fieldName: "xxx" | |||
} | |||
], | |||
filterAwaiting: { | |||
objType: { | |||
serviceTag: "XX", | |||
objectType: "xx" | |||
}, | |||
initialLogicalElementId: "xxxx", | |||
logicalElements: { | |||
xxxx: { | |||
logicalElementType: "logical" | "childComplexFilter" | etc, | |||
previousLogicalElmentId: null | "xxxx", | |||
nextLogicalElementId: null | "xxxx", | |||
// other params depend on logicalElementType | |||
} | |||
} | |||
}, | |||
filters: { | |||
objType: { | |||
serviceTag: "XX", | |||
objectType: "xx" | |||
}, | |||
initialLogicalElementId: "xxxx", | |||
logicalElements: { | |||
xxxx: { | |||
logicalElementType: "logical" | "childComplexFilter" | etc, | |||
previousLogicalElmentId: null | "xxxx", | |||
nextLogicalElementId: null | "xxxx", | |||
// other params depend on logicalElementType | |||
} | |||
} | |||
}, | |||
//* add more new ideas | |||
// traversalSteps: { //* maybe add more in this properties --> ref for type traversal | |||
// 111: { | |||
// pathLinkType: { | |||
// objType: { | |||
// serviceTag: "YY", | |||
// objectType: "yy" | |||
// }, | |||
// relType: { | |||
// serviceTag: "YY", | |||
// relationshipTag: "hasYY" | |||
// }, | |||
// direction: "from" | |||
// }, | |||
// //* other setting of traversal | |||
// } | |||
// }, | |||
// valueUserTags: { //* maybe add more in this properties | |||
// ref_valueUserTag: { | |||
// value: "cccc" | |||
// } | |||
// } | |||
} | |||
</syntaxhighlight> | |||
= Working documents = | = Working documents = | ||
Latest revision as of 01:56, 7 April 2026
Overview
Handler service for the standard catalog type.
Repository
https://bitbucket.org/izara-market-services/izara-market-catalogs-catalog-standard
DynamoDB tables
Standard Config Table Per Service
Configuration tags
{
configTag: "CatalogServiceNameTag"
configKey: "CatalogServiceNameTag"
configValue: xxx // this own services CatalogServiceTag, eg "CatalogStandard"
}
{
configTag: "CatalogGraphServiceName"
configKey: "CatalogGraphServiceName"
configValue: xxx // eg: "CatalogGraph"
}
{
configTag: "CatalogManagerServiceName"
configKey: "CatalogManagerServiceName"
configValue: xxx // eg: "CatalogManager"
}
{
configTag: "TranslationsServiceName"
configKey: "TranslationsServiceName"
configValue: xxx // eg: "Translations"
}
{
configTag: "CategoryTreeService"
configKey: xxx // categoryTreeServiceNameTag, eg: "CategoryTreeStandard", this is what is saved in each catalog record
configValue: {
serviceName: xxx // eg: "CategoryTreeStandard", this is the actual deployed service name}
}
}
Graph database
Service - Catalog Graph
Nodes
catalog
Is an origin/home/top-level node, one per catalog, allows for top level categories in that catalog to be point to a single origin node.
- NodeIdentifierLabels: catalog
- NodeIdentifierProperties: catalogId (random uuid)
Properties:
- searchType: sellOffer|product|variantProduct, will match the setting in the catalog service
- filter: full filter for the catalog, will combine all child categoryNode filters with the setting in the catalog service
- requiredData: full requiredData for this catalog, will match the setting in the catalog service
catalogSettings
Versioned data Holding the editable settings for a catalog.
Properties:
- searchType: product|variant|variantProduct
- filter: stringified object containing default search result filter
- requiredData: stringified object containing default search result requiredData
- categoryTreeServiceName: eg: "CategoryTreeStandard"
Service - Translations Graph
Nodes
CatalogName
- NodeIdentifierLabels: catalogName
- NodeIdentifierProperties: catalogId
Ideas
- One filter that will normally be on, but could be removed, is to only show items that have available quantity, this will tie into the locationtreenodeid.
Structure from Normalize FrontEnd
//in versionedData
versionedData = {
objTypeSetting: {
serviceTag: "XX",
objectType: "xx"
},
filterSetting: {
objType: {
serviceTag: "XX",
objectType: "xx"
},
initialLogicalElementId: "xxxx",
logicalElements: {
xxxx: {
logicalElementType: "logical" | "childComplexFilter" | etc,
previousLogicalElmentId: null | "xxxx",
nextLogicalElementId: null | "xxxx",
// other params depend on logicalElementType
}
}
},
requiredDataSetting: {
fieldName: "xxx"
},
//* add more new ideas
//* traversalsStepSetting: {},
//* valueUserTagsSetting: {}
}
//* in properties of node
properties = {
objType: {
serviceTag: "XX",
objectType: "xx"
},
requiredData: [
{
fieldName: "xxx"
}
],
filterAwaiting: {
objType: {
serviceTag: "XX",
objectType: "xx"
},
initialLogicalElementId: "xxxx",
logicalElements: {
xxxx: {
logicalElementType: "logical" | "childComplexFilter" | etc,
previousLogicalElmentId: null | "xxxx",
nextLogicalElementId: null | "xxxx",
// other params depend on logicalElementType
}
}
},
filters: {
objType: {
serviceTag: "XX",
objectType: "xx"
},
initialLogicalElementId: "xxxx",
logicalElements: {
xxxx: {
logicalElementType: "logical" | "childComplexFilter" | etc,
previousLogicalElmentId: null | "xxxx",
nextLogicalElementId: null | "xxxx",
// other params depend on logicalElementType
}
}
},
//* add more new ideas
// traversalSteps: { //* maybe add more in this properties --> ref for type traversal
// 111: {
// pathLinkType: {
// objType: {
// serviceTag: "YY",
// objectType: "yy"
// },
// relType: {
// serviceTag: "YY",
// relationshipTag: "hasYY"
// },
// direction: "from"
// },
// //* other setting of traversal
// }
// },
// valueUserTags: { //* maybe add more in this properties
// ref_valueUserTag: {
// value: "cccc"
// }
// }
}