แท่น
หน้าตา
สตูดิโอตัวแทน
สร้างและปรับแต่งตัวแทนของคุณอย่างรวดเร็ว
เครื่องยนต์อัตโนมัติ
ใช้ LLMs เพื่อเป็นแนวทางการสนทนาและงานต่างๆ
ฐานความรู้
ฝึกบอทของคุณด้วยแหล่งความรู้ที่กําหนดเอง
การส่งต่อของมนุษย์
จัดการการสนทนาโดยมีส่วนร่วมของมนุษย์
ตาราง
จัดเก็บและจัดการข้อมูลการสนทนา
ช่อง
Whatsapp ตราสัญลักษณ์
WhatsApp
Instagram ตราสัญลักษณ์
Instagram
เฟสบุ๊ค Messenger โลโก้
Messenger
Slack โลโก้
Slack
ทุกช่องทาง
การบูรณาการ
โลโก้ฮับสปอต
ฮับสปอต
Notion โลโก้
Notion
โลโก้ Jira
จิรา
Calendly โลโก้
Calendly
การบูรณาการทั้งหมด
LLM ผู้ให้บริการ
OpenAI โลโก้
OpenAI
Anthropic โลโก้
Anthropic
Groq โลโก้
Groq
โลโก้ HuggingFace
Hugging Face
ทั้งหมด LLMs
โซ ลู ชั่น
เพื่อ
องค์กร
ทำให้เวิร์กโฟลว์การผลิตที่สำคัญต่อภารกิจเป็นอัตโนมัติ
เอเจนซี่
ให้บริการตัวแทนที่มีความซับซ้อน
นักพัฒนา
สำรวจ API ที่แข็งแกร่งสำหรับการพัฒนาตัวแทน
เรื่องราวของลูกค้า
ค้นพบจากลูกค้าที่ประสบความสําเร็จว่า Botpress กําลังเปลี่ยนแปลงธุรกิจทั่วโลก
ตามอุตสาหกรรม
อีคอมเมิร์ซ
การศึกษา
การเงิน
การต้อนรับ
ทุกอุตสาหกรรม
ตามแผนก
ขาย
วิศวกรรม
ผลิตภัณฑ์
ไอทีเอสเอ็ม
ทุกแผนก
ตามกรณีการใช้งาน
การทำงานอัตโนมัติ
การจัดการตั๋ว
ผู้ช่วยช้อปปิ้ง
ผลิตภัณฑ์ Copilot
กรณีการใช้งานทั้งหมด
ทรัพยากร
จำเป็น
Academy
เรียนรู้การสร้างผ่านหลักสูตรที่คัดสรรมา
ห้องสมุด
ทรัพยากรเพื่อเพิ่มประสิทธิภาพเวิร์กโฟลว์ AI ของคุณ
บล็อก
ข้อมูลเชิงลึกและการอัพเดทเกี่ยวกับ Botpress และตัวแทน AI
อาคาร
Discord
เข้าร่วมกับเพื่อนร่วมงานหลายพันคนและแบ่งปันความคิด
เอกสาร
คำแนะนำและเอกสารอ้างอิงที่ครอบคลุม
เอพีไอ
เอกสารอ้างอิงสำหรับใช้งานกับระบบภายนอก
กิจกรรม
พบปะรายเดือนสำหรับนักพัฒนาและผู้ที่ชื่นชอบเทคโนโลยี
วิดีโอ
บทช่วยสอน การสาธิต และการแนะนำผลิตภัณฑ์
บันทึกการเปลี่ยนแปลง
ติดตามข้อมูลอัปเดตล่าสุด Botpress อัพเดท
พันธมิตร
มาเป็นหุ้นส่วน
เข้าร่วมเครือข่ายผู้เชี่ยวชาญที่ผ่านการรับรองของเรา
จ้างผู้เชี่ยวชาญ
เชื่อมต่อกับคู่ค้าและที่ปรึกษา
เอกสาร
องค์กร
ราคา
เข้าสู่ระบบ
ติดต่อไซน์อัพ
กลับไปที่ Hub

พลัส/มาเจนโต้2

v2.0.0
ติดตั้งบนพื้นที่ทํางานของคุณ
ดูแลโดย Botpress ทีมเติบโต
  # Magento 2 (Adobe Commerce) Integration for Botpress

## Overview

This Botpress integration allows seamless interaction with **Magento 2 (Adobe Commerce)** to fetch product information, stock data, and sync products to Botpress tables. Perfect for e-commerce chatbots that need real-time product data and inventory management.

## Features

