diff --git a/docs/magento2/configuration.md b/docs/magento2/configuration.md new file mode 100644 index 0000000..36581b3 --- /dev/null +++ b/docs/magento2/configuration.md @@ -0,0 +1,120 @@ +# Configuration + +After installation, open the **Magento 2** section from the UnoPim sidebar to begin configuration. + +## Credentials + +The connector supports two authentication methods. Choose the one that fits your Magento setup. + +### Option A — Token-Based Credentials (Recommended) + +**Step 1 — Create an integration in Magento** + +1. In your Magento admin, go to **System → Integrations → Add New Integration**. +2. Enter a **Name** and **Password**, then go to the **API** tab. +3. Set resource access to **All** (or select specific resources listed below), then click **Save**. +4. On the Integrations page, find your integration and click **Activate → Allow**. +5. Copy the generated **Access Token**. + +Required API resources: + +- Catalog, Inventory, Products, Categories +- Stores, Settings, Currency, Attributes, Other Settings + +> **Note:** If your Magento version is 2.4.4 or above, run this command in your Magento root before proceeding: +> ```bash +> bin/magento config:set oauth/consumer/enable_integration_as_bearer 1 +> ``` + +**Step 2 — Add credentials in UnoPim** + +1. Go to **Magento 2 → Credentials → Create Token-Based Credentials**. +2. Enter your **Magento Shop URL** and **Access Token**. +3. Click **Save**. + +--- + +### Option B — Login-Based Credentials + +> **Note:** Login-based credentials will not work if Magento 2FA is enabled. Disable 2FA or use Token-Based instead. + +1. Go to **Magento 2 → Credentials → Create Login-Based Credentials**. +2. Enter your **Magento Shop URL**, **Admin Username**, and **Admin Password**. +3. Click **Save**. + +### Store Views + +If your Magento store uses multiple store views, map each one to the correct UnoPim locale, channel, and currency after saving your credentials. Products will export to Magento using the channel and currency set for each store view. + +> **Note:** When exporting attribute families, Magento creates new attribute sets based on an existing one. In your credential settings, select the **base attribute set** you want UnoPim families to be created from (default is "Default"). + + +## Attribute Mapping + +Go to **Magento 2 → Export Mappings**. There are four mapping types. + +### Standard Attribute Mapping + +Map UnoPim attributes to Magento's built-in product fields. The following fields are available by default: + +| Magento Field | Description | +|----------------------------|-----------------------------------------| +| `status` | Enable/disable product | +| `sku` | Product SKU | +| `name` | Product name | +| `price` | Product price | +| `description` | Full product description | +| `short_description` | Short description | +| `weight` | Product weight | +| `product_has_weight` | Whether product has weight | +| `tax_class_id` | Tax class | +| `visibility` | Storefront visibility | +| `qty` | Stock quantity | +| `is_in_stock` | Stock status | +| `url_key` | Product URL | +| `meta_title` | SEO page title | +| `meta_keyword` | SEO keywords | +| `meta_description` | SEO meta description | +| `cost` | Cost of goods | +| `special_price` | Sale price | +| `special_from_date` | Sale start date | +| `special_to_date` | Sale end date | +| `news_from_date` | "New" badge start date | +| `news_to_date` | "New" badge end date | +| `country_of_manufacture` | Country of manufacture | +| `product_websites` | Magento websites to assign product to | +| `page_layout` | Product page layout | +| `options_container` | Display product options setting | +| `custom_design_from` | Schedule update start | +| `custom_design_to` | Schedule update end | +| `custom_design` | Custom theme | +| `custom_layout` | Custom layout | + +### Additional Field Mapping (Custom Attributes) + +Use this section to map any custom Magento attributes that are not in the standard list above. Enter the Magento attribute code and select the corresponding UnoPim attribute. + +This is also where you map variant-specific attributes like **Color** and **Size** for configurable products. + +### Image Mapping + +| Field | Required | Description | +|---|---|---| +| **Image Attributes** | Required | Select UnoPim image attributes — these become the Magento product gallery images | +| **Alt Text Attribute** | Optional | Select the attribute whose value will be used as the image alt text | +| **Image Role** | Optional | Map images to Magento roles: base, small, thumbnail, or swatch | +| **Hide from Product Page** | Optional | Toggle whether the image is hidden on the product page | + +### Video Mapping + +| Field | Required | Description | +|---|---|---| +| **Video Attribute** | Required | Map the UnoPim attribute that holds the video URL | +| **Preview Image** | Optional | Map an image to show as the video thumbnail | +| **Title** | Required | Map the attribute used as the video title | +| **Description** | Optional | Map an attribute for the video description | +| **Hide from Product Page** | Optional | Toggle visibility on the product page | + +### Category Mapping + +Map UnoPim category fields to Magento category fields. If no mapping is set, the connector exports categories with name, URL key, and enabled status only. Add mappings here to export additional category data. \ No newline at end of file diff --git a/docs/magento2/index.md b/docs/magento2/index.md index f515ae2..8a62766 100644 --- a/docs/magento2/index.md +++ b/docs/magento2/index.md @@ -1,3 +1,61 @@ -# Magento 2 Extension +# Overview + +The UnoPim Magento 2 Connector connects your UnoPim PIM system with one or more Magento 2 (Adobe Commerce) stores. + +It supports **two-way data synchronization**: +- Export data from UnoPim → Magento +- Import data from Magento → UnoPim + +This eliminates manual data entry and keeps both systems in sync. + +## How it Works + +### Export (UnoPim → Magento) +1. Install the ProductImportQueue plugin on Magento. +2. Install the connector on UnoPim. +3. Add Magento credentials in UnoPim. +4. Configure mappings (attributes, categories, media, etc.). +5. Create and run export jobs. + +### Import (Magento → UnoPim) +1. Configure Magento credentials in UnoPim. +2. Go to **Data Transfer → Imports**. +3. Create an import profile. +4. Select import type and run the job. + +## Key Features + +### General +- Two authentication methods (API token or admin login) +- Multi-store support +- Bi-directional sync (Import + Export) + +### Export Features +- Category export with hierarchy +- Attribute & attribute family export +- Simple & configurable product export +- SEO data export (meta title, keywords, description) +- Media export (images & videos) +- Advanced filtering (SKU, status, family, type) +- Custom attribute mapping +- Product re-sync support + +### Import Features +- Category import with hierarchy +- Attribute and attribute options import +- Attribute set and group import +- Product import (simple & configurable) +- Product association import (related, upsell, cross-sell) +- Store view and configuration import +- Automatic entity mapping + +## Requirements + +| Requirement | Detail | +|------------|--------| +| UnoPim | <= 2.0.0 | +| PHP | 8.2+ | +| Magento 2 | 2.3.x to latest | +| Node & Yarn | Required | +| Magento Cron | Must be running | -Placeholder landing page. Real docs are pulled from [`unopim/unopim-magento2`](https://github.com/unopim/unopim-magento2) at build time. diff --git a/docs/magento2/installation.md b/docs/magento2/installation.md new file mode 100644 index 0000000..ee8630f --- /dev/null +++ b/docs/magento2/installation.md @@ -0,0 +1,107 @@ +# Installation + +There are two parts to the installation: first set up the **Magento 2 plugin**, then install the **UnoPim connector**. + +## Part 1 — Magento 2 Plugin (ProductImportQueue) + +This plugin must be installed on your Magento store first. It handles incoming product data from UnoPim. + +### 1. Copy the plugin files + +Extract the plugin ZIP. Move the `app` folder (found inside the `src` folder) into your Magento root directory. + +### 2. Enable the module + +```bash +php bin/magento module:enable Webkul_ProductImportQueue +php bin/magento setup:upgrade +php bin/magento setup:di:compile +php bin/magento setup:static-content:deploy +``` + +### 3. Flush cache and reindex + +```bash +php bin/magento cache:clean +php bin/magento indexer:reindex +``` +## Part 2 — UnoPim Connector + +### 1. Place the package + +Unzip the connector and merge the `packages` folder into your UnoPim project root. + +### 2. Register the service provider + +Open `bootstrap/providers.php` and add: + +```php +use Webkul\Magento2\Providers\Magento2ServiceProvider; + +return [ + // ...existing providers... + Magento2ServiceProvider::class, +]; +``` + +### 3. Update Composer autoload + +In `composer.json`, add under `autoload.psr-4`: + +```json +"Webkul\\Magento2\\": "packages/Webkul/Magento2/src" +``` + +### 4. Run the installer + +```bash +composer dump-autoload +php artisan magento-package:install +php artisan optimize:clear +``` + +### 5. Verify + +A **Magento 2 icon** should now appear in the left sidebar of your UnoPim dashboard. + + +## Optional — Register Test Cases + +Only needed if you plan to run the connector's test suite. + +**a) Register the test directory** in `composer.json` under `autoload-dev.psr-4`: + +```json +"Webkul\\Magento2\\Tests\\": "packages/Webkul/Magento2/tests" +``` + +**b) Add the test case** to `tests/Pest.php`: + +```php +uses(Webkul\Magento2\Tests\Magento2TestCase::class) + ->in('../packages/Webkul/Magento2/tests'); +``` + +**c) Register the test suite** in `phpunit.xml`: + +```xml + + ./packages/Webkul/Magento2/tests/Feature + +``` + +**d) Create a testing environment file:** + +```bash +cp .env .env.testing +``` + +Open `.env.testing` and update `APP_URL` to your UnoPim base URL. + +**e) Run the tests:** + +```bash +composer dump-autoload +php artisan optimize:clear +./vendor/bin/pest ./packages/Webkul/Magento2/tests/Feature +``` \ No newline at end of file diff --git a/docs/magento2/sidebar.json b/docs/magento2/sidebar.json index b151864..101886e 100644 --- a/docs/magento2/sidebar.json +++ b/docs/magento2/sidebar.json @@ -2,7 +2,10 @@ { "text": "Magento 2", "items": [ - { "text": "Overview", "link": "/magento2/" } + { "text": "Overview", "link": "/magento2/" }, + { "text": "Installation", "link": "/magento2/installation" }, + { "text": "Configuration", "link": "/magento2/configuration" }, + { "text": "Usage", "link": "/magento2/usage" } ] } ] diff --git a/docs/magento2/usage.md b/docs/magento2/usage.md new file mode 100644 index 0000000..1a0fa4f --- /dev/null +++ b/docs/magento2/usage.md @@ -0,0 +1,284 @@ + +# Export Jobs + +Navigate to: +**Data Transfer → Exports → Create Export Profile** + +### Available Export Types +- Magento Category +- Magento Attribute +- Magento Attribute Set +- Magento Product + +## Recommended Export Order + +1. Magento Attribute +2. Magento Attribute Set +3. Magento Product + +> Category export can be run anytime. + + +## Export: Categories + +- Exports UnoPim categories with full hierarchy +- No channel-based filtering + +**Steps:** +1. Create export profile +2. Select **Magento Category** +3. Click **Export Now** + +## Export: Attributes + +- Exports attributes and their options + +**Filters:** +- Magento Store URL +- Store View +- Additional Attributes (optional) + + +## Export: Attribute Sets + +- Exports attribute families as Magento attribute sets +- Maintains attribute groups + +## Export: Products + +- Exports simple and configurable products + +**Filters:** + +| Filter | Description | +|--------|------------| +| Store URL | Target Magento instance | +| Store Views | Store views to populate | +| Product Types | Simple / Configurable | +| Attribute Families | limited families | +| Product Status | Enabled / Disabled / All | +| With Media | Include images/videos | +| SKU | Export specific product | + + +# Export Logs + +After execution: +- Click **Download Log** +- Use logs to debug missing or failed records + +## Import Functionality + +Navigate to: +**Data Transfer → Imports → Create Import Profile** + +Imports data from Magento into UnoPim. + + +## Supported Import Types + +# 1. Magento Categories Import + +**Purpose**: Import product categories from Magento to UnoPim + +**When to Use**: +- Migrating category structure to UnoPim +- Keeping category hierarchy in sync + +**What It Imports**: +- Category name and description +- Parent-child hierarchy +- Status (enabled/disabled) +- Auto-generated category codes (`{nameInCamelCase}_{magentoId}`) + +**Key Features**: +- Supports multi-level categories +- Automatically creates missing parent categories +- Supports store view-specific data + +## 2. Magento Categories Attribute Import + +**Purpose**: Import category-specific attributes + +**When to Use**: +- When categories have custom attributes in Magento +- Before importing categories with custom fields + +**What It Imports**: +- Attribute definitions (name, type, options) +- Select, multiselect, checkbox options +- Attribute properties (required, filterable, etc.) + +> Run this BEFORE category import if custom attributes exist + +## 3. Magento Store View Mapping + +**Purpose**: Map Magento store views to UnoPim channels + +**When to Use**: +- Multi-store / multi-language setups +- Initial configuration before other imports + +**What It Does**: +- Maps store views → channels +- Configures locale and currency +- Connects Magento structure with UnoPim + +**Note**: Manual configuration required after import + + +## 4. Magento Attribute Sets Import + +**Purpose**: Import attribute sets as UnoPim families + +**When to Use**: +- When products use different attribute structures +- Before product import + +**What It Imports**: +- Attribute set names and codes +- Attribute group structure + +**Example**: +Magento sets like `Default`, `Clothing`, `Electronics` become UnoPim families. + + +## 5. Magento Attribute Groups Import + +**Purpose**: Import attribute groups within sets + +**When to Use**: +- To maintain attribute organization + +**What It Imports**: +- Group names and positions +- Group-to-set relationships + + +## 6. Magento Attribute Import + +**Purpose**: Import product attributes + +**When to Use**: +- Before product import +- When Magento has custom attributes + +**What It Imports**: +- Attribute codes, labels, and types +- Locale-based labels +- Attribute options +- Scope (global/store) + +**Type Mapping Examples**: +- `text` → `text` +- `price` → `price` +- `select` → `select` + +> Must run BEFORE product import + + +## 7. Magento Attribute Mapping Import + +**Purpose**: Link attributes to attribute families + +**When to Use**: +- After importing attributes and families +- To fix missing mappings + +**What It Does**: +- Assigns attributes to families +- Places attributes in "Others" group +- Builds relationships between attribute, group, and family + +**Note**: Often handled automatically during product import + + +## 8. Magento Simple Product Import + +**Purpose**: Import simple products + +**When to Use**: +- For standalone products without variants + +**What It Imports**: +- SKU, name, price, status +- Custom attributes +- Categories +- Images and gallery + +**Prerequisites**: +- Attributes imported +- Categories imported +- Attribute families exist + + +## 9. Magento Configurable Product Import + +**Purpose**: Import configurable products (with variants) + +**When to Use**: +- Products with variations (size, color, etc.) + +**What It Imports**: +- Parent configurable product +- Variant attributes +- Child product associations + +**Dependency**: +- Simple products must be imported first + + +## 10. Magento Product Association Import + +**Purpose**: Sync product relationships + +**When to Use**: +- After products are imported + +**What It Updates**: +- Related products +- Upsell products +- Cross-sell products + +> Does NOT create products, only updates relationships + + +## 11. Magento Store Import + +**Purpose**: Import Magento stores as UnoPim channels + +**When to Use**: +- Initial setup of channels + +**What It Creates**: +- Channels from Magento stores +- Store-to-channel mappings +- Locales and currencies (auto-created if needed) + + +## Recommended Import Order + +For smooth migration, follow this sequence: + +1. **Magento Store View Mapping** +2. **Magento Store Import** +3. **Magento Categories Attribute Import** +4. **Magento Categories Import** +5. **Magento Attribute Import** +6. **Magento Attribute Sets Import** +7. **Magento Attribute Groups Import** +8. **Magento Attribute Mapping Import** +9. **Magento Simple Product Import** +10. **Magento Configurable Product Import** +11. **Magento Product Association Import** + + + +## Notes + +- Always follow the correct import order to avoid errors +- Logs should be reviewed after each import +- Mapping data is stored for future synchronization +- Supports multi-store and multi-locale setups + + diff --git a/docs/shopify/configuration.md b/docs/shopify/configuration.md new file mode 100644 index 0000000..b59a912 --- /dev/null +++ b/docs/shopify/configuration.md @@ -0,0 +1,110 @@ +# Configuration + +Navigate to the **Shopify** section in the UnoPim sidebar to access all configuration options. + +## Credentials + +Go to **Shopify → Credentials → Create Credentials**. + +| Field | Description | +|-------------------------|------------------------------------------------------| +| **Shopify URL** | Your store URL (e.g., `your-store.myshopify.com`) | +| **Admin API access token** | Token from your Shopify custom app | +| **API Version** | Select `API Version` | + +After saving, open the credential record to set: + +| Field | Description | +|------------------------------|------------------------------------------------------------------------------| +| **Publishing (Sales Channels)** | Which Shopify sales channels to publish products to | +| **Location List** | Inventory location (must exist in Shopify first) | +| **Status** | Default product status: active or draft | +| **Locale Mapping** | All Shopify locales are fetched automatically — map them to UnoPim locales | + +> You can add multiple stores by repeating this step with separate credentials for each. + +## Export Mapping + +Go to **Shopify → Export Mappings**. Map each Shopify field to a UnoPim attribute. + +| Shopify Field | Purpose | +|------------------------------------|------------------------------------------| +| `title` | Product title | +| `descriptionHtml` | Product description (HTML supported) | +| `price` | Selling price | +| `weight` | Shipping weight | +| `inventoryQuantity` | Stock level | +| `inventoryTracked` | Enable inventory tracking | +| `inventoryPolicy` | Allow/disallow out-of-stock purchases | +| `vendor` | Brand or supplier | +| `productType` | Product category/type | +| `tags` | Search and filter keywords | +| `barcode` | Barcode / GTIN | +| `compareAtPrice` | Original price (for sale display) | +| `metafields_global_title_tag` | SEO page title | +| `metafields_global_description_tag`| SEO meta description | +| `handle` | URL-friendly product slug | +| `taxable` | Whether the product is taxable | +| `cost` | Cost of goods (COGS) | + +### Fixed Value + +To apply the same value to a field across all exported products (e.g., quantity = `100`): + +1. Clear the UnoPim attribute dropdown for that field. +2. Enter the value in the **Fixed Value** input that appears. + +### Media Mapping + +Set **Mapping Type** to **Media Mapping**, then choose a media type: + +| Media Type | When to use | +|------------|-------------| +| **Image** | Multiple separate image attributes (e.g., front, back, zoom) | +| **Gallery**| A single gallery-type attribute containing all product images | + +### Unit Mapping + +Located in **Export Mappings → Shopify Unit Mapping**. + +| Unit Type | Example values | +|----------------|--------------------------| +| **Weight** | g, kg, oz, lb | +| **Volume** | ml, l, cm³, in³ | +| **Dimension** | cm, mm, inches | + +> For each unit, you can also create a corresponding Shopify Metafield Definition to store the unit value alongside the measurement. + +## Import Mapping + +Go to **Shopify → Import Mappings**. The available fields mirror the export mapping fields above. + +**Family Mapping** — Under **Other Mapping**, select a product family (e.g., "Accessories") to ensure variants import correctly. + +## Metafield Definitions + +Go to **Shopify → Metafield Definitions → Add Definition**. + +| Field | Description | +|----------------------------|---------------------------------------------------------------------| +| **Used For** | Shopify entity: Products or Variants | +| **UnoPim Attribute** | The UnoPim attribute linked to this metafield | +| **Type** | Single line text, Multi-line text, Color, Rating, URL, or JSON | +| **Definition Name** | User-friendly label (e.g., "Material") | +| **Namespace and Key** | Unique Shopify identifier in `namespace.key` format (e.g., `custom.color`) | +| **Description** | Optional internal notes | +| **Min / Max Char Count** | Enforce input length limits | +| **Pin** | Show the metafield in the Shopify admin UI when editing products | +| **Filtering for Products** | Use as a storefront filter | +| **Smart Collections** | Use as a rule in Shopify Smart Collections | +| **Storefront Access** | Expose via Shopify Storefront API (required for headless themes) | + +## Tags Settings + +Go to **Shopify → Settings**. + +| Setting | Description | +|---------------------------------|----------------------------------------------------------------------| +| **Named Tags** | Include the attribute name as part of the exported tag | +| **Pull Attribute Name in Tags** | Export name and value together | +| **Attribute Name Separator** | Separator between name and value: dash ( `-` ), colon ( `:` ), space | \ No newline at end of file diff --git a/docs/shopify/index.md b/docs/shopify/index.md index 3d17ccf..edd22f7 100644 --- a/docs/shopify/index.md +++ b/docs/shopify/index.md @@ -1,3 +1,39 @@ -# Shopify Extension +# UnoPim Shopify Connector -Placeholder landing page. Real docs are pulled from [`unopim/unopim-shopify`](https://github.com/unopim/unopim-shopify) at build time. +The **UnoPim Shopify Connector** syncs your UnoPim product catalog with one or more Shopify stores. Export categories, simple products, and configurable products (with variants) from UnoPim to Shopify — and import Shopify data back into UnoPim. + +## How it works + +1. Install the connector and enter your Shopify API credentials in UnoPim. +2. Map UnoPim attributes to Shopify product fields under **Export / Import Mappings**. +3. Create an export or import job under **Data Transfer**. +4. Run the job — products, categories, images, and metafields are synced automatically. + +## Key features + +- Export categories as Shopify **Collections**. +- Export simple and configurable products (with variants). +- Transfer title, description, price, SKU, barcode, quantity, weight, and images. +- Map UnoPim attributes to Shopify fields with support for **fixed values**. +- Export product images via **Image** or **Gallery** media mapping. +- Map product units — weight, volume, and dimensions. +- Export in **multiple languages** (multi-locale support). +- Create and export **Shopify Metafield Definitions** directly from UnoPim. +- Connect **multiple Shopify stores** from one UnoPim instance. +- Import jobs for products, attributes, categories, family variants, and metafield definitions. +- Source code is open for customization. + +## Requirements + +| Requirement | Version / Detail | +|--------------------|-------------------------------------| +| UnoPim | >= 1.0.0 | +| PHP | <= 8.3 | +|Laravel | 12.0 | + + +## In this guide + +- [Installation](./installation.md) +- [Configuration](./configuration.md) +- [Usage](./usage.md) \ No newline at end of file diff --git a/docs/shopify/installation.md b/docs/shopify/installation.md new file mode 100644 index 0000000..fd9bdd3 --- /dev/null +++ b/docs/shopify/installation.md @@ -0,0 +1,68 @@ +# Installation + +## Shopify API Credentials + +Before installing, you need a Shopify custom app with an **Admin API access token**. + +### 1. Create a custom app in Shopify + +1. Go to your Shopify admin → **Settings → Apps → Develop apps**. +2. Click **Create an app**, enter a name, and choose a developer. +3. Click **Configure Admin API scopes** and enable **read and write** for: + +| Scope | Permissions | +|----------------------|-------------------------------------------------------| +| Shop locales | `write_locales`, `read_locales` | +| Fulfillment services | `write_fulfillments`, `read_fulfillments` | +| Inventory | `write_inventory`, `read_inventory` | +| Product listings | `write_product_listings`, `read_product_listings` | +| Products | `write_products`, `read_products` | +| Translation | `write_translations`, `read_translations` | +| Sales Channel | `write_channels`, `read_channels` | +| Location | `write_locations`, `read_locations` | +| Publications | `write_Publications`, `read_Publications` | + +4. Click **Save**, then **Install app**. +5. Copy the **Admin API access token** from the **API credentials** tab. + +## Connector Installation + +### Option A — Composer (recommended) + +```bash +composer require unopim/shopify-connector +php artisan shopify-package:install +php artisan optimize:clear +``` + +### Option B — Manual + +1. Unzip the package, rename the folder to `Shopify`, and place it at: + +``` +packages/Webkul/Shopify +``` + +2. Register the service provider in `config/app.php`: + +```php +Webkul\Shopify\Providers\ShopifyServiceProvider::class, +``` + +3. Add the autoload path in `composer.json` under `autoload.psr-4`: + +```json +"Webkul\\Shopify\\": "packages/Webkul/Shopify/src" +``` + +4. Run: + +```bash +composer dump-autoload +php artisan shopify-package:install +php artisan optimize:clear +``` + +### Verify + +A **Shopify icon** should appear in the UnoPim sidebar after installation. \ No newline at end of file diff --git a/docs/shopify/sidebar.json b/docs/shopify/sidebar.json index 48fa87e..1f31479 100644 --- a/docs/shopify/sidebar.json +++ b/docs/shopify/sidebar.json @@ -2,7 +2,10 @@ { "text": "Shopify", "items": [ - { "text": "Overview", "link": "/shopify/" } + { "text": "Overview", "link": "/shopify/"}, + { "text": "Installation", "link": "/shopify/installation" }, + { "text": "Configuration", "link": "/shopify/configuration" }, + { "text": "Usage", "link": "/shopify/usage" } ] } ] diff --git a/docs/shopify/usage.md b/docs/shopify/usage.md new file mode 100644 index 0000000..ab9b38e --- /dev/null +++ b/docs/shopify/usage.md @@ -0,0 +1,87 @@ +# Export & Import Jobs + +All jobs are managed under **Data Transfer** in the UnoPim sidebar. + +## Export Jobs + +Go to **Data Transfer → Exports → Create Export Profile**. Three export job types are available. + +### Export Categories + +Exports UnoPim categories as **Collections** in Shopify. + +1. Enter a unique **Code**. +2. Set **Type** to `Shopify Category`. +3. Click **Save**, then **Export Now**. + +### Export Products + +Exports simple and configurable products (with variants) to Shopify. + +1. Enter a unique **Code**. +2. Set **Type** to `Shopify Product`. +3. In the **Filters** panel, select: + - **Shopify Credentials** — choose the target store + - **Channel** and **Currency** + - **SKU** (optional) — to export a single product +4. Click **Save**, then **Export Now**. + +Monitor progress in the job tracker. On completion, the status shows **Completed** and a download log is available. + +> **Note:** Inventory is added to Shopify on the **first export only**. Re-running the job updates product details but does not overwrite inventory. + +### Export Metafield Definitions + +Syncs metafield definitions created in UnoPim to Shopify. + +1. Enter a unique **Code**. +2. Set **Type** to `Shopify Metafields Definition`. +3. Select **Shopify Credentials**. +4. Click **Save**, then **Export Now**. + +## Import Jobs + +Go to **Data Transfer → Imports → Create Import**. Five import job types are available. + +### Import Products + +| Field | Value | +|---------------------|--------------------------------| +| **Type** | `Shopify Product` | +| **Credentials** | Select your Shopify store | +| **Channel / Locale / Currency** | Select as needed | + +### Import Attributes + +| Field | Value | +|-----------------|----------------------| +| **Type** | `Shopify Attribute` | +| **Credentials** | Select store | +| **Locale** | Select locale | + +### Import Categories + +| Field | Value | +|-----------------|-------------------------------| +| **Type** | `Shopify Category Import` | +| **Credentials** | Select store | +| **Locale** | Select locale | + +### Import Family Variant Attribute Assignment + +| Field | Value | +|-------------------|----------------------------------------------------| +| **Type** | `Shopify Family Variant Attribute Assignment Import` | +| **Credentials** | Select store | +| **Locale** | Select locale | +| **Attribute Group** | Select group | + +### Import Metafield Definitions + +| Field | Value | +|-----------------|---------------------------------| +| **Type** | `Shopify Metafield Definitions` | +| **Credentials** | Select store | +| **Locale** | Select locale | + +For all import jobs: fill in the fields, click **Save Import**, then run the job. \ No newline at end of file