Documentation menu

스토어 네이티브 할인 코드 발급

MailInApp은 연결된 ShopifyWooCommerce 스토어를 위한 동적 스토어 네이티브 할인 코드 발급을 지원합니다.

구매자를 제3자 체크아웃이나 일반 공개 쿠폰으로 유도하는 대신, MailInApp은 발송 시점에 스토어에 직접 1회용, 고객 제한 할인 코드를 자동으로 발급합니다 — 다음 두 가지 독립적인 메커니즘 중 하나를 통해서이며, 하나의 프로젝트가 둘을 함께, 별도로, 또는 전혀 사용하지 않을 수도 있습니다.

  • 프로젝트 단위 할인 오퍼 — 매칭된 수신자마다 코드 하나를 발급하는 발송 페이지 설정으로, 스토어 전체 또는 드롭다운에서 선택한 특정 상품 하나로 범위를 지정할 수 있으며, 구매 이력 오디언스 세그먼트와 짝을 이루도록 설계되었습니다. 할인 오퍼를 참고하세요.
  • 품목별 상품 블록 할인 — 스튜디오 상품 블록 자체에 있는 토글로, 그 블록이 카탈로그에서 가져온 바로 그 품목으로만 범위가 지정되며, 오디언스 필터나 발송 페이지 설정이 전혀 필요하지 않습니다. Shopify 상품 할인 코드WooCommerce 상품 할인 코드에서 전체 과정을 단계별로 다룹니다.

둘 다 동일한 스토어 연결을 통해 발급되며 아래의 메커니즘을 공유합니다. 다만 품목별 할인은 추가로 코드를 하나의 품목으로 제한하고, 프로젝트 단위 오퍼나 다른 모든 상품 블록의 쿨다운과는 별도로 자신만의 쿨다운 마커를 유지합니다.


작동 방식

