woocommerce api 创建具有变体的新产品

woocommerce api create new product with variations

我想用 woocommerce 创建一个新产品 api。我有一个颜色属性,我想识别来自 sku 的产品,例如 codeblack。

我的问题是如何做到这一点。

创建带有标题、描述、sku 等的产品时没问题。要创建具有属性的产品,我添加了 'type' => 'variable'.

现在我有了属性,我启用了变体,但我无法为我的变体赋予价值。

这是我的代码

    $client->products->create( 
    array( 
        'title' => 'Premium Quality', 
        'type' => 'variable', 
        'sku' => 'code',
        'regular_price' => '29.98',
        'description' => 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.',
        'short_description' => 'Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.',
        'images' => array(
                array(
                    'src' => 'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_front.jpg',
                    'position' => 0

                ),
                array(
                    'src' => 'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_2_back.jpg',
                    'position' => 1
                )
         ),
         'attributes' => array( 
            array( 
                'name'=>'color',
                'slug'=>'color',
                'position'=>'0',
                'visible'=>'true',
                'variation'=>'true',
                'options'=>array('red','black')
            ) 
         ),
         'variations' => array(
            array(
                'sku' => 'codered',
                'regular_price' => '29.98',
                'attributes' => array( 
                    array( 
                        'name'=>'color',
                        'options'=>'red'
                    )

                ) 
            ),
            array(
                'sku' => 'codeblack',
                'regular_price' => '29.98',
                'attributes' => array( 
                    array( 
                        'name'=>'color',
                        'options'=>'black'
                    )
                ) 
            )
        )

    ) 

);

所以我有我的属性

但我无法将它们与变体相匹配

你能帮帮我吗?

即使我通过 NodeJS 使用 API,我也遇到了完全相同的问题。 我发现 positionis_taxonomy 在来自 API 的调用中的处理方式存在问题,这会阻止变体正确链接到属性: https://github.com/woothemes/woocommerce/issues/11200

我找到了解决方案

'variations' => array(
                array(
                    'sku' => date('His').'_1',
                    'regular_price' => '29.98',
                    'attributes' => array( 
                        array( 
                            'id' => date('YmdHis', strtotime('+2 seconds')),
                            'slug'=>'color',
                            'name'=>'color',
                            'option'=>'red' 
                        )
                    ) 
                ),
                array(
                    'sku' => date('His').'_2',
                    'regular_price' => '29.98',
                    'attributes' => array( 
                        array( 
                            'id' => date('YmdHis'),
                            'slug'=>'color',
                            'name'=>'color',
                            'option'=>'black'
                        )
                    ) 
                )
            )

如果颜色属性和红色、黑色值存在,对我有用。

你必须使用id

您可以使用 variations/batch 并使用您现有的产品属性,它对我有用...