def power_search(search_properties, options={})
      options = {page_number: 1, product_type: [], min_price: '', nvalues: '', srch_in_desc: '',
                 brand_list: [], max_price: ''}.merge(options)
      request = {
          'PageNumber'       => options[:page_number],
          'ProductType'      => options[:product_type],
          'SearchProperties' => search_properties,
          'MinPrice'         => options[:min_price],
          'NValues'          => options[:nvalues],
          'SrchInDesc'       => options[:srch_in_desc],
          'BrandList'        => options[:brand_list],
          'MaxPrice'         => options[:max_price]
      }

      JSON.parse(api_post('PowerSearch.egg', nil, request).body, {quirks_mode: true})
    end
def power_search(search_properties, options={})
      options = {page_number: 1, product_type: [], min_price: '', nvalues: '', srch_in_desc: '',
                 brand_list: [], max_price: ''}.merge(options)
      request = {
          'PageNumber'       => options[:page_number],
          'ProductType'      => options[:product_type],
          'SearchProperties' => search_properties,
          'MinPrice'         => options[:min_price],
          'NValues'          => options[:nvalues],
          'SrchInDesc'       => options[:srch_in_desc],
          'BrandList'        => options[:brand_list],
          'MaxPrice'         => options[:max_price]
      }

      JSON.parse(api_post('PowerSearch.egg', nil, request).body, {quirks_mode: true})
    end
retrieves a single page of products given a query specified by an options hash. See options below.

 @param [Array] search_properties
 @param [Integer] page_number of the paginated power search results
 @param [Array] product_type
 @param [String] min_price
 @param [String] nvalues
 @param [String] srch_in_desc
 @param [Array] brand_list
 @param [String] max_price