캠페인이나 여정에 할인 오퍼가 포함되어 있으면:

  1. 동적 고객 확인:
    • Shopify: 할인 노드를 생성하기 전에 Admin GraphQL을 통해 수신자의 고객 GraphQL ID(gid://shopify/Customer/...)를 확인합니다.
    • WooCommerce: WooCommerce REST API를 사용해 생성된 쿠폰을 수신자의 정확한 이메일 주소로 제한합니다.
  2. 1회용 & 보안:
    • 코드는 무작위 암호화 접미사를 가집니다(예: MIA-7F3A91B2).
    • 모든 코드는 단일 사용으로 제한되며(usage_limit: 1), 수신자의 이메일 주소에 배타적으로 연결되어 딜 사이트에서의 쿠폰 유출을 방지합니다.
  3. 선택적 상품 범위 지정:
    • 스토어 전체로 발급된 코드는 모든 구매에 적용됩니다. 특정 상품으로 범위가 지정된 코드 — 프로젝트 단위 오퍼 자체의 범위 선택기이든, 상품 블록의 품목별 할인이든 — 는 그 품목 하나로만 제한됩니다: Shopify는 실제 상품 GID에 대한 customerGets.items.products.productsToAdd를 통해, WooCommerce는 쿠폰의 product_ids 필드를 통해 이루어집니다.
  4. 스토어 체크아웃 사전 적용:
    • 스토어 전체 또는 프로젝트 범위 코드의 링크는 일반 체크아웃(WooCommerce의 경우 /cart/?coupon=MIA-..., Shopify의 경우 /로 리다이렉트되는 /discount/MIA-...)에서 적용됩니다.
    • 상품 블록 자체의 품목별 할인은 대신 구매자를 코드가 이미 적용된 상태로 해당 상품 자체의 페이지로 바로 돌려보냅니다(WooCommerce는 상품 URL에 ?coupon=MIA-...를 추가, Shopify는 /discount/MIA-...?redirect=<product path>) — 스토어프론트 루트가 아닙니다. 이메일이 구매자를 특정 품목 하나로 안내했기 때문입니다.
  5. 구매자가 클릭하기 전에도 보임:
    • 상품 블록의 품목별 할인을 켜는 순간, 스튜디오 캔버스는 발송된 이메일 및 라이브 뷰와 동일한 할인 배지와 취소선 가격을 보여줍니다 — 확인을 위해 라이브 뷰를 열 필요가 없습니다.
    • Shopify 스토어의 경우, 선택적인 MailInApp 할인 배지 앱 블록이 이메일에서 클릭해 들어온 구매자에게 체크아웃 이전, 실제 상품 페이지에서 동일한 배지를 직접 보여줍니다 — 설정 방법은 아래 상품 페이지에 할인 표시하기 (Shopify)를 참고하세요. WooCommerce에는 이에 상응하는 기능이 없습니다 — WooCommerce 쿠폰에는 상품 페이지 자체가 표시하는 내용을 바꾸는 메커니즘이 없습니다.

상품 페이지에 할인 표시하기 (Shopify)

스튜디오 캔버스는 상품 블록의 품목별 할인을 켜는 순간 이미 할인 배지와 취소선 가격을 보여줍니다 — 별도 설정이 필요 없습니다. 실제 라이브 Shopify 스토어프론트에 같은 배지를 표시하는 것은 스토어당 한 번, 수동으로 진행하는 단계입니다. MailInApp이 테마를 자동으로 수정하는 일은 없기 때문입니다.

  1. Shopify 관리자에서 온라인 스토어 → 테마로 이동해, 라이브 테마(또는 초안 테마)에서 테마 편집을 클릭합니다.
  2. 상단의 페이지 선택기를 상품 페이지로 전환합니다.
  3. 가격/구매 버튼을 보여주는 섹션을 클릭합니다 — 보통 상품 정보 또는 구매 버튼입니다.
  4. ("섹션 추가"가 아니라) 해당 섹션 안에서 블록 추가를 클릭하고 아래에서 MailInApp 할인 배지를 선택합니다.
  5. 가격 옆으로 드래그하고, 필요하다면 설정 패널에서 배지 색상을 조정한 다음 저장합니다.

해당 섹션의 블록 선택기에 이 나타나지 않는다면, 그 섹션이 아직 앱 블록을 지원하지 않는 것입니다 — 다른 섹션을 시도하거나, 테마 개발자에게 스키마에 {"type": "@app"}을 추가해 달라고 요청하세요. 대부분의 Online Store 2.0 테마(Dawn 및 그 파생 테마)는 이미 메인 상품 섹션에서 이를 지원합니다. Online Store 2.0 테마가 필요합니다.

배지는 의도적으로 일반적인 스토어프론트 방문 시에는 보이지 않습니다 — 실제 품목별 할인 이메일이 생성한 서명된 링크로 상품 페이지가 로드될 때만 렌더링됩니다. 따라서 직접 페이지에 접속해도 배지는 보이지 않으며, 테스트 발송에서도 마찬가지입니다(테스트 발송은 이메일을 직접 렌더링할 뿐, 배지의 링크에 서명을 붙이는 할인 발급 단계는 건너뜁니다). 실제로 배지를 확인하려면 실제로 발송하세요 — 자기 자신에게라도 좋습니다 — 그리고 전달된 이메일에서 지금 구매를 클릭하세요. 이는 상품 자체의 가격으로부터 계산되는, 표시 전용 미리보기입니다 — 실제 할인은 어느 경우든 체크아웃에서 1회용 코드를 통해서만 적용됩니다.


지원되는 오퍼 유형

  • 비율 할인: 예를 들어 사이트 전체, 컬렉션, 또는 단일 상품에 대한 15% 또는 20% 할인.
  • 정액 할인: 예를 들어 장바구니 총액에서 $10 또는 $25 할인, 또는 특정 상품 하나에 대한 할인.
  • 만료 기간: 코드는 자동으로 계산된 만료일(예: 발송 시점으로부터 7일 또는 14일)을 가지므로, 긴급성이 판매자의 스토어에서 강제됩니다.
  • 계정 쿨다운: 여러 스케줄이나 프로젝트에 걸쳐 같은 연락처에 과도하게 쿠폰이 발급되는 것을 방지하는 내장 쿨다운 마커입니다 — 프로젝트 단위 오퍼용 마커 하나와, 상품 블록마다 별도의 마커가 있어, 한 상품에 대한 할인이 다른 상품의 쿨다운이나 프로젝트 단위 오퍼의 쿨다운을 막지 않습니다.

설정 & API 연동

  • Shopify: write_discounts 스코프를 가진 연결된 스토어 자격 증명이 필요합니다(OAuth 연결 과정에서 처리됩니다).
  • WooCommerce: 읽기/쓰기 권한을 가진 연결된 스토어 REST API 소비자 키와 시크릿이 필요합니다.

상품 블록의 품목별 할인은 추가로 그 블록이 (직접 입력한 외부 URL이 아니라) 스토어에서 가져오기 선택기를 통해 가져온 실제 상품을 가지고 있어야 합니다 — 코드 발급 시 스토어 자체의 숫자 상품 id로 범위를 제한해야 하기 때문입니다.