

產品目錄到銷售簡報自動化(2026)
產品目錄到簡報自動化指的是一個腳本從您的 Shopify 匯出、PIM 或 CSV 中讀取每個 SKU,並呼叫 2Slides API 兩次:POST /api/v1/slides/generate 從固定品牌範本建立可編輯的 PPTX 銷售單頁,POST /api/v1/slides/create-like-this 則建立與您的活動主視覺相符的圖片設計發表簡報。6 頁銷售單頁花費 60 點數(約 0.15 美元);8 頁 2K 發表簡報花費 810 點數(約 2.03 美元)。此方案專為電商營運、產品行銷及服務零售品牌的代理商打造。
重點摘要
- 一筆目錄資料行產生兩份簡報:Fast PPT 銷售單頁每頁 10 點數,圖片設計發表簡報每次 10 點數加每頁 2K 100 點數。
- 每個生成端點限制每個金鑰每分鐘 6 次請求,因此執行器每 10 秒送出一個作業,並將
jobId儲存於 SKU 旁。 - 傳入品牌主視覺作為
referenceImageUrl,讓每份發表簡報維持同一活動風格,買家用「16:9」比例,社群用「4:5」比例。 - 同一請求加上
responseLanguage: "German"或"Japanese",即可產出跨境市場用的零售商簡報,無需額外翻譯步驟。 - 每月 20 個 SKU(銷售單頁加發表簡報)約需 17,400 點數,剛好在一包 42.5 美元的 20,000 點數包內。
適用對象
您負責品牌、市集或代理商的電商營運或產品行銷,每有新 SKU 或季節新品就有人手動重做相同的銷售單頁、系列審查簡報和發表簡報。目錄已包含名稱、特色、規格、價格和主圖。此方案讓目錄成為真實資料來源,並讓腳本定時或在 Shopify 事件觸發時,從 CSV 行自動產生產品簡報。
如果您只需要每季一份客製簡報,請勿使用此方案。API 僅在相同結構重複於數十或數百 SKU 時才划算。
工作流程一覽
| 步驟 | 工具 | 發生什麼事 | 2Slides 端點 / 點數 |
|---|---|---|---|
| 1 | Shopify 匯出、PIM 或 CSV | 將每個 SKU 行標準化成純文字簡報(名稱、特色、規格、價格、零售商、圖片 URL) | 無 |
| 2 | Node.js 腳本 | 從品牌範本建立可編輯的零售商銷售單頁 PPTX | POST /api/v1/slides/generate,每頁 10 點數 |
| 3 | Node.js 腳本 | 建立與活動主視覺相符的圖片設計發表簡報,16:9 與 4:5 | POST /api/v1/slides/create-like-this,每次 10 點數加每頁 2K 100 點數 |
| 4 | Node.js 腳本 | 送出作業間隔 10 秒,持久化 jobId 與 SKU 對應,輪詢,並上傳至 S3 | GET /api/v1/jobs/{jobId},免費 |
| 5 | 同一腳本,額外行 | 產生德文與日文版本給跨境零售商 | 同端點,依市場設定 responseLanguage |
| 6 | Shopify + Make | 商品建立事件觸發 HTTP 請求,新 SKU 幾分鐘內取得簡報 | 同端點,同點數 |
步驟 1:將目錄標準化為每 SKU 簡報
無論來源為何,將每個 SKU 攤平成相同欄位的資料行。Shopify 產品 CSV 已包含 Title、Body (HTML)、Variant Price 和 Image Src;PIM 匯出通常有結構化屬性。自行新增兩欄:target_retailer(哪個買家看到此銷售單頁)和 market(零售商使用語言)。
sku,name,features,specs,price,hero_image_url,target_retailer,market
NB-TRAIL-042,Northbound Trail Runner 2,"Vibram outsole; 8 mm drop; recycled mesh upper","Weight 265 g; Sizes EU 39-47; Colors: Moss, Slate",139.00,https://cdn.example-brand.com/nb-trail-042.jpg,Decathlon DE,de
NB-TRAIL-042,Northbound Trail Runner 2,"Vibram outsole; 8 mm drop; recycled mesh upper","Weight 265 g; Sizes EU 39-47; Colors: Moss, Slate",139.00,https://cdn.example-brand.com/nb-trail-042.jpg,Xebio JP,ja
NB-PACK-018,Northbound Daypack 22L,"Roll-top closure; laptop sleeve; 420D ripstop","Volume 22 L; Weight 610 g; Colors: Sand, Black",89.00,https://cdn.example-brand.com/nb-pack-018.jpg,REI US,en提示建構器將一行轉成 userInput。保持在數百字以內,並在文字中說明受眾與頁數,因為 Fast PPT 會根據簡報規劃簡報。
function sellSheetPrompt(row) {
return [
`Retailer sell sheet for ${row.name} (SKU ${row.sku}), prepared for the buying team at ${row.target_retailer}.`,
`6 slides: cover with product name and one-line positioning; key features; technical specs; pricing and margin talking points (retail price ${row.price} EUR); merchandising and launch timing; contact and next steps.`,
`Features: ${row.features}. Specs: ${row.specs}.`,
`Tone: factual, buyer-facing, no marketing superlatives.`,
].join("\n");
}
function launchPrompt(row) {
return [
`Product launch deck for ${row.name} (SKU ${row.sku}).`,
`Audience: retail buyers and category managers.`,
`Cover the hero story, the three headline features (${row.features}), the spec sheet (${row.specs}), retail price ${row.price} EUR, and the seasonal campaign window.`,
`Use the product hero image at ${row.hero_image_url} as the visual anchor where appropriate.`,
].join("\n");
}步驟 2:用 Fast PPT 產生零售商銷售單頁
客戶經理需要可開啟、編輯價格並轉寄的 PPTX。這是 Fast PPT 路徑:POST /api/v1/slides/generate 從 1,500 多個設計範本中填入,約 30 秒回傳原生 PowerPoint 檔。每個品牌選一個 themeId 並硬編碼,讓所有銷售單頁共用同一版型系統。若品牌已有核准範本,品牌一致 AI 簡報範本填充 介紹如何標準化。

