2011-01-04 13 views
0

私は、私が使用する卸売業者からのライブXMLフィードを使用して、製品バリアントの在庫レベルを自動的に更新したいshopifyストアを持っています。Ruby XMLのNokogiri/XPathによる構文解析

私はプログラム(Ruby)を学んでいます。これは私の最初のプロジェクトですが、ここで研究した後、どのように動作するはずだと思います。

Ruby/Nokugiriを使用して卸売業者からのXMLフィードを解析し、次にXpathを使用して、一意の製品バリアントSKUコードと在庫レベルの両方を検索します。

何とかこのSKUを使用して、Shopifyストア製品のXMLリストを参照し、SKUコードを使用してバリアントの一意のIDを引き出す必要があります。

次に、ビルダーの宝石のようなものを使用して、ニーズを満たすXML形式を作成し、curlを使用して変更をPUTします。私はすべての製品についてこのプロセスをループすると思いますか?

Shopifyは300コール制限しかないので、私はスクリプトに遅れを入れて記事を持っていますが、上記の方法はこれを行う最も簡単な方法ではないと感じます。あなたはユニークなバリアントxmlファイルに対するバリアントの在庫レベルの更新を適用する必要があるので、私はユニークなxmlファイル/コードをビルドし、/admin/variants/#[thevariantid].xml

に対してそれを配置する必要がありShopifyで

私はこれをまとめ、その過程で学ぶことを楽しみにしていますが、これで正しい軌道に乗っていますか?私が見なければならないより簡単な宝石はありますか?

n.b私は最近、Rubyの学習を始めました。その後、Railsに向かいます。私はXMLについて少しは知っていますし、XPathで必要なものを見つけることが大切です。

答えて

3

あなたは正しい軌道に乗っているが、私は代わりに、XMLおよびURIの自分を形成するのでShopifyに話を行うためにshopify_apiの宝石を使用したい:https://github.com/Shopify/shopify_api

もあなたを助けるかもしれないarticle on our wikiがありますAPIの呼び出し制限については、もっと多くのスペースが必要であるかどうかを教えてください。私たちはかなり柔軟性があり、スクリプトが野生にならず、他の人のサービスに影響を与えないように制限しています。

+0

ありがとうエドワード。私は良い進歩を遂げて、私は同じテーブルに両方のファイルを解析することに決めました - 私は現在shopify_id(これは、製品IDではないバリアントID)、shopify_sku(バリアントスキュー)、そして私が更新したい正しい在庫レベル一緒にShopify。 私はshopify_api宝石で私の店にアクセスしましたが、私は簡単にバリアントIDのクエリを実行することができません。 ShopifyAPI :: Productの製品のみ。私がデータベースに持っているものを引き継いで、その株をその変種に適用する限り、最善の方法は何でしょうか? – Even4

+0

Hello Even4!私はAppsフォーラムを叫んでください。私たちはそこにフォローします:http://forums.shopify.com/categories/9 –

0

Nokogiriには「very nice XML-building」が組み込まれているので、「builder」宝石を使う必要はありません。