2017-10-09 1 views
1

J'utilise l'adaptateur de noeud Shopify officiel (https://github.com/MONEI/Shopify-api-node) et j'essaie de créer un ordre de brouillon.Mauvaise demande pour créer un ordre de brouillon en utilisant le module shopify npm

Envoi de la charge utile de

{ 
    "draft_order": { 
    "line_items": [ 
     { 
     "title": "Custom Tee", 
     "price": "20.00", 
     "quantity": 2 
     } 
    ] 
    } 
} 

fonctionne via Postman, mais est de retour 'mauvaise demande' (400) de l'api.

La fonction/appel complet par emballage est la suivante:

import Shopify from 'shopify-api-node'; 

makeDraftOrder: function(shop_name) { 
    console.log('trying to connect with ', shop_name); 
    const shop = Shops.findOne({'shopName': shop_name}); 

    const shopify_data = new Shopify({ 
     shopName: shop.shopName, 
     accessToken: shop.accessToken 
    }); 

    let newOrder = JSON.stringify({ 
     "draft_order": { 
     "line_items": [ 
      { 
      "title": "Custom Tee", 
      "price": "20.00", 
      "quantity": 2 
      } 
     ] 
     } 
    }); 

    shopify_data.draftOrder.create(newOrder).then(data => { 
     console.log('draft order', data); 
    }).catch(err => console.error('wawawoowa', err)); 
    } 

Faire un appel à draftOrder.list() fonctionne très bien, mais échoue ci-dessus. Toute aide très appréciée.

Répondre

0

Ne pas envelopper la commande avec "draft_order": { ... }. Vous n'avez également pas besoin de stringifier l'objet.

let newOrder= { 
    "line_items": [ 
    { 
     "title": "Custom Tee", 
     "price": "20.00", 
     "quantity": 2 
    } 
    ] 
}; 

shopify_data.draftOrder.create(newOrder) 
+0

bien, merci. pouvez-vous me dire comment vous avez su supprimer les deux? – Rockafella

+0

J'ai eu le même problème il y a quelque temps. Je l'ai trouvé à partir du code source de 'shopify-api-node'. Ici vous pouvez voir une ligne qui entoure votre commande avec '" draft_order ": {...}' en interne: https://github.com/MONEI/Shopify-api-node/blob/2.9.0/index.js# L116. La clé est définie ici: https://github.com/MONEI/Shopify-api-node/blob/2.9.0/resources/draft-order.js#L18 –

+0

À partir de 'JSON.stringify',' shopify -api-node' utilise le module 'got' pour faire des requêtes. Il a une option de mode [json] (https://www.npmjs.com/package/got#json) qui est définie sur true ici: https://github.com/MONEI/Shopify-api-node/blob/ 2.9.0/index.js # L101 donc vous devez passer un objet simple et il est stringifié en JSON sous le capot. –