@@ -216,11 +216,11 @@ final class NewOrderViewModel: ObservableObject {
216216 ///
217217 func createOrderAddressFormViewModel( ) -> CreateOrderAddressFormViewModel {
218218 CreateOrderAddressFormViewModel ( siteID: siteID,
219- addressData: . init( billingAddress: orderDetails . billingAddress,
220- shippingAddress: orderDetails . shippingAddress) ,
219+ addressData: . init( billingAddress: orderSynchronizer . order . billingAddress,
220+ shippingAddress: orderSynchronizer . order . shippingAddress) ,
221221 onAddressUpdate: { [ weak self] updatedAddressData in
222- self ? . orderDetails . billingAddress = updatedAddressData . billingAddress
223- self ? . orderDetails . shippingAddress = updatedAddressData . shippingAddress
222+ let input = Self . createAddressesInput ( from : updatedAddressData )
223+ self ? . orderSynchronizer . setAddresses . send ( input )
224224 self ? . trackCustomerDetailsAdded ( )
225225 } )
226226 }
@@ -542,6 +542,16 @@ private extension NewOrderViewModel {
542542 analytics. track ( event: WooAnalyticsEvent . Orders. orderCreationFailed ( errorContext: String ( describing: error) ,
543543 errorDescription: error. localizedDescription) )
544544 }
545+
546+ /// Creates an `OrderSyncAddressesInput` type from a `NewOrderAddressData` type.
547+ /// Expects `billing` and `shipping` addresses to exists together,
548+ ///
549+ static func createAddressesInput( from data: CreateOrderAddressFormViewModel . NewOrderAddressData ) -> OrderSyncAddressesInput ? {
550+ guard let billingAddress = data. shippingAddress, let shippingAddress = data. shippingAddress else {
551+ return nil
552+ }
553+ return OrderSyncAddressesInput ( billing: billingAddress, shipping: shippingAddress)
554+ }
545555}
546556
547557private extension NewOrderViewModel {
0 commit comments