Module: PrestaShopAutomation::OrdersActions
- Included in:
- PrestaShop
- Defined in:
- lib/actions/orders.rb
Instance Method Summary collapse
- #add_product_to_cart(id, quantity = 1) ⇒ Object
- #add_products_to_cart(products) ⇒ Object
- #order_current_cart_5_steps(options) ⇒ Object
- #order_current_cart_opc(options) ⇒ Object
- #validate_order(options) ⇒ Object
Instance Method Details
#add_product_to_cart(id, quantity = 1) ⇒ Object
6 7 8 9 10 11 |
# File 'lib/actions/orders.rb', line 6 def add_product_to_cart id, quantity=1 visit @front_office_url, "/index.php?id_product=#{id}&controller=product&id_lang=1" fill_in 'quantity_wanted', :with => (quantity || 1) find('#add_to_cart button').click sleep 1 end |
#add_products_to_cart(products) ⇒ Object
13 14 15 16 17 |
# File 'lib/actions/orders.rb', line 13 def add_products_to_cart products products.each do |product| add_product_to_cart product[:id], product[:quantity] end end |
#order_current_cart_5_steps(options) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/actions/orders.rb', line 19 def order_current_cart_5_steps visit @front_office_url, "/index.php?controller=order" find('a.standard-checkout').click find('button[name="processAddress"]').click click_label_for "cgv" click_label_for "gift" if [:gift_wrapping] find(:xpath, '//tr[contains(., "'+[:carrier]+'")]').find('input[type=radio]', :visible => false).click 'processCarrier' click 'a.bankwire' click '#cart_navigation button' order_id = current_url[/\bid_order=(\d+)/, 1].to_i expect(order_id).to be > 0 return order_id end |
#order_current_cart_opc(options) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/actions/orders.rb', line 34 def order_current_cart_opc visit @front_office_url, "/index.php?controller=order-opc" visit @front_office_url, "/index.php?controller=order-opc" #yeah, twice, there's a bug click_label_for "cgv" click_label_for "gift" if [:gift_wrapping] find(:xpath, '//tr[contains(., "'+[:carrier]+'")]').find('input[type=radio]', :visible => false).click click 'a.bankwire' click '#cart_navigation button' order_id = current_url[/\bid_order=(\d+)/, 1].to_i expect(order_id).to be > 0 return order_id end |
#validate_order(options) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/actions/orders.rb', line 47 def validate_order goto_admin_tab 'AdminOrders' visit @back_office_url, first('td.pointer[onclick]')['onclick'][/\blocation\s*=\s*'(.*?)'/, 1].sub(/\bid_order=\d+/, "id_order=#{[:id]}") click '#id_order_state_chosen' click 'li[data-option-array-index="6"]' #hardcoded for now: payment accepted 'submitState' pdf_url = find('a[href*="generateInvoicePDF"]')['href'] if [:dump_pdf_to] = driver.browser.manage. = .map do |c| "#{c[:name]}=#{c[:value]}" end.join ";" cmd = "curl --url #{Shellwords.shellescape pdf_url} -b \"#{}\" -o #{Shellwords.shellescape [:dump_pdf_to]} 2>/dev/null" `#{cmd}` #download the PDF end if [:get_invoice_json] visit pdf_url+'&debug=1' return JSON.parse(find('body').text) end end |