2012-10-21 62 views
4

如何删除Spree结帐例程中的帐单(或发货)地址?Spree删除帐单地址

Spree::Order.class_eval do 
    checkout_flow do 
    go_to_state :address 
    go_to_state :payment, :if => lambda { |order| order.payment_required? } 
    go_to_state :confirm, :if => lambda { |order| order.confirmation_required? } 
    go_to_state :complete 
    remove_transition :from => :delivery, :to => :confirm 
    end 
end 

由于不必传送步骤:我使用的是大礼包1.3

回答

7

您可以通过把这个代码的应用程序内的app/models/spree/order_decorator.rb您移除checkout_flow定义传送步骤去除航运地址那里,Spree将不会要求提供订单的送货地址或送货信息。

+1

我已经试过了,但我仍然得到验证错误(在交付为必填项)。货物字段已从您的地址表单中删除。 – Maoko

+0

是的..我也得到验证错误:( – shajin

0

我对这个替代的,如果你正在使用大礼包核心

在你看来/大礼包/结算/编辑文件,还有一种涉及error_messages.html.erb =渲染渲染声明:部分=>'spree/shared/error_messages',:locals => {:target => @order}

现在,您必须从_error_messages.html.erb中删除“ship”名称,然后它不会显示此内容有点错误。

让你大礼包/共享/ _error_message文件中的一些以下更改:

-target.errors.full_messages.each做|留言|
        -unless(msg.include?( “船舶”))
                =味精

记住,更改也是错误计数因此这里使用循环。 目前我没有使用它,所以使它评论

// = T在GitHub上和计算器同样的问题(:errors_prohibited_this_record_from_being_saved,数=> target.errors.count)


我也作出了评论 - https://github.com/spree/spree/issues/2571#issuecomment-13769093

https://stackoverflow.com/questions/14891781/how-to-remove-the-shipping-address-validation-in-spree-checkout-process/14957973#comment20997203_14957973