Hey guys,
What's the correct way to remove a product from a group, when I have the product object?
Alternatively, I can just remove all products from a group - if you don't know a good way to solve the first problem.
A second alternative - removing a product from all groups it's associated with. How's that done?
Looking forward to hearing from you!
// Bo
Developer forum
E-mail notifications
Removing a product from a group
Bo Møller
Posted on 01/06/2011 21:06:07
Replies
Dmitry Nikolenko
Posted on 02/06/2011 03:53:02
Hi Bo,
You should to use ProductGroupRelation object.
For example http://developer.dynamicweb-cms.com/Forum/Development/Custom-module---product-import-with-variants.aspx
You just need to make reverse operations :)
Vilius Janulis
Posted on 16/06/2011 13:48:17
Hi Dmitry, maybe You could help little bit more.
I am trying to
make same thing, remove product from the group. I have tryed to do it in
any logical way i could think of but could not make it work.
Here are few examples of my code :
Dynamicweb.eCommerce.Products.GroupCollection goupe1 = Dynamicweb.eCommerce.Products.Group.getGroups("GROUP251");
Dynamicweb.eCommerce.Products.ProductCollection prodCol = Dynamicweb.eCommerce.Products.Product.getProductsFromGroup(goupe1.get_Item(0));
foreach (Product prod in prodCol)
{
Dynamicweb.eCommerce.Products.ProductGroupRelationCollection pgrc = Dynamicweb.eCommerce.Products.ProductGroupRelation.getProductGroupRelations(prod);
foreach (ProductGroupRelation pgr in pgrc)
{
pgr.Delete();
importStuff.AppendLine("Product with ID : "+ pgr.ProductID + " was deleted from group with ID : "+ pgr.GroupID);
}
}
another:
Dynamicweb.eCommerce.Products.GroupRelationCollection groupRelColection = Dynamicweb.eCommerce.Products.GroupRelation.getGroupRelations("GROUP251");
foreach(GroupRelation groupRelation in groupRelColection){
groupRelation.Delete();
importStuff.AppendLine("3");
}
few mores:
Dynamicweb.eCommerce.Products.GroupCollection groupCol2 = Dynamicweb.eCommerce.Products.Group.getGroupRelations("GROUP251", "GROUP251");
Dynamicweb.eCommerce.Products.ProductGroupRelationCollection prodRel2 = Dynamicweb.eCommerce.Products.ProductGroupRelation.getProductGroupRelations(p.ID, "GROUP251");
Dynamicweb.eCommerce.Products.ProductGroupRelation.getProductGroupRelations(p.ID, "GROUP251").Clear();
Dynamicweb.eCommerce.Products.GroupCollection groupCol = Dynamicweb.eCommerce.Products.Group.getGroupsBySearch("GROUP251",1);
foreach(Group group in groupCol){
if (groupCol2.ContainsById("GROUP251"))
{
groupCol2.Remove(group);
} importStuff.AppendLine("1");
}
foreach (ProductGroupRelation rel2 in prodRel2)
{
rel2.Delete();
rel2.Delete(importedProducts);
//rel2.Delete(importedProducts,"GROUP251");
importStuff.AppendLine("2");
}
Of course i have left out
the examples that seemed to be most obvious : like remove from group
methods and etc. Can You or someone help us with this one ?
Yury Zhukovskiy
Posted on 20/06/2011 02:46:41
Hi Vilius, Dmirty is at vacation.
To delete a product from a group you need to execute next code:
eCommerce.Products.ProductDeleting.Run("PROD881", "GROUP10", eCommerce.Common.Context.LanguageID)
It will remove product (id = PROD188) from a group (id=GROUP10).
Kind Regards
Zhukovskiy Yury
Lanzo van Slooten
Posted on 30/05/2012 10:24:18
Who has the solution? because all the above does not work with me!!
Best regards,
Lanzo van Slooten
Morten Bengtson
Posted on 30/05/2012 13:12:31
Try this...
// Get the product.
var product = Dynamicweb.eCommerce.Products.Product.Create("PROD1");
// Get the group relations for that product.
var relations = Dynamicweb.eCommerce.Products.ProductGroupRelation.getProductGroupRelations(product);
// Loop and delete relations.
foreach (Dynamicweb.eCommerce.Products.ProductGroupRelation relation in relations)
{
relation.Delete(); // Contains a bug and does not work at all!
relation.Delete(relation.ProductID, relation.GroupID); // You need to pass the correct id for product and group.
}
// Alternative approach...
var rel = new Dynamicweb.eCommerce.Products.ProductGroupRelation();
rel.Delete(product.ID, "GROUP1"); // Delete relation to a specific group.
rel.Delete(product.ID, string.Empty); // Delete relation to all groups.
You must be logged in to post in the forum