用途:面向 Salesforce B2C Commerce 开发者,指导在店铺前台与后台作业中写出高效的数据查询,覆盖商品、客户与订单三类数据,核心是区分索引型 API 与数据库型 API,避免高流量页面出现性能问题。
主要能力:商品搜索使用 ProductSearchModel,支持分类、关键词、可订购商品过滤、价格区间与细化条件,并通过 PagingModel 分页;从搜索命中项用 ProductSearchHit 获取变体颜色、商品 ID 与价格。订单查询提供 OrderMgr.searchOrders(索引型)与 queryOrders(数据库型),前者适合状态、邮箱、日期等索引字段,结果上限约 1000 条。客户查询推荐 CustomerMgr.searchProfiles 与批量场景的 processProfiles,后者替代旧 queryProfiles 且内存更优。系统对象可用 SystemObjectMgr.querySystemObjects,但客户数据应优先 CustomerMgr。
必要用法:查询语句使用 {0} 占位符传参;遍历后必须调用 close() 释放迭代器;分页而非加载全部结果;过滤条件尽量写进查询。
适用场景:店铺前台商品列表、搜索、详情页,以及需要批量处理客户或订单的作业。
限制:搜索 API 结果上限 1000 条;LIKE/ILIKE 按整词匹配、不区分大小写,通配符会被过滤;同一查询混用 AND 与 OR、范围查询会降低性能;避免在循环中调用 Category.getProducts()、ProductMgr.queryAllSiteProducts()、Product.getVariants()、getPriceModel() 及 CustomerMgr.queryProfiles() 等数据库密集型 API;单页商品数建议不超过约 120,单次事务修改业务对象建议少于 1000。