我正在使用下面的代码从类别 - 护肤品中删除该产品,
var name=pdict.categoryName;
var category=CatalogMgr.getCategory('skincare');
if(category && category.products.length){
for each(var product in category.products){
if(!product.custom.productBadge1){
var assignments = product.getCategoryAssignments();
for(var i=0;i<assignments.length;i++)
{
if(assignments[i].category.ID=='skincare'){
//TO DO remove product from category
}
}
}
}
}
这里使用哪个API
嗯,一种可能的方法是,您可以编写 XML 来删除作业并手动或通过作业导入它。 这可能是最坏的情况。
要通过 Demandware (SFCC) API 从类别中删除产品:
dw.catalog.CategoryMgr.getCategory(categoryID)
获取类别对象。dw.catalog.ProductMgr.getProduct(productID)
获取产品对象。category.removeProduct(product)
从类别中删除产品。dw.system.Transaction.wrap()
确保操作在事务上下文中完成。示例:
output:
const Transaction = require('dw/system/Transaction');
const CategoryMgr = require('dw/catalog/CategoryMgr');
const ProductMgr = require('dw/catalog/ProductMgr');
Transaction.wrap(() => {
const category = CategoryMgr.getCategory('categoryID');
const product = ProductMgr.getProduct('productID');
if (category && product) {
category.removeProduct(product);
}
});