themeId 依品牌固定。
找出範本並將 ID 存入環境變數:
curl "https://2slides.com/api/v1/themes/search?query=retail%20product%20catalog&limit=5" \
-H "Authorization: Bearer $SLIDES_API_KEY"接著產生。預設 mode 為 sync,一次呼叫回傳 downloadUrl。批次使用 mode: "async",請求立即回傳 jobId,腳本持續送出。
curl -X POST https://2slides.com/api/v1/slides/generate \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "Retailer sell sheet for Northbound Trail Runner 2 (SKU NB-TRAIL-042), prepared for the buying team at REI US. 6 slides: cover; key features (Vibram outsole, 8 mm drop, recycled mesh upper); technical specs (265 g, EU 39-47, Moss and Slate); pricing and margin talking points (retail 139.00); merchandising and launch timing; contact and next steps. Tone: factual, buyer-facing.",
"themeId": "YOUR_BRAND_THEME_ID",
"responseLanguage": "English",
"mode": "async"
}'6 頁銷售單頁花費 60 點數,約 0.15 美元(以 5 美元包計算)。
步驟 3:用 create-like-this 產生活動發表簡報
發表簡報不同。買家與社群頻道期望它看起來像活動,而非範本,且沒人會逐頁編輯。這是圖片設計路徑:POST /api/v1/slides/create-like-this 傳入 referenceImageUrl,從該圖片推導設計系統(調色盤、字型、構圖),並將每頁渲染成 PDF 內的圖片。指向季節主視覺,所有 SKU 簡報繼承活動風格。Create Slides Like This 產品頁展示相同流程於網頁工作區。

