class AmazonSellerCentral::OrdersPage
Constants
- DATE_CELL_INDEX
- ORDER_CELL_INDEX
- STATUS_CELL_INDEX
Attributes
body[RW]
Public Class Methods
has_next?(page)
click to toggle source
# File lib/amazon_seller_central/orders_page.rb, line 14 def self.has_next?(page) has_next ||= page.search(".//div[@id='nextPage']").any? end
new()
click to toggle source
# File lib/amazon_seller_central/orders_page.rb, line 10 def initialize @page_no = 0 end
next_page(page, mech, uri_base)
click to toggle source
# File lib/amazon_seller_central/orders_page.rb, line 18 def self.next_page(page, mech, uri_base) next_page ||= begin raise NoNextPageAvailableError unless has_next? next_page = mech.agent.get("#{uri_base}&searchPageOffset=#{@page_no + 1}") end end
order_row_to_object(row)
click to toggle source
# File lib/amazon_seller_central/orders_page.rb, line 47 def self.order_row_to_object(row) o = Order.new row.css('td').each_with_index do |td, i| txt = td.text.strip case i when DATE_CELL_INDEX o.date = Time.parse(txt) when ORDER_CELL_INDEX o.order_id = txt.match(/^(\d{3}-\d+-\d+)\s/)[1] when STATUS_CELL_INDEX o.status = txt end end o end
pending_orders()
click to toggle source
# File lib/amazon_seller_central/orders_page.rb, line 26 def self.pending_orders uri_base = 'https://sellercentral.amazon.com/gp/orders-v2/list/ref=ag_myo_dos4_home?ie=UTF8&showCancelled=0&searchType=OrderStatus&ignoreSearchType=1&statusFilter=Pending&searchFulfillers=mfn&preSelectedRange=30&searchDateOption=preSelected&sortBy=OrderStatusDescending&itemsPerPage=100' mech = AmazonSellerCentral.mechanizer mech.login_to_seller_central page = mech.agent.get(uri_base) pending_orders = [] begin (page.parser.css('tr.list-row-odd') + page.parser.css('tr.list-row-even')).each do |row| pending_orders << order_row_to_object(row) end if has_next?(page) page = next_page(page, mech, uri_base) had_next = true else had_next = false end end while had_next pending_orders end