4

アプリケーションで spree 2.0.0 を使用しています。Spree チェックアウトを編集する方法、または Spree チェックアウト プロセス中に「ステップ」を完全に削除/無効にする方法を知りたいだけです。

これについて何か考えはありますか?

4

3 に答える 3

11

ドキュメンテーションが言うように、ヘルパー メソッドを使用できますremove_checkout_step(これは、チェックアウト プロセス全体を再定義するよりもはるかに明確です)。たとえば、次のようになります。

Spree::Order.class_eval do
  # ...
  remove_checkout_step :delivery
  # ...
end
于 2013-08-06T12:01:51.703 に答える
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

例: 配信状態を削除する場合は、コメント アウトするだけです。任意のステップをコメント アウトできます。

詳細については、ドキュメントを参照してください。

于 2013-08-06T12:04:29.933 に答える