Shopify 이벤트 및 캠페인
앱을 연결하고 주문, 장바구니, 체크아웃 추적에 대해 Shopify가 요청한 권한(read_orders, write_pixels, read_customer_events)을 승인하면, 별도의 Pushwoosh 추적 화면 없이 주문, 체크아웃, 체크아웃 단계 이벤트가 도착하기 시작합니다. 승인 단계는 전제 조건과 1부를 참조하세요. 스토어프론트 탐색(제품 조회 및 장바구니 담기)에도 Push Init Embed 켜짐이 필요합니다.
추적은 세 가지 독립적인 이벤트 그룹을 다룹니다. 각각 다른 액세스가 필요하므로, 하나를 끈다고 해서 나머지가 일시 중지되지는 않습니다:
- 주문 결제 및 체크아웃: 테마 임베드가 꺼져 있어도 Shopify에서 도착합니다
- 스토어프론트 탐색(제품 조회 및 장바구니 담기): 테마 임베드가 켜져 있어야 합니다
- 체크아웃 단계: 위의 주문 추적 권한(
read_orders)과 별도로 승인되는, 1부의 Shopify 체크아웃 추적 권한(write_pixels및read_customer_events)이 필요합니다
앱을 연결하기 전에, PW_OrderCreated와 PW_AbandonedCart에 대해 Pushwoosh가 금액 및 날짜 속성 유형을 처리하는 방법을 확인하세요. 발견하기 전에 잘못 전송된 유형은 소급하여 수정할 수 없습니다.
주문 결제 및 체크아웃 이벤트
Anchor link to구매 후 메시징(PW_OrderCreated), 체크아웃 이탈 journey 또는 세그먼트(PW_AbandonedCart / PW_AbandonedCartUpdate), 구매 전환 매핑에 이를 사용하세요. 쇼핑객이 브라우저 추적을 차단하더라도 Shopify에서 도착합니다:
| Pushwoosh의 이벤트 이름 | 트리거 시점 |
|---|---|
PW_OrderCreated | 주문이 결제됨 |
PW_AbandonedCart | 쇼핑객이 체크아웃을 시작함 |
PW_AbandonedCartUpdate | 진행 중인 체크아웃에서 쇼핑객이 항목을 추가, 제거, 또는 변경함 |
이는 Shopify가 자동으로 Pushwoosh에 보내는 주문 및 체크아웃 알림(orders/paid, checkouts/create, checkouts/update webhook, 동기화되는 엔티티에 나열됨)에 해당합니다.
Shopify 자체의 Flow 조건, checkouts/create webhook, Products 블록의 Cart 소스는 모두 장바구니 이탈이라고 불리는 세 가지 서로 다른 것입니다. 아래 표를 사용하여 구축하려는 것과 일치하는 것을 선택하세요.
| 구축하려는 것 | 사용할 것 |
|---|---|
| Shopify Flow의 리마인더(Shopify 자체의 Cart abandonment 조건) | Shopify Flow + Pushwoosh send notification 액션. PW_AbandonedCart 이벤트 이름이 아님. |
| 체크아웃 시작 또는 장바구니 변경에 대한 Pushwoosh의 리마인더 또는 세그먼트 | PW_AbandonedCart / PW_AbandonedCartUpdate의 Customer Journey 또는 세그먼트 |
| 이메일 내에서 쇼핑객의 장바구니 항목 표시 | Products 블록의 Cart 소스(전송 시점에 PW_AbandonedCartID 태그 사용). 어떤 트리거가 journey를 시작했는지와 무관함. |
이 이벤트들의 동작 방식. checkouts/create는 체크아웃이 시작되었다는 것만을 의미합니다. Shopify는 아직 이탈로 판단하지 않았으며, 주문도 확정되지 않았습니다.
쇼핑객이 체크아웃을 편집하는 동안, PW_AbandonedCartUpdate가 동일한 체크아웃에 대해 다시 트리거되어 PW_AbandonedCart에서 저장된 장바구니를 덮어씁니다. Cart 소스를 사용하는 리마인더 이메일은 전송 시점에 최신 항목을 가져옵니다. 장바구니를 새로고침하기 위해서만 두 번째 journey 트리거가 필요하지는 않습니다.
PW_AbandonedCart와 PW_AbandonedCartUpdate는 쇼핑객에게 PW_AbandonedCartID 태그를 설정하며, 이는 Cart 소스가 전송 시점에 읽는 값입니다. PW_OrderCreated는 이를 즉시 지우므로, 이미 체크아웃을 완료한 쇼핑객은 더 이상 갖고 있지 않은 장바구니에 대한 리마인더를 받는 대신 해당 블록을 건너뜁니다. 정확한 삭제 동작은 PW_OrderCreated를 보낼 때 발생하는 일을 참조하세요.
주문 및 체크아웃 이벤트의 속성
Anchor link toPW_OrderCreated와 PW_AbandonedCart에는 다음이 포함됩니다:
| 속성 | 설명 |
|---|---|
orderId | 주문 또는 체크아웃 식별자 |
email | 쇼핑객의 email |
totalPrice | 주문 또는 장바구니 총액 |
shippingAmount | 배송비 |
taxAmount | 세금 금액 |
discountAmount | 할인 금액 |
currency | 통화 코드 |
items | 장바구니의 항목 |
customerId | 등록된 고객에게만 해당되며, 게스트 체크아웃에는 없음 |
orderUrl | PW_OrderCreated의 주문 상태 페이지, 또는 PW_AbandonedCart와 PW_AbandonedCartUpdate의 이탈된 체크아웃 복구 URL. “구매 완료하기” 링크나 버튼을 만드는 데 사용하세요. |
createdDate | 주문 또는 체크아웃이 생성된 시점 |
abandonedDate | PW_AbandonedCart와 PW_AbandonedCartUpdate에만 해당. 장바구니가 처음 생성된 시점이 아니라 마지막으로 수정된 시점 |
게스트 체크아웃도 주문 및 장바구니 이벤트를 보낼 수 있지만, 이벤트에 등록된 고객 ID는 없습니다.
PW_AbandonedCartUpdate는 동일한 속성을 가집니다. 계정에 Magento 연동도 연결되어 있다면, 해당 주문과 이탈된 장바구니는 동일한 이벤트 이름으로 게시되므로, PW_OrderCreated / PW_AbandonedCart를 기반으로 구축된 세그먼트나 journey는 두 스토어를 모두 포착하며, 위의 속성 유형도 둘 다에 적용됩니다. Magento는 진행 중인 체크아웃 편집을 추적하지 않으므로 PW_AbandonedCartUpdate에 상응하는 것이 없습니다.
특히 items는 Shopify로부터 몇 개의 필드만 채워진 채로 도착합니다.
스토어프론트 탐색 이벤트
Anchor link to탐색 이탈 세그먼트나 journey, 그리고 제품 조회가 필요한 이메일 추천 전략(예: Based on what they viewed)에 이를 사용하세요. 이메일에서 제품 추천 설정하는 방법을 참조하세요.
두 이벤트 모두 동일한 테마 임베드로 수집됩니다. Push Init Embed가 켜지면 테마에 추가할 것은 그 외에 없습니다:
PW_ProductViewed: 쇼핑객이 제품 페이지를 엽니다.PW_AddToCart: 쇼핑객이 페이지를 새로고침하지 않고 항목을 장바구니에 추가합니다. 이는 대부분의 Shopify 테마가 작동하는 방식입니다.
스토어프론트 탐색 이벤트의 속성
Anchor link to두 이벤트 모두 다음을 포함합니다:
| 속성 | 설명 |
|---|---|
items | 조회되거나 추가된 제품(들), 각각 productId, name, sku, quantity, price 포함 |
totalPrice | items의 합산 가격 |
productUrl | 쇼핑객이 있던 페이지 |
currency | 스토어프론트가 이를 노출하는 경우에만 |
totalPrice를 표시하는 메시지는 숫자 하나만으로는 어떤 통화인지 알 수 없으므로 currency가 없을 때를 대비한 대체 값이 필요합니다.
두 이벤트 모두 email이나 customerId를 속성으로 가지고 있지 않습니다. 쇼핑객은 이벤트 페이로드가 아니라, 나머지 테마 임베드와 동일한 방식으로, 메타필드 User ID에 연결된 SDK 세션을 통해 식별됩니다(2부 참조).
PW_ProductViewed와 PW_AddToCart의 items는 Shopify가 보강 이전에 보내는 동일한 필드를 가집니다: productId, name, sku, quantity, price. PW_AbandonedCart의 items에 대해 하는 것처럼(위의 장바구니 항목은 제품 카탈로그에서 보강됩니다 참조), Pushwoosh는 이 두 이벤트에 대해 나머지 카탈로그 필드를 채우지 않습니다.
Based on what they viewed처럼 전체 제품 세부 정보가 필요한 추천 전략은 메시지가 렌더링될 때 productId로 제품 카탈로그에서 이를 조회합니다. 각 전략에 필요한 것은 이메일에서 제품 추천 설정하는 방법을 참조하세요.
체크아웃 단계 이벤트
Anchor link to구매 전에 사람들이 어디서 이탈하는지 확인하고, 체크아웃을 시작했지만 결제된 주문에 도달하지 못한 사람들에게 메시지를 보내는 데 이를 사용하세요.
PW_CheckoutContactInfo: 쇼핑객이 연락처 정보를 입력했습니다.PW_PaymentInfoSubmitted: 쇼핑객이 결제 정보를 제출했습니다.
완료된 판매는 위 섹션의 PW_OrderCreated이지, 이 두 이벤트가 아닙니다.
PW_AbandonedCart는 체크아웃이 시작되었다는 것만 알려줍니다. 이 두 이벤트는 동일한 체크아웃에서 다음 순서로 이후의 두 지점을 표시합니다: 먼저 연락처 정보, 그다음 결제 정보. PW_PaymentInfoSubmitted에 도달했지만 이후 PW_OrderCreated를 받지 못한 쇼핑객은 PW_AbandonedCart만 트리거한 쇼핑객보다 더 진행한 것이므로, 이 단계를 기반으로 한 메시지는 일반적인 장바구니 리마인더 대신 정체된 결제를 구체적으로 다룰 수 있습니다.
체크아웃 단계 이벤트의 속성
Anchor link to두 이벤트 모두 다음을 포함합니다:
| 속성 | 설명 |
|---|---|
items | 체크아웃의 항목, 각각 productId, name, sku, quantity, price 포함 |
orderId | 체크아웃 토큰, 또는 체크아웃에 Shopify 주문 ID가 생긴 이후에는 해당 ID |
totalPrice | 체크아웃 총액 |
email | 체크아웃에 있는 경우에만. 전화 기반 체크아웃(email 미입력)은 이 필드 없이 이벤트를 보냅니다. |
currency | 체크아웃에 있는 경우에만 |
작동 여부 확인
Anchor link to스토어에서 해당 작업을 수행한 다음, 이벤트 이름이 Pushwoosh에 나타나는지 확인하세요. 이벤트 자체는 실시간으로 처리되지만, 확인할 수 있는 두 곳은 Pushwoosh가 아직 보지 못한 이름에 다르게 반응합니다:
- 이벤트로 세그먼트를 생성할 때 Event 드롭다운에서는 새 이름이 즉시 나타납니다.
- Customer Journey 트리거를 추가할 때 Event 드롭다운에서는 새 이름이 나타나는 데 최대 10분이 걸릴 수 있습니다(이 드롭다운은 캐시됩니다). 아직 보이지 않는다면, 연동이 고장 났다고 가정하기보다는 기다리세요.
| 테스트 작업 | 이벤트 |
|---|---|
| 테스트 주문 결제 | PW_OrderCreated |
| 체크아웃 시작 | PW_AbandonedCart |
| 해당 체크아웃에서 항목 변경 | PW_AbandonedCartUpdate |
| 제품 페이지 열기(Push Init Embed 켜짐) | PW_ProductViewed |
| 장바구니에 항목 추가 | PW_AddToCart |
| 체크아웃에서 연락처 정보 입력 | PW_CheckoutContactInfo |
| 체크아웃에서 결제 정보 제출 | PW_PaymentInfoSubmitted |
이벤트 사용하기
Anchor link to필요한 이벤트를 파악한 후에는, 다음 두 곳에서 이를 사용하세요:
- 트리거 또는 세그먼트 조건으로: 이벤트로 세그먼트를 생성하거나 Customer Journey 트리거를 추가할 때 Event 드롭다운에서 선택합니다.
- 메시지 텍스트에서: 메시지 단계에서 Personalize message with event attributes를 켜고 속성을 선택합니다(예:
PW_OrderCreated의 주문 총액). Liquid 플레이스홀더로 속성을 삽입할 수도 있습니다. journey의 동적 콘텐츠 및 Liquid 템플릿을 참조하세요.
결제된 주문의 경우, PW_OrderCreated를 전환 이벤트로 매핑하여 Shopify 구매가 RFM 세그멘테이션, journey 기여도, Product 블록 통계에 반영되도록 할 수도 있습니다.
캠페인 예시
Anchor link to각각은 쇼핑객 경로의 다른 지점에서 트리거되므로 서로 다른 대상에게 도달합니다: 누군가 이탈하기 전에 얼마나 멀리 갔는지, 또는 체크아웃에 도달했는지 여부가 어떤 것이 적용되는지를 결정합니다.
- 장바구니 이탈 리마인더. 얼마나 멀리 갔든 체크아웃을 시작한 모든 쇼핑객을 포착합니다 — 여기서 가장 넓은 대상입니다. Customer Journey로 구축하세요:
PW_AbandonedCart에 트리거하고,PW_OrderCreated를 기다린 다음, 결제하지 않은 사람에게 Cart 소스 블록이 포함된 이메일을 보냅니다. 전체 설정은 장바구니 이탈 캠페인 설정하는 방법을 참조하세요. - 정체된 체크아웃에 대한 후속 조치. 연락처 정보 입력까지 도달했지만 결제하지 않은 쇼핑객만 포착합니다. 위 대상보다 더 좁은 범위입니다.
PW_CheckoutContactInfo로 세그먼트를 만든 다음,PW_PaymentInfoSubmitted나PW_OrderCreated도 있는 사람을 제외합니다. - 정체된 결제에 대한 회복. 결제에는 도달했지만 주문을 완료하지 않은 쇼핑객을 포착합니다. 위의 후속 조치보다 더 진행되었으며 상호 배타적입니다.
PW_PaymentInfoSubmitted로 세그먼트를 만든 다음,PW_OrderCreated도 있는 사람을 제외합니다. - 탐색 추천 이메일. 제품을 봤지만 체크아웃을 아예 시작하지 않은 쇼핑객을 포착합니다. 위의 리마인더와는 다른 대상입니다. Products 블록의 Based on what they viewed 전략과 함께
PW_ProductViewed를 사용하세요. 이메일에서 제품 추천 설정하는 방법을 참조하세요.