簡體   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