# 商品来源与可推广性校验（分享链接怎么来）

> 关联：`tiktok-shop-main-affiliate-flow.md`、`shopee-affiliate-open-api.md`
> 决定了「用户能分享什么商品」「分享链接怎么生成」「哪些会失败」。

## 1. 背景问题

BeeX 不自营商品 —— 商品本体在 TikTok Shop / Shopee。用户要分享一个商品给朋友，分享的**不是平台原链接**，而是 **BeeX 加工过的返佣链接**（带分享人 ID 的追踪层，表面跳转到平台下单，中间过 BeeX 归因）。

核心问题：这个"可分享的返佣链接"从哪来？是不是任意平台商品都能生成？

## 2. 三种商品来源

| 来源 | 说明 | 触发 |
| --- | --- | --- |
| **A 粘贴链接** | 用户去 TikTok/Shopee 复制任意商品链接，粘贴进 BeeX 生成 | 用户主动粘贴 |
| **B 选品库** | 运营预先从平台联盟搜好的高佣商品池，用户在首页/高佣榜一键分享 | 运营选品 + 用户一键 |
| **C 购物清单** | 用户自己买过的商品（当时已生成过返佣链接），从历史里再分享 | 用户分享"我用过的" |

## 3. 可推广性校验结论（关键）

### 3.1 Shopee —— 几乎任意商品链接都能转 ✅

`generateShortLink(input: {originUrl})` 直接传任意 Shopee 商品/店铺/活动原始链接，返回带 `subIds` 追踪的官方 affiliate 短链。**不要求商品预先在池子里**。

```graphql
mutation {
  generateShortLink(input: {
    originUrl: "https://shopee.co.id/...",
    subIds: ["sx", "id", "userId", "ref", "click"]
  }) { shortLink longLink }
}
```

→ 结论：**Shopee 支持任意商品链接 → 带追踪返佣链接**，覆盖广、几乎不失败。

### 3.2 TikTok Shop —— 只有「开放合作」商品能转 ⚠️

TikTok 联盟分两种合作模式：

| 模式 | 含义 | BeeX 能否转链 |
| --- | --- | --- |
| **Open Collaboration（开放合作）** | 卖家把商品开放给所有达人推广、设好佣金 | ✅ 能 |
| **Target Collaboration（定向合作）** | 卖家只邀请特定达人 | ❌ BeeX 没被邀请就不能转 |

BeeX 作为"超级 Creator"（所有用户分享链接都挂在 BeeX 主 Creator token 名下），只能给**开放合作**的商品生成 sharing link。

转链流程必须先校验可推广性：

```text
1. 解析 product_id（链接 / 短链跟随重定向后解析）
2. Creator Select Affiliate Product 校验可推广性 ← 关键卡点
   · 可推广 → 继续
   · 不可推广 → 返回友好提示，不报技术错误
3. Generate Affiliate Sharing Link 生成官方分享链接
   · 返回 data.sharing_links[] 或 data.failed_materials[]（含 fail_reason）
```

→ 结论：**TikTok 只支持「开放合作」商品**，用户粘贴任意 TikTok 商品有**部分失败率**。

## 4. 来源 × 平台 可行性矩阵

| 商品来源 | TikTok | Shopee | 说明 |
| --- | --- | --- | --- |
| **B 选品库** | ✅ 100% | ✅ 100% | 库里都是从 Open Collaboration / `productOfferV2` 搜出来的，**保证可推广** |
| **C 购物清单** | ✅ 100% | ✅ 100% | 买过 = 当时已成功生成过返佣链接 = **一定可推广** |
| **A 粘贴任意链接** | ⚠️ 部分失败 | ✅ 基本都行 | TikTok 粘贴商品可能不在开放合作里 → 需友好兜底 |

## 5. A 粘贴失败的兜底策略

```text
用户粘贴一个商品链接
  → 后端校验可推广性
     ├─ ✅ 可推广 → 正常生成返佣链接，进分享/购买
     └─ ❌ 不可推广（TikTok 非开放合作 / 商品下架 / 区域不符）
            → 不报技术错误，友好提示：
              "这个商品暂不支持返佣 😢，去【高佣榜】看看类似爆款 →"
              → 把用户导回选品库（B），别让他卡死
```

## 6. 产品策略

1. **主力分享源 = B 选品库 + C 购物清单**（100% 可推广、一键分享、零失败率）—— 自然裂变主要靠这两个。
2. **A 粘贴框作为补充**，必须处理 TikTok 校验失败兜底。
3. **平台侧重**：
   - Shopee 优先做 **A 粘贴**（覆盖广、几乎不失败）
   - TikTok 优先做 **B 选品库**（规避开放合作限制）
4. 运营持续维护选品库（高佣 + 好转化 + 确保都在开放合作里），这是分享体验顺滑的基础设施。

## 7. 技术实现要点

| 项 | TikTok | Shopee |
| --- | --- | --- |
| 校验可推广 | `Creator Select Affiliate Product` | `productOfferV2`（itemId/shopId 验证） |
| 生成链接 | `Generate Affiliate Sharing Link`（batch） | `generateShortLink` / `generateBatchShortLink` |
| 追踪参数 | `tags` / `event_id` / `publisher_id` | `subIds` |
| 订单归因 | `tags`/`event_id` 反查 `affiliate_clicks` | `utmContent` 反查 `affiliate_clicks` |
| 落库 | `affiliate_clicks.tracking_tag = sx_{country}_{user_id}_{referral_code}_{click_id}` | 同左 |

统一 `affiliate_clicks.tracking_tag` 格式，分享链接生成时带分享人 user_id，订单同步时反查归因到分享人。

## 8. 待确认 / POC

```text
TikTok: Creator Select Affiliate Product 不可推广商品的具体错误码（用于前端兜底文案分类）
TikTok: 开放合作商品占 TikTok 全站商品比例（决定 A 粘贴 TikTok 的实际失败率）
Shopee: generateShortLink 对非联盟商品是否也成功返回（理论上 Shopee 联盟覆盖更广）
选品库: 运营选品 SOP + 库容量 + 更新频率
```
