 
 }
 
+private extension PurchasesOrchestrator {
+
+    static func logPurchase(product: StoreProduct, package: Package?) {
+        if let package = package {
+            Logger.purchase(
+                Strings.purchase.purchasing_product_from_package(
+                    productIdentifier: product.productIdentifier,
+                    offeringIdentifier: package.offeringIdentifier
+                )
+            )
+        } else {
+            Logger.purchase(Strings.purchase.purchasing_product(productIdentifier: product.productIdentifier))
+        }
+    }
+
+}
+
 private extension Error {
 
     var isCancelledError: Bool {

                  package: Package?,
                  promotionalOffer: PromotionalOffer,
                  completion: @escaping PurchaseCompletedBlock) {
        if let sk1Product = product.sk1Product {
            purchase(sk1Product: sk1Product,
                     promotionalOffer: promotionalOffer,

        preventPurchasePopupCallFromTriggeringCacheRefresh(appUserID: appUserID)

        if let presentedOfferingIdentifier = package?.offeringIdentifier {
            lock.lock()
            presentedOfferingIDsByProductID[productIdentifier] = presentedOfferingIdentifier
            lock.unlock()

        }

        productsManager.cacheProduct(sk1Product)
