diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts
index 40af41e..b58ed44 100644
--- a/docs/.vitepress/config.ts
+++ b/docs/.vitepress/config.ts
@@ -17,30 +17,31 @@ function loadSidebar(project: string): DefaultTheme.SidebarItem[] {
}
const projects = [
- // { slug: 'shopify', label: 'Shopify' },
- // { slug: 'magento2', label: 'Magento 2' },
- // { slug: 'odoo-erp', label: 'Odoo ERP' },
- // { slug: 'bigcommerce', label: 'BigCommerce' },
- // { slug: 'shopware6', label: 'Shopware 6' },
- // { slug: 'woocommerce', label: 'WooCommerce' },
- // { slug: 'bagisto', label: 'Bagisto' },
- // { slug: 'cs-cart', label: 'CS-Cart' },
- // { slug: 'prestashop', label: 'PrestaShop' },
- // { slug: 'icecat', label: 'Icecat' },
- // { slug: 'xml-connector', label: 'XML Connector' },
- // { slug: 'aws-integration', label: 'AWS Integration' },
{ slug: 'ai-product-feed-openai', label: 'AI Product Feed (OpenAI)' },
+ { slug: 'auto-sku-generator', label: 'Auto SKU Generator' },
+ { slug: 'aws-integration', label: 'AWS Integration' },
+ { slug: 'bagisto', label: 'Bagisto' },
+ { slug: 'bigcommerce', label: 'BigCommerce' },
+ { slug: 'azure-integration', label: 'Azure Integration' },
+ { slug: 'cloudflare-r2-integration', label: 'Cloudflare R2 Integration' },
+ { slug: 'cs-cart', label: 'CS-Cart' },
+ { slug: 'dam', label: 'DAM' },
+ // { slug: 'dam-webdav', label: 'DAM NextCloud' },
+ { slug: 'deepl', label: 'DeepL Translator' },
+ // { slug: 'icecat', label: 'Icecat' },
// { slug: 'job-scheduler', label: 'Job Scheduler' },
- { slug: 'supplier-data-portal', label: 'Supplier Data Portal' },
- // { slug: 'public-image-url', label: 'Public Image URL' },
{ slug: 'maker-checker-workflow', label: 'Maker Checker Workflow' },
+ { slug: 'magento2', label: 'Magento 2' },
+ { slug: 'odoo-erp', label: 'Odoo ERP' },
// { slug: 'pdf-generator', label: 'PDF Generator' },
- // { slug: 'dam', label: 'DAM' },
- // { slug: 'dam-webdav', label: 'DAM NextCloud' },
+ // { slug: 'prestashop', label: 'PrestaShop' },
+ // { slug: 'public-image-url', label: 'Public Image URL' },
+ { slug: 'shopify', label: 'Shopify' },
+ // { slug: 'shopware6', label: 'Shopware 6' },
// { slug: 'starter-pack', label: 'Starter Pack' },
- { slug: 'auto-sku-generator', label: 'Auto SKU Generator' },
- { slug: 'deepl', label: 'DeepL Translator' },
- { slug: 'cloudflare-r2-integration', label: 'Cloudflare R2 Integration' }
+ { slug: 'supplier-data-portal', label: 'Supplier Data Portal' },
+ { slug: 'woocommerce', label: 'WooCommerce' },
+ // { slug: 'xml-connector', label: 'XML Connector' },
] as const
export default defineConfig({
@@ -64,6 +65,7 @@ export default defineConfig({
items: projects.map(p => ({ text: p.label, link: `/${p.slug}/` })),
},
{ text: 'User Guide', link: 'https://docs.unopim.com/' },
+ {text: 'Dev Doc', link: 'https://devdocs.unopim.com/'},
{ text: 'Contact Us', link: 'https://unopim.com/en/contacts/' },
],
sidebar: Object.fromEntries(
@@ -82,9 +84,6 @@ export default defineConfig({
message: 'Released under the MIT License.',
copyright: `Copyright © ${new Date().getFullYear()} UnoPim`,
},
- socialLinks: [
- { icon: 'github', link: 'https://github.com/unopim' },
- ],
search: {
provider: 'local',
},
diff --git a/docs/.vitepress/theme/Layout.vue b/docs/.vitepress/theme/Layout.vue
index 37cc75c..9d8d642 100644
--- a/docs/.vitepress/theme/Layout.vue
+++ b/docs/.vitepress/theme/Layout.vue
@@ -52,3 +52,34 @@ onBeforeUnmount(() => {
+
+
diff --git a/docs/aws-integration/assets/amazon-setup/account-create-aws.webp b/docs/aws-integration/assets/amazon-setup/account-create-aws.webp
new file mode 100644
index 0000000..1a46286
Binary files /dev/null and b/docs/aws-integration/assets/amazon-setup/account-create-aws.webp differ
diff --git a/docs/aws-integration/assets/amazon-setup/all-services.webp b/docs/aws-integration/assets/amazon-setup/all-services.webp
new file mode 100644
index 0000000..c95fd8a
Binary files /dev/null and b/docs/aws-integration/assets/amazon-setup/all-services.webp differ
diff --git a/docs/aws-integration/assets/amazon-setup/create-account-aws.webp b/docs/aws-integration/assets/amazon-setup/create-account-aws.webp
new file mode 100644
index 0000000..0e2af50
Binary files /dev/null and b/docs/aws-integration/assets/amazon-setup/create-account-aws.webp differ
diff --git a/docs/aws-integration/assets/amazon-setup/img3.webp b/docs/aws-integration/assets/amazon-setup/img3.webp
new file mode 100644
index 0000000..23cc7ac
Binary files /dev/null and b/docs/aws-integration/assets/amazon-setup/img3.webp differ
diff --git a/docs/aws-integration/assets/amazon-setup/img4.webp b/docs/aws-integration/assets/amazon-setup/img4.webp
new file mode 100644
index 0000000..fe3f1c5
Binary files /dev/null and b/docs/aws-integration/assets/amazon-setup/img4.webp differ
diff --git a/docs/aws-integration/assets/amazon-setup/img5.webp b/docs/aws-integration/assets/amazon-setup/img5.webp
new file mode 100644
index 0000000..199d16e
Binary files /dev/null and b/docs/aws-integration/assets/amazon-setup/img5.webp differ
diff --git a/docs/aws-integration/assets/amazon-setup/img6.webp b/docs/aws-integration/assets/amazon-setup/img6.webp
new file mode 100644
index 0000000..2979393
Binary files /dev/null and b/docs/aws-integration/assets/amazon-setup/img6.webp differ
diff --git a/docs/aws-integration/assets/amazon-setup/img7.webp b/docs/aws-integration/assets/amazon-setup/img7.webp
new file mode 100644
index 0000000..92749dd
Binary files /dev/null and b/docs/aws-integration/assets/amazon-setup/img7.webp differ
diff --git a/docs/aws-integration/assets/installation/aws-s3.png b/docs/aws-integration/assets/installation/aws-s3.png
new file mode 100644
index 0000000..25bc17d
Binary files /dev/null and b/docs/aws-integration/assets/installation/aws-s3.png differ
diff --git a/docs/aws-integration/assets/overview/intro-banner.png b/docs/aws-integration/assets/overview/intro-banner.png
new file mode 100644
index 0000000..50dae36
Binary files /dev/null and b/docs/aws-integration/assets/overview/intro-banner.png differ
diff --git a/docs/aws-integration/assets/unopim-setup/aws-cred.png b/docs/aws-integration/assets/unopim-setup/aws-cred.png
new file mode 100644
index 0000000..975136f
Binary files /dev/null and b/docs/aws-integration/assets/unopim-setup/aws-cred.png differ
diff --git a/docs/aws-integration/assets/unopim-setup/aws-s3-section.png b/docs/aws-integration/assets/unopim-setup/aws-s3-section.png
new file mode 100644
index 0000000..973f70d
Binary files /dev/null and b/docs/aws-integration/assets/unopim-setup/aws-s3-section.png differ
diff --git a/docs/aws-integration/assets/unopim-setup/aws-s3.png b/docs/aws-integration/assets/unopim-setup/aws-s3.png
new file mode 100644
index 0000000..6e1e04e
Binary files /dev/null and b/docs/aws-integration/assets/unopim-setup/aws-s3.png differ
diff --git a/docs/aws-integration/assets/unopim-setup/product-catalog.png b/docs/aws-integration/assets/unopim-setup/product-catalog.png
new file mode 100644
index 0000000..ab20238
Binary files /dev/null and b/docs/aws-integration/assets/unopim-setup/product-catalog.png differ
diff --git a/docs/aws-integration/assets/unopim-setup/save-cred.png b/docs/aws-integration/assets/unopim-setup/save-cred.png
new file mode 100644
index 0000000..f73e69f
Binary files /dev/null and b/docs/aws-integration/assets/unopim-setup/save-cred.png differ
diff --git a/docs/aws-integration/assets/unopim-setup/verify.png b/docs/aws-integration/assets/unopim-setup/verify.png
new file mode 100644
index 0000000..2264247
Binary files /dev/null and b/docs/aws-integration/assets/unopim-setup/verify.png differ
diff --git a/docs/aws-integration/aws-s3-setup-in-unopim.md b/docs/aws-integration/aws-s3-setup-in-unopim.md
new file mode 100644
index 0000000..761f03c
--- /dev/null
+++ b/docs/aws-integration/aws-s3-setup-in-unopim.md
@@ -0,0 +1,87 @@
+# AWS S3 Setup in UnoPim
+
+After installing the **UnoPim AWS Integration** module, users with the required permissions can manage the AWS storage settings from the admin panel.
+
+Go to:
+
+**Left Menu → AWS S3 → Credentials**
+
+
+
+From here, you can enable the module and connect UnoPim to **Amazon S3** so files are stored in your AWS bucket instead of only on the local server.
+
+## What This Configuration Does
+
+Once the setup is saved correctly:
+
+- UnoPim can store supported files on **Amazon S3**.
+- Your media can be served from the configured **bucket URL**.
+- Cached file URLs are refreshed based on the **Environment Update Time** value.
+
+## Fields You Need to Fill
+
+To connect UnoPim with AWS, enter the configuration details created in your Amazon AWS account.
+
+| Field | Description |
+|---|---|
+| **Access Key ID** | The public access key generated for your AWS IAM user. |
+| **Secret Key** | The secret key paired with the Access Key ID. Keep this private. |
+| **Bucket Name** | The exact name of the S3 bucket where UnoPim should store files. |
+| **Region** | The AWS region where your bucket was created, such as `us-east-1` or `ap-south-1`. |
+| **Bucket URL** | The public URL or bucket endpoint used to access files stored in the bucket. |
+
+## How to Configure It
+
+1. Open the **AWS S3 → Credentials** section in UnoPim.
+
+
+
+2. Enable the module if it is currently disabled.
+
+3. Enter the **Access Key ID** and **Secret Key** from your AWS account.
+4. Add the correct **Bucket Name** and **Region**.
+5. Enter the **Bucket URL** that should be used to access uploaded files.
+
+
+
+6. Save the configuration.
+
+
+
+After saving, UnoPim will use these details to connect with Amazon S3 for file storage.
+
+## Understanding Environment Update Time
+
+The **Environment Update Time** field controls how long image URLs stay cached in the browser before they are refreshed.
+
+- The value is entered in **seconds**.
+- During this time, the browser keeps using the existing cached image URL.
+- A new request is made only after the configured time has passed.
+
+If this field is left empty, UnoPim uses the default value:
+
+`86400` seconds = `24 hours`
+
+## Why This Setting Matters
+
+This setting helps:
+
+- reduce repeated file URL requests,
+- avoid unnecessary fetches from AWS,
+- improve loading efficiency for frequently viewed images.
+
+## Recommended Before Saving
+
+Before saving the configuration, make sure:
+
+- your AWS credentials are valid,
+- the S3 bucket name is correct,
+- the selected region matches the bucket region,
+- the bucket URL is accessible,
+- the IAM user has permission to read and write files in the bucket.
+
+If you have not prepared your AWS account yet, follow [Setup Credentials in Amazon S3](./setup-amazon.md) first.
+
+Once your credentials are saved, continue to [Migrate Existing Files to S3](./migrate-existing-files.md) if you want to move older local media into Amazon S3.
+
+If you also use **UnoPim DAM** and want to move DAM asset files from private local storage to S3, follow [DAM Asset Migration to AWS S3](./dam-asset-migration-to-aws-s3.md).
diff --git a/docs/aws-integration/contact.md b/docs/aws-integration/contact.md
new file mode 100644
index 0000000..058272a
--- /dev/null
+++ b/docs/aws-integration/contact.md
@@ -0,0 +1,21 @@
+# Contact & Support
+
+That wraps up the user guide for the **UnoPim AWS Integration** extension. We hope this documentation helps you set up Amazon S3 storage in UnoPim with clarity.
+
+If you have any queries, doubts, or need help with the extension, feel free to contact us.
+
+## Get in Touch
+
+**Email**
+Reach out to us at [support@webkul.com](mailto:support@webkul.com) and our team will get back to you.
+
+**HelpDesk**
+You can also raise a ticket through the [Webkul HelpDesk System](https://webkul.uvdesk.com/en/).
+
+This is useful if you want to:
+
+- report an issue,
+- ask a setup-related question,
+- track the status of your support request.
+
+We are happy to help whenever needed.
diff --git a/docs/aws-integration/dam-asset-migration-to-aws-s3.md b/docs/aws-integration/dam-asset-migration-to-aws-s3.md
new file mode 100644
index 0000000..9cb0857
--- /dev/null
+++ b/docs/aws-integration/dam-asset-migration-to-aws-s3.md
@@ -0,0 +1,121 @@
+# DAM Asset Migration to AWS S3
+
+If you use **UnoPim DAM** together with the **AWS S3 Integration**, you can move DAM asset files from the local private disk to your configured **Amazon S3** bucket.
+
+This is useful when:
+
+- your DAM assets were uploaded before AWS S3 was enabled,
+- you want DAM files to be served from the same S3 storage as the rest of your media,
+- you want to reduce storage usage on the local server after a successful migration.
+
+## Command Signature
+
+Run the following Artisan command from your UnoPim project:
+
+```bash
+php artisan unopim:dam:move-asset-to-s3
+```
+
+## Before You Start
+
+Make sure the following setup is already complete:
+
+1. The **AWS Integration** module is installed and configured.
+2. Your **Amazon S3 bucket** is reachable with valid credentials.
+3. The **UnoPim DAM** module is installed and working correctly.
+4. The DAM assets you want to migrate are still available on the local private disk.
+
+If your AWS setup is not ready yet, complete these guides first:
+
+- [Setup Credentials in Amazon S3](./setup-amazon.md)
+- [AWS S3 Setup in UnoPim](./aws-s3-setup-in-unopim.md)
+
+## Authentication Required
+
+For security, this command requires valid **admin credentials** before the migration begins.
+
+During execution, you will be prompted to enter:
+
+- your **admin email**,
+- your **admin password**.
+
+Access is granted only if those credentials belong to an admin user in UnoPim.
+
+> [!NOTE]
+> Keep the terminal session private while entering credentials, especially on shared servers or staging environments.
+
+## What the Command Prompts For
+
+After authentication, the command asks how you want to handle the migration.
+
+## What You Will See in the Terminal
+
+During execution, the command prompts you in this order:
+
+```bash
+Enter your Email:
+> admin@example.com
+
+Enter your Password:
+>
+
+Want to migrate only new uploaded files from your local to s3 (yes/no):
+>
+
+Migrate New only flag: No
+
+Want to delete files from local once uploaded to s3? (yes/no):
+>
+
+Delete flag: No
+Starting migration to aws
+10/10 [============================] 100%
+Done Moving DAM Assets.
+```
+
+This confirms that the command:
+
+- authenticates the admin user first,
+- asks whether only new files should be migrated,
+- asks whether local files should be deleted after upload,
+- then starts the DAM asset transfer to Amazon S3.
+
+### Migrate Only New Files
+
+The command asks whether you want to migrate only files that are not already present on S3.
+
+- Choose **Yes** when you want to upload only newly added or still-unmigrated DAM assets.
+- Choose **No** when you want the command to process the full DAM asset set again.
+
+This is helpful when you run the migration regularly and want to avoid reprocessing files that already exist in S3.
+
+### Delete Local Files After Upload
+
+The command also asks whether local files should be deleted after a successful upload to S3.
+
+- Choose **Yes** to free local server storage after the migration completes successfully.
+- Choose **No** if you want to keep the local files as a backup copy.
+
+> [!CAUTION]
+> Delete local files only after you confirm the migrated DAM assets are accessible from Amazon S3.
+
+## Recommended Migration Flow
+
+Use this order in production:
+
+1. Run the command.
+2. Authenticate with a valid admin account.
+3. Start with **migrate only new files = Yes** if you are doing an incremental migration.
+4. Keep **delete local files = No** on the first run.
+5. Verify that DAM asset files are opening correctly from S3.
+6. Run the command again with local-file deletion only when you are fully confident in the migration result.
+
+## After Migration
+
+After the command finishes:
+
+- verify a few DAM assets from the admin panel,
+- confirm the files exist in your S3 bucket,
+- check whether old local files should remain for backup or be removed in a follow-up run.
+
+If you also need the DAM-side view of this process, see [DAM Asset Migration to AWS S3](../dam/dam-asset-migration-to-aws-s3.md).
diff --git a/docs/aws-integration/index.md b/docs/aws-integration/index.md
index 12c7f06..de5950e 100644
--- a/docs/aws-integration/index.md
+++ b/docs/aws-integration/index.md
@@ -1,3 +1,58 @@
-# Aws Integration Extension
+# UnoPim AWS S3 Integration
+
+The **UnoPim AWS Integration** connects your UnoPim instance with **Amazon S3** — one of the world's most reliable cloud storage services — to store, manage, and serve your product images and PDFs securely in the cloud.
+
+Instead of storing media files on your local server, everything gets uploaded to Amazon S3 automatically. This means your assets are always available, load quickly for users, and can scale without any storage limitations as your catalog grows.
+
+
+
+
+

+
+
+
+
+## How It Works
+
+Once connected, the integration handles your media in two ways:
+
+- **New files** — any image or PDF you add to UnoPim is automatically synced to Amazon S3 without any manual action.
+
+The integration also includes a **cache refresh mechanism** — it refreshes cached images at regular intervals so your storefront and product pages always display the latest version of any updated asset. If no custom refresh time is set, a sensible default kicks in automatically to keep everything current.
+
+
+## Key Features
+
+### Cloud Storage
+- Connect UnoPim with **Amazon S3** to store images and PDFs safely and reliably in the cloud.
+- Enjoy **unlimited, scalable storage** — no capacity limits, no need to manage server disk space.
+
+### Easy Setup
+- Get connected quickly by entering just four details: **Access Key ID**, **Secret Key**, **Region**, and **Bucket Name**.
+
+### Automatic Media Sync
+- All new images and PDFs added to UnoPim are **automatically uploaded to S3** — no manual uploads needed.
+
+### Cache Management
+- Set a custom **environment refresh time** to control how often cached images are updated.
+- Enable **automatic cache refresh** to minimise repeated requests to AWS and ensure faster media loading.
+- If no refresh time is configured, a **default interval** is applied automatically so updates still happen without any manual intervention.
+
+### DAM Integration *(requires UnoPim DAM)*
+If you have the **UnoPim Digital Asset Management (DAM)** extension installed, the AWS integration extends its capabilities further:
+
+- **DAM asset import for products** — when importing products, the system automatically resolves DAM asset file paths to their correct asset IDs, so media links stay accurate without manual correction.
+- **DAM asset import for categories** — the same automatic resolution applies to category fields of type `asset` during import.
+- **Category media in export archives** — when you export a ZIP file, it now includes all files referenced by category fields of type `image`, `file`, and `asset`, alongside your product media — giving you a complete export package every time.
+
+
+## Requirements
+
+| Requirement | Detail |
+|---|---|
+| **Amazon AWS Account** | Required to create an S3 bucket and generate API keys |
+| **S3 Bucket** | A dedicated bucket for storing UnoPim media |
+| **Access Key ID & Secret Key** | Generated from your AWS IAM user settings |
+| **UnoPim DAM** *(optional)* | Required only for DAM-specific asset import and export features |
+
-Placeholder landing page. Real docs are pulled from the project repo at build time.
diff --git a/docs/aws-integration/installation.md b/docs/aws-integration/installation.md
new file mode 100644
index 0000000..bd6769b
--- /dev/null
+++ b/docs/aws-integration/installation.md
@@ -0,0 +1,104 @@
+# Installation
+
+Follow the steps below to install the UnoPim AWS Integration extension. Make sure you have terminal access to your server and know which version of Laravel your UnoPim instance is running before you begin.
+
+
+## Step 1 — Add the Package Files
+
+Download and unzip the extension. Inside, you'll find a folder called `AWSIntegration` — move it into the following directory in your UnoPim project:
+
+```
+packages/Webkul/AWSIntegration
+```
+
+
+## Step 2 — Register the Service Provider
+
+This step depends on which version of Laravel your project uses.
+
+**Laravel 10 — add to `config/app.php` under the `providers` array:**
+
+```php
+Webkul\AWSIntegration\Providers\AWSIntegrationServiceProvider::class,
+```
+
+**Laravel 11 and above — add to `bootstrap/providers.php`:**
+
+```php
+use Webkul\AWSIntegration\Providers\AWSIntegrationServiceProvider;
+
+return [
+ // ...existing providers...
+ AWSIntegrationServiceProvider::class,
+];
+```
+
+
+## Step 3 — Update Composer Autoload
+
+Open `composer.json` and add the following line under the `autoload > psr-4` section:
+
+```json
+"Webkul\\AWSIntegration\\": "packages/Webkul/AWSIntegration/src"
+```
+
+
+## Step 4 — Run the Installer
+
+Run the following commands in order. Each command handles a specific part of the setup:
+
+```bash
+composer dump-autoload
+php artisan aws-s3-package:install
+php artisan optimize:clear
+```
+
+Here's what each command does:
+
+| Command | What it does |
+|---|---|
+| `composer dump-autoload` | Refreshes the Composer autoloader to recognise the new package |
+| `php artisan aws-s3-package:install` | Installs the AWS SDK dependencies, runs database migrations, and publishes package assets |
+| `php artisan optimize:clear` | Clears the application cache |
+
+> **Note:** The installer automatically pulls in the required AWS libraries — `league/flysystem-aws-s3-v3` and `aws/aws-sdk-php` — so you don't need to install them separately.
+
+
+## Step 5 — Publish Config *(Only if using a custom theme)*
+
+If your UnoPim instance uses a custom published theme, run this additional command:
+
+```bash
+php artisan vendor:publish --tag=aws-s3-config --force
+```
+
+You can skip this step if you're using the default UnoPim theme.
+
+
+## Step 6 — Build Frontend Assets *(Only if using a custom theme)*
+
+If you ran Step 5, you also need to build the frontend assets for the extension.
+
+Open your project's `package.json` file and add the following lines inside the `scripts` section:
+
+```json
+"aws:install": "cd packages/Webkul/AWSIntegration && npm install",
+"aws:build": "cd packages/Webkul/AWSIntegration && npm run build"
+```
+
+Then run:
+
+```bash
+npm run aws:install
+npm run aws:build
+```
+
+
+## Verify the Installation
+
+Once all steps are complete, log in to your UnoPim dashboard. If the extension has been installed correctly, you'll be able to access the AWS S3 configuration settings from the admin panel.
+
+
+
+If something doesn't look right, try running `php artisan optimize:clear` again and refreshing the page.
+
diff --git a/docs/aws-integration/media-upload-on-amazon-s3.md b/docs/aws-integration/media-upload-on-amazon-s3.md
new file mode 100644
index 0000000..6d25871
--- /dev/null
+++ b/docs/aws-integration/media-upload-on-amazon-s3.md
@@ -0,0 +1,58 @@
+# Media Upload on Amazon S3
+
+Once the **UnoPim AWS Integration** is configured, users can continue uploading media files in the usual way from the product section.
+
+Go to:
+
+**Catalog → Products**
+
+From there, you can upload:
+
+- product images,
+- PDF documents,
+- other supported product media files.
+
+## How It Works
+
+You do not need to follow any separate upload process for Amazon S3.
+
+When a user uploads media in UnoPim:
+
+1. the file is added through the normal product form,
+2. UnoPim automatically transfers the file to **Amazon S3**,
+3. an **S3 file link** is generated for that media.
+
+
+
+This means users can work inside UnoPim as usual, while the storage is handled in the background through AWS.
+
+
+
+this shows the media file stored in Amazon S3 with the correct bucket URL, confirming that the upload and storage process is working as expected.
+
+## What Users Need to Know
+
+- Uploading files from the product page works the same as before.
+- The system automatically stores uploaded files in the configured **S3 bucket**.
+- Media links are served using the AWS S3 configuration saved in UnoPim.
+
+## Benefits of Uploading Media to S3
+
+Using Amazon S3 for media storage provides several benefits:
+
+- **automatic cloud storage** for newly uploaded files,
+- **reliable access** to images and documents,
+- **better scalability** as your media library grows,
+- **reduced pressure on local server storage**.
+
+Because Amazon S3 offers highly scalable cloud storage, you can continue adding large numbers of media files without worrying about local storage limitations.
+
+## Before Uploading
+
+Before uploading media, make sure:
+
+- the AWS Integration module is enabled,
+- your AWS credentials are configured correctly,
+- the S3 bucket and bucket URL are valid.
+
+If the AWS configuration is not complete, review [AWS S3 Setup in UnoPim](./aws-s3-setup-in-unopim.md).
diff --git a/docs/aws-integration/migrate-existing-files.md b/docs/aws-integration/migrate-existing-files.md
new file mode 100644
index 0000000..f5f6c9b
--- /dev/null
+++ b/docs/aws-integration/migrate-existing-files.md
@@ -0,0 +1,104 @@
+# Migrate Existing Files to S3
+
+After configuring the **UnoPim AWS Integration**, you can move your existing media files from local storage to **Amazon S3**.
+
+This is useful when:
+
+- the module was installed after media already existed in UnoPim,
+- you want old files and new files to be stored in the same S3 bucket,
+- you want to reduce dependency on local server storage.
+
+## Before You Start
+
+Make sure the following steps are already completed:
+
+1. Create an **S3 bucket** in your AWS account.
+2. Generate the **Access Key ID** and **Secret Key** from IAM.
+3. Configure your AWS credentials in UnoPim.
+
+If you have not completed these steps yet, follow:
+
+- [Setup Credentials in Amazon S3](./setup-amazon.md)
+- [AWS S3 Setup in UnoPim](./aws-s3-setup-in-unopim.md)
+
+## Migrate Existing Media to AWS S3
+
+To move existing UnoPim media files to Amazon S3, run:
+
+```bash
+php artisan aws_integration:move_existing_files
+```
+
+This command uploads the existing media from local storage to your configured S3 bucket.
+
+> [!NOTE]
+> Run this command only after your AWS configuration has been saved correctly in UnoPim.
+
+## Remove Local Media After Migration
+
+After confirming that the files are successfully available in Amazon S3, you can remove the local copies by running:
+
+```bash
+php artisan aws_integration:remove_media_files
+```
+
+This helps free up storage space on your server after migration.
+
+> [!CAUTION]
+> Before removing local files, make sure your migration is complete and the files are accessible from S3.
+
+## Update S3 File Visibility (ACL)
+
+You can also update the visibility of files already stored in your S3 bucket.
+
+This command lets you make files:
+
+- `public` so they can be accessed publicly,
+- `private` so access remains restricted.
+
+Run:
+
+```bash
+php artisan aws_integration:update_visibility
+```
+
+## Available Options
+
+You can use the following options with the visibility command:
+
+| Option | Description |
+|---|---|
+| `--visibility=public or private` | Overrides the default visibility stored in the database. |
+| `--path=folder/path` | Applies the visibility update only to a specific folder or prefix. |
+| `--dry-run` | Shows what would change without actually updating any files. |
+
+## Command Examples
+
+Make all matching files public:
+
+```bash
+php artisan aws_integration:update_visibility --visibility=public
+```
+
+Make files inside a specific folder private:
+
+```bash
+php artisan aws_integration:update_visibility --path=products --visibility=private
+```
+
+Preview the changes without applying them:
+
+```bash
+php artisan aws_integration:update_visibility --dry-run
+```
+
+## Recommended Usage
+
+Before running the visibility update in production:
+
+- use `--dry-run` first,
+- check that the selected path is correct,
+- confirm whether files should be `public` or `private`.
+
+> [!CAUTION]
+> The visibility update command can affect all matching files in your S3 bucket. Always review the result with `--dry-run` before applying changes in production.
diff --git a/docs/aws-integration/setup-amazon.md b/docs/aws-integration/setup-amazon.md
new file mode 100644
index 0000000..0142315
--- /dev/null
+++ b/docs/aws-integration/setup-amazon.md
@@ -0,0 +1,116 @@
+# Setting Up Your Amazon S3 Credentials
+
+Before configuring the UnoPim AWS Integration, you need to set up an Amazon S3 bucket and generate your API credentials. Follow the steps below to get everything ready on the AWS side.
+
+
+## Step 1 — Create an AWS Account
+
+Go to [https://aws.amazon.com](https://aws.amazon.com) and click **Create an AWS Account**.
+
+
+
+
+On the sign-in page, you'll see two options:
+
+| Option | Who it's for |
+|---|---|
+| **Create an AWS Account** | First-time users who don't have an AWS account yet |
+| **Sign in to the Console** | Existing users who already have an account |
+
+
+
+Once signed in, you'll land on the AWS Management Console — your central dashboard for all AWS services.
+
+
+
+## Step 2 — Open Amazon S3
+
+From the AWS Console, click on **All Services** and select **S3** under the Storage section. Alternatively, type `S3` in the search bar at the top and click on it from the results.
+
+
+
+This opens the S3 dashboard where you can see all your existing buckets — or create a new one.
+
+
+
+
+## Step 3 — Create a New Bucket
+
+Click the **Create bucket** button. Fill in the required details on the Create bucket page:
+
+| Field | What to enter |
+|---|---|
+| **Bucket name** | A unique name for your bucket (e.g., `mystore-unopim-media`). Names are globally unique — no two buckets on all of AWS can share the same name. |
+| **AWS Region** | Choose the region closest to your server for best performance (e.g., `us-east-1`, `eu-west-1`) |
+
+> **Important:** Make sure to **uncheck "Block all public access"** so that UnoPim can read and write media files to the bucket. Without this, file uploads will fail.
+
+Once all details are filled in, scroll to the bottom and click **Create bucket**.
+
+
+
+
+## Step 4 — Manage Your Bucket
+
+Once the bucket is created, you can:
+
+- **Upload files** directly to the bucket
+- **Create folders** to organise your assets
+- **View and manage** all stored data
+
+This is the same bucket where UnoPim will store your product images and PDFs once the integration is active.
+
+
+## Step 5 — Create an IAM User
+
+Instead of using your main AWS root account for the integration, it's strongly recommended to create a dedicated **IAM user** with limited permissions. This keeps your main account secure.
+
+1. In the AWS Console, search for **IAM** and open it — it's listed under **Security, Identity & Compliance**.
+
+
+
+2. In the IAM dashboard, click **Users** in the left sidebar.
+3. Click **Add users** to create a new IAM user.
+4. Enter a username (e.g., `unopim-s3-user`) and follow the on-screen steps to set permissions.
+
+
+
+> Assign the `AmazonS3FullAccess` policy to give this user full access to your S3 bucket, or create a custom policy limited to your specific bucket for tighter security.
+
+
+
+## Step 6 — Generate Your Access Key ID and Secret Access Key
+
+Once your IAM user is created:
+
+1. Click on the user's name to open their profile.
+2. Go to the **Security credentials** tab.
+3. Scroll to **Access keys** and click **Create access key**.
+4. Your **Access Key ID** and **Secret Access Key** will be generated and displayed.
+
+
+
+> **Important:** AWS will only show your Secret Access Key **once**. Copy both keys immediately and store them in a safe place. If you lose the Secret Key, you'll need to delete this key pair and generate a new one.
+
+
+## What You Now Have
+
+You should now have the four values needed to connect UnoPim to your S3 bucket:
+
+| Credential | Where to find it |
+|---|---|
+| **Access Key ID** | Generated in Step 6 |
+| **Secret Access Key** | Generated in Step 6 — save immediately |
+| **Region** | The region selected when creating the bucket in Step 3 |
+| **Bucket Name** | The name you gave your bucket in Step 3 |
+
+
+## Module Configuration in UnoPim
+
+After installing the UnoPim AWS Integration, navigate to the left sidebar in your UnoPim dashboard and go to:
+
+**AWS S3 → Credentials**
+
+Here, users with the required permissions can enter the credentials collected above and manage all AWS configuration settings.
+
+Head over to [AWS S3 Setup in UnoPim](./aws-s3-setup-in-unopim.md) to complete the setup.
diff --git a/docs/aws-integration/sidebar.json b/docs/aws-integration/sidebar.json
index d665e86..0b76036 100644
--- a/docs/aws-integration/sidebar.json
+++ b/docs/aws-integration/sidebar.json
@@ -2,7 +2,28 @@
{
"text": "Aws Integration",
"items": [
- { "text": "Overview", "link": "/aws-integration/" }
+ { "text": "Overview", "link": "/aws-integration/" },
+ {"text" : "Installation", "link": "/aws-integration/installation" },
+ {"text" : "Setup Credentials in Amazon S3", "link": "/aws-integration/setup-amazon" }
+ ]
+ },
+
+ {
+ "text": "Configuration",
+ "items": [
+ {"text" : "AWS S3 Setup in UnoPim", "link": "/aws-integration/aws-s3-setup-in-unopim" },
+ {"text" : "Migrate Existing Files to S3", "link": "/aws-integration/migrate-existing-files" },
+ {"text" : "Media Upload on Amazon S3", "link": "/aws-integration/media-upload-on-amazon-s3" },
+ {"text" : "DAM Asset Migration to AWS S3", "link": "/aws-integration/dam-asset-migration-to-aws-s3" }
+
+
+ ]
+ },
+
+ {
+ "text":"Support",
+ "items":[
+ {"text" : "Contact & Support", "link": "/aws-integration/contact" }
]
}
]
diff --git a/docs/azure-integration/assets/overview/intro-banner.png b/docs/azure-integration/assets/overview/intro-banner.png
new file mode 100644
index 0000000..fe541ed
Binary files /dev/null and b/docs/azure-integration/assets/overview/intro-banner.png differ
diff --git a/docs/azure-integration/assets/setup/azure-cred.png b/docs/azure-integration/assets/setup/azure-cred.png
new file mode 100644
index 0000000..b2afa22
Binary files /dev/null and b/docs/azure-integration/assets/setup/azure-cred.png differ
diff --git a/docs/azure-integration/assets/setup/azure.png b/docs/azure-integration/assets/setup/azure.png
new file mode 100644
index 0000000..f9cc26f
Binary files /dev/null and b/docs/azure-integration/assets/setup/azure.png differ
diff --git a/docs/azure-integration/assets/verify/133-img-8.webp b/docs/azure-integration/assets/verify/133-img-8.webp
new file mode 100644
index 0000000..05eab0c
Binary files /dev/null and b/docs/azure-integration/assets/verify/133-img-8.webp differ
diff --git a/docs/azure-integration/assets/verify/img-1.webp b/docs/azure-integration/assets/verify/img-1.webp
new file mode 100644
index 0000000..ec287fa
Binary files /dev/null and b/docs/azure-integration/assets/verify/img-1.webp differ
diff --git a/docs/azure-integration/assets/verify/img-2.webp b/docs/azure-integration/assets/verify/img-2.webp
new file mode 100644
index 0000000..2a79d6c
Binary files /dev/null and b/docs/azure-integration/assets/verify/img-2.webp differ
diff --git a/docs/azure-integration/assets/verify/img-3.webp b/docs/azure-integration/assets/verify/img-3.webp
new file mode 100644
index 0000000..40201ee
Binary files /dev/null and b/docs/azure-integration/assets/verify/img-3.webp differ
diff --git a/docs/azure-integration/assets/verify/img-4.webp b/docs/azure-integration/assets/verify/img-4.webp
new file mode 100644
index 0000000..2d69cd7
Binary files /dev/null and b/docs/azure-integration/assets/verify/img-4.webp differ
diff --git a/docs/azure-integration/assets/verify/img-5.webp b/docs/azure-integration/assets/verify/img-5.webp
new file mode 100644
index 0000000..a1855aa
Binary files /dev/null and b/docs/azure-integration/assets/verify/img-5.webp differ
diff --git a/docs/azure-integration/assets/verify/img-6.webp b/docs/azure-integration/assets/verify/img-6.webp
new file mode 100644
index 0000000..cde48e0
Binary files /dev/null and b/docs/azure-integration/assets/verify/img-6.webp differ
diff --git a/docs/azure-integration/assets/verify/img-7.webp b/docs/azure-integration/assets/verify/img-7.webp
new file mode 100644
index 0000000..b388fc0
Binary files /dev/null and b/docs/azure-integration/assets/verify/img-7.webp differ
diff --git a/docs/azure-integration/assets/verify/img-9.webp b/docs/azure-integration/assets/verify/img-9.webp
new file mode 100644
index 0000000..29dabd4
Binary files /dev/null and b/docs/azure-integration/assets/verify/img-9.webp differ
diff --git a/docs/azure-integration/contact.md b/docs/azure-integration/contact.md
new file mode 100644
index 0000000..4f57f9a
--- /dev/null
+++ b/docs/azure-integration/contact.md
@@ -0,0 +1,21 @@
+# Contact & Support
+
+That wraps up the user guide for the **UnoPim Azure Integration** extension. We hope this documentation helps you set up and use Azure Blob Storage in UnoPim with confidence.
+
+If you have any questions, run into issues, or need help with the extension, the Webkul support team is available to assist.
+
+## Get in Touch
+
+**Email**
+Reach out to us at [support@webkul.com](mailto:support@webkul.com) and our team will get back to you as soon as possible.
+
+**HelpDesk**
+You can also raise a ticket through the [Webkul HelpDesk System](https://webkul.uvdesk.com/en/).
+
+This is useful if you want to:
+
+- report an issue,
+- ask a setup or migration question,
+- track the status of your support request.
+
+We are happy to help whenever needed.
diff --git a/docs/azure-integration/index.md b/docs/azure-integration/index.md
new file mode 100644
index 0000000..bcd6135
--- /dev/null
+++ b/docs/azure-integration/index.md
@@ -0,0 +1,48 @@
+# UnoPim Azure Integration
+
+## What Is the UnoPim Azure Integration?
+
+The **UnoPim Azure Integration** connects your UnoPim product catalog with **Microsoft Azure Blob Storage** — Microsoft's cloud-based storage service designed to handle large volumes of media like images, videos, and documents.
+
+
+

+
+
+Instead of storing your product images and PDFs on your local server, this integration lets you move everything to the cloud — keeping your assets secure, accessible, and easy to manage no matter how large your catalog grows.
+
+
+
+## What Can It Do?
+
+- Upload product images and PDFs **directly to Azure Blob Storage** from UnoPim.
+- **Migrate existing local media files** to Azure Blob Storage in one go.
+- Optionally **remove local copies** of files after a successful migration to free up server space.
+- **View Azure Blob URLs** directly on the product page — no need to download assets locally to access them.
+- **Export product data** with public image URLs included, in CSV, XLS, and XLSX formats.
+
+
+## Features
+
+| Feature | Description |
+|---|---|
+| **Azure Blob Integration** | Connects your UnoPim catalog directly to Microsoft Azure Blob Storage |
+| **Secure Cloud Storage** | Store and manage all product assets safely in the cloud |
+| **Direct Media Upload** | Upload product images and PDFs to Azure without leaving UnoPim |
+| **Local Media Migration** | Easily migrate existing local files to Azure Blob Storage |
+| **Remove Local Files** | Option to delete local media after successful migration to save server space |
+| **Azure Blob URLs on Product Page** | View and access asset URLs directly from the product page |
+| **Export with Public URLs** | Export product data with image URLs in CSV, XLS, or XLSX format |
+| **UnoPim Compatible** | Fully compatible with the latest version of UnoPim |
+
+
+## Prerequisites
+
+Before you begin, make sure the following are in place:
+
+| Requirement | Detail |
+|---|---|
+| **UnoPim** | Installed and running on your system |
+| **Microsoft Azure Account** | An active Azure account with Blob Storage enabled |
+| **Azure Storage Credentials** | Your Azure **Storage Account Name** and **Access Key** — available from your Azure portal |
+
+
diff --git a/docs/azure-integration/installation.md b/docs/azure-integration/installation.md
new file mode 100644
index 0000000..8803b87
--- /dev/null
+++ b/docs/azure-integration/installation.md
@@ -0,0 +1,74 @@
+# Installation
+
+Follow the steps below to install the UnoPim Azure Blob Integration. Make sure you have terminal access to your server before getting started.
+
+---
+
+## Step 1 — Extract the Extension
+
+Unzip the extension package you downloaded. Inside, you'll find a `packages` folder — merge it into the **root directory** of your UnoPim project. Your project structure should look like this:
+
+```
+/your-unopim-project
+└── packages/
+ └── Webkul/
+ └── AzureBlob/
+```
+
+---
+
+## Step 2 — Register the Service Provider
+
+Open the `bootstrap/providers.php` file and add the following:
+
+```php
+use Webkul\AzureBlob\Providers\AzureBlobServiceProvider;
+
+return [
+ // ...existing providers...
+ AzureBlobServiceProvider::class,
+];
+```
+
+---
+
+## Step 3 — Update Composer Autoload
+
+Open `composer.json` and add the following line under the `autoload > psr-4` section:
+
+```json
+"Webkul\\AzureBlob\\": "packages/Webkul/AzureBlob/src"
+```
+
+---
+
+## Step 4 — Run the Setup Commands
+
+Run the following commands one by one from your project root directory. Wait for each one to complete before running the next.
+
+**Refresh the Composer autoloader**
+```bash
+composer dump-autoload
+```
+
+**Install the Azure Blob package**
+```bash
+php artisan azure-blob-package:install
+```
+
+**Clear the application cache**
+```bash
+php artisan optimize:clear
+```
+
+---
+
+## Verify the Installation
+
+Once all commands have completed successfully, log in to your UnoPim dashboard. If the integration is installed correctly, you'll find the Azure Blob configuration options available in the admin settings.
+
+If something doesn't look right, run `php artisan optimize:clear` again and refresh the page.
+
+---
+
+Next, you'll need to set up your Azure Blob Storage account and retrieve your credentials. Head over to [Azure Blob Storage Setup](./setup.md) to continue.
\ No newline at end of file
diff --git a/docs/azure-integration/move-existing-files.md b/docs/azure-integration/move-existing-files.md
new file mode 100644
index 0000000..2138916
--- /dev/null
+++ b/docs/azure-integration/move-existing-files.md
@@ -0,0 +1,39 @@
+# Migrating Existing Media Files to Azure
+
+If you already have product media stored locally in UnoPim, you don't need to re-upload everything manually. The integration includes a built-in command that automatically moves all your existing local media files to Azure Blob Storage in one go.
+
+---
+
+## Before You Begin
+
+Make sure the following is in place before running the migration command:
+
+- Your **Azure credentials are saved and enabled** in UnoPim (see [Setting Up Azure Credentials in UnoPim](./setup.md)).
+
+> **Important:** If your Azure credential is disabled, the migration command will fail. Double-check that the toggle is turned **on** before proceeding.
+
+---
+
+## Run the Migration Command
+
+Open your terminal, navigate to your UnoPim project root, and run:
+
+```bash
+php artisan azure_integration:move_existing_files
+```
+
+This command will scan all existing media files in your UnoPim local storage and transfer them to the Azure Blob container you configured in your credentials.
+
+---
+
+## What Happens After the Migration
+
+Once the command completes:
+
+- All transferred media files will be stored in your **Azure Blob container**.
+- Product pages in UnoPim will serve media via **Azure Blob URLs** instead of local paths.
+- Any **new media** uploaded going forward will also go directly to Azure — no additional commands needed.
+
+---
+
+> **Tip:** Run this command during off-peak hours if you have a large media library, as migrating a high volume of files may take some time to complete.
diff --git a/docs/azure-integration/remove-local-media-after-migration.md b/docs/azure-integration/remove-local-media-after-migration.md
new file mode 100644
index 0000000..428f05c
--- /dev/null
+++ b/docs/azure-integration/remove-local-media-after-migration.md
@@ -0,0 +1,56 @@
+# Remove Local Media After Migration
+
+After your media files have been successfully moved to **Azure Blob Storage**, you may want to remove the duplicate files from your local server to free up disk space.
+
+UnoPim provides a command for that:
+
+```bash
+php artisan azure_integration:remove_media_files
+```
+
+## What This Command Does
+
+This command removes the local copies of media files that have already been migrated to Azure.
+
+Use it when:
+
+- your migration to Azure has finished successfully,
+- you have confirmed that product media is loading correctly from Azure,
+- you no longer need to keep duplicate files on the local server.
+
+## Before You Run It
+
+Make sure you verify the migration first:
+
+- check that the expected files are present in your Azure Blob container,
+- open a few product pages in UnoPim and confirm the images or PDFs are working,
+- make sure your Azure integration is still enabled and serving files correctly.
+
+> [!CAUTION]
+> Do not remove local files immediately after migration without checking Azure first. Once local duplicates are deleted, the local backup copy is no longer available.
+
+## When to Use This Command
+
+This command is useful if you want to:
+
+- free up storage space on your server,
+- avoid keeping the same media in two places,
+- fully switch your product media storage from local disk to Azure Blob Storage.
+
+## Recommended Usage
+
+Follow this order:
+
+1. Run the migration command to move your media to Azure.
+2. Verify that the files are available and working from Azure.
+3. Run the local cleanup command only after verification is complete.
+
+## Result
+
+After running the command:
+
+- the duplicate local media files are removed,
+- your product assets continue to be served from **Azure Blob Storage**,
+- your local server keeps less unused media data.
+
+If you want to confirm everything before cleanup, continue to [Verify Migration](./verify-migration.md).
diff --git a/docs/azure-integration/setup.md b/docs/azure-integration/setup.md
new file mode 100644
index 0000000..de2551c
--- /dev/null
+++ b/docs/azure-integration/setup.md
@@ -0,0 +1,53 @@
+# Setting Up Azure Credentials in UnoPim
+
+Once the module is installed, the next step is to connect your Azure Blob Storage account to UnoPim by entering your credentials.
+
+---
+
+## Step 1 — Open Azure Integration
+
+Log in to your UnoPim dashboard. You'll notice a new **Azure Integration** option in the left navigation panel. Click on it to expand the menu.
+
+
+
+---
+
+## Step 2 — View the Documentation *(Optional)*
+
+Go to **Azure Integration → Documentation** to access the official Azure Blob Storage documentation directly from UnoPim. This is helpful if you need to look something up while configuring the integration.
+
+---
+
+## Step 3 — Enter Your Credentials
+
+Navigate to **Azure Integration → Credential**. Fill in the following fields with your Azure Blob Storage details:
+
+| Field | What to enter |
+|---|---|
+| **Account Name** | The name of your Azure Storage Account |
+| **Account Key** | The access key for your Azure Storage Account — found in your Azure portal under **Access keys** |
+| **Container Name** | The name of the Blob container where media files will be stored |
+| **Endpoint Suffix** | The endpoint suffix for your Azure storage service (e.g., `core.windows.net`) |
+
+
+
+Once all fields are filled in, click **Save Credential**.
+
+---
+
+## Step 4 — Enable or Disable the Credential
+
+After saving, you'll see a **toggle switch** next to your credential. Use this to enable or disable the Azure integration at any time.
+
+Here's what each state means:
+
+| State | What happens |
+|---|---|
+| **Enabled** | All media files (images and PDFs) uploaded in UnoPim are stored directly in Azure Blob Storage and served via an Azure Blob URL |
+| **Disabled** | Media files are stored in your local server storage instead, and no files are sent to Azure |
+
+> **Note:** If you switch from enabled to disabled, any files already uploaded to Azure Blob Storage will remain there — only new uploads will go to local storage going forward.
+
+---
+
+Once your credential is saved and enabled, your UnoPim instance is fully connected to Azure Blob Storage. Any product media you upload from this point will be stored securely in the cloud.
\ No newline at end of file
diff --git a/docs/azure-integration/sidebar.json b/docs/azure-integration/sidebar.json
new file mode 100644
index 0000000..5de6343
--- /dev/null
+++ b/docs/azure-integration/sidebar.json
@@ -0,0 +1,26 @@
+[
+ {
+ "text": "Azure Integration",
+ "items": [
+ { "text": "Overview", "link": "/azure-integration/" },
+ {"text" : "Installation", "link": "/azure-integration/installation" },
+ {"text" : "Azure Blob Storage Setup", "link": "/azure-integration/setup" }
+ ]
+ },
+
+ {
+ "text" : "Migrating Existing Files to Azure",
+ "items" : [
+ {"text" : "Move Existing Files to Azure", "link": "/azure-integration/move-existing-files" },
+ {"text" : "Remove Local Media after Migration", "link": "/azure-integration/remove-local-media-after-migration" },
+ {"text" : "Verify Migration", "link": "/azure-integration/verify-migration" }
+ ]
+ },
+
+ {
+ "text" : "Support",
+ "items" : [
+ {"text" : "Contact & Support", "link": "/azure-integration/contact" }
+ ]
+ }
+]
diff --git a/docs/azure-integration/verify-migration.md b/docs/azure-integration/verify-migration.md
new file mode 100644
index 0000000..b771460
--- /dev/null
+++ b/docs/azure-integration/verify-migration.md
@@ -0,0 +1,96 @@
+# Creating Products with Azure Media
+
+Once your Azure integration is set up and enabled, any media you attach to a product — images or PDFs — will automatically be uploaded to Azure Blob Storage. Here's how to create a product and attach media to it.
+
+---
+
+## Step 1 — Create a New Product
+
+Go to **Catalog → Products** and click the **Create Product** button.
+
+
+
+Fill in the following fields:
+
+| Field | What to enter |
+|---|---|
+| **Product Type** | Select **Simple** for a standard product, or **Configurable** for a product with variants |
+| **Family** | A family named `Default` is already available — select it or choose another if you've created custom families |
+| **SKU** | Enter a unique identifier for the product |
+
+> **Note:** The SKU must be unique across all products. No two products can share the same SKU.
+
+
+
+Click **Save Product** to continue.
+
+---
+
+## Step 2 — Fill in the Product Details
+
+After saving, you'll be taken to the product edit page. Complete the following fields:
+
+| Field | Notes |
+|---|---|
+| **SKU** | Auto-filled from the previous step |
+| **Name** | Enter the product name manually |
+| **URL Key** | Auto-filled based on the product name |
+| **Short Description** | Enter a brief summary of the product |
+| **Description** | Enter the full product description |
+| **Price** | Enter the product price manually |
+
+
+
+
+---
+
+## Step 3 — Add an Image
+
+In the **Image attribute field**, click to select and upload a product image. Once uploaded, the image will be stored directly in your Azure Blob container and the product page will display its Azure Blob URL.
+
+
+
+---
+
+## Step 4 — Add a PDF File
+
+In the **File attribute field**, select a PDF file to attach to the product.
+
+
+
+> **Note:** Before you can attach a PDF, you need to first create a **File type attribute**. See the section below for how to do this.
+
+---
+
+## Creating a File Type Attribute
+
+If you haven't already created a file attribute, follow these steps:
+
+1. Go to **Catalog → Attributes** and click **Create Attribute**.
+2. Fill in the following:
+ - **Code** — enter a unique code for the attribute (e.g., `product_pdf`)
+ - **Type** — select **File** from the dropdown
+ - **Label / Name** — enter a display name for the attribute (e.g., `Product PDF`)
+3. Click **Save Attribute**.
+
+
+
+
+> **Note:** The File type attribute in UnoPim currently supports **PDF files only**.
+
+Once created, this attribute will appear on the product edit page under the file attribute section, ready for you to attach PDFs to your products.
+
+---
+
+## Step 5 — Save the Product
+
+Once all fields are filled in and your media is attached, click **Save Product** at the top of the page.
+
+
+
+
+After saving, both the image and the PDF file will show an **Azure Blob Storage URL** — confirming they have been successfully uploaded to Azure and are being served from the cloud.
+
+
+
+
\ No newline at end of file
diff --git a/docs/bagisto/assets/Data-Transfer/attribute-family-export.png b/docs/bagisto/assets/Data-Transfer/attribute-family-export.png
new file mode 100644
index 0000000..3695aa0
Binary files /dev/null and b/docs/bagisto/assets/Data-Transfer/attribute-family-export.png differ
diff --git a/docs/bagisto/assets/Data-Transfer/bagisto-attribute-export.png b/docs/bagisto/assets/Data-Transfer/bagisto-attribute-export.png
new file mode 100644
index 0000000..41d91fb
Binary files /dev/null and b/docs/bagisto/assets/Data-Transfer/bagisto-attribute-export.png differ
diff --git a/docs/bagisto/assets/Data-Transfer/bagisto-category-export.png b/docs/bagisto/assets/Data-Transfer/bagisto-category-export.png
new file mode 100644
index 0000000..318d14e
Binary files /dev/null and b/docs/bagisto/assets/Data-Transfer/bagisto-category-export.png differ
diff --git a/docs/bagisto/assets/Data-Transfer/create-export-job.png b/docs/bagisto/assets/Data-Transfer/create-export-job.png
new file mode 100644
index 0000000..7da5676
Binary files /dev/null and b/docs/bagisto/assets/Data-Transfer/create-export-job.png differ
diff --git a/docs/bagisto/assets/Data-Transfer/data-transfer.png b/docs/bagisto/assets/Data-Transfer/data-transfer.png
new file mode 100644
index 0000000..1d1f901
Binary files /dev/null and b/docs/bagisto/assets/Data-Transfer/data-transfer.png differ
diff --git a/docs/bagisto/assets/Data-Transfer/export-fields.png b/docs/bagisto/assets/Data-Transfer/export-fields.png
new file mode 100644
index 0000000..cfff723
Binary files /dev/null and b/docs/bagisto/assets/Data-Transfer/export-fields.png differ
diff --git a/docs/bagisto/assets/Data-Transfer/export-now.png b/docs/bagisto/assets/Data-Transfer/export-now.png
new file mode 100644
index 0000000..808e6a7
Binary files /dev/null and b/docs/bagisto/assets/Data-Transfer/export-now.png differ
diff --git a/docs/bagisto/assets/Data-Transfer/filters.png b/docs/bagisto/assets/Data-Transfer/filters.png
new file mode 100644
index 0000000..5e94a34
Binary files /dev/null and b/docs/bagisto/assets/Data-Transfer/filters.png differ
diff --git a/docs/bagisto/assets/Data-Transfer/monitor-jobs.png b/docs/bagisto/assets/Data-Transfer/monitor-jobs.png
new file mode 100644
index 0000000..4c98a22
Binary files /dev/null and b/docs/bagisto/assets/Data-Transfer/monitor-jobs.png differ
diff --git a/docs/bagisto/assets/Data-Transfer/save-export.png b/docs/bagisto/assets/Data-Transfer/save-export.png
new file mode 100644
index 0000000..e4caf08
Binary files /dev/null and b/docs/bagisto/assets/Data-Transfer/save-export.png differ
diff --git a/docs/bagisto/assets/mapping/additional-fields.png b/docs/bagisto/assets/mapping/additional-fields.png
new file mode 100644
index 0000000..29209da
Binary files /dev/null and b/docs/bagisto/assets/mapping/additional-fields.png differ
diff --git a/docs/bagisto/assets/mapping/category-fields.png b/docs/bagisto/assets/mapping/category-fields.png
new file mode 100644
index 0000000..2ae4dad
Binary files /dev/null and b/docs/bagisto/assets/mapping/category-fields.png differ
diff --git a/docs/bagisto/assets/mapping/category-mapping.png b/docs/bagisto/assets/mapping/category-mapping.png
new file mode 100644
index 0000000..a0a4933
Binary files /dev/null and b/docs/bagisto/assets/mapping/category-mapping.png differ
diff --git a/docs/bagisto/assets/mapping/configurable-attribute.png b/docs/bagisto/assets/mapping/configurable-attribute.png
new file mode 100644
index 0000000..a3b1bfa
Binary files /dev/null and b/docs/bagisto/assets/mapping/configurable-attribute.png differ
diff --git a/docs/bagisto/assets/mapping/fields.png b/docs/bagisto/assets/mapping/fields.png
new file mode 100644
index 0000000..e551d46
Binary files /dev/null and b/docs/bagisto/assets/mapping/fields.png differ
diff --git a/docs/bagisto/assets/mapping/mapping-template.png b/docs/bagisto/assets/mapping/mapping-template.png
new file mode 100644
index 0000000..9915b94
Binary files /dev/null and b/docs/bagisto/assets/mapping/mapping-template.png differ
diff --git a/docs/bagisto/assets/mapping/save.png b/docs/bagisto/assets/mapping/save.png
new file mode 100644
index 0000000..bc78e22
Binary files /dev/null and b/docs/bagisto/assets/mapping/save.png differ
diff --git a/docs/bagisto/assets/overview/intro-banner.png b/docs/bagisto/assets/overview/intro-banner.png
new file mode 100644
index 0000000..0c6abbb
Binary files /dev/null and b/docs/bagisto/assets/overview/intro-banner.png differ
diff --git a/docs/bagisto/assets/setup/bagisto.png b/docs/bagisto/assets/setup/bagisto.png
new file mode 100644
index 0000000..5a0e694
Binary files /dev/null and b/docs/bagisto/assets/setup/bagisto.png differ
diff --git a/docs/bagisto/assets/setup/create-cred.png b/docs/bagisto/assets/setup/create-cred.png
new file mode 100644
index 0000000..983c5ca
Binary files /dev/null and b/docs/bagisto/assets/setup/create-cred.png differ
diff --git a/docs/bagisto/assets/setup/cred.png b/docs/bagisto/assets/setup/cred.png
new file mode 100644
index 0000000..7cdbd3a
Binary files /dev/null and b/docs/bagisto/assets/setup/cred.png differ
diff --git a/docs/bagisto/attribute-mapping-template.md b/docs/bagisto/attribute-mapping-template.md
new file mode 100644
index 0000000..4dbb632
--- /dev/null
+++ b/docs/bagisto/attribute-mapping-template.md
@@ -0,0 +1,32 @@
+# Mapping Templates
+
+Users can create multiple mapping templates in this connector. They can then edit these templates to set specific attribute mappings as needed. For this, they tap on **Attribute Mapping**.
+
+
+
+
+
+## Attribute Template Page
+
+To view and edit an attribute template, users click on the template name. This redirects them to the **Attribute Template** page where they can manage the following:
+
+### Attribute Fields
+
+Map the Bagisto Fields with UnoPim Attributes. Users can also set a **Fixed Value** for the mappings.
+
+
+
+### Additional Attribute Mappings
+
+Users can perform **Additional Attribute Mappings** by writing and selecting the Bagisto attribute code to add and map an additional attribute.
+
+
+
+### Configurable Attribute Mappings
+
+Users can also perform **Configurable Attribute Mappings** by selecting and mapping the Bagisto configurable attributes.
+
+
+
+
+To save the Attribute Template, they tap on the **Save** button and it will be added into the list of templates. Users can further proceed to edit the templates to perform the attribute mapping or delete templates.
diff --git a/docs/bagisto/category-mapping-template.md b/docs/bagisto/category-mapping-template.md
new file mode 100644
index 0000000..b6b82a0
--- /dev/null
+++ b/docs/bagisto/category-mapping-template.md
@@ -0,0 +1,33 @@
+# Category Field Mapping
+
+The Category Field Mapping feature enables users to establish mappings between Bagisto category fields and UnoPim category attributes. This allows for seamless synchronization of category data between the two systems.
+
+## Overview
+
+By selecting **Category Field Mapping**, users can link Bagisto category fields to their corresponding UnoPim category fields. This mapping ensures that category information is properly transferred and synchronized.
+
+
+
+## Mappable Fields
+
+The following Bagisto category fields can be mapped to UnoPim:
+
+- **Name** - Category name
+- **Description** - Category description
+- **Display Mode** - How the category is displayed
+- **Position** - Category ordering position
+- **Visible in Menu** - Menu visibility setting
+- **Slug** - URL-friendly category identifier
+- **Meta Title** - SEO meta title
+- **Meta Keywords** - SEO meta keywords
+- **Meta Description** - SEO meta description
+- **Logo** - Category logo image
+- **Banner** - Category banner image
+
+
+
+## Saving the Mapping
+
+After configuring the category field mappings, users can click the **Save** button to store the mapping configuration. This ensures that the defined mappings are applied during category synchronization between Bagisto and UnoPim.
+
+
diff --git a/docs/bagisto/contact-support.md b/docs/bagisto/contact-support.md
new file mode 100644
index 0000000..b8f9759
--- /dev/null
+++ b/docs/bagisto/contact-support.md
@@ -0,0 +1,21 @@
+# Contact & Support
+
+That wraps up the user guide for the **UnoPim Bagisto Connector** extension. We hope this documentation helps you set up and use the connector in UnoPim with confidence.
+
+If you have any questions, run into issues, or need help with the extension, the Webkul support team is available to assist.
+
+## Get in Touch
+
+**Email**
+Reach out to us at [support@webkul.com](mailto:support@webkul.com) and our team will get back to you as soon as possible.
+
+**HelpDesk**
+You can also raise a ticket through the [Webkul HelpDesk System](https://webkul.uvdesk.com/en/).
+
+This is useful if you want to:
+
+- report an issue,
+- ask a setup or migration question,
+- track the status of your support request.
+
+We are happy to help whenever needed.
diff --git a/docs/bagisto/credentials-setup.md b/docs/bagisto/credentials-setup.md
new file mode 100644
index 0000000..df36bda
--- /dev/null
+++ b/docs/bagisto/credentials-setup.md
@@ -0,0 +1,86 @@
+# Configuration & Credentials Setup
+
+After installing the UnoPim Bagisto Connector, you need to configure it with your Bagisto store credentials. This guide walks you through setting up and managing connector credentials, attribute mappings, and channel/locale configurations.
+
+
+## Accessing the Bagisto Connector
+
+Once the UnoPim Bagisto Connector is installed, it appears in the left sidebar of your UnoPim dashboard.
+
+### Step 1 — Open the Connector
+
+1. Log in to your UnoPim dashboard
+2. Navigate to the left sidebar
+3. Click on **Bagisto** to access the connector
+
+
+
+
+## Setting Up Store Credentials
+
+### Step 1 — Navigate to Credentials
+
+From the Bagisto section, navigate to:
+
+**Bagisto > Credentials > Create Credentials**
+
+
+
+### Step 2 — Enter Bagisto Store Details
+
+Fill in the following information to connect your Bagisto store:
+
+| Field | Description | Example |
+|---|---|---|
+| **Bagisto Shop URL** | The base URL of your Bagisto store | `https://shop.example.com` |
+| **Email Address** | Administrator email for authentication | `admin@example.com` |
+| **Password** | Administrator password for authentication | `••••••••` |
+
+
+
+### Step 3 — Save Credentials
+
+Click the **Save** button to add the credential to UnoPim.
+
+### Multiple Store Support
+
+The UnoPim Bagisto Connector supports managing multiple Bagisto stores. You can:
+- Add credentials for different Bagisto store instances
+- Manage separate product catalogs per store
+- Maintain independent export configurations for each store
+
+Simply repeat the steps above to add additional store credentials as needed.
+
+
+## Managing Credentials
+
+### View All Credentials
+
+Once credentials are saved successfully, they appear in the **Credentials** section. Here you can see:
+- List of all connected Bagisto stores
+- Connection status
+- Quick actions (Edit, Delete)
+
+### Edit Credentials
+
+To modify existing credentials:
+
+1. Click the **Edit** button next to the credential you want to update
+2. You'll be redirected to the credential edit page
+3. Update any of the following:
+ - Bagisto Shop URL
+ - Email Address
+ - Password
+4. Click **Save** to apply changes
+
+### Delete Credentials
+
+To remove a credential:
+
+1. Click the **Delete** button next to the credential
+2. Confirm the deletion
+3. The credential and all associated mappings will be removed
+
+> **Note:** Deleting credentials will stop all product exports to that Bagisto store. Proceed with caution.
+
+---
diff --git a/docs/bagisto/index.md b/docs/bagisto/index.md
index 3ca76cc..4898ee2 100644
--- a/docs/bagisto/index.md
+++ b/docs/bagisto/index.md
@@ -1,3 +1,40 @@
-# Bagisto Extension
+# UnoPim Bagisto Connector
+
+## Overview
+
+The UnoPim Bagisto Connector seamlessly integrates your UnoPim product information management system with your Bagisto e-commerce store. This powerful extension enables you to efficiently manage and synchronize product data, categories, attributes, and media files all from a centralized location.
+
+
+

+
+
+With this connector, you can keep your Bagisto store up-to-date with the latest product information from UnoPim without switching between multiple platforms.
+
+## What You Can Do
+
+### Centralized Product Management
+- **Export Categories** – Transfer your UnoPim categories directly to Bagisto collections
+- **Sync Attributes** – Seamlessly map and export UnoPim attributes to Bagisto
+- **Manage Product Families** – Export complete product families from UnoPim to Bagisto
+- **Support for All Product Types** – Work with both simple and configurable products
+
+### High-Performance Data Transfer
+The connector features bulk API capabilities, allowing you to export large batches of products quickly and efficiently. This means less time spent on manual updates and more time growing your business.
+
+### Secure Media Management
+All your product images and videos are automatically synchronized from UnoPim to Bagisto. With built-in AWS S3 support, your media files are securely stored in the cloud and loaded rapidly, ensuring optimal performance for your store.
+
+## Key Features
+
+✓ Export UnoPim categories directly to Bagisto collections
+✓ Seamlessly export UnoPim attributes into Bagisto
+✓ Export UnoPim families into Bagisto
+✓ Export both simple and configurable products
+✓ Utilize bulk API for rapid large-scale product exports
+✓ Synchronize all product images and videos
+✓ Full AWS S3 compatibility for secure media storage and retrieval
+
+## Getting Started
+
+Ready to connect your UnoPim with Bagisto? Check out the [Installation Guide](./installation.md) to get started.
-Placeholder landing page. Real docs are pulled from the project repo at build time.
diff --git a/docs/bagisto/installation.md b/docs/bagisto/installation.md
new file mode 100644
index 0000000..e446e52
--- /dev/null
+++ b/docs/bagisto/installation.md
@@ -0,0 +1,171 @@
+# Installation
+
+Follow the steps below to install the UnoPim Bagisto Connector. Choose the installation method that best fits your setup — we recommend the Composer method for most users.
+
+## Option 1: Installation with Composer (Recommended)
+
+The simplest and most efficient way to install the UnoPim Bagisto Connector is using Composer. This method automatically handles all dependencies and configuration.
+
+### Step 1 — Install via Composer
+
+Run the following command in your UnoPim project root directory:
+
+```bash
+composer require unopim/bagisto-connector
+```
+
+This command downloads and installs the UnoPim Bagisto Connector package along with all required dependencies.
+
+### Step 2 — Run Setup Commands
+
+Execute the following commands in order to complete the installation:
+
+```bash
+php artisan migrate
+php artisan vendor:publish --tag=unopim-bagisto-connector
+php artisan optimize:clear
+```
+
+Here's what each command does:
+
+| Command | What it does |
+|---|---|
+| `php artisan migrate` | Runs database migrations to set up necessary tables |
+| `php artisan vendor:publish --tag=unopim-bagisto-connector` | Publishes configuration files and assets for the connector |
+| `php artisan optimize:clear` | Clears the application cache to reflect new changes |
+
+### Step 3 — Enable Queue Operations
+
+The Bagisto Connector uses queued jobs for background operations like product exports. Start the queue worker by running:
+
+```bash
+php artisan queue:work --queue=default,system,completeness
+```
+
+This command starts the worker and monitors the `default`, `system`, and `completeness` queues for new jobs. Keep this process running in the background.
+
+For production environments, it's recommended to use a process manager like Supervisor to manage the queue worker continuously.
+
+---
+
+## Option 2: Local Package Installation (Development & Forking)
+
+Use this installation method only if you need to load the package from your local `packages/` directory. This is ideal for development work, debugging, or when forking the connector for customization.
+
+### Step 1 — Place the Package Locally
+
+1. Download and extract the Bagisto Connector package
+2. Rename the extracted folder to `Bagisto`
+3. Move the `Bagisto` folder into the `packages/Webkul/` directory of your UnoPim 2.0 project
+
+Your final path should be:
+```
+packages/Webkul/Bagisto/
+```
+
+### Step 2 — Register the Namespace in Composer
+
+Open your project's `composer.json` file and add the package namespace under the `autoload.psr-4` section:
+
+```json
+"autoload": {
+ "psr-4": {
+ "Webkul\\Bagisto\\": "packages/Webkul/Bagisto/src"
+ }
+}
+```
+
+### Step 3 — Register the Service Provider
+
+UnoPim 2.0 uses the Laravel 12+ bootstrap structure for service providers.
+
+Open `bootstrap/providers.php` and add the Bagisto service provider to the returned array:
+
+```php
+ Exports**
+2. Click **Create Export**
+3. Enter a unique **Export Job Code**
+4. Select the desired **Type of Export Job** from the dropdown
+5. Configure the necessary filters and settings for your export type
+6. Click **Save Export** to save the configuration
+7. Run the export job and monitor progress in the **Job Tracker**
+
+Each export type may have different filter options available based on the specific data being exported. Configure these filters according to your requirements before running the export job.
diff --git a/docs/bagisto/product-export.md b/docs/bagisto/product-export.md
new file mode 100644
index 0000000..a205a61
--- /dev/null
+++ b/docs/bagisto/product-export.md
@@ -0,0 +1,70 @@
+# Exporting Data
+
+The UnoPim Bagisto Connector provides comprehensive export functionality, allowing users to seamlessly export mapped data from UnoPim to their Bagisto store through dedicated export jobs.
+
+## Available Export Types
+
+The connector supports the following export job types:
+- **Bagisto Product Export** - Export products with advanced filtering options
+- **Bagisto Attribute Export** - Export attribute configurations
+- **Bagisto Attribute Family Export** - Export attribute family structures
+- **Bagisto Category Export** - Export category hierarchies and meta information
+## Setting Up Export Jobs
+
+To configure an export job:
+
+1. Navigate to **Data Transfer > Exports**
+
+
+
+2. Click on the **Create Export** button
+3. You'll be redirected to the export job creation page
+
+
+
+## Export Job Configuration
+
+### Basic Information
+
+- **Export Job Code** - Enter a unique identifier for your export job
+- **Type of Export Job** - Select the export type from the dropdown menu
+
+### Bagisto Product Export
+
+The Bagisto Product export allows you to export products from UnoPim to your Bagisto store with advanced filtering options.
+
+
+
+#### Available Filters
+
+Configure the following filters to customize your product export:
+
+- **Bagisto Credentials** - Select the Bagisto store credential to export to
+- **Select Mapping Template** - Choose the mapping template for attribute mapping
+- **Channel** - Select the required sales channel
+- **Locale** - Choose the necessary locale/language
+- **Family** - Select the product family or leave blank for all families
+- **Product Type** - Specify the type of products to export
+- **Product Status** - Filter by product status (active, inactive, draft, etc.)
+- **With Media** - Enable or disable media export (images, attachments, etc.)
+- **Filter by SKU** - Search and filter products by specific SKU(s)
+- **Start Page** - Specify the starting page number for pagination
+- **End Page** - Specify the ending page number for pagination
+
+
+
+## Saving and Running the Export Job
+
+1. Click the **Save Export** button to save the export job configuration
+
+
+
+2. Run the export job by clicking the **Run** button
+
+
+
+3. Monitor the export progress in the **Job Tracker**
+
+
+
+The Job Tracker provides real-time visibility into the export process, including progress percentage, status updates, and any errors encountered during execution.
diff --git a/docs/bagisto/rest-api-setup.md b/docs/bagisto/rest-api-setup.md
new file mode 100644
index 0000000..6f65004
--- /dev/null
+++ b/docs/bagisto/rest-api-setup.md
@@ -0,0 +1,180 @@
+# REST API Setup
+
+The Bagisto REST API enables you to programmatically manage your Bagisto store and integrate it seamlessly with external applications. This guide walks you through installation, configuration, and enabling asynchronous bulk operations.
+
+## Requirements
+
+Before installing the Bagisto REST API, ensure your environment meets the following requirements:
+
+- **Bagisto version:** 2.2.x or higher
+- **Composer:** For package management
+- **Database:** MySQL or PostgreSQL
+- **Queue system:** For bulk product operations (database or Redis)
+
+---
+
+## Installation
+
+### Step 1 — Install the REST API Package
+
+Install the Bagisto REST API package using Composer:
+
+```bash
+composer require unopim/bagisto-rest-api
+```
+
+This command downloads and installs the REST API package along with all required dependencies.
+
+### Step 2 — Configure Environment Variables
+
+Open your project's ``.env`` file and add the Sanctum configuration. Replace the domain with your actual Bagisto store domain:
+
+```bash
+SANCTUM_STATEFUL_DOMAINS=http://localhost/public
+```
+
+**Example configurations:**
+
+- **Local development:** `SANCTUM_STATEFUL_DOMAINS=http://localhost/public`
+- **Production:** `SANCTUM_STATEFUL_DOMAINS=https://yourdomain.com`
+- **Multiple domains:** `SANCTUM_STATEFUL_DOMAINS=http://localhost/public,https://yourdomain.com`
+
+### Step 3 — Install and Configure L5-Swagger
+
+Run the installation command to set up L5-Swagger documentation for the REST API:
+
+```bash
+php artisan bagisto-rest-api:install
+```
+
+This command:
+- Publishes configuration files
+- Sets up API documentation
+- Configures necessary routes
+
+### Step 4 — Verify the Installation
+
+Once installation is complete, you can access the API documentation in your browser:
+
+**Admin API Documentation:**
+```
+http://localhost/public/api/admin/documentation
+```
+
+**Shop API Documentation:**
+```
+http://localhost/public/api/shop/documentation
+```
+
+Replace `http://localhost/public` with your actual domain in a production environment.
+
+---
+
+## Enable Bulk Product API with Queues
+
+The Bulk Product API can process large batches of products efficiently using Laravel's queue system. This ensures your application remains responsive while bulk operations run in the background.
+
+### Step 1 — Configure Queue Driver
+
+Open your ``.env`` file and set the queue driver to database:
+
+```bash
+QUEUE_DRIVER=database
+QUEUE_CONNECTION=database
+```
+
+Alternatively, if you prefer using Redis (for better performance in production):
+
+```bash
+QUEUE_DRIVER=redis
+QUEUE_CONNECTION=redis
+REDIS_HOST=127.0.0.1
+REDIS_PASSWORD=null
+REDIS_PORT=6379
+```
+
+### Step 2 — Create Queue Tables (Database Driver Only)
+
+If using the database queue driver, you need to set up the required database tables:
+
+```bash
+php artisan queue:table
+php artisan migrate
+```
+
+These commands create the `jobs` and `failed_jobs` tables used by the queue system.
+
+### Step 3 — Start the Queue Worker
+
+Once configured, start the queue worker to process bulk operations:
+
+```bash
+php artisan queue:work
+```
+
+For production environments, run the worker with specific queues and options:
+
+```bash
+php artisan queue:work --queue=default --tries=3 --timeout=3600
+```
+
+Keep this process running continuously. It's recommended to use a process manager like Supervisor or systemd for production deployments.
+
+### Step 4 — Configure for Production (Optional)
+
+If using Supervisor to manage the queue worker, update your Supervisor configuration and restart it after changes:
+
+```bash
+sudo service supervisor restart
+```
+
+---
+
+## Testing the API
+
+Once installed and configured, you can test the API endpoints:
+
+### Admin API Example
+
+To authenticate and access admin endpoints:
+
+```bash
+curl -X POST http://localhost/public/api/admin/auth/login \
+ -H "Content-Type: application/json" \
+ -d '{"email":"admin@example.com","password":"password"}'
+```
+
+### Shop API Example
+
+To access shop endpoints:
+
+```bash
+curl http://localhost/public/api/shop/products
+```
+
+For detailed API endpoints and request/response formats, refer to the API documentation at the URLs mentioned in Step 4 of the installation section.
+
+---
+
+## Troubleshooting
+
+### Queue Not Processing Jobs
+
+- Ensure the queue worker is running: `php artisan queue:work`
+- Check your ``.env`` file for correct `QUEUE_DRIVER` and `QUEUE_CONNECTION` values
+- For database driver, verify that migrations have been run: `php artisan migrate`
+- Check the `failed_jobs` table for failed jobs: `php artisan queue:failed`
+
+### API Documentation Not Loading
+
+- Verify the L5-Swagger installation ran successfully: `php artisan bagisto-rest-api:install`
+- Clear the Laravel cache: `php artisan cache:clear`
+- Check that your `SANCTUM_STATEFUL_DOMAINS` is correctly configured in `.env`
+
+### Authentication Issues
+
+- Ensure your Sanctum configuration matches your actual domain
+- Clear cookies if switching between domains
+- Verify that the API user account has the appropriate permissions
+
+
diff --git a/docs/bagisto/sidebar.json b/docs/bagisto/sidebar.json
index b497daa..99e2c16 100644
--- a/docs/bagisto/sidebar.json
+++ b/docs/bagisto/sidebar.json
@@ -2,7 +2,34 @@
{
"text": "Bagisto",
"items": [
- { "text": "Overview", "link": "/bagisto/" }
+ { "text": "Overview", "link": "/bagisto/" },
+ {"text" : "Installation", "link": "/bagisto/installation" },
+ {"text" : "REST API Setup", "link": "/bagisto/rest-api-setup" },
+ {"text" : "Credentials Setup", "link": "/bagisto/credentials-setup" }
]
+ },
+
+ {
+ "text" : "Mapping Templates",
+ "items" : [
+ {"text" : "Attribute Mapping Template", "link": "/bagisto/attribute-mapping-template" },
+ {"text" : "Category Mapping Template", "link": "/bagisto/category-mapping-template" }
+ ]
+ },
+
+ {
+ "text" : "Export Jobs",
+ "items" : [
+ {"text" : "Products Export", "link": "/bagisto/product-export" },
+ {"text" : "Other Export", "link": "/bagisto/other-export" }
+ ]
+ },
+
+ {
+ "text" : "Support",
+ "items" : [
+ {"text" : "Contact Support", "link": "/bagisto/contact-support" }
+ ]
+
}
]
diff --git a/docs/bigcommerce/assets/big-comerce.png b/docs/bigcommerce/assets/big-comerce.png
new file mode 100644
index 0000000..a87de6b
Binary files /dev/null and b/docs/bigcommerce/assets/big-comerce.png differ
diff --git a/docs/bigcommerce/assets/cred/add-cred.png b/docs/bigcommerce/assets/cred/add-cred.png
new file mode 100644
index 0000000..8a6a5fa
Binary files /dev/null and b/docs/bigcommerce/assets/cred/add-cred.png differ
diff --git a/docs/bigcommerce/assets/cred/api-cred.png b/docs/bigcommerce/assets/cred/api-cred.png
new file mode 100644
index 0000000..77e3088
Binary files /dev/null and b/docs/bigcommerce/assets/cred/api-cred.png differ
diff --git a/docs/bigcommerce/assets/cred/api-fields.png b/docs/bigcommerce/assets/cred/api-fields.png
new file mode 100644
index 0000000..a066a95
Binary files /dev/null and b/docs/bigcommerce/assets/cred/api-fields.png differ
diff --git a/docs/bigcommerce/assets/cred/api.png b/docs/bigcommerce/assets/cred/api.png
new file mode 100644
index 0000000..ae4f1fd
Binary files /dev/null and b/docs/bigcommerce/assets/cred/api.png differ
diff --git a/docs/bigcommerce/assets/cred/create-api.png b/docs/bigcommerce/assets/cred/create-api.png
new file mode 100644
index 0000000..aebec98
Binary files /dev/null and b/docs/bigcommerce/assets/cred/create-api.png differ
diff --git a/docs/bigcommerce/assets/cred/cred-field.png b/docs/bigcommerce/assets/cred/cred-field.png
new file mode 100644
index 0000000..cbcf4be
Binary files /dev/null and b/docs/bigcommerce/assets/cred/cred-field.png differ
diff --git a/docs/bigcommerce/assets/cred/cred-page.png b/docs/bigcommerce/assets/cred/cred-page.png
new file mode 100644
index 0000000..ee7c00a
Binary files /dev/null and b/docs/bigcommerce/assets/cred/cred-page.png differ
diff --git a/docs/bigcommerce/assets/cred/edit-cred.png b/docs/bigcommerce/assets/cred/edit-cred.png
new file mode 100644
index 0000000..6cf083b
Binary files /dev/null and b/docs/bigcommerce/assets/cred/edit-cred.png differ
diff --git a/docs/bigcommerce/assets/cred/information-setting.png b/docs/bigcommerce/assets/cred/information-setting.png
new file mode 100644
index 0000000..11c4dfb
Binary files /dev/null and b/docs/bigcommerce/assets/cred/information-setting.png differ
diff --git a/docs/bigcommerce/assets/cred/products.png b/docs/bigcommerce/assets/cred/products.png
new file mode 100644
index 0000000..2238c05
Binary files /dev/null and b/docs/bigcommerce/assets/cred/products.png differ
diff --git a/docs/bigcommerce/assets/cred/unopim-cred.png b/docs/bigcommerce/assets/cred/unopim-cred.png
new file mode 100644
index 0000000..34fb3f8
Binary files /dev/null and b/docs/bigcommerce/assets/cred/unopim-cred.png differ
diff --git a/docs/bigcommerce/assets/export/category-export-now.png b/docs/bigcommerce/assets/export/category-export-now.png
new file mode 100644
index 0000000..2b0c9ef
Binary files /dev/null and b/docs/bigcommerce/assets/export/category-export-now.png differ
diff --git a/docs/bigcommerce/assets/export/category-export-progress.png b/docs/bigcommerce/assets/export/category-export-progress.png
new file mode 100644
index 0000000..e9d540e
Binary files /dev/null and b/docs/bigcommerce/assets/export/category-export-progress.png differ
diff --git a/docs/bigcommerce/assets/export/category-export.png b/docs/bigcommerce/assets/export/category-export.png
new file mode 100644
index 0000000..036bda1
Binary files /dev/null and b/docs/bigcommerce/assets/export/category-export.png differ
diff --git a/docs/bigcommerce/assets/export/category-filter.png b/docs/bigcommerce/assets/export/category-filter.png
new file mode 100644
index 0000000..8eff9f4
Binary files /dev/null and b/docs/bigcommerce/assets/export/category-filter.png differ
diff --git a/docs/bigcommerce/assets/export/conf-file.png b/docs/bigcommerce/assets/export/conf-file.png
new file mode 100644
index 0000000..ab4f925
Binary files /dev/null and b/docs/bigcommerce/assets/export/conf-file.png differ
diff --git a/docs/bigcommerce/assets/export/conf-filter.png b/docs/bigcommerce/assets/export/conf-filter.png
new file mode 100644
index 0000000..f28383b
Binary files /dev/null and b/docs/bigcommerce/assets/export/conf-filter.png differ
diff --git a/docs/bigcommerce/assets/export/conf-product-export-now.png b/docs/bigcommerce/assets/export/conf-product-export-now.png
new file mode 100644
index 0000000..cd9bf3d
Binary files /dev/null and b/docs/bigcommerce/assets/export/conf-product-export-now.png differ
diff --git a/docs/bigcommerce/assets/export/conf-progress.png b/docs/bigcommerce/assets/export/conf-progress.png
new file mode 100644
index 0000000..2afda39
Binary files /dev/null and b/docs/bigcommerce/assets/export/conf-progress.png differ
diff --git a/docs/bigcommerce/assets/export/create_export.png b/docs/bigcommerce/assets/export/create_export.png
new file mode 100644
index 0000000..3daf317
Binary files /dev/null and b/docs/bigcommerce/assets/export/create_export.png differ
diff --git a/docs/bigcommerce/assets/export/data-transfer.png b/docs/bigcommerce/assets/export/data-transfer.png
new file mode 100644
index 0000000..5e63c46
Binary files /dev/null and b/docs/bigcommerce/assets/export/data-transfer.png differ
diff --git a/docs/bigcommerce/assets/export/product-export-now.png b/docs/bigcommerce/assets/export/product-export-now.png
new file mode 100644
index 0000000..f352cf6
Binary files /dev/null and b/docs/bigcommerce/assets/export/product-export-now.png differ
diff --git a/docs/bigcommerce/assets/export/product-fileter.png b/docs/bigcommerce/assets/export/product-fileter.png
new file mode 100644
index 0000000..e051b42
Binary files /dev/null and b/docs/bigcommerce/assets/export/product-fileter.png differ
diff --git a/docs/bigcommerce/assets/export/product-progress.png b/docs/bigcommerce/assets/export/product-progress.png
new file mode 100644
index 0000000..1a284e6
Binary files /dev/null and b/docs/bigcommerce/assets/export/product-progress.png differ
diff --git a/docs/bigcommerce/assets/export/simple-product-export.png b/docs/bigcommerce/assets/export/simple-product-export.png
new file mode 100644
index 0000000..f5624b5
Binary files /dev/null and b/docs/bigcommerce/assets/export/simple-product-export.png differ
diff --git a/docs/bigcommerce/assets/import/category-import-filter.png b/docs/bigcommerce/assets/import/category-import-filter.png
new file mode 100644
index 0000000..8457bf3
Binary files /dev/null and b/docs/bigcommerce/assets/import/category-import-filter.png differ
diff --git a/docs/bigcommerce/assets/import/category-import-now.png b/docs/bigcommerce/assets/import/category-import-now.png
new file mode 100644
index 0000000..60b7844
Binary files /dev/null and b/docs/bigcommerce/assets/import/category-import-now.png differ
diff --git a/docs/bigcommerce/assets/import/category-import.png b/docs/bigcommerce/assets/import/category-import.png
new file mode 100644
index 0000000..2492b54
Binary files /dev/null and b/docs/bigcommerce/assets/import/category-import.png differ
diff --git a/docs/bigcommerce/assets/import/category-progress.png b/docs/bigcommerce/assets/import/category-progress.png
new file mode 100644
index 0000000..44d7b45
Binary files /dev/null and b/docs/bigcommerce/assets/import/category-progress.png differ
diff --git a/docs/bigcommerce/assets/import/create-import.png b/docs/bigcommerce/assets/import/create-import.png
new file mode 100644
index 0000000..54bc8f1
Binary files /dev/null and b/docs/bigcommerce/assets/import/create-import.png differ
diff --git a/docs/bigcommerce/assets/import/data-transfer.png b/docs/bigcommerce/assets/import/data-transfer.png
new file mode 100644
index 0000000..3802c54
Binary files /dev/null and b/docs/bigcommerce/assets/import/data-transfer.png differ
diff --git a/docs/bigcommerce/assets/import/product-import-now.png b/docs/bigcommerce/assets/import/product-import-now.png
new file mode 100644
index 0000000..1e8fb43
Binary files /dev/null and b/docs/bigcommerce/assets/import/product-import-now.png differ
diff --git a/docs/bigcommerce/assets/import/product-import-progress.png b/docs/bigcommerce/assets/import/product-import-progress.png
new file mode 100644
index 0000000..5f6cbfd
Binary files /dev/null and b/docs/bigcommerce/assets/import/product-import-progress.png differ
diff --git a/docs/bigcommerce/assets/import/product-import.png b/docs/bigcommerce/assets/import/product-import.png
new file mode 100644
index 0000000..b6f0b78
Binary files /dev/null and b/docs/bigcommerce/assets/import/product-import.png differ
diff --git a/docs/bigcommerce/assets/import/product-imprt-filter.png b/docs/bigcommerce/assets/import/product-imprt-filter.png
new file mode 100644
index 0000000..a3d70ec
Binary files /dev/null and b/docs/bigcommerce/assets/import/product-imprt-filter.png differ
diff --git a/docs/bigcommerce/assets/mapping/add.png b/docs/bigcommerce/assets/mapping/add.png
new file mode 100644
index 0000000..08e0c37
Binary files /dev/null and b/docs/bigcommerce/assets/mapping/add.png differ
diff --git a/docs/bigcommerce/assets/mapping/attribute-mapping-fields.png b/docs/bigcommerce/assets/mapping/attribute-mapping-fields.png
new file mode 100644
index 0000000..f3f9fcf
Binary files /dev/null and b/docs/bigcommerce/assets/mapping/attribute-mapping-fields.png differ
diff --git a/docs/bigcommerce/assets/mapping/attribute-mapping.png b/docs/bigcommerce/assets/mapping/attribute-mapping.png
new file mode 100644
index 0000000..43b153b
Binary files /dev/null and b/docs/bigcommerce/assets/mapping/attribute-mapping.png differ
diff --git a/docs/bigcommerce/assets/mapping/custom-field.png b/docs/bigcommerce/assets/mapping/custom-field.png
new file mode 100644
index 0000000..278c0f8
Binary files /dev/null and b/docs/bigcommerce/assets/mapping/custom-field.png differ
diff --git a/docs/bigcommerce/assets/mapping/custom.png b/docs/bigcommerce/assets/mapping/custom.png
new file mode 100644
index 0000000..bd95a8e
Binary files /dev/null and b/docs/bigcommerce/assets/mapping/custom.png differ
diff --git a/docs/bigcommerce/assets/mapping/history.png b/docs/bigcommerce/assets/mapping/history.png
new file mode 100644
index 0000000..36a073c
Binary files /dev/null and b/docs/bigcommerce/assets/mapping/history.png differ
diff --git a/docs/bigcommerce/assets/mapping/other-mapping.png b/docs/bigcommerce/assets/mapping/other-mapping.png
new file mode 100644
index 0000000..4d78f51
Binary files /dev/null and b/docs/bigcommerce/assets/mapping/other-mapping.png differ
diff --git a/docs/bigcommerce/contact-support.md b/docs/bigcommerce/contact-support.md
new file mode 100644
index 0000000..29ac423
--- /dev/null
+++ b/docs/bigcommerce/contact-support.md
@@ -0,0 +1,21 @@
+# Contact & Support
+
+That wraps up the user guide for the **UnoPim BigCommerce Connector** extension. We hope this documentation helps you set up and use the connector in UnoPim with confidence.
+
+If you have any questions, run into issues, or need help with the extension, the Webkul support team is available to assist.
+
+## Get in Touch
+
+**Email**
+Reach out to us at [support@webkul.com](mailto:support@webkul.com) and our team will get back to you as soon as possible.
+
+**HelpDesk**
+You can also raise a ticket through the [Webkul HelpDesk System](https://webkul.uvdesk.com/en/).
+
+This is useful if you want to:
+
+- report an issue,
+- ask a setup or migration question,
+- track the status of your support request.
+
+We are happy to help whenever needed.
diff --git a/docs/bigcommerce/credentials.md b/docs/bigcommerce/credentials.md
new file mode 100644
index 0000000..907ed88
--- /dev/null
+++ b/docs/bigcommerce/credentials.md
@@ -0,0 +1,111 @@
+# Add BigCommerce credentials
+
+This is where you store the API connection for your BigCommerce store. Add at least one credential before you can import or export anything.
+
+**Open it from:** *BigCommerce → Credentials*
+
+
+
+## The credentials page
+
+Each row in the list shows one credential:
+
+- **Label** — the name you gave it.
+- **API URL** — the BigCommerce API endpoint.
+- **Status** — whether the credential is active.
+
+
+
+You can search by label, sort columns, or click **Filter** to narrow the list. The pencil icon edits a row, the trash icon deletes it.
+
+---
+
+## Generate the API account in BigCommerce
+
+Before adding a credential in UnoPim, create an **API account** in BigCommerce:
+
+1. Log into your BigCommerce admin.
+2. Go to **Settings → API → Store-level API accounts**.
+
+
+
+3. Click **Create API account**.
+
+
+
+4. Pick the **Store API V2/V3 token** type.
+
+
+
+5. Give it a name (e.g. *UnoPim Connector*) and set scopes:
+ - **Products** — Modify (for export) or Read-only (import only).
+ - **Information & Settings** — Read-only / Modify.
+
+ 
+
+ 
+
+
+6. Save the account. BigCommerce shows the **Client ID**, **Client Secret**, **Access Token**, and **API path** **once** — copy them now.
+
+
+
+You'll paste these into UnoPim next.
+
+---
+
+## Add a credential
+
+In UnoPim, click **+ Create Credential** in the top-right corner.
+
+
+
+Fill in:
+
+| Field | What goes here |
+|--|--|
+| **Label** | Any name you want, e.g. *Production Store*. Used to identify this credential everywhere. |
+| **API URL** | The BigCommerce API path, e.g. `https://api.bigcommerce.com/stores//`. Copy this from the BigCommerce API account screen. |
+| **Client ID** | Client ID from the API account. |
+| **Client Secret** | Client Secret from the API account. |
+| **Access Token** | Access Token from the API account. |
+| **Status** | Active / Inactive. Inactive credentials are hidden from the import / export filter dropdowns. |
+
+
+
+Click **Save Credential**.
+
+> The connector verifies the credentials against BigCommerce before saving. If anything is wrong you see a clear error and nothing is stored.
+
+After saving, you land on the edit page where you can adjust the credential settings, locale mapping, and currency mapping.
+
+---
+
+## Edit a credential
+
+Click the pencil icon on any row.
+
+
+
+You can:
+
+- Change any of the values you set when creating.
+- Leave **Access Token** and **Client Secret** blank (or as `**********`) to keep the current values — type a new value to replace.
+- Set the **Default Currency** and **Default Locale** that BigCommerce expects when a product doesn't carry a locale-specific value.
+- Configure the **Locale Mapping** — match each UnoPim locale to a BigCommerce locale.
+- Configure the **Currency Mapping** — match each UnoPim currency to a BigCommerce currency.
+
+
+
+Click **Update** when done.
+
+---
+
+## Delete a credential
+
+Click the trash icon on a row and confirm.
+
+> [!CAUTION]
+> Deleting a credential does **not** delete the products / categories already pushed to BigCommerce. It only stops future imports / exports from running through it.
+
+
diff --git a/docs/bigcommerce/custom-mapping.md b/docs/bigcommerce/custom-mapping.md
new file mode 100644
index 0000000..a71c238
--- /dev/null
+++ b/docs/bigcommerce/custom-mapping.md
@@ -0,0 +1,64 @@
+# Custom mapping
+
+BigCommerce **custom fields** are key/value pairs you can attach to any product to store extra information (warranty period, technical specs, fit guides — anything that doesn't fit a standard field). The **Custom Mapping** page tells the connector which UnoPim attributes get pushed as BigCommerce custom fields.
+
+**Open it from:** *BigCommerce → Attribute Mappings → Custom Mappings*
+
+
+
+
+
+## What you'll see
+
+The page lists every UnoPim attribute you've chosen to map and the BigCommerce custom-field **name** they'll be sent as.
+
+Each row has two columns:
+
+| Column | What it means |
+|--|--|
+| **UnoPim Attribute** | Pick the attribute whose value will become a custom field on the BigCommerce product. |
+| **Custom Field Name** | The name the field will appear under on the BigCommerce product. Defaults to the attribute code — change it to whatever label you want shown in BigCommerce. |
+
+Mappings are saved **per credential** — different stores can have different sets of custom fields.
+
+---
+
+## Add a custom field
+
+1. Click **+ Add Custom Mapping**.
+2. **UnoPim Attribute** — pick the source attribute.
+3. **Custom Field Name** — type the label the field should have in BigCommerce.
+4. Click **Save**.
+
+
+
+The custom field appears on every exported product that has a value for the source attribute. Products with an empty value for that attribute don't get the custom field at all.
+
+---
+
+## Remove a custom field
+
+Click the trash icon next to a row.
+
+> Removing a custom mapping does **not** delete custom fields already on BigCommerce products. Those need to be cleaned up in BigCommerce directly or via the BigCommerce API.
+
+---
+
+## When to use a custom field vs. a standard field
+
+| Use a **standard field** when… | Use a **custom field** when… |
+|--|--|
+| BigCommerce has a built-in slot for it (name, sku, weight, etc.) | The information doesn't fit any standard slot. |
+| You want the value to drive storefront features (search, filters, comparison). | You just want the data visible on the product page or in the API. |
+| The value is **per product**, not per locale. | The data is informational rather than functional. |
+
+> [!TIP]
+> Don't use custom fields to duplicate something that already has a built-in slot. Standard product fields are indexed and searchable; custom fields aren't. If there's a real built-in equivalent, map it on [Attribute mapping](./standard-mapping) instead.
+
+---
+
+## Limits
+
+- BigCommerce allows up to **200 custom fields per product** on most plans.
+- Each custom field has a **name limit of 250 characters** and a **value limit of 65,535 characters**.
+- The export trims values to BigCommerce's limits — you'll see a warning entry in the tracker for any row that got trimmed.
diff --git a/docs/bigcommerce/export-categories.md b/docs/bigcommerce/export-categories.md
new file mode 100644
index 0000000..02c7032
--- /dev/null
+++ b/docs/bigcommerce/export-categories.md
@@ -0,0 +1,45 @@
+# Export categories
+
+Push your UnoPim category tree to BigCommerce, keeping the parent / child hierarchy intact.
+
+> **Before you start.** Add a [BigCommerce credential](./credentials) and review [Other mapping](./other-mapping) if your category-related export settings need adjustment.
+
+**Open it from:** *Data Transfer → Export*
+
+
+
+
+## Steps
+
+### 1. Create the profile
+
+1. Open **Data Transfer → Export → + Create Export**.
+
+
+
+2. **Type** — pick **Export Categories to BigCommerce** , **Code** — any short identifier, e.g. `bigcommerce_categories`.
+
+
+
+
+3. **Fill the filter**
+
+| Filter | Required | What it does |
+|--|--|--|
+| **Credential** | ✓ | Pick the BigCommerce credential to export to. Only **active** credentials appear in the dropdown. |
+
+
+
+There are no other filters — the job pushes every UnoPim category visible to the user.
+
+Click **Save**.
+
+ 4. **Run it**
+
+Open the profile and click **Start Export**.
+
+
+
+The job is queued. Watch progress in the Data Transfer Tracker.
+
+
diff --git a/docs/bigcommerce/export-product-models.md b/docs/bigcommerce/export-product-models.md
new file mode 100644
index 0000000..f40ad73
--- /dev/null
+++ b/docs/bigcommerce/export-product-models.md
@@ -0,0 +1,46 @@
+# Export configurable products
+
+Push **configurable products** (one parent + multiple variants) from UnoPim to BigCommerce. The connector creates a BigCommerce **variable product** with one option per variation axis (e.g. *size* + *color*) and one SKU per variant combination.
+
+For non-configurable products, use [Export products](./export-products) instead.
+
+> **Before you start.** Add a [BigCommerce credential](./credentials), configure [Attribute mapping](./standard-mapping), and review [Other mapping](./other-mapping) before exporting configurable products.
+
+**Open it from:** *Data Transfer → Export*
+
+
+
+## Steps
+
+### 1. Create the profile
+
+1. Open **Data Transfer → Export → + Create Export**.
+
+
+
+2. **Type** — pick **Export Configurable Product to BigCommerce**, **Code** — any short identifier, e.g. `bigcommerce_configurable_products`.
+
+
+
+
+3. **Fill the filter**
+
+| Filter | Required | What it does |
+|--|--|--|
+| **Credential** | ✓ | Pick the BigCommerce credential. Only **active** credentials appear. |
+
+
+
+There are no other filters — the job pushes every eligible configurable product visible to the user.
+
+Click **Save**.
+
+4. **Run it**
+
+Open the profile and click **Export Now**.
+
+
+
+The job is queued. Watch progress in the Data Transfer Tracker.
+
+
diff --git a/docs/bigcommerce/export-products.md b/docs/bigcommerce/export-products.md
new file mode 100644
index 0000000..ce75046
--- /dev/null
+++ b/docs/bigcommerce/export-products.md
@@ -0,0 +1,45 @@
+# Export products
+
+Push **simple products** from UnoPim to BigCommerce — with attribute values, prices, stock, statuses, custom fields, and images.
+
+For configurable products with variants, use [Export configurable products](./export-product-models).
+
+> **Before you start.** Add a [BigCommerce credential](./credentials), configure [Attribute mapping](./standard-mapping), and run [Export categories](./export-categories) so the categories the products reference already exist in BigCommerce.
+
+**Open it from:** *Data Transfer → Export*
+
+
+
+## Steps
+
+### 1. Create the profile
+
+1. Open **Data Transfer → Export → + Create Export**.
+
+
+
+2. **Type** — pick **Export Products to BigCommerce**, **Code** — any short identifier, e.g. `bigcommerce_products`.
+
+
+
+3. **Fill the filter**
+
+| Filter | Required | What it does |
+|--|--|--|
+| **Credential** | ✓ | Which BigCommerce store to push to. Only **active** credentials appear. |
+
+
+
+There are no other filters — the job pushes every eligible simple product visible to the user.
+
+Click **Save**.
+
+4. **Run it**
+
+Open the profile and click **Export Now**.
+
+
+
+The job is queued. Watch progress in the Data Transfer Tracker.
+
+
diff --git a/docs/bigcommerce/import-categories.md b/docs/bigcommerce/import-categories.md
new file mode 100644
index 0000000..138b27c
--- /dev/null
+++ b/docs/bigcommerce/import-categories.md
@@ -0,0 +1,43 @@
+# Import categories
+
+Pull your BigCommerce category tree into UnoPim, keeping the parent / child hierarchy intact.
+
+> **Before you start.** Add a [BigCommerce credential](./credentials).
+
+**Open it from:** *Data Transfer → Import*
+
+
+
+## Steps
+
+### 1. Create the profile
+
+1. Open **Data Transfer → Import → + Create Import**.
+
+
+
+2. **Type** — pick **Import Categories from BigCommerce**, **Code** — any short identifier, e.g. `bigcommerce_categories_import`.
+
+
+
+3. **Fill the filter**
+
+| Filter | Required | What it does |
+|--|--|--|
+| **Credential** | ✓ | Which BigCommerce store to pull from. Only **active** credentials appear. |
+
+
+
+There are no other filters — the job pulls every available category from the selected BigCommerce store.
+
+Click **Save**.
+
+4. **Run it**
+
+Open the profile and click **Start Import**.
+
+
+
+The job is queued. Watch progress in the Data Transfer Tracker.
+
+
diff --git a/docs/bigcommerce/import-products.md b/docs/bigcommerce/import-products.md
new file mode 100644
index 0000000..50ff67d
--- /dev/null
+++ b/docs/bigcommerce/import-products.md
@@ -0,0 +1,44 @@
+# Import products
+
+Pull BigCommerce products into UnoPim — both **simple products** and **configurable products** (variable products in BigCommerce terminology) come in through the same job.
+
+> **Before you start.** Add a [BigCommerce credential](./credentials) and run [Import categories](./import-categories) so the products land with all of their category links intact.
+
+**Open it from:** *Data Transfer → Import*
+
+
+
+## Steps
+
+### 1. Create the profile
+
+1. Open **Data Transfer → Import → + Create Import**.
+
+
+
+2. **Type** — pick **Import Products from BigCommerce**, **Code** — any short identifier, e.g. `bigcommerce_products_import`.
+
+
+
+3. **Fill the filter**
+
+| Filter | Required | What it does |
+|--|--|--|
+| **Credential** | ✓ | Which BigCommerce store to pull from. Only **active** credentials appear. |
+
+
+
+There are no other filters — the job pulls every available product from the selected BigCommerce store.
+
+Click **Save**.
+
+4. **Run it**
+
+Open the profile and click **Start Import**.
+
+
+
+The job is queued. Watch progress in the Data Transfer Tracker.
+
+
+
diff --git a/docs/bigcommerce/index.md b/docs/bigcommerce/index.md
index 14ffcc5..5909158 100644
--- a/docs/bigcommerce/index.md
+++ b/docs/bigcommerce/index.md
@@ -1,3 +1,26 @@
-# BigCommerce Extension
+# BigCommerce Connector
-Placeholder landing page. Real docs are pulled from [`unopim/unopim-bigcommerce`](https://github.com/unopim/unopim-bigcommerce) at build time.
+Sync your **BigCommerce** storefront with UnoPim. Push enriched products and categories out, or pull existing catalog data in to enrich it in UnoPim.
+
+## What you can do
+
+- **Manage multiple stores** — store any number of BigCommerce credentials and switch between them per export / import.
+- **Export to BigCommerce** — push UnoPim **categories**, **simple products**, and **configurable products** (with variants) into your store.
+- **Import from BigCommerce** — pull existing **categories**, **simple products**, and **configurable products** into UnoPim.
+- **Three mapping modes**:
+ - **Attribute mapping** — wire UnoPim attributes to BigCommerce product fields.
+ - **Custom mapping** — map UnoPim attributes to BigCommerce **custom fields**.
+ - **Other mapping** — variant axes, category mappings, and modifier configuration.
+- **Per-credential locale + currency mapping** — drive multi-storefront catalogs from a single UnoPim instance.
+- **Mapping history** — every change to a mapping is logged.
+- **Job tracker** — every export / import shows up live in the Data Transfer Tracker.
+
+## Before you start
+
+You need:
+
+1. A working **UnoPim 2.0+** installation.
+2. A **BigCommerce** store on the **v3 Storefront / Catalog API** with API access.
+3. A BigCommerce **API account** — go to *Settings → API → API accounts → Create API account* in your BigCommerce admin and create one with at least *Products* and *Information & Settings* scopes. You'll need the **API URL**, **Client ID**, **Client Secret**, and **Access Token**.
+4. The **BigCommerce Connector** extension installed — see [Installation](./installation).
+5. A running **queue worker** — every export and import is a background job.
diff --git a/docs/bigcommerce/installation.md b/docs/bigcommerce/installation.md
new file mode 100644
index 0000000..1328ce0
--- /dev/null
+++ b/docs/bigcommerce/installation.md
@@ -0,0 +1,92 @@
+# Installation
+
+This page is for installing the extension. Once it's installed, see [Add BigCommerce credentials](./credentials) to start using it.
+
+## You need
+
+- **UnoPim 2.0+**.
+- **PHP 8.3+**.
+- A BigCommerce **API account** with *Products* and *Information & Settings* scopes (read or read/write depending on whether you're importing only or also exporting).
+
+## Steps
+
+### 1. Drop the package in place
+
+Unzip the extension and move the package folder into your UnoPim project:
+
+```
+packages/Webkul/BigCommerce/
+```
+
+### 2. Add it to composer.json
+
+In your project's root `composer.json`:
+
+```json
+"autoload": {
+ "psr-4": {
+ "Webkul\\BigCommerce\\": "packages/Webkul/BigCommerce/src/"
+ }
+}
+```
+
+### 3. Register the provider
+
+In `bootstrap/providers.php`:
+
+```php
+use Webkul\BigCommerce\Providers\BigCommerceServiceProvider;
+
+return [
+ // ...
+ BigCommerceServiceProvider::class,
+];
+```
+
+> [!TIP]
+> **For UnoPim < 2.0**, add the provider to the `providers` array in `config/app.php` instead.
+
+### 4. Run the install command
+
+```bash
+composer dump-autoload
+php artisan bigcommerce:install
+php artisan optimize:clear
+php artisan queue:restart
+```
+
+This publishes assets, runs the three migrations (`credentials`, `configurations`, `data_mapping`), and clears caches.
+
+### 5. Keep a queue worker running
+
+```bash
+php artisan queue:work
+```
+
+In production use Supervisor / systemd / Horizon. Every export and import is a background job — without a worker, nothing actually moves.
+
+### 6. Give your role permission
+
+Open **Settings → Roles**, edit the role, and tick the BigCommerce permissions you want them to have:
+
+- **Credentials** — create, edit, delete BigCommerce credentials.
+- **Attribute Mapping** — open and update the product attribute mapping.
+- **Custom Mapping** — open and update the BigCommerce custom-fields mapping.
+- **Other Mapping** — variant axes and category mappings.
+- **Mapping History** — view the change history.
+
+
+
+Without these the menu and buttons stay hidden.
+
+## Check it worked
+
+1. **Menu shows up.** Open the admin panel — a **BigCommerce** menu appears in the sidebar with **Credentials** and **Export Mappings** under it.
+
+
+
+2. **Add a credential works.** Open **BigCommerce → Credentials → Create Credential**, fill the form, and save. If the API URL or access token is wrong, you see a clear error.
+3. **Export profile shows up.** Open **Data Transfer → Export → Create Export Profile** — *Export Categories to BigCommerce*, *Export Products to BigCommerce*, and *Export Configurable Product to BigCommerce* appear in the type dropdown.
+4. **Import profile shows up.** Open **Data Transfer → Import → Create Import Profile** — *Import Categories from BigCommerce* and *Import Products from BigCommerce* appear in the type dropdown.
+
+If any of these don't work, check your credential, queue worker, and BigCommerce configuration again.
diff --git a/docs/bigcommerce/mapping-history.md b/docs/bigcommerce/mapping-history.md
new file mode 100644
index 0000000..ed47a2d
--- /dev/null
+++ b/docs/bigcommerce/mapping-history.md
@@ -0,0 +1,58 @@
+# Mapping history
+
+Every change made to [attribute](./standard-mapping), [custom](./custom-mapping), or [other](./other-mapping) mapping is recorded automatically. Use the history page to see *who changed what, when*, and which mapping the change applied to.
+
+**Open it from:** *BigCommerce → Attribute Mappings → History*
+
+
+
+## What the grid shows
+
+Each row in the list is one change to a mapping:
+
+| Column | What it means |
+|--|--|
+| **Credential** | The BigCommerce credential whose mappings were changed. |
+| **Mapping Type** | `standard`, `custom`, or `other`. |
+| **Changed By** | The admin user that made the change. |
+| **Action** | `created`, `updated`, or `deleted`. |
+| **Changed At** | Timestamp of the change. |
+
+
+
+Click into a row to see the full **before / after** state of the mapping — which attributes were added, removed, or repointed.
+
+You can search, filter by credential or by mapping type, and sort columns. The eye icon opens the detail view.
+
+---
+
+## What's recorded
+
+For each change the history captures:
+
+- The complete **before** snapshot of the mapping.
+- The complete **after** snapshot.
+- Which **specific fields** changed (added, removed, or repointed to a different attribute).
+
+That way you can answer questions like *"who repointed the `weight` field last Tuesday?"* without reading the audit log.
+
+---
+
+## What's not recorded
+
+- Changes to a **credential's connection settings** (label, API URL, tokens, status). Those are tracked separately on the credential edit page's history tab.
+- Changes to **products / categories** themselves — the connector doesn't audit your catalog, only the mappings.
+- Job runs (imports / exports). Those live in the **Data Transfer Tracker**.
+
+---
+
+## Use history to debug an export
+
+If yesterday's export sent products with the wrong values, the history is the first place to look:
+
+1. Open *BigCommerce → Attribute Mappings → History*.
+2. Filter by **Credential** to the one that ran the export.
+3. Sort by **Changed At** descending — look for changes around the time before yesterday's run.
+4. Open the detail view of any suspicious change and confirm which field moved.
+
+This narrows down whether the problem is a mapping issue (recent change → fix here) or a catalog issue (no mapping changes → check the source data).
diff --git a/docs/bigcommerce/other-mapping.md b/docs/bigcommerce/other-mapping.md
new file mode 100644
index 0000000..7b5925f
--- /dev/null
+++ b/docs/bigcommerce/other-mapping.md
@@ -0,0 +1,33 @@
+# Other mapping
+
+You can use the **Other Mapping** section to configure additional BigCommerce product fields that are not covered under Attribute Mapping.
+
+**Open it from:** *BigCommerce → Attribute Mappings → Other Mapping*
+
+## Other mapping fields
+
+You can configure the following fields under Other Mapping:
+
+- `Attributes to be used as Image`
+- `Attribute to be used as Cover Image`
+- `Image Description`
+- `Is Featured`
+- `Is Free Shipping`
+- `Brand Id`
+
+
+
+## What this section does
+
+These mappings help the connector send extra product details from UnoPim to BigCommerce during product export.
+
+- `Attributes to be used as Image` lets you choose the attribute whose value should be used as the product image.
+- `Attribute to be used as Cover Image` lets you choose the attribute used as the main or cover image.
+- `Image Description` maps the attribute used for image description text.
+- `Is Featured` maps the value used to mark the product as featured in BigCommerce.
+- `Is Free Shipping` maps the value used to control free shipping for the product.
+- `Brand Id` maps the attribute used to assign the product to a BigCommerce brand.
+
+## Save the mapping
+
+After configuring the fields, click **Save**. The updated mapping is used in the next product export run.
diff --git a/docs/bigcommerce/sidebar.json b/docs/bigcommerce/sidebar.json
index a8ca462..06d5abb 100644
--- a/docs/bigcommerce/sidebar.json
+++ b/docs/bigcommerce/sidebar.json
@@ -1,8 +1,41 @@
[
{
- "text": "BigCommerce",
+ "text": "Setup",
"items": [
- { "text": "Overview", "link": "/bigcommerce/" }
+ { "text": "Overview", "link": "/bigcommerce/" },
+ { "text": "Installation", "link": "/bigcommerce/installation" },
+ { "text": "Add BigCommerce credentials","link": "/bigcommerce/credentials" }
+ ]
+ },
+ {
+ "text": "Mappings",
+ "items": [
+ { "text": "Attribute mapping", "link": "/bigcommerce/standard-mapping" },
+ { "text": "Custom mapping", "link": "/bigcommerce/custom-mapping" },
+ { "text": "Other mapping", "link": "/bigcommerce/other-mapping" },
+ { "text": "Mapping history", "link": "/bigcommerce/mapping-history" }
+ ]
+ },
+ {
+ "text": "Export to BigCommerce",
+ "items": [
+ { "text": "Export categories", "link": "/bigcommerce/export-categories" },
+ { "text": "Export products", "link": "/bigcommerce/export-products" },
+ { "text": "Export configurable products","link": "/bigcommerce/export-product-models" }
+ ]
+ },
+ {
+ "text": "Import from BigCommerce",
+ "items": [
+ { "text": "Import categories", "link": "/bigcommerce/import-categories" },
+ { "text": "Import products", "link": "/bigcommerce/import-products" }
+ ]
+ },
+
+ {
+ "text": "Support",
+ "items": [
+ { "text": "Contact Support", "link": "/bigcommerce/contact-support" }
]
}
]
diff --git a/docs/bigcommerce/standard-mapping.md b/docs/bigcommerce/standard-mapping.md
new file mode 100644
index 0000000..a9aeecb
--- /dev/null
+++ b/docs/bigcommerce/standard-mapping.md
@@ -0,0 +1,87 @@
+# Attribute mapping
+
+You need to map UnoPim attributes with BigCommerce product fields before exporting products to your BigCommerce store.
+
+While exporting products from UnoPim to BigCommerce, the connector sends product information based on the attribute mapping you configure for that credential.
+
+**Open it from:** *BigCommerce → Attribute Mapping*
+
+
+
+## Attribute mapping fields
+
+You can map the following BigCommerce product fields with UnoPim attributes:
+
+- `SKU`
+- `Name`
+- `Description`
+- `Weight`
+- `Price`
+- `Cost Price`
+- `Model Price`
+- `Product Type`
+- `Meta Title`
+- `Meta Keywords`
+- `Meta Description`
+
+
+
+## Other mapping fields
+
+You can also configure the following fields under Other Mapping:
+
+- `Attributes to be used as Image`
+- `Attribute to be used as Cover Image`
+- `Image Description`
+- `Is Featured`
+- `Is Free Shipping`
+- `Brand Id`
+
+## What you'll see
+
+The page lists BigCommerce product fields with three columns:
+
+| Column | What it means |
+|--|--|
+| **BigCommerce Field** | The built-in BigCommerce field you're mapping into. Hover the info icon for what the field accepts. |
+| **UnoPim Attribute** | Pick the UnoPim attribute whose value populates this field. |
+| **Supported Types** | The UnoPim attribute types the field accepts (e.g. *Text* only, or *Text / Textarea*). The dropdown filters to those types. |
+
+The page is **per credential** — pick the credential first, then the mapping shown belongs to that store. Different stores can have different mappings.
+
+
+## Required mappings
+
+At minimum, map these to run a product export:
+
+| BigCommerce Field | Typical UnoPim attribute |
+|--|--|
+| **Name** | `name` |
+| **SKU** | `sku` |
+| **Price** | `price` |
+| **Weight** | `weight` (or fixed value `0`) |
+| **Type** | `physical` or `digital` — usually a fixed value attribute. |
+
+The rest are optional. BigCommerce uses default values for any unmapped optional field.
+
+
+
+
+
+## Add an additional attribute
+
+Some BigCommerce stores need a few extra product fields that are not shown by default. Use **+ Add Additional Attribute** at the bottom of the page to expose them:
+
+1. Click **+ Add Additional Attribute**.
+2. Pick the BigCommerce field from the dropdown.
+3. Pick the matching UnoPim attribute.
+
+
+
+Click the trash icon next to a row to remove an additional attribute.
+
+
+## Save the mapping
+
+Click **Save** at the top. You'll see a success message.
+
diff --git a/docs/cs-cart/assets/attribute-mapping/attribute-mapping-fields.png b/docs/cs-cart/assets/attribute-mapping/attribute-mapping-fields.png
new file mode 100644
index 0000000..3b63868
Binary files /dev/null and b/docs/cs-cart/assets/attribute-mapping/attribute-mapping-fields.png differ
diff --git a/docs/cs-cart/assets/attribute-mapping/attribute-mappings.png b/docs/cs-cart/assets/attribute-mapping/attribute-mappings.png
new file mode 100644
index 0000000..83c095c
Binary files /dev/null and b/docs/cs-cart/assets/attribute-mapping/attribute-mappings.png differ
diff --git a/docs/cs-cart/assets/attribute-mapping/other-mapping.png b/docs/cs-cart/assets/attribute-mapping/other-mapping.png
new file mode 100644
index 0000000..50a82ef
Binary files /dev/null and b/docs/cs-cart/assets/attribute-mapping/other-mapping.png differ
diff --git a/docs/cs-cart/assets/attribute-mapping/quick-export-settings.png b/docs/cs-cart/assets/attribute-mapping/quick-export-settings.png
new file mode 100644
index 0000000..fb8f3c6
Binary files /dev/null and b/docs/cs-cart/assets/attribute-mapping/quick-export-settings.png differ
diff --git a/docs/cs-cart/assets/cred-page/cred-fields.png b/docs/cs-cart/assets/cred-page/cred-fields.png
new file mode 100644
index 0000000..9465bbf
Binary files /dev/null and b/docs/cs-cart/assets/cred-page/cred-fields.png differ
diff --git a/docs/cs-cart/assets/cred-page/cred-page.png b/docs/cs-cart/assets/cred-page/cred-page.png
new file mode 100644
index 0000000..66a10b2
Binary files /dev/null and b/docs/cs-cart/assets/cred-page/cred-page.png differ
diff --git a/docs/cs-cart/assets/cred-page/cred-settings.png b/docs/cs-cart/assets/cred-page/cred-settings.png
new file mode 100644
index 0000000..e9d5ac5
Binary files /dev/null and b/docs/cs-cart/assets/cred-page/cred-settings.png differ
diff --git a/docs/cs-cart/assets/cred-page/edit-cred.png b/docs/cs-cart/assets/cred-page/edit-cred.png
new file mode 100644
index 0000000..ce59c98
Binary files /dev/null and b/docs/cs-cart/assets/cred-page/edit-cred.png differ
diff --git a/docs/cs-cart/assets/cred-page/history.png b/docs/cs-cart/assets/cred-page/history.png
new file mode 100644
index 0000000..58559aa
Binary files /dev/null and b/docs/cs-cart/assets/cred-page/history.png differ
diff --git a/docs/cs-cart/assets/cs-cart.png b/docs/cs-cart/assets/cs-cart.png
new file mode 100644
index 0000000..0f93b8a
Binary files /dev/null and b/docs/cs-cart/assets/cs-cart.png differ
diff --git a/docs/cs-cart/assets/export/attribute-export-now.png b/docs/cs-cart/assets/export/attribute-export-now.png
new file mode 100644
index 0000000..98cee52
Binary files /dev/null and b/docs/cs-cart/assets/export/attribute-export-now.png differ
diff --git a/docs/cs-cart/assets/export/attribute-export-progress.png b/docs/cs-cart/assets/export/attribute-export-progress.png
new file mode 100644
index 0000000..cdb6102
Binary files /dev/null and b/docs/cs-cart/assets/export/attribute-export-progress.png differ
diff --git a/docs/cs-cart/assets/export/attribute-export.png b/docs/cs-cart/assets/export/attribute-export.png
new file mode 100644
index 0000000..d52b271
Binary files /dev/null and b/docs/cs-cart/assets/export/attribute-export.png differ
diff --git a/docs/cs-cart/assets/export/attribute-fields.png b/docs/cs-cart/assets/export/attribute-fields.png
new file mode 100644
index 0000000..8e357b7
Binary files /dev/null and b/docs/cs-cart/assets/export/attribute-fields.png differ
diff --git a/docs/cs-cart/assets/export/c-product-export.png b/docs/cs-cart/assets/export/c-product-export.png
new file mode 100644
index 0000000..dff7302
Binary files /dev/null and b/docs/cs-cart/assets/export/c-product-export.png differ
diff --git a/docs/cs-cart/assets/export/category-export-now.png b/docs/cs-cart/assets/export/category-export-now.png
new file mode 100644
index 0000000..e324117
Binary files /dev/null and b/docs/cs-cart/assets/export/category-export-now.png differ
diff --git a/docs/cs-cart/assets/export/category-export-progress.png b/docs/cs-cart/assets/export/category-export-progress.png
new file mode 100644
index 0000000..986336d
Binary files /dev/null and b/docs/cs-cart/assets/export/category-export-progress.png differ
diff --git a/docs/cs-cart/assets/export/category-export.png b/docs/cs-cart/assets/export/category-export.png
new file mode 100644
index 0000000..cf48773
Binary files /dev/null and b/docs/cs-cart/assets/export/category-export.png differ
diff --git a/docs/cs-cart/assets/export/category-filter.png b/docs/cs-cart/assets/export/category-filter.png
new file mode 100644
index 0000000..142d903
Binary files /dev/null and b/docs/cs-cart/assets/export/category-filter.png differ
diff --git a/docs/cs-cart/assets/export/create_export.png b/docs/cs-cart/assets/export/create_export.png
new file mode 100644
index 0000000..cd1dfee
Binary files /dev/null and b/docs/cs-cart/assets/export/create_export.png differ
diff --git a/docs/cs-cart/assets/export/data-transfer.png b/docs/cs-cart/assets/export/data-transfer.png
new file mode 100644
index 0000000..0a5e15d
Binary files /dev/null and b/docs/cs-cart/assets/export/data-transfer.png differ
diff --git a/docs/cs-cart/assets/export/product-export-now.png b/docs/cs-cart/assets/export/product-export-now.png
new file mode 100644
index 0000000..b014c5f
Binary files /dev/null and b/docs/cs-cart/assets/export/product-export-now.png differ
diff --git a/docs/cs-cart/assets/export/product-export-progress.png b/docs/cs-cart/assets/export/product-export-progress.png
new file mode 100644
index 0000000..c7faafd
Binary files /dev/null and b/docs/cs-cart/assets/export/product-export-progress.png differ
diff --git a/docs/cs-cart/assets/export/product-export.png b/docs/cs-cart/assets/export/product-export.png
new file mode 100644
index 0000000..bb02864
Binary files /dev/null and b/docs/cs-cart/assets/export/product-export.png differ
diff --git a/docs/cs-cart/assets/export/product-filter.png b/docs/cs-cart/assets/export/product-filter.png
new file mode 100644
index 0000000..ac9fe52
Binary files /dev/null and b/docs/cs-cart/assets/export/product-filter.png differ
diff --git a/docs/cs-cart/assets/export/products.png b/docs/cs-cart/assets/export/products.png
new file mode 100644
index 0000000..14fc0cf
Binary files /dev/null and b/docs/cs-cart/assets/export/products.png differ
diff --git a/docs/cs-cart/assets/export/quick-export-progress.png b/docs/cs-cart/assets/export/quick-export-progress.png
new file mode 100644
index 0000000..9a30ad8
Binary files /dev/null and b/docs/cs-cart/assets/export/quick-export-progress.png differ
diff --git a/docs/cs-cart/assets/export/quick-export.png b/docs/cs-cart/assets/export/quick-export.png
new file mode 100644
index 0000000..e46d472
Binary files /dev/null and b/docs/cs-cart/assets/export/quick-export.png differ
diff --git a/docs/cs-cart/assets/export/selected-export.png b/docs/cs-cart/assets/export/selected-export.png
new file mode 100644
index 0000000..1ae2d6b
Binary files /dev/null and b/docs/cs-cart/assets/export/selected-export.png differ
diff --git a/docs/cs-cart/assets/import/attribute-import-now.png b/docs/cs-cart/assets/import/attribute-import-now.png
new file mode 100644
index 0000000..008ac30
Binary files /dev/null and b/docs/cs-cart/assets/import/attribute-import-now.png differ
diff --git a/docs/cs-cart/assets/import/attribute-import-progress.png b/docs/cs-cart/assets/import/attribute-import-progress.png
new file mode 100644
index 0000000..c1146a0
Binary files /dev/null and b/docs/cs-cart/assets/import/attribute-import-progress.png differ
diff --git a/docs/cs-cart/assets/import/attribute-iport.png b/docs/cs-cart/assets/import/attribute-iport.png
new file mode 100644
index 0000000..cc6008c
Binary files /dev/null and b/docs/cs-cart/assets/import/attribute-iport.png differ
diff --git a/docs/cs-cart/assets/import/attribute-settings.png b/docs/cs-cart/assets/import/attribute-settings.png
new file mode 100644
index 0000000..753df23
Binary files /dev/null and b/docs/cs-cart/assets/import/attribute-settings.png differ
diff --git a/docs/cs-cart/assets/import/category-import-now.png b/docs/cs-cart/assets/import/category-import-now.png
new file mode 100644
index 0000000..8179e80
Binary files /dev/null and b/docs/cs-cart/assets/import/category-import-now.png differ
diff --git a/docs/cs-cart/assets/import/category-import-progress.png b/docs/cs-cart/assets/import/category-import-progress.png
new file mode 100644
index 0000000..6f97d28
Binary files /dev/null and b/docs/cs-cart/assets/import/category-import-progress.png differ
diff --git a/docs/cs-cart/assets/import/category-import.png b/docs/cs-cart/assets/import/category-import.png
new file mode 100644
index 0000000..0ff3ff8
Binary files /dev/null and b/docs/cs-cart/assets/import/category-import.png differ
diff --git a/docs/cs-cart/assets/import/category-settings.png b/docs/cs-cart/assets/import/category-settings.png
new file mode 100644
index 0000000..0f0ebdf
Binary files /dev/null and b/docs/cs-cart/assets/import/category-settings.png differ
diff --git a/docs/cs-cart/assets/import/create-import.png b/docs/cs-cart/assets/import/create-import.png
new file mode 100644
index 0000000..dd31ad7
Binary files /dev/null and b/docs/cs-cart/assets/import/create-import.png differ
diff --git a/docs/cs-cart/assets/import/data-transfer.png b/docs/cs-cart/assets/import/data-transfer.png
new file mode 100644
index 0000000..ef8c9da
Binary files /dev/null and b/docs/cs-cart/assets/import/data-transfer.png differ
diff --git a/docs/cs-cart/assets/import/product-import-now.png b/docs/cs-cart/assets/import/product-import-now.png
new file mode 100644
index 0000000..24b0174
Binary files /dev/null and b/docs/cs-cart/assets/import/product-import-now.png differ
diff --git a/docs/cs-cart/assets/import/product-import-progress.png b/docs/cs-cart/assets/import/product-import-progress.png
new file mode 100644
index 0000000..7a1aab4
Binary files /dev/null and b/docs/cs-cart/assets/import/product-import-progress.png differ
diff --git a/docs/cs-cart/assets/import/product-import.png b/docs/cs-cart/assets/import/product-import.png
new file mode 100644
index 0000000..9800d49
Binary files /dev/null and b/docs/cs-cart/assets/import/product-import.png differ
diff --git a/docs/cs-cart/assets/import/products-settings.png b/docs/cs-cart/assets/import/products-settings.png
new file mode 100644
index 0000000..5cc07e0
Binary files /dev/null and b/docs/cs-cart/assets/import/products-settings.png differ
diff --git a/docs/cs-cart/assets/locales-mapping/cs-locale.png b/docs/cs-cart/assets/locales-mapping/cs-locale.png
new file mode 100644
index 0000000..ed76e85
Binary files /dev/null and b/docs/cs-cart/assets/locales-mapping/cs-locale.png differ
diff --git a/docs/cs-cart/assets/locales-mapping/locales-mapping-tab.png b/docs/cs-cart/assets/locales-mapping/locales-mapping-tab.png
new file mode 100644
index 0000000..61903b7
Binary files /dev/null and b/docs/cs-cart/assets/locales-mapping/locales-mapping-tab.png differ
diff --git a/docs/cs-cart/assets/locales-mapping/save-locale.png b/docs/cs-cart/assets/locales-mapping/save-locale.png
new file mode 100644
index 0000000..34fa7a2
Binary files /dev/null and b/docs/cs-cart/assets/locales-mapping/save-locale.png differ
diff --git a/docs/cs-cart/attribute-mapping.md b/docs/cs-cart/attribute-mapping.md
new file mode 100644
index 0000000..39d3ab9
--- /dev/null
+++ b/docs/cs-cart/attribute-mapping.md
@@ -0,0 +1,79 @@
+# Map attributes
+
+CS-Cart products have a fixed set of system fields (`product_code`, `product`, `price`, `amount`, `full_description`, etc.) plus your store's **features**. The **Attribute Mapping** tab tells the connector which UnoPim attribute fills each CS-Cart field.
+
+**Open it from:** *CS-Cart → Credentials → (edit a credential) → Attribute Mapping*
+
+
+
+
+
+---
+
+## What you'll see
+
+The page lists every CS-Cart product field with three columns:
+
+| Column | What it means |
+|--|--|
+| **CS-Cart Field** | The CS-Cart field you're mapping into. Hover the info icon for what the field does. |
+| **UnoPim Attribute** | The UnoPim attribute that will supply the value. |
+| **Fixed Value** *(some fields)* | Hard-code a value here instead of picking an attribute — e.g. set `status` to `A` for all exported products. |
+
+A red **Required** badge marks the fields you **must** map for the export to succeed (e.g. *Product Code (SKU)*, *Product Name*, *Price*).
+
+---
+
+## Required mappings
+
+At minimum, map these to run a product export:
+
+| CS-Cart Field | Typical UnoPim attribute |
+|--|--|
+| **Product Code (SKU)** | `sku` |
+| **Product Name** | `name` |
+| **Price** | `price` |
+| **Quantity Amount** | `quantity` (or fixed value `0`) |
+
+
+
+
+The rest are optional. The connector skips any CS-Cart field that has neither an attribute nor a fixed value.
+
+---
+
+## Picking an attribute
+
+The dropdown only shows **UnoPim attributes whose type matches the CS-Cart field**. For example, *Price* only lets you pick numeric / price attributes; *Full Description* only lets you pick text / textarea attributes.
+
+You'll see the supported types listed on the row — e.g. *Supported UnoPim Types: text, textarea*.
+
+> [!TIP]
+> If the attribute you want isn't in the list, check its **type** in *Catalog → Attributes* — it probably doesn't match the CS-Cart field's expected data type.
+
+---
+
+## Add an extra attribute
+
+Need to send a custom attribute that isn't a built-in CS-Cart field? Use **+ Add Additional Attribute** at the bottom of the page. You can:
+
+- Pick any UnoPim attribute.
+- Map it to a CS-Cart **feature** or custom field by ID.
+
+Click the trash icon next to an extra row to remove it.
+
+---
+
+## Save the mapping
+
+Click **Save Mapping** at the bottom. You'll see *Attribute mapping updated successfully.*
+
+Mapping changes are picked up by the **next** export run — exports already in the queue keep the mapping that was in place when they were queued.
+
+---
+
+## How it's used
+
+- **Product Export** reads each UnoPim product, transforms it through this mapping, and sends the result to CS-Cart.
+- **Product Import** does the reverse — reads CS-Cart products and writes them back into the mapped UnoPim attributes.
+- A missing **required** mapping makes the job validator block the run before it starts. You'll see *Required attribute mapping is missing.*
diff --git a/docs/cs-cart/contact-support.md b/docs/cs-cart/contact-support.md
new file mode 100644
index 0000000..46f1f55
--- /dev/null
+++ b/docs/cs-cart/contact-support.md
@@ -0,0 +1,21 @@
+# Contact & Support
+
+That wraps up the user guide for the **UnoPim CS-Cart Connector** extension. We hope this documentation helps you set up and use the connector in UnoPim with confidence.
+
+If you have any questions, run into issues, or need help with the extension, the Webkul support team is available to assist.
+
+## Get in Touch
+
+**Email**
+Reach out to us at [support@webkul.com](mailto:support@webkul.com) and our team will get back to you as soon as possible.
+
+**HelpDesk**
+You can also raise a ticket through the [Webkul HelpDesk System](https://webkul.uvdesk.com/en/).
+
+This is useful if you want to:
+
+- report an issue,
+- ask a setup or migration question,
+- track the status of your support request.
+
+We are happy to help whenever needed.
diff --git a/docs/cs-cart/credentials.md b/docs/cs-cart/credentials.md
new file mode 100644
index 0000000..cc5d541
--- /dev/null
+++ b/docs/cs-cart/credentials.md
@@ -0,0 +1,94 @@
+# Add CS-Cart credentials
+
+This is where you store the connection details for your CS-Cart store. Add at least one credential before you can import or export anything.
+
+**Open it from:** *CS-Cart → Credentials*
+
+
+
+---
+
+## The credentials page
+
+
+
+Each row in the list shows one credential:
+
+- **Name** — the label you gave it.
+- **Shop URL** — the CS-Cart store URL.
+- **Active** — whether the credential is on or off.
+
+
+
+You can search by name, sort columns, or click **Filter** to narrow the list. The pencil icon edits a row, the trash icon deletes it. Mass-update and mass-delete are available from the **Selected actions** menu.
+
+---
+
+## Add a credential
+
+Click **+ Create Credential** in the top-right corner.
+
+
+
+Fill in:
+
+| Field | What goes here |
+|--|--|
+| **Name** | Any label you want, e.g. *Production Store*. Must be unique. |
+| **Shop URL** | Your CS-Cart store URL, including `https://`. |
+| **Admin Email** | The email of a CS-Cart admin with API access. |
+| **API Key** | Paste the API key from CS-Cart *User Profile → API* tab. |
+
+
+
+Click **Save Credential**.
+
+> The extension calls the CS-Cart API with the credentials before saving. If anything is wrong you'll see *Unable to connect to CS-Cart. Please verify your Shop URL, Admin Email, and API Key are correct.* and nothing is stored.
+
+After saving, you land on the edit page where you can map locales and attributes.
+
+---
+
+## Edit a credential
+
+Click the pencil icon on any row.
+
+
+
+The edit page has four tabs at the top:
+
+| Tab | What it does |
+|--|--|
+| **Credential Settings** | Edit name / URL / API key, switch the credential on or off, set it as the default for quick export. |
+| **Locale Mapping** | Map every UnoPim locale to a CS-Cart `lang_code` — see [Map locales](./locale-mapping). |
+| **Attribute Mapping** | Map UnoPim attributes to CS-Cart product fields — see [Map attributes](./attribute-mapping). |
+| **History** | Every change made to this credential is logged here. |
+
+
+
+### Credential Settings
+
+| Field | What it does |
+|--|--|
+| **Name / Shop URL / Admin Email / Company ID** | Edit any of the values you set when creating. |
+| **API Key** | Leave blank to keep the current key. Type a new one to replace it. |
+| **Active** | Turn the credential on or off. Inactive credentials are hidden from import / export profile dropdowns. |
+| **Default for quick Export** | When on, this credential is used by **Quick Export** from the product list. Only one credential can be default. |
+
+Click **Save Changes**.
+
+---
+
+## Delete a credential
+
+Click the trash icon on a row and confirm. Or tick several rows and use **Selected actions → Delete**.
+
+> Deleting a credential does **not** delete the data already pushed to CS-Cart. It only stops future imports / exports from running through it.
+
+---
+
+## See change history
+
+The **History** tab on the edit page lists every change made to this credential — name edits, URL changes, active flips, locale and attribute mapping changes. Your API key itself is never shown there.
+
+
diff --git a/docs/cs-cart/export-attributes.md b/docs/cs-cart/export-attributes.md
new file mode 100644
index 0000000..15a1b4c
--- /dev/null
+++ b/docs/cs-cart/export-attributes.md
@@ -0,0 +1,50 @@
+# Export attributes
+
+Push UnoPim attributes to CS-Cart as **features**. Run this once before exporting products that use those attributes — otherwise CS-Cart has no field to store the values in.
+
+> **Before you start.** Add a [CS-Cart credential](./credentials) and map every locale you plan to export — see [Map locales](./locale-mapping).
+
+**Open it from:** *Data Transfer → Export*
+
+
+
+
+
+## Steps
+
+### 1. Create the profile
+
+1. Open **Data Transfer → Export → + Create Export**.
+
+
+
+2. **Type** — pick **CsCart Attributes Export**.
+3. **Code** — any short identifier, e.g. `cscart_attributes_daily`.
+
+
+
+
+### 2. Fill the filters
+
+The export needs:
+
+| Filter | What it does |
+|--|--|
+| **Credential** | Which CS-Cart store to export to. |
+| **Store** | Which CS-Cart storefront inside that store. *(Multi-Vendor / multi-storefront only.)* |
+| **Channel** | The UnoPim channel whose attribute values you're exporting. |
+| **Locale** | One or more UnoPim locales to push translations for. **Each must be mapped** — see [Map locales](./locale-mapping). |
+
+
+
+Click **Save**.
+
+### 3. Run it
+
+Open the profile and click **Export Now**.
+
+
+
+The job is queued. Watch it on **Settings → Data Transfer → Tracker**.
+
+
diff --git a/docs/cs-cart/export-categories.md b/docs/cs-cart/export-categories.md
new file mode 100644
index 0000000..374afc3
--- /dev/null
+++ b/docs/cs-cart/export-categories.md
@@ -0,0 +1,42 @@
+# Export categories
+
+Push your UnoPim category tree to CS-Cart, keeping the parent / child hierarchy intact.
+
+> **Before you start.** Add a [CS-Cart credential](./credentials), [map your locales](./locale-mapping), and ideally run [Export attributes](./export-attributes) first if any of your categories carry custom attributes.
+
+**Open it from:** *Data Transfer → Export*
+
+
+
+## Steps
+
+### 1. Create the profile
+
+1. Open **Data Transfer → Export → + Create Export**.
+
+
+
+2. **Type** — pick **CsCart Categories Export**, **Code** — any short identifier, e.g. `cscart_categories`.
+
+
+
+3. **Fill the filter**
+
+| Filter | Required | What it does |
+|--|--|--|
+| **Credential** | ✓ | Which CS-Cart store to export to. |
+| **Store** | ✓ | The target CS-Cart storefront. |
+| **Channel** | ✓ | The UnoPim channel whose category tree you are exporting. |
+| **Locale** | ✓ | One or more UnoPim locales to push category names and descriptions for. |
+
+Click **Save**.
+
+4. **Run it**
+
+Open the profile and click **Start Export**.
+
+
+
+The job is queued. Watch progress in the Data Transfer Tracker.
+
+
diff --git a/docs/cs-cart/export-products.md b/docs/cs-cart/export-products.md
new file mode 100644
index 0000000..bfc0602
--- /dev/null
+++ b/docs/cs-cart/export-products.md
@@ -0,0 +1,47 @@
+# Export products
+
+Push UnoPim products — with attribute values, prices, stock, statuses, and images — to CS-Cart.
+
+> **Before you start.** Add a [CS-Cart credential](./credentials), [map locales](./locale-mapping), [map attributes](./attribute-mapping), and run [Export attributes](./export-attributes) and [Export categories](./export-categories) at least once so CS-Cart has the features and categories the products reference.
+
+**Open it from:** *Data Transfer → Export*
+
+
+
+## Steps
+
+### 1. Create the profile
+
+1. Open **Data Transfer → Export → + Create Export**.
+
+
+
+2. **Type** — pick **CsCart Product Export**, **Code** — any short identifier, e.g. `cscart_products`.
+
+
+
+3. **Fill the filter**
+
+| Filter | Required | What it does |
+|--|--|--|
+| **Credential** | ✓ | Which CS-Cart store to export to. |
+| **Store** | ✓ | The target CS-Cart storefront. |
+| **Channel** | ✓ | UnoPim channel whose product values are exported. |
+| **Locale** | ✓ | One or more UnoPim locales — must all be mapped. |
+| **Currency** | ✓ | Which UnoPim currency the price is read from. |
+| **Product SKU** | — | Optional. Pick specific SKUs to export. Leave empty to export everything in the channel. |
+| **With media** | — | When on, product images are pushed to CS-Cart too. |
+
+
+
+Click **Save**.
+
+4. **Run it**
+
+Open the profile and click **Start Export**.
+
+
+
+The job is queued. Watch progress in the Data Transfer Tracker.
+
+
diff --git a/docs/cs-cart/import-attributes.md b/docs/cs-cart/import-attributes.md
new file mode 100644
index 0000000..d88bdcc
--- /dev/null
+++ b/docs/cs-cart/import-attributes.md
@@ -0,0 +1,44 @@
+# Import attributes
+
+Pull CS-Cart **features** into UnoPim as attributes, so you can enrich them in UnoPim and push them back out later.
+
+> **Before you start.** Add a [CS-Cart credential](./credentials) and [map locales](./locale-mapping).
+
+**Open it from:** *Data Transfer → Import*
+
+
+
+## Steps
+
+### 1. Create the profile
+
+1. Open **Data Transfer → Import → + Create Import**.
+
+
+
+2. **Type** — pick **CsCart Attributes Import**, **Code** — any short identifier, e.g. `cscart_attributes_import`.
+
+
+
+3. **Fill the filter**
+
+| Filter | Required | What it does |
+|--|--|--|
+| **Credential** | ✓ | Which CS-Cart store to pull from. |
+| **Store** | ✓ | The source CS-Cart storefront. |
+| **Channel** | ✓ | The UnoPim channel to write imported attributes into. |
+| **Locale** | ✓ | One or more UnoPim locales to import translations for. |
+
+
+
+Click **Save**.
+
+4. **Run it**
+
+Open the profile and click **Start Import**.
+
+
+
+The job is queued. Watch progress in the Data Transfer Tracker.
+
+
diff --git a/docs/cs-cart/import-categories.md b/docs/cs-cart/import-categories.md
new file mode 100644
index 0000000..8aeaef0
--- /dev/null
+++ b/docs/cs-cart/import-categories.md
@@ -0,0 +1,44 @@
+# Import categories
+
+Pull your CS-Cart category tree into UnoPim, keeping the parent / child hierarchy intact.
+
+> **Before you start.** Add a [CS-Cart credential](./credentials) and [map locales](./locale-mapping).
+
+**Open it from:** *Data Transfer → Import*
+
+
+
+## Steps
+
+### 1. Create the profile
+
+1. Open **Data Transfer → Import → + Create Import**.
+
+
+
+2. **Type** — pick **CsCart Categories Import**, **Code** — any short identifier, e.g. `cscart_categories_import`.
+
+
+
+3. **Fill the filter**
+
+| Filter | Required | What it does |
+|--|--|--|
+| **Credential** | ✓ | Which CS-Cart store to pull from. |
+| **Store** | ✓ | The source CS-Cart storefront. |
+| **Channel** | ✓ | The UnoPim channel that owns the imported categories. |
+| **Locale** | ✓ | One or more UnoPim locales to import category names and descriptions for. |
+
+
+
+Click **Save**.
+
+4. **Run it**
+
+Open the profile and click **Start Import**.
+
+
+
+The job is queued. Watch progress in the Data Transfer Tracker.
+
+
diff --git a/docs/cs-cart/import-products.md b/docs/cs-cart/import-products.md
new file mode 100644
index 0000000..e541416
--- /dev/null
+++ b/docs/cs-cart/import-products.md
@@ -0,0 +1,45 @@
+# Import products
+
+Pull CS-Cart products into UnoPim so you can enrich them — better descriptions, more locales, richer attributes — and push them back out later.
+
+> **Before you start.** Add a [CS-Cart credential](./credentials), [map locales](./locale-mapping), [map attributes](./attribute-mapping), and ideally run [Import attributes](./import-attributes) and [Import categories](./import-categories) first so the products land with all their features and category links intact.
+
+**Open it from:** *Data Transfer → Import*
+
+
+
+## Steps
+
+### 1. Create the profile
+
+1. Open **Data Transfer → Import → + Create Import**.
+
+
+
+2. **Type** — pick **CsCart Product Import**, **Code** — any short identifier, e.g. `cscart_products_import`.
+
+
+
+3. **Fill the filter**
+
+| Filter | Required | What it does |
+|--|--|--|
+| **Credential** | ✓ | Which CS-Cart store to pull from. |
+| **Store** | ✓ | The source CS-Cart storefront. |
+| **Channel** | ✓ | UnoPim channel the products will belong to. |
+| **Locale** | ✓ | One or more UnoPim locales — must all be mapped. |
+| **With media** | — | When on, downloads product images from CS-Cart into UnoPim. |
+
+
+
+Click **Save**.
+
+4. **Run it**
+
+Open the profile and click **Start Import**.
+
+
+
+The job is queued. Watch progress in the Data Transfer Tracker.
+
+
diff --git a/docs/cs-cart/index.md b/docs/cs-cart/index.md
index 7ea1543..1247064 100644
--- a/docs/cs-cart/index.md
+++ b/docs/cs-cart/index.md
@@ -1,3 +1,20 @@
-# Cs Cart Extension
+# CS-Cart Connector
-Placeholder landing page. Real docs are pulled from the project repo at build time.
+Sync your **CS-Cart** store with UnoPim. Push enriched product data out, or pull existing catalog data in to enrich it in UnoPim.
+
+## What you can do
+
+- **Export to CS-Cart** — push UnoPim **attributes**, **categories**, and **products** (with prices, stock, statuses, and images) into your CS-Cart store.
+- **Import from CS-Cart** — pull existing CS-Cart **features**, **categories**, and **products** into UnoPim to enrich them.
+- **Multi-store, multi-locale** — sync to multiple CS-Cart storefronts and map every UnoPim locale to a CS-Cart `lang_code`.
+- **Quick export from the product list** — push a few selected products in one click.
+- **Watch progress** — every import or export shows up live in the Data Transfer Tracker.
+
+## Before you start
+
+You need:
+
+1. A working **UnoPim 2.0+** installation.
+2. A **CS-Cart store** (4.x or higher) with admin access.
+3. A **CS-Cart API key** from *User Profile → API* on your CS-Cart admin.
+4. The **CS-Cart Connector** extension installed — see [Installation](./installation).
diff --git a/docs/cs-cart/installation.md b/docs/cs-cart/installation.md
new file mode 100644
index 0000000..1160497
--- /dev/null
+++ b/docs/cs-cart/installation.md
@@ -0,0 +1,96 @@
+# Installation
+
+This page is for installing the extension. Once it's installed, see [Add CS-Cart credentials](./credentials) to start using it.
+
+## You need
+
+- **UnoPim 2.0+**.
+- A **CS-Cart 4.x+** store with admin access.
+- A **CS-Cart API key** — get it from your CS-Cart admin under *User Profile → API*.
+
+## Steps
+
+### 1. Drop the package in place
+
+Unzip the extension and move the package folder into your UnoPim project:
+
+```
+packages/Webkul/CsCartConnector/
+```
+
+### 2. Add it to composer.json
+
+In your project's root `composer.json`:
+
+```json
+"autoload": {
+ "psr-4": {
+ "Webkul\\CsCartConnector\\": "packages/Webkul/CsCartConnector/src"
+ }
+}
+```
+
+### 3. Register the provider
+
+In `bootstrap/providers.php` (UnoPim 2.0+):
+
+```php
+use Webkul\CsCartConnector\Providers\CsCartConnectorServiceProvider;
+
+return [
+ // ...
+ CsCartConnectorServiceProvider::class,
+];
+```
+
+> [!TIP]
+> **For UnoPim < 2.0**, add the provider to the `providers` array in `config/app.php` instead:
+> ```php
+> 'providers' => [
+> // ...
+> Webkul\CsCartConnector\Providers\CsCartConnectorServiceProvider::class,
+> ],
+> ```
+
+### 4. Run the install command
+
+```bash
+composer dump-autoload
+php artisan cscart-package:install
+php artisan optimize:clear
+php artisan queue:restart
+```
+
+This publishes assets, runs migrations, and clears caches.
+
+### 5. Keep a queue worker running
+
+```bash
+php artisan queue:work
+```
+
+In production use Supervisor, systemd, or Horizon — every export and import runs as a background job, so without a worker nothing actually moves.
+
+### 6. Give your role permission
+
+Open **Settings → Roles**, edit the role, and tick the CS-Cart permissions you want them to have:
+
+- **Credentials** — Create / Edit / Delete / Update / Mass Update / Mass Delete CS-Cart credentials.
+- **Attribute Mapping** — open and update the attribute mapping.
+- **Data Transfer Mappings** — create and delete data transfer mappings.
+- **Import from CS-Cart** — run import profiles.
+- **Export to CS-Cart** — run export profiles and quick exports.
+- **History View** — see the change history for credentials.
+
+
+
+Without these the menu and buttons stay hidden.
+
+## Check it worked
+
+1. **Menu shows up.** Open the admin panel — a **CS-Cart** menu appears in the sidebar with **Credentials** and **Data Transfer Mappings** under it.
+2. **Add a credential works.** Open **CS-Cart → Credentials → Create Credential**, fill the form, and save. If the API key is wrong, you see a clear error.
+3. **Export profile shows up.** Open **Data Transfer → Export → Create Export Profile** — **CsCart Categories Export**, **CsCart Attributes Export**, and **CsCart Product Export** appear in the type dropdown.
+4. **Import profile shows up.** Open **Data Transfer → Import → Create Import Profile** — **CsCart Attributes Import**, **CsCart Categories Import**, and **CsCart Product Import** appear in the type dropdown.
+
+If any of these don't work, check your credential, queue worker, and CS-Cart configuration again.
diff --git a/docs/cs-cart/locale-mapping.md b/docs/cs-cart/locale-mapping.md
new file mode 100644
index 0000000..34931bb
--- /dev/null
+++ b/docs/cs-cart/locale-mapping.md
@@ -0,0 +1,46 @@
+# Map locales
+
+CS-Cart uses two-letter language codes (e.g. `en`, `fr`, `de`) while UnoPim uses full locale codes (e.g. `en_US`, `fr_FR`, `de_DE`). The **Locale Mapping** tab tells the connector which CS-Cart language each UnoPim locale should write to and read from.
+
+**Open it from:** *CS-Cart → Credentials → (edit a credential) → Locale Mapping*
+
+
+
+## Steps
+
+1. Open the credential edit page.
+
+
+
+2. Click the **Locale Mapping** tab.
+
+
+
+3. For each UnoPim locale on the left, pick the matching CS-Cart `lang_code` on the right.
+
+
+
+4. Click **Save Mapping**.
+
+
+
+You'll see *Locale mapping updated successfully.*
+
+## What gets mapped
+
+The CS-Cart `lang_code` dropdown is fetched live from your CS-Cart store, so it only shows languages that are actually installed on that store.
+
+For example:
+
+| UnoPim locale | CS-Cart `lang_code` |
+|--|--|
+| `en_US` | `en` |
+| `fr_FR` | `fr` |
+| `de_DE` | `de` |
+| `es_ES` | `es` |
+
+## Notes
+
+- **Every UnoPim locale you intend to export or import must be mapped.** Unmapped locales are skipped silently — the export still runs, but those translations never reach CS-Cart.
+- Export and import job validators will refuse to start if a required locale isn't mapped. You'll see *Locale mapping is missing for the selected locale.*
+- If a CS-Cart language is missing from the dropdown, install it in CS-Cart first (*Administration → Languages*), then reopen the mapping tab — the new language appears.
diff --git a/docs/cs-cart/quick-export.md b/docs/cs-cart/quick-export.md
new file mode 100644
index 0000000..d1700a3
--- /dev/null
+++ b/docs/cs-cart/quick-export.md
@@ -0,0 +1,48 @@
+# Quick export
+
+Push a few selected products to CS-Cart straight from the product list — no need to create an export profile.
+
+> **Before you start.** Add a [CS-Cart credential](./credentials) and tick **Default for quick Export** on it in *Credential Settings*. The connector uses **the default credential** for every quick export. [Map locales](./locale-mapping) and [Map attributes](./attribute-mapping) on that credential too.
+
+**Open it from:** *Catalog → Products*
+
+
+
+## Steps
+
+1. Open **Catalog → Products**.
+
+
+2. Tick one or more rows.
+
+
+
+3. Click **Quick Export → CS-Cart Quick Export**.
+
+
+
+
+
+The selected products are queued straight to CS-Cart. You'll see *Products queued for CS-Cart export.*
+
+
+
+Watch the job in the Data Transfer Tracker.
+
+## What it uses
+
+| Setting | Where it comes from |
+|--|--|
+| **CS-Cart credential** | The one marked **Default for quick Export**. |
+| **Store** | The default store on that credential. |
+| **Channel / Locale / Currency** | The active channel / locale / currency in your admin session. |
+| **Attribute mapping** | The default credential's [Attribute Mapping](./attribute-mapping). |
+| **With media** | On by default. |
+
+If you need finer control (specific locales, a non-default credential, a different channel), use a full [export profile](./export-products) instead.
+
+## If the action doesn't appear
+
+1. No credential is marked **Default for quick Export** — open *CS-Cart → Credentials → edit → Credential Settings* and turn it on.
+2. Your role doesn't have **Export to CS-Cart** permission. See [Installation → Give your role permission](./installation#_6-give-your-role-permission).
+3. Refresh the page — the action list is loaded once when the page opens.
diff --git a/docs/cs-cart/sidebar.json b/docs/cs-cart/sidebar.json
index 9ac9fbd..6f431ee 100644
--- a/docs/cs-cart/sidebar.json
+++ b/docs/cs-cart/sidebar.json
@@ -1,8 +1,35 @@
[
{
- "text": "Cs Cart",
+ "text": "Setup",
"items": [
- { "text": "Overview", "link": "/cs-cart/" }
+ { "text": "Overview", "link": "/cs-cart/" },
+ { "text": "Installation", "link": "/cs-cart/installation" },
+ { "text": "Add CS-Cart credentials", "link": "/cs-cart/credentials" },
+ { "text": "Map locales", "link": "/cs-cart/locale-mapping" },
+ { "text": "Map attributes", "link": "/cs-cart/attribute-mapping" }
+ ]
+ },
+ {
+ "text": "Export to CS-Cart",
+ "items": [
+ { "text": "Export attributes", "link": "/cs-cart/export-attributes" },
+ { "text": "Export categories", "link": "/cs-cart/export-categories" },
+ { "text": "Export products", "link": "/cs-cart/export-products" },
+ { "text": "Quick export", "link": "/cs-cart/quick-export" }
+ ]
+ },
+ {
+ "text": "Import from CS-Cart",
+ "items": [
+ { "text": "Import attributes", "link": "/cs-cart/import-attributes" },
+ { "text": "Import categories", "link": "/cs-cart/import-categories" },
+ { "text": "Import products", "link": "/cs-cart/import-products" }
+ ]
+ },
+ {
+ "text": "Support",
+ "items": [
+ { "text": "Contact Support", "link": "/cs-cart/contact-support" }
]
}
]
diff --git a/docs/dam/api-reference.md b/docs/dam/api-reference.md
new file mode 100644
index 0000000..00bdecd
--- /dev/null
+++ b/docs/dam/api-reference.md
@@ -0,0 +1,73 @@
+# Unopim DAM API Documentation
+
+RESTful API for Digital Asset Management
+
+---
+
+## Overview
+
+The Unopim DAM (Digital Asset Management) API provides a comprehensive RESTful interface for managing digital assets, directories, properties, tags, comments, and linked resources. This API enables developers to integrate Unopim's DAM capabilities into their applications.
+
+---
+
+
+## Authentication
+
+All API endpoints require Bearer Token authentication.
+
+### Headers Required
+
+```
+Authorization: Bearer {{token}}
+Accept: application/json
+```
+
+**Parameters:**
+- `{token}` - Your API authentication token
+- `Accept: application/json` - Specifies the response format
+
+**Example Request:**
+```
+curl -X GET "{{url}}/api/v1/rest/assets" \
+ -H "Authorization: Bearer your_token_here" \
+ -H "Accept: application/json"
+```
+
+---
+
+## Base URL
+
+All API requests should use the following base URL:
+
+```
+{{url}}/api/v1/rest
+```
+
+**Parameters:**
+- `{url}` - Your Unopim installation URL (e.g., https://yourdomain.com)
+
+**Example:**
+```
+https://yourdomain.com/api/v1/rest
+```
+
+---
+
+## Official Documentation
+
+To interact with Unopim DAM's API, you can use our official Postman collection:
+
+- **[UnoPim DAM APIs Documentation](https://documenter.getpostman.com/view/21990056/2sA3kXE17F)** - Detailed information about all available API endpoints, parameters, and response formats
+- **[UnoPim DAM APIs on Postman](https://www.postman.com/unopim/unopim-apis/collection/4385199-086948c4-9e81-4271-abb7-6d6995a67304?ctx=info)** - Official Postman collection with ready-to-use API requests
+
+This collection provides ready-to-use API requests for various UnoPim DAM API features. You can import it directly into your Postman workspace and start testing the APIs.
+
+The documentation and collection include:
+- Digital assets management endpoints
+- Directory management endpoints
+- Properties management endpoints
+- Tags management endpoints
+- Comments management endpoints
+- Linked resources endpoints
+- Complete request/response examples
+
diff --git a/docs/dam/asset-categories.md b/docs/dam/asset-categories.md
new file mode 100644
index 0000000..cd4c948
--- /dev/null
+++ b/docs/dam/asset-categories.md
@@ -0,0 +1,56 @@
+# Adding Assets to a Category
+
+Just like products, you can attach digital assets directly to your categories in UnoPim. This is useful for keeping category-level visuals — like banner images or icons — organised and exportable alongside your catalog structure.
+
+---
+
+## Step 1 — Open the Category
+
+Navigate to the category you want to add assets to. In the category edit screen, scroll down to the **Category Asset Media** field.
+
+
+
+
+
+---
+
+## Step 2 — Add Assets
+
+Click the **Add Assets** button. The asset picker will open, showing all the assets available across your directories.
+
+
+
+You can:
+
+- Click **All** to select every available asset
+- Click individual assets to select specific ones
+
+Once you've made your selection, click **Assign**. All selected assets will be linked to the category.
+
+---
+
+## Step 3 — Manage Assigned Assets
+
+Hover over any assigned asset thumbnail to see three options:
+
+
+
+| Option | What it does |
+|---|---|
+| **Preview** | Opens a full preview of the asset |
+| **Download** | Downloads the asset to your device |
+| **Remove** | Unlinks the asset from the category |
+
+---
+
+## Step 4 — Save the Category
+
+Click **Save** once you're done. The assets are now attached to the category and will be included when you export it.
+
+
+
+---
+
+> **Note:** Once an asset is assigned to a product or category, it will appear in the **Linked Resources** tab of that asset — giving you a clear view of everywhere the asset is being used across your catalog.
+
+
\ No newline at end of file
diff --git a/docs/dam/asset-products.md b/docs/dam/asset-products.md
new file mode 100644
index 0000000..c3f972f
--- /dev/null
+++ b/docs/dam/asset-products.md
@@ -0,0 +1,100 @@
+# Adding Assets to Products
+
+You can attach digital assets — like images, videos, or documents — directly to your products in UnoPim. Here's how to create a product and link assets to it.
+
+---
+
+## Step 1 — Open the Products Section
+
+Go to **Catalog → Products** from the left sidebar. This page shows all your existing products, where you can view, edit, copy, or delete them.
+
+
+
+---
+
+## Step 2 — Create a New Product
+
+Click the **Create Product** button and fill in the following:
+
+
+
+- **Product Type** — choose **Simple** for a standard product or **Configurable** for a product with variants like size or colour
+- **Family** — select the attribute family this product belongs to
+- **SKU** — enter a unique identifier for the product
+
+
+
+Click **Save**. The product will now appear in the products list.
+
+---
+
+## Step 3 — Add Product Details
+
+Open the newly created product and fill in the relevant information:
+
+- Name
+- Category
+- ERP Name
+- Price
+- Any other fields required by the product family
+
+
+
+---
+
+## Step 4 — Assign Assets to the Product
+
+Scroll down to the **Media Attribute Group** section. Here you'll find the **Add Assets** button — click it to open the asset picker.
+
+
+
+The asset picker shows all the assets you've uploaded across your directories. You can:
+
+
+
+- Click **All** to select every available asset
+- Click individual assets to select them one by one
+
+### Filtering Assets
+
+If you have a large library, use the filters to find what you need quickly:
+
+
+
+| Filter | What it does |
+|---|---|
+|**File Name** | Search by the original file name of the asset |
+| **Tag** | Filter by keywords or categories attached to the asset |
+| **Extension** | Filter by file type — e.g., `.jpg`, `.mp4`, `.pdf` |
+| **Created Date** | Filter by when the asset was uploaded |
+|**Updated Date** | Filter by the last time the asset was modified |
+| **Property Name** | Filter by a metadata attribute like resolution or duration |
+| **Property Value** | Filter by a specific attribute value — e.g., `High Resolution` |
+| **Asset Name** | Search by the asset's name or title |
+
+
+You can also browse assets by directory if you want to pull from a specific folder.
+
+Once you've selected the assets you want, click **Assign**. All selected assets will be linked to the product.
+
+---
+
+## Step 5 — Manage Assigned Assets
+
+Once assets are assigned, hover over any asset thumbnail to see three options:
+
+
+
+| Option | What it does |
+|---|---|
+| **Preview** | Opens a full preview of the asset |
+| **Download** | Downloads the asset to your device |
+| **Remove** | Unlinks the asset from the product |
+
+---
+
+## Step 6 — Save the Product
+
+Click **Save** to finalise the product with its assigned assets. Once saved, the assets will be included when you export the product to Shopify or any other connected platform.
+
+
\ No newline at end of file
diff --git a/docs/dam/assets.md b/docs/dam/assets.md
new file mode 100644
index 0000000..6806080
--- /dev/null
+++ b/docs/dam/assets.md
@@ -0,0 +1,142 @@
+# Unopim DAM - Assets Endpoints
+
+Comprehensive guide for managing digital assets via API
+
+## GET - Get All Assets
+
+Retrieve a paginated list of all assets in the system.
+
+**Endpoint:**
+```
+GET {{url}}/api/v1/rest/assets?limit=100&page=1
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Parameters:**
+- `limit` - Number of results per page (value: 100)
+- `page` - Page number (value: 1)
+
+---
+
+## GET - Get Asset by ID
+
+Retrieve a specific asset by its ID.
+
+**Endpoint:**
+```
+GET {{url}}/api/v1/rest/assets/390
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+---
+
+## POST - Upload New Asset
+
+Upload a new asset to the DAM system.
+
+**Endpoint:**
+```
+POST {{url}}/api/v1/rest/assets
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Body (Form Data):**
+- `files[]` - Asset file(s) to upload
+- `directory_id` - Directory ID (value: 1)
+
+---
+
+## POST - Re-upload Asset
+
+Re-upload an existing asset file, replacing the current version.
+
+**Endpoint:**
+```
+POST {{url}}/api/v1/rest/assets/reupload
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Body (Form Data):**
+- `file` - Asset file
+- `asset_id` - Asset ID (value: 390)
+
+---
+
+## PUT - Update Asset
+
+Update asset metadata such as file name.
+
+**Endpoint:**
+```
+PUT {{url}}/api/v1/rest/assets/211
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Body (JSON):**
+```json
+{
+ "file_name": "Update File Name"
+}
+```
+
+---
+
+## DELETE - Delete Asset
+
+Delete an asset from the DAM system.
+
+**Endpoint:**
+```
+DELETE {{url}}/api/v1/rest/assets/384
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+---
+
+## GET - Download Asset
+
+Download an asset file.
+
+**Endpoint:**
+```
+GET {{url}}/api/v1/rest/assets/download/210
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+---
+
diff --git a/docs/dam/assets/category-asset/assign.png b/docs/dam/assets/category-asset/assign.png
new file mode 100644
index 0000000..c1a9ffd
Binary files /dev/null and b/docs/dam/assets/category-asset/assign.png differ
diff --git a/docs/dam/assets/category-asset/categories.png b/docs/dam/assets/category-asset/categories.png
new file mode 100644
index 0000000..d2df839
Binary files /dev/null and b/docs/dam/assets/category-asset/categories.png differ
diff --git a/docs/dam/assets/category-asset/category-asset.png b/docs/dam/assets/category-asset/category-asset.png
new file mode 100644
index 0000000..f1a8677
Binary files /dev/null and b/docs/dam/assets/category-asset/category-asset.png differ
diff --git a/docs/dam/assets/category-asset/create-export.png b/docs/dam/assets/category-asset/create-export.png
new file mode 100644
index 0000000..f114170
Binary files /dev/null and b/docs/dam/assets/category-asset/create-export.png differ
diff --git a/docs/dam/assets/category-asset/download-btn.png b/docs/dam/assets/category-asset/download-btn.png
new file mode 100644
index 0000000..7290ad7
Binary files /dev/null and b/docs/dam/assets/category-asset/download-btn.png differ
diff --git a/docs/dam/assets/category-asset/download-export.png b/docs/dam/assets/category-asset/download-export.png
new file mode 100644
index 0000000..d6974d7
Binary files /dev/null and b/docs/dam/assets/category-asset/download-export.png differ
diff --git a/docs/dam/assets/category-asset/export-now.png b/docs/dam/assets/category-asset/export-now.png
new file mode 100644
index 0000000..16595a2
Binary files /dev/null and b/docs/dam/assets/category-asset/export-now.png differ
diff --git a/docs/dam/assets/category-asset/export.png b/docs/dam/assets/category-asset/export.png
new file mode 100644
index 0000000..913684e
Binary files /dev/null and b/docs/dam/assets/category-asset/export.png differ
diff --git a/docs/dam/assets/category-asset/exported-folder.png b/docs/dam/assets/category-asset/exported-folder.png
new file mode 100644
index 0000000..b3cf028
Binary files /dev/null and b/docs/dam/assets/category-asset/exported-folder.png differ
diff --git a/docs/dam/assets/category-asset/exported.png b/docs/dam/assets/category-asset/exported.png
new file mode 100644
index 0000000..10a126e
Binary files /dev/null and b/docs/dam/assets/category-asset/exported.png differ
diff --git a/docs/dam/assets/category-asset/hover.png b/docs/dam/assets/category-asset/hover.png
new file mode 100644
index 0000000..258aad7
Binary files /dev/null and b/docs/dam/assets/category-asset/hover.png differ
diff --git a/docs/dam/assets/category-asset/inner-folders.png b/docs/dam/assets/category-asset/inner-folders.png
new file mode 100644
index 0000000..134807c
Binary files /dev/null and b/docs/dam/assets/category-asset/inner-folders.png differ
diff --git a/docs/dam/assets/category-asset/linked.png b/docs/dam/assets/category-asset/linked.png
new file mode 100644
index 0000000..35cb845
Binary files /dev/null and b/docs/dam/assets/category-asset/linked.png differ
diff --git a/docs/dam/assets/category-asset/save-category.png b/docs/dam/assets/category-asset/save-category.png
new file mode 100644
index 0000000..e69da23
Binary files /dev/null and b/docs/dam/assets/category-asset/save-category.png differ
diff --git a/docs/dam/assets/category-asset/save-export.png b/docs/dam/assets/category-asset/save-export.png
new file mode 100644
index 0000000..d97e6be
Binary files /dev/null and b/docs/dam/assets/category-asset/save-export.png differ
diff --git a/docs/dam/assets/directory-management/click-add.png b/docs/dam/assets/directory-management/click-add.png
new file mode 100644
index 0000000..cea27c7
Binary files /dev/null and b/docs/dam/assets/directory-management/click-add.png differ
diff --git a/docs/dam/assets/directory-management/comments.png b/docs/dam/assets/directory-management/comments.png
new file mode 100644
index 0000000..743eeb7
Binary files /dev/null and b/docs/dam/assets/directory-management/comments.png differ
diff --git a/docs/dam/assets/directory-management/create-properties.png b/docs/dam/assets/directory-management/create-properties.png
new file mode 100644
index 0000000..9f1c683
Binary files /dev/null and b/docs/dam/assets/directory-management/create-properties.png differ
diff --git a/docs/dam/assets/directory-management/custom-download.png b/docs/dam/assets/directory-management/custom-download.png
new file mode 100644
index 0000000..aadf7d3
Binary files /dev/null and b/docs/dam/assets/directory-management/custom-download.png differ
diff --git a/docs/dam/assets/directory-management/dam-icon.png b/docs/dam/assets/directory-management/dam-icon.png
new file mode 100644
index 0000000..642a653
Binary files /dev/null and b/docs/dam/assets/directory-management/dam-icon.png differ
diff --git a/docs/dam/assets/directory-management/delete.png b/docs/dam/assets/directory-management/delete.png
new file mode 100644
index 0000000..f8d6125
Binary files /dev/null and b/docs/dam/assets/directory-management/delete.png differ
diff --git a/docs/dam/assets/directory-management/edit-btn.png b/docs/dam/assets/directory-management/edit-btn.png
new file mode 100644
index 0000000..f6f4e60
Binary files /dev/null and b/docs/dam/assets/directory-management/edit-btn.png differ
diff --git a/docs/dam/assets/directory-management/filter.png b/docs/dam/assets/directory-management/filter.png
new file mode 100644
index 0000000..7350cf2
Binary files /dev/null and b/docs/dam/assets/directory-management/filter.png differ
diff --git a/docs/dam/assets/directory-management/history.png b/docs/dam/assets/directory-management/history.png
new file mode 100644
index 0000000..a420be4
Binary files /dev/null and b/docs/dam/assets/directory-management/history.png differ
diff --git a/docs/dam/assets/directory-management/linked-resources.png b/docs/dam/assets/directory-management/linked-resources.png
new file mode 100644
index 0000000..19ce8e7
Binary files /dev/null and b/docs/dam/assets/directory-management/linked-resources.png differ
diff --git a/docs/dam/assets/directory-management/name.png b/docs/dam/assets/directory-management/name.png
new file mode 100644
index 0000000..49e7e90
Binary files /dev/null and b/docs/dam/assets/directory-management/name.png differ
diff --git a/docs/dam/assets/directory-management/preview.png b/docs/dam/assets/directory-management/preview.png
new file mode 100644
index 0000000..cd81af9
Binary files /dev/null and b/docs/dam/assets/directory-management/preview.png differ
diff --git a/docs/dam/assets/directory-management/properties.png b/docs/dam/assets/directory-management/properties.png
new file mode 100644
index 0000000..0c11bdc
Binary files /dev/null and b/docs/dam/assets/directory-management/properties.png differ
diff --git a/docs/dam/assets/directory-management/property-details.png b/docs/dam/assets/directory-management/property-details.png
new file mode 100644
index 0000000..e5f3173
Binary files /dev/null and b/docs/dam/assets/directory-management/property-details.png differ
diff --git a/docs/dam/assets/directory-management/rename.png b/docs/dam/assets/directory-management/rename.png
new file mode 100644
index 0000000..732798e
Binary files /dev/null and b/docs/dam/assets/directory-management/rename.png differ
diff --git a/docs/dam/assets/directory-management/reupload.png b/docs/dam/assets/directory-management/reupload.png
new file mode 100644
index 0000000..84e3589
Binary files /dev/null and b/docs/dam/assets/directory-management/reupload.png differ
diff --git a/docs/dam/assets/directory-management/right-click.png b/docs/dam/assets/directory-management/right-click.png
new file mode 100644
index 0000000..6ccba32
Binary files /dev/null and b/docs/dam/assets/directory-management/right-click.png differ
diff --git a/docs/dam/assets/directory-management/save.png b/docs/dam/assets/directory-management/save.png
new file mode 100644
index 0000000..c107af3
Binary files /dev/null and b/docs/dam/assets/directory-management/save.png differ
diff --git a/docs/dam/assets/overview/DAM-banner.png b/docs/dam/assets/overview/DAM-banner.png
new file mode 100644
index 0000000..ad9a872
Binary files /dev/null and b/docs/dam/assets/overview/DAM-banner.png differ
diff --git a/docs/dam/assets/product-asset/add-asset.png b/docs/dam/assets/product-asset/add-asset.png
new file mode 100644
index 0000000..3e6b43c
Binary files /dev/null and b/docs/dam/assets/product-asset/add-asset.png differ
diff --git a/docs/dam/assets/product-asset/asset-picker.png b/docs/dam/assets/product-asset/asset-picker.png
new file mode 100644
index 0000000..37d2b79
Binary files /dev/null and b/docs/dam/assets/product-asset/asset-picker.png differ
diff --git a/docs/dam/assets/product-asset/assigned-asset.png b/docs/dam/assets/product-asset/assigned-asset.png
new file mode 100644
index 0000000..7299bf8
Binary files /dev/null and b/docs/dam/assets/product-asset/assigned-asset.png differ
diff --git a/docs/dam/assets/product-asset/create-product.png b/docs/dam/assets/product-asset/create-product.png
new file mode 100644
index 0000000..3741e8c
Binary files /dev/null and b/docs/dam/assets/product-asset/create-product.png differ
diff --git a/docs/dam/assets/product-asset/filter.png b/docs/dam/assets/product-asset/filter.png
new file mode 100644
index 0000000..a26efb7
Binary files /dev/null and b/docs/dam/assets/product-asset/filter.png differ
diff --git a/docs/dam/assets/product-asset/product-details.png b/docs/dam/assets/product-asset/product-details.png
new file mode 100644
index 0000000..4651cf2
Binary files /dev/null and b/docs/dam/assets/product-asset/product-details.png differ
diff --git a/docs/dam/assets/product-asset/product-information.png b/docs/dam/assets/product-asset/product-information.png
new file mode 100644
index 0000000..05cf0c4
Binary files /dev/null and b/docs/dam/assets/product-asset/product-information.png differ
diff --git a/docs/dam/assets/product-asset/products.png b/docs/dam/assets/product-asset/products.png
new file mode 100644
index 0000000..bb05a78
Binary files /dev/null and b/docs/dam/assets/product-asset/products.png differ
diff --git a/docs/dam/assets/product-asset/save-product.png b/docs/dam/assets/product-asset/save-product.png
new file mode 100644
index 0000000..f805d64
Binary files /dev/null and b/docs/dam/assets/product-asset/save-product.png differ
diff --git a/docs/dam/assets/setup/Asset-product-verify.png b/docs/dam/assets/setup/Asset-product-verify.png
new file mode 100644
index 0000000..f9daeca
Binary files /dev/null and b/docs/dam/assets/setup/Asset-product-verify.png differ
diff --git a/docs/dam/assets/setup/DAM-controller.png b/docs/dam/assets/setup/DAM-controller.png
new file mode 100644
index 0000000..c2c71f8
Binary files /dev/null and b/docs/dam/assets/setup/DAM-controller.png differ
diff --git a/docs/dam/assets/setup/add-attribute.png b/docs/dam/assets/setup/add-attribute.png
new file mode 100644
index 0000000..1d9d15f
Binary files /dev/null and b/docs/dam/assets/setup/add-attribute.png differ
diff --git a/docs/dam/assets/setup/add-category-fields.png b/docs/dam/assets/setup/add-category-fields.png
new file mode 100644
index 0000000..7d333d3
Binary files /dev/null and b/docs/dam/assets/setup/add-category-fields.png differ
diff --git a/docs/dam/assets/setup/attribute-family.png b/docs/dam/assets/setup/attribute-family.png
new file mode 100644
index 0000000..58e20c4
Binary files /dev/null and b/docs/dam/assets/setup/attribute-family.png differ
diff --git a/docs/dam/assets/setup/attributes.png b/docs/dam/assets/setup/attributes.png
new file mode 100644
index 0000000..739e42b
Binary files /dev/null and b/docs/dam/assets/setup/attributes.png differ
diff --git a/docs/dam/assets/setup/categories.png b/docs/dam/assets/setup/categories.png
new file mode 100644
index 0000000..68328f1
Binary files /dev/null and b/docs/dam/assets/setup/categories.png differ
diff --git a/docs/dam/assets/setup/category-fields.png b/docs/dam/assets/setup/category-fields.png
new file mode 100644
index 0000000..47817f0
Binary files /dev/null and b/docs/dam/assets/setup/category-fields.png differ
diff --git a/docs/dam/assets/setup/categoryAsset.png b/docs/dam/assets/setup/categoryAsset.png
new file mode 100644
index 0000000..6b9d5f2
Binary files /dev/null and b/docs/dam/assets/setup/categoryAsset.png differ
diff --git a/docs/dam/assets/setup/create-attribute.png b/docs/dam/assets/setup/create-attribute.png
new file mode 100644
index 0000000..eb79e0f
Binary files /dev/null and b/docs/dam/assets/setup/create-attribute.png differ
diff --git a/docs/dam/assets/setup/create-category-field.png b/docs/dam/assets/setup/create-category-field.png
new file mode 100644
index 0000000..67738cb
Binary files /dev/null and b/docs/dam/assets/setup/create-category-field.png differ
diff --git a/docs/dam/assets/setup/create-category.png b/docs/dam/assets/setup/create-category.png
new file mode 100644
index 0000000..9d266f8
Binary files /dev/null and b/docs/dam/assets/setup/create-category.png differ
diff --git a/docs/dam/assets/setup/create-role.png b/docs/dam/assets/setup/create-role.png
new file mode 100644
index 0000000..2b1352c
Binary files /dev/null and b/docs/dam/assets/setup/create-role.png differ
diff --git a/docs/dam/assets/setup/dam-permission.png b/docs/dam/assets/setup/dam-permission.png
new file mode 100644
index 0000000..bc96fca
Binary files /dev/null and b/docs/dam/assets/setup/dam-permission.png differ
diff --git a/docs/dam/assets/setup/product-asset-media.png b/docs/dam/assets/setup/product-asset-media.png
new file mode 100644
index 0000000..225ee51
Binary files /dev/null and b/docs/dam/assets/setup/product-asset-media.png differ
diff --git a/docs/dam/assets/setup/roles.png b/docs/dam/assets/setup/roles.png
new file mode 100644
index 0000000..f6bdaca
Binary files /dev/null and b/docs/dam/assets/setup/roles.png differ
diff --git a/docs/dam/assets/setup/save-attribute.png b/docs/dam/assets/setup/save-attribute.png
new file mode 100644
index 0000000..505ce7e
Binary files /dev/null and b/docs/dam/assets/setup/save-attribute.png differ
diff --git a/docs/dam/assets/setup/save-category-fields.png b/docs/dam/assets/setup/save-category-fields.png
new file mode 100644
index 0000000..6ce6d24
Binary files /dev/null and b/docs/dam/assets/setup/save-category-fields.png differ
diff --git a/docs/dam/assets/setup/save-category.png b/docs/dam/assets/setup/save-category.png
new file mode 100644
index 0000000..0dc2623
Binary files /dev/null and b/docs/dam/assets/setup/save-category.png differ
diff --git a/docs/dam/assets/setup/save-role.png b/docs/dam/assets/setup/save-role.png
new file mode 100644
index 0000000..4dadc2d
Binary files /dev/null and b/docs/dam/assets/setup/save-role.png differ
diff --git a/docs/dam/assets/setup/settings.png b/docs/dam/assets/setup/settings.png
new file mode 100644
index 0000000..6bfc012
Binary files /dev/null and b/docs/dam/assets/setup/settings.png differ
diff --git a/docs/dam/comments.md b/docs/dam/comments.md
new file mode 100644
index 0000000..e4117a5
--- /dev/null
+++ b/docs/dam/comments.md
@@ -0,0 +1,67 @@
+# Unopim DAM - Comments Endpoints
+
+Comprehensive guide for managing comments via API
+
+---
+
+## POST - Create a Comment
+
+Create a new comment on a digital asset.
+
+**Endpoint:**
+```
+POST {{url}}/api/v1/rest/comments
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Body (JSON):**
+```json
+{
+ "comments": "New more varients of this proudct",
+ "dam_asset_id": 4
+}
+```
+
+**Parameters:**
+- `comments` - Comment text content
+- `dam_asset_id` - ID of the asset to comment on (value: 4)
+
+---
+
+## GET - Get Comment by ID
+
+Retrieve a specific comment by its ID.
+
+**Endpoint:**
+```
+GET {{url}}/api/v1/rest/comments/3
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+---
+
+## DELETE - Delete Comment
+
+Delete a comment from an asset.
+
+**Endpoint:**
+```
+DELETE {{url}}/api/v1/rest/comments/2
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
diff --git a/docs/dam/contact-support.md b/docs/dam/contact-support.md
new file mode 100644
index 0000000..bb0fd9e
--- /dev/null
+++ b/docs/dam/contact-support.md
@@ -0,0 +1,19 @@
+# Support
+
+That wraps up the User Guide for **UnoPim DAM (Digital Asset Management)**. We hope everything is clear and your asset library is up and running smoothly.
+
+If you get stuck or have any questions at any point, the Webkul support team is always available to help.
+
+---
+
+## Get in Touch
+
+**Email**
+Drop us a message at [support@webkul.com](mailto:support@webkul.com) and the team will get back to you as soon as possible.
+
+**HelpDesk**
+For a faster and more trackable experience, raise a support ticket through the [Webkul HelpDesk System](https://webkul.uvdesk.com/en/). You can describe your issue in detail, attach screenshots, and keep track of your request all in one place.
+
+---
+
+> We're here whenever you need us — don't hesitate to reach out.
\ No newline at end of file
diff --git a/docs/dam/dam-asset-migration-to-aws-s3.md b/docs/dam/dam-asset-migration-to-aws-s3.md
new file mode 100644
index 0000000..c370adf
--- /dev/null
+++ b/docs/dam/dam-asset-migration-to-aws-s3.md
@@ -0,0 +1,124 @@
+# DAM Asset Migration to AWS S3
+
+If your **UnoPim DAM** assets are currently stored on the local private disk, you can migrate them to **Amazon S3** by using the dedicated Artisan command.
+
+This helps when you want to:
+
+- move existing DAM assets to cloud storage,
+- keep new and old DAM files in the same S3 bucket,
+- reduce storage pressure on your local server.
+
+## Command Signature
+
+Run:
+
+```bash
+php artisan unopim:dam:move-asset-to-s3
+```
+
+This command uploads DAM asset files from local private storage to the S3 bucket configured in your UnoPim AWS Integration settings.
+
+## Prerequisites
+
+Before running the command, make sure:
+
+1. **UnoPim DAM** is installed and your assets are available locally.
+2. **UnoPim AWS Integration** is installed and configured correctly.
+3. Your S3 bucket, region, access key, and secret key are valid.
+4. You have a working **admin account** for authentication.
+
+If needed, complete the AWS setup first from the AWS Integration section.
+
+## Admin Authentication
+
+The command does not run anonymously.
+
+When you start it, UnoPim will prompt you for:
+
+- **email**
+- **password**
+
+Only valid **admin user credentials** can continue the DAM asset migration.
+
+## Interactive Options
+
+During execution, the command asks two important questions.
+
+## Terminal Prompt Flow
+
+This is the prompt sequence users will see when the command runs:
+
+```bash
+Enter your Email:
+> admin@example.com
+
+Enter your Password:
+>
+
+Want to migrate only new uploaded files from your local to s3 (yes/no):
+>
+
+Migrate New only flag: No
+
+Want to delete files from local once uploaded to s3? (yes/no):
+>
+
+Delete flag: No
+Starting migration to aws
+10/10 [============================] 100%
+Done Moving DAM Assets.
+```
+
+In this example:
+
+- `Migrate New only flag: No` means the command is not limited to only newly uploaded files.
+- `Delete flag: No` means the local DAM files will be kept after the upload finishes.
+
+### 1. Migrate Only New Files?
+
+If you choose **Yes**, the command migrates only DAM assets that are not already available on S3.
+
+Use this option when:
+
+- you already ran the command before,
+- you only want to move recently uploaded DAM assets,
+- you want a safer incremental migration.
+
+If you choose **No**, the command checks the broader DAM asset set instead of limiting the run to newly uploaded files.
+
+### 2. Delete Files from Local Disk After Upload?
+
+If you choose **Yes**, local DAM files are deleted after they are uploaded successfully to Amazon S3.
+
+Use this option only when:
+
+- you have verified that the files are present on S3,
+- asset preview and access are working correctly in UnoPim,
+- you no longer need the local disk copy.
+
+> [!CAUTION]
+> On your first migration run, it is safer to keep local files until you finish verifying the DAM asset library on S3.
+
+## Recommended First Run
+
+For the first migration, this is the safest approach:
+
+1. Run `php artisan unopim:dam:move-asset-to-s3`.
+2. Sign in with a valid admin email and password.
+3. Choose to migrate only new files if you want an incremental run.
+4. Choose **not** to delete local files yet.
+5. Open a few migrated assets in DAM and confirm they work correctly.
+6. If everything looks correct, run the command again later and allow local cleanup if required.
+
+## What to Verify After Migration
+
+After the command completes, confirm that:
+
+- the asset files exist in your S3 bucket,
+- DAM assets still open correctly in UnoPim,
+- linked product and category assets continue to work as expected,
+- local files are removed only if you intentionally approved that option.
+
+## Related Guide
+
+If you want the AWS setup view of this same process, see [DAM Asset Migration to AWS S3](../aws-integration/dam-asset-migration-to-aws-s3.md).
diff --git a/docs/dam/directories.md b/docs/dam/directories.md
new file mode 100644
index 0000000..96d8c5c
--- /dev/null
+++ b/docs/dam/directories.md
@@ -0,0 +1,108 @@
+# Unopim DAM - Directories Endpoints
+
+Comprehensive guide for managing directories via API
+
+---
+
+## GET - Get All Directories
+
+Retrieve a list of all directories in the system.
+
+**Endpoint:**
+```
+GET {{url}}/api/v1/rest/directories
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+---
+
+## GET - Get Directory by ID
+
+Retrieve a specific directory by its ID.
+
+**Endpoint:**
+```
+GET {{url}}/api/v1/rest/directories/1
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+---
+
+## POST - Create a Directory
+
+Create a new directory in the DAM system.
+
+**Endpoint:**
+```
+POST {{url}}/api/v1/rest/directories
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Body (Form Data):**
+- `name` - Directory name (value: Testing_Directory)
+- `parent_id` - Parent directory ID (value: 1)
+
+---
+
+## PUT - Update a Directory
+
+Update an existing directory details such as name and parent directory.
+
+**Endpoint:**
+```
+PUT {{url}}/api/v1/rest/directories/2
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Body (JSON):**
+```json
+{
+ "name": "Testing Directory",
+ "parent_id": 1
+}
+```
+
+---
+
+## DELETE - Delete a Directory
+
+Delete a directory from the DAM system.
+
+**Endpoint:**
+```
+DELETE {{url}}/api/v1/rest/directories/4
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Body (JSON):**
+```json
+{
+ "name": "Testing Directory",
+ "parent_id": 1
+}
+```
diff --git a/docs/dam/directory-and-asset-management.md b/docs/dam/directory-and-asset-management.md
new file mode 100644
index 0000000..4500ddd
--- /dev/null
+++ b/docs/dam/directory-and-asset-management.md
@@ -0,0 +1,166 @@
+# Managing Directories and Assets in UnoPim DAM
+
+After installing UnoPim, you'll notice a **DAM (Digital Asset Management) icon** in the left sidebar. Clicking it opens the media library — a central place where you can organise all your digital assets into folders, upload files, and manage everything from one screen.
+
+
+
+---
+
+## Working with Directories
+
+Directories are simply folders that help you keep your assets organised. You can create as many as you need, nest them inside each other, and manage them with a right-click.
+
+### Right-Click Menu Options
+
+Right-click on the **root directory** or any folder you've created to see the following options:
+
+| Option | What it does |
+|---|---|
+| **Upload Files** | Upload one or multiple files directly into the selected folder |
+| **Add Directory** | Create a new subfolder inside the current directory |
+| **Rename** | Change the name of a folder to keep things identifiable |
+| **Delete** | Permanently remove a folder from the system — use with care |
+| **Copy Directory Structure** | Copies the folder structure (without the files) — useful when you want to recreate the same layout elsewhere |
+| **Download Zip** | Downloads all contents of the folder as a ZIP file — handy for backups or bulk transfers |
+
+
+
+---
+
+### Creating a New Directory
+
+1. Right-click on the directory where you want to add a subfolder.
+2. Click **Add Directory**.
+
+
+
+3. Enter a name for the new folder.
+
+
+
+
+4. Click **Save Directory**.
+
+
+
+The new subfolder will appear immediately inside the selected directory.
+
+---
+
+## Uploading and Managing Assets
+
+Once your folders are set up, you can start adding assets.
+
+### Uploading Files
+
+Click the **Upload** button to add files to the current directory. You can upload multiple files at once. Supported asset types include images, videos, documents, and audio files.
+
+### Editing or Deleting an Asset
+
+Each asset has an **Edit** and a **Delete** button:
+
+- **Edit** — opens the asset editor where you can make changes
+- **Delete** — permanently removes the asset from the directory
+
+---
+
+## Asset Edit Options
+
+When you click **Edit** on an asset, you'll see the following sections:
+
+
+
+### Preview
+View the asset and inspect its embedded metadata — including meta information, the directory path it lives in, and any tags attached to it.
+
+
+
+### Re-upload
+Replace the current file with a newer version while keeping the same asset record in UnoPim.
+
+
+
+### Rename
+Change the name of the asset to keep your library organised and searchable.
+
+
+
+### Delete
+Remove the asset from the directory permanently.
+
+
+
+---
+
+## Custom Download
+
+Click **Custom Download** on any image to download it in a specific format or size. Available format options include:
+
+- JPG
+- PNG
+- WebP
+- JPEG
+
+
+
+
+You can also set custom dimensions before downloading — useful when you need a specific image size for a particular use case.
+
+---
+
+## Properties
+
+Properties let you attach structured metadata to an asset — things like a label, type, language, or value.
+
+To create a property:
+
+1. Open the asset and go to the **Properties** section.
+
+
+
+2. Click **Create Property**.
+
+
+
+2. Fill in the **Name**, **Type**, **Language**, and **Value** fields.
+
+
+
+3. Click **Save**.
+
+To find a specific property, click the **Filter** button and filter by:
+
+- **Name** — search by the property name
+- **Language** — show properties in a specific language
+- **Value** — filter by a particular value
+
+
+
+---
+
+## Comments
+
+The **Comments** section lets you and your team leave notes directly on an asset. This is useful for giving feedback, flagging issues, or communicating changes without leaving the platform.
+
+
+
+---
+
+## Linked Resources
+
+The **Linked Resources** tab shows all the products and categories that this asset has been assigned to. Two resource types are available:
+
+
+
+- **Product** — products linked to this asset
+- **Category** — categories linked to this asset
+
+Use the **Filter** button to narrow down the list by product or category.
+
+---
+
+## History
+
+The **History** tab shows a full log of every change made to the asset — who changed it, what was changed, and when. This is useful for tracking edits and keeping an audit trail across your team.
+
+
\ No newline at end of file
diff --git a/docs/dam/export-assets.md b/docs/dam/export-assets.md
new file mode 100644
index 0000000..e28a6e6
--- /dev/null
+++ b/docs/dam/export-assets.md
@@ -0,0 +1,77 @@
+# Exporting Assets with Products and Categories
+
+UnoPim lets you export your digital assets — images, videos, documents — together with your product and category data in a single export job. This means when you download the export file, everything comes bundled together and nothing gets left behind.
+
+---
+
+## Step 1 — Go to Exports
+
+From the left sidebar, navigate to **Data Transfer → Exports**. This page lists all your existing export profiles. You can view, edit, or re-run any of them from here.
+
+
+
+To create a new one, click the **Create Export** button in the top-right corner.
+
+
+
+---
+
+## Step 2 — Fill in the Export Profile Details
+
+On the Create Export screen, fill in the required fields:
+
+- **Code** — a unique identifier for this export profile (e.g., `dam-product-export`)
+- **Type** — select the appropriate export type for products or categories with assets
+- **File Format** — choose your preferred output format
+- **Channel, Locale, and Currency** — select the relevant settings for your export
+
+
+
+Once all the details are filled in, click **Save Export** to create the profile.
+
+
+
+---
+
+## Step 3 — Run the Export
+
+After saving, click **Export Now** to start the export job. You'll be able to see the job running in real time.
+
+
+
+When the status changes to **Completed**, the export is done and your file is ready to download.
+
+
+
+---
+
+## Step 4 — Download the Export File
+
+Click the **Download Exported File** button to save the file to your device. The download will be a **ZIP file** containing two folders:
+
+
+
+| Folder | Contents |
+|---|---|
+| **product** | All exported product or category data |
+| **asset** | All the digital assets assigned to those products or categories |
+
+
+
+---
+
+## Step 5 — Verify the Exported Assets
+
+Once you've extracted the ZIP, open the **asset** folder and confirm that:
+
+- All assigned assets are present
+- File names match what was set in UnoPim
+- Image types and file formats are correct
+
+This gives you full confidence that the export captured everything accurately before you use it elsewhere.
+
+---
+
+> **Tip:** If an asset is missing from the export, go back and check that it was properly assigned to the product or category in UnoPim and that the export profile includes media in its settings.
+
+
\ No newline at end of file
diff --git a/docs/dam/index.md b/docs/dam/index.md
index 7a3c4f3..56606b5 100644
--- a/docs/dam/index.md
+++ b/docs/dam/index.md
@@ -1,3 +1,33 @@
-# Dam Extension
+# UnoPim DAM User Guide
-Placeholder landing page. Real docs are pulled from the project repo at build time.
+## Digital Asset Management Documentation
+
+
+

+
+
+## Introduction
+
+### Welcome to UnoPim DAM (Digital Asset Management)
+
+UnoPim DAM is a powerful, open-source digital asset management solution designed to help organizations store, organize, and manage their digital assets efficiently. Whether you are managing images, PDFs, documents, videos, audio files, or other media types, UnoPim DAM provides a comprehensive platform to streamline your workflow.
+
+If your DAM installation also uses the **UnoPim AWS Integration**, you can migrate locally stored DAM files to Amazon S3 by following [DAM Asset Migration to AWS S3](./dam-asset-migration-to-aws-s3.md).
+
+### Why Choose UnoPim DAM?
+
+- **Free and open-source software** – No licensing costs
+- **Support for multiple file types and formats** – Manage diverse digital assets
+- **Enhanced team collaboration capabilities** – Work together seamlessly
+- **Flexible directory and categorization options** – Organize assets your way
+- **Robust asset organization and search tools** – Find what you need instantly
+
+### Supported File Types
+
+UnoPim DAM supports a wide range of digital asset formats, including:
+
+- **Images:** JPG, PNG, WEBP, JPEG.
+- **Documents:** PDF and other document formats like CSV, XLSX, DOCX etc.
+- **Video files:** All common video formats.
+- **Audio files:** All common audio formats.
+- **And much more** – Extensible to support additional formats.
diff --git a/docs/dam/installation.md b/docs/dam/installation.md
new file mode 100644
index 0000000..d1854d3
--- /dev/null
+++ b/docs/dam/installation.md
@@ -0,0 +1,129 @@
+# UnoPim DAM Installation Guide
+
+Digital Asset Management - Installation Documentation
+
+---
+
+## Installation Overview
+
+UnoPim DAM offers two installation methods to suit your project needs:
+
+1. **Composer Installation** - Quick and straightforward setup
+2. **Manual Installation** - For custom configurations and direct control
+
+Choose the method that best fits your project setup.
+
+---
+
+## Composer Installation
+
+Composer Installation is the recommended approach for quick setup.
+
+### Step 1: Install the Package
+
+Execute the following command:
+
+```bash
+composer require unopim/dam
+```
+
+### Step 2: Run the installation command and Clear Cache
+
+Run the following commands:
+
+```bash
+php artisan dam-package:install
+php artisan optimize:clear
+```
+
+**Installation complete!** Your UnoPim DAM is now ready to use.
+
+---
+
+## Manual Installation
+
+Installation without Composer
+
+For the source code and latest version, visit the [UnoPim DAM GitHub repository](https://github.com/unopim/unopim-digital-asset-management).
+
+### Step 1: Download and Setup the Extension
+
+1. Download and unzip the extension
+2. Rename the folder to `DAM`
+3. Place it in the `packages/Webkul` directory within the project's root
+
+### Step 2: Register the Package Provider
+
+Add the following to `bootstrap/providers.php`:
+
+At the top, add the use statement:
+
+```php
+use Webkul\DAM\Providers\DAMServiceProvider;
+```
+
+In the return array, in the Webkul package service providers section, add:
+
+```php
+DAMServiceProvider::class,
+```
+
+### Step 3: Update Autoload Configuration
+
+Register the DAM directory in `composer.json` under `autoload` > `psr-4`:
+
+```json
+"Webkul\\DAM\\": "packages/Webkul/DAM/src"
+```
+
+### Step 4: Run Installation Commands
+
+Execute these commands to complete the installation:
+
+```bash
+composer dump-autoload
+php artisan optimize:clear
+php artisan migrate
+php artisan vendor:publish --provider=Webkul\\DAM\\Providers\\DAMServiceProvider
+php artisan db:seed --class=Webkul\\DAM\\Database\\Seeders\\DirectoryTableSeeder
+```
+
+### Step 5: Enable Queue Operations
+
+Start the queue to execute actions, such as job operations, by running the following command:
+
+```bash
+php artisan queue:work
+```
+
+If the `queue:work` command is managed by a process manager like Supervisor, restart the relevant service after installing the module to apply the changes:
+
+```bash
+sudo supervisorctl restart unopim-worker
+```
+
+**Installation complete!** Your UnoPim DAM is now ready to use.
+
+---
+
+## Post-Installation Setup
+
+### Start the Queue Worker
+
+To start the queue and execute actions such as job operations, run the following command:
+
+```bash
+php artisan queue:work
+```
+
+### Configure Queue with Process Manager
+
+If the `queue:work` command is configured to run through a process manager like Supervisor, restart the Supervisor service after installing the module to apply the changes:
+
+```bash
+sudo service supervisor restart
+```
+
+---
+
+**Your UnoPim DAM installation is complete and ready to use.**
\ No newline at end of file
diff --git a/docs/dam/linked-resources.md b/docs/dam/linked-resources.md
new file mode 100644
index 0000000..072e093
--- /dev/null
+++ b/docs/dam/linked-resources.md
@@ -0,0 +1,21 @@
+# Unopim DAM - Linked Resources Endpoints
+
+Comprehensive guide for managing linked resources via API
+
+---
+
+## GET - Get the Linked Resources
+
+Retrieve linked resources for a specific asset.
+
+**Endpoint:**
+```
+GET {{url}}/api/v1/rest/linked-resource/9
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
diff --git a/docs/dam/property.md b/docs/dam/property.md
new file mode 100644
index 0000000..30e81e6
--- /dev/null
+++ b/docs/dam/property.md
@@ -0,0 +1,109 @@
+# Unopim DAM - Properties Endpoints
+
+Comprehensive guide for managing properties via API
+
+---
+
+## GET - Get Property by ID
+
+Retrieve a specific property by its ID.
+
+**Endpoint:**
+```
+GET {{url}}/api/v1/rest/properties/3
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+---
+
+## PATCH - Update Property
+
+Update an existing property with new details.
+
+**Endpoint:**
+```
+PATCH {{url}}/api/v1/rest/properties/1
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Body (JSON):**
+```json
+{
+ "name": "New Property",
+ "value": "This is the New Property",
+}
+```
+
+**Parameters:**
+- `name` - Property name
+- `value` - Property value
+
+---
+
+## DELETE - Delete Property
+
+Delete a property from the system.
+
+**Endpoint:**
+```
+DELETE {{url}}/api/v1/rest/properties/2
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Body (JSON):**
+```json
+{
+ "comments": "Hello Who are you ??"
+}
+```
+
+---
+
+## POST - Create a Property
+
+Create a new property in the system.
+
+**Endpoint:**
+```
+POST {{url}}/api/v1/rest/properties/7
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Body (JSON):**
+```json
+{
+ "name": "Description",
+ "type": "Text",
+ "value": "This image showcases the new winter collection of jackets.",
+ "language": "en_US"
+}
+```
+
+**Parameters:**
+- `name` - Property name
+- `type` - Property type (value: Text)
+- `value` - Property value
+- `language` - Language code (value: en_US)
+
+---
+
diff --git a/docs/dam/setup.md b/docs/dam/setup.md
new file mode 100644
index 0000000..2b45ee8
--- /dev/null
+++ b/docs/dam/setup.md
@@ -0,0 +1,117 @@
+# UnoPim DAM Configuration Guide
+
+Setting Up User Permissions and Asset Attributes
+
+---
+
+## Set User Permissions
+
+User permissions control what actions each user can perform within UnoPim DAM.
+
+### Steps to Configure User Permissions
+
+1. Navigate to **Settings** → **Roles**
+
+
+
+
+
+2. Click **Create Role** to add a new role.
+
+
+
+3. Find and enable **DAM** in the permissions list & Set the permission level to **Custom**
+
+
+
+4. Select the specific DAM actions you want to allow for that user
+
+
+
+5. Save the changes to apply the new permissions
+
+
+
+**Tip:** Create different roles for different user types (e.g., Admin, Editor, Viewer) to manage access control effectively.
+
+---
+
+## Create Product Asset Attribute
+
+Product asset attributes allow you to attach digital assets to your products.
+
+### Steps to Create a Product Asset Attribute
+
+1. Navigate to **Catalog** → **Attributes**
+
+
+
+ This displays a list of all existing attributes in the system.
+
+2. Click **Create Attribute**
+
+
+
+3. Configure the attribute details:
+ - Set **Attribute Type** to **Asset**
+ - Add all required attribute information
+ - Provide a descriptive name and code
+
+
+
+4. Select the **Product Family** where you want to add the asset attribute
+
+
+
+5. Assign the asset attribute to the selected product family
+
+
+
+6. Save the attribute configuration
+
+
+
+**Once created:** The asset attribute will be available when creating or editing products in that product family.
+
+
+
+---
+
+## Create Category Asset Field
+
+Category asset fields allow you to attach digital assets to your product categories.
+
+### Steps to Create a Category Asset Field
+
+1. Navigate to **Catalog** → **Category Fields**
+
+
+
+ This displays a list of existing category fields.
+
+2. Click **Create Category field** to add a new category field
+
+
+
+3. Configure the category details:
+ - Set **Field Type** to **Asset**
+ - Add all required field information
+ - Provide a descriptive name and code
+
+
+
+4. Save the category configuration
+
+
+
+5. When creating categories, you will now find the new category asset field available for use
+
+
+
+
+
+**Once created:** You can use the category asset field to attach digital assets directly to your product categories.
+
+---
+
+**Your UnoPim DAM configuration is now complete with user permissions and asset management fields.**
\ No newline at end of file
diff --git a/docs/dam/sidebar.json b/docs/dam/sidebar.json
index e511b5c..5630e4a 100644
--- a/docs/dam/sidebar.json
+++ b/docs/dam/sidebar.json
@@ -1,8 +1,47 @@
[
{
- "text": "Dam",
+ "text": "DAM",
"items": [
- { "text": "Overview", "link": "/dam/" }
+ { "text": "Overview", "link": "/dam/" },
+ { "text": "Installation", "link": "/dam/installation" },
+ { "text": "Setup DAM", "link": "/dam/setup" }
+ ]
+ },
+
+ {
+ "text" : "Managing Directories and Assets",
+ "items": [
+ { "text": "Directory & Asset Management", "link": "/dam/directory-and-asset-management" },
+ {"text" : "Asset Products" , "link": "/dam/asset-products" },
+ {"text" : "Asset Categories" , "link": "/dam/asset-categories" }
+ ]
+ },
+
+ {
+ "text" : "Export Assets",
+ "items": [
+ {"text" : "Exporting Assets with Product & Categories" , "link": "/dam/export-assets" },
+ {"text" : "DAM Asset Migration to AWS S3" , "link": "/dam/dam-asset-migration-to-aws-s3" }
+ ]
+ },
+
+ {
+"text" : "DAM API Resources",
+"items": [
+ {"text" : "API Reference" , "link": "/dam/api-reference" },
+ {"text" : "Assets" , "link": "/dam/assets" },
+ {"text" : "Directories", "link": "/dam/directories" },
+ {"text" : "Comments", "link": "/dam/comments" },
+ {"text" : "Properties", "link": "/dam/property" },
+ {"text" : "Tag", "link": "/dam/tag" },
+ {"text" : "Linked Resources", "link": "/dam/linked-resources" }
+]
+ },
+
+ {
+ "text" : "Support",
+ "items": [
+ {"text" : "Contact Support" , "link": "/dam/contact-support" }
]
}
]
diff --git a/docs/dam/tag.md b/docs/dam/tag.md
new file mode 100644
index 0000000..f7ba80d
--- /dev/null
+++ b/docs/dam/tag.md
@@ -0,0 +1,81 @@
+# Unopim DAM - Tags Endpoints
+
+Comprehensive guide for managing tags via API
+
+---
+
+## GET - Get Tag by ID
+
+Retrieve a specific tag by its ID.
+
+**Endpoint:**
+```
+GET {{url}}/api/v1/rest/tags/1
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+---
+
+## POST - Create a Tag
+
+Create a new tag for a digital asset.
+
+**Endpoint:**
+```
+POST {{url}}/api/v1/rest/tags
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Body (JSON):**
+```json
+{
+ "tag": "Test",
+ "asset_id": 9
+}
+```
+
+**Parameters:**
+- `tag` - Tag name (value: Test)
+- `asset_id` - Asset ID to attach the tag (value: 9)
+
+---
+
+## DELETE - Remove a Tag
+
+Delete a tag from an asset.
+
+**Endpoint:**
+```
+DELETE {{url}}/api/v1/rest/tags
+```
+
+**Headers:**
+```
+Accept: application/json
+Authorization: Bearer {{token}}
+```
+
+**Body (JSON):**
+```json
+{
+ "tag": "Test",
+ "asset_id": 9
+}
+```
+
+**Parameters:**
+- `tag` - Tag name (value: Test)
+- `asset_id` - Asset ID (value: 9)
+
+
+
diff --git a/docs/index.md b/docs/index.md
index 27999d8..336fe0b 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -14,96 +14,100 @@ hero:
link: https://github.com/unopim
features:
- # - title: Shopify
- # details: Sync products, attributes, and inventory between Unopim and Shopify.
- # link: /shopify/
- # linkText: Read docs
- # - title: Magento 2
- # details: Push enriched product data from Unopim into Magento 2 stores.
- # link: /magento2/
- # linkText: Read docs
- # - title: Odoo ERP
- # details: Connect Unopim with Odoo ERP for end-to-end product lifecycle.
- # link: /odoo-erp/
- # linkText: Read docs
- # - title: BigCommerce
- # details: Push product data from Unopim into BigCommerce storefronts.
- # link: /bigcommerce/
- # linkText: Read docs
- # - title: Shopware 6
- # details: Sync product data between Unopim and Shopware 6.
- # link: /shopware6/
- # linkText: Read docs
- # - title: WooCommerce
- # details: Export and import product data with WooCommerce stores.
- # link: /woocommerce/
- # linkText: Read docs
- # - title: Bagisto
- # details: Connect Unopim with Bagisto stores.
- # link: /bagisto/
- # linkText: Read docs
- # - title: CS-Cart
- # details: Link CS-Cart stores with Unopim (coming soon).
- # link: /cs-cart/
- # linkText: Read docs
- # - title: PrestaShop
- # details: Link PrestaShop stores with Unopim (coming soon).
- # link: /prestashop/
- # linkText: Read docs
- # - title: Icecat
- # details: Connect PIM with the Icecat catalog.
- # link: /icecat/
- # linkText: Read docs
- # - title: XML Connector
- # details: Streamlined XML imports with validation and mapping.
- # link: /xml-connector/
- # linkText: Read docs
- # - title: AWS Integration
- # details: Cloud storage via Amazon S3.
- # link: /aws-integration/
- # linkText: Read docs
- title: AI Product Feed (OpenAI)
details: AI product feed for ChatGPT / OpenAI Search.
link: /ai-product-feed-openai/
linkText: Read docs
+ - title: Auto SKU Generator
+ details: Automatically generate unique, rule-based SKUs for products on creation.
+ link: /auto-sku-generator/
+ linkText: Read docs
+ - title: AWS Integration
+ details: Cloud storage via Amazon S3.
+ link: /aws-integration/
+ linkText: Read docs
+ - title: Bagisto
+ details: Connect Unopim with Bagisto stores.
+ link: /bagisto/
+ linkText: Read docs
+ - title: BigCommerce
+ details: Push product data from Unopim into BigCommerce storefronts.
+ link: /bigcommerce/
+ linkText: Read docs
+ - title: Azure Integration
+ details: Azure-based storage and media integration for UnoPim extensions.
+ link: /azure-integration/
+ linkText: Read docs
+ - title: Cloudflare R2 Integration
+ details: Offload product and category media to Cloudflare R2 storage with CDN delivery.
+ link: /cloudflare-r2-integration/
+ linkText: Read docs
+ - title: CS-Cart
+ details: Link CS-Cart stores with Unopim (coming soon).
+ link: /cs-cart/
+ linkText: Read docs
+ - title: DAM
+ details: Digital Asset Management for images and media.
+ link: /dam/
+ linkText: Read docs
+ - title: DeepL Translation
+ details: Automatically generate translations from one locale to other locales.
+ link: /deepl/
+ linkText: Read docs
+ # - title: Icecat
+ # details: Connect PIM with the Icecat catalog.
+ # link: /icecat/
+ # linkText: Read docs
# - title: Job Scheduler
# details: Automate import and export tasks.
# link: /job-scheduler/
# linkText: Read docs
- - title: Supplier Data Portal
- details: Manage supplier product data.
- link: /supplier-data-portal/
- linkText: Read docs
- # - title: Public Image URL
- # details: Link product media via public URLs.
- # link: /public-image-url/
- # linkText: Read docs
- title: Maker Checker Workflow
details: Role-based product and asset approvals.
link: /maker-checker-workflow/
linkText: Read docs
+ - title: Magento 2
+ details: Push enriched product data from Unopim into Magento 2 stores.
+ link: /magento2/
+ linkText: Read docs
+ - title: Odoo ERP
+ details: Connect Unopim with Odoo ERP for end-to-end product lifecycle.
+ link: /odoo-erp/
+ linkText: Read docs
# - title: PDF Generator
# details: Custom PDF templates with dynamic fields.
# link: /pdf-generator/
# linkText: Read docs
- # - title: DAM
- # details: Digital Asset Management for images and media.
- # link: /dam/
+ # - title: PrestaShop
+ # details: Link PrestaShop stores with Unopim (coming soon).
+ # link: /prestashop/
+ # linkText: Read docs
+ # - title: Public Image URL
+ # details: Link product media via public URLs.
+ # link: /public-image-url/
+ # linkText: Read docs
+ - title: Shopify
+ details: Sync products, attributes, and inventory between Unopim and Shopify.
+ link: /shopify/
+ linkText: Read docs
+ # - title: Shopware 6
+ # details: Sync product data between Unopim and Shopware 6.
+ # link: /shopware6/
# linkText: Read docs
# - title: Starter Pack
# details: Bundled starter pack for Unopim PIM.
# link: /starter-pack/
# linkText: Read docs
- - title: Auto SKU Generator
- details: Automatically generate unique, rule-based SKUs for products on creation.
- link: /auto-sku-generator/
- linkText: Read docs
- - title: DeepL Translation
- details: Automatically generate translations from one locale to other locales.
- link: /deepl/
+ - title: Supplier Data Portal
+ details: Manage supplier product data.
+ link: /supplier-data-portal/
linkText: Read docs
- - title: Cloudflare R2 Integration
- details: Offload product and category media to Cloudflare R2 storage with CDN delivery.
- link: /cloudflare-r2-integration/
+ - title: WooCommerce
+ details: Export and import product data with WooCommerce stores.
+ link: /woocommerce/
linkText: Read docs
+ # - title: XML Connector
+ # details: Streamlined XML imports with validation and mapping.
+ # link: /xml-connector/
+ # linkText: Read docs
---
diff --git a/docs/magento2/assets/add-cred.png b/docs/magento2/assets/add-cred.png
new file mode 100644
index 0000000..427a005
Binary files /dev/null and b/docs/magento2/assets/add-cred.png differ
diff --git a/docs/magento2/assets/cred.png b/docs/magento2/assets/cred.png
new file mode 100644
index 0000000..25c83ed
Binary files /dev/null and b/docs/magento2/assets/cred.png differ
diff --git a/docs/magento2/assets/export/attribute-export.png b/docs/magento2/assets/export/attribute-export.png
new file mode 100644
index 0000000..141ca63
Binary files /dev/null and b/docs/magento2/assets/export/attribute-export.png differ
diff --git a/docs/magento2/assets/export/attribute-set.png b/docs/magento2/assets/export/attribute-set.png
new file mode 100644
index 0000000..808a8d4
Binary files /dev/null and b/docs/magento2/assets/export/attribute-set.png differ
diff --git a/docs/magento2/assets/export/create-exports.png b/docs/magento2/assets/export/create-exports.png
new file mode 100644
index 0000000..0bf8ebb
Binary files /dev/null and b/docs/magento2/assets/export/create-exports.png differ
diff --git a/docs/magento2/assets/export/data-transfer.png b/docs/magento2/assets/export/data-transfer.png
new file mode 100644
index 0000000..5d37712
Binary files /dev/null and b/docs/magento2/assets/export/data-transfer.png differ
diff --git a/docs/magento2/assets/export/export-category.png b/docs/magento2/assets/export/export-category.png
new file mode 100644
index 0000000..11ed028
Binary files /dev/null and b/docs/magento2/assets/export/export-category.png differ
diff --git a/docs/magento2/assets/export/magento-product.png b/docs/magento2/assets/export/magento-product.png
new file mode 100644
index 0000000..bc50d0d
Binary files /dev/null and b/docs/magento2/assets/export/magento-product.png differ
diff --git a/docs/magento2/assets/import/attribute-group.png b/docs/magento2/assets/import/attribute-group.png
new file mode 100644
index 0000000..4a2a3ba
Binary files /dev/null and b/docs/magento2/assets/import/attribute-group.png differ
diff --git a/docs/magento2/assets/import/attribute-import-now.png b/docs/magento2/assets/import/attribute-import-now.png
new file mode 100644
index 0000000..ba626fe
Binary files /dev/null and b/docs/magento2/assets/import/attribute-import-now.png differ
diff --git a/docs/magento2/assets/import/attribute-import.png b/docs/magento2/assets/import/attribute-import.png
new file mode 100644
index 0000000..2973731
Binary files /dev/null and b/docs/magento2/assets/import/attribute-import.png differ
diff --git a/docs/magento2/assets/import/attribute-set.png b/docs/magento2/assets/import/attribute-set.png
new file mode 100644
index 0000000..6d10442
Binary files /dev/null and b/docs/magento2/assets/import/attribute-set.png differ
diff --git a/docs/magento2/assets/import/category-attribute-import-now.png b/docs/magento2/assets/import/category-attribute-import-now.png
new file mode 100644
index 0000000..f9ea263
Binary files /dev/null and b/docs/magento2/assets/import/category-attribute-import-now.png differ
diff --git a/docs/magento2/assets/import/category-attribute.png b/docs/magento2/assets/import/category-attribute.png
new file mode 100644
index 0000000..609ebf9
Binary files /dev/null and b/docs/magento2/assets/import/category-attribute.png differ
diff --git a/docs/magento2/assets/import/category-import-now.png b/docs/magento2/assets/import/category-import-now.png
new file mode 100644
index 0000000..1989086
Binary files /dev/null and b/docs/magento2/assets/import/category-import-now.png differ
diff --git a/docs/magento2/assets/import/category-import.png b/docs/magento2/assets/import/category-import.png
new file mode 100644
index 0000000..46c5afb
Binary files /dev/null and b/docs/magento2/assets/import/category-import.png differ
diff --git a/docs/magento2/assets/import/create-imports.png b/docs/magento2/assets/import/create-imports.png
new file mode 100644
index 0000000..de003e4
Binary files /dev/null and b/docs/magento2/assets/import/create-imports.png differ
diff --git a/docs/magento2/assets/import/data-transfer.png b/docs/magento2/assets/import/data-transfer.png
new file mode 100644
index 0000000..4f852cd
Binary files /dev/null and b/docs/magento2/assets/import/data-transfer.png differ
diff --git a/docs/magento2/assets/import/import-category.png b/docs/magento2/assets/import/import-category.png
new file mode 100644
index 0000000..049decc
Binary files /dev/null and b/docs/magento2/assets/import/import-category.png differ
diff --git a/docs/magento2/assets/import/modal-product-now.png b/docs/magento2/assets/import/modal-product-now.png
new file mode 100644
index 0000000..e501ee4
Binary files /dev/null and b/docs/magento2/assets/import/modal-product-now.png differ
diff --git a/docs/magento2/assets/import/modal-product.png b/docs/magento2/assets/import/modal-product.png
new file mode 100644
index 0000000..d03e76b
Binary files /dev/null and b/docs/magento2/assets/import/modal-product.png differ
diff --git a/docs/magento2/assets/import/product-association-import-now.png b/docs/magento2/assets/import/product-association-import-now.png
new file mode 100644
index 0000000..8c61501
Binary files /dev/null and b/docs/magento2/assets/import/product-association-import-now.png differ
diff --git a/docs/magento2/assets/import/product-association.png b/docs/magento2/assets/import/product-association.png
new file mode 100644
index 0000000..afa04f0
Binary files /dev/null and b/docs/magento2/assets/import/product-association.png differ
diff --git a/docs/magento2/assets/import/product-attribute.png b/docs/magento2/assets/import/product-attribute.png
new file mode 100644
index 0000000..0d328b0
Binary files /dev/null and b/docs/magento2/assets/import/product-attribute.png differ
diff --git a/docs/magento2/assets/import/shopview.png b/docs/magento2/assets/import/shopview.png
new file mode 100644
index 0000000..9a78eac
Binary files /dev/null and b/docs/magento2/assets/import/shopview.png differ
diff --git a/docs/magento2/assets/import/shoview-import-now.png b/docs/magento2/assets/import/shoview-import-now.png
new file mode 100644
index 0000000..54c7f68
Binary files /dev/null and b/docs/magento2/assets/import/shoview-import-now.png differ
diff --git a/docs/magento2/assets/import/simple-product-import-now.png b/docs/magento2/assets/import/simple-product-import-now.png
new file mode 100644
index 0000000..a730fa0
Binary files /dev/null and b/docs/magento2/assets/import/simple-product-import-now.png differ
diff --git a/docs/magento2/assets/import/simple-product.png b/docs/magento2/assets/import/simple-product.png
new file mode 100644
index 0000000..c3c4e0d
Binary files /dev/null and b/docs/magento2/assets/import/simple-product.png differ
diff --git a/docs/magento2/assets/import/storeview-import-now.png b/docs/magento2/assets/import/storeview-import-now.png
new file mode 100644
index 0000000..61bbf35
Binary files /dev/null and b/docs/magento2/assets/import/storeview-import-now.png differ
diff --git a/docs/magento2/assets/import/storeview.png b/docs/magento2/assets/import/storeview.png
new file mode 100644
index 0000000..0965c7a
Binary files /dev/null and b/docs/magento2/assets/import/storeview.png differ
diff --git a/docs/magento2/assets/intro-banner.png b/docs/magento2/assets/intro-banner.png
new file mode 100644
index 0000000..a43cb89
Binary files /dev/null and b/docs/magento2/assets/intro-banner.png differ
diff --git a/docs/magento2/assets/login.png b/docs/magento2/assets/login.png
new file mode 100644
index 0000000..b22f490
Binary files /dev/null and b/docs/magento2/assets/login.png differ
diff --git a/docs/magento2/assets/mapping/additional-mapping.png b/docs/magento2/assets/mapping/additional-mapping.png
new file mode 100644
index 0000000..289c5f7
Binary files /dev/null and b/docs/magento2/assets/mapping/additional-mapping.png differ
diff --git a/docs/magento2/assets/mapping/attribute-mapping.png b/docs/magento2/assets/mapping/attribute-mapping.png
new file mode 100644
index 0000000..93343e1
Binary files /dev/null and b/docs/magento2/assets/mapping/attribute-mapping.png differ
diff --git a/docs/magento2/assets/mapping/category-maping.png b/docs/magento2/assets/mapping/category-maping.png
new file mode 100644
index 0000000..7ca046e
Binary files /dev/null and b/docs/magento2/assets/mapping/category-maping.png differ
diff --git a/docs/magento2/assets/mapping/image-mapping.png b/docs/magento2/assets/mapping/image-mapping.png
new file mode 100644
index 0000000..5b9bf52
Binary files /dev/null and b/docs/magento2/assets/mapping/image-mapping.png differ
diff --git a/docs/magento2/assets/mapping/mapping.png b/docs/magento2/assets/mapping/mapping.png
new file mode 100644
index 0000000..d51b6f5
Binary files /dev/null and b/docs/magento2/assets/mapping/mapping.png differ
diff --git a/docs/magento2/assets/mapping/video-mapping.png b/docs/magento2/assets/mapping/video-mapping.png
new file mode 100644
index 0000000..4827c66
Binary files /dev/null and b/docs/magento2/assets/mapping/video-mapping.png differ
diff --git a/docs/magento2/attribute-mapping.md b/docs/magento2/attribute-mapping.md
new file mode 100644
index 0000000..a169043
--- /dev/null
+++ b/docs/magento2/attribute-mapping.md
@@ -0,0 +1,88 @@
+# Attribute Mapping
+
+Attribute mapping lets you connect Magento 2 product fields with the correct UnoPim product attributes. This ensures that product data is exported from UnoPim into the expected Magento fields during synchronization.
+
+
+
+## Why Attribute Mapping Is Important
+
+Magento expects product information in specific fields such as `name`, `price`, `description`, and `sku`. In UnoPim, these values may exist under different attributes depending on how your product data is structured.
+
+With attribute mapping, you can decide which UnoPim attribute should be used for each Magento product field. This helps keep exported product data accurate and consistent.
+
+## How the Mapping Screen Works
+
+In the **Attribute Mapping** tab:
+
+- The **left side** shows the Magento 2 product fields.
+- The **right side** shows the available UnoPim attributes.
+
+
+
+To complete the setup, select the UnoPim attribute that matches each Magento field you want to export.
+
+## Default Magento Fields Available for Mapping
+
+By default, the following Magento 2 product fields can be mapped with UnoPim attributes:
+
+- **Enable Product `[status]`**: Controls whether the product is enabled or disabled in Magento.
+- **SKU `[sku]`**: Unique product identifier.
+- **Name `[name]`**: Product name shown on the storefront.
+- **Price `[price]`**: Standard selling price of the product.
+- **Description `[description]`**: Full product description.
+- **Short Description `[short_description]`**: Short summary displayed on the product page.
+- **Weight `[weight]`**: Product weight used for shipping and logistics.
+- **Product Has Weight `[product_has_weight]`**: Defines whether the product should be treated as a physical product with weight.
+- **Tax Class `[tax_class_id]`**: Tax class assigned to the product.
+- **Visibility `[visibility]`**: Controls where the product appears in Magento.
+- **Quantity `[qty]`**: Available stock quantity.
+- **Stock Status `[is_in_stock]`**: Indicates whether the product is in stock.
+- **URL Key `[url_key]`**: SEO-friendly product URL key.
+- **Meta Title `[meta_title]`**: SEO meta title for the product page.
+- **Meta Keyword `[meta_keyword]`**: SEO keywords for the product.
+- **Meta Description `[meta_description]`**: SEO meta description for the product page.
+- **Cost `[cost]`**: Internal product cost.
+- **Special Price `[special_price]`**: Promotional price.
+- **Special Price From `[special_from_date]`**: Start date for the special price.
+- **Special Price To `[special_to_date]`**: End date for the special price.
+- **Set Product as New From `[news_from_date]`**: Start date for the “new product” label.
+- **Set Product as New To `[news_to_date]`**: End date for the “new product” label.
+- **Country of Manufacture `[country_of_manufacture]`**: Product manufacturing country.
+- **Websites `[product_websites]`**: Magento websites where the product should be assigned.
+- **Layout `[page_layout]`**: Page layout used for the product page.
+- **Display Product Options In `[options_container]`**: Defines where product options are displayed.
+- **Schedule Update From `[custom_design_from]`**: Start date for a custom design update.
+- **Schedule Update To `[custom_design_to]`**: End date for a custom design update.
+- **New Theme `[custom_design]`**: Custom theme applied to the product page.
+- **New Layout `[custom_layout]`**: Custom layout update for the product page.
+
+## Additional Field Mappings
+
+This section allows you to map custom Magento product fields with UnoPim attributes.
+
+If you want to export more product information than the default Magento fields, you can add extra Magento field codes and connect them to the appropriate UnoPim attributes. This is useful when your Magento store already has custom product attributes that should receive data from UnoPim during export.
+
+
+
+### Variant-Specific Attribute Mapping
+
+Additional field mappings are also important for configurable or variant products.
+
+If you need to export variant-specific values such as **color** or **size**, select the corresponding UnoPim attributes or enter the Magento field codes that already exist in your Magento store. This ensures that each variant carries the correct attribute values when the product is exported.
+
+For example:
+
+- Map **Color** to the UnoPim color attribute.
+- Map **Size** to the UnoPim size attribute.
+
+This setup helps Magento identify and store the correct variation data for each child product.
+
+## Best Practice
+
+Review each field carefully before saving the mapping. Important fields such as `sku`, `name`, `price`, `status`, and `visibility` should always be mapped correctly to avoid incomplete or incorrect exports.
+
+If a Magento field should always use the same value, make sure the connected UnoPim attribute consistently stores that value for all products being exported.
+
+## Result
+
+Once the mapping is configured, UnoPim uses these assignments while exporting products to Magento 2. This helps make sure that the right product data is sent to the right Magento fields.
diff --git a/docs/magento2/category-mapping.md b/docs/magento2/category-mapping.md
new file mode 100644
index 0000000..30a0f56
--- /dev/null
+++ b/docs/magento2/category-mapping.md
@@ -0,0 +1,43 @@
+# Category Mapping
+
+The **Category Mapping** page allows you to manually map UnoPim category fields with Magento 2 category fields so the correct values are exported during category synchronization.
+
+This is useful when you want more control over how category data is transferred from UnoPim to Magento.
+
+
+
+## How Category Mapping Works
+
+On the **Category Mapping** page, you can connect UnoPim category attributes to the corresponding Magento category fields.
+
+This helps ensure that category information is exported into the right Magento fields based on your store requirements.
+
+## Default Magento Behavior
+
+If no category mapping is configured, UnoPim follows Magento’s default behavior.
+
+In that case, Magento categories are created using only the basic category information:
+
+- **Name**
+- **URL Key**
+- **Enabled Status**
+
+This default behavior is enough for basic category creation, but it does not cover additional category fields.
+
+## Additional Category Field Mapping
+
+If your Magento store requires more category information, you can map additional UnoPim category fields on this page.
+
+This allows you to export custom or extended category data beyond the default Magento fields.
+
+Use this option when you need more detailed category synchronization for your Magento catalog structure.
+
+## Best Practice
+
+If you only need basic Magento category creation, the default behavior may be enough.
+
+If your categories include extra content or custom field requirements, configure manual mapping so Magento receives the exact values you want to export.
+
+## Result
+
+Once the category mapping is configured, UnoPim uses these field assignments while exporting categories to Magento 2. This helps ensure the correct category values are transferred based on your mapping setup.
diff --git a/docs/magento2/contact-support.md b/docs/magento2/contact-support.md
new file mode 100644
index 0000000..e8ba077
--- /dev/null
+++ b/docs/magento2/contact-support.md
@@ -0,0 +1,21 @@
+# Contact & Support
+
+That wraps up the user guide for the **UnoPim Magento 2 Connector** extension. We hope this documentation helps you set up and use the connector in UnoPim with confidence.
+
+If you have any questions, run into issues, or need help with the extension, the Webkul support team is available to assist.
+
+## Get in Touch
+
+**Email**
+Reach out to us at [support@webkul.com](mailto:support@webkul.com) and our team will get back to you as soon as possible.
+
+**HelpDesk**
+You can also raise a ticket through the [Webkul HelpDesk System](https://webkul.uvdesk.com/en/).
+
+This is useful if you want to:
+
+- report an issue,
+- ask a setup or migration question,
+- track the status of your support request.
+
+We are happy to help whenever needed.
diff --git a/docs/magento2/export-attribute-set.md b/docs/magento2/export-attribute-set.md
new file mode 100644
index 0000000..31e4c14
--- /dev/null
+++ b/docs/magento2/export-attribute-set.md
@@ -0,0 +1,47 @@
+# Export Magento Attribute Set
+
+The **Magento Attribute Set** export job allows you to export UnoPim attribute families to Magento 2 as attribute sets.
+
+This export automatically handles attribute groups and assigned attributes so the same family structure can be created in Magento as it exists in UnoPim.
+
+If custom attributes are added to a new group in UnoPim, that group is also exported to Magento together with the assigned attributes.
+
+## What This Export Supports
+
+This job helps keep UnoPim attribute families and Magento attribute sets synchronized by:
+
+- Creating matching attribute sets in Magento
+- Creating the same attribute groups found in UnoPim
+- Assigning the correct attributes to those groups
+
+## Important Note
+
+You can export any newly created attribute family based on the selection made in the **Credentials** section.
+
+Make sure the correct Magento connection is configured before creating the export job.
+
+## How to Export Attribute Families
+
+To export UnoPim attribute families to Magento:
+
+1. Go to **Data Transfer > Exports > Create Export Profile**.
+
+
+
+
+
+2. Select **Magento Attribute Set** as the job type.
+3. Enter a unique code for the export job.
+4. Use the available filters such as **Magento Store URL** and **UnoPim Attribute Families**.
+
+
+
+5. Click **Save Export**.
+
+After the profile is saved, you can run the export using that configuration.
+
+## After Export Completion
+
+Once the execution process is completed, you can review the exported attribute family status from the export job details.
+
+This helps confirm whether the selected UnoPim attribute families were successfully exported to Magento 2.
diff --git a/docs/magento2/export-attribute.md b/docs/magento2/export-attribute.md
new file mode 100644
index 0000000..987791f
--- /dev/null
+++ b/docs/magento2/export-attribute.md
@@ -0,0 +1,42 @@
+# Export Magento attribute
+
+Use this export job when you want to export additional mapped attributes from UnoPim to Magento 2.
+
+To begin, go to **Data Transfer > Exports > Create Export Profile**.
+
+
+
+
+Then select **Magento Attribute** as the export type.
+
+
+## Filters Available for Attribute Export
+
+While creating the export job, you can use the following filters:
+
+- **Magento Store URL**
+- **Magento Store View**
+- **Additional Attributes**
+
+These filters help you control which mapped attributes should be exported and to which Magento store view the data should be sent.
+
+## How to Create the Export Job
+
+1. Create a new export profile.
+
+
+
+2. Select **Magento Attribute** as the job type & enter a unique code for the export job.
+
+
+4. Select the required filters such as **Magento Store URL**, **Magento Store View**, and **Additional Attributes**.
+
+
+
+5. Click **Save Export**.
+
+After saving the profile, you can run the attribute export based on the saved configuration.
+
+## Result
+
+Once the export is executed, the selected additional mapped attributes are exported from UnoPim to Magento 2 according to the filters defined in the export profile.
diff --git a/docs/magento2/export-category.md b/docs/magento2/export-category.md
new file mode 100644
index 0000000..eaf9047
--- /dev/null
+++ b/docs/magento2/export-category.md
@@ -0,0 +1,49 @@
+# Export Category
+
+To export product-related data from UnoPim to Magento 2, you first need to create an export job profile.
+
+Go to **Data Transfer > Exports > Create Export Profile** to create a new export job.
+
+
+
+
+
+## Supported Magento 2 Export Job Types
+
+The UnoPim Magento 2 Connector supports the following export job types:
+
+- **Magento Category**
+- **Magento Attribute**
+- **Magento Attribute Set**
+- **Magento Product** `(includes simple and configurable products)`
+
+Use the export type that matches the data you want to send from UnoPim to Magento 2.
+
+## Exporting Categories to Magento 2
+
+To export categories from UnoPim to Magento, create a new export profile and select **Magento Category** as the job type.
+
+After that, enter a unique code for the job profile and click **Save Export**.
+
+Then click **Export Now** to start the category export process.
+
+
+
+## Important Note
+
+All categories, including multi-level subcategories, can be exported.
+
+You can export any category available in your UnoPim catalog. However, **channel-based category export is not supported** for this Magento 2 connector.
+
+## After Running the Export
+
+Wait a few seconds for the export process to complete.
+
+Once the job finishes, you can view:
+
+- The number of categories exported from UnoPim to Magento 2
+- The export job status, such as **Completed**
+
+## View Exported Categories in Magento
+
+After the export is completed, the categories available in UnoPim will also be available in the selected Magento 2 store, based on the export configuration.
diff --git a/docs/magento2/export-product.md b/docs/magento2/export-product.md
new file mode 100644
index 0000000..83e2b70
--- /dev/null
+++ b/docs/magento2/export-product.md
@@ -0,0 +1,66 @@
+# Export Magento Product
+
+Use the **Magento Product** export job to export products from UnoPim to Magento 2, including both **simple products** and **configurable products**.
+
+## How to Create the Product Export Job
+
+To export products, create a new export profile and select **Magento Product** as the job type.
+
+Then:
+
+1. Enter a unique code for the export job.
+
+
+
+2. Select the Magento store view if you have multiple store views.
+3. Apply the filters that match your export requirement.
+
+
+
+4. Click **Save Export** to save the job profile.
+
+## Available Product Export Filters
+
+The Magento product export job supports filters such as:
+
+- **Product Types**
+- **Attribute Families**
+- **Product Status**
+- **With Media** toggle
+
+Use these filters to export only the products that match your use case.
+
+## Export Specific Products by SKU
+
+If you want to export a specific product, enter its **SKU** in the product export filter.
+
+This allows you to export only the selected product instead of sending the full product catalog.
+
+After saving the export profile, click **Export Now** to start the product export process.
+
+## After Export Completion
+
+Once the execution process is completed, you can review the export details, including:
+
+- **Product Types**
+- **Attribute Families**
+- **Product Status**
+- **Media**
+- **Exported Product SKU**
+- **Job Status**
+
+This helps confirm what was exported from UnoPim to Magento 2 and whether the job completed successfully.
+
+## Download Log
+
+After every job execution, you can review the export log using the **Download Log** option.
+
+This is especially useful when:
+
+- The job is stuck
+- The job remains pending
+- `0` records are created
+- Some records are skipped
+- No data is exported to Magento
+
+The downloaded log helps you identify the issue in more detail and makes troubleshooting easier.
diff --git a/docs/magento2/image-mapping.md b/docs/magento2/image-mapping.md
new file mode 100644
index 0000000..49415a2
--- /dev/null
+++ b/docs/magento2/image-mapping.md
@@ -0,0 +1,50 @@
+# Image Mappings
+
+Image mapping allows you to decide which UnoPim image attributes should be exported to Magento 2 and how those images should be used on the product page.
+
+This helps ensure that product gallery images, role-based images, and optional image-related values are sent correctly during export.
+
+
+
+## Image Mapping Options
+
+### Image Attributes `(Required)`
+
+Select the UnoPim image attributes that should be exported to Magento 2.
+
+The selected image attributes will be visible in Magento as **product gallery images**.
+
+### Alt Text Attribute `(Optional)`
+
+You can also map an attribute for image alt text.
+
+If image labels or related text values are not being exported directly from UnoPim, map the attribute whose value you want Magento to display as the image text.
+
+### Image Role `(Optional)`
+
+You can define which images should be used for Magento’s main product image roles.
+
+Map the image role based on how you want the exported image to appear in Magento, such as:
+
+- **Base Image**
+- **Small Image**
+- **Swatch Image**
+- **Thumbnail Image**
+
+This helps Magento assign the correct image to the correct display area.
+
+### Hide from Product Page `(Optional)`
+
+Admins can enable or disable this option to control whether the mapped images should be hidden from the Magento product page.
+
+Use this when certain exported images are needed for data sync but should not be displayed on the storefront product page.
+
+## Best Practice
+
+Always map at least one valid UnoPim image attribute so Magento receives product gallery images properly.
+
+If you are using different image types for storefront display, make sure the correct role is assigned for base, small, swatch, and thumbnail usage.
+
+## Result
+
+Once the image mapping is saved, UnoPim will use these settings while exporting product images to Magento 2. This ensures the right images appear in the gallery and in the correct Magento image roles.
diff --git a/docs/magento2/import-attribute.md b/docs/magento2/import-attribute.md
new file mode 100644
index 0000000..cbecda2
--- /dev/null
+++ b/docs/magento2/import-attribute.md
@@ -0,0 +1,152 @@
+# Import Magento Attributes
+
+The Magento 2 connector provides several import jobs for bringing attribute-related data from Magento 2 into UnoPim:
+
+- **Magento Attribute Import** — imports product attributes from Magento into UnoPim.
+- **Magento Attribute Set Import** — imports Magento attribute sets into UnoPim as attribute families.
+- **Magento Attribute Group Import** — imports attribute groups from Magento attribute sets into UnoPim.
+- **Magento Attribute Mapping Import** — imports the attribute mapping configuration from Magento into UnoPim.
+
+These jobs help you avoid manually re-creating your entire Magento attribute structure inside UnoPim.
+
+---
+
+## Part 1: Import Magento Attributes
+
+### What This Job Does
+
+This job reads all product attributes from your Magento 2 store and creates the corresponding attributes in UnoPim. Attribute types are automatically resolved and attribute options are also imported for select and multiselect attributes.
+
+### How to Create the Import Job
+
+Go to **Data Transfer > Imports > Create Import Profile**.
+
+
+
+
+
+Select **Magento Attribute Import** as the import type.
+
+Enter a unique code and a recognizable name, then save.
+
+
+
+### Available Filters
+
+| Filter | Required | Description |
+|---|---|---|
+| **Credential** | Yes | Select the Magento 2 credential to import attributes from. |
+| **Store Views** | No | Select a store view to import localized attribute labels. |
+
+### What Gets Imported
+
+- **Attribute code** — unique identifier.
+- **Attribute type** — mapped to the closest UnoPim attribute type.
+- **Attribute labels** — localized labels from the selected store view.
+- **Attribute options** — all available options for select and multiselect attributes.
+
+### Attribute Type Mapping
+
+| Magento Type | UnoPim Type |
+|---|---|
+| `text` | Text |
+| `textarea` | Textarea |
+| `select` | Select |
+| `multiselect` | Multiselect |
+| `boolean` | Boolean |
+| `price` | Price |
+| `date` | Date |
+| `media_image` | Image |
+
+---
+
+## Part 2: Import Magento Attribute Sets
+
+### What This Job Does
+
+This job imports Magento 2 attribute sets into UnoPim as **attribute families**. Each attribute set from Magento becomes a family in UnoPim, complete with its groups and attribute assignments.
+
+### How to Create the Import Job
+
+Select **Magento Attribute Set Import** as the import type when creating the job profile.
+
+
+
+### Available Filters
+
+| Filter | Required | Description |
+|---|---|---|
+| **Credential** | Yes | Select the Magento 2 credential. |
+| **Store Views** | No | Select a store view to import localized group labels. |
+
+### What Gets Imported
+
+- **Attribute family name** — created in UnoPim from the Magento attribute set name.
+- **Attribute groups** — each group inside the Magento attribute set is created as a group in the UnoPim family.
+- **Attribute assignments** — attributes are assigned to their correct groups inside the family.
+- If no matching attribute group is found for an attribute, it is automatically placed in an **Others** group.
+
+---
+
+## Part 3: Import Magento Attribute Groups
+
+### What This Job Does
+
+This job imports attribute groups from Magento 2 attribute sets into UnoPim. You can use this to sync attribute group structure separately from a full attribute set import.
+
+### How to Create the Import Job
+
+Select **Magento Attribute Group Import** as the import type when creating the job profile.
+
+
+
+### Available Filters
+
+| Filter | Required | Description |
+|---|---|---|
+| **Credential** | Yes | Select the Magento 2 credential. |
+| **Store Views** | No | Select a store view for localized group names. |
+
+### What Gets Imported
+
+- **Group name** — the name of each attribute group.
+- **Group assignments** — which attributes belong to each group.
+
+---
+
+## Part 4: Import Product Attribute Mapping
+
+### What This Job Does
+
+This job imports the attribute mapping configuration that links Magento product fields to UnoPim attributes. Running this job helps pre-populate the attribute mapping in UnoPim so you don't need to configure it manually from scratch.
+
+### How to Create the Import Job
+
+Select **Magento Product Attribute Mapping Import** as the import type when creating the job profile.
+
+
+
+### Available Filters
+
+| Filter | Required | Description |
+|---|---|---|
+| **Credential** | Yes | Select the Magento 2 credential. |
+| **Store Views** | No | Select a store view. |
+
+### What Gets Imported
+
+- Mapping between Magento field codes and UnoPim attribute codes.
+- This is used to pre-configure the **Attribute Mapping** tab in the connector.
+
+---
+
+## Recommended Import Order
+
+For the best results when importing attribute structure from Magento into UnoPim:
+
+1. **Import Attributes** first.
+2. **Import Attribute Groups** second.
+3. **Import Attribute Sets** third.
+4. **Import Attribute Mapping** last (optional, to pre-populate mappings).
+
+Following this order ensures that attributes exist before they are assigned to groups and families.
diff --git a/docs/magento2/import-category.md b/docs/magento2/import-category.md
new file mode 100644
index 0000000..17513fb
--- /dev/null
+++ b/docs/magento2/import-category.md
@@ -0,0 +1,119 @@
+# Import Magento Category & Category Attribute
+
+The Magento 2 connector provides two import jobs for bringing category-related data from your Magento 2 store into UnoPim:
+
+- **Magento Category Import** — imports categories from Magento 2 into UnoPim.
+- **Magento Category Attribute Import** — imports category attributes from Magento 2 into UnoPim.
+
+These jobs are useful when you already have a well-structured category catalog in Magento and want to bring it into UnoPim without manual re-entry.
+
+---
+
+## Part 1: Import Magento Categories
+
+### What This Job Does
+
+This job reads the category tree from your Magento 2 store and creates the corresponding categories in UnoPim. It preserves the category hierarchy, localized names, and category attributes.
+
+### How to Create the Import Job
+
+Go to **Data Transfer > Imports > Create Import Profile**.
+
+
+
+
+
+Select **Magento Category Import** as the import type.
+
+Enter a unique code and a recognizable name for this job, then save it.
+
+
+
+### Available Filters
+
+| Filter | Required | Description |
+|---|---|---|
+| **Credential** | Yes | Select the Magento 2 store credential to import categories from. |
+| **Store Views** | No | Select a Magento store view. This controls which locale-specific category names and data are imported. |
+
+### What Gets Imported
+
+- **Category name** — pulled from the selected store view.
+- **Category hierarchy** — parent-child relationships are preserved in UnoPim.
+- **URL key** — imported from Magento where available.
+- **Enabled status** — active and inactive categories are imported.
+- **Locale-specific values** — category names are imported using the store view mapping configured in your credentials.
+- **Category attributes** — common and locale-specific category field values are imported.
+
+### Running the Import
+
+Click **Import Now** to start the category import process.
+
+
+
+After the job completes, check the import summary to see:
+- How many categories were created or updated.
+- Any categories that were skipped or had errors.
+
+### After the Import
+
+Log in to UnoPim and go to the **Catalog > Categories** section.
+
+You should see the Magento categories now available in UnoPim with their correct hierarchy and names.
+
+---
+
+## Part 2: Import Magento Category Attributes
+
+### What This Job Does
+
+This job imports the category attributes defined in your Magento 2 store into UnoPim as category fields. This allows UnoPim to store the same category-level data that Magento uses.
+
+### How to Create the Import Job
+
+Go to **Data Transfer > Imports > Create Import Profile**.
+
+
+
+
+
+Select **Magento Category Attribute Import** as the import type.
+
+Enter a unique code and a name for the job, then save it.
+
+
+
+### Available Filters
+
+| Filter | Required | Description |
+|---|---|---|
+| **Credential** | Yes | Select the Magento 2 store credential to import category attributes from. |
+| **Store Views** | No | Select a Magento store view to determine which locale-specific labels are imported with the attributes. |
+
+### What Gets Imported
+
+- **Attribute code** — the unique code for each category attribute.
+- **Attribute label** — the display name from the selected store view.
+- **Attribute type** — resolved to the closest matching UnoPim field type.
+- **Attribute options** — for select-type attributes, available options are also imported.
+
+### Running the Import
+
+Click **Import Now** to start the process.
+
+
+
+Once complete, review the import summary for the number of category attributes created or updated.
+
+### After the Import
+
+Go to **Catalog > Category Fields** in UnoPim. You should see the category attributes from Magento available in UnoPim and ready to be used on your categories.
+
+---
+
+## Recommended Import Order
+
+For the best results when setting up your UnoPim catalog from Magento:
+
+1. Import **Category Attributes** first so UnoPim knows about the available category fields.
+2. Import **Categories** second so category data can be stored against those fields correctly.
diff --git a/docs/magento2/import-product.md b/docs/magento2/import-product.md
new file mode 100644
index 0000000..ff2079f
--- /dev/null
+++ b/docs/magento2/import-product.md
@@ -0,0 +1,183 @@
+# Import Magento Product
+
+The Magento 2 connector provides three import jobs for bringing product data from Magento 2 into UnoPim:
+
+- **Magento Simple Product Import** — imports simple products and their attribute values.
+- **Magento Configurable Product Import** — imports configurable products with their child variants.
+- **Magento Product Association Import** — imports product-to-product relationships (related, up-sell, cross-sell).
+
+These jobs are useful when you already have a populated Magento catalog and want to enrich it inside UnoPim — better descriptions, more locales, richer attributes — before pushing data back out.
+
+---
+
+## Part 1: Import Simple Products
+
+### What This Job Does
+
+This job reads simple products from your Magento 2 store and creates the corresponding products in UnoPim. Attribute values are written into UnoPim attributes via the mapping you configured in [Attribute Mapping](./attribute-mapping), and media is downloaded into UnoPim.
+
+### How to Create the Import Job
+
+Go to **Data Transfer > Imports > Create Import Profile**.
+
+
+
+
+
+Select **Magento Simple Product Import** as the import type.
+
+
+Enter a unique code and a recognizable name for this job, then save it.
+
+
+
+### Available Filters
+
+| Filter | Required | Description |
+|---|---|---|
+| **Credential** | Yes | Select the Magento 2 credential to import from. |
+| **Store Views** | Yes | Select the Magento store view whose locale-specific values will be imported. |
+| **SKU (Comma Separated)** | No | Restrict the import to a specific list of SKUs. Leave blank to import every simple product in the store view. |
+
+### What Gets Imported
+
+- **SKU** — product unique identifier in UnoPim.
+- **Attribute family** — resolved from the Magento attribute set via the imported attribute set mapping.
+- **Attribute values** — every attribute exposed by the API is written through the [Attribute Mapping](./attribute-mapping).
+- **Categories** — the Magento categories the product belongs to (categories must already exist in UnoPim — run [Import Category](./import-category) first).
+- **Status** — Enabled / Disabled.
+- **Media** — images and gallery values are downloaded into UnoPim media (see [Image Mapping](./image-mapping) for which attributes receive what).
+
+### Running the Import
+
+Click **Import Now** to start the simple product import.
+
+
+
+After the job completes, check the import summary to see how many products were created or updated and how many rows were skipped or failed.
+
+### After the Import
+
+Open **Catalog > Products** in UnoPim and you should see the imported simple products with their attributes, categories, and images.
+
+---
+
+## Part 2: Import Configurable Products
+
+### What This Job Does
+
+This job imports configurable products from Magento 2 into UnoPim. The configurable parent and each of its variants come in together — the connector preserves the variation axis (e.g. *color* + *size*) and links each child variant to the parent.
+
+### How to Create the Import Job
+
+Select **Magento Configurable Product Import** as the import type when creating the job profile.
+
+
+
+### Available Filters
+
+| Filter | Required | Description |
+|---|---|---|
+| **Credential** | Yes | Select the Magento 2 credential. |
+| **Store Views** | No | Store view for locale-specific values. |
+| **SKU (Comma Separated)** | No | Restrict to specific configurable product SKUs. |
+
+### What Gets Imported
+
+- The **configurable parent** is created as a UnoPim configurable product.
+- Each **variant** comes in as a child of the parent — matched by SKU.
+- The **variation axis** (the attributes the variants differ on) is preserved.
+- All the same fields as the simple product import — attribute family, attribute values, categories, status, media.
+
+### Pre-requisites
+
+Run these imports first so the connector has the structure the products need:
+
+1. [Magento Attribute Import](./import-attribute) — attributes exist.
+2. [Magento Attribute Set Import](./import-attribute) — attribute families exist.
+3. [Magento Category Import](./import-category) — categories exist.
+4. **Magento Simple Product Import** — variants are imported as simple products first. The configurable import then links them under the parent.
+
+### Running the Import
+
+Click **Import Now** to start the configurable product import.
+
+
+
+After completion, the import summary shows how many configurable parents and child variants were processed.
+
+### After the Import
+
+Open one of the configurable products in **Catalog > Products** — you should see the parent with its variation axis and every variant listed under it.
+
+---
+
+## Part 3: Import Product Associations
+
+### What This Job Does
+
+This job imports the **related**, **up-sell**, and **cross-sell** relationships between products from Magento 2 into UnoPim. The products themselves must already exist in UnoPim — this job only writes the link data.
+
+### How to Create the Import Job
+
+Select **Magento Product Association Import** as the import type when creating the job profile.
+
+
+
+### Available Filters
+
+| Filter | Required | Description |
+|---|---|---|
+| **Credential** | Yes | Select the Magento 2 credential. |
+| **Store Views** | No | Store view to read associations from. |
+| **SKU (Comma Separated)** | No | Restrict to specific product SKUs. |
+
+### What Gets Imported
+
+For each product, the connector reads:
+
+- **Related products** — items shown alongside on the product page.
+- **Up-sell products** — premium alternatives.
+- **Cross-sell products** — checkout add-ons.
+
+Each link is written against the matching UnoPim product. Targets that don't exist in UnoPim are skipped and reported in the import summary.
+
+### Pre-requisites
+
+Run **Magento Simple Product Import** and **Magento Configurable Product Import** first so every product the associations reference is already in UnoPim. Otherwise, links to missing products are dropped.
+
+### Running the Import
+
+Click **Import Now**. The summary lists how many associations were written and how many were skipped due to missing targets.
+
+
+
+---
+
+## Recommended Import Order
+
+For a clean, complete catalog import from Magento 2 into UnoPim, run the jobs in this order:
+
+1. [Magento Shop View Mapping](./shopview-mapping) — store view to channel / locale / currency mapping.
+2. [Magento Attribute Import](./import-attribute) — attributes.
+3. [Magento Attribute Group Import](./import-attribute) — attribute groups.
+4. [Magento Attribute Set Import](./import-attribute) — attribute families.
+5. [Magento Attribute Mapping Import](./import-attribute) — *(optional)* pre-populate the attribute mapping.
+6. [Magento Category Attribute Import](./import-category) — category fields.
+7. [Magento Category Import](./import-category) — categories.
+8. **Magento Simple Product Import** — simple products.
+9. **Magento Configurable Product Import** — configurable parents and their variants.
+10. **Magento Product Association Import** — related / up-sell / cross-sell links.
+
+## Download Log
+
+After every job execution, use the **Download Log** option to inspect the run.
+
+The downloaded log is especially useful when:
+
+- The job is stuck or remains pending.
+- `0` records are imported.
+- Some rows are skipped.
+- A particular SKU didn't make it across.
+
+The log lists which row failed and why, so you can fix the source data or the [Attribute Mapping](./attribute-mapping) and re-run.
diff --git a/docs/magento2/import-store-view.md b/docs/magento2/import-store-view.md
new file mode 100644
index 0000000..73a6998
--- /dev/null
+++ b/docs/magento2/import-store-view.md
@@ -0,0 +1,84 @@
+# Import Magento Store View Details
+
+The **Magento Store** import job fetches the full structural details of every **website**, **store group**, and **store view** configured in your Magento 2 installation and saves them against the matching UnoPim credential.
+
+This is a one-time setup step (run after creating a credential, and re-run whenever your Magento store structure changes) that lets the connector show accurate, up-to-date store view options everywhere they're needed — credential mapping, export filters, and import filters.
+
+## How This Differs from Shop View Mapping
+
+There are two related jobs — use both, in this order:
+
+| Job | What it does |
+|---|---|
+| [Magento Shop View Mapping](./shopview-mapping) | Pulls just the **store view codes and labels** so you can map them to UnoPim channels / locales / currencies in the credential. |
+| **Magento Store** *(this page)* | Pulls the full **website + store group + store view hierarchy** with all related details. |
+
+If you only want to set up channel mapping, the [Shop View Mapping](./shopview-mapping) job is enough. Run **Magento Store** in addition when you also need:
+
+- The list of **websites** (top-level Magento structure).
+- The **store groups** that sit under each website.
+- The full hierarchy showing which store view belongs to which group and website.
+
+## How to Create the Import Job
+
+Go to **Data Transfer > Imports > Create Import Profile**.
+
+
+
+
+
+Select **Magento Store** as the import type.
+
+
+
+Enter a unique code and a recognizable name for the job, then save it.
+
+## Available Filters
+
+| Filter | Required | Description |
+|---|---|---|
+| **Credential** | Yes | Select the Magento 2 credential you want to fetch the store structure for. |
+
+There are no other filters — the job pulls the complete store hierarchy from the connected Magento instance.
+
+## What Gets Imported
+
+The job reads the following from Magento 2's `GET /V1/store/storeConfigs`, `GET /V1/store/storeViews`, `GET /V1/store/storeGroups`, and `GET /V1/store/websites` endpoints:
+
+- **Websites** — every website configured in Magento with its code, name, and default group.
+- **Store groups** — for each website, every store group with its code, name, and root category.
+- **Store views** — for each store group, every store view with its code, label, locale, base currency, and active flag.
+
+All of this is saved into the **extras** field on the Magento credential in UnoPim so the connector can render it back in filters and credential mapping without going back to Magento every time.
+
+## Running the Import
+
+Click **Import Now** to start the process.
+
+
+
+The job runs quickly — usually a couple of seconds, since it's pulling configuration, not product data.
+
+Once complete, check the job summary. The store hierarchy is now stored on the matching Magento credential.
+
+## After the Import
+
+Go to **Magento 2 Connector > Credentials > Edit Credential**.
+
+The **Store View Mapping** section now shows every store view grouped under its store group and website. From here, configure the channel / locale / currency mapping for each store view — see [Magento Shop View Mapping → Map Store Views to UnoPim Channels](./shopview-mapping#next-step-map-store-views-to-unopim-channels).
+
+## When to Re-Run This Job
+
+Re-run the **Magento Store** import whenever:
+
+- A new **store view**, **store group**, or **website** is added in Magento.
+- An existing store view's **code**, **label**, **locale**, or **currency** changes.
+- A store view is **disabled** or **deleted** in Magento.
+
+After re-running, revisit the **Store View Mapping** in the credential and adjust the mapping to match the new structure.
+
+## Best Practice
+
+- Run this job **immediately after** creating a Magento credential — that way the credential's store view mapping UI is populated from the very first time you open it.
+- Add a reminder to re-run it after any Magento configuration change. It's quick and idempotent — the worst case of re-running it is wasted seconds.
+- Pair it with the [Shop View Mapping](./shopview-mapping) import; together they give the credential everything it needs to drive accurate, locale-aware imports and exports.
diff --git a/docs/magento2/index.md b/docs/magento2/index.md
index f515ae2..2c85636 100644
--- a/docs/magento2/index.md
+++ b/docs/magento2/index.md
@@ -1,3 +1,79 @@
-# Magento 2 Extension
+# Magento 2 Connector
-Placeholder landing page. Real docs are pulled from [`unopim/unopim-magento2`](https://github.com/unopim/unopim-magento2) at build time.
+The UnoPim Magento 2 Connector allows businesses to integrate one or more Magento 2 stores with the UnoPim PIM platform.
+
+
+
+

+
+
+
+## Introduction
+
+With this connector, store owners can synchronize catalog data between UnoPim and Magento 2, including Adobe Commerce Cloud stores, through API-based integration.
+
+It supports both export and import workflows, allowing businesses to manage product information in one central system and keep data aligned across platforms more efficiently.
+
+## What the Connector Supports
+
+The connector supports the export and import of categories, attributes, attribute options, attribute families, simple products, configurable products, and their variants.
+
+It also supports mapping for standard attributes, custom attributes, categories, images, videos, store views, channels, locales, and currencies, so product data can be transferred in a structured and reliable way.
+
+## Why Use This Connector
+
+Whether you manage a single Magento 2 storefront or multiple stores, the UnoPim Magento 2 Connector helps reduce manual work by automating both catalog exports and Magento-to-UnoPim imports.
+
+It keeps product data consistent across platforms and supports important product details such as title, description, SKU, price, quantity, weight, SEO data, images, videos, category assignments, attribute options, and association data.
+
+
+## Basic Requirements
+
+- Magento 2.3.x up to the latest supported Magento 2 version.
+- Make sure the Magento reindex cron job is running properly.
+- UnoPim version `v0.2.x or Later`.
+- Node.js and Yarn packages must be installed.
+- Your server must meet the UnoPim system requirements before installation.
+
+## Features of UnoPim Magento 2 Connector
+
+### Bidirectional Data Sync
+
+- Supports a full Magento 2 to UnoPim import pipeline in addition to UnoPim to Magento 2 exports.
+- Supports SKU-based product filtering to import only a specific comma-separated list of SKUs.
+- Persists store view credential mappings in credential extras so they can be reused across import runs.
+
+### Export Capabilities
+
+- Exports categories from UnoPim to Magento 2.
+- Exports attributes, attribute options, and attribute families to Magento as attribute sets.
+- Exports both simple and configurable products.
+- Exports product variants together with their parent configurable products.
+- Exports important product data such as title, description, SKU, price, quantity, weight, SEO values, images, videos, and category assignments.
+- Supports re-running export jobs to update previously exported catalog data.
+
+### Export Mapping and Filtering
+
+- Supports standard attribute mapping and additional custom Magento attribute mapping.
+- Supports category mapping, image mapping, and video mapping.
+- Supports filtering exported products by store view, family, status, product type, and SKU.
+- Allows exporting single or multiple specific products using SKU identifiers.
+- Supports multiple export job profiles for Magento category, attribute, attribute set, and product exports.
+
+### Import Capabilities
+
+- Imports Magento attributes with automatic type resolution and syncs attribute options.
+- Imports Magento attribute sets as UnoPim attribute families with translated labels and mapped groups.
+- Imports categories with full hierarchy, localized values, and mapped category attributes.
+- Imports simple and configurable products with attribute mapping, media sync, category links, and association data.
+- Imports Magento store groups as UnoPim channels with locale and currency configuration.
+
+### Import Mapping and Filtering
+
+- Supports store view mapping to UnoPim channels, locales, and currencies.
+- Supports SKU-based product filtering for importing selected products only.
+- Supports category fields and attributes with select, multiselect, and checkbox handling.
+- Automatically creates an `Others` group when no matching attribute group is found.
+- Automatically enables required locales and currencies during the import process.
+
+You can also explore the UnoPim Maker Checker Workflow extension for product and asset approvals, as well as the UnoPim Public Image URL extension for simplified media handling.
diff --git a/docs/magento2/installation.md b/docs/magento2/installation.md
new file mode 100644
index 0000000..6231800
--- /dev/null
+++ b/docs/magento2/installation.md
@@ -0,0 +1,90 @@
+# Installation
+
+The UnoPim Magento 2 Connector links UnoPim with Magento 2 and helps streamline product synchronization between both platforms.
+
+This installation process includes two parts:
+
+- Installing the required Magento 2 plugin.
+- Installing and registering the UnoPim Magento 2 Connector inside your UnoPim project.
+
+## Required Magento 2 Plugin
+
+Before using the connector, you need to install the required Magento 2 plugin:
+
+- **Plugin Name**: `ProductImportQueue`
+
+## Install the Magento 2 Plugin
+
+### Step 1: Extract and Move the Plugin Files
+
+Extract the `Magento2Plugin` package.
+
+Then move the `app` folder from inside the `src` directory into the root directory of your Magento installation.
+
+### Step 2: Enable the Magento Module
+
+Run the following commands in your Magento root directory:
+
+```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
+```
+
+### Step 3: Flush Cache and Reindex
+
+After enabling the module, run the following commands:
+
+```bash
+php bin/magento cache:clean
+php bin/magento indexer:reindex
+```
+
+## Install the UnoPim Magento 2 Connector
+
+Unzip the connector package and merge the `packages` folder into the root directory of your UnoPim project.
+
+## Register the Package Provider
+
+Open the `bootstrap/providers.php` file and add the following import:
+
+```php
+use Webkul\Magento2\Providers\Magento2ServiceProvider;
+```
+
+Then, inside the returned `providers` array, add:
+
+```php
+Magento2ServiceProvider::class,
+```
+
+## Update Composer Autoload
+
+Open the `composer.json` file and add the following line under the `psr-4` section:
+
+```json
+"Webkul\\Magento2\\": "packages/Webkul/Magento2/src"
+```
+
+## Run the Installation Commands
+
+Run the following commands from your UnoPim project root:
+
+### Dump Composer Autoload
+
+```bash
+composer dump-autoload
+```
+
+### Install the Magento 2 Package
+
+```bash
+php artisan magento-package:install
+```
+
+### Clear the Application Cache
+
+```bash
+php artisan optimize:clear
+```
diff --git a/docs/magento2/setup-credentials.md b/docs/magento2/setup-credentials.md
new file mode 100644
index 0000000..551f998
--- /dev/null
+++ b/docs/magento2/setup-credentials.md
@@ -0,0 +1,169 @@
+# Setup Credentials in UnoPim
+
+Once the UnoPim Magento 2 Connector is installed successfully, the next step is to configure your Magento 2 credentials in UnoPim.
+
+This connection allows UnoPim to communicate with your Magento 2 store for both import and export operations.
+
+After the credentials are added correctly, UnoPim can use them to send catalog data to Magento 2 and, where supported, fetch data back from Magento into UnoPim.
+
+## Important Note About Attribute Families
+
+In Magento 2, new attribute sets are created based on existing attribute sets.
+
+Because of this, if you plan to export UnoPim attribute families to Magento 2, you must select a Magento 2 attribute set while editing the credential.
+
+This selected attribute set acts as the base reference when UnoPim creates or maps attribute families in Magento. If no custom value is selected, Magento’s default behavior will apply.
+
+You can update this mapping later by clicking the **Edit Credential** option and selecting the Magento attribute set that best matches your export setup.
+
+## Credential Types
+
+UnoPim supports two ways to create Magento 2 credentials:
+
+- **Token-Based Credentials**
+- **Login-Based Credentials**
+
+## Token-Based Credentials
+
+Before creating token-based credentials in UnoPim, you first need to create and activate an integration in Magento 2.
+
+This is the recommended method when you want a more secure and API-focused connection between Magento 2 and UnoPim.
+
+### Step 1: Create an Integration in Magento 2
+
+In the Magento admin panel, go to:
+
+`System > Integrations > Add New Integration`
+
+Click **Add Integration** to open the configuration page.
+
+Enter the required details such as:
+
+- **Name**
+- **Password**
+
+Use a name that helps you identify the connection easily, for example a name related to UnoPim or your store environment.
+
+Then open the **API** section and choose the required resource access, either:
+
+- **Custom**
+- **All**
+
+After that, click **Save** to create the integration record.
+
+## Required Magento Permissions
+
+If you are assigning integration access based on user roles, make sure the required Magento permissions are enabled.
+
+Go to:
+
+`Admin > System > User Roles > Edit User > Role Resources`
+
+Enable the required permissions for the user, including:
+
+- Catalog
+- Inventory
+- Products
+- Categories
+- Product Attachment
+- Management
+- Customers
+- Stores
+- Settings
+- Currency
+- Attributes
+- Other Settings
+
+These permissions are important because the connector may need access to products, categories, attributes, store configuration, and related catalog settings during synchronization.
+
+## Activate the Integration
+
+After saving, Magento shows a confirmation message that the integration has been saved.
+
+Go back to the **Integrations** page, find the newly created integration, and click **Activate**.
+
+Once activated, Magento redirects you to the integration page. Click **Allow** to confirm API access.
+
+After this step, Magento generates the integration details, including:
+
+- **Consumer Key**
+- **Consumer Secret**
+- **Access Token**
+- **Access Token Secret**
+
+Out of these values, the **Access Token** is the main value required in UnoPim for token-based credentials.
+
+It is a good practice to copy and store the generated integration values safely before leaving the page.
+
+## Important Command for Magento 2.4.4 and Above
+
+If your Magento version is **2.4.4 or above**, run the following command in the Magento root directory before using token-based credentials:
+
+```bash
+bin/magento config:set oauth/consumer/enable_integration_as_bearer 1
+```
+
+If this has already been done, you can skip this step.
+
+## Create Token-Based Credentials in UnoPim
+
+After generating the integration token in Magento, log in to UnoPim and go to:
+
+`Magento 2 Connector > Credentials`
+
+Then:
+
+1. Click **Create Token-Based Credentials**.
+2. Enter the **Magento Shop URL**.
+3. Enter the **Access Token**.
+4. Click **Save**.
+
+Once saved, the credential will be available for further connector configuration, job setup, and store view mapping.
+
+## Login-Based Credentials
+
+UnoPim also supports login-based credentials for Magento 2.
+
+> **Note:** Login-based credentials do not work when Magento 2FA is enabled. In that case, either disable 2FA or use token-based credentials instead.
+
+This method is useful when you want to connect UnoPim directly with an admin account instead of using an integration token.
+
+## Create Login-Based Credentials in UnoPim
+
+Go to:
+
+`Magento 2 Connector > Credentials`
+
+
+
+Then:
+
+1. Click **Create Login-Based Credentials**.
+
+
+
+2. Enter the following details:
+ - **Magento Shop URL**
+ - **Admin Username**
+ - **Admin Password**
+3. Click **Save**.
+
+
+
+This creates login-based authentication for the connector and makes the credential available for the next configuration steps.
+
+## Store View Mapping
+
+If your Magento 2 store uses multiple store views, you also need to map them correctly inside UnoPim.
+
+In the **Store View** section, map each Magento store view to the correct:
+
+- **UnoPim Channel**
+- **Locale**
+- **Currency**
+
+This mapping ensures that product data is sent to or read from the correct store view with the right channel, language, and currency setup.
+
+It is especially important when you manage multiple Magento storefronts, multiple locales, or different currencies for different regions.
+
+Once the store views are mapped correctly, the connector can use those mappings during export and import runs without requiring the same configuration again each time.
diff --git a/docs/magento2/shopview-mapping.md b/docs/magento2/shopview-mapping.md
new file mode 100644
index 0000000..9c6b832
--- /dev/null
+++ b/docs/magento2/shopview-mapping.md
@@ -0,0 +1,84 @@
+# Magento Shop View Mapping
+
+The **Magento Shop View Mapping** import job pulls store view configuration data from your Magento 2 store and saves it as part of your credential in UnoPim.
+
+This is a one-time setup step that makes it easier to map Magento store views to UnoPim channels, locales, and currencies — which is required for accurate product data export and import.
+
+## What Is a Store View in Magento?
+
+In Magento 2, a **store view** defines a specific language, currency, and storefront configuration within a store. A single Magento store can have multiple store views — for example:
+
+- `en_US` for English (United States)
+- `fr_FR` for French (France)
+- `de_DE` for German (Germany)
+
+Each store view can show a different language and currency to shoppers. When exporting from UnoPim, product data is sent to the correct store view based on the mapping you set up.
+
+## Why This Matters
+
+Without store view mapping, UnoPim cannot know which Magento store view corresponds to which UnoPim channel, locale, or currency.
+
+Once this mapping is configured, all subsequent export and import jobs use it automatically — so you don't have to reconfigure it every time.
+
+## How to Create the Import Job
+
+Go to **Data Transfer > Imports > Create Import Profile**.
+
+
+
+
+
+Select **Magento Shop View Mapping** as the import type.
+
+Enter a unique code and a name for the job, then save it.
+
+
+
+## Available Filters
+
+| Filter | Required | Description |
+|---|---|---|
+| **Credential** | Yes | Select the Magento 2 store credential you want to fetch store views for. |
+
+## What Gets Imported
+
+This job reads the following from Magento 2:
+
+- All available **store views** with their codes and labels.
+- The associated **store groups** and **websites**.
+
+The data is saved to the credential's extras so it can be used when you configure the store view mapping manually in the credential settings.
+
+## Running the Import
+
+Click **Import Now** to start the process.
+
+
+
+Once complete, check the job summary. The store view data is now stored in your Magento credential in UnoPim.
+
+## Next Step: Map Store Views to UnoPim Channels
+
+After running this import, go to:
+
+`Magento 2 Connector > Credentials > Edit Credential`
+
+In the **Store View Mapping** section, you will see the store views fetched from Magento. For each store view, select the corresponding:
+
+- **UnoPim Channel**
+- **Locale**
+- **Currency**
+
+For example:
+| Magento Store View | UnoPim Channel | Locale | Currency |
+|---|---|---|---|
+| `en_US` | `ecommerce` | `en_US` | `USD` |
+| `fr_FR` | `ecommerce` | `fr_FR` | `EUR` |
+
+Once this mapping is saved, all export and import jobs that use this credential will automatically apply the correct store view, locale, and currency for product data.
+
+## Best Practice
+
+Run the **Shop View Mapping** import as early as possible in your setup — ideally right after creating your Magento credentials. Completing this step before running product exports ensures that localized product data is sent to the correct Magento store views.
+
+If your Magento store is restructured or new store views are added, re-run this import job and update the mapping accordingly.
diff --git a/docs/magento2/sidebar.json b/docs/magento2/sidebar.json
index b151864..b720f71 100644
--- a/docs/magento2/sidebar.json
+++ b/docs/magento2/sidebar.json
@@ -2,7 +2,47 @@
{
"text": "Magento 2",
"items": [
- { "text": "Overview", "link": "/magento2/" }
+ { "text": "Overview", "link": "/magento2/" },
+ { "text": "Installation", "link": "/magento2/installation" },
+ { "text": "Setup Credentials in UnoPim", "link": "/magento2/setup-credentials" }
+ ]
+ },
+
+ {
+ "text" : "Mapping",
+ "items": [
+ { "text": "Attribute Mapping", "link": "/magento2/attribute-mapping" },
+ { "text": "Image Mappings", "link": "/magento2/image-mapping" },
+ { "text": "Video Mapping", "link": "/magento2/video-mapping" },
+ { "text": "Category Mapping", "link": "/magento2/category-mapping" }
+ ]
+ },
+
+ {
+ "text" : "Export Jobs",
+ "items": [
+ {"text" : "Export Category" , "link": "/magento2/export-category" },
+ {"text" : "Export Magento attribute", "link": "/magento2/export-attribute" },
+ {"text" : "Export Magento Attribute Set", "link": "/magento2/export-attribute-set" },
+ {"text" : "Export Magento Product", "link": "/magento2/export-product" }
+ ]
+ },
+
+ {
+ "text" : "Import Jobs",
+ "items": [
+ {"text" : "Magento Category & Category Attribute", "link": "/magento2/import-category" },
+ {"text" : "Magento ShopView Mapping", "link": "/magento2/shopview-mapping" },
+ {"text" : "Magento Attribute", "link": "/magento2/import-attribute" },
+ {"text" : "Magento Product", "link": "/magento2/import-product" },
+ {"text" : "Magento Store View Details", "link": "/magento2/import-store-view" }
+ ]
+ },
+
+ {
+ "text" : "Support",
+ "items": [
+ {"text" : "Contact Support", "link": "/magento2/contact-support" }
]
}
]
diff --git a/docs/magento2/video-mapping.md b/docs/magento2/video-mapping.md
new file mode 100644
index 0000000..00dedfd
--- /dev/null
+++ b/docs/magento2/video-mapping.md
@@ -0,0 +1,55 @@
+# Video Mapping
+
+Video mapping allows you to map product video-related fields before exporting products from UnoPim to Magento 2.
+
+Use this section when you want to export video URLs together with product data so Magento can display product videos with the correct details.
+
+
+
+## Video Mapping Options
+
+In the **Video Mapping** section, you can map the following fields:
+
+### Video Attribute `(Required)`
+
+Map the UnoPim attribute that stores the product video URL.
+
+This is the main field used to export the product video to Magento 2.
+
+### Preview Image `(Optional)`
+
+Map the UnoPim attribute that should be used as the preview image for the video.
+
+This image can be shown before the video is played in Magento.
+
+### Title `(Required)`
+
+Map the UnoPim attribute that contains the video title.
+
+The title helps identify the video in Magento and gives context to the product media.
+
+### Description `(Optional)`
+
+Map the UnoPim attribute that contains the video description.
+
+This can be used to provide additional information about the product video.
+
+### Hide from Product Page `(Optional)`
+
+Admins can enable or disable this option to control whether the mapped video should be visible on the Magento product page.
+
+Use this when video data should be exported but not shown directly on the storefront.
+
+## When to Use This Section
+
+Use the video mapping interface before exporting products if your product catalog includes video URLs and you want those videos to be transferred to Magento 2 along with the product data.
+
+## Best Practice
+
+Always map the required fields, especially the **Video Attribute** and **Title**, before running the export.
+
+If you want the video to display properly in Magento, also map a suitable preview image and review the visibility setting based on your storefront needs.
+
+## Result
+
+Once the video mapping is saved, UnoPim uses these settings while exporting product videos to Magento 2. This helps ensure that the video URL and its related information are sent in the correct structure.
diff --git a/docs/odoo-erp/additional-mapping.md b/docs/odoo-erp/additional-mapping.md
new file mode 100644
index 0000000..66e6d09
--- /dev/null
+++ b/docs/odoo-erp/additional-mapping.md
@@ -0,0 +1,26 @@
+# UnoPim - Map More Standard Fields
+
+Adding Additional Product Fields for Odoo Export
+
+
+## Overview
+
+In case you want to send more product information, you can add more product fields here and then map them with UnoPim attributes.
+
+
+
+
+## Steps to Add More Fields
+
+1. Enter an Odoo field code in the input field
+
+2. Click the **Add Field** button
+
+3. The new mapping field will appear above
+
+
+## Save Configuration
+
+After mapping everything you need, save your configuration to apply the changes.
+
+
diff --git a/docs/odoo-erp/assets/attribute-mapping/additional-mapping.png b/docs/odoo-erp/assets/attribute-mapping/additional-mapping.png
new file mode 100644
index 0000000..0fb1946
Binary files /dev/null and b/docs/odoo-erp/assets/attribute-mapping/additional-mapping.png differ
diff --git a/docs/odoo-erp/assets/attribute-mapping/attribute-mapping.png b/docs/odoo-erp/assets/attribute-mapping/attribute-mapping.png
new file mode 100644
index 0000000..c3f76bf
Binary files /dev/null and b/docs/odoo-erp/assets/attribute-mapping/attribute-mapping.png differ
diff --git a/docs/odoo-erp/assets/attribute-mapping/category-mapping.png b/docs/odoo-erp/assets/attribute-mapping/category-mapping.png
new file mode 100644
index 0000000..386b0bb
Binary files /dev/null and b/docs/odoo-erp/assets/attribute-mapping/category-mapping.png differ
diff --git a/docs/odoo-erp/assets/attribute-mapping/save-attribute-mapping.png b/docs/odoo-erp/assets/attribute-mapping/save-attribute-mapping.png
new file mode 100644
index 0000000..ce39d37
Binary files /dev/null and b/docs/odoo-erp/assets/attribute-mapping/save-attribute-mapping.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/attribute-export-now.png b/docs/odoo-erp/assets/export-jobs/attribute-export-now.png
new file mode 100644
index 0000000..14450a3
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/attribute-export-now.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/attribute-exports.png b/docs/odoo-erp/assets/export-jobs/attribute-exports.png
new file mode 100644
index 0000000..7d6dd0b
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/attribute-exports.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/attribute-type.png b/docs/odoo-erp/assets/export-jobs/attribute-type.png
new file mode 100644
index 0000000..91f2c35
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/attribute-type.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/category-export-completed.png b/docs/odoo-erp/assets/export-jobs/category-export-completed.png
new file mode 100644
index 0000000..965f417
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/category-export-completed.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/category-export-now.png b/docs/odoo-erp/assets/export-jobs/category-export-now.png
new file mode 100644
index 0000000..4925d8c
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/category-export-now.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/category-filter.png b/docs/odoo-erp/assets/export-jobs/category-filter.png
new file mode 100644
index 0000000..7896bd3
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/category-filter.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/category-type.png b/docs/odoo-erp/assets/export-jobs/category-type.png
new file mode 100644
index 0000000..8f32c9f
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/category-type.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/create-export-1.png b/docs/odoo-erp/assets/export-jobs/create-export-1.png
new file mode 100644
index 0000000..6365dd8
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/create-export-1.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/export-1.png b/docs/odoo-erp/assets/export-jobs/export-1.png
new file mode 100644
index 0000000..bbbab36
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/export-1.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/export-attribute.png b/docs/odoo-erp/assets/export-jobs/export-attribute.png
new file mode 100644
index 0000000..f689f50
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/export-attribute.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/export-filter-field.png b/docs/odoo-erp/assets/export-jobs/export-filter-field.png
new file mode 100644
index 0000000..75eec4b
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/export-filter-field.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/filter-products.png b/docs/odoo-erp/assets/export-jobs/filter-products.png
new file mode 100644
index 0000000..36a7b1c
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/filter-products.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/product-export-completed.png b/docs/odoo-erp/assets/export-jobs/product-export-completed.png
new file mode 100644
index 0000000..e098d33
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/product-export-completed.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/product-export-now.png b/docs/odoo-erp/assets/export-jobs/product-export-now.png
new file mode 100644
index 0000000..6c8578e
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/product-export-now.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/product-type.png b/docs/odoo-erp/assets/export-jobs/product-type.png
new file mode 100644
index 0000000..f1fce19
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/product-type.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/save-category-export.png b/docs/odoo-erp/assets/export-jobs/save-category-export.png
new file mode 100644
index 0000000..19c2165
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/save-category-export.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/save-product-export.png b/docs/odoo-erp/assets/export-jobs/save-product-export.png
new file mode 100644
index 0000000..559dea9
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/save-product-export.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/savte-attribute-export.png b/docs/odoo-erp/assets/export-jobs/savte-attribute-export.png
new file mode 100644
index 0000000..ba73d5a
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/savte-attribute-export.png differ
diff --git a/docs/odoo-erp/assets/export-jobs/storefront.png b/docs/odoo-erp/assets/export-jobs/storefront.png
new file mode 100644
index 0000000..6533dbe
Binary files /dev/null and b/docs/odoo-erp/assets/export-jobs/storefront.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/attribute-import-now.png b/docs/odoo-erp/assets/import-jobs/attribute-import-now.png
new file mode 100644
index 0000000..551f006
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/attribute-import-now.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/attribute-import-progress.png b/docs/odoo-erp/assets/import-jobs/attribute-import-progress.png
new file mode 100644
index 0000000..5242b51
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/attribute-import-progress.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/attribute-import-setting.png b/docs/odoo-erp/assets/import-jobs/attribute-import-setting.png
new file mode 100644
index 0000000..59d6f40
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/attribute-import-setting.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/attribute-import-type.png b/docs/odoo-erp/assets/import-jobs/attribute-import-type.png
new file mode 100644
index 0000000..ef5a5c4
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/attribute-import-type.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/attribute-save-import.png b/docs/odoo-erp/assets/import-jobs/attribute-save-import.png
new file mode 100644
index 0000000..cc28fa6
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/attribute-save-import.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/category-import-now.png b/docs/odoo-erp/assets/import-jobs/category-import-now.png
new file mode 100644
index 0000000..810002a
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/category-import-now.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/category-import-progress.png b/docs/odoo-erp/assets/import-jobs/category-import-progress.png
new file mode 100644
index 0000000..5e8a79d
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/category-import-progress.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/category-import-settings.png b/docs/odoo-erp/assets/import-jobs/category-import-settings.png
new file mode 100644
index 0000000..5cba210
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/category-import-settings.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/category-save-import.png b/docs/odoo-erp/assets/import-jobs/category-save-import.png
new file mode 100644
index 0000000..0f3c2b2
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/category-save-import.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/create-import.png b/docs/odoo-erp/assets/import-jobs/create-import.png
new file mode 100644
index 0000000..58f6744
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/create-import.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/data-transfer.png b/docs/odoo-erp/assets/import-jobs/data-transfer.png
new file mode 100644
index 0000000..f689f50
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/data-transfer.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/import.png b/docs/odoo-erp/assets/import-jobs/import.png
new file mode 100644
index 0000000..0cd2f9b
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/import.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/odoo-product-model-settings.png b/docs/odoo-erp/assets/import-jobs/odoo-product-model-settings.png
new file mode 100644
index 0000000..a1ead73
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/odoo-product-model-settings.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/odoo-product-model.png b/docs/odoo-erp/assets/import-jobs/odoo-product-model.png
new file mode 100644
index 0000000..6a53c8f
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/odoo-product-model.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/odoo-product-settings.png b/docs/odoo-erp/assets/import-jobs/odoo-product-settings.png
new file mode 100644
index 0000000..d01e979
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/odoo-product-settings.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/odoo-product.png b/docs/odoo-erp/assets/import-jobs/odoo-product.png
new file mode 100644
index 0000000..8b9ac88
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/odoo-product.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/product-import-now.png b/docs/odoo-erp/assets/import-jobs/product-import-now.png
new file mode 100644
index 0000000..34a3d64
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/product-import-now.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/product-import-progress.png b/docs/odoo-erp/assets/import-jobs/product-import-progress.png
new file mode 100644
index 0000000..e0ef487
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/product-import-progress.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/product-model-import-now.png b/docs/odoo-erp/assets/import-jobs/product-model-import-now.png
new file mode 100644
index 0000000..10dc5b3
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/product-model-import-now.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/product-model-import-progress.png b/docs/odoo-erp/assets/import-jobs/product-model-import-progress.png
new file mode 100644
index 0000000..42e65a0
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/product-model-import-progress.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/product-model-save-import.png b/docs/odoo-erp/assets/import-jobs/product-model-save-import.png
new file mode 100644
index 0000000..d1c57a2
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/product-model-save-import.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/product-save-import.png b/docs/odoo-erp/assets/import-jobs/product-save-import.png
new file mode 100644
index 0000000..8bfa39b
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/product-save-import.png differ
diff --git a/docs/odoo-erp/assets/import-jobs/select-type-category.png b/docs/odoo-erp/assets/import-jobs/select-type-category.png
new file mode 100644
index 0000000..e410e8d
Binary files /dev/null and b/docs/odoo-erp/assets/import-jobs/select-type-category.png differ
diff --git a/docs/odoo-erp/assets/installation/odoo-icon.png b/docs/odoo-erp/assets/installation/odoo-icon.png
new file mode 100644
index 0000000..e31c52a
Binary files /dev/null and b/docs/odoo-erp/assets/installation/odoo-icon.png differ
diff --git a/docs/odoo-erp/assets/odoo-credentials/create-cred.png b/docs/odoo-erp/assets/odoo-credentials/create-cred.png
new file mode 100644
index 0000000..7654dfd
Binary files /dev/null and b/docs/odoo-erp/assets/odoo-credentials/create-cred.png differ
diff --git a/docs/odoo-erp/assets/odoo-credentials/credential.png b/docs/odoo-erp/assets/odoo-credentials/credential.png
new file mode 100644
index 0000000..5d6c64c
Binary files /dev/null and b/docs/odoo-erp/assets/odoo-credentials/credential.png differ
diff --git a/docs/odoo-erp/assets/odoo-credentials/store-configuration.png b/docs/odoo-erp/assets/odoo-credentials/store-configuration.png
new file mode 100644
index 0000000..f890f63
Binary files /dev/null and b/docs/odoo-erp/assets/odoo-credentials/store-configuration.png differ
diff --git a/docs/odoo-erp/assets/odoo-setup/app.png b/docs/odoo-erp/assets/odoo-setup/app.png
new file mode 100644
index 0000000..b4beb24
Binary files /dev/null and b/docs/odoo-erp/assets/odoo-setup/app.png differ
diff --git a/docs/odoo-erp/assets/odoo-setup/installed-apps.png b/docs/odoo-erp/assets/odoo-setup/installed-apps.png
new file mode 100644
index 0000000..a6b0ae4
Binary files /dev/null and b/docs/odoo-erp/assets/odoo-setup/installed-apps.png differ
diff --git a/docs/odoo-erp/assets/odoo-setup/odoo-dashboard.png b/docs/odoo-erp/assets/odoo-setup/odoo-dashboard.png
new file mode 100644
index 0000000..35c15b8
Binary files /dev/null and b/docs/odoo-erp/assets/odoo-setup/odoo-dashboard.png differ
diff --git a/docs/odoo-erp/assets/overview/odoo-banner.png b/docs/odoo-erp/assets/overview/odoo-banner.png
new file mode 100644
index 0000000..78849fc
Binary files /dev/null and b/docs/odoo-erp/assets/overview/odoo-banner.png differ
diff --git a/docs/odoo-erp/attribute-import.md b/docs/odoo-erp/attribute-import.md
new file mode 100644
index 0000000..10cd044
--- /dev/null
+++ b/docs/odoo-erp/attribute-import.md
@@ -0,0 +1,88 @@
+# UnoPim - Odoo Import Attribute
+
+Importing Attributes from Odoo
+
+
+## Overview
+
+This import job will import all the attributes and attribute options from Odoo to UnoPim.
+
+
+## Prerequisites
+
+Before importing attributes from Odoo, ensure that you have configured your Odoo credentials in UnoPim.
+
+
+## Step 1: Go to Data Transfer
+
+Navigate to the **Data Transfer** section from the main menu in UnoPim.
+
+
+
+
+## Step 2: Go to Imports
+
+Click on **Imports** to view the available import options.
+
+
+
+
+## Step 3: Create Import
+
+Click on **Create Import** to create a new import profile.
+
+
+
+
+## Step 4: Enter Code & select type
+
+In the **General** section, enter a unique code for your import profile. This code will help you identify the import profile.
+
+**Example:** attribute_import_odoo_001
+
+Next, select **Odoo Attribute** as the import type to import all attributes and attribute options from Odoo to UnoPim.
+
+
+
+
+
+## Step 6: Configure Settings
+
+In the **Settings** section, configure the following required fields:
+
+### Odoo Credentials
+
+Click on the **Odoo credentials** dropdown and select the specific Odoo credentials or connection you want to import from. This is a required field.
+
+### Channel
+
+Click on the **Channel** dropdown and select the appropriate channel or store view from your Odoo setup. This is a required field.
+
+### Locale
+
+Click on the **Locale** dropdown and select the language or regional settings for importing attribute data. This is a required field.
+
+
+
+
+## Step 7: Save Import
+
+Click the **Save Import** button to save your import profile configuration.
+
+
+
+
+## Step 8: Import Now
+
+Once the import profile is saved, click the **Import Now** button to start the import process and import all Odoo attributes and attribute options to UnoPim.
+
+
+
+
+## Step 9: Monitor Progress
+
+In the execution process, you can check the progress of the import job and view any errors in the log.
+
+
+
+
diff --git a/docs/odoo-erp/attribute-mapping.md b/docs/odoo-erp/attribute-mapping.md
new file mode 100644
index 0000000..40fed54
--- /dev/null
+++ b/docs/odoo-erp/attribute-mapping.md
@@ -0,0 +1,84 @@
+# UnoPim - Attribute Mapping
+
+Product Attribute Mapping Between UnoPim and Odoo
+
+## Overview
+
+When products are exported to Odoo, you can decide which product information should be included in the product database. First, you need to do the mapping of Odoo product fields with UnoPim attributes.
+
+
+
+
+## Attribute Mapping
+
+### Fixed Value
+
+In case you want to set any default value for a product field, you can enter it in the Fixed Value. So that all the exported products will have the same product field value.
+
+
+## Default Mappable Product Fields
+
+The following product fields can be mapped between UnoPim and Odoo by default:
+
+### Internal Reference
+The internal reference field is a unique and required text attribute.
+
+### Barcode
+The product barcode field is a unique and optional text attribute.
+
+### Name
+The product name field is a required text attribute.
+
+### Weight
+The product weight field is a numeric attribute representing weight.
+
+### Volume
+The product volume field is a numeric attribute representing volume.
+
+### Description for Internal
+The internal description field is a required textarea attribute.
+
+### Description for Customers / Quotations
+The customer/quotation description field is an optional textarea attribute.
+
+### Ecommerce Description
+The e-commerce product description field is an optional textarea attribute.
+
+### Description for Vendors
+The vendor description field is an optional textarea attribute.
+
+### Description for Delivery Orders
+The delivery order notes field is an optional text attribute.
+
+### Description for Receptions
+The reception notes field is an optional text attribute.
+
+### Description for Internal Transfers / Pickings
+The internal transfer/picking notes field is an optional text attribute.
+
+### Cost
+The cost price field is a required price attribute.
+
+### Sale Price
+The retail price field is a required price attribute.
+
+### Can be Sold
+The available for sale field is a required boolean attribute.
+
+### Routes
+The stock routes field defines the movement of stock. The applicable routes field is a multiple selection attribute.
+
+### Taxes
+The applicable taxes field is a multiple selection attribute.
+
+### Purchase Taxes
+The supplier taxes field is a multiple selection attribute.
+
+### Product Type
+The product category field defines the type of product.
+
+### Can be Purchased
+The available for purchase field is a required boolean attribute.
+
+### Images
+The product images field allows multiple image uploads.
diff --git a/docs/odoo-erp/category-import.md b/docs/odoo-erp/category-import.md
new file mode 100644
index 0000000..9786712
--- /dev/null
+++ b/docs/odoo-erp/category-import.md
@@ -0,0 +1,94 @@
+# UnoPim - Odoo Import Category
+
+Importing Categories from Odoo
+
+
+## Overview
+
+This import job will import all the Odoo categories to UnoPim.
+
+
+## Prerequisites
+
+Before importing categories from Odoo, ensure that you have configured your Odoo credentials in UnoPim.
+
+
+## Step 1: Go to Data Transfer
+
+Navigate to the **Data Transfer** section from the main menu in UnoPim.
+
+
+
+
+## Step 2: Go to Imports
+
+Click on **Imports** to view the available import options.
+
+
+
+
+## Step 3: Create Import
+
+Click on **Create Import** to create a new import profile.
+
+
+
+
+## Step 4: Enter Code and Select Type
+
+In the **General** section, configure the following:
+
+### Code
+
+Enter a unique code for your import profile. This code will help you identify the import profile.
+
+**Example:** category_import_odoo_001
+
+### Type
+
+In the **Type** field, select **Odoo Category** from the dropdown menu.
+
+
+
+## Step 5: Configure Settings
+
+In the **Settings** section, configure the following required fields:
+
+### Odoo Credentials
+
+Click on the **Odoo credentials** dropdown and select the specific Odoo credentials or connection you want to import from. This is a required field.
+
+
+### Channel
+
+Click on the **Channel** dropdown and select the appropriate channel or store view from your Odoo setup. This is a required field.
+
+### Locale
+
+Click on the **Locale** dropdown and select the language or regional settings for importing category data. This is a required field.
+
+
+
+
+## Step 6: Save Import
+
+Click the **Save Import** button to save your import profile configuration.
+
+
+
+
+## Step 7: Import Now
+
+Once the import profile is saved, click the **Import Now** button to start the import process and import all Odoo categories to UnoPim.
+
+
+
+
+## Step 8: Monitor Progress
+
+In the execution process, you can check the progress of the import job and view any errors in the log.
+
+
+
+
+
diff --git a/docs/odoo-erp/category-mapping.md b/docs/odoo-erp/category-mapping.md
new file mode 100644
index 0000000..c11be82
--- /dev/null
+++ b/docs/odoo-erp/category-mapping.md
@@ -0,0 +1,91 @@
+# UnoPim - Category Fields Mappings
+
+Manual Mapping of Category Fields Between UnoPim and Odoo
+
+
+## Overview
+
+Here, you can create a mapping manually for categories. This allows you to connect UnoPim category fields with Odoo category fields for seamless data transfer when exporting categories.
+
+
+
+## Understanding Category Field Mappings
+
+Category field mappings define how your UnoPim category information is transferred to Odoo. The mapping interface consists of three main columns:
+
+### Odoo Fields
+
+The Odoo category fields available for mapping. These are the destination fields where your UnoPim data will be exported to.
+
+### UnoPim Category Fields
+
+The UnoPim category attributes that you want to map to Odoo fields. Select the corresponding UnoPim field for each Odoo field.
+
+### Fixed Value
+
+Optional default values that can be assigned to Odoo fields. If set, all exported categories will have this value for the respective field, regardless of the UnoPim data.
+
+
+## Default Category Field Mappings
+
+### Name
+
+**Odoo Field:** Name
+
+**Type:** Text-type category field
+
+**Description:** The category name field is a required text attribute that identifies the category in Odoo.
+
+**Mapping:** Map this to your UnoPim category name field
+
+### Description
+
+**Odoo Field:** Description
+
+**Type:** Textarea-type category field
+
+**Description:** The description field is a textarea-type category field used to provide detailed information about the category.
+
+**Mapping:** Map this to your UnoPim category description field
+
+### Image
+
+**Odoo Field:** Image
+
+**Type:** Image-type category field
+
+**Description:** The image field is an image-type category field used to store category images or logos.
+
+**Mapping:** Map this to your UnoPim category image field
+
+
+## How to Create Manual Mappings
+
+### Step 1: Select Odoo Field
+
+Choose an Odoo category field from the "Odoo Fields" column that you want to map.
+
+### Step 2: Select UnoPim Category Field
+
+Click on the dropdown under "UnoPim Category Fields" and select the corresponding UnoPim category field to map to the selected Odoo field.
+
+### Step 3: Set Fixed Value (Optional)
+
+If you want to assign a default value to an Odoo field, enter it in the "Fixed Value" column. This value will be used for all exported categories.
+
+### Step 4: Add More Mappings
+
+Repeat steps 1-3 for additional category fields you want to map.
+
+### Step 5: Save Configuration
+
+Once you have configured all your category field mappings, click the **Save** button to save your configuration and apply the changes.
+
+
+## Best Practices
+
+- Ensure all required Odoo fields are mapped
+- Use fixed values only when you want consistent data across all categories
+- Test your mappings before exporting large amounts of data
+- Review your mappings periodically to ensure they align with your business requirements
+
diff --git a/docs/odoo-erp/contact.md b/docs/odoo-erp/contact.md
new file mode 100644
index 0000000..4611aac
--- /dev/null
+++ b/docs/odoo-erp/contact.md
@@ -0,0 +1,7 @@
+# Support
+
+That wraps up the User Guide for the UnoPim Odoo Connector. We hope this documentation helps you get started smoothly and manage your catalog integration with ease.
+
+For any queries or doubts, feel free to reach out to us at support@webkul.com.
+
+You can also raise a ticket through our HelpDesk System.
\ No newline at end of file
diff --git a/docs/odoo-erp/export-attributes.md b/docs/odoo-erp/export-attributes.md
new file mode 100644
index 0000000..925b372
--- /dev/null
+++ b/docs/odoo-erp/export-attributes.md
@@ -0,0 +1,69 @@
+# UnoPim - Export Jobs
+
+Exporting Catalog Information to Odoo
+
+
+## Overview
+
+In this module, you will find the following types of export jobs for exporting catalog information to Odoo.
+
+
+## Odoo Export Attribute
+
+Once you select this job, you can export all the UnoPim attributes and options to Odoo.
+
+
+## How to Export Attributes to Odoo
+
+Follow these steps to export your UnoPim attributes to Odoo:
+
+### Step 1: Go to Data Transfer
+
+Navigate to the **Data Transfer** section from the main menu.
+
+
+
+### Step 2: Select Exports
+
+Click on **Exports** to view the available export options.
+
+
+
+## Step 3: click on Create Export
+Click on the **Create Export** button to start configuring your export job.
+
+
+
+### Step 4: Select Type
+
+Select **Odoo Export Attribute** as the export type to export all UnoPim attributes and options to Odoo.
+
+
+
+### Step 5: Filter Fields
+
+Apply the desired filters to specify which attributes to export:
+
+- **Odoo Credentials** - Choose the specific Odoo instance or credentials you're exporting to
+- **Channel** - Export attributes associated with a specific sales or eCommerce channel
+- **Locales** - Select the language/localized data you want to include
+- **Display Type** - Filter attributes based on how they are displayed (Radio, Select, Color, Pills, Multi-checkbox)
+- **Filter by Code** - Export only specific attributes using their unique codes
+
+
+
+### Step 6: Save Export
+
+Click the **Save** button to save your export configuration with the selected filters and settings.
+
+
+
+### Step 7: Export Now
+
+Click the **Export Now** button to execute the export job and transfer the filtered attributes to Odoo.
+
+
+
+
+
+
diff --git a/docs/odoo-erp/export-categories.md b/docs/odoo-erp/export-categories.md
new file mode 100644
index 0000000..336a140
--- /dev/null
+++ b/docs/odoo-erp/export-categories.md
@@ -0,0 +1,56 @@
+# UnoPim - Odoo Export Category
+
+Exporting Categories to Odoo
+
+## Overview
+
+Using this job, you can export all the categories to Odoo.
+
+
+## How to Export Categories to Odoo
+
+The steps to export categories are similar to attribute export:
+
+### Step 1: Go to Data Transfer
+
+Navigate to the **Data Transfer** section from the main menu.
+
+
+
+### Step 2: Select Exports
+
+Click on **Exports** to view the available export options.
+
+
+
+### Step 3: Select Type
+
+Select **Odoo Category** as the export type to export all UnoPim categories to Odoo.
+
+
+
+### Step 4: Filter Fields
+
+Apply the desired filters to specify which categories to export:
+
+- **Odoo Credentials** - Choose the specific Odoo instance or credentials you're exporting to
+- **Channel** - Export categories associated with a specific sales or eCommerce channel
+- **Locales** - Select the language/localized data you want to include
+- **Filter by Code** - Export only specific categories using their unique codes
+
+
+
+### Step 5: Save Export
+
+Click the **Save** button to save your export configuration with the selected filters and settings.
+
+
+
+### Step 6: Export Now
+
+Click the **Export Now** button to execute the export job and transfer the filtered categories to Odoo.
+
+
+
+
+
diff --git a/docs/odoo-erp/export-products.md b/docs/odoo-erp/export-products.md
new file mode 100644
index 0000000..8d59035
--- /dev/null
+++ b/docs/odoo-erp/export-products.md
@@ -0,0 +1,122 @@
+# UnoPim - Odoo Product Export
+
+Exporting Products to Odoo
+
+## Overview
+
+Once you have created the products in Odoo, you can now export them to the Odoo store.
+
+
+## Prerequisites
+
+Before exporting the product, you need to export the attribute and category from UnoPim to Odoo.
+
+
+## How to Create Export Profile
+
+### Step 1: Go to Exports
+
+Navigate to **Exports** section.
+
+
+
+### Step 2: Create Export
+
+Click on **Create Export**.
+
+
+
+### Step 3: Enter Code and Label & select Type
+
+Enter a unique code and label for your export profile and select **Odoo Product Export** as the export type.
+
+
+
+
+### Step 4: Filter Products
+
+You can decide which products you want to export to Odoo by using various filters.
+
+
+
+# Available Filters
+
+### Credentials
+
+Choose the specific Odoo credentials or connection you want to use for the export.
+
+### Channel
+
+Select the appropriate channel or store view that matches your Odoo setup.
+
+### Locales
+
+Export product data in specific languages or regional settings.
+
+### Filter by Code
+
+Export only selected products by entering their product codes.
+
+### With Media
+
+Choose whether or not to include product images and other media assets in the export.
+
+
+### Filter Products by SKU
+
+If you want to export only some specific products, you can enter their SKU in the Identifier section, separated by a comma.
+
+
+### Step 5: Save Product Export
+
+Once you have saved the information for the export profile, proceed to export.
+
+
+
+### Step 6: Export Now
+
+Click the **Export Now** button to start the export process.
+
+
+
+### Step 7: Monitor Progress
+
+In the execution process, you can check the progress of the export job and view any errors in the log.
+
+
+
+
+## Export Results
+
+After the export is complete, you can view the exported products in Odoo. You can also view and edit any information as you require, and then publish the product.
+
+Check out the Odoo e-commerce storefront view. A customer can see:
+- Product name
+- Product images
+- Price
+- Buy now details
+- Other product information
+
+
+
+
+## Exporting Products with Variations
+
+### Overview
+
+For exporting products that have variations, you need to run the Odoo product export job.
+
+In product management systems like UnoPim, many products are not just single items—they come in multiple variations such as:
+- Size
+- Color
+- Material
+
+These are called product variations or variants.
+
+### How to Export Product Variations
+
+To export products with variations from UnoPim to Odoo, you need to run the **Odoo Product Export Job**.
+
+This job is responsible for transferring all product data, including variations, from UnoPim to your Odoo store.
+
+
diff --git a/docs/odoo-erp/index.md b/docs/odoo-erp/index.md
index 15cc88a..77b15b5 100644
--- a/docs/odoo-erp/index.md
+++ b/docs/odoo-erp/index.md
@@ -1,3 +1,79 @@
-# Odoo ERP Extension
+# UnoPim Odoo Connector
+
+The **UnoPim Odoo Connector** bridges your **Odoo store** and **UnoPim** — letting you manage your entire product catalog from one place and push it directly to Odoo whenever you're ready.
+
+Instead of updating products in two systems separately, you handle everything in UnoPim — categories, products, attributes, images, and variations — and the connector takes care of getting it all into Odoo accurately and efficiently.
+
+
+
+
+

+
+
+
+
+
+## What Can It Do?
+
+The connector works in two directions:
+
+- **Export** — push your product data from UnoPim into Odoo
+- **Import** — pull existing data from Odoo back into UnoPim
+
+
+## Features
+
+### Export
+
+Everything you build in UnoPim can be exported to Odoo:
+
+- **Categories** — export all categories, or only the ones linked to a specific channel. Categories can also be exported directly to **Odoo eCommerce categories**.
+- **Attributes and Options** — export product attributes along with all their selectable options.
+- **Product Models and Products** — export your full product catalog, including product models and individual products.
+- **Product Images** — export multiple images per product.
+- **Targeted Export** — need to export just one product? Use its **SKU**, **internal reference**, or **barcode** to export a specific item without running a full catalog export.
+- **Update Existing Products** — re-run an export job at any time to push the latest changes to products already in Odoo.
+
+### Mapping & Configuration
+
+Before exporting, you can set up mappings to make sure data lands in the right fields in Odoo:
+
+- Map UnoPim categories to their corresponding Odoo categories.
+- Map both standard and custom attributes to Odoo fields.
+- Set **default values** for attribute mappings — useful when a field is required in Odoo but not always filled in UnoPim.
+- Map additional standard attributes as needed.
+
+### Import
+
+You can also bring data from Odoo into UnoPim using the following import job types:
+
+- Categories
+- Attributes
+- Product Models
+- Products
+
+### Advanced Filtering
+
+When running a product export, you can filter exactly what gets exported using:
+
+| Filter | What it does |
+|---|---|
+| **Odoo Credentials** | Select which Odoo store to export to |
+| **Channel** | Export only products from a specific channel |
+| **Locale** | Export product data in a specific language |
+| **Code** | Target a specific export job profile |
+| **Media** | Choose whether to include or exclude product images |
+
+
+## Compatibility
+
+| Requirement | Version |
+|---|---|
+| **Odoo** | Version 19.x |
+| **UnoPim** | Version 1.0.0 or later |
+
+
+> **Please Note:**
+> - The UnoPim Odoo Connector is compatible with **Odoo version 17, 18, and 19**.
+> - Currently, only **select-type attributes** from UnoPim are supported for export to Odoo as variation attributes.
-Placeholder landing page. Real docs are pulled from [`unopim/unopim-odoo-erp`](https://github.com/unopim/unopim-odoo-erp) at build time.
diff --git a/docs/odoo-erp/installation.md b/docs/odoo-erp/installation.md
new file mode 100644
index 0000000..76f4a03
--- /dev/null
+++ b/docs/odoo-erp/installation.md
@@ -0,0 +1,71 @@
+# Installation
+
+Follow the steps below to install the UnoPim Odoo Connector on your UnoPim instance. Make sure you have terminal access to your server before getting started.
+
+
+## Step 1 — Add the Package Files
+
+Unzip the extension ZIP file you downloaded. Inside, you'll find a `packages` folder — merge this into the **root directory** of your UnoPim project.
+
+
+## Step 2 — Register the Service Provider
+
+Open the `bootstrap/providers.php` file and add the following:
+
+```php
+use Webkul\Odoo\Providers\OdooServiceProvider;
+
+return [
+ // ...existing providers...
+ OdooServiceProvider::class,
+];
+```
+
+
+## Step 3 — Update Composer Autoload
+
+Open `composer.json` and add the following line under the `autoload > psr-4` section:
+
+```json
+"Webkul\\Odoo\\": "packages/Webkul/Odoo/src"
+```
+
+
+## Step 4 — Run the Setup Commands
+
+Run the following commands one by one in your terminal. Wait for each one to finish before running the next.
+
+**Dump Composer autoload**
+```bash
+composer dump-autoload
+```
+
+**Run database migrations**
+```bash
+php artisan migrate
+```
+
+**Publish the connector assets**
+```bash
+php artisan vendor:publish --tag=unopim-odoo-connector
+```
+
+**Install the Odoo XML-RPC client package**
+```bash
+composer require alazzi-az/odoo-xmlrpc
+```
+
+**Clear the application cache**
+```bash
+php artisan optimize:clear
+```
+
+
+## Verify the Installation
+
+Once all commands have run successfully, log in to your UnoPim dashboard. You should see an **Odoo icon** in the left sidebar — this confirms the connector has been installed correctly.
+
+
+
+If the icon doesn't appear, try running `php artisan optimize:clear` again and refresh the page.
+
diff --git a/docs/odoo-erp/odoo-setup.md b/docs/odoo-erp/odoo-setup.md
new file mode 100644
index 0000000..39fc91b
--- /dev/null
+++ b/docs/odoo-erp/odoo-setup.md
@@ -0,0 +1,44 @@
+# Setting Up Odoo Before You Begin
+
+Before you start importing or exporting data between UnoPim and Odoo, you need to make sure your Odoo instance has the right apps installed. Without these, the connector won't be able to communicate with Odoo properly.
+
+This is a one-time setup step — once done, you won't need to repeat it.
+
+
+## Step 1 — Open the Odoo Dashboard
+
+Log in to your Odoo account. Once you're on the dashboard, click the **grid icon** (⊞) in the **top-left corner** of the screen. This opens the main app menu where all available Odoo apps are listed.
+
+
+
+
+## Step 2 — Go to Apps
+
+Click on **Apps** from the menu. This takes you to the Odoo App Store, where you can browse and install modules for your Odoo instance.
+
+
+
+Use the search bar to find each app you need.
+
+
+## Step 3 — Install the Required Apps
+
+The following Odoo apps **must be installed** for the UnoPim Odoo Connector to work correctly:
+
+
+
+| App | Why it's needed |
+|---|---|
+| **Sales** | Required for managing products and pricelists in Odoo |
+| **eCommerce** | Enables product publishing and eCommerce category management |
+| **Inventory** | Handles stock and product variant management |
+| **Website** | Required for eCommerce functionality to work in Odoo |
+
+
+
+For each app, click **Install** if it isn't already installed. Wait for each installation to complete before moving on to the next one.
+
+
+> **Tip:** If an app is already installed, it will show an **Installed** badge — you can skip it and move on to the next one.
+
+Once all four apps are installed, your Odoo store is ready to connect with UnoPim. Head over to [Installation](./installation.md) to continue.
\ No newline at end of file
diff --git a/docs/odoo-erp/product-import.md b/docs/odoo-erp/product-import.md
new file mode 100644
index 0000000..75b70ee
--- /dev/null
+++ b/docs/odoo-erp/product-import.md
@@ -0,0 +1,105 @@
+# UnoPim - Odoo Import Product
+
+Importing Products from Odoo
+
+
+## Overview
+
+This import job will import all the products from Odoo to UnoPim.
+
+
+## Prerequisites
+
+Before importing products from Odoo, ensure that you have configured your Odoo credentials in UnoPim. It is also recommended to first import attributes and categories from Odoo.
+
+
+## Step 1: Go to Data Transfer
+
+Navigate to the **Data Transfer** section from the main menu in UnoPim.
+
+
+
+
+## Step 2: Go to Imports
+
+Click on **Imports** to view the available import options.
+
+
+
+
+## Step 3: Create Import
+
+Click on **Create Import** to create a new import profile.
+
+
+
+
+## Step 4: Enter Code and Select Type
+
+In the **General** section, configure the following:
+
+### Code
+
+Enter a unique code for your import profile. This code will help you identify the import profile.
+
+**Example:** odoo_product_import_001
+
+### Type
+
+In the **Type** field, select **Odoo Product** from the dropdown menu.
+
+
+
+
+## Step 5: Configure Settings
+
+In the **Settings** section, configure the following required fields:
+
+### Odoo Credentials
+
+Click on the **Odoo credentials** dropdown and select the specific Odoo credentials or connection you want to import from. This is a required field.
+
+### Channel
+
+Click on the **Channel** dropdown and select the appropriate channel or store view from your Odoo setup. This is a required field.
+
+### Locale
+
+Click on the **Locale** dropdown and select the language or regional settings for importing product data. This is a required field.
+
+### Family
+Click on the Family dropdown and select the product family you want to import products into. This is a required field.
+
+### With Media
+
+Toggle the With Media option to include or exclude product images and other media assets in the import.
+
+#### ON - Import products with all associated images and media files
+#### OFF - Import products without media files
+
+
+
+
+
+
+
+## Step 6: Save Import
+
+Click the **Save Import** button to save your import profile configuration.
+
+
+
+
+## Step 7: Import Now
+
+Once the import profile is saved, click the **Import Now** button to start the import process and import all Odoo products to UnoPim.
+
+
+
+
+## Step 8: Monitor Progress
+
+In the execution process, you can check the progress of the import job and view any errors in the log.
+
+
+
diff --git a/docs/odoo-erp/product-model-import.md b/docs/odoo-erp/product-model-import.md
new file mode 100644
index 0000000..8e18ed4
--- /dev/null
+++ b/docs/odoo-erp/product-model-import.md
@@ -0,0 +1,112 @@
+# UnoPim - Odoo Import Product Model
+
+Importing Product Models from Odoo
+
+
+## Overview
+
+This import job will import all the product models from Odoo to UnoPim.
+
+
+## Prerequisites
+
+Before importing product models from Odoo, ensure that you have configured your Odoo credentials in UnoPim.
+
+
+## Step 1: Go to Data Transfer
+
+Navigate to the **Data Transfer** section from the main menu in UnoPim.
+
+
+
+
+## Step 2: Go to Imports
+
+Click on **Imports** to view the available import options.
+
+
+
+
+## Step 3: Create Import
+
+Click on **Create Import** to create a new import profile.
+
+
+
+
+## Step 4: Enter Code and Select Type
+
+In the **General** section, configure the following:
+
+### Code
+
+Enter a unique code for your import profile. This code will help you identify the import profile.
+
+**Example:** odoo_product_model_import
+
+### Type
+
+In the **Type** field, select **Odoo Product Model** from the dropdown menu.
+
+
+
+## Step 5: Configure Settings
+
+In the **Settings** section, select the appropriate channel, locale, and currency for importing Odoo products to UnoPim.
+
+### Odoo Credentials
+
+Click on the **Odoo credentials** dropdown and select the specific Odoo credentials or connection you want to import from. This is a required field.
+
+### Channel
+
+Click on the **Channel** dropdown and select the appropriate channel or store view from your Odoo setup. This is a required field.
+
+### Locale
+
+Click on the **Locale** dropdown and select the language or regional settings for imported product data (e.g., English, Spanish). This is a required field.
+
+### Family
+
+Click on the **Family** dropdown and select the product family where you want to import product models. This is a required field.
+
+### With Media
+
+Toggle the **With Media** option to choose whether to import product models along with their images and media files.
+
+- **ON** - Import product models with all associated images and media files
+- **OFF** - Import product models without media files
+
+
+
+
+## Step 6: Save Import
+
+Click the **Save Import** button to save your import profile configuration.
+
+
+
+
+## Step 7: Import Now
+
+Once the import profile is saved, click the **Import Now** button to execute the import process and import all product models from Odoo to UnoPim.
+
+
+
+
+## Step 8: Monitor Progress
+
+In the execution process, you can check the progress of the import job and view any errors in the log.
+
+
+
+
+## Benefits of Using Filters
+
+These filters give you fine-grained control over your imports, making it easier to:
+
+- Manage localized catalogs
+- Handle multi-channel data
+- Organize media-rich content
+- Avoid overloading your UnoPim workspace
+
diff --git a/docs/odoo-erp/setup-credentials.md b/docs/odoo-erp/setup-credentials.md
new file mode 100644
index 0000000..8c858ab
--- /dev/null
+++ b/docs/odoo-erp/setup-credentials.md
@@ -0,0 +1,66 @@
+# Setting Up Odoo Credentials
+
+Once the connector is installed, the next step is to connect your Odoo store to UnoPim. This is done by entering your Odoo server details inside the UnoPim dashboard.
+
+
+## Step 1 — Open the Credentials Page
+
+Log in to your UnoPim dashboard and navigate to **Odoo → Credentials → Create Credentials**.
+
+
+
+
+## Step 2 — Enter Your Odoo Server Details
+
+Fill in the following fields to establish the connection:
+
+| Field | What to enter |
+|---|---|
+| **URL** | The full URL of your Odoo server (e.g., `https://mystore.odoo.com`) |
+| **Database Name** | The name of your Odoo database |
+| **Login Username** | Your Odoo admin username |
+| **Login Password** | Your Odoo admin password |
+
+
+
+> **Note:** Each set of credentials must have a unique database name. If you enter a database name that's already in use, UnoPim will show an error and the credentials won't be saved.
+
+
+## Step 3 — Configure Export Settings
+
+After entering the server details, you'll need to define how products should be exported. Fill in the following settings:
+
+### Odoo Allowed Company ID
+Select the **Company ID** for which you want to export products. If your Odoo instance has multiple companies and you want to export to all of them, leave this field blank.
+
+### Default Locale
+Choose the locale that matches your Odoo store's language. For example:
+- `English (United States)`
+- `Spanish (Brazil)`
+
+### Currency
+Select the default currency used in your Odoo store. For example:
+- `US Dollar`
+- `Euro`
+- `British Pound`
+
+### Default Product Identifier
+This tells the connector how exported products will be identified in Odoo. Choose one of the following:
+
+| Option | When to use |
+|---|---|
+| **Internal Reference** (`default_code`) | Use this if your products are identified by an internal reference code in Odoo |
+| **Barcode** (`barcode`) | Use this if your products are identified by their barcode |
+
+
+### Category Export as eCommerce Categories
+Toggle this **on** if you want your UnoPim categories to be exported directly as **Odoo eCommerce categories** rather than standard internal categories.
+
+
+
+## Step 4 — Save Your Credentials
+
+Once all fields are filled in, click **Save**. Your Odoo store is now connected to UnoPim and ready for export and import jobs.
+
+
+> **Tip:** You can connect more than one Odoo store by repeating these steps and creating a separate set of credentials for each store.
\ No newline at end of file
diff --git a/docs/odoo-erp/sidebar.json b/docs/odoo-erp/sidebar.json
index bc20f55..3b8b86b 100644
--- a/docs/odoo-erp/sidebar.json
+++ b/docs/odoo-erp/sidebar.json
@@ -2,7 +2,46 @@
{
"text": "Odoo ERP",
"items": [
- { "text": "Overview", "link": "/odoo-erp/" }
+ { "text": "Overview", "link": "/odoo-erp/" },
+ {"text" : "Odoo Setup", "link": "/odoo-erp/odoo-setup" },
+ {"text" : "Installation", "link": "/odoo-erp/installation" },
+ {"text" : "Setup Odoo Credentials in Unopim", "link": "/odoo-erp/setup-credentials" }
+ ]
+ },
+
+ {
+ "text": "Configuration",
+ "items": [
+ {"text" : "Attribute Mapping", "link": "/odoo-erp/attribute-mapping" },
+ {"text" : "Additional Mapping", "link" : "/odoo-erp/additional-mapping" },
+ {"text" : "Category Mapping", "link" : "/odoo-erp/category-mapping" }
+
+]
+ },
+
+ {
+ "text":"Export Jobs",
+ "items":[
+ {"text" : "Export Attributes", "link": "/odoo-erp/export-attributes" },
+ {"text" : "Export Categories", "link": "/odoo-erp/export-categories" },
+ {"text" : "Export Products", "link": "/odoo-erp/export-products" }
+ ]
+ },
+
+ {
+ "text":"Import Jobs",
+ "items":[
+ {"text" : "Attribute import", "link": "/odoo-erp/attribute-import" },
+ {"text" : "Category Import", "link": "/odoo-erp/category-import" },
+ {"text" : "Product Import", "link": "/odoo-erp/product-import" },
+ {"text" : "Product Model", "link": "/odoo-erp/product-model-import" }
+ ]
+ },
+
+ {
+ "text":"Support",
+ "items":[
+ {"text" : "Contact & Support", "link": "/odoo-erp/contact" }
]
}
]
diff --git a/docs/shopify/index.md b/docs/shopify/index.md
index a055a16..ea833e5 100644
--- a/docs/shopify/index.md
+++ b/docs/shopify/index.md
@@ -52,9 +52,12 @@ Shopify supports **metafields** — custom data fields that go beyond standard p
- Rating
- URL
- JSON
-- Unit Weight
-- Unit Volume
-- Unit Dimension
+- Weight
+- Volume
+- Dimension
+- boolean
+- Date
+- Number
These are exported without needing any additional mapping setup.
diff --git a/docs/woocommerce/api-credentials.md b/docs/woocommerce/api-credentials.md
new file mode 100644
index 0000000..b31224d
--- /dev/null
+++ b/docs/woocommerce/api-credentials.md
@@ -0,0 +1,64 @@
+# Generating WooCommerce API Credentials
+
+Before connecting WooCommerce to UnoPim, you need to generate an API key from your WooCommerce store. This key allows UnoPim to securely communicate with WooCommerce on your behalf.
+
+The whole process takes just a couple of minutes. Follow the steps below.
+
+
+## Step 1 Open WooCommerce Settings
+
+Log in to your WordPress admin panel and go to **WooCommerce → Settings**.
+
+
+
+
+## Step 2 Go to the REST API Section
+
+From the Settings page, click the **Advanced** tab in the top navigation bar. Then click on **REST API** from the sub-menu.
+
+
+
+This page lists all existing API keys for your store. You'll create a new one here.
+
+
+## Step 3 Add a New Key
+
+Click the **Add Key / Create API Key** button.
+
+Fill in the following details on the form that appears:
+
+| Field | What to enter |
+|---|---|
+| **Description** | A label to identify this key e.g., `UnoPim Integration` |
+| **User** | Select the WordPress user this key belongs to Admin is selected by default |
+| **Permissions** | Select **Read/Write** |
+
+
+
+> **Important:** UnoPim requires **Read/Write** permission to export and import data between the two platforms. Selecting **Read Only** will cause exports to fail.
+
+---
+
+## Step 4 Generate the API Key
+
+Once all fields are filled in, click **Generate API Key**.
+
+WooCommerce will generate and display three items:
+
+| Item | What it's used for |
+|---|---|
+| **Consumer Key** | Used to authenticate UnoPim with your WooCommerce store |
+| **Consumer Secret** | Used alongside the Consumer Key for secure authentication |
+| **Barcode** | A visual reference for the key not used in UnoPim |
+
+> **Important:** This is the **only time** WooCommerce will display the Consumer Secret in full. Copy both the **Consumer Key** and **Consumer Secret** immediately and store them somewhere safe. If you lose the secret, you'll need to delete this key and generate a new one.
+
+---
+
+## What You Now Have
+
+You'll need the following two values to set up credentials in UnoPim:
+
+- **Consumer Key**
+- **Consumer Secret**
+
diff --git a/docs/woocommerce/assets/api-key/generate-key.png b/docs/woocommerce/assets/api-key/generate-key.png
new file mode 100644
index 0000000..43ae2e7
Binary files /dev/null and b/docs/woocommerce/assets/api-key/generate-key.png differ
diff --git a/docs/woocommerce/assets/api-key/rest-api.png b/docs/woocommerce/assets/api-key/rest-api.png
new file mode 100644
index 0000000..6bff37d
Binary files /dev/null and b/docs/woocommerce/assets/api-key/rest-api.png differ
diff --git a/docs/woocommerce/assets/api-key/settings.png b/docs/woocommerce/assets/api-key/settings.png
new file mode 100644
index 0000000..dbb76ab
Binary files /dev/null and b/docs/woocommerce/assets/api-key/settings.png differ
diff --git a/docs/woocommerce/assets/api-key/woo-cred.png b/docs/woocommerce/assets/api-key/woo-cred.png
new file mode 100644
index 0000000..14ced21
Binary files /dev/null and b/docs/woocommerce/assets/api-key/woo-cred.png differ
diff --git a/docs/woocommerce/assets/api-key/woocommerce-settings.png b/docs/woocommerce/assets/api-key/woocommerce-settings.png
new file mode 100644
index 0000000..18f9241
Binary files /dev/null and b/docs/woocommerce/assets/api-key/woocommerce-settings.png differ
diff --git a/docs/woocommerce/assets/api-key/woocommerce.png b/docs/woocommerce/assets/api-key/woocommerce.png
new file mode 100644
index 0000000..2431efc
Binary files /dev/null and b/docs/woocommerce/assets/api-key/woocommerce.png differ
diff --git a/docs/woocommerce/assets/jobs/Data-trnsfer.png b/docs/woocommerce/assets/jobs/Data-trnsfer.png
new file mode 100644
index 0000000..16d03a7
Binary files /dev/null and b/docs/woocommerce/assets/jobs/Data-trnsfer.png differ
diff --git a/docs/woocommerce/assets/jobs/attribute-complete.png b/docs/woocommerce/assets/jobs/attribute-complete.png
new file mode 100644
index 0000000..8ce75d9
Binary files /dev/null and b/docs/woocommerce/assets/jobs/attribute-complete.png differ
diff --git a/docs/woocommerce/assets/jobs/attribute-export.png b/docs/woocommerce/assets/jobs/attribute-export.png
new file mode 100644
index 0000000..b815c24
Binary files /dev/null and b/docs/woocommerce/assets/jobs/attribute-export.png differ
diff --git a/docs/woocommerce/assets/jobs/attribute-fields.png b/docs/woocommerce/assets/jobs/attribute-fields.png
new file mode 100644
index 0000000..3327d96
Binary files /dev/null and b/docs/woocommerce/assets/jobs/attribute-fields.png differ
diff --git a/docs/woocommerce/assets/jobs/attribute-import-complete.png b/docs/woocommerce/assets/jobs/attribute-import-complete.png
new file mode 100644
index 0000000..e83384c
Binary files /dev/null and b/docs/woocommerce/assets/jobs/attribute-import-complete.png differ
diff --git a/docs/woocommerce/assets/jobs/attribute-import.png b/docs/woocommerce/assets/jobs/attribute-import.png
new file mode 100644
index 0000000..5eda6d7
Binary files /dev/null and b/docs/woocommerce/assets/jobs/attribute-import.png differ
diff --git a/docs/woocommerce/assets/jobs/attribute-settings.png b/docs/woocommerce/assets/jobs/attribute-settings.png
new file mode 100644
index 0000000..33f8a6d
Binary files /dev/null and b/docs/woocommerce/assets/jobs/attribute-settings.png differ
diff --git a/docs/woocommerce/assets/jobs/category-complete.png b/docs/woocommerce/assets/jobs/category-complete.png
new file mode 100644
index 0000000..96b8b3a
Binary files /dev/null and b/docs/woocommerce/assets/jobs/category-complete.png differ
diff --git a/docs/woocommerce/assets/jobs/category-export.png b/docs/woocommerce/assets/jobs/category-export.png
new file mode 100644
index 0000000..3570c53
Binary files /dev/null and b/docs/woocommerce/assets/jobs/category-export.png differ
diff --git a/docs/woocommerce/assets/jobs/category-fields.png b/docs/woocommerce/assets/jobs/category-fields.png
new file mode 100644
index 0000000..f6f067d
Binary files /dev/null and b/docs/woocommerce/assets/jobs/category-fields.png differ
diff --git a/docs/woocommerce/assets/jobs/category-filter.png b/docs/woocommerce/assets/jobs/category-filter.png
new file mode 100644
index 0000000..710dc07
Binary files /dev/null and b/docs/woocommerce/assets/jobs/category-filter.png differ
diff --git a/docs/woocommerce/assets/jobs/category-import-complete.png b/docs/woocommerce/assets/jobs/category-import-complete.png
new file mode 100644
index 0000000..4d79b75
Binary files /dev/null and b/docs/woocommerce/assets/jobs/category-import-complete.png differ
diff --git a/docs/woocommerce/assets/jobs/category-import.png b/docs/woocommerce/assets/jobs/category-import.png
new file mode 100644
index 0000000..a506189
Binary files /dev/null and b/docs/woocommerce/assets/jobs/category-import.png differ
diff --git a/docs/woocommerce/assets/jobs/create-export.png b/docs/woocommerce/assets/jobs/create-export.png
new file mode 100644
index 0000000..28a0867
Binary files /dev/null and b/docs/woocommerce/assets/jobs/create-export.png differ
diff --git a/docs/woocommerce/assets/jobs/create-import.png b/docs/woocommerce/assets/jobs/create-import.png
new file mode 100644
index 0000000..a7e770a
Binary files /dev/null and b/docs/woocommerce/assets/jobs/create-import.png differ
diff --git a/docs/woocommerce/assets/jobs/data-transfer-import.png b/docs/woocommerce/assets/jobs/data-transfer-import.png
new file mode 100644
index 0000000..988a8c7
Binary files /dev/null and b/docs/woocommerce/assets/jobs/data-transfer-import.png differ
diff --git a/docs/woocommerce/assets/jobs/product-complete.png b/docs/woocommerce/assets/jobs/product-complete.png
new file mode 100644
index 0000000..1093366
Binary files /dev/null and b/docs/woocommerce/assets/jobs/product-complete.png differ
diff --git a/docs/woocommerce/assets/jobs/product-export.png b/docs/woocommerce/assets/jobs/product-export.png
new file mode 100644
index 0000000..00cc6ff
Binary files /dev/null and b/docs/woocommerce/assets/jobs/product-export.png differ
diff --git a/docs/woocommerce/assets/jobs/product-fields-import.png b/docs/woocommerce/assets/jobs/product-fields-import.png
new file mode 100644
index 0000000..7d28b43
Binary files /dev/null and b/docs/woocommerce/assets/jobs/product-fields-import.png differ
diff --git a/docs/woocommerce/assets/jobs/product-fields.png b/docs/woocommerce/assets/jobs/product-fields.png
new file mode 100644
index 0000000..3846389
Binary files /dev/null and b/docs/woocommerce/assets/jobs/product-fields.png differ
diff --git a/docs/woocommerce/assets/jobs/product-import-complete.png b/docs/woocommerce/assets/jobs/product-import-complete.png
new file mode 100644
index 0000000..239d025
Binary files /dev/null and b/docs/woocommerce/assets/jobs/product-import-complete.png differ
diff --git a/docs/woocommerce/assets/jobs/product-import.png b/docs/woocommerce/assets/jobs/product-import.png
new file mode 100644
index 0000000..77ad958
Binary files /dev/null and b/docs/woocommerce/assets/jobs/product-import.png differ
diff --git a/docs/woocommerce/assets/mapping/additional-attribute.png b/docs/woocommerce/assets/mapping/additional-attribute.png
new file mode 100644
index 0000000..b26af77
Binary files /dev/null and b/docs/woocommerce/assets/mapping/additional-attribute.png differ
diff --git a/docs/woocommerce/assets/mapping/attribute-mapping.png b/docs/woocommerce/assets/mapping/attribute-mapping.png
new file mode 100644
index 0000000..52eeb30
Binary files /dev/null and b/docs/woocommerce/assets/mapping/attribute-mapping.png differ
diff --git a/docs/woocommerce/assets/mapping/fields.png b/docs/woocommerce/assets/mapping/fields.png
new file mode 100644
index 0000000..24f53b7
Binary files /dev/null and b/docs/woocommerce/assets/mapping/fields.png differ
diff --git a/docs/woocommerce/assets/mapping/other-mapping.png b/docs/woocommerce/assets/mapping/other-mapping.png
new file mode 100644
index 0000000..90e9c04
Binary files /dev/null and b/docs/woocommerce/assets/mapping/other-mapping.png differ
diff --git a/docs/woocommerce/assets/mapping/quick-export.png b/docs/woocommerce/assets/mapping/quick-export.png
new file mode 100644
index 0000000..2409bb4
Binary files /dev/null and b/docs/woocommerce/assets/mapping/quick-export.png differ
diff --git a/docs/woocommerce/assets/overview/hero-banner.png b/docs/woocommerce/assets/overview/hero-banner.png
new file mode 100644
index 0000000..e202147
Binary files /dev/null and b/docs/woocommerce/assets/overview/hero-banner.png differ
diff --git a/docs/woocommerce/attribute-export.md b/docs/woocommerce/attribute-export.md
new file mode 100644
index 0000000..1b66cec
--- /dev/null
+++ b/docs/woocommerce/attribute-export.md
@@ -0,0 +1,45 @@
+# Attribute Export
+
+The UnoPim WooCommerce Connector allows users to export attribute data from UnoPim to WooCommerce through dedicated export jobs.
+
+## Open the Export Jobs Section
+
+To create an attribute export job, go to:
+
+`Data Transfer > Exports`
+
+
+
+From the Exports page, click **Create Export** in the top-right corner.
+
+
+
+## Create an Attribute Export Job
+
+While creating the export job, the user needs to:
+
+- Enter the **Export Job Code**.
+- Select **WooCommerce Attribute Export** as the export job type.
+
+
+
+## Attribute Export Filters
+
+After selecting the attribute export job type, configure the following filters as needed:
+
+- **WooCommerce Store URL**: Select the required WooCommerce store credentials.
+- **Channel**: Select the channel to use for the export.
+- **Locale**: Select the required locale.
+- **Additional Attribute for Mapping**: Select the additional attribute that should be used for mapping during export.
+
+
+
+## Save and Run the Export Job
+
+After completing the required fields, click **Save Export** to create and save the export job.
+
+Once the job is run, the export progress can be tracked from the **Job Tracker**.
+
+
+
+After the export completes successfully, the selected attributes will be available in the connected WooCommerce store.
diff --git a/docs/woocommerce/attribute-import.md b/docs/woocommerce/attribute-import.md
new file mode 100644
index 0000000..666f70f
--- /dev/null
+++ b/docs/woocommerce/attribute-import.md
@@ -0,0 +1,39 @@
+# Attribute Import
+
+The UnoPim WooCommerce Connector allows users to import WooCommerce attributes into UnoPim by creating an import profile.
+
+## Open the Import Section
+
+To create an import job, go to:
+
+`Import > Create Import Profile`
+
+
+
+From there, click **Create Import** to open the import setup form.
+
+
+
+## Create an Attribute Import Job
+
+While creating the import job, the user needs to:
+
+- Enter the **Code**.
+- Select **WooCommerce Attribute Import** as the import type.
+
+
+
+## Attribute Import Settings
+
+Under **Settings**, configure the following:
+
+- **WooCommerce Store URL**: Select the required WooCommerce store credentials.
+- **Locale**: Select the locale to be used during import.
+
+
+
+After entering the required values, click **Save Import** to save the import profile.
+
+Once the job is executed, the imported attributes will be available in UnoPim.
+
+
diff --git a/docs/woocommerce/attribute-mapping.md b/docs/woocommerce/attribute-mapping.md
new file mode 100644
index 0000000..b43dac2
--- /dev/null
+++ b/docs/woocommerce/attribute-mapping.md
@@ -0,0 +1,66 @@
+# Attribute Mapping in UnoPim
+
+Attribute mapping allows users to connect WooCommerce product fields with the correct UnoPim attributes. This ensures that product data is transferred into the right fields during synchronization.
+
+
+
+While setting up the mapping, users need to select the UnoPim attribute that matches each WooCommerce product information field.
+
+## Default WooCommerce Fields Available for Mapping
+
+By default, the following WooCommerce fields can be mapped with UnoPim attributes:
+
+- **SKU `[sku]`**: Unique identifier for each product, used for inventory and tracking.
+- **Slug `[slug]`**: URL-friendly version of the product name used in permalinks.
+- **Product Name `[name]`**: The title of the product displayed to customers.
+- **Price `[regular_price]`**: Standard selling price of the product.
+- **Description `[description]`**: Full product description shown on the product page.
+- **Short Description `[short_description]`**: Brief product summary typically shown near the top of the product page.
+- **Weight `[weight]`**: Physical weight of the product, commonly used for shipping calculations.
+- **Length `[length]`**: Product length dimension used for shipping or display.
+- **Width `[width]`**: Product width dimension used for packaging or logistics.
+- **Height `[height]`**: Product height dimension used in physical handling.
+- **Quantity `[stock_quantity]`**: Available stock quantity for the product.
+- **Is Featured? `[featured]`**: Indicates whether the product is marked as featured in the store.
+- **Purchase Notes `[purchase_note]`**: Message sent to customers after purchase, usually for instructions or follow-up information.
+- **Reviews Allowed `[reviews_allowed]`**: Defines whether customers can leave reviews for the product.
+- **Backorders Allowed `[backorders_allowed]`**: Defines whether the product can be ordered when it is out of stock.
+
+
+
+> **Note:** For the WooCommerce **Quantity `[stock_quantity]`** field, map a UnoPim **text-type attribute**.
+
+## Add Additional Meta Keys
+
+The connector also allows users to add custom WooCommerce fields through **Additional Meta Keys**.
+
+
+
+In this section, users can enter a WooCommerce field code and press **Enter** to add it as a new mapping field. After that, they can assign the appropriate UnoPim attribute to the newly added field.
+
+## Other Mappings
+
+Under **Other Mappings**, the admin can configure the following options:
+
+- **Non-Select attribute sent as Select attribute (recommended)**: Use this option when a WooCommerce field should be handled as a select-type value during synchronization.
+- **Attribute to be used as a custom attribute**: Use this option to define which UnoPim attributes should be treated as custom attributes in WooCommerce. Variant attributes must also be added here.
+- **Attribute to be used as Images**: Use this option to select the UnoPim attribute that should be used for product images.
+
+
+
+This section is also used to add additional keywords required for mapping behavior.
+
+## Quick Export Settings
+
+Under **Quick Export Settings**, the admin needs to configure the following default values:
+
+- Select the default **channel** for quick export.
+- Select the default **locale**.
+- Select the default **currency**.
+- Enable **Auto Sync Products** if products should be synced automatically from UnoPim to WooCommerce when they are created, updated, or deleted.
+
+For **Quick Export**, enabling auto sync is not required. The admin only needs to assign the default values for **channel**, **locale**, and **currency** in the attribute mapping, and then enable **Quick Export** in the credential settings.
+
+
+
+After completing the mapping configuration, click **Save** to store the settings.
diff --git a/docs/woocommerce/category-export.md b/docs/woocommerce/category-export.md
new file mode 100644
index 0000000..b06ea56
--- /dev/null
+++ b/docs/woocommerce/category-export.md
@@ -0,0 +1,46 @@
+# Category Export
+
+The UnoPim WooCommerce Connector allows users to export category data from UnoPim to WooCommerce through dedicated export jobs.
+
+## Open the Export Jobs Section
+
+To create a category export job, go to:
+
+`Data Transfer > Exports`
+
+
+
+From the Exports page, click **Create Export** in the top-right corner.
+
+
+
+## Create a Category Export Job
+
+While creating the export job, the user needs to:
+
+- Enter the **Export Job Code**.
+- Select **WooCommerce Category Export** as the export job type.
+
+
+
+## Category Export Filters
+
+After selecting the category export job type, configure the available filters as required for your store and catalog data.
+
+Typically, the user needs to select:
+
+- **WooCommerce Store URL**: Select the required WooCommerce store credentials.
+- **Channel**: Select the channel to use for the export.
+- **Locale**: Select the required locale.
+
+
+
+## Save and Run the Export Job
+
+After filling in the required details, click **Save Export** to create and save the export job.
+
+Once the job is run, the export progress can be viewed from the **Job Tracker**.
+
+
+
+After the export completes successfully, the categories will be available in the connected WooCommerce store.
diff --git a/docs/woocommerce/category-import.md b/docs/woocommerce/category-import.md
new file mode 100644
index 0000000..f6af67b
--- /dev/null
+++ b/docs/woocommerce/category-import.md
@@ -0,0 +1,39 @@
+# Category Import
+
+The UnoPim WooCommerce Connector allows users to import WooCommerce categories into UnoPim by creating an import profile.
+
+## Open the Import Section
+
+To create an import job, go to:
+
+`Import > Create Import Profile`
+
+
+
+From there, click **Create Import** to open the import setup form.
+
+
+
+## Create a Category Import Job
+
+While creating the import job, the user needs to:
+
+- Enter the **Code**.
+- Select **WooCommerce Category Import** as the import type.
+
+
+
+## Category Import Settings
+
+Under **Settings**, configure the following:
+
+- **WooCommerce Store URL**: Select the required WooCommerce store credentials.
+- **Locale**: Select the locale to be used during import.
+
+
+
+After entering the required values, click **Save Import** to save the import profile.
+
+Once the job is executed, the imported categories will be available in UnoPim.
+
+
diff --git a/docs/woocommerce/contact-support.md b/docs/woocommerce/contact-support.md
new file mode 100644
index 0000000..78677d3
--- /dev/null
+++ b/docs/woocommerce/contact-support.md
@@ -0,0 +1,7 @@
+# Support
+
+That wraps up the User Guide for the UnoPim WooCommerce Connector. We hope this documentation helps you get started smoothly and manage your catalog integration with ease.
+
+For any queries or doubts, feel free to reach out to us at support@webkul.com.
+
+You can also raise a ticket through our HelpDesk System.
\ No newline at end of file
diff --git a/docs/woocommerce/index.md b/docs/woocommerce/index.md
index 085f2e7..3fb2f8d 100644
--- a/docs/woocommerce/index.md
+++ b/docs/woocommerce/index.md
@@ -1,3 +1,43 @@
-# Woocommerce Extension
+# UnoPim WooCommerce Connector
+
+The **UnoPim WooCommerce Connector** links your **WooCommerce store** with **UnoPim** a powerful Product Information Management (PIM) system so you can manage all your product data from one place and keep both platforms in sync automatically.
+
+
+
+
+

+
+
+
+
+If you're tired of updating product information in WooCommerce and UnoPim separately, this connector solves that. Make your changes once in UnoPim and let the connector handle the rest categories, attributes, products, and variations all stay consistent across both platforms without manual effort.
+
+
+## How It Works
+
+The connector works in **both directions**:
+
+- **Export (UnoPim → WooCommerce)** push your product catalog from UnoPim to your WooCommerce store.
+- **Import (WooCommerce → UnoPim)** pull existing WooCommerce data into UnoPim to centralise your catalog management.
+- **Auto Sync** any product you create, update, or delete in UnoPim is automatically reflected in WooCommerce in real time no manual export needed.
+
+## Features
+
+### Export (UnoPim → WooCommerce)
+- Export **categories** from UnoPim to WooCommerce.
+- Export **attributes** and **attribute terms** from UnoPim to WooCommerce.
+- Export **products** including variations and attribute values.
+- **Quick Export** run a fast product export job for selected products without a full catalog run.
+
+### Import (WooCommerce → UnoPim)
+- Import **categories** from WooCommerce into UnoPim.
+- Import **attributes** and **attribute terms** from WooCommerce into UnoPim.
+- Import **products** from WooCommerce into UnoPim.
+
+### Sync & Credentials
+- **Auto Sync** product creates, updates, and deletes in UnoPim are automatically pushed to WooCommerce.
+- **Multiple credentials** connect more than one WooCommerce store to the same UnoPim instance.
+
+
+
-Placeholder landing page. Real docs are pulled from the project repo at build time.
diff --git a/docs/woocommerce/installation.md b/docs/woocommerce/installation.md
new file mode 100644
index 0000000..3ac02fc
--- /dev/null
+++ b/docs/woocommerce/installation.md
@@ -0,0 +1,75 @@
+# Installation
+
+Follow the steps below to install the UnoPim WooCommerce Connector. You'll need terminal access to your server before getting started.
+
+> **Note:** UnoPim 2.0.0 uses the **Laravel 12 bootstrap architecture** (`bootstrap/app.php` fluent API).
+
+## Step 1 Add the Package Files
+
+Unzip the extension ZIP file. Inside, you'll find a `packages` folder merge it into the **root directory** of your UnoPim project.
+
+
+## Step 2 Register the Service Provider
+
+Open `bootstrap/providers.php` and add the following:
+
+```php
+use Webkul\WooCommerce\Providers\WooCommerceServiceProvider;
+
+return [
+ // ...existing providers...
+ WooCommerceServiceProvider::class,
+];
+```
+
+
+## Step 3 Update Composer Autoload
+
+Open `composer.json` and add the following line under the `autoload > psr-4` section:
+
+```json
+"Webkul\\WooCommerce\\": "packages/Webkul/WooCommerce/src"
+```
+
+
+## Step 4 Run the Setup Commands
+
+Run the following commands one by one. Wait for each to complete before moving to the next.
+
+**Refresh the Composer autoloader**
+```bash
+composer dump-autoload
+```
+
+**Install the package**
+```bash
+php artisan woocommerce-package:install
+```
+This runs the database migrations and publishes the package assets automatically.
+
+**Build the frontend assets**
+```bash
+cd packages/Webkul/WooCommerce
+npm install
+npm run build
+cd ../../..
+```
+
+**Clear the application cache**
+```bash
+php artisan optimize:clear
+```
+
+**Restart the queue worker**
+```bash
+php artisan queue:restart
+```
+> The queue worker must be restarted whenever application code changes. This command sends a safe restart signal it waits for the current job to finish before restarting, so no jobs are lost.
+
+
+## Verify the Installation
+
+Once all commands have completed, log in to your UnoPim dashboard. You should see the **WooCommerce** option appear in the left sidebar this confirms the connector is installed and ready to configure.
+
+If it doesn't appear, run `php artisan optimize:clear` again and refresh the page.
+
diff --git a/docs/woocommerce/product-export.md b/docs/woocommerce/product-export.md
new file mode 100644
index 0000000..574ee29
--- /dev/null
+++ b/docs/woocommerce/product-export.md
@@ -0,0 +1,47 @@
+# Product Export
+
+The UnoPim WooCommerce Connector allows users to export product data from UnoPim to WooCommerce through dedicated export jobs.
+
+## Open the Export Jobs Section
+
+To create a product export job, go to:
+
+`Data Transfer > Exports`
+
+
+
+From the Exports page, click **Create Export** in the top-right corner.
+
+
+
+## Create a Product Export Job
+
+While creating the export job, the user needs to:
+
+- Enter the **Export Job Code**.
+- Select **WooCommerce Product Export** as the export job type.
+
+
+
+## Product Export Filters
+
+After selecting the product export job type, configure the following filters as needed:
+
+- **WooCommerce Store URL**: Select the required WooCommerce store credentials.
+- **Channel**: Select the channel for exporting.
+- **Locale**: Select the required locale.
+- **Currency**: Select the required currency.
+- **UnoPim Product SKU**: Enter the SKU of the specific product that needs to be exported.
+- **With Media**: Enable this option if product images should also be exported to WooCommerce.
+
+
+
+## Save and Run the Export Job
+
+After filling in the required details, click **Save Export** to create and save the export job.
+
+Once the export job is run, the user can monitor its progress from the **Job Tracker**.
+
+
+
+After the export completes successfully, the products will be visible in the connected WooCommerce store.
diff --git a/docs/woocommerce/product-import.md b/docs/woocommerce/product-import.md
new file mode 100644
index 0000000..6b06f27
--- /dev/null
+++ b/docs/woocommerce/product-import.md
@@ -0,0 +1,43 @@
+# Product Import
+
+The UnoPim WooCommerce Connector allows users to import WooCommerce products into UnoPim by creating an import profile.
+
+## Open the Import Section
+
+To create an import job, go to:
+
+`Import > Create Import Profile`
+
+
+
+From there, click **Create Import** to open the import setup form.
+
+
+
+## Create a Product Import Job
+
+While creating the import job, the user needs to:
+
+- Enter the **Code**.
+- Select **WooCommerce Product Import** as the import type.
+
+
+
+## Product Import Settings
+
+Under **Settings**, configure the following:
+
+- **WooCommerce Store URL**: Select the required WooCommerce store credentials.
+- **Locale**: Select the locale to be used during import.
+- **Channel**: Select the channel for importing products.
+- **Currency**: Select the currency to be used during import.
+- **Family**: Select the family to which the imported products should belong.
+- **With Media**: Enable this option if product media should also be imported.
+
+
+
+After entering the required values, click **Save Import** to save the import profile.
+
+Once the job is executed, the imported products will be available in UnoPim.
+
+
diff --git a/docs/woocommerce/setup-credentials.md b/docs/woocommerce/setup-credentials.md
new file mode 100644
index 0000000..58f7b0e
--- /dev/null
+++ b/docs/woocommerce/setup-credentials.md
@@ -0,0 +1,39 @@
+# Setup Credentials in UnoPim
+
+Once the UnoPim WooCommerce Connector is installed, it becomes available in the left-side menu of the UnoPim admin panel.
+
+From there, go to **WooCommerce > Credentials > Create** to add a new WooCommerce account and connect it with UnoPim.
+
+
+
+This credential setup allows UnoPim to communicate securely with your WooCommerce store for product, category, attribute, and variation synchronization.
+
+## Create a New Credential
+
+While creating a new credential, the admin needs to enter the following details:
+
+### General Details
+
+- **WooCommerce URL**: Enter the full URL of your WooCommerce store.
+- **Consumer Key**: Enter the Consumer Key generated from WooCommerce.
+- **Consumer Secret**: Enter the Consumer Secret generated from WooCommerce.
+
+
+
+## Settings
+
+The connector also provides the following configuration options:
+
+- **Is Active**: This option is enabled by default when a new credential is created. You can enable or disable the credential at any time by toggling this option.
+- **Default for Quick Export**: Enable this option if you want to use the credential for WooCommerce quick export jobs.
+
+
+
+> **Note:** Only one credential can be set as the default for quick export at a time.
+
+## Navigation Flow
+
+Follow this path in the UnoPim admin panel:
+
+`WooCommerce > Credentials > Create`
+
diff --git a/docs/woocommerce/sidebar.json b/docs/woocommerce/sidebar.json
index d5c5b37..2788bc6 100644
--- a/docs/woocommerce/sidebar.json
+++ b/docs/woocommerce/sidebar.json
@@ -2,7 +2,42 @@
{
"text": "Woocommerce",
"items": [
- { "text": "Overview", "link": "/woocommerce/" }
+ { "text": "Overview", "link": "/woocommerce/" },
+ {"text" : "Installation", "link": "/woocommerce/installation" },
+ {"text" : "Generate WooCommerce API Credentials", "link": "/woocommerce/api-credentials" },
+ {"text" : "Setup Credentials in UnoPim", "link": "/woocommerce/setup-credentials" }
+ ]
+ },
+
+ {
+ "text" : "Mapping",
+ "items" : [
+ {"text" : "Attribute Mapping Template", "link": "/woocommerce/attribute-mapping" }
+ ]
+ },
+
+ {
+ "text" : "Export Jobs",
+ "items" : [
+ {"text": "Attribute Export", "link": "/woocommerce/attribute-export" },
+ {"text": "Category Export", "link": "/woocommerce/category-export" },
+ {"text" : "Products Export", "link": "/woocommerce/product-export" }
+ ]
+ },
+
+ {
+ "text" : "Import Jobs",
+ "items" : [
+ {"text": "Attribute Import", "link": "/woocommerce/attribute-import" },
+ {"text": "Category Import", "link": "/woocommerce/category-import" },
+ {"text": "Product Import", "link": "/woocommerce/product-import" }
+ ]
+ },
+
+ {
+ "text" : "Support",
+ "items" : [
+ {"text" : "Contact Support", "link": "/woocommerce/contact-support" }
]
}
]