module Tagalys

Attributes

configuration[RW]

Public Class Methods

bulk_product_sync(link, product_count, callback_url = nil) click to toggle source
# File lib/tagalys.rb, line 159
def bulk_product_sync(link, product_count, callback_url = nil)
  request_body = {
    identification: identification,
    link: link,
    updates_count: product_count,
    callback_url: callback_url
  }
  create_response = request_tagalys('/products/sync_feed', request_body)
end
configure() { |configuration| ... } click to toggle source
# File lib/tagalys.rb, line 18
def configure
  yield(configuration)
end
create_store(currencies, fields, tag_sets, sort_options) click to toggle source
# File lib/tagalys.rb, line 128
def create_store(currencies, fields, tag_sets, sort_options)
  request_body = {
    identification: identification,
    stores: [
      {
        id: "1",
        label: "Store 1",
        currencies: currencies,
        fields: fields,
        tag_sets: tag_sets,
        sort_options: sort_options,
        locale: "en_US",
        timezone: "India/Kolkata",
        multi_currency_mode: "exchange_rate",
        products_count: 21532
      }
    ]
  }
  create_response = request_tagalys('/configuration', request_body)
end
get_best_selling_products() click to toggle source
# File lib/tagalys.rb, line 99
def get_best_selling_products
  request_body = {
    identification: identification,
    max_products: 16,
    request: [
      "details",
      "results"
    ]
  }.compact
  search_response = request_tagalys("/recommendations/bestsellers", request_body)
end
get_page_details(page_name, filters = nil, sort = nil, page = 1, per_page = 30) click to toggle source
# File lib/tagalys.rb, line 57
def get_page_details(page_name, filters = nil, sort = nil, page = 1, per_page = 30)
  request_body = {
    identification: identification,
    sort: sort,
    f: filters,
    page: page,
    per_page: per_page,
    request: [
      "banners",
      "details",
      "filters",
      "results",
      "sort_options",
      "total",
      "variables"
    ]
  }.compact
  search_response = request_tagalys('/mpages/' + page_name, request_body)
end
get_page_list(page = 1, per_page = 30) click to toggle source
# File lib/tagalys.rb, line 77
def get_page_list(page = 1, per_page = 30)
  request_body = {
    identification: identification,
    request: ["url_component", "variables"],
    page: page,
    per_page: per_page
  }.compact
  search_response = request_tagalys('/mpages/', request_body)
end
get_recommendation(recommendation_name) click to toggle source

recommendation_name can be one of the following new_arrivals, bestsellers, most_viewed, top_discounts_percentage, top_discounts_amount, recently_viewed

# File lib/tagalys.rb, line 114
def get_recommendation(recommendation_name)
  request_body = {
    identification: identification,
    max_products: 16,
    request: [
      "details",
      "results"
    ]
  }.compact
  search_response = request_tagalys("/recommendations/" + recommendation_name, request_body)
end
get_similar_products(product_id) click to toggle source
# File lib/tagalys.rb, line 87
def get_similar_products(product_id)
  request_body = {
    identification: identification,
    max_products: 16,
    request: [
      "details",
      "results"
    ]
  }.compact
  search_response = request_tagalys("/products/#{product_id}/similar", request_body)
end
identification() click to toggle source
# File lib/tagalys.rb, line 182
def identification
  {
    client_code: configuration.client_code,
    store_id: configuration.store_id,
    api_key: configuration.api_key
  }
end
product_sync(link, product_count, callback_url = nil) click to toggle source
# File lib/tagalys.rb, line 149
def product_sync(link, product_count, callback_url = nil)
  request_body = {
    identification: identification,
    link: link,
    updates_count: product_count,
    callback_url: callback_url
  }
  create_response = request_tagalys('/products/sync_updates', request_body)
end
request_tagalys(path, request_body) click to toggle source
# File lib/tagalys.rb, line 169
def request_tagalys(path, request_body)
  uri = URI.parse("https://api-r1.tagalys.com/v1" + path)
  header = {'Content-Type': 'application/json'}
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  request = Net::HTTP::Post.new(uri.request_uri, header)
  puts request_body.to_json
  request.body = request_body.to_json
  # Send the request
  response = http.request(request)
  return JSON.parse(response.body)
end
reset() click to toggle source
# File lib/tagalys.rb, line 14
def reset
  @configuration = Configuration.new
end