## Current state of import in Magento
Differences between Magento 1 & 2 and options to workaround
## Nils Preuß
- Magento since 2009
- Technical lead ecommerce
- Polo Motorrad & Sportswear GmbH
- Twitter: [@tutnix](https://twitter.tutnix)
- Github: [https://github.com/nhp](https://github.com/nhp)
## Magento 1
- CE 1.5
- model-api
- import/export
- soap/rest-api
## model-api
- slow
- slow
- calls save()
- events dispatched
##import/export
- csv based
- one value per ROW
- not erverything importable
- only from admin-backend
## soap/rest api
- even slower
- uses model-api internally
##Alternatives
- MySQL-Data-Pumps (e.g. Magmi)
- wrappers around import/export
https://github.com/avstudnitz/AvS_FastSimpleImport
https://github.com/ho-nl/Ho_Import
many more
## Magento 2
- model-api
- SOAP/REST-api
- import/export
## Model/SOAP/REST-Api
- way faster
- still slower than M1 import/export
## import/export
- csv
- many improvements
- 81 fixed columns
- still not fully working
- not automatable by default
## General improvements
- External images
- Bundled products
- Custom Attributes
- Image attributes
- Custom options
## csv-format improvements
- one line per sku
- UTF-8 support
- multiple values per attribute per field delimited by |
- multiple attributes per field, delimited by ,
## Custom attributes
```php
... ,additional_attributes, ...
... ,"taste=salty,package=2pcs|4pcs", ...```
## bundled products
```
bundle_price_type
bundle_price_view
bundle_sku_type
bundle_weight_type
bundle_values
- type
- name
- sku
- required
- price
- price-type
- default-qty```
## Example
```php
,bundle_values,
,"name=Fork Spring,type=radio,required=1,sku=7091209,
price=0.0000,default=1,default_ qty=1.0000, price_type=fixed|
name=Fork Spring,type=radio,required=1,sku=7091208,
price=0.0000,default=0,default_ qty=1.0000, price_type=fixed",```
## Custom Options
```php
custom_options
"name=Opt1,type=drop_down,sku=1,required=0,price=3.5000,
option_title=foo|name=Opt2,type=drop_down,sku=2,
required=1,price=0.03,option_title=bar"```
## pitfalls
- no errors if linked SKU is non-existent
- removing links/associations does not work (still an issue with saving empty fields)
- slower than M1 Import/export
## still missing stuff
- downloadables
- videos
- empty attributes
- no attribute/attribute option creation
## options for improving the situation
- automate the csv import https://github.com/firebearstudio/importexport
- make it easier to bypass pure csv (add some format detection/selection)
- fixing problems by enabling import of stuff so export>import yields correct data
- extend the current import to add new options of what to import (entities)
- allow import of attributes/options (step on its own)
## FastSimpleImport 2
- replace csv files with data arrays
- demo module as tutorial how the array should look like
- improve functionality in FastSimpleExtender
https://github.com/firegento/FireGento_FastSimpleImport2
## fast simple extender
- seperate format from functionality
- new functionality will be added here
- very early stage
https://github.com/firegento/FireGento_ExtendedImport2
## Resource
https://github.com/firebearstudio/importexport
https://github.com/firegento/FireGento_FastSimpleImport2
https://github.com/firegento/FireGento_ExtendedImport2