繁体   English   中英

获取所有供应商的列表?

[英]Getting list of all vendors?

我正在执行以下操作以将供应商从产品中取出并使用 unique 将其带到前端以列出商店中的每个供应商。

控制器:

@count = ShopifyAPI::Product.count
@n = 1
@products = ShopifyAPI::Product.find(:all, limit: 250, page: @n)
if (@count > 50) && params[:page_number]
  @page_number = params[:page_number].to_i
  @products = ShopifyAPI::Product.find(:all, params: {page: @page_number})
end

前端:

<% @products.map(&:vendor).uniq.each do |vendor| %>
...
...
<% end %>

<% if (@count > 50) && (@page_number.present? && @page_number > 1) %>
  <%= link_to "<", company_shop_vendors_path(shop_id: @shop.id, page_number: (@page_number - 1)) %> <%= link_to "1", company_shop_vendors_path(shop_id: @shop.id, page_number: 1) %> <%= link_to "#{@page_number + 1} >", company_shop_vendors_path(shop_id: @shop.id, page_number: (@page_number + 1)) %>
<% elsif (@count > 50) %>
  <%= link_to "#{@n+1} >", company_shop_vendors_path(shop_id: @shop.id, page_number: (@n += 1)) %>
<% end %>

这让我找到了供应商,但不是我想要的。

整个页面系统是一个糟糕的尝试,我实际上也使用了一个更好的搜索表单。 对产品页面进行分页只会让我在每个页面上找到唯一的供应商,当有数百页时,这毫无意义。

做这个的最好方式是什么?

有没有办法对所有供应商进行分页并将所有供应商放入内存中,然后将所有供应商独特地显示到前端?

此外,唯一的其他选择是将供应商存储在产品 API 请求的数据库中,然后产品创建 webhook ---而不是直接使用 API。

你怎么认为?

令人毛骨悚然的方式,但可能会帮助那些不想遍历产品并且无法通过应用代理进行操作的人

  1. 要求商家访问其商店中的以下 URL

https://{{ shop_doamin }}/admin/products/vendors.json

这将以 JSON 格式列出所有产品供应商。

  1. 要求他们将此 JSON 放入文本框中,将此 JSON 保存在您的本地数据库中并从那里提供服务。

可能会破坏自动化过程。 但是当您不想遍历大数据时会很有帮助。

希望这些信息有意义并可能有所帮助。

您知道 Shopify 有一个 Liquid 结构,它们会向您展示商店的所有供应商吗?

https://help.shopify.com/en/themes/liquid/objects/shop#shop-vendors

因此,您可以使用 App 代理轻松地使用它来向您的 App 发送该列表。 比迭代产品和其他骗局要高效得多。

而不是使用 API 来显示供应商 --- 我确信有一种方法可以做到这一点,同时将结果保存在内存中 --- 我循环浏览产品和产品页面并将供应商存储在我的数据库中并显示它道路。 我允许用户在添加新供应商时“同步”他们的供应商。 我没有实施 webhooks 以防万一有人与拼写错误的新供应商一起生产产品。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM