> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Framer Entitlement

> Mở khóa liên kết remix mẫu Framer cho khách hàng trả phí.

<Info>
  Quyền Framer mở khóa liên kết remix mẫu Framer cho khách hàng trả phí. Bạn tải mẫu lên Dodo Payments, đính kèm quyền vào sản phẩm và khách hàng nhận được liên kết remix cho phép họ sao chép mẫu vào tài khoản Framer của họ.
</Info>

## Nội dung được cung cấp

* Một liên kết remix duy nhất đến mẫu Framer bạn đã tải lên.
* Khách hàng nhấp vào liên kết để remix mẫu vào không gian làm việc Framer của họ.
* Khi hủy hoặc hoàn tiền, liên kết remix sẽ bị hủy hiệu lực.

Các ứng dụng phổ biến bao gồm mẫu trang đích Framer có phí, bộ kit portfolio và thư viện thành phần.

## Kết nối Framer

Framer được kết nối ngầm lần đầu tiên bạn tạo một quyền mẫu. Không có bước OAuth riêng biệt nào.

<Steps>
  <Step title="Open Entitlements">
    Trong bảng điều khiển Dodo Payments của bạn, đi tới **Quyền** và nhấp **+**.
  </Step>

  <Step title="Pick Framer">
    Chọn **Template Framer** làm tích hợp.
  </Step>

  <Step title="Grab the remix link from Framer">
    Mở dự án Framer của bạn. Từ menu góc trên bên trái, đi tới **File → Copy Remix Link**. Điều này tạo ra một URL remix công khai cho phép bất kỳ ai sao chép dự án vào tài khoản Framer của họ — liên kết mà Dodo Payments sẽ chia sẻ với khách hàng trả phí.

    <Frame caption="Framer File menu: click Copy Remix Link to copy the template's remix URL.">
      <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/framer/copy-remix-link.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=a0e1e4d5c9cc0a88ca5dbf059a4d2329" alt="Menu File Framer với tùy chọn Copy Remix Link được làm nổi bật" style={{ maxHeight: '500px', width: 'auto' }} width="906" height="1488" data-path="images/entitlements/framer/copy-remix-link.png" />
    </Frame>
  </Step>

  <Step title="Add the template and create the entitlement">
    Quay lại bảng điều khiển Dodo Payments, chọn mẫu từ danh sách thả xuống **Mẫu**. Lần đầu tiên bạn thực hiện điều này cho một mẫu mới, dán liên kết remix mà bạn đã sao chép để đăng ký. Đặt tên cho quyền và nhấp **Tạo Quyền**.

    <Frame>
      <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/framer/create.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=f3b5bfdb1092047e06f4eeba03d7bddf" alt="Biểu mẫu quyền mẫu Framer với trình chọn mẫu và trường tên" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1130" data-path="images/entitlements/framer/create.png" />
    </Frame>

    Dodo Payments đăng ký mẫu và trả về một `framer_template_id` mà bạn có thể tham chiếu theo chương trình.
  </Step>
</Steps>

## Quy trình của khách hàng

1. Khách hàng hoàn tất thanh toán.
2. Dodo Payments tạo một `pending` quyền và cấp một liên kết remix duy nhất gắn liền với khách hàng đó.
3. Quyền chuyển sang `delivered` khi liên kết remix được cung cấp và liên kết được bao gồm trong email và cổng thông tin của khách hàng.
4. Khách hàng nhấp vào liên kết, đăng nhập vào Framer và remix mẫu.
5. Khi thu hồi, liên kết remix bị vô hiệu hóa. Các bản sao đã remix trong tài khoản Framer của khách hàng vẫn giữ nguyên, vì Framer không cung cấp cách để thu hồi chúng.

## Cấu hình yêu cầu

| Trường               | Bắt buộc | Mô tả                                   |
| -------------------- | -------- | --------------------------------------- |
| `framer_template_id` | Yes      | ID mẫu được trả về khi bạn tải lên mẫu. |

## Tạo thông qua API

<CodeGroup>
  ```typescript TypeScript theme={null} theme={null}
  const entitlement = await client.entitlements.create({
    name: 'Portfolio Kit',
    integration_type: 'framer',
    integration_config: {
      framer_template_id: 'tmpl_abc123',
    },
  });
  ```

  ```python Python theme={null} theme={null}
  client.entitlements.create(
      name="Portfolio Kit",
      integration_type="framer",
      integration_config={"framer_template_id": "tmpl_abc123"},
  )
  ```

  ```go Go theme={null} theme={null}
  client.Entitlements.New(ctx, dodopayments.EntitlementNewParams{
    Name:            dodopayments.F("Portfolio Kit"),
    IntegrationType: dodopayments.F(dodopayments.EntitlementIntegrationTypeFramer),
    IntegrationConfig: dodopayments.F[dodopayments.IntegrationConfigUnionParam](
      dodopayments.IntegrationConfigFramerConfigParam{
        FramerTemplateID: dodopayments.F("tmpl_abc123"),
      },
    ),
  })
  ```
</CodeGroup>

## Webhooks

Xem [`entitlement_grant.*` sự kiện webhook](/developer-resources/webhooks/intents/entitlement-grant). Quyền Framer xuất hiện `pending` và chuyển sang `delivered` khi liên kết remix được cung cấp.

## Khắc phục sự cố

<AccordionGroup>
  <Accordion title="Customer's remix link doesn't work">
    Liên kết remix là một lần sử dụng và gắn liền với khách hàng. Nếu họ xóa liên kết trước khi remix, hãy thu hồi quyền và cấp lại.
  </Accordion>

  <Accordion title="Refunded customer still has a remixed copy">
    Điều này là bình thường. Framer coi remix là dự án riêng của khách hàng sau khi chúng được sao chép; Dodo Payments vô hiệu hóa liên kết gốc nhưng không thể xóa các bản sao trong tài khoản của khách hàng.
  </Accordion>
</AccordionGroup>