- **Product Management:** Retrieve products with flexible search criteria
- **Stock Information:** Get real-time stock levels and availability
- **Data Synchronization:** Sync products to Botpress tables with automatic schema creation
- **Custom Attributes:** Support for custom product attributes
- **Advanced Filtering:** Filter products during sync operations
- **OAuth Authentication:** Secure API access using OAuth 1.0a

---

## Installation and Configuration

### Step 1: Create Magento Integration

1. Open your **Magento Admin Panel**
2. Navigate to **System > Extensions > Integrations**
3. Click **Add New Integration**
4. Enter a valid name (e.g., `Botpress Integration`)
5. Go to the **API** tab and check:
   - `Catalog` and all items underneath it
   - `Inventory` (for stock operations)
   - `User Content` > `All Reviews`
   - `Reports` > `Reviews` (By Customers, By Products)
   - `Attributes` > `Product`, `Attribute Set`, `Ratings`, `Swatches`

   > **Note:** These additional API scopes are required for full product, review, and attribute support in the integration.
   >
   > **To enable review functionality, you must also install the Reviews API module:**
   >
   > ```sh
   > composer require divante/magento2-review-api
   >
   > bin/magento setup:upgrade
   > ```
   >
   > This ensures the necessary endpoints for product reviews are available in your Magento instance.

6. Return to the **Integration Info** tab, enter your admin password, and click **Save**
7. In the integrations list, click **Activate** next to your new integration
8. Copy the following credentials:
   - **Consumer Key**
   - **Consumer Secret**
   - **Access Token**
   - **Access Token Secret**

### Step 2: Configure Botpress Integration

1. In Botpress, navigate to your bot's **Integrations** section
2. Find and enable the **Magento 2** integration
3. Enter the following configuration:
   - **Magento Domain URL** (e.g., `www.yourstore.com`)
   - **Store Code** (optional, defaults to `all` - see Store Code section below)
   - **Consumer Key**
   - **Consumer Secret**
   - **Access Token**
   - **Access Token Secret**
   - **Botpress Personal Access Token (PAT)** for Tables API access
4. Click **Save Configuration**

> **Note:** The integration will automatically detect your store's base currency during the first sync operation. No additional currency configuration is required.

---

## Store Code Configuration

The **Store Code** parameter allows you to specify which Magento store view to use for API requests. This is particularly useful for multi-store Magento installations.

### Default Behavior

- **Default Value:** `all` (accesses all store views)
- **When to use:** Single-store installations or when you want to access products across all store views

### Multi-Store Configuration

For multi-store Magento installations, you can specify a specific store code:

- **Store Code Examples:**
  - `/default` - Default store view
  - `/en` - English store view
  - `/fr` - French store view
  - `/de` - German store view
  - `/us` - US store view

### How to Find Your Store Code

1. In your **Magento Admin Panel**, navigate to **Stores > All Stores**
2. Click on the **Store View** tab
3. The **Code** column shows the store codes available for your installation
4. Use the code with a leading slash (e.g., `/en` for the English store view)

### Usage Examples

- **Single Store:** Leave as default (`all`) or use `default`
- **Multi-Store English:** Use `en` to access only English store products
- **Multi-Store French:** Use `fr` to access only French store products

> **Note:** The store code affects all API requests, including product retrieval, stock information, and sync operations. Make sure to use the appropriate store code for your use case.

---

## Available Actions

### **Get Products**

Retrieve products from your Magento catalog using flexible search criteria.

> **Note:** To filter products, provide the filter JSON directly (as an array or object) in the input field—do not wrap it in a string, do not use escaped characters. All filter JSON examples in this guide apply to both the **Get Products** and **Sync Products to Botpress Table** actions.

#### **Input Example**

**Filter by Price:**

```json
[{ "field": "price", "condition": "gt", "value": 100 }]
```

**Filter by SKU:**

```json
[{ "field": "sku", "condition": "eq", "value": "24-MB01" }]
```

#### **Output**

```json
{
  "result": {
    "items": [
      {
        "id": 1,
        "sku": "24-MB01",
        "name": "Joust Duffle Bag",
        "price": 34.0,
        "type_id": "simple",
        "created_at": "2023-01-01 00:00:00",
        "updated_at": "2023-01-01 00:00:00"
      }
    ],
    "search_criteria": {},
    "total_count": 1
  }
}
```

### **Get Stock Item**

Get real-time stock information for a specific product by SKU.

#### **Input Parameters**

| Parameter | Type   | Required | Description                                         |
| --------- | ------ | -------- | --------------------------------------------------- |
| `sku`     | String | Yes      | The SKU of the product to get stock information for |

#### **Usage Example**

```json
{
  "sku": "24-MB01"
}
```

#### **Output**

