diff --git a/corporal/batch/vendorcatalog.py b/corporal/batch/vendorcatalog.py index 7c7aef0..f3b1643 100644 --- a/corporal/batch/vendorcatalog.py +++ b/corporal/batch/vendorcatalog.py @@ -35,14 +35,21 @@ class VendorCatalogHandler(base.VendorCatalogHandler): self.core_products_by_upc = self.cache_model(self.core_session, corepos.Product, key='upc', - query=query) + query=query, + progress=progress) query = self.core_session.query(corepos.VendorItem)\ .filter(corepos.VendorItem.vendor_id == int(batch.vendor_id)) self.core_vendor_items_by_sku = self.cache_model(self.core_session, corepos.VendorItem, key='sku', - query=query) + query=query, + progress=progress) + self.core_vendor_items_by_upc = self.cache_model(self.core_session, + corepos.VendorItem, + key='upc', + query=query, + progress=progress) setup_populate = setup_common setup_refresh = setup_common @@ -73,7 +80,10 @@ class VendorCatalogHandler(base.VendorCatalogHandler): core_product = self.core_products_by_upc.get(row.item_id) # find the CORE `vendorItems` record, matching by `vendorItems.sku` + # preferably, but falling back to match on `vendorItems.upc` core_vendor_item = self.core_vendor_items_by_sku.get(row.vendor_code) + if not core_vendor_item: + core_vendor_item = self.core_vendor_items_by_upc.get(row.item_id) # if the catalog UPC is not found in `products` but the SKU *is* found # in `vendorItems` *and* the latter ties back to valid `products`