woocommerce api创造具有变化的新产品

时间:2016-06-14 23:38:10

标签: api attributes woocommerce variations

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

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

使用tilte,description,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'
                    )
                ) 
            )
        )

    ) 

);

所以我有我的属性enter image description here

但我不能将它们与变体enter image description here

相匹配

你能帮我吗?

3 个答案:

答案 0 :(得分:0)

即使我通过NodeJS使用API​​,我也有完全相同的问题。 我已经在position&来自API的调用处理is_taxonomy,以防止变体与属性正确关联: https://github.com/woothemes/woocommerce/issues/11200

答案 1 :(得分:0)

我找到了解决方案

'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

答案 2 :(得分:0)

您可以使用版本/批次并使用现有的产品属性,它对我有用。 enter image description here