2013-08-06 73 views

回答

10

由於Documentation說,你可以使用remove_checkout_step helper方法(這比重新定義整個結賬過程也更清晰),例如:

Spree::Order.class_eval do 
    # ... 
    remove_checkout_step :delivery 
    # ... 
end 
+0

嗨馬雷克。非常感謝您的解決方案,絕對是在狂熱文檔中聲明的。其實我之前嘗試過,但是當我填充地址字段後,它會將我重定向到購物車頁面,即使我已將東西添加到購物車。它可能是特定應用程序,但你的答案肯定是一個解決方案。 –

6

我只是找到了解決辦法。這裏是。

Step 1:Create app/models/order_decorator.rb file 

Step 2: Copy following code in your order_decorator.rb 

Spree::Order.class_eval do 
    checkout_flow do 
    go_to_state :address 
    #go_to_state :delivery 
    go_to_state :payment, if: ->(order) { 
     order.update_totals 
     order.payment_required? 
    } 
    go_to_state :confirm, if: ->(order) { order.confirmation_required? } 
    go_to_state :complete, if: ->(order) { 
     (order.payment_required? && order.has_unprocessed_payments?) || !order.payment_required? 
    } 
    remove_transition from: :delivery, to: :confirm 
    end 
end 

例如:如果你想刪除交貨狀態只是註釋掉。你可以註釋掉任何步驟。

你可以在documentation找到更多的信息。

3

在施普雷默認結帳步驟

  1. 地址
  2. 交貨
  3. 付款
  4. 確認

狂歡讓你修改結帳過程中添加或使用相應的幫手刪除步驟。

  • insert_checkout_step
  • remove_checkout_step

你的情況,你應該remove_checkout_step去(除去結帳步驟) 的remove_checkout_step將一次刪除只有一個結帳步驟:

  • remove_checkout_step:地址
  • remove_checkout_step:傳遞