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