create-like-this 是 API 入口;參考圖片取代文字風格提示。
每個 SKU 執行兩次,aspectRatio 分別為「16:9」買家簡報與「4:5」社群輪播。圖片流程預設 mode: "async"。
curl -X POST https://2slides.com/api/v1/slides/create-like-this \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "Product launch deck for Northbound Trail Runner 2 (SKU NB-TRAIL-042). Audience: retail buyers and category managers. Cover the hero story, three headline features (Vibram outsole, 8 mm drop, recycled mesh upper), the spec sheet (265 g, EU 39-47), retail price 139.00, and the FW26 campaign window.",
"referenceImageUrl": "https://cdn.example-brand.com/campaigns/fw26/key-visual.jpg",
"aspectRatio": "16:9",
"resolution": "2K",
"page": 8,
"contentDetail": "standard",
"imageModel": "gemini-3-pro-image",
"responseLanguage": "English",
"mode": "async"
}'社群版本改 aspectRatio 為「4:5」、page 為 6,簡報內容縮短為主故事加三個特色。8 頁 2K 簡報花費 10 + 800 = 810 點數(約 2.03 美元);6 頁 4:5 版本花費 610 點數(約 1.53 美元)。page: 0 讓規劃器決定頁數,但固定頁數讓目錄成本可預測。
步驟 4:以每分鐘 6 請求批次執行目錄
速率限制為每 API 金鑰每分鐘 6 次請求,GET /api/v1/jobs/{jobId} 允許每分鐘 10 次。遵守限制的執行器很簡單:每 10 秒送一個作業,將 jobId 寫入 SKU 附近的檔案,然後以輪詢方式每 6 秒檢查一個待處理作業。每個完成的檔案在作業成功後立即上傳至雲端儲存。
// catalog-to-decks.mjs (Node 20,伺服器端執行;切勿將 SLIDES_API_KEY 傳到瀏覽器)
import { readFile, writeFile } from "node:fs/promises";
import { parse } from "csv-parse/sync";
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
const API = "https://2slides.com/api/v1";
const headers = {
"Content-Type": "application/json",
Authorization: `Bearer ${process.env.SLIDES_API_KEY}`,
};
const THEME_ID = process.env.BRAND_THEME_ID;
const KEY_VISUAL = "https://cdn.example-brand.com/campaigns/fw26/key-visual.jpg";
const s3 = new S3Client({ region: "eu-central-1" });
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
const LANGUAGE = { en: "English", de: "German", ja: "Japanese" };
async function submit(path, body) {
const res = await fetch(`${API}${path}`, { method: "POST", headers, body: JSON.stringify(body) });
if (!res.ok) throw new Error(`${path} -> ${res.status} ${await res.text()}`);
return res.json(); // async 模式回傳 { jobId, ... }
}
// 1. 提交:每 10 秒一請求,保持每分鐘低於 6 請求
const rows = parse(await readFile("catalog.csv", "utf8"), { columns: true });
const jobs = []; // { sku, market, kind, jobId }
for (const row of rows) {
const responseLanguage = LANGUAGE[row.market] ?? "Auto";
const sheet = await submit("/slides/generate", {
userInput: sellSheetPrompt(row),
themeId: THEME_ID,
responseLanguage,
mode: "async",
});
jobs.push({ sku: row.sku, market: row.market, kind: "sell-sheet", jobId: sheet.jobId });
await sleep(10_000);
for (const [aspectRatio, page, kind] of [["16:9", 8, "launch-16x9"], ["4:5", 6, "social-4x5"]]) {
const deck = await submit("/slides/create-like-this", {
userInput: launchPrompt(row),
referenceImageUrl: KEY_VISUAL,
aspectRatio,
resolution: "2K",
page,
contentDetail: "standard",
responseLanguage,
mode: "async",
});
jobs.push({ sku: row.sku, market: row.market, kind, jobId: deck.jobId });
await sleep(10_000);
}
// 將 jobId 與 SKU 對應寫入磁碟,避免中斷時遺失已付費作業
await writeFile("jobs.json", JSON.stringify(jobs, null, 2));
}
// 2. 輪詢:jobs/{id} 每分鐘允許 10 請求,故每 6 秒檢查一作業,輪流進行
const pending = new Set(jobs.map((j) => j.jobId));
while (pending.size > 0) {
for (const job of jobs.filter((j) => pending.has(j.jobId))) {
const res = await fetch(`${API}/jobs/${job.jobId}`, { headers });
const state = await res.json(); // { status, progress, downloadUrl }
if (state.status === "success") {
pending.delete(job.jobId);
const file = await fetch(state.downloadUrl);
const ext = job.kind === "sell-sheet" ? "pptx" : "pdf";
await s3.send(new PutObjectCommand({
Bucket: "brand-sales-assets",
Key: `decks/${job.sku}/${job.market}/${job.kind}.${ext}`,
Body: Buffer.from(await file.arrayBuffer()),
}));
console.log(`uploaded ${job.sku} ${job.market} ${job.kind}`);
} else if (state.status === "failed") {
pending.delete(job.jobId);
console.error(`failed ${job.sku} ${job.kind}`, state);
}
await sleep(6_000);
}
}每個 SKU 三個作業,間隔 10 秒,100 個 SKU 約 50 分鐘送出;輪詢 300 個作業,每 6 秒檢查一次,約加 30 分鐘。若偏好 Python,可參考 用 Python 與 2Slides API 自動產生簡報,通用排程模式見 如何用 AI API 批次產生簡報。
步驟 5:為跨境零售商新增多語系版本
跨境市場是自動化的價值所在。德國買家與日本買家應分別收到其語言版本的銷售單頁,且使用相同規格與品牌範本。無需翻譯服務:responseLanguage 接受語言名稱,簡報即以該語言從同一英文簡報撰寫。

