Demandware:查找产品的类别位置?

Demandware: Find Product's Category Position?

我正在更新数据馈送导出,它将产品链接到给定类别。我还想包括该产品在该类别中的营销位置,该类别当前存在于商务管理器中,用于控制产品列表页面上的排序:

我正在研究 API 文档,以及在 dw.catalog.CategoryAssignment 中公开此信息的合理位置,但它不在那里.我目前基本上是通过这样做来推断位置的:

// assume var product, category
var position = category.products.firstIndex(p => p.ID == product.ID);

但是,这告诉我产品被分类到哪里,不是Demandware 中的实际位置值是什么。它现在可以作为一种权宜之计,但我真的想用从 DW 中提取实际价值的东西替换它。

在 Commerce Cloud 的哪个位置 API 我可以找到给定类别中给定产品的营销位置?

我认为您不会获得产品索引的实际位置,因为您可能有多个排序规则来在类别列表页面上显示不同的输出。这些排序规则可以根据特定规则在需要时创建。我认为这不会反映在产品 Feed 上。

花了一些时间,但我设法发现 BM 中产品的 "Position" 字段存储为 Product.searchPlacement。要找到它,您必须在 Category.products 中查找,找到您想要的产品,然后获取该产品的 searchPlacement 属性。

实际上,我使用了:

// assume var product, category
var position = category.products.find(p => p.ID == product.ID).searchPlacement;

对于没有在业务管理器中分配位置的产品,searchPlacement 为 0。否则,它反映在 BM 中输入的值。