2017-01-21 16 views
0

私はES6、反応、反応還元とあなたのjs-buy-sdk apiを使用して電子商取引Webアプリケーションを構築しようとしています。私の問題は、店舗からすべての製品を取り出して店舗に置いた後、期待通りにすべてのデータを持っているとは思えず、{ attrs, shopClient, serializer, type, config, _memoized }です。 chrome consoleShopify-Buy-SDK未加工の製品データを取得

Iを:

import ShopifyBuy from 'shopify-buy'; 

const shopClient = ShopifyBuy.buildClient({ 
    apiKey: 'xxxxxxxxxxxxxxxxxxxx1403c107adc7e', 
    domain: 'xxxxxxxxxxxxxxxx.myshopify.com', 
    appId: '6', 
}); 

export function fetchAllProducts() { 
    return new Promise((resolve, reject) => { 
    shopClient.fetchAllProducts() 
     .then((data) => { 
     console.log('shopClient.fetchAllProducts', data); 
     resolve(data); 
     }).catch((error) => { 
     console.error(new Error('Fetching products error!')); 
     reject(error); 
     }); 
    }); 
} 

にconsole.log shopClient.fetchAllProductsを見てみると、これは私が得るものです:私はshopify.jsという名前のファイルの下で、呼び出しが製品を取得するために作っていますどのようにここで

ですdataを取り出して還元店に入れ、見ていると、次のようになります。 redux store

該当する場合は、this gistをチェックして、私が派遣している措置とthis gistを確認して、私の措置が削減され、店舗に置かれます。それが内部的にどのようなProductModel店ですので、私の理解から

は、あなたがfetchAllProducts()方法を行うとき、あなたはProductModelの配列を取得し、そのため、私は私の店で仮定次{ attrs, shopClient, serializer, type, config, _memoized }を設定します。

私の質問は、このようProductOptionModelとして、そのProductModel最初のスクリーンショットにとモデルからのデータで提示され、関連するすべての製品の値を持つ(ProductModelからのデータの生のオブジェクトを取得する方法ですが、です私は安定性と正気の理由で私の店を置くことができますか?

Shopify APIリファレンスはhereです。

答えて

2

商品に返されたデータへの生のアクセスを探している場合、attrsプロパティにはロジックやモデルを追加せずにAPIレスポンスJSONが含まれています。

しかし、可能であれば、これらのモデルを活用できるようにコードを整理することをお勧めします。生データが特に混乱する形式(具体的にはバリアント、オプション、画像)になる可能性があるため追加しました。

つまり、返されるすべての商品の生データが必要な場合は、このような仕組みが必要です。

import ShopifyBuy from 'shopify-buy'; 

const shopClient = ShopifyBuy.buildClient({ 
    apiKey: 'xxxxxxxxxxxxxxxxxxxx1403c107adc7e', 
    domain: 'xxxxxxxxxxxxxxxx.myshopify.com', 
    appId: '6', 
}); 

export function fetchAllProducts() { 
    return new Promise((resolve, reject) => { 
    shopClient.fetchAllProducts() 
     .then((products) => { 
     resolve(products.map((product) => { 
      return product.attrs; 
     })); 
     }).catch((error) => { 
     console.error(new Error('Fetching products error!')); 
     reject(error); 
     }); 
    }); 
} 
+0

クールなので、 'attrs'は生データを取得する正しい場所でなければなりません。有難うございます!私が生データを必要とする理由は、https://facebook.github.io/immutable-js/のようなものを活用したいと思っているからです。そして、私はまだそれがどのようにモデルで遊びに来るのか分かりません。 –

0

あなたのコード例では、秘密のAPIキーでAPIを呼び出していますか?あなたは、これが正しいと思わないほどの虐待にあなたの店を公開することを理解していますか?あなたはあなたがそこでやっていることを知っていますか?

+0

私はそれについて考えましたが、いかなる虐待も許されていないと思います。たとえば、このAPIを使用して、ショップ管理者の製品を削除することはできません。誰かができる最大限のことは、製品情報を取得してshopifyチェックアウトページを生成して最終的に購入することですが、私はその酷使とは言わず、ちょうど賢いプログラマーバイヤーです。ここではapiが行うことの完全な仕様があります:http://shopify.github.io/js-buy-sdk/api/classes/ShopifyBuy.html –

+0

意味があります...それは単に製品を得るために作られた限られたキーです。 OK。よくやった。 –

関連する問題