2016-12-06 41 views
0

更新:已解決。一個編碼錯誤導致variants被包裝在一個附加列表中,產生一個語法上有效但語義無效的(用於Shopify)JSON對象。Shopify產品創建422:「您需要爲[選項名稱]添加選項值」


我正試圖在Shopify上創建一個帶有多個選項和多個變體的產品。一切都很順利,除了我被絆倒在產品選項。

的JSON我張貼的有關部分如下:

"options":[ 
    { 
    "position":1, 
    "name":"Style" 
    }, 
    { 
    "position":2, 
    "name":"Size" 
    }, 
    { 
    "position":3, 
    "name":"Color" 
    } 

每個變種看起來是這樣的:

{ 
    "price":"##.##", 
    "option2":"S", 
    "compare_at_price":"##", 
    "weight_unit":"lb", 
    "option3":"Black", 
    "old_inventory_quantity":1, 
    "option1":"Men's Premium T-Shirt", 
    "inventory_management":null, 
    "weight":0.0, 
    "title":"Men's Premium T-Shirt/S/Black", 
    "requires_shipping":true, 
    "inventory_quantity":1, 
    "fulfillment_service":"manual" 
}, 

Here's a link to the entire JSON I'm attempting to POST.

當我張貼此JSON來https://STORE_NAME.myshopify.com/admin/products.json ,我收到一個422狀態代碼和以下錯誤消息:

{'errors': {'base': ['You need to add option values for Size', 'You need to add option values for Color']}}

我不確定我發送的JSON有什麼問題,我很感謝您的建議或正確方向的指針。


以下是我得到了我在哪裏:

  • 沒有嘗試在字典中"options"進入POST給了我的'The variant 'Men's Premium T-Shirt' already exists'形式的錯誤;研究這導致我引入"options"條目。
  • 我剛剛從"options": {"name": "Style", "name": "Color", "name": "Size"}開始,但是這隻創建了一個只有一個變體的產品 - 「默認標題」。
  • 刪除樣式選項給我一個關於顏色的錯誤消息。刪除大小以及創建一個變體「默認標題」產品。

最後一點尤其讓我懷疑某種語法錯誤 - 與第一個選項沒有正確關閉的括號相關的內容,讀取下兩個選項作爲其選項值,然後接下來的兩個選項在寒冷中被遺漏。但是我已經通過解析器和格式化程序運行了這個JSON,並且它似乎已經結束了。此外,谷歌搜索Shopify "You have to add option values for"返回完全0報價完整的報價。

Shopify的官方文檔似乎並不需要「選項」塊 - 請參閱「創建具有多種產品變體的新產品」here - 但Shopify的API論壇和其他地方的人表示這是絕對必要的。

我覺得我在這裏犯了一個簡單的錯誤,但對於我的生活我找不到它。任何指針將非常感激。

回答

1

其中一個變體是否可能缺少option3options2屬性?這裏是許多選擇產品的一個小例子:

{ 
    "product": { 
     "title": "Cool shirt", 
     "variants": [{ 
      "price": "4.00", 
      "option1": "big", 
      "option2": "mauve" 
     }, { 
      "price": "2.00", 
      "option1": "big", 
      "option2": "iridescent" 
     }, { 
      "price": "5.00", 
      "option1": "small", 
      "option2": "mauve" 
     }, { 
      "price": "1.00", 
      "option1": "small", 
      "option2": "iridescent" 
     }], 
     "options": [{ 
      "name": "Size", 
      "position": 1 
     }, { 
      "name": "Color", 
      "position": 2 
     }] 
    } 
} 

編輯:感謝張貼的樣品。您應該在{"product": ... }對象內發送產品數據。另外,它看起來像樣本中的變體數據有太多的括號。試着在我的例子中只包含一組方括號中的變體。

+0

我通過手動檢查每個變體;每個人都有適當的'option1','option2'和'option3'的值。另外,我注意到你沒有在'options'塊中指定選項的值;我認爲那不是必要的,那麼? – ModelHX

+0

對,Shopify可以自動生成。你介意發佈你正在製作的請求的整個JSON嗎? –

+0

我已經添加了一個指向整個JSON的pastebin的鏈接,並從'options'塊示例中刪除了這些值(錯誤仍然存​​在)。 – ModelHX

相關問題