@@ -66,6 +66,16 @@ public class OrderStore: Store {
6666 createSimplePaymentsOrder ( siteID: siteID, amount: amount, taxable: taxable, onCompletion: onCompletion)
6767 case let . createOrder( siteID, order, onCompletion) :
6868 createOrder ( siteID: siteID, order: order, onCompletion: onCompletion)
69+
70+ case let . updateSimplePaymentsOrder( siteID, orderID, feeID, amount, taxable, orderNote, email, onCompletion) :
71+ updateSimplePaymentsOrder ( siteID: siteID,
72+ orderID: orderID,
73+ feeID: feeID,
74+ amount: amount,
75+ taxable: taxable,
76+ orderNote: orderNote,
77+ email: email,
78+ onCompletion: onCompletion)
6979 }
7080 }
7181}
@@ -267,6 +277,41 @@ private extension OrderStore {
267277 }
268278 }
269279
280+ /// Updates a simple payment order with the specified values.
281+ ///
282+ func updateSimplePaymentsOrder( siteID: Int64 ,
283+ orderID: Int64 ,
284+ feeID: Int64 ,
285+ amount: String ,
286+ taxable: Bool ,
287+ orderNote: String ? ,
288+ email: String ? ,
289+ onCompletion: @escaping ( Result < Order , Error > ) -> Void ) {
290+
291+ // Recreate the original order
292+ let originalOrder = OrderFactory . simplePaymentsOrder ( amount: amount, taxable: taxable)
293+
294+ // Create updated fields
295+ let newFee = OrderFactory . simplePaymentFee ( feeID: feeID, amount: amount, taxable: taxable)
296+ let newBillingAddress = Address ( firstName: " " ,
297+ lastName: " " ,
298+ company: nil ,
299+ address1: " " ,
300+ address2: nil ,
301+ city: " " ,
302+ state: " " ,
303+ postcode: " " ,
304+ country: " " ,
305+ phone: nil ,
306+ email: email)
307+
308+ // Set new fields
309+ let updatedOrder = originalOrder. copy ( orderID: orderID, customerNote: orderNote, billingAddress: newBillingAddress, fees: [ newFee] )
310+ let updateFields : [ OrderUpdateField ] = [ . customerNote, . billingAddress, . fees]
311+
312+ updateOrder ( siteID: siteID, order: updatedOrder, fields: updateFields, onCompletion: onCompletion)
313+ }
314+
270315 /// Creates a manual order with the provided order details.
271316 ///
272317 func createOrder( siteID: Int64 , order: Order , onCompletion: @escaping ( Result < Order , Error > ) -> Void ) {
0 commit comments