generate 端點參數與支援輸出語言。傳入語言名稱,如 "German",不要用代碼 "de"。
上述腳本已將 market 映射為語言名稱(de 對應 "German",ja 對應 "Japanese")。支援超過 20 種語言,包括西班牙語、法語、義大利語、葡萄牙語、波蘭語、韓語、簡體中文、繁體中文、阿拉伯語與土耳其語。價格請以市場貨幣(EUR、JPY)書寫,並在簡報中標明零售商名稱,讓數字與語境在地化,不僅是文字。
curl -X POST https://2slides.com/api/v1/slides/generate \
-H "Authorization: Bearer $SLIDES_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userInput": "Retailer sell sheet for Northbound Trail Runner 2 (SKU NB-TRAIL-042), prepared for the buying team at Xebio. 6 slides: cover; key features (Vibram outsole, 8 mm drop, recycled mesh upper); technical specs (265 g, sizes 25-30 cm, Moss and Slate); pricing and margin talking points (retail JPY 21,900); merchandising and launch timing; contact and next steps.",
"themeId": "YOUR_BRAND_THEME_ID",
"responseLanguage": "Japanese",
"mode": "async"
}'每種語言版本為獨立作業,費用相同,故一 SKU 在三個市場銷售需三份銷售單頁:180 點數,約 0.45 美元。
步驟 6:用 Make 觸發 Shopify「商品建立」事件
批次執行器處理季節新品。若是持續有新 SKU,將商店連接 API,商品建立後幾分鐘內即產生簡報。Make(參見 Make 說明中心)直接暴露 Shopify 商品事件;Zapier 或 n8n 也適用相同資料結構。
- 觸發器:Shopify「監控商品」事件(商品建立),或由 Shopify
products/createwebhook 觸發的 Webhook。 - 轉換:Code 節點,去除商品描述 HTML,擷取
variants[0].price與images[0].src,並組成userInput,如sellSheetPrompt。 - HTTP 請求節點(1):
POST https://2slides.com/api/v1/slides/create-like-this,帶入步驟 3 的內容;Authorization: Bearer <key>從場景變數取得,絕不從商品資料。 - 延遲/等待節點:60 秒。
- HTTP 請求節點(2):
GET https://2slides.com/api/v1/jobs/{{jobId}}。Router 檢查status:success繼續,pending或processing回到延遲,failed發 Slack 警報。 - 輸出:HTTP GET 下載
downloadUrl,上傳至 Google Drive、Dropbox 或 S3 SKU 資料夾,並在表單新增sku、jobId、status與儲存路徑。
Shopify 可能短時間內觸發多個商品事件(批量匯入、App 同步)。此處也要加入 10 秒間隔,或將事件排入佇列,讓步驟 4 執行器排空,否則 20 筆匯入同時送出會在第 7 次請求失敗。
選擇參考風格
create-like-this 需要參考圖片。若目標是活動一致性,使用自家活動主視覺最合適。若尚未決定零售業簡報風格,2Slides Gallery 提供真實參考簡報,可研究或傳入 referenceImageUrl 借用其設計系統。這些是參考簡報,不是 API 輸出。


