【问题标题】:No product data specified to create product [woocommerce_api_missing_product_data]未指定用于创建产品的产品数据 [woocommerce_api_missing_product_data]
【发布时间】:2016-10-29 06:37:15
【问题描述】:

我已经下载了 woocommerce php API 的最新存储库。我一直在关注 woocommerce REST API Docs 来创建测试产品。我已经从他们的文档中复制了样本,但它不起作用。这是我的代码。

API 文档:http://woocommerce.github.io/woocommerce-rest-api-docs/?php#create-a-product

<?php

require_once("vendor/autoload.php");

use Automattic\WooCommerce\Client;

$woocommerce = new Client(
    'http://wocom.dev', 
    'ck_c62182de9983593c9da6ed5c4642ff50e79e1b4f', 
    'cs_8f69a9d588abb9ca1b0309f22ac2cd7841496d56',
    [
        'version' => 'v3',
        'ssl_verify'=> 'false',
        'timeout' => 30000
    ]
);



$data = [
    'name' => 'Ship Your Idea',
    'type' => 'variable',
    '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.',
    'categories' => [
        [
            'id' => 9
        ],
        [
            'id' => 14
        ]
    ],
    'images' => [
        [
            'src' => 'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_front.jpg',
            'position' => 0
        ],
        [
            'src' => 'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_back.jpg',
            'position' => 1
        ],
        [
            'src' => 'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_3_front.jpg',
            'position' => 2
        ],
        [
            'src' => 'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_3_back.jpg',
            'position' => 3
        ]
    ],
    'attributes' => [
        [
            'id' => 6,
            'position' => 0,
            'visible' => false,
            'variation' => true,
            'options' => [
                'Black',
                'Green'
            ]
        ],
        [
            'name' => 'Size',
            'position' => 0,
            'visible' => true,
            'variation' => true,
            'options' => [
                'S',
                'M'
            ]
        ]
    ],
    'default_attributes' => [
        [
            'id' => 6,
            'option' => 'Black'
        ],
        [
            'name' => 'Size',
            'option' => 'S'
        ]
    ],
    'variations' => [
        [
            'regular_price' => '19.99',
            'image' => [
                [
                    'src' => 'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_4_front.jpg',
                    'position' => 0
                ]
            ],
            'attributes' => [
                [
                    'id' => 6,
                    'option' => 'black'
                ],
                [
                    'name' => 'Size',
                    'option' => 'S'
                ]
            ]
        ],
        [
            'regular_price' => '19.99',
            'image' => [
                [
                    'src' => 'http://demo.woothemes.com/woocommerce/wp-content/uploads/sites/56/2013/06/T_3_front.jpg',
                    'position' => 0
                ]
            ],
            'attributes' => [
                [
                    'id' => 6,
                    'option' => 'green'
                ],
                [
                    'name' => 'Size',
                    'option' => 'M'
                ]
            ]
        ]
    ]
];




try
{
    print_r($woocommerce->post('products', $data));

}
catch(Exception $e)
{
    echo $e->getMessage();
}

错误:

Error: No product data specified to create product [woocommerce_api_missing_product_data]

【问题讨论】:

    标签: php wordpress woocommerce woothemes woocommerce-rest-api


    【解决方案1】:

    $data['product'] = []代替$data = []

    woocommerce API 正在检查是否设置了 $data['product'],如果为空则返回 [woocommerce_api_missing_product_data]。

    woocommerce/includes/api/legacy/v2/class-wc-api-products.php

    public function create_product( $data ) {
    $id = 0;
        try {
            if ( ! isset( $data['product'] ) ) {
                throw new WC_API_Exception( 'woocommerce_api_missing_product_data', sprintf( __( 'No %1$s data specified to create %1$s', 'woocommerce' ), 'product' ), 400 );
            }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多