Customizable Grids

A customizable grid lets the administrator define how the customer search result appears. Customizable grids consist of columns that define what appears in the particular grid.

The columns contain a title to define the column header manually. If the title is empty, the column header is generated based on the metadata of the attribute defined for that column. If the column contains multiple attributes, the column header remains empty. A layout is defined for each column containing an attribute or an array of attributes which define where the data comes from. Those attributes are resolved against the specific grid data source.

Supported customizable grids include:

Grid Source Example
Customer Search Customer
{
   "columns" :
      [
         {
            "label" : "Name",
            "layout" :
               {
                  "layout" :
                     [
                        {"attribute" : "first_name"},
                        {"attribute" : "last_name",
                           "suppress_new_column" : true}
                     ]
               }
         },{
            "layout" :
               {"attribute" : "email"}
         },{
            "layout" :
               {"attribute" : "company_name"}
         }
      ]
}
Customer Baskets Basket
{
   "columns" :
      [
         {
            "layout" :
               {
                  "attribute" : "last_modified"
               }
         },
         {
            "label" : "Items",
            "layout" :
               {
                  "xpath" : "replace(trim(concat(/product_items[1]/product_name , '\n' , /product_items[2]/product_name,  '\n' , /product_items[3]/product_name  )),'\n',', ')",
                  "meta" : {"type":"string"}
               }
         }
      ]
}
Note: Admins can configure the Customer Baskets grid by defining both system and custom attributes. All columns can contain consolidated content and can have custom labels. The column can be defined with either attribute or xpath, for example:
concat('First Product: ', /product_items[1]/product_name)
Customer Orders Order
{
   "columns" :
      [
         {
            "label" : "Items",
            "layout" :
               {
                  "xpath" : "replace(trim(concat(/product_items[1]/product_name , '\n' , /product_items[2]/product_name,  '\n' , /product_items[3]/product_name  )),'\n',', ')",
                  "meta" : {"type":"string"}
               }
         },
         {
            "layout" :
               {
                  "attribute" : "creation_date"
               }
         },
         {
            "layout" :
               {
                  "attribute" : "status"
               }
         }
      ]
}
Customer Address Book CustomerAddress
{
   "columns" :
      [
         {
            "layout" :
               {
                  "attribute" : "preferred"
               }
         },
         {
            "layout" :
               {
                  "attribute" : "full_name"
               }
         },
         {
            "layout" :
               {
                  "attribute" : "postal_code"
               }
         },
         {
            "layout" :
               {
                  "attribute" : "city"
               }
         },
         {
            "layout" :
               {
                  "attribute" : "state_code"
               }
         },
         {
            "layout" :
               {
                  "attribute" : "phone"
               }
         }
      ]
}
Order Search Order
{
   "columns" :
      [
         {
            "layout" :
               {
                  "attribute" : "customer_name"
               }
         },
         {
            "layout" :
               {
                  "attribute" : "customer_info.customer_no"
               }
         },
               {
                  "label" : "Items",
                  "layout" :
                     {
                       "xpath" : "replace(trim(concat(/product_items[1]/product_name , '\n' , /product_items[2]/product_name,  '\n' , /product_items[3]/product_name  )),'\n',', ')",
                       "meta" : {"type":"string"}
                     }
               },
         {
            "layout" :
               {
                  "attribute" : "creation_date"
               }
         },
         {
            "layout" :
               {
                  "attribute" : "status"
               }
         }
      ]
}