referenceImageUrl,模型會重用其網格、調色盤與圖表風格。
每個活動與每種比例使用單一參考圖片。不同 SKU 換圖會產生 40 份風格各異、非同一家族的簡報。
費用說明
點數採用隨用隨付:5 美元購買 2,000 點(每點 0.0025 美元),80 美元購買 40,000 點(每點 0.002 美元)。新帳號起始有 500 點免費點數,約可測試 8 份銷售單頁。
| 用量 | 每 SKU | 每月點數 | 約合美元 |
|---|---|---|---|
| 每月 20 SKU:6 頁銷售單頁 + 8 頁 16:9 發表簡報 | 60 + 810 = 870 | 17,400 | 42.5 美元(一包 20,000 點數) |
| 每月 20 SKU:加 6 頁 4:5 社群簡報 | 870 + 610 = 1,480 | 29,600 | 60 至 74 美元,視點數包大小而定 |
| 每月 500 SKU:銷售單頁 + 16:9 發表簡報 | 870 | 435,000 | 約 870 美元(每點 0.002 美元) |
| 每月 500 SKU:三種簡報全包 | 1,480 | 740,000 | 約 1,480 美元(每點 0.002 美元) |
僅銷售單頁成本低廉:500 份 6 頁 PPTX 銷售單頁約 30,000 點數,約 60 美元。圖片設計簡報是預算重點,故每 SKU 產生一次發表簡報,每市場產生一次銷售單頁。
比較而言,Gamma API(參見 developers.gamma.app)提供類似自動化,但需 Pro 方案才能取得 API 金鑰;2Slides 金鑰適用任何帳號。2Slides 是我們產品,閱讀比較時請自行斟酌。
Fast PPT 或圖片設計簡報,哪個適合此用例?
| 需求 | 使用 | 原因 |
|---|---|---|
| 客戶經理編輯價格、替換頁面、轉寄買家 | Fast PPT generate | 原生 PPTX,每頁 10 點數,品牌固定 themeId |
| 簡報必須精確符合活動主視覺 | create-like-this | 從 referenceImageUrl 推導設計系統 |
| 社群輪播或直式格式 | create-like-this,aspectRatio 設為「4:5」或「9:16」 | PDF 加每頁圖片,直接可用 |
| 有旁白的產品導覽或市集上架 MP4 | 先 create-like-this,再 generate-narration(210 點數/頁) | Fast PPT 作業無法產生旁白 |
常見陷阱
- 大量匯入時觸及速率限制。 每個生成端點每金鑰每分鐘 6 請求。送出作業間隔 10 秒或排隊,勿用
Promise.all同時送出。 - API 金鑰放在 Shopify 主題或前端腳本。 金鑰必須放伺服器端(執行器、Make 連線或無伺服器函式);瀏覽器端任何人都能讀取。
- 期望為 Fast PPT 銷售單頁產生旁白。
generate-narration僅接受create-pdf-slides或create-like-this作業。若目標是旁白產品影片,請從圖片設計簡報開始。 - 傳入
responseLanguage: "de"。 此參數需語言名稱,如 "German"、"Japanese"、"Spanish"。代碼不被識別。 - 將完整 PIM 紀錄丟入
userInput。 冗長屬性列表會使簡報雜亂。先摘要買家相關特色與規格;步驟 1 的 CSV 欄位即為篩選依據。 - 讓規劃器決定目錄執行的頁數。
page: 0適合單次使用,但固定頁數讓每 SKU 點數成本一致,方便預算控管。
常見問題解答
我能直接從 Shopify CSV 匯出產生產品簡報嗎?
可以。Shopify 產品 CSV 包含標題、描述、變體價格與圖片 URL;步驟 1 的建構器將這些欄位映射成 userInput。新增 target_retailer 與 market 欄位,或從標籤推導。執行器依序呼叫 generate 產生 PPTX 銷售單頁,create-like-this 產生發表簡報。
如何保持數百份發表簡報的品牌一致?
每次呼叫 create-like-this 傳入相同活動主視覺作為 referenceImageUrl,每種比例維持一個參考圖。設計系統從該圖片推導,簡報共享調色盤、字型與構圖。可編輯銷售單頁則硬編碼每品牌一個 themeId,確保所有 PPTX 來自同一範本。
產生 100 個 SKU 需要多久?
送出是瓶頸:每分鐘 6 請求,三份簡報每 SKU,約每 30 秒送出一個 SKU,100 個 SKU 約 50 分鐘送完。Fast PPT 作業約 30 秒完成;圖片設計簡報在背景完成,您持續送出。輪詢每分鐘 10 請求,約加 30 分鐘。
一個 SKU 需多少點數?
6 頁 Fast PPT 銷售單頁 60 點數(約 0.15 美元)。8 頁 2K 圖片設計發表簡報 10 點規劃加 800 點頁數,共 810 點數(約 2.03 美元)。6 頁 4:5 社群簡報 610 點數。三種合計 1,480 點數,80 美元包計約 0.002 美元/點,約 2.96 美元。
同一腳本能產生德文與日文簡報嗎?
可以。在同一請求體中設定 responseLanguage 為 "German" 或 "Japanese",簡報會以該語言從英文簡報撰寫。每語言版本為獨立作業,點數相同。簡報中請放入市場特定價格與零售商名稱,讓數字與語境與文字同時在地化。
下一步
- 於 2slides.com/api 取得 API 金鑰。新帳號含 500 點免費點數,足以測試範本與提示,產生幾份銷售單頁。
- 參考其他團隊如何使用相同端點,詳見中心文章 AI 簡報 API 各團隊使用案例。
- 閱讀 行銷團隊如何大規模產生 AI 簡報,了解產品目錄到簡報自動化的活動面,並先執行 5 SKU 試點,再進行完整目錄執行。
About 2Slides
Create stunning AI-powered presentations in seconds. Transform your ideas into professional slides with 2slides AI Agent.
Try For Free