Agregar variaciones de productos con múltiples atributos

1 minuto de lectura

avatar de usuario
athskar

Estoy usando la biblioteca WoocommerceNET (Enlace Nuget) para desarrollar una aplicación de escritorio que sincronizará los productos de la base de datos del ERP con la base de datos de la tienda virtual de Woocommerce.

Agregué atributos de tamaño y color con valores, por ejemplo. rojo verde azul y s, m, l, xl. Ahora necesito crear las variaciones.

Intenté esto:

  List<VariationAttribute> vatrib = new List<VariationAttribute>()
            { new VariationAttribute() { name="Color",option="GREEN" },
              new VariationAttribute() { name="size",option="L" } };

       Variation var = new Variation() {
                             regular_price=1.0M,
                             visible=true,
                             attributes=vatrib,
                             stock_quantity=5,
                             manage_stock=true
                        };
       //... repeat for each variation ....

       List<Variation> varis = new List<Variation>();
       varis.Add(var);
       varis.Add(var1);
       varis.Add(var2);  ... and so on for all variations

       Product p = new Product()
                {
                    //options ....
                    type = "variable",
                    manage_stock = true,
                    in_stock = true,
                    attributes=attribs,
                    variations=varis,
                };
                await wc.Product.Add(p);

pero me sale un error

No se puede convertir implícitamente el tipo ‘System.Collections.Generic.List ‘ a ‘System.Collections.Generic.List ‘

parece el variación El atributo del producto es una lista que contiene los identificadores de variaciones.

¿Cómo puedo agregar un nuevo producto con variaciones de color y tamaño?

avatar de usuario
Valena

Crea el producto. Cree la variación con la identificación del producto.

Product p = new Product()
{
    //options ....
    type = "variable",
    manage_stock = true,
   in_stock = true,
    attributes=attribs,
    //variations=varis,
};

//Returns the new product with the id.
p = await wc.Product.Add(p);

//Returns the new variation with the id
var1 = wc.Product.Variations.Add(var1, p.id.Value);

// Add the variation id to the product
p.Variations.Add(var1.id.Value);

//Update the product
wc.Product.Update(p.id.Value, p);

¿Ha sido útil esta solución?