From 66c44b1bf912c4c77630e8766079773c422b31dd Mon Sep 17 00:00:00 2001 From: wagnert Date: Fri, 30 Dec 2016 17:55:24 +0100 Subject: [PATCH 1/2] Refactoring for generalization --- .../ce/212/conf/techdivision-import.json | 86 +- .../magento-import_20161024_194026_01.csv | 1232 +++++++++++++++++ .../magento-import_20161024_194026_02.csv | 0 .../magento-import_20161024_194026_03.csv | 0 .../magento-import_20161024_194026_04.csv | 0 .../magento-import_20161024_194026_01.csv | 0 .../magento-import_20161024_194026_02.csv | 986 +++++++++++++ .../magento-import_20161024_194026_03.csv | 986 +++++++++++++ .../magento-import_20161024_194026_04.csv | 1098 +++++++++++++++ .../ee/212/conf/techdivision-import.json | 88 +- .../magento-import_20161021_161909_01.csv | 1232 +++++++++++++++++ .../magento-import_20161021_161909_02.csv | 0 .../magento-import_20161021_161909_03.csv | 0 .../magento-import_20161021_161909_04.csv | 0 .../magento-import_20161021_161909_01.csv | 0 .../magento-import_20161021_161909_02.csv | 986 +++++++++++++ .../magento-import_20161021_161909_03.csv | 986 +++++++++++++ .../magento-import_20161021_161909_04.csv | 1100 +++++++++++++++ .../EeProductBunchProcessorFactory.php | 54 +- src/Services/ProductBunchProcessorFactory.php | 204 ++- 20 files changed, 8835 insertions(+), 203 deletions(-) create mode 100644 projects/sample-data/ce/212/data/add-update/magento-import_20161024_194026_01.csv rename projects/sample-data/ce/212/data/{ => add-update}/magento-import_20161024_194026_02.csv (100%) rename projects/sample-data/ce/212/data/{ => add-update}/magento-import_20161024_194026_03.csv (100%) rename projects/sample-data/ce/212/data/{ => add-update}/magento-import_20161024_194026_04.csv (100%) rename projects/sample-data/ce/212/data/{ => replace}/magento-import_20161024_194026_01.csv (100%) create mode 100644 projects/sample-data/ce/212/data/replace/magento-import_20161024_194026_02.csv create mode 100644 projects/sample-data/ce/212/data/replace/magento-import_20161024_194026_03.csv create mode 100644 projects/sample-data/ce/212/data/replace/magento-import_20161024_194026_04.csv create mode 100644 projects/sample-data/ee/212/data/add-update/magento-import_20161021_161909_01.csv rename projects/sample-data/ee/212/data/{ => add-update}/magento-import_20161021_161909_02.csv (100%) rename projects/sample-data/ee/212/data/{ => add-update}/magento-import_20161021_161909_03.csv (100%) rename projects/sample-data/ee/212/data/{ => add-update}/magento-import_20161021_161909_04.csv (100%) rename projects/sample-data/ee/212/data/{ => replace}/magento-import_20161021_161909_01.csv (100%) create mode 100644 projects/sample-data/ee/212/data/replace/magento-import_20161021_161909_02.csv create mode 100644 projects/sample-data/ee/212/data/replace/magento-import_20161021_161909_03.csv create mode 100644 projects/sample-data/ee/212/data/replace/magento-import_20161021_161909_04.csv diff --git a/projects/sample-data/ce/212/conf/techdivision-import.json b/projects/sample-data/ce/212/conf/techdivision-import.json index 97093df3..e7405dee 100644 --- a/projects/sample-data/ce/212/conf/techdivision-import.json +++ b/projects/sample-data/ce/212/conf/techdivision-import.json @@ -56,7 +56,7 @@ "import": [ "TechDivision\\Import\\Product\\Observers\\ProductObserver", "TechDivision\\Import\\Product\\Observers\\ProductWebsiteObserver", - "TechDivision\\Import\\Product\\Observers\\ProductCategoryObserver", + "TechDivision\\Import\\Product\\Observers\\CategoryProductObserver", "TechDivision\\Import\\Product\\Observers\\ProductInventoryObserver", "TechDivision\\Import\\Product\\Observers\\UrlRewriteObserver", "TechDivision\\Import\\Product\\Observers\\ProductAttributeObserver", @@ -303,11 +303,11 @@ { "import": [ "TechDivision\\Import\\Product\\Observers\\ProductUpdateObserver", - "TechDivision\\Import\\Product\\Observers\\ProductWebsiteObserver", - "TechDivision\\Import\\Product\\Observers\\ProductCategoryObserver", - "TechDivision\\Import\\Product\\Observers\\ProductInventoryObserver", - "TechDivision\\Import\\Product\\Observers\\UrlRewriteObserver", - "TechDivision\\Import\\Product\\Observers\\ProductAttributeObserver", + "TechDivision\\Import\\Product\\Observers\\ProductWebsiteUpdateObserver", + "TechDivision\\Import\\Product\\Observers\\CategoryProductUpdateObserver", + "TechDivision\\Import\\Product\\Observers\\ProductInventoryUpdateObserver", + "TechDivision\\Import\\Product\\Observers\\UrlRewriteUpdateObserver", + "TechDivision\\Import\\Product\\Observers\\ProductAttributeUpdateObserver", "TechDivision\\Import\\Product\\Variant\\Observers\\ProductVariantObserver", "TechDivision\\Import\\Product\\Bundle\\Observers\\ProductBundleObserver", "TechDivision\\Import\\Product\\Media\\Observers\\ProductMediaObserver", @@ -452,80 +452,6 @@ ] } ] - }, - { - "class-name": "TechDivision\\Import\\Product\\Variant\\Subjects\\VariantSubject", - "processor-factory" : "TechDivision\\Import\\Cli\\Services\\ProductVariantProcessorFactory", - "utility-class-name" : "TechDivision\\Import\\Product\\Variant\\Utils\\SqlStatements", - "prefix": "variants", - "source-dir": "projects/sample-data/tmp", - "target-dir": "projects/sample-data/tmp", - "observers": [ - { - "import": [ - "TechDivision\\Import\\Product\\Variant\\Observers\\VariantObserver" - ] - } - ] - }, - { - "class-name": "TechDivision\\Import\\Product\\Bundle\\Subjects\\BundleSubject", - "processor-factory" : "TechDivision\\Import\\Cli\\Services\\ProductBundleProcessorFactory", - "utility-class-name" : "TechDivision\\Import\\Product\\Bundle\\Utils\\SqlStatements", - "prefix": "bundles", - "source-dir": "projects/sample-data/tmp", - "target-dir": "projects/sample-data/tmp", - "observers": [ - { - "import": [ - "TechDivision\\Import\\Product\\Bundle\\Observers\\BundleOptionObserver", - "TechDivision\\Import\\Product\\Bundle\\Observers\\BundleOptionValueObserver", - "TechDivision\\Import\\Product\\Bundle\\Observers\\BundleSelectionObserver", - "TechDivision\\Import\\Product\\Bundle\\Observers\\BundleSelectionPriceObserver" - ] - } - ] - }, - { - "class-name": "TechDivision\\Import\\Product\\Media\\Subjects\\MediaSubject", - "processor-factory" : "TechDivision\\Import\\Cli\\Services\\ProductMediaProcessorFactory", - "utility-class-name" : "TechDivision\\Import\\Product\\Media\\Utils\\SqlStatements", - "prefix": "media", - "source-dir": "projects/sample-data/tmp", - "target-dir": "projects/sample-data/tmp", - "params" : [ - { - "root-directory" : "/", - "media-directory" : "/opt/appserver/webapps/magento2_ce212/pub/media/catalog/product", - "images-file-directory" : "projects/sample-data/magento2-sample-data/pub/media/catalog/product" - } - ], - "observers": [ - { - "pre-import" : [ - "TechDivision\\Import\\Product\\Media\\Observers\\FileUploadObserver" - ], - "import": [ - "TechDivision\\Import\\Product\\Media\\Observers\\MediaGalleryObserver", - "TechDivision\\Import\\Product\\Media\\Observers\\MediaGalleryValueObserver" - ] - } - ] - }, - { - "class-name": "TechDivision\\Import\\Product\\Link\\Subjects\\LinkSubject", - "processor-factory" : "TechDivision\\Import\\Cli\\Services\\ProductLinkProcessorFactory", - "utility-class-name" : "TechDivision\\Import\\Product\\Links\\Utils\\SqlStatements", - "prefix": "links", - "source-dir": "projects/sample-data/tmp", - "target-dir": "projects/sample-data/tmp", - "observers": [ - { - "import": [ - "TechDivision\\Import\\Product\\Link\\Observers\\LinkObserver" - ] - } - ] } ] } diff --git a/projects/sample-data/ce/212/data/add-update/magento-import_20161024_194026_01.csv b/projects/sample-data/ce/212/data/add-update/magento-import_20161024_194026_01.csv new file mode 100644 index 00000000..2b7254fa --- /dev/null +++ b/projects/sample-data/ce/212/data/add-update/magento-import_20161024_194026_01.csv @@ -0,0 +1,1232 @@ +sku,store_view_code,attribute_set_code,product_type,categories,product_websites,name,description,short_description,weight,product_online,tax_class_name,visibility,price,special_price,special_price_from_date,special_price_to_date,url_key,meta_title,meta_keywords,meta_description,base_image,base_image_label,small_image,small_image_label,thumbnail_image,thumbnail_image_label,swatch_image,swatch_image_label,created_at,updated_at,new_from_date,new_to_date,display_product_options_in,map_price,msrp_price,map_enabled,gift_message_available,custom_design,custom_design_from,custom_design_to,custom_layout_update,page_layout,product_options_container,msrp_display_actual_price_type,country_of_manufacture,additional_attributes,qty,out_of_stock_qty,use_config_min_qty,is_qty_decimal,allow_backorders,use_config_backorders,min_cart_qty,use_config_min_sale_qty,max_cart_qty,use_config_max_sale_qty,is_in_stock,notify_on_stock_below,use_config_notify_stock_qty,manage_stock,use_config_manage_stock,use_config_qty_increments,qty_increments,use_config_enable_qty_inc,enable_qty_increments,is_decimal_divided,website_id,related_skus,related_position,crosssell_skus,crosssell_position,upsell_skus,upsell_position,additional_images,additional_image_labels,hide_from_product_page,bundle_price_type,bundle_sku_type,bundle_price_view,bundle_weight_type,bundle_values,bundle_shipment_type,configurable_variations,configurable_variation_labels,associated_skus +24-MB01,,Bag,simple,"Default Category/Gear,Default Category/Collections,Default Category/Gear/Bags",base,Joust Duffle Bag(s),"

