我正在尝试合并地址和交付,并在solidus结帐过程中将其作为地址单步执行。面对几个问题。我遵循了以下流程:
order_decorator 中的 remove_checkout_step :delivery
在重写 _address.html
中添加以下代码 <%= form.fields_for :shipments do |ship_form| %>
<div class="shipment">
<h5 class="stock-shipping-method-title"><%= Spree.t(:shipping_method) %></h5>
<ul class="field radios shipping-methods">
<%= fine %>
<% ship_form.object.shipping_rates.each do |rate| %>
<li class="shipping-method">
<label>
<%= ship_form.radio_button :selected_shipping_rate_id, rate.id %>
<span class="rate-name"><%= rate.name %></span>
<span class="rate-cost"><%= rate.display_cost %></span>
</label>
</li>
<% end %>
</ul>
</div>
<% end %>
但是用于选择运输方式的单选按钮不会出现。我甚至在checkout_controller的 before_address 中调用了 before_delivery 回调函数。
任何建议都非常有用
答案 0 :(得分:0)
首先,只有在指定了发货地址时才会发货,因此这应该在address
步之后。
也许您可以在地址步骤中禁用此表单,并在填写(保存)地址时启用它。在这种情况下,您不必删除交付步骤,而是使用通常的狂欢流程,只需添加ajax请求以保存地址并移至交付步骤,然后启用货件的表单。
此外,上述解决方案可确保订单创建/更新的管理流程保持不变。
仅供参考:通过删除递送步骤,您基本上已从应用程序中删除了货件的创建,但这不是您想要的,对吧?