ruby-on-rails - 使用shopify_api gem的shopify订单履行问题

标签 ruby-on-rails api shopify

我在通过 shopify_api gem 履行订单中的订单项时遇到问题。当我履行单个订单项时,它会履行订单中的所有订单项。我调查过它,人们说一些关于设置标题的事情,请澄清。

我正在做的是

order = ShopifyAPI::Order.find(order_id)

假设此订单有多个订单项

f = ShopifyAPI::Fulfillment.new(:params => { :order_id => order.id, :line_items => [ {"id" => order.line_items.first.id} ] })

f.prefix_options = { :order_id => order.id }

f.save

这段代码履行订单中的所有订单项,并将履行状态设置为已履行,这是不希望的。


以下是 header 、履行对象和 tcpdump 的详细信息:

Shopify header

(rdb:1) p ShopifyAPI::Fulfillment.headers
{"User-Agent"=>"ShopifyAPI/3.0.1 ActiveResource/3.1.1 Ruby/1.9.2", "X-Shopify-Access-Token"=>"be9d4adaa35e7f82b720a3567250424c"}

履行对象

#<ShopifyAPI::Fulfillment:0xca2086c @attributes={"params"=>#<ShopifyAPI::Fulfillment::Params:0xca20b00 @attributes={"order_id"=>138494648, "notify_customer"=>true, "tracking_number"=>"12345678", "line_items"=>[#<ShopifyAPI::LineItem:0xca28904 @attributes={"id"=>225568082}, @prefix_options={}, @persisted=false>]}, @prefix_options={}, @persisted=false>}, @prefix_options={:order_id=>138494648}, @persisted=false>

tcpdump 输出

10:07:14.498936 IP localhost.localdomain.34941 > localhost.localdomain.domain: 50737+ AAAA? olson-pfeffer-and-ratke1494.myshopify.com。 (59) E..W..@ [email protected] ....}.5.C.V.1...........olson-pfeffer-and-ratke1494 myshopify.com..... 10:07:14.655477 IP localhost.localdomain.domain > localhost.localdomain.34941: 50737 1/1/0 CNAMEshops.shopify.com。 (160) E.....@[email protected]。 :....< 10:07:14.655650 IP localhost.localdomain.36871 > localhost.localdomain.domain: 39864+ A? olson-pfeffer-and-ratke1494.myshopify.com。 (59) E..W..@[email protected] myshopify.com..... 10:07:14.948404 IP localhost.localdomain.domain > localhost.localdomain.36871: 39864 5/4/4 CNAMEshops.shopify.com.、A 204.93.213.40、A 204.93.213.41、A 204.93.213.42、A 204.93。 213.44 (301) E..I..@.@.;..........5...5.H.........olson-pfeffer-and-ratke1494 myshopify。 com.........X...shops.shopify.2.G.......X...].(.G.......X ...].).G..X...].*.G....X...].,.M......... .ns3.p19.dynect.net..M.........ns4...M...........ns1...M....... ....ns2......0......NF......0......NG...... ...0.... 10:07:16.326985 IP6 geek-laptop.46193 > geek-laptop.46193:UDP,长度 16 奥 git _a .. 10:07:16.338153 IP6 geek-laptop.46193 > geek-laptop.46193:UDP,长度 20 <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0d2323232323234d2323232323232323232323232323232323232323232323232323232323232323237c237c" rel="noreferrer noopener nofollow">[email protected]</a>../#........).....!.6k.. 10:07:16.340185 IP6 geek-laptop.46193 > geek-laptop.46193: UDP, length 16 [email protected] .......!.6k .. 10:07:16.350974 IP6 geek-laptop.46193 > geek-laptop.46193:UDP,长度 924 ` [email protected] ........)................................... ...................................................... .........“.......“.......F ...................................................... ...................................................... ...................................................... ................................................C ...................................................... ......................................................2 ...................................................... ................................................w ...................................................... ................................................) ...................................................... ......................................................8

最佳答案

实际的问题是,当您创建履行时,您将 :params => hash_of_fulfillment_data 传递给 new 方法。只需传递数据即可,不需要 params key。这只是标准的 ActiveResource,没什么特别的。这应该有效:

f = ShopifyAPI::Fulfillment.new(:order_id => order.id, :line_items =>[ {"id" => order.line_items.first.id} ] )
f.prefix_options = { :order_id => order.id }
f.save

关于ruby-on-rails - 使用shopify_api gem的shopify订单履行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12090742/

相关文章:

ruby-on-rails - 在模型的 create 方法中从 URL 获取参数

ruby-on-rails - 如何使用 HAML 保持 DRY?

mysql - 如何db :setup mysql2 database?

javascript - 将数据从搜索栏发送到网址

javascript - 如何在使用 HTML History API 时使用后退按钮导航网站?

java - 从android中的API获取数据

shopify - 如何在 Shopify 中调整此设置以隐藏不可用的变体?

ruby-on-rails - 可以 Rails 应用程序和 rake db :migrate use different database credentials?

javascript - 简单的 javascript 在 Shopify 中不起作用

javascript - Shopify 主题开发 |从选择列表中选择不同的产品变体时更新价格