The sporty(s) Joust Duffle Bag can't be beat - not in the gym, not on the luggage carousel, not anywhere. Big enough to haul a basketball or soccer ball and some sneakers with plenty of room to spare, it's ideal for athletes with places to go.

+

",,,1,Taxable Goods,"Catalog, Search",36,33,,,joust-duffle-bag-ssss,,,,/m/b/mb01-blue-0.jpg,,/m/b/mb01-blue-0.jpg,,/m/b/mb01-blue-0.jpg,,,,"10/24/16, 12:36 PM","10/24/16, 12:36 PM",,,Block after Info Column,,,,,,,,,,,,,"activity=Gym|Hiking|Trail|Urban,erin_recommends=Yes,features_bags=Audio Pocket|Waterproof|Lightweight|Laptop Sleeve,material=Canvas|Cotton|Mesh|Polyester,sale=Yes,strap_bags=Adjustable|Cross Body|Padded|Shoulder|Single,style_bags=Messenger|Exercise|Tote",100,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,0,,,,,,,/m/b/mb01-blue-0.jpg,Image,,,,,,,,,, +24-MB04,,Bag,simple,"Default Category/Gear,Default Category/Collections,Default Category/Gear/Bags",base,Strive Shoulder Pack,"

Convenience is next to nothing when your day is crammed with action. So whether you're heading to class, gym, or the unbeaten path, make sure you've got your Strive Shoulder Pack stuffed with all your essentials, and extras as well.

