Prerequisites

You should have

  • an user-account enabled for api access & PIM access
  • an api-client
  • at least on product-category stored in your Hublify PIM

 

Helpful to know

Some facts ...

  • category-data can have own customized "payload"-data.
    See standard fields here: ....
    This is e.g. short- /long-description, media-file(s), HTML-Meta-data, ...
  • A product-group is identified best by its "node_code".
  • The hierarchical category-structure contains fields and values such as:
    (Which can be very helpful for html rendering)
    • numerical ID and fahter-ID
    • Number of sub-categories
    • Number of depth-level of group
  • Category data itself can also be customized and extended field-wise
  • Each product can be assigned to none, one or many categories

 

Getting all categories

You can get all categories easily and comfortably structured with one api-call.

Use this e.g. for building a product-group-navigation.

The following (shortened) example contains some of the standard category fields. This might vary in other setups.

 

Request URL

https://{your hublify url}/api/eos_10/data_getList

Request parameter

{
    "dataset": "productgroup"
}

Response

{
    "status": true,
    "data": [
        {
            "node_path": "|Wohninterieur",
            "node_name": "Wohninterieur",
            "node_code": "living_interior",       // Use this as primary identifier !
            "node_id": "1",
            "node_idfather": "0",
            "active": "1",
            "children": "10.0000",                // Number sub-groups
            "depth": "0",                         // Depth of this group (0 = top level)
            "title": "Wohninterieurs",
            "teaser": null,
            "body": null,
            "emb_img_label": {                    // Optional images for product group
                "model": "mam_asset",
                "data": [
                    {
                        "mb_label": "ecs_plugin_shop_demodata_testbild_categoryworld",
                        "name": "testbild_categoryworld.jpg",
                        "mb_preview": "\/ecs_plugin_shop_demodata\/.preview.ecms\/testbild_categoryworld.jpg___thumb.jpg",
                        "mb_title": "testbild_categoryworld",
                        "mb_caption": "",
                        "mb_keywords": "",
                        "url": "\/files\/\/ecs_plugin_shop_demodata\/testbild_categoryworld.jpg",
                    }
                ]
            },

            "marketing_name": null,
            "marketing_teaser": null,
            "marketing_image": null,
            "marketing_image_background": null,
            "marketing_overlay_html": null,

            "meta_title": null,
            "meta_description": null,
            "meta_keywords": null,

            "promoted_products": null,

            "primaryValue": "1172",
            "primaryKey": "xc__id",
            "displayValue": "Wohninterieurs",
            "displayKey": "title",

            ... // EXAMPLE SHORTENED !
        },
        {
            "node_path": "|Wohninterieur|Lampen",
            "node_name": "Lampen",
            "node_code": "lightning",
            "node_id": "2",
            "node_idfather": "1",
            "active": "1",
            "children": "4.0000",
            "depth": "1",
            "title": "Lampen",
            "teaser": null,
            "body": "Unsere Lampenwelt bietet eine ... Lorem ...",
            "emb_img_label": {
                "model": "mam_asset",
                "data": [
                    {
                        "mb_label": "ecs_plugin_shop_demodata_graypants_gp00002_11zoll_2",
                        "url": "\/files\/\/ecs_plugin_shop_demodata\/graypants_GP00002_11zoll_2.jpg",
                        ... // EXAMPLE SHORTENED
                    }
                ]
            },
            "promoted_products": {
                "model": "cdb_record",
                "data": [
                    {
                        "pcode": "GP00001",
                        "model": "product",
                        "primaryValue": "GP00001",
                        "primaryKey": "pcode",
                        "displayValue": "Arcturus H\u00e4ngeleuchte",
                        "displayKey": "name",
                        ... // EXAMPLE SHORTENED
                    },
                    {
                        "pcode": "FKTB0002",
                        "name": "KTribe Lampen-Bundle",
                        "model": "product",
                        "primaryValue": "FKTB0002",
                        "primaryKey": "pcode",
                        "displayValue": "KTribe Lampen-Bundle",
                        "displayKey": "name"
                    },
                    ...   // EXAMPLE SHORTENED
                ]
            },
            "primaryValue": "1176",
            "primaryKey": "xc__id",
            "displayValue": "Lampen",
            "displayKey": "title"
        },

        ...     // EXAMPLE SHORTENED
}
 

 

 

Getting a single category

  • Get all fields / data for one category, e.g. to render a category-detail html-page
  • Additionally get all products within this category, to render a product-list on this category-detail-page
    (show example here, or link to another article?!)

...

 

Getting all subcategories

...

 

Getting the category path

...

For e.g. rendering a breadcrumb path.