WooCommerce.NET添加具有类别/子类别的产品

时间:2020-05-21 06:05:42

标签: c# woocommerce-rest-api

我正在寻找有关如何在WC商店中添加产品的“灵感”。

我可以添加一个简单的产品:

Product prod = new Product()
{
sku = SKU,
name = Name,
description = Description,
regular_price = Price,
manage_stock = true,
stock_quantity = quantity,
};

wc.Product.Add(prod).GetAwaiter().GetResult();

但是,当我只有类别名称时,如何将该产品添加到类别中?

另一个问题是我有一个类别结构,其中许多子类别具有相同的名称。

示例:

主要类别:MALE子类别:鞋子,T恤,内衣, 配件

主要类别:FEMALE子类别:鞋子,T恤,内衣, 配件

主要类别:儿童子类别:鞋子,T恤,内衣

我正在通过CSV导入产品数据库,在其中我将该类别命名为:

CATEGORY> SUBCATEGORY

是吗?有任何想法吗?

谢谢!

编辑: 从Matthias S.的回答中,我得到了一些很好的见解。但是我需要一个更通用的解决方案。 我只需要从类别名称中获取正确的类别ID。 我在想循环的方向,我会: 1.循环:按名称查找顶级类别 -2。循环:按名称查找冷杉子类别 --3。循环:按名称查找下一个子类别 ---- ... 甚至有可能吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

类别不仅仅是WC的名称。您需要在商店内部创建与输入侧相同的类别树。因此,WC类别具有唯一的ID,显示名称和父母ID。

对于给定的示例,您可以通过api创建MALE类别

ProductCategory newCategoryMale = new ProductCategory
{
    name = "MALE"
};
ProductCategory maleCategory = await wooCommerce.Category.Add(newCategoryMale)

,返回的类别将具有一个ID,您可以将其用于创建子类别。

ProductCategory newCategoryShoes = new ProductCategory
{
    name = "shoes",
    parent = maleCategory.id
};
ProductCategory shoes = await wooCommerce.Category.Add(newCategoryShoes)

现在您已经有了类别树结构以及相关的ID,就可以直接使用指定的类别来创建产品。

Product prod = new Product()
{
    sku = SKU,
    name = Name,
    description = Description,
    regular_price = Price,
    manage_stock = true,
    stock_quantity = quantity,
    categories = new List<ProductCategoryLine>
    {
        new ProductCategoryLine
        {
            id = shoes.id
        }
    }
};

编辑:

要获取现有类别的ID,可以使用

List<ProductCategory> existingCategories = await wooCommerce.Category.GetAll();

获取您商店中已设置的所有类别。 当寻找Male-> Shoes时,您需要在列表中搜索名为“ MALE”的根目录类别,并找到一个名为“ shoes”的类别,其中parentId等于您的male-categorys id。