File tree Expand file tree Collapse file tree 2 files changed +21
-10
lines changed
WooCommerce/Classes/ViewModels/Order Details Expand file tree Collapse file tree 2 files changed +21
-10
lines changed Original file line number Diff line number Diff line change @@ -192,18 +192,23 @@ extension OrderDetailsViewModel {
192192 syncState = . syncing
193193
194194 group. enter ( )
195- syncOrder { _ in
196- group. leave ( )
197- }
195+ syncOrder { [ weak self] _ in
196+ defer {
197+ group. leave ( )
198+ }
198199
199- group. enter ( )
200- syncProducts { _ in
201- group. leave ( )
202- }
200+ // Products require order.items data, so sync them only after the order is loaded
201+ guard let self = self else { return }
203202
204- group. enter ( )
205- syncProductVariations { _ in
206- group. leave ( )
203+ group. enter ( )
204+ self . syncProducts { _ in
205+ group. leave ( )
206+ }
207+
208+ group. enter ( )
209+ self . syncProductVariations { _ in
210+ group. leave ( )
211+ }
207212 }
208213
209214 group. enter ( )
Original file line number Diff line number Diff line change @@ -211,6 +211,12 @@ private extension ProductStore {
211211 }
212212 }
213213
214+ // Do not trigger API request for empty array of items
215+ guard !missingIDs. isEmpty else {
216+ onCompletion ( nil )
217+ return
218+ }
219+
214220 remote. loadProducts ( for: order. siteID, by: missingIDs) { [ weak self] result in
215221 switch result {
216222 case . success( let products) :
You can’t perform that action at this time.
0 commit comments