```json
{
  "qty": 50,
  "is_in_stock": true
}
```

### **Sync Products to Botpress Table**

Automatically sync products from Magento to a Botpress table with intelligent schema creation. Large syncs are automatically split across multiple webhook executions to handle timeouts.

#### **Input Parameters**

| Parameter                        | Type    | Required | Description                                                   |
| -------------------------------- | ------- | -------- | ------------------------------------------------------------- |
| `table_name`                     | String  | Yes      | Name of the Botpress table to sync products to                |
| `custom_columns_to_add_to_table` | String  | No       | Comma-separated list of custom product attributes             |
| `filters_json`                   | String  | No       | JSON array of filter objects for selective syncing            |
| `retrieve_reviews`               | Boolean | No       | Whether to fetch and include product reviews (default: false) |

#### **Webhook Continuation Setup**

For large product catalogs, the sync action automatically continues in batches using webhook.
**No manual intervention is required**—the sync will continue automatically until all products are processed.

#### **Default Table Schema**

The integration automatically creates a table with the following columns:

| Column Name      | Type    | Description                                                          |
| ---------------- | ------- | -------------------------------------------------------------------- |
| `sku`            | text    | Product SKU (required, unique)                                       |
| `name`           | text    | Product name                                                         |
| `description`    | text    | Product description                                                  |
| `price`          | number  | Product price                                                        |
| `original_price` | number  | Original price (if available)                                        |
| `currency`       | text    | Currency code (e.g., USD)                                            |
| `image_url`      | text    | Main product image URL                                               |
| `thumbnail_url`  | text    | Thumbnail image URL                                                  |
| `stock_qty`      | number  | Quantity in stock                                                    |
| `is_in_stock`    | boolean | Whether the product is in stock                                      |
| `average_rating` | number  | Average review rating (only populated if `retrieve_reviews` is true) |
| `review_count`   | number  | Number of reviews (only populated if `retrieve_reviews` is true)     |

#### **Usage Examples**

**Basic Sync:**

- **Table Name:** magento_products

**With Custom Attributes:**

- **Table Name:** magento_products
- **Custom Columns to Add to Table:** color,brand,size,material

**With Filtering:**

- **Table Name:** magento_products
- **Custom Columns to Add to Table:** color,tent_type
- **Filters JSON:** [{"field": "price", "condition": "gt", "value": 50}]

**With Reviews Enabled:**

- **Table Name:** magento_products
- **Custom Columns to Add to Table:** color,brand
- **Retrieve Reviews:** true
- **Filters JSON:** [{"field": "price", "condition": "gt", "value": 100}]

#### **Output**

```json
{
  "success": true,
  "synced_count": 150,
  "total_count": 200,
  "table_name": "magento_products"
}
```

---

## Advanced Filtering

### Filter Conditions

