Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Asynchronous Import #330

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

This file was deleted.

48 changes: 48 additions & 0 deletions design-documents/asynchronous-import/asycnhronous-import.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Asynchronous Import as separate service

Main idea of extension is to replace current Import module with new implementation that will allow to users import objects in Magento by using Asynchronous approach.

## Workflow

- Upload source data to instance storage (optional step);
- Retrieve source data from Source (partial reading);
- Parse source data;
- Apply data converting rule;
- Exchange data with Magento instance via Bulk API Service contracts / Bulk API REST (partial processing);
- Later an user can request balk status of import and resubmit objects which were failed during the import;

## REST API

- [REST API](rest-api.md)

## Modularity (API / Extension points)
Copy link
Contributor

@tariqjawed83 tariqjawed83 Nov 8, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1- It will be helpful to add a diagram to show the flow of interaction between the modules!
2- A simple class / interface UML diagram will make it really easy to grasp the concepts


- [Start Import based on CSV data (main entry point)](modularity/import-csv.md)
- [Source data retrieving](modularity/source-data-retrieving.md)
- [Data converting before import](modularity/data-converting.md)
- [Data exchanging with Magento instance](modularity/data-exchanging.md)
- [Import advanced pricing](modularity/advanced-pricing.md)

## MVP

[MVP Board](https://app.zenhub.com/workspaces/async-import-5b5f349bd6768d6255917727/reports/burndown?milestoneId=4625823)

- Sources data retrieving: *HTTP, HTTPS, base64*;
- CSV reader;
- Data Converting Rules;
- Import Data Exchanging;
- Import Configuration;
- Product import;
- Stock import;
- Advanced pricing import;
- Documentation;

## UML

![AsyncImportUML@2x](AsyncImportUML.png)

## TODO
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets change a Priorities here

  • Design of Import configuration;
  • Design of Get Import status;
  • Design of Import processing - Sync / Async
  • Design of Restart failed operations;

- Design of Import configuration;
- Design of Get Import status;
- Design of Import processing - Sync / Async
- Design of Restart failed operations
Loading