Class: FacebookAds::AdProductCatalog
- Defined in:
- lib/facebook_ads/ad_product_catalog.rb
Overview
Constant Summary collapse
- FIELDS =
%w[id name vertical product_count feed_count].freeze
Class Method Summary collapse
Instance Method Summary collapse
-
#ad_product_feeds ⇒ Object
has_many ad_product_feeds.
-
#ad_product_groups ⇒ Object
has_many product_groups.
-
#ad_product_sets ⇒ Object
has_many product_sets.
-
#ad_products ⇒ Object
has_many ad_products.
- #create_ad_product(data) ⇒ Object
-
#create_ad_product_feed(name:, schedule:) ⇒ Object
catalog.create_ad_product_feed(name: ‘Test’, schedule: { url: ‘tophatter.com/admin/ad_automation/ad_product_feeds/1.csv’, interval: ‘HOURLY’ }).
-
#create_ad_product_set(name:, filter:) ⇒ Object
catalog.create_ad_product_set(name: ‘Ring Set’, filter: & Accessories > Jewelry > Earrings”}).
Methods inherited from Base
delete, #destroy, find, get, paginate, post, #save, #update
Class Method Details
.all(query = {}) ⇒ Object
7 8 9 |
# File 'lib/facebook_ads/ad_product_catalog.rb', line 7 def all(query = {}) get("/#{FacebookAds.business_id}/product_catalogs", query: query, objectify: true) end |
.create(name:) ⇒ Object
19 20 21 22 23 |
# File 'lib/facebook_ads/ad_product_catalog.rb', line 19 def create(name:) query = { name: name } result = post("/#{FacebookAds.business_id}/product_catalogs", query: query) find(result['id']) end |
.find_by(conditions) ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/facebook_ads/ad_product_catalog.rb', line 11 def find_by(conditions) all.detect do |object| conditions.all? do |key, value| object.send(key) == value end end end |
Instance Method Details
#ad_product_feeds ⇒ Object
has_many ad_product_feeds
28 29 30 |
# File 'lib/facebook_ads/ad_product_catalog.rb', line 28 def ad_product_feeds AdProductFeed.paginate("/#{id}/product_feeds") end |
#ad_product_groups ⇒ Object
has_many product_groups
48 49 50 |
# File 'lib/facebook_ads/ad_product_catalog.rb', line 48 def ad_product_groups AdProductGroup.paginate("/#{id}/product_groups") end |
#ad_product_sets ⇒ Object
has_many product_sets
54 55 56 |
# File 'lib/facebook_ads/ad_product_catalog.rb', line 54 def ad_product_sets AdProductSet.paginate("/#{id}/product_sets") end |
#ad_products ⇒ Object
has_many ad_products
60 61 62 |
# File 'lib/facebook_ads/ad_product_catalog.rb', line 60 def ad_products AdProduct.paginate("/#{id}/products") end |
#create_ad_product(data) ⇒ Object
64 65 66 67 |
# File 'lib/facebook_ads/ad_product_catalog.rb', line 64 def create_ad_product(data) result = AdProductCatalog.post("/#{id}/products", query: data) AdProduct.find(result['id']) end |
#create_ad_product_feed(name:, schedule:) ⇒ Object
catalog.create_ad_product_feed(name: ‘Test’, schedule: { url: ‘tophatter.com/admin/ad_automation/ad_product_feeds/1.csv’, interval: ‘HOURLY’ })
33 34 35 36 37 |
# File 'lib/facebook_ads/ad_product_catalog.rb', line 33 def create_ad_product_feed(name:, schedule:) query = { name: name, schedule: schedule } result = AdProductCatalog.post("/#{id}/product_feeds", query: query) AdProductFeed.find(result['id']) end |
#create_ad_product_set(name:, filter:) ⇒ Object
catalog.create_ad_product_set(name: ‘Ring Set’, filter: & Accessories > Jewelry > Earrings”})
40 41 42 43 44 |
# File 'lib/facebook_ads/ad_product_catalog.rb', line 40 def create_ad_product_set(name:, filter:) query = { name: name, filter: filter.to_json } result = AdProductSet.post("/#{id}/product_sets", query: query) AdProductSet.find(result['id']) end |