Class: FacebookAds::AdProductCatalog

Inherits:
Base
  • Object
show all
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

Methods inherited from Base

delete, #destroy, find, find_by, get, paginate, post, #save, #update

Class Method Details

.all(query = {}) ⇒ Object



9
10
11
# File 'lib/facebook_ads/ad_product_catalog.rb', line 9

def all(query = {})
  get("/#{FacebookAds.business_id}/owned_product_catalogs", query: query, objectify: true)
end

.create(name:) ⇒ Object



13
14
15
16
17
# File 'lib/facebook_ads/ad_product_catalog.rb', line 13

def create(name:)
  query = { name: name }
  result = post("/#{FacebookAds.business_id}/owned_product_catalogs", query: query)
  find(result['id'])
end

Instance Method Details

#ad_product_feedsObject

has_many ad_product_feeds



22
23
24
# File 'lib/facebook_ads/ad_product_catalog.rb', line 22

def ad_product_feeds
  AdProductFeed.paginate("/#{id}/product_feeds")
end

#ad_product_groupsObject

has_many product_groups



42
43
44
# File 'lib/facebook_ads/ad_product_catalog.rb', line 42

def ad_product_groups
  AdProductGroup.paginate("/#{id}/product_groups")
end

#ad_product_setsObject

has_many product_sets



48
49
50
# File 'lib/facebook_ads/ad_product_catalog.rb', line 48

def ad_product_sets
  AdProductSet.paginate("/#{id}/product_sets")
end

#ad_productsObject

has_many ad_products



54
55
56
# File 'lib/facebook_ads/ad_product_catalog.rb', line 54

def ad_products
  AdProduct.paginate("/#{id}/products")
end

#create_ad_product(data) ⇒ Object



58
59
60
61
# File 'lib/facebook_ads/ad_product_catalog.rb', line 58

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’ })



27
28
29
30
31
# File 'lib/facebook_ads/ad_product_catalog.rb', line 27

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”})



34
35
36
37
38
# File 'lib/facebook_ads/ad_product_catalog.rb', line 34

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