Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shahednasser/medusa-source-magento
A Medusa plugin that imports data from Magento
https://github.com/shahednasser/medusa-source-magento
Last synced: about 2 months ago
JSON representation
A Medusa plugin that imports data from Magento
- Host: GitHub
- URL: https://github.com/shahednasser/medusa-source-magento
- Owner: shahednasser
- Created: 2022-10-26T09:17:02.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-07-12T11:23:17.000Z (over 1 year ago)
- Last Synced: 2024-09-24T01:58:58.746Z (3 months ago)
- Language: TypeScript
- Homepage:
- Size: 544 KB
- Stars: 10
- Watchers: 3
- Forks: 8
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-medusajs - Magento - square) ![stars](https://img.shields.io/github/stars/shahednasser/medusa-source-magento?color=blue) (Uncategorized / Uncategorized)
README
Magento Source Plugin for Medusa
A Medusa plugin that imports categories and products from Magento into Medusa.## Description
This plugin imports Magento categories and products into Medusa. It creates categories and products that don't exist, and updates those that have been imported previously.
### Limitations
Magento has 6 product types. As some of those types don't exist in Medusa, only the Configurable and Simple products can be imported.
## Prerequisites
### Medusa Setup
You must have a [Medusa server installed](https://docs.medusajs.com/quickstart/quick-start) before installing this plugin.
Furthermore, the Medusa server should have [PostgreSQL](https://docs.medusajs.com/tutorial/set-up-your-development-environment#postgresql) and [Redis](https://docs.medusajs.com/tutorial/set-up-your-development-environment#redis) installed and configured on your Medusa server.
### Magento Setup
On your Magento admin, go to System -> Integrations -> Add New Integrations.
You need to give the integration the access to the following resources:
- Catalog (with its child resources).
- Stores -> Settings (with its child resources).
- Stores -> Attributes (with its child resources).After creating the integration, activate it from the Integrations listing page. Once you activate it, you'll receive four keys: Consumer Key, Consumer Secret, Access Token, and Access Token Secret. Copy them as you'll need them for the plugin's options.
## Installing Plugin
To install the plugin run the following command on your Medusa server:
```bash
npm install medusa-source-magento
```## Plugin Configurations
Add the plugin and its options into the `plugins` array in `medusa-config.js`:
```js
const plugins = [
//...
{
resolve: `medusa-source-magento`,
//if your plugin has configurations
options: {
magento_url: '',
consumer_key: '',
consumer_secret: '',
access_token: '',
access_token_secret: '',
image_prefix: '' // optional
},
},
];
```### Options
| Name | Description | Required | Default Value|
-------|-------------|----------|--------------|
| `magento_url` | The URL of your Medusa server. It shouldn't end with a backslash. | true | |
| `consumer_key` | The Consumer Key of the integration. | true | |
| `consumer_secret` | The Consumer Secret of the integration. | true | |
| `access_token` | The Access Token of the integration. | true | |
| `access_token_secret` | The Access Token Secret of the integration | true | |
| `image_prefix` | The URL prefix of media files. This is necessary if you don't use Magento's default storage for product images (for example, if you use S3) | false | The URL will be retrieved from Magento. |## Use the Plugin
### Server Startup
To use the plugin, just start the Medusa server:
```bash
npm start
```The import process will run in the background of the server. Based on how many products you have, it can take some time the first time running it.
### As a Batch Job
You can trigger the import by creating a new batch job using the Create Batch Job API endpoint. You can pass the following in the payload:
```json
{
"type": "import-magento",
"context": { },
"dry_run": false
}
```This will trigger the import process.