Product search parameter的determine逻辑

109 阅读1分钟

Created by Jerry Wang on Mar 14, 2014

本文会讨论Product search UI上,search attribute dropdown list里面所有支持的search parameter的生成逻辑。

 

clipboard1

 

 

 

从product search view的实现code能够发现:

 

fieldMetadata定义该product search总共能够支持的search attribute集合,而fieldNames定义的是在当前active的UI configuration配置下,能够使用的search attribute集合,后者是前者的子集:

clipboard2

 

clipboard3

 

lt_fields里的entries来自Genil model browser里Query object对应的Attribute Structure CRMT_PRIL_QUERY_ADVSEARCH_PROD:

clipboard4

 

clipboard5

 

context node class可以redefine method GET_SUPPORTED_OPERATORS来根据业务来定义每个search attribute所支持的operator。

clipboard6

 

 

这41个fields是product advanced search 从模型角度来说能支持的search attributes。

  

GET_POSSIBLE_FIELDS 会把当前UI configuration里右边(即Selected Search Criteria 区域 )内的search attributes读取出来:

clipboard7

 

UI Configuration里左右两个区域内的search attributes的个数和一定等于structure CRMT_PRIL_QUERY_ADVSEARCH_PROD的field个数即41.

clipboard8