When using `filters_json` in the sync action, you can use the following conditions based on the [Adobe Commerce REST API documentation](https://developer.adobe.com/commerce/webapi/rest/use-rest/performing-searches/#logical-and-and-or-search):

| Condition | Description                                   | Example                                                          |
| --------- | --------------------------------------------- | ---------------------------------------------------------------- |
| `eq`      | Equals                                        | `{"field": "sku", "condition": "eq", "value": "24-MB01"}`        |
| `neq`     | Not equal                                     | `{"field": "price", "condition": "neq", "value": 0}`             |
| `gt`      | Greater than                                  | `{"field": "price", "condition": "gt", "value": 100}`            |
| `gteq`    | Greater than or equal                         | `{"field": "price", "condition": "gteq", "value": 50}`           |
| `lt`      | Less than                                     | `{"field": "price", "condition": "lt", "value": 200}`            |
| `lteq`    | Less than or equal                            | `{"field": "price", "condition": "lteq", "value": 150}`          |
| `from`    | Beginning of a range (must be used with `to`) | `{"field": "price", "condition": "from", "value": 50}`           |
| `to`      | End of a range (must be used with `from`)     | `{"field": "price", "condition": "to", "value": 200}`            |
| `like`    | Like (supports SQL wildcard characters)       | `{"field": "name", "condition": "like", "value": "jacket"}`      |
| `nlike`   | Not like                                      | `{"field": "name", "condition": "nlike", "value": "test"}`       |
| `in`      | In (comma-separated list of values)           | `{"field": "sku", "condition": "in", "value": "SKU1,SKU2,SKU3"}` |
| `nin`     | Not in (comma-separated list of values)       | `{"field": "sku", "condition": "nin", "value": "SKU1,SKU2"}`     |
| `finset`  | A value within a set of values                | `{"field": "category_id", "condition": "finset", "value": "5"}`  |
| `nfinset` | A value that is not within a set of values    | `{"field": "category_id", "condition": "nfinset", "value": "5"}` |
| `moreq`   | More or equal                                 | `{"field": "price", "condition": "moreq", "value": 100}`         |
| `null`    | Is null                                       | `{"field": "description", "condition": "null"}`                  |
| `notnull` | Not null                                      | `{"field": "color", "condition": "notnull"}`                     |

### Filter Examples

#### Filter by Price Range

**Table Name:**
magentoProducts

**Custom Columns to Add to Table:**
(leave blank or enter your custom attributes)

**Filters JSON:**
[
{ "field": "price", "condition": "gteq", "value": 50 },
{ "field": "price", "condition": "lteq", "value": "200 }
]

---

#### Filter by Custom Attributes

**Table Name:**
magentoProducts

**Custom Columns to Add to Table:**
color,brand

**Filters JSON:**
[
{ "field": "color", "condition": "notnull" },
{ "field": "brand", "condition": "eq", "value": "Nike" }
]

---

#### Filter by SKU Pattern

**Table Name:**
magentoProducts

**Custom Columns to Add to Table:**
(leave blank or enter your custom attributes)

**Filters JSON:**
[
{ "field": "sku", "condition": "neq", "value": "" }
]

---

### Logical AND and OR Operations

**Logical AND (multiple filter groups):**

```json
[
  { "field": "price", "condition": "gteq", "value": 50 },
  { "field": "price", "condition": "lteq", "value": 200 },
  { "field": "status", "condition": "eq", "value": "1" }
]
```

**Logical OR (multiple filters in same group):**

```json
[
  { "field": "sku", "condition": "like", "value": "WSH%" },
  { "field": "sku", "condition": "like", "value": "WP%" }
]
```

**Complex AND/OR combination:**

```json
[
  { "field": "sku", "condition": "like", "value": "WSH%" },
  { "field": "sku", "condition": "like", "value": "WP%" },
  { "field": "price", "condition": "from", "value": 40 },
  { "field": "price", "condition": "to", "value": 49.99 }
]
```

> **Note:** OR operations can only be performed within the same filter group. You cannot perform OR across different filter groups like `(A AND B) OR (X AND Y)`.

---

## 📋 Search Criteria Reference

For advanced product filtering, refer to the [Adobe Commerce API Documentation](https://developer.adobe.com/commerce/webapi/rest/use-rest/performing-searches/).

---

## Best Practices

### Performance Optimization

- Use specific search criteria to reduce response times

### Data Management

- Use custom columns to add to table to include relevant product information
- Enable reviews retrieval for products that have customer feedback

### Security

- Keep your OAuth credentials secure

---

## 🔗 Additional Resources

- [Adobe Commerce API Documentation](https://developer.adobe.com/commerce/webapi/rest/)
- [Botpress Tables API](https://botpress.com/docs/learn/reference/tables)

สร้างสิ่งที่ดีกว่าด้วย Botpress

สร้างประสบการณ์ตัวแทน AI ที่น่าทึ่ง

เริ่มต้นใช้งานฟรี
เรียนรู้เพิ่มเติมที่ Botpress Academy

สร้างตัวแทน AI ได้ดีขึ้นและรวดเร็วยิ่งขึ้นด้วยหลักสูตร คำแนะนำ และบทช่วยสอนที่เราคัดสรรมา

จ้างผู้เชี่ยวชาญ

เชื่อมต่อกับนักพัฒนาที่ผ่านการรับรองของเราเพื่อค้นหาผู้สร้างผู้เชี่ยวชาญที่เหมาะกับความต้องการของคุณ

การดําเนินงานของระบบทั้งหมด
SOC 2
รับรอง
จีดีพีอาร์
ได้มาตรฐาน
© 2025
แท่น
ราคา
สตูดิโอตัวแทน
เครื่องยนต์อัตโนมัติ
ฐานความรู้
การส่งต่อของมนุษย์
ตาราง
ฮับ
การบูรณาการ
ช่อง
LLMs
ทรัพยากร
พูดคุยกับฝ่ายขาย
การเอกสาร
จ้างผู้เชี่ยวชาญ
วิดีโอ
เรื่องราวของลูกค้า
ข้อมูลอ้างอิง API
บล็อก
สถานะ
ทรัพยากร v12
ชุมชน
การสนับสนุนชุมชน
มาเป็นหุ้นส่วน
มาเป็นเอกอัครราชทูต
ร่วมเป็นพันธมิตร
บริษัท
ประมาณ
อาชีพ
ข่าวสาร
ชอบด้วยกฎหมาย
ความเป็นส่วนตัว