2021-02-22 - Service Stack - Catalog - Frontend flows

From Izara Wiki
Jump to navigation Jump to search

Service Stack - Catalog

List CatalogServiceNames

  1. CatalogManager/CatalogServiceName/List
    1. get list using 2020-12-18 - Catalog Manager - Functions#catalogServiceName/ListServiceNameTags
    2. get serviceName translation for each using 2021-02-16 - Translations - Functions#Translation/Get (hardcode a list of languages for now) (see Service - Translations#System text translations
    3. each catalogServiceNameTag has a link to create new catalog, links to Catalog/Create page for that catalogServiceNameTag

List Catalogs

  1. CatalogManager/Catalog/List
    1. receives catalogName filter (optional)
    2. textfield for catalogName filter
    3. get list of catalogs using 2020-12-18 - Catalog Manager - Functions#Catalog/List
    4. get catalogName for each using 2021-02-16 - Translations - Functions#Translation/Get (hardcode a list of languages for now)
    5. each catalog has a link to catalog's detail page for it's catalogServiceNameTag >> CatalogStandard/Catalog/Get

List Categories

  1. CatalogManager/Category/List
    1. receives categoryName filter (optional)
    2. textfield for categoryName filter
    3. get list of categories using 2020-12-18 - Catalog Manager - Functions#Category/List
    4. get categoryName for each using 2021-02-16 - Translations - Functions#Translation/Get (hardcode a list of languages for now)
    5. each category has a link to categories detail page for it's categoryServiceNameTag >> CategoryStandard/Category/Get

List CategoryNodes that link to a CategoryId

  1. from CategoryStandard/Category/Get
  2. CategoryTreeStandard/CategoryNode/ListByCategoryId
    1. receives categoryId (required)
    2. receives categoryName (optional) if received display (not need to request from backend)
    3. (maybe not needed) get category using 2021-02-15 - Category Standard - Functions#Category/Get
    4. get list of categoryNodes that link to this category using NPM module - izara-shared#graphSharedLib.getVertexInEdgesAndVerticesByVertexTagAndVertexUniqueId

View Catalog

  1. from CatalogManager/Catalog/List
  2. CatalogStandard/Catalog/Get (or Detail?)
    1. get catalog using 2021-03-03 - Catalog Standard- Functions#Catalog/Get
    2. get catalogName using 2021-02-16 - Translations - Functions#Translation/Get (hardcode a list of languages for now)
    3. has link to view categoryTree >> CategoryTreeStandard/CategoryNode/Get
    4. has link to translate catalogName >> 2021-03-03 - Service Stack - Translations - Frontend flows#List Translations

View Category

  1. from CatalogManager/Category/List
  2. CategoryStandard/Category/Get (or Detail/View?)
    1. get category using 2021-02-15 - Category Standard - Functions#Category/Get
    2. get categoryName using 2021-02-16 - Translations - Functions#Translation/Get (hardcode a list of languages for now)
    3. has link to view categoryNodes that link to this category >> CategoryTreeStandard/CategoryNode/ListByCategoryId
    4. has link to translate categoryName >> 2021-03-03 - Service Stack - Translations - Frontend flows#List Translations

