diff --git a/core/tasks.py b/core/tasks.py index af6dc721..f8d9f286 100644 --- a/core/tasks.py +++ b/core/tasks.py @@ -42,7 +42,10 @@ def update_products_task(): for vendor_class in vendors_classes: vendor = vendor_class() - vendor.update_stock() + try: + vendor.update_stock() + except Exception as e: + logger.warning(f"Skipping {vendor_class} due to error: {e!s}") delete_stale() diff --git a/core/vendors/__init__.py b/core/vendors/__init__.py index 76ec1992..27e69c32 100644 --- a/core/vendors/__init__.py +++ b/core/vendors/__init__.py @@ -148,7 +148,10 @@ class AbstractVendor: def get_vendor_instance(self): try: - return Vendor.objects.get(name=self.vendor_name) + vendor = Vendor.objects.get(name=self.vendor_name) + if vendor.is_active: + return vendor + raise VendorError(f"Vendor {self.vendor_name!r} is inactive...") except Vendor.DoesNotExist: raise Exception(f"No matching vendor found with name {self.vendor_name!r}...")