所以,我想设置我的Spree商店,以便在我们在后端创建订单时不会发送确认电子邮件,因为我们的客户会在我们的商店网站之外下订单,我们希望将其输入到我们的商店网站中尽管如此,狂欢数据库。我们可以想到这样做的最好方法(如果你有另一种方式,无论如何都是chime)是破坏订单模型中的这些代码(你可以在/ core / app / models / spree / order找到它) .RB):
def finalize!
# lock all adjustments (coupon promotions, etc.)
all_adjustments.each{|a| a.close}
# update payment and shipment(s) states, and save
updater.update_payment_state
shipments.each do |shipment|
shipment.update!(self)
shipment.finalize!
end
updater.update_shipment_state
save!
updater.run_hooks
touch :completed_at
if paid? #THIS CONDITIONAL IS THE BIT WE ADDED
deliver_order_confirmation_email unless confirmation_delivered?
end
consider_risk
end
现在只需测试这个问题。可以通过GUI测试的唯一一种支付是检查,我需要查看这是否使用已授权/未授权/捕获/未捕获的信用卡付款(因为Spree的文档有资格作为payment_state的'balance_due','待定'或'付费'很糟糕)。所以我一直在尝试使用工厂女孩的东西来制作这样的订单,看看是否发送了确认电子邮件。然而,我唯一能找到的用于测试确认电子邮件的内容涉及发送一封,而且我找不到任何可以帮助我为特定订单建立工厂的东西。我错过了什么吗?