0

javascript (クライアント側) の API を使用して、Woocommerce で新しい製品を作成しようとしていますか?

終点:

https://localhost/wpShop/wc-api/v2/products?consumer_key=ck_1111111111122123&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1458225139&oauth_nonce=nVq4rX&consumer_secret=cs_232332322233232&oauth_signature=kzoVx+VYSWlLbRpi3f8222222=

WoocommerceGETからすべての商品を入手できます。完全!

しかし、なぜ新しい製品を作成できないのでしょうか。

私の新製品:

var data = {
    product: {
      title: 'Premium Quality',
      type: 'simple',
      regular_price: '21.99',
      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: [
        9,
        14
      ],
      images: [
        {
          src: 'http://www.adpic.de/data/picture/detail/Wasserflasche_74756.jpg',
          position: 0
        },
        {
          src: 'http://www.adpic.de/data/picture/detail/Wasserflasche_74756.jpg',
          position: 1
        }
      ]
    }
  };

私のajaxPOSTリクエスト:

$.ajax({
  method: "POST",
  url: woocommerceURLcreateProduct,
  data: $.param(data)
})
  .done(function( msg ) {
    console.log( "Data Saved: " );
    console.log( msg );
  });

エラーが発生します:

{code: "woocommerce_api_missing_callback_param", message: "Missing Parameter data"}

ソース:

http://woothemes.github.io/woocommerce-rest-api-docs/v2.html?javascript#create-a-product

4

1 に答える 1

1

jQuery Docsによると、jQuery.param(...)オブジェクトを受け取り、それを文字列にシリアル化します。これは通常、 を介してデータを転送するために使用されますGET

WooCommerce Docsによると、リクエストは JSON 文字列として送信する必要があります。

に置き換えるdata: $.param(data)data: data、jQuery の ajax を使用すると、オブジェクトをデータとして渡すことができ、それをエンドポイントの JSON 文字列に文字列化するという面倒な作業がすべて行われます。

jsonjQuery が WooCommerce の JSON 応答を解析できるように、ajax 呼び出しで dataTypeを に設定することを忘れないでください。

于 2016-03-17T16:39:22.287 に答える