コード例 #1
0
        magento_catalog_service = self._create_magento_catalog_service(**kwds)
        yogento_catalog_service = self._create_yogento_catalog_service(**kwds)

        magento_skus = set(magento_catalog_service.get_product_skus())
        yogento_skus = set(yogento_catalog_service.get_product_skus())

        yogento_extra_skus = yogento_skus - magento_skus
        if len(yogento_extra_skus) > 0:
            logger.info(
                "deleting products [%s] not present in Magento from Yogento",
                ', '.join(tuple(yogento_extra_skus)))
            for sku in yogento_extra_skus:
                yogento_catalog_service.delete_product_by_sku(sku)

        # Process one SKU at a time, to avoid overloading Magento
        for magento_sku in magento_skus:
            logger.info("getting product '%s' from Magento", magento_sku)
            try:
                magento_product = \
                    magento_catalog_service.get_product_by_sku(magento_sku)
            except NoSuchProductException:
                logger.warning("no such Magento product '%s'", magento_sku)
                continue

            logger.info("putting product '%s' from Magento to Yogento",
                        magento_sku)
            yogento_catalog_service.put_product(magento_product)


Commands.register(SyncProducts)
コード例 #2
0
ファイル: sync_products.py プロジェクト: mikej165/yogento
        magento_skus = set(magento_catalog_service.get_product_skus())
        yogento_skus = set(yogento_catalog_service.get_product_skus())

        yogento_extra_skus = yogento_skus - magento_skus
        if len(yogento_extra_skus) > 0:
            logger.info(
                "deleting products [%s] not present in Magento from Yogento",
                ', '.join(tuple(yogento_extra_skus))
            )
            for sku in yogento_extra_skus:
                yogento_catalog_service.delete_product_by_sku(sku)

        # Process one SKU at a time, to avoid overloading Magento
        for magento_sku in magento_skus:
            logger.info("getting product '%s' from Magento", magento_sku)
            try:
                magento_product = \
                    magento_catalog_service.get_product_by_sku(magento_sku)
            except NoSuchProductException:
                logger.warning("no such Magento product '%s'", magento_sku)
                continue

            logger.info(
                "putting product '%s' from Magento to Yogento",
                magento_sku
            )
            yogento_catalog_service.put_product(magento_product)

Commands.register(SyncProducts)
コード例 #3
0
ファイル: main.py プロジェクト: mikej165/yogento
 def _get_commands(cls):
     return Commands.create()
コード例 #4
0
ファイル: main.py プロジェクト: mikej165/yogento
 def _get_commands(cls):
     return Commands.create()
コード例 #5
0
ファイル: analyze_catalog.py プロジェクト: mikej165/yogento
    def __call__(self, **kwds):
        catalog_service = self._create_magento_catalog_service(**kwds)
        product_skus = catalog_service.get_product_skus()

        product_field_counts = Counter()
        product_i = 0
        for product_sku in product_skus:
            try:
                product = catalog_service.get_product_by_sku(product_sku)
            except KeyboardInterrupt:
                break
            except NoSuchProductException:
                continue
            for attr in dir(product):
                if attr[0] == '_':
                    continue
                value = getattr(product, attr)
                if ismethod(value):
                    continue
                product_field_counts[attr] += 1
            product_i += 1
            print "(%u/%u) %s" % (product_i, len(product_skus), product_sku)

        print product_i
        for field_name in sorted(product_field_counts.iterkeys()):
            count = product_field_counts[field_name]
            if count == product_i:
                print 'required', field_name

Commands.register(AnalyzeCatalog)
コード例 #6
0
ファイル: analyze_catalog.py プロジェクト: mikej165/yogento
        catalog_service = self._create_magento_catalog_service(**kwds)
        product_skus = catalog_service.get_product_skus()

        product_field_counts = Counter()
        product_i = 0
        for product_sku in product_skus:
            try:
                product = catalog_service.get_product_by_sku(product_sku)
            except KeyboardInterrupt:
                break
            except NoSuchProductException:
                continue
            for attr in dir(product):
                if attr[0] == "_":
                    continue
                value = getattr(product, attr)
                if ismethod(value):
                    continue
                product_field_counts[attr] += 1
            product_i += 1
            print "(%u/%u) %s" % (product_i, len(product_skus), product_sku)

        print product_i
        for field_name in sorted(product_field_counts.iterkeys()):
            count = product_field_counts[field_name]
            if count == product_i:
                print "required", field_name


Commands.register(AnalyzeCatalog)