+",,,1,Taxable Goods,"Catalog, Search",32,32,"10/24/16, 5:36 AM",,strive-shoulder-pack,,,,/m/b/mb04-black-0.jpg,,/m/b/mb04-black-0.jpg,,/m/b/mb04-black-0.jpg,,,,"10/24/16, 12:36 PM","10/24/16, 12:36 PM","10/24/16, 5:36 AM",,Block after Info Column,,,,,,"10/24/16, 5:36 AM",,,,,,,"activity=Gym|Hiking|Trail|Urban,erin_recommends=Yes,features_bags=Audio Pocket|Waterproof|Lightweight|Laptop Sleeve,material=Canvas|Cotton|Mesh|Polyester,sale=Yes,strap_bags=Adjustable|Cross Body|Padded|Shoulder|Single,style_bags=Messenger|Exercise|Tote",100,0,1,0,0,1,1,1,0,1,1,,1,0,1,1,0,1,0,0,0,,,,,,,"/m/b/mb04-black-0.jpg,/m/b/mb04-black-0_alt1.jpg","Image,Image",,,,,,,,,, +24-MB03,,Bag,simple,"Default Category/Gear,Default Category/Gear/Bags",base,Crown Summit Backpack,"

The Crown Summit Backpack is equally at home in a gym locker, study cube or a pup tent, so be sure yours is packed with books, a bag lunch, water bottles, yoga block, laptop, or whatever else you want in hand. Rugged enough for day hikes and camping trips, it has two large zippered compartments and padded, adjustable shoulder straps.

+