View CategoryNode

  1. from CatalogStandard/Catalog/Get (for catalogs that set CategoryTreeStandard as it's categoryTreeServiceNameTag)
  2. CategoryTreeStandard/CategoryNode/Get
    1. shows the details, parent, and children of a categoryNode
    2. receives catalogId or categoryNodeId, and type (required)
    3. receives catalogName and/or categoryName, (optional) if received display these and not need to request from backend
    4. get categoryNode using NPM module - izara-shared#graphSharedLib.getVertexByVertexTagAndVertexUniqueId
    5. get categoryNodeSettings using NPM module - izara-shared#graphSharedLib.getCurrentVersionedDataByVertexTagAndVertexUniqueId
    6. get catalogName using 2021-02-16 - Translations - Functions#Translation/Get (hardcode a list of languages for now)
    7. if is viewing a categoryNode (not catalog)
      1. get category using NPM module - izara-shared#graphSharedLib.getVertexByVertexTagAndVertexUniqueId
      2. get categoryName using 2021-02-16 - Translations - Functions#Translation/Get (hardcode a list of languages for now)
      3. get parentCategoryNodeId using NPM module - izara-shared#graphSharedLib.getVertexInEdgesAndVerticesByVertexTagAndVertexUniqueId
      4. get parentCategoryName using 2021-02-16 - Translations - Functions#Translation/Get (hardcode a list of languages for now) (type might be catalog or categoryNode)
    8. get childCategoryNodes using NPM module - izara-shared#graphSharedLib.getVertexOutEdgesAndVerticesByVertexTagAndVertexUniqueId
    9. for each childCategoryNodes
      1. get categoryName using 2021-02-16 - Translations - Functions#Translation/Get (hardcode a list of languages for now)
    10. if is viewing a categoryNode (not catalog)
      1. has a link to enable/disable
      2. has a link to update settings >> CategoryTreeStandard/CategoryNode/UpdateSettings
      3. has a link to browse >> CatalogManager/Catalog/Browse
    11. has a link to add a child categoryNode to the currently viewed categoryNode >> CategoryTreeStandard/CategoryNode/Create

Create new Catalog

  1. from CatalogManager/CatalogServiceName/List
  2. CatalogStandard/Catalog/Create
    1. get categoryTreeServiceNames list using 2020-12-18 - Catalog Manager - Functions#categoryTreeServiceName/ListServiceNameTags
    2. get serviceName translation for each categoryTreeServiceNames using 2021-02-16 - Translations - Functions#Translation/Get (hardcode a list of languages for now) (see Service - Translations#System text translations
    3. get searchType list using NPM module - izara-market-shared#CatalogStandardLib.searchTypes
    4. select for categoryTreeServiceNames (for now only one option)
    5. select for searchType
    6. textbox for filter
    7. textbox for requiredData
    8. textfield for catalogName
    9. textfield for defaultBrowseQuantity
    10. textfield for languageCode
    11. submit page invokes 2021-03-03 - Catalog Standard- Functions#Catalog/Create
    12. display confirmation that catalog is being created, offer a link to catalog list

Create new CategoryNode

  1. from CategoryTreeStandard/CategoryNode/Get
  2. CategoryTreeStandard/CategoryNode/Create
    1. receives catalogId or parentCategoryNodeId, and type (required)
    2. receives catalogName and/or categoryName, (optional) if received display these (not need to request from backend)
    3. get searchType list using NPM module - izara-market-shared#CatalogStandardLib.searchTypes
    4. textfield for categoryId
    5. select for searchType
    6. checkbox for searchTypeMatchParent
    7. textbox for filter
    8. select for filterMatchParent - none|match|append
    9. textbox for requiredData
    10. select for requiredDataMatchParent - none|match|append
    11. submit page invokes 2020-12-19 - Category Tree Standard - Functions#CategoryNode/Create
    12. display confirmation that catalogNode is being created, offer a link to CategoryTreeStandard/CategoryNode/Get for parentCategoryNodeId

Create new Category

  1. CategoryStandard/Category/Create
    1. textfield for categoryName
    2. textfield for languageCode
    3. submit page invokes 2021-02-15 - Category Standard - Functions#Category/Create
    4. display confirmation that category is being created, offer a link to CatalogManager/Category/List

Update Catalog Settings

  1. from CatalogStandard/Catalog/Get
  2. CatalogStandard/Catalog/Update
    1. get catalog using 2021-03-03 - Catalog Standard- Functions#Catalog/Get
    2. if catalog not found: error
    3. get categoryTreeServiceNames list using 2020-12-18 - Catalog Manager - Functions#categoryTreeServiceName/ListServiceNameTags
    4. get serviceName translation for each categoryTreeServiceNames using 2021-02-16 - Translations - Functions#Translation/Get (hardcode a list of languages for now) (see Service - Translations#System text translations
    5. get searchType list using NPM module - izara-market-shared#CatalogStandardLib.searchTypes
    6. select for categoryTreeServiceNames (for now only one option)
    7. select for searchType
    8. textbox for filter
    9. textbox for requiredData
    10. textfield for defaultBrowseQuantity
    11. submit page invokes 2021-03-03 - Catalog Standard- Functions#Catalog/UpdateSettings
    12. display confirmation that catalog is being created, offer a link to catalog list

Update CategoryNode Settings

  1. from CategoryTreeStandard/CategoryNode/Get
  2. CategoryTreeStandard/CategoryNode/UpdateSettings
    1. receives categoryNodeId
    2. receives categoryName, (optional) if received display these and not need to request from backend
    3. get categoryNode using NPM module - izara-shared#graphSharedLib.getVertexByVertexTagAndVertexUniqueId
    4. get categoryNodeSettings using NPM module - izara-shared#graphSharedLib.getCurrentVersionedDataByVertexTagAndVertexUniqueId
    5. if categoryNode not found: error
    6. select for searchType
    7. checkbox for searchTypeMatchParent
    8. textbox for filter
    9. select for filterMatchParent - none|match|append
    10. textbox for requiredData
    11. select for requiredDataMatchParent - none|match|append
    12. submit page invokes 2020-12-19 - Category Tree Standard - Functions#CategoryNode/UpdateSettings
    13. display confirmation that catalogNode is being updated, offer a link to CategoryTreeStandard/CategoryNode/Get for categoryNodeId

Enable/Disable CategoryNode

  1. from CategoryTreeStandard/CategoryNode/Get
    1. click link invokes 2020-12-19 - Category Tree Standard - Functions#CategoryNode/EnableDisable
    2. display confirmation that change is being processed, can return to CategoryTreeStandard/CategoryNode/Get

Browse Catalog

  1. from CategoryTreeStandard/CategoryNode/Get
  2. CatalogManager/Catalog/Browse
    1. receives catalogId (optional)
    2. receives categoryNodeId (optional)
    3. get searchType list using NPM module - izara-market-shared#CatalogStandardLib.searchTypes
    4. textfield for catalogId (propagate if received)
    5. textfield for categoryNodeId (propagate if received)
    6. textbox for additionalParams
    7. select for searchType
    8. textbox for filter
    9. textbox for requiredData
    10. submit invokes 2020-12-18 - Catalog Manager - Functions#Catalog/Browse
    11. will receive an id/hash for polling the response from searchResult/SortResult services
    12. display id/hash