# e-Commerce : 이커머스

:ballot\_box\_with\_check:속성 중 **Key** 이름은 가이드에 나와있는 **Key** 이름을 그대로 사용 해 주세요.\
(임의로 변경시 대시보드에서 데이터 확인이 어렵습니다.  > product\_id , product\_name 등)

## 상품 조회 <a href="#view-product" id="view-product"></a>

상품 상세 화면에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>product_id</td><td>2007289429</td><td>string</td><td>상품 고유코드</td></tr><tr><td>product_name</td><td>플랩 더블 버튼 트렌치코트</td><td>string</td><td>상품명</td></tr><tr><td>category_id_a</td><td>00100</td><td>string</td><td>대 카테고리 코드</td></tr><tr><td>category_name_a</td><td>여성패션</td><td>string</td><td>대 카테고리 명칭</td></tr><tr><td>category_id_b</td><td>2984</td><td>string</td><td>중 카테고리 코드</td></tr><tr><td>category_name_b</td><td>트렌치코드</td><td>string</td><td>중 카테고리 명칭</td></tr><tr><td>brand_name</td><td>STUDIO TOMBOY</td><td>string</td><td>브랜드 명칭</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> pageMap = new HashMap<>();
pageMap.put("event", "w_view_product");
Map<String, Object> productMap = new HashMap<>();
productMap.put("product_id", "2007289429");
productMap.put("product_name", "플랩 더블 버튼 트렌치코트");
productMap.put("category_id_a", "00100");
productMap.put("category_name_a", "여성패션");
productMap.put("category_id_b", "2984");
productMap.put("category_name_b", "트렌치코드");
productMap.put("brand_name", "STUDIO TOMBOY");
pageMap.put("product", productMap);
DOT.logScreen(pageMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val pageMap = mutableMapOf<String,Any>()
pageMap["event"] = "w_view_product"
val productMap = mutableMapOf<String,Any>()
productMap["product_id"] = "2007289429"
productMap["product_name"] = "플랩 더블 버튼 트렌치코트"
productMap["category_id_a"] = "00100"
productMap["category_name_a"] = "여성패션"
productMap["category_id_b"] = "2984"
productMap["category_name_b"] = "트렌치코드"
productMap["brand_name"] = "STUDIO TOMBOY"
pageMap["product"] = productMap
DOT.logScreen(pageMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let screen = NSMutableDictionary()
screen["event"] = "w_view_product"
var product : [String: Any] = [:]
product["product_id"] = "2007289429"
product["product_name"] = "플랩 더블 버튼 트렌치코트"
product["category_id_a"] = "00100"
product["category_name_a"] = "여성패션"
product["category_id_b"] = "2984"
product["category_name_b"] = "트렌치코드"
product["brand_name"] = "STUDIO TOMBOY"
screen["product"] = product
DOT.logScreen(screen)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *screen = [[NSMutableDictionary alloc] init];
[screen setValue:@"w_view_product" forKey:@"event"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[product setValue:@"2007289429" forKey:@"product_id"];
[product setValue:@"플랩 더블 버튼 트렌치코트" forKey:@"product_name"];
[product setValue:@"00100" forKey:@"category_id_a"];
[product setValue:@"여성패션" forKey:@"category_name_a"];
[product setValue:@"2984" forKey:@"category_id_b"];
[product setValue:@"트렌치코드" forKey:@"category_name_b"];
[product setValue:@"STUDIO TOMBOY" forKey:@"brand_name"];
[screen setValue:product forKey:@"product"];
[DOT logScreen:screen];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var screen = new Object();
    screen["event"] = "w_view_product";
    var product = new Object();
    product["product_id"] = "2007289429";
    product["product_name"] = "플랩 더블 버튼 트렌치코트";
    product["category_id_a"] = "00100";
    product["category_name_a"] = "여성패션";
    product["category_id_b"] = "2984";
    product["category_name_b"] = "트렌치코드";
    product["brand_name"] = "STUDIO TOMBOY";
    screen["product"] = product;
    DOT.logScreen(screen);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var screen = new Object();
    screen["event"] = "w_view_product";
    var product = new Object();
    product["product_id"] = "2007289429";
    product["product_name"] = "플랩 더블 버튼 트렌치코트";
    product["category_id_a"] = "00100";
    product["category_name_a"] = "여성패션";
    product["category_id_b"] = "2984";
    product["category_name_b"] = "트렌치코드";
    product["brand_name"] = "STUDIO TOMBOY";
    screen["product"] = product;
    WDOT.onStartPage(screen);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map screen = {};
screen["event"] = "w_view_product";
Map product = {};
product["product_id"] = "2007289429";
product["product_name"] = "플랩 더블 버튼 트렌치코트";
product["category_id_a"] = "00100";
product["category_name_a"] = "여성패션";
product["category_id_b"] = "2984";
product["category_name_b"] = "트렌치코드";
product["brand_name"] = "STUDIO TOMBOY";
screen["product"] = product;
DOT.logScreen(screen);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logScreen",
      data: {
              event : "w_view_product",
              product_id : "2007289429",
              product_name : "플랩 더블 버튼 트렌치코트",
              category_id_a : "00100",
              category_name_a : "여성패션",
              category_id_b : "2984",
              category_name_b : "트렌치코드",
              brand_name : "STUDIO TOMBOY"

      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge != null &&
(NativeModules.DotReactBridge.onStartPage(),
NativeModules.DotReactBridge.logScreen(
  JSON.stringify({
      event: 'w_view_product',
      product: {
          product_id: '2007289429',
          product_name: '플랩 더블 버튼 트렌치코트',
          category_id_a: '00100',
          category_name_a: '여성패션',
          category_id_b: '2984',
          category_name_b: '트렌치코드',
          brand_name: 'STUDIO TOMBOY',
      },
  }),
));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logScreen",
	data : {
	    event : "w_view_product",
	    product : {
	    product_id : "2007289429",
	    product_name : "플랩 더블 버튼 트렌치코트",
	    category_id_a : "00100",
	    category_name_a : "여성패션",
	    category_id_b : "2984",
	    category_name_b : "트렌치코드",
	    brand_name : "STUDIO TOMBOY"
	    }
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> page = new Dictionary<string, object>();
page.Add("event", "w_view_product");
Dictionary<string, object> product = new Dictionary<string, object>();
product.Add("product_id", "2007289429");
product.Add("product_name", "플랩 더블 버튼 트렌치코트");
product.Add("category_id_a", "00100");
product.Add("category_name_a", "여성패션");
product.Add("category_id_b", "2984");
product.Add("category_name_b", "트렌치코드");
product.Add("brand_name", "STUDIO TOMBOY");
page.Add("product", product);
DOT.logScreen(page);
```

{% endtab %}
{% endtabs %}

## 상품 리스트 조회 <a href="#view-product-list" id="view-product-list"></a>

상품 리스트 상세 화면에 아래 코드를 추가합니다.

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
pageMap.put("event", "w_view_product_list");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
pageMap["event"] = "w_view_product_list"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
screen["event"] = "w_view_product_list"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event= [[NSMutableDictionary alloc] init];
[event setValue:@"w_view_product_list" forKey:@"event"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    screen["event"] = "w_view_product_list";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_view_product_list";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
screen["event"] = "w_view_product_list";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_view_product_list"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_view_product_list"
}));  

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
  method:"logEvent",
  data : {
    event : "w_view_product_list"
  }  
})); 

```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_view_product_list");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 상품 공유 <a href="#share-product" id="share-product"></a>

상품 공유 버튼이 클릭되는 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>share_type</td><td>kakao</td><td>string</td><td>상품이 공유된 미디어</td></tr><tr><td>product_id</td><td>2007289429</td><td>string</td><td>상품 고유코드</td></tr><tr><td>product_name</td><td>플랩 더블 버튼 트렌치코트</td><td>string</td><td>상품명</td></tr><tr><td>category_id_a</td><td>00100</td><td>string</td><td>대 카테고리 코드</td></tr><tr><td>category_name_a</td><td>여성패션</td><td>string</td><td>대 카테고리 명칭</td></tr><tr><td>category_id_b</td><td>2984</td><td>string</td><td>중 카테고리 코드</td></tr><tr><td>category_name_b</td><td>트렌치코드</td><td>string</td><td>중 카테고리 명칭</td></tr><tr><td>brand_name</td><td>STUDIO TOMBOY</td><td>string</td><td>브랜드 명칭</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_share");
eventMap.put("share_type", "kakao");
Map<String, Object> productMap = new HashMap<>();
productMap.put("product_id", "2007289429");
productMap.put("product_name", "플랩 더블 버튼 트렌치코트");
productMap.put("category_id_a", "00100");
productMap.put("category_name_a", "여성패션");
productMap.put("category_id_b", "2984");
productMap.put("category_name_b", "트렌치코드");
productMap.put("brand_name", "STUDIO TOMBOY");
eventMap.put("product", productMap);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_share"
eventMap["share_type"] = "kakao"
val productMap = mutableMapOf<String,Any>()
productMap["product_id"] = "2007289429"
productMap["product_name"] = "플랩 더블 버튼 트렌치코트"
productMap["category_id_a"] = "00100"
productMap["category_name_a"] = "여성패션"
productMap["category_id_b"] = "2984"
productMap["category_name_b"] = "트렌치코드"
productMap["brand_name"] = "STUDIO TOMBOY"
eventMap["product"] = productMap
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_share"
event["share_type"] = "kakao"
var product : [String: Any] = [:]
product["product_id"] = "2007289429"
product["product_name"] = "플랩 더블 버튼 트렌치코트"
product["category_id_a"] = "00100"
product["category_name_a"] = "여성패션"
product["category_id_b"] = "2984"
product["category_name_b"] = "트렌치코드"
product["brand_name"] = "STUDIO TOMBOY"
event["product"] = product
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_share" forKey:@"event"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[product setValue:@"2007289429" forKey:@"product_id"];
[product setValue:@"플랩 더블 버튼 트렌치코트" forKey:@"product_name"];
[product setValue:@"00100" forKey:@"category_id_a"];
[product setValue:@"여성패션" forKey:@"category_name_a"];
[product setValue:@"2984" forKey:@"category_id_b"];
[product setValue:@"트렌치코드" forKey:@"category_name_b"];
[product setValue:@"STUDIO TOMBOY" forKey:@"brand_name"];
[event setValue:product forKey:@"product"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_share";
    event["share_type"] = "kakao";
    var product = new Object();
    product["product_id"] = "2007289429";
    product["product_name"] = "플랩 더블 버튼 트렌치코트";
    product["category_id_a"] = "00100";
    product["category_name_a"] = "여성패션";
    product["category_id_b"] = "2984";
    product["category_name_b"] = "트렌치코드";
    product["brand_name"] = "STUDIO TOMBOY";
    event["product"] = product;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_share";
    event["share_type"] = "kakao";
    var product = new Object();
    product["product_id"] = "2007289429";
    product["product_name"] = "플랩 더블 버튼 트렌치코트";
    product["category_id_a"] = "00100";
    product["category_name_a"] = "여성패션";
    product["category_id_b"] = "2984";
    product["category_name_b"] = "트렌치코드";
    product["brand_name"] = "STUDIO TOMBOY";
    event["product"] = product;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_share";
event["share_type"] = "kakao";
Map product = {};
product["product_id"] = "2007289429";
product["product_name"] = "플랩 더블 버튼 트렌치코트";
product["category_id_a"] = "00100";
product["category_name_a"] = "여성패션";
product["category_id_b"] = "2984";
product["category_name_b"] = "트렌치코드";
product["brand_name"] = "STUDIO TOMBOY";
event["product"] = product;
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_share",
              share_type : "kakao",
              product_id : "2007289429",
              product_name : "플랩 더블 버튼 트렌치코트",
              category_id_a : "00100",
              category_name_a : "여성패션",
              category_id_b : "2984",
              category_name_b : "트렌치코드",
              brand_name : "STUDIO TOMBOY"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_share",
    share_type : "kakao",
    product : {
    product_id : "2007289429",
    product_name : "플랩 더블 버튼 트렌치코트",
    category_id_a : "00100",
    category_name_a : "여성패션",
    category_id_b : "2984",
    category_name_b : "트렌치코드",
    brand_name : "STUDIO TOMBOY"
    }
})); 	

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logScreen",
	data : {
	    event : "w_share",
	    share_type : "kakao",
	    product : {
		    product_id : "2007289429",
		    product_name : "플랩 더블 버튼 트렌치코트",
		    category_id_a : "00100",
		    category_name_a : "여성패션",
		    category_id_b : "2984",
		    category_name_b : "트렌치코드",
		    brand_name : "STUDIO TOMBOY"
	    }
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_share");
eventDic.Add("share_type", "kakao");
Dictionary<string, object> product = new Dictionary<string, object>();
product.Add("product_id", "2007289429");
product.Add("product_name", "플랩 더블 버튼 트렌치코트");
product.Add("category_id_a", "00100");
product.Add("category_name_a", "여성패션");
product.Add("category_id_b", "2984");
product.Add("category_name_b", "트렌치코드");
product.Add("brand_name", "STUDIO TOMBOY");
eventDic.Add("product", product);
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 쿠폰 다운로드 <a href="#download-coupon" id="download-coupon"></a>

쿠폰이 다운로드된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>coupon_name</td><td>신규가입기념 20% 할인</td><td>string</td><td>쿠폰의 명칭이나 ID</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_download_coupon");
eventMap.put("coupon_name", "신규가입기념 20% 할인");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_download_coupon"
eventMap["coupon_name"] = "신규가입기념 20% 할인"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_download_coupon"
event["coupon_name"] = "신규가입기념 20% 할인"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_download_coupon" forKey:@"event"];
[event setValue:@"신규가입기념 20% 할인" forKey:@"coupon_name"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_download_coupon";
    event["coupon_name"] = "신규가입기념 20% 할인";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_download_coupon";
    event["coupon_name"] = "신규가입기념 20% 할인";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_download_coupon";
event["coupon_name"] = "신규가입기념 20% 할인";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_download_coupon",
              coupon_name : "신규가입기념 20% 할인"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_download_coupon",
    coupon_name : "신규가입기념 20% 할인"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_download_coupon",
	    coupon_name : "신규가입기념 20% 할인"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_download_coupon");
eventDic.Add("coupon_name", "신규가입기념 20% 할인");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 쿠폰 사용하기 <a href="#use-coupon" id="use-coupon"></a>

쿠폰을 사용 완료하는 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>coupon_name</td><td>신규가입기념 20% 할인</td><td>string</td><td>쿠폰의 명칭이나 ID</td></tr><tr><td>g1</td><td>5000</td><td>float</td><td>쿠폰 할인 금액</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_use_coupon");
eventMap.put("coupon_name", "신규가입기념 20% 할인");
eventMap.put("g1", 5000);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_use_coupon"
eventMap["coupon_name"] = "신규가입기념 20% 할인"
eventMap["g1"] = 5000
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_use_coupon"
event["coupon_name"] = "신규가입기념 20% 할인"
event["g1"] = 5000
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_use_coupon" forKey:@"event"];
[event setValue:@"신규가입기념 20% 할인" forKey:@"coupon_name"];
[event setValue:[NSNumber numberWithInt:5000] forKey:@"g1"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_use_coupon";
    event["coupon_name"] = "신규가입기념 20% 할인";
    event["g1"] = 5000;    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_use_coupon";
    event["coupon_name"] = "신규가입기념 20% 할인";
    event["g1"] = 5000;   
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_use_coupon";
event["coupon_name"] = "신규가입기념 20% 할인";
event["g1"] = 5000;   
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_use_coupon",
              coupon_name : "신규가입기념 20% 할인",
              g1 : 5000
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_use_coupon",
    coupon_name : "신규가입기념 20% 할인",
    g1 : 5000
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_use_coupon",
	    coupon_name : "신규가입기념 20% 할인",
	    g1 : 5000
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_use_coupon");
eventDic.Add("coupon_name", "신규가입기념 20% 할인");
eventDic.Add("g1", 5000);
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 크레딧 사용하기

크레딧을 사용 완료하는 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th width="161">Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>credit_name</td><td>네이버페이 크레딧</td><td>string</td><td>크레딧의 명칭이나 ID</td></tr><tr><td>g3</td><td>7500</td><td>float</td><td>크레딧 할인금액</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_use_credit");
eventMap.put("credit_name", "네이버페이 크레딧");
eventMap.put("g3", 7500);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_use_credit"
eventMap["credit_name"] = "네이버페이 크레딧"
eventMap["g3"] = 7500
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_use_credit"
event["credit_name"] = "네이버페이 크레딧"
event["g3"] = 7500
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_use_credit" forKey:@"event"];
[event setValue:@"네이버페이 크레딧" forKey:@"credit_name"];
[event setValue:[NSNumber numberWithInt:7500] forKey:@"g3"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_use_credit";
    event["credit_name"] = "네이버페이 크레딧";
    event["g3"] = 7500;    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_use_credit";
    event["credit_name"] = "네이버페이 크레딧";
    event["g3"] = 7500;    
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_use_credit";
event["credit_name"] = "네이버페이 크레딧";
event["g3"] = 7500;   
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_use_credit",
              credit_name : "네이버페이 크레딧",
              g3 : 7500
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_use_credit",
    credit_name : "네이버페이 크레딧",
    g5 : 7500
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_use_credit",
	    credit_name : "네이버페이 크레딧",
	    g5 : 7500
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_use_credit");
eventDic.Add("credit_name", "네이버페이 크레딧");
eventDic.Add("g3", 7500);
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 기타 할인 사용하기

쿠폰 및 크레딧 이외 기타 할인을 사용 완료하는 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>g5</td><td>10000</td><td>float</td><td>기타 할인 금액</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_other_discounts");
eventMap.put("g1", 10000);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_other_discounts"
eventMap["g1"] = 10000
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_other_discounts"
event["g5"] = 10000
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_other_discounts" forKey:@"event"];
[event setValue:[NSNumber numberWithInt:10000] forKey:@"g5"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_other_discounts";
    event["g5"] = 10000;    
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_other_discounts";
    event["g5"] = 10000;   
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_other_discounts";
event["g5"] = 10000;   
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_other_discounts",
              g5 : 10000
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_other_discounts",
    g5 : 10000
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
          event : "w_other_discounts",
    	  g5 : 10000
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_other_discounts");
eventDic.Add("g5", 10000);
DOT.logEvent(eventDic);

```

{% endtab %}
{% endtabs %}

## 상품 리뷰조회

상품의 리뷰를 조회하는 시점 또는 리뷰 상세화면에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>product_id</td><td>2007289429</td><td>string</td><td>상품 고유코드</td></tr><tr><td>product_name</td><td>플랩 더블 버튼 트렌치코트</td><td>string</td><td>상품명</td></tr><tr><td>category_id_a</td><td>00100</td><td>string</td><td>대 카테고리 코드</td></tr><tr><td>category_name_a</td><td>여성패션</td><td>string</td><td>대 카테고리 명칭</td></tr><tr><td>category_id_b</td><td>2984</td><td>string</td><td>중 카테고리 코드</td></tr><tr><td>category_name_b</td><td>트렌치코드</td><td>string</td><td>중 카테고리 명칭</td></tr><tr><td>brand_name</td><td>STUDIO TOMBOY</td><td>string</td><td>브랜드 명칭</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_see_review");
Map<String, Object> productMap = new HashMap<>();
productMap.put("product_id", "2007289429");
productMap.put("product_name", "플랩 더블 버튼 트렌치코트");
productMap.put("category_id_a", "00100");
productMap.put("category_name_a", "여성패션");
productMap.put("category_id_b", "2984");
productMap.put("category_name_b", "트렌치코드");
productMap.put("brand_name", "STUDIO TOMBOY");
eventMap.put("product", productMap);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_see_review"
val productMap = mutableMapOf<String,Any>()
productMap["product_id"] = "2007289429"
productMap["product_name"] = "플랩 더블 버튼 트렌치코트"
productMap["category_id_a"] = "00100"
productMap["category_name_a"] = "여성패션"
productMap["category_id_b"] = "2984"
productMap["category_name_b"] = "트렌치코드"
productMap["brand_name"] = "STUDIO TOMBOY"
eventMap["product"] = productMap
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_see_review"
var product : [String: Any] = [:]
product["product_id"] = "2007289429"
product["product_name"] = "플랩 더블 버튼 트렌치코트"
product["category_id_a"] = "00100"
product["category_name_a"] = "여성패션"
product["category_id_b"] = "2984"
product["category_name_b"] = "트렌치코드"
product["brand_name"] = "STUDIO TOMBOY"
event["product"] = product
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_see_review" forKey:@"event"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[product setValue:@"2007289429" forKey:@"product_id"];
[product setValue:@"플랩 더블 버튼 트렌치코트" forKey:@"product_name"];
[product setValue:@"00100" forKey:@"category_id_a"];
[product setValue:@"여성패션" forKey:@"category_name_a"];
[product setValue:@"2984" forKey:@"category_id_b"];
[product setValue:@"트렌치코드" forKey:@"category_name_b"];
[product setValue:@"STUDIO TOMBOY" forKey:@"brand_name"];
[event setValue:product forKey:@"product"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_see_review";
    var product = new Object();
    product["product_id"] = "2007289429";
    product["product_name"] = "플랩 더블 버튼 트렌치코트";
    product["category_id_a"] = "00100";
    product["category_name_a"] = "여성패션";
    product["category_id_b"] = "2984";
    product["category_name_b"] = "트렌치코드";
    product["brand_name"] = "STUDIO TOMBOY";
    event["product"] = product;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_see_review";
    var product = new Object();
    product["product_id"] = "2007289429";
    product["product_name"] = "플랩 더블 버튼 트렌치코트";
    product["category_id_a"] = "00100";
    product["category_name_a"] = "여성패션";
    product["category_id_b"] = "2984";
    product["category_name_b"] = "트렌치코드";
    product["brand_name"] = "STUDIO TOMBOY";
    event["product"] = product;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_see_review";
Map product = {};
product["product_id"] = "2007289429";
product["product_name"] = "플랩 더블 버튼 트렌치코트";
product["category_id_a"] = "00100";
product["category_name_a"] = "여성패션";
product["category_id_b"] = "2984";
product["category_name_b"] = "트렌치코드";
product["brand_name"] = "STUDIO TOMBOY";
event["product"] = product;
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_see_review",
              product_id : "2007289429",
              product_name : "플랩 더블 버튼 트렌치코트",
              category_id_a : "00100",
              category_name_a : "여성패션",
              category_id_b : "2984",
              category_name_b : "트렌치코드",
              brand_name : "STUDIO TOMBOY"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_see_review",
    product : {
    product_id : "2007289429",
    product_name : "플랩 더블 버튼 트렌치코트",
    category_id_a : "00100",
    category_name_a : "여성패션",
    category_id_b : "2984",
    category_name_b : "트렌치코드",
    brand_name : "STUDIO TOMBOY"
    }
})); 

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_see_review",
	    product : {
	    product_id : "2007289429",
	    product_name : "플랩 더블 버튼 트렌치코트",
	    category_id_a : "00100",
	    category_name_a : "여성패션",
	    category_id_b : "2984",
	    category_name_b : "트렌치코드",
	    brand_name : "STUDIO TOMBOY"
	    }
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_see_review");
Dictionary<string, object> product = new Dictionary<string, object>();
product.Add("product_id", "2007289429");
product.Add("product_name", "플랩 더블 버튼 트렌치코트");
product.Add("category_id_a", "00100");
product.Add("category_name_a", "여성패션");
product.Add("category_id_b", "2984");
product.Add("category_name_b", "트렌치코드");
product.Add("brand_name", "STUDIO TOMBOY");
eventDic.Add("product", product);
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 기획전 조회

기획전 상세 화면에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>exhibition_id</td><td>2009022840</td><td>string</td><td>기획전 고유번호</td></tr><tr><td>exhibition_name</td><td>MD PICK! 내 피부를 위한 건강한 선택</td><td>string</td><td>기획전 명칭</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> pageMap = new HashMap<>();
pageMap.put("event", "w_view_exhibition");
pageMap.put("exhibition_id", "2009022840");
pageMap.put("exhibition_name", "MD PICK! 내 피부를 위한 건강한 선택");
DOT.logScreen(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val pageMap = mutableMapOf<String,Any>()
pageMap["event"] = "w_view_exhibition"
pageMap["exhibition_id"] = "2009022840"
pageMap["exhibition_name"] = "MD PICK! 내 피부를 위한 건강한 선택"
DOT.logScreen(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_view_exhibition"
event["exhibition_id"] = "2009022840"
event["exhibition_name"] = "MD PICK! 내 피부를 위한 건강한 선택"
DOT.logScreen(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_view_exhibition" forKey:@"event"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[event setValue:@"2009022840" forKey:@"exhibition_id"];
[event setValue:@"MD PICK! 내 피부를 위한 건강한 선택" forKey:@"exhibition_name"];
[DOT logScreen:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_view_exhibition";
    event["exhibition_id"] = "2009022840";
    event["exhibition_name"] = "MD PICK! 내 피부를 위한 건강한 선택";
    DOT.logScreen(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var screen = new Object();
    screen["event"] = "w_view_exhibition";
    screen["exhibition_id"] = "2009022840";
    screen["exhibition_name"] = "MD PICK! 내 피부를 위한 건강한 선택";
    WDOT.onStartPage(screen);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_view_exhibition";
event["exhibition_id"] = "2009022840";
event["exhibition_name"] = "MD PICK! 내 피부를 위한 건강한 선택";
DOT.logScreen(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logScreen",
      data: {
              event : "w_view_exhibition",
              exhibition_id : "2009022840",
              exhibition_name : "MD PICK! 내 피부를 위한 건강한 선택"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge != null &&
(NativeModules.DotReactBridge.onStartPage(),
NativeModules.DotReactBridge.logScreen(
  JSON.stringify({
      event: 'w_view_exhibition',
      exhibition_id : "2009022840",
      exhibition_name : "MD PICK! 내 피부를 위한 건강한 선택"
  }),
));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
  method:"logScreen",
  data : {
      event : "w_view_exhibition",
      exhibition_id : "2009022840",
      exhibition_name : "MD PICK! 내 피부를 위한 건강한 선택"
  }  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_view_exhibition");
eventDic.Add("exhibition_id", "2009022840");
eventDic.Add("exhibition_name", "MD PICK! 내 피부를 위한 건강한 선택");
DOT.logScreen(eventDic);
```

{% endtab %}
{% endtabs %}

## 이벤트 조회 <a href="#view-event" id="view-event"></a>

이벤트 상세화면에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>event_id</td><td>E200905605</td><td>string</td><td>이벤트 고유번호</td></tr><tr><td>event_name</td><td>10월 COUPON PACK</td><td>string</td><td>이벤트 명칭</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> pageMap = new HashMap<>();
pageMap.put("event", "w_view_event");
pageMap.put("event_id", "E200905605");
pageMap.put("event_name", "10월 COUPON PACK");
DOT.logScreen(pageMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val pageMap = mutableMapOf<String,Any>()
pageMap["event"] = "w_view_event"
pageMap["event_id"] = "E200905605"
pageMap["event_name"] = "10월 COUPON PACK"
DOT.logScreen(pageMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
var screen = NSMutableDictionary()
screen["event"] = "w_view_event"
screen["event_id"] = "E200905605"
screen["event_name"] = "10월 COUPON PACK"
DOT.logScreen(screen)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *screen = [[NSMutableDictionary alloc] init];
[screen setValue:@"w_view_event" forKey:@"event"];
[screen setValue:@"E200905605" forKey:@"event_id"];
[screen setValue:@"10월 COUPON PACK" forKey:@"event_name"];
[DOT logScreen:screen];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
var screen = new Object();
screen["event"] = "w_view_event";
screen["event_id"] = "E200905605";
screen["event_name"] = "10월 COUPON PACK";
DOT.logScreen(screen);
```

{% endtab %}

{% tab title="Website" %}

```javascript
var screen = new Object();
screen["event"] = "w_view_event";
screen["event_id"] = "E200905605";
screen["event_name"] = "10월 COUPON PACK";
WDOT.onStartPage(screen);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map screen = {};
screen["event"] = "w_view_event";
screen["event_id"] = "E200905605";
screen["event_name"] = "10월 COUPON PACK";
DOT.logScreen(screen);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logScreen",
      data: {
              event : "w_view_event",
              event_id : "E200905605",
              event_name : "10월 COUPON PACK"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge != null &&
  (NativeModules.DotReactBridge.onStartPage(),
  NativeModules.DotReactBridge.logScreen(JSON.stringify({
        event : "w_view_event",
        event_id : "E200905605",
        event_name : "10월 COUPON PACK"
    }),
  ));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
    method:"logScreen",
    data : {
        event : "w_view_event",
        event_id : "E200905605",
        event_name : "10월 COUPON PACK"
    }  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> page = new Dictionary<string, object>();
page.Add("event", "w_view_event");
page.Add("event_id", "E200905605");
page.Add("event_name", "10월 COUPON PACK");
DOT.logScreen(page);
```

{% endtab %}
{% endtabs %}

## 이벤트 참여 완료 <a href="#join-event" id="join-event"></a>

이벤트 참여 완료 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>event_id</td><td>E200905605</td><td>string</td><td>이벤트 고유번호</td></tr><tr><td>event_name</td><td>10월 COUPON PACK</td><td>string</td><td>이벤트 명칭</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_join_event");
eventMap.put("event_id", "E200905605");
eventMap.put("event_name", "10월 COUPON PACK");
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_join_event"
eventMap["event_id"] = "E200905605"
eventMap["event_name"] = "10월 COUPON PACK"
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_join_event"
event["event_id"] = "E200905605"
event["event_name"] = "10월 COUPON PACK"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_join_event" forKey:@"event"];
[event setValue:@"E200905605" forKey:@"event_id"];
[event setValue:@"10월 COUPON PACK" forKey:@"event_name"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_join_event";
    event["event_id"] = "E200905605";
    event["event_name"] = "10월 COUPON PACK";
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_join_event";
    event["event_id"] = "E200905605";
    event["event_name"] = "10월 COUPON PACK";
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_join_event";
event["event_id"] = "E200905605";
event["event_name"] = "10월 COUPON PACK";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_join_event",
              event_id : "E200905605",
              event_name : "10월 COUPON PACK"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_join_event",
    event_id : "E200905605",
    event_name : "10월 COUPON PACK"
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_join_event",
	    event_id : "E200905605",
	    event_name : "10월 COUPON PACK"
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_join_event");
eventDic.Add("event_id", "E200905605");
eventDic.Add("event_name", "10월 COUPON PACK");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 위시리스트에 추가 <a href="#add-to-wishlist" id="add-to-wishlist"></a>

상품이 위시리스트에 추가된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>product_id</td><td>301056226</td><td>string</td><td>상품 고유코드</td></tr><tr><td>product_name</td><td>wool cropped vest (navy)</td><td>string</td><td>상품명</td></tr><tr><td>category_id_a</td><td>c294</td><td>string</td><td>대 카테고리 코드</td></tr><tr><td>category_name_a</td><td>women</td><td>string</td><td>대 카테고리 명칭</td></tr><tr><td>category_id_b</td><td>d3775</td><td>string</td><td>중 카테고리 코드</td></tr><tr><td>category_name_b</td><td>니트웨어</td><td>string</td><td>중 카테고리 명칭</td></tr><tr><td>brand_name</td><td>blank03</td><td>string</td><td>브랜드 명칭</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_add_to_wishlist");
Map<String, Object> productMap = new HashMap<>();
productMap.put("product_id", "301056226");
productMap.put("product_name", "wool cropped vest (navy)");
productMap.put("category_id_a", "c294");
productMap.put("category_name_a", "women");
productMap.put("category_id_b", "d3775");
productMap.put("category_name_b", "니트웨어");
productMap.put("brand_name", "blank03");
eventMap.put("product", productMap);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_add_to_wishlist"
val productMap = mutableMapOf<String,Any>()
productMap["product_id"] = "301056226"
productMap["product_name"] = "wool cropped vest (navy)"
productMap["category_id_a"] = "c294"
productMap["category_name_a"] = "women"
productMap["category_id_b"] = "d3775"
productMap["category_name_b"] = "니트웨어"
productMap["brand_name"] = "lank03"
eventMap["product"] = productMap
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_add_to_wishlist"
var product : [String: Any] = [:]
product["product_id"] = "301056226"
product["product_name"] = "wool cropped vest (navy)"
product["category_id_a"] = "c294"
product["category_name_a"] = "women"
product["category_id_b"] = "d3775"
product["category_name_b"] = "니트웨어"
product["brand_name"] = "blank03"
event["product"] = product
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_add_to_wishlist" forKey:@"event"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[product setValue:@"301056226" forKey:@"product_id"];
[product setValue:@"wool cropped vest (navy)" forKey:@"product_name"];
[product setValue:@"c294" forKey:@"category_id_a"];
[product setValue:@"women" forKey:@"category_name_a"];
[product setValue:@"d3775" forKey:@"category_id_b"];
[product setValue:@"니트웨어" forKey:@"category_name_b"];
[product setValue:@"blank03" forKey:@"brand_name"];
[event setValue:product forKey:@"product"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_add_to_wishlist";
    var product = new Object();
    product["product_id"] = "301056226";
    product["product_name"] = "wool cropped vest (navy)";
    product["category_id_a"] = "c294";
    product["category_name_a"] = "women";
    product["category_id_b"] = "d3775";
    product["category_name_b"] = "니트웨어";
    product["brand_name"] = "blank03";
    event["product"] = product;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_add_to_wishlist";
    var product = new Object();
    product["product_id"] = "301056226";
    product["product_name"] = "wool cropped vest (navy)";
    product["category_id_a"] = "c294";
    product["category_name_a"] = "women";
    product["category_id_b"] = "d3775";
    product["category_name_b"] = "니트웨어";
    product["brand_name"] = "blank03";
    event["product"] = product;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_add_to_wishlist";
Map product = {};
product["product_id"] = "301056226";
product["product_name"] = "wool cropped vest (navy)";
product["category_id_a"] = "c294";
product["category_name_a"] = "women";
product["category_id_b"] = "d3775";
product["category_name_b"] = "니트웨어";
product["brand_name"] = "blank03";
event["product"] = product;
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_add_to_wishlist",
              product_id : "301056226",
              product_name : "wool cropped vest (navy)",
              category_id_a : "c294",
              category_name_a : "women",
              category_id_b : "d3775",
              category_name_b : "니트웨어",
              brand_name : "blank03"
      }
}));

```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_add_to_wishlist",
    product : {
    product_id : "301056226",
    product_name : "wool cropped vest (navy)",
    category_id_a : "c294",
    category_name_a : "women",
    category_id_b : "d3775",
    category_name_b : "니트웨어",
    brand_name : "blank03"
    }
})); 

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_add_to_wishlist",
	    product : {
		    product_id : "301056226",
		    product_name : "wool cropped vest (navy)",
		    category_id_a : "c294",
		    category_name_a : "women",
		    category_id_b : "d3775",
		    category_name_b : "니트웨어",
		    brand_name : "blank03"
            }
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_add_to_wishlist");
Dictionary<string, object> product = new Dictionary<string, object>();
product.Add("product_id", "301056226");
product.Add("product_name", "wool cropped vest (navy)");
product.Add("category_id_a", "c294");
product.Add("category_name_a", "women");
product.Add("category_id_b", "d3775");
product.Add("category_name_b", "니트웨어");
product.Add("brand_name", "blank03");
eventDic.Add("product", product);
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 위시리스트에서 제거

상품이 위시리스트에 제거된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>product_id</td><td>301056226</td><td>string</td><td>상품 고유코드</td></tr><tr><td>product_name</td><td>wool cropped vest (navy)</td><td>string</td><td>상품명</td></tr><tr><td>category_id_a</td><td>c294</td><td>string</td><td>대 카테고리 코드</td></tr><tr><td>category_name_a</td><td>women</td><td>string</td><td>대 카테고리 명칭</td></tr><tr><td>category_id_b</td><td>d3775</td><td>string</td><td>중 카테고리 코드</td></tr><tr><td>category_name_b</td><td>니트웨어</td><td>string</td><td>중 카테고리 명칭</td></tr><tr><td>brand_name</td><td>blank03</td><td>string</td><td>브랜드 명칭</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_remove_from_wishlist");
Map<String, Object> productMap = new HashMap<>();
productMap.put("product_id", "301056226");
productMap.put("product_name", "wool cropped vest (navy)");
productMap.put("category_id_a", "c294");
productMap.put("category_name_a", "women");
productMap.put("category_id_b", "d3775");
productMap.put("category_name_b", "니트웨어");
productMap.put("brand_name", "blank03");
eventMap.put("product", productMap);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_remove_from_wishlist"
val productMap = mutableMapOf<String,Any>()
productMap["product_id"] = "301056226"
productMap["product_name"] = "wool cropped vest (navy)"
productMap["category_id_a"] = "c294"
productMap["category_name_a"] = "women"
productMap["category_id_b"] = "d3775"
productMap["category_name_b"] = "니트웨어"
productMap["brand_name"] = "lank03"
eventMap["product"] = productMap
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_remove_from_wishlist"
var product : [String: Any] = [:]
product["product_id"] = "301056226"
product["product_name"] = "wool cropped vest (navy)"
product["category_id_a"] = "c294"
product["category_name_a"] = "women"
product["category_id_b"] = "d3775"
product["category_name_b"] = "니트웨어"
product["brand_name"] = "blank03"
event["product"] = product
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_remove_from_wishlist" forKey:@"event"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[product setValue:@"301056226" forKey:@"product_id"];
[product setValue:@"wool cropped vest (navy)" forKey:@"product_name"];
[product setValue:@"c294" forKey:@"category_id_a"];
[product setValue:@"women" forKey:@"category_name_a"];
[product setValue:@"d3775" forKey:@"category_id_b"];
[product setValue:@"니트웨어" forKey:@"category_name_b"];
[product setValue:@"blank03" forKey:@"brand_name"];
[event setValue:product forKey:@"product"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_remove_from_wishlist";
    var product = new Object();
    product["product_id"] = "301056226";
    product["product_name"] = "wool cropped vest (navy)";
    product["category_id_a"] = "c294";
    product["category_name_a"] = "women";
    product["category_id_b"] = "d3775";
    product["category_name_b"] = "니트웨어";
    product["brand_name"] = "blank03";
    event["product"] = product;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_remove_from_wishlist";
    var product = new Object();
    product["product_id"] = "301056226";
    product["product_name"] = "wool cropped vest (navy)";
    product["category_id_a"] = "c294";
    product["category_name_a"] = "women";
    product["category_id_b"] = "d3775";
    product["category_name_b"] = "니트웨어";
    product["brand_name"] = "blank03";
    event["product"] = product;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_remove_from_wishlist";
Map product = {};
product["product_id"] = "301056226";
product["product_name"] = "wool cropped vest (navy)";
product["category_id_a"] = "c294";
product["category_name_a"] = "women";
product["category_id_b"] = "d3775";
product["category_name_b"] = "니트웨어";
product["brand_name"] = "blank03";
event["product"] = product;
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_remove_from_wishlist",
              product_id : "301056226",
              product_name : "wool cropped vest (navy)",
              category_id_a : "c294",
              category_name_a : "women",
              category_id_b : "d3775",
              category_name_b : "니트웨어",
              brand_name : "blank03"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_remove_from_wishlist",
    product : {
	    product_id : "301056226",
	    product_name : "wool cropped vest (navy)",
	    category_id_a : "c294",
	    category_name_a : "women",
	    category_id_b : "d3775",
	    category_name_b : "니트웨어",
	    brand_name : "blank03"
    }
})); 

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_remove_from_wishlist",
	    product : {
		    product_id : "301056226",
		    product_name : "wool cropped vest (navy)",
		    category_id_a : "c294",
		    category_name_a : "women",
		    category_id_b : "d3775",
		    category_name_b : "니트웨어",
		    brand_name : "blank03"
	    }
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_remove_from_wishlist");
Dictionary<string, object> product = new Dictionary<string, object>();
product.Add("product_id", "301056226");
product.Add("product_name", "wool cropped vest (navy)");
product.Add("category_id_a", "c294");
product.Add("category_name_a", "women");
product.Add("category_id_b", "d3775");
product.Add("category_name_b", "니트웨어");
product.Add("brand_name", "blank03");
eventDic.Add("product", product);
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 장바구니 조회 <a href="#view-cart" id="view-cart"></a>

장바구니 화면에 아래 코드를 추가합니다.

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_view_cart");
DOT.logEvent(logEvent);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_view_cart"
DOT.logEvent(logEvent)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_view_cart"
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_view_cart" forKey:@"event"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
var event = new Object();
event["event"] = "w_view_cart";
DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
var event = new Object();
event["event"] = "w_view_cart";
WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_view_cart";
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
         event : "w_view_cart"
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_view_cart"
}));  

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
  method:"logEvent",
  data : {
    event : "w_view_cart"
  }  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_view_cart");
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

## 장바구니에 추가 <a href="#add-to-cart" id="add-to-cart"></a>

상품이 장바구니에 추가되는 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>product_id</td><td>301056226, 301053552</td><td>string</td><td>상품 고유코드</td></tr><tr><td>product_name</td><td>wool cropped vest (navy), white calf_Libra</td><td>string</td><td>상품명</td></tr><tr><td>category_id_a</td><td>c294, c493</td><td>string</td><td>대 카테고리 코드</td></tr><tr><td>category_name_a</td><td>women, men</td><td>string</td><td>대 카테고리 명칭</td></tr><tr><td>category_id_b</td><td>d3775,  d5783</td><td>string</td><td>중 카테고리 코드</td></tr><tr><td>category_name_b</td><td>니트웨어, 스니커즈</td><td>string</td><td>중 카테고리 명칭</td></tr><tr><td>brand_name</td><td>blank03, IMMATERIAL</td><td>string</td><td>브랜드 명칭</td></tr><tr><td>quantity</td><td>1, 2</td><td>integer</td><td>상품 개수</td></tr></tbody></table>

### 한가지 상품이 장바구니에 추가된 경우

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_add_to_cart");
Map<String, Object> productMap = new HashMap<>();
productMap.put("product_id", "301056226");
productMap.put("product_name", "wool cropped vest (navy)");
productMap.put("category_id_a", "c294");
productMap.put("category_name_a", "women");
productMap.put("category_id_b", "d3775");
productMap.put("category_name_b", "니트웨어");
productMap.put("brand_name", "blank03");
productMap.put("quantity", 1);
eventMap.put("product", productMap);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_add_to_cart"
val productMap = mutableMapOf<String,Any>()
productMap["product_id"] = "301056226"
productMap["product_name"] = "wool cropped vest (navy)"
productMap["category_id_a"] = "c294"
productMap["category_name_a"] = "women"
productMap["category_id_b"] = "d3775"
productMap["category_name_b"] = "니트웨어"
productMap["brand_name"] = "lank03"
eventMap["product"] = productMap
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_add_to_cart"
var product : [String: Any] = [:]
product["product_id"] = "301056226"
product["product_name"] = "wool cropped vest (navy)"
product["category_id_a"] = "c294"
product["category_name_a"] = "women"
product["category_id_b"] = "d3775"
product["category_name_b"] = "니트웨어"
product["brand_name"] = "blank03"
product["quantity"] = 1
event["product"] = product
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_add_to_cart" forKey:@"event"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[product setValue:@"301056226" forKey:@"product_id"];
[product setValue:@"wool cropped vest (navy)" forKey:@"product_name"];
[product setValue:@"c294" forKey:@"category_id_a"];
[product setValue:@"women" forKey:@"category_name_a"];
[product setValue:@"d3775" forKey:@"category_id_b"];
[product setValue:@"니트웨어" forKey:@"category_name_b"];
[product setValue:@"blank03" forKey:@"brand_name"];
[product setValue:[NSNumber numberWithInt:1] forKey:@"quantity"];
[event setValue:product forKey:@"product"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_add_to_cart";
    var product = new Object(); 
    product["product_id"] = "301056226";
    product["product_name"] = "wool cropped vest (navy)";
    product["category_id_a"] = "c294";
    product["category_name_a"] = "women";
    product["category_id_b"] = "d3775";
    product["category_name_b"] = "니트웨어";
    product["brand_name"] = "blank03";
    product["quantity"] = 1;
    event["product"] = product;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_add_to_cart";
    var product = new Object(); 
    product["product_id"] = "301056226";
    product["product_name"] = "wool cropped vest (navy)";
    product["category_id_a"] = "c294";
    product["category_name_a"] = "women";
    product["category_id_b"] = "d3775";
    product["category_name_b"] = "니트웨어";
    product["brand_name"] = "blank03";
    product["quantity"] = 1;
    event["product"] = product;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_add_to_cart";
Map product = {};
product["product_id"] = "301056226";
product["product_name"] = "wool cropped vest (navy)";
product["category_id_a"] = "c294";
product["category_name_a"] = "women";
product["category_id_b"] = "d3775";
product["category_name_b"] = "니트웨어";
product["brand_name"] = "blank03";
product["quantity"] = 1;
event["product"] = product;
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_add_to_cart",
              product_id : "301056226",
              product_name : "wool cropped vest (navy)",
              category_id_a : "c294",
              category_name_a : "women",
              category_id_b : "d3775",
              category_name_b : "니트웨어",
              brand_name : "blank03",
              quantity : 1
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_add_to_cart"
    product : {
        product_id : "301056226",
        product_name : "wool cropped vest (navy)",
        category_id_a : "c294",
        category_name_a : "women",
        category_id_b : "d3775",
        category_name_b : "니트웨어",
        brand_name : "blank03",
        quantity : 1,
    }
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_add_to_cart"
	    product : {
	        product_id : "301056226",
	        product_name : "wool cropped vest (navy)",
	        category_id_a : "c294",
	        category_name_a : "women",
	        category_id_b : "d3775",
	        category_name_b : "니트웨어",
	        brand_name : "blank03",
	        quantity : 1,
	    }
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_add_to_cart");
Dictionary<string, object> product = new Dictionary<string, object>();
product.Add("product_id", "301056226");
product.Add("product_name", "wool cropped vest (navy)");
product.Add("category_id_a", "c294");
product.Add("category_name_a", "women");
product.Add("category_id_b", "d3775");
product.Add("category_name_b", "니트웨어");
product.Add("brand_name", "blank03");
product.Add("quantity", 1);
eventDic.Add("product", product);
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

### 두가지 이상의 상품이 장바구니에 추가된 경우

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_add_to_cart");
Map<String, Object> productMap1 = new HashMap<>();
productMap1.put("product_id", "301056226");
productMap1.put("product_name", "wool cropped vest (navy)");
productMap1.put("category_id_a", "c294");
productMap1.put("category_name_a", "women");
productMap1.put("category_id_b", "d3775");
productMap1.put("category_name_b", "니트웨어");
productMap1.put("brand_name", "blank03");
productMap1.put("quantity", 1);
Map<String, Object> productMap2 = new HashMap<>();
productMap2.put("product_id", "301053552");
productMap2.put("product_name", "white calf_Libra");
productMap2.put("category_id_a", "c493");
productMap2.put("category_name_a", "men");
productMap2.put("category_id_b", "d5783");
productMap2.put("category_name_b", "스니커즈");
productMap2.put("brand_name", "IMMATERIAL");
productMap2.put("quantity", 2);
List<Map<String, Object>> productList = new ArrayList<>();
productList.add(productMap1);
productList.add(productMap2);
eventMap.put("product", productList);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_add_to_cart"
val productMap1 = mutableMapOf<String,Any>()
productMap1["product_id"] = "301056226"
productMap1["product_name"] = "wool cropped vest (navy)"
productMap1["category_id_a"] = "c294"
productMap1["category_name_a"] = "women"
productMap1["category_id_b"] = "d3775"
productMap1["category_name_b"] = "니트웨어"
productMap1["brand_name"] = "lank03"
productMap1["quantity"] = 1
val productMap2 = mutableMapOf<String,Any>()
productMap2["product_id"] = "301053552"
productMap2["product_name"] = "white calf_Libra"
productMap2["category_id_a"] = "c493"
productMap2["category_name_a"] = "men"
productMap2["category_id_b"] = "d5783"
productMap2["category_name_b"] = "스니커즈"
productMap2["brand_name"] = "IMMATERIAL"
productMap2["quantity"] = 2

val productList = ArrayList<Map<String,Any>>()
productList.add(productMap1)
productList.add(productMap2)
eventMap["product"] = productList

DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_add_to_cart"
var product1 : [String: Any] = [:]
product1["product_id"] = "301056226"
product1["product_name"] = "wool cropped vest (navy)"
product1["category_id_a"] = "c294"
product1["category_name_a"] = "women"
product1["category_id_b"] = "d3775"
product1["category_name_b"] = "니트웨어"
product1["brand_name"] = "blank03"
product1["quantity"] = 1
var product2 : [String: Any] = [:]
product2["product_id"] = "301053552"
product2["product_name"] = "white calf_Libra"
product2["category_id_a"] = "c493"
product2["category_name_a"] = "men"
product2["category_id_b"] = "d5783"
product2["category_name_b"] = "스니커즈"
product2["brand_name"] = "IMMATERIAL"
product2["quantity"] = 2
var productArray : [Any] = []
productArray.append(product1)
productArray.append(product2)
event["product"] = productArray
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
  NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
  [event setValue:@"w_add_to_cart" forKey:@"event"];
  NSMutableDictionary *product1 = [[NSMutableDictionary alloc] init];
  [product1 setValue:@"301056226" forKey:@"product_id"];
  [product1 setValue:@"wool cropped vest (navy)" forKey:@"product_name"];
  [product1 setValue:@"c294" forKey:@"category_id_a"];
  [product1 setValue:@"women" forKey:@"category_name_a"];
  [product1 setValue:@"d3775" forKey:@"category_id_b"];
  [product1 setValue:@"니트웨어" forKey:@"category_name_b"];
  [product1 setValue:@"blank03" forKey:@"brand_name"];
  [product1 setValue:[NSNumber numberWithInt:1] forKey:@"quantity"];
  NSMutableDictionary *product2 = [[NSMutableDictionary alloc] init];
  [product2 setValue:@"301053552" forKey:@"product_id"];
  [product2 setValue:@"white calf_Libra" forKey:@"product_name"];
  [product2 setValue:@"c493" forKey:@"category_id_a"];
  [product2 setValue:@"men" forKey:@"category_name_a"];
  [product2 setValue:@"d5783" forKey:@"category_id_b"];
  [product2 setValue:@"스니커즈" forKey:@"category_name_b"];
  [product2 setValue:@"IMMATERIAL" forKey:@"brand_name"];
  [product2 setValue:[NSNumber numberWithInt:2] forKey:@"quantity"];
  [event setValue:product1 forKey:@"product1"];
  [event setValue:product2 forKey:@"product2"];
  [DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_add_to_cart";
    var product1 = new Object();
    product1["product_id"] = "301056226";
    product1["product_name"] = "wool cropped vest (navy)";
    product1["category_id_a"] = "c294";
    product1["category_name_a"] = "women";
    product1["category_id_b"] = "d3775";
    product1["category_name_b"] = "니트웨어";
    product1["brand_name"] = "blank03";
    product1["quantity"] = 1;
    var product2 = new Object();
    product2["product_id"] = "301053552";
    product2["product_name"] = "white calf_Libra";
    product2["category_id_a"] = "c493";
    product2["category_name_a"] = "men";
    product2["category_id_b"] = "d5783";
    product2["category_name_b"] = "스니커즈";
    product2["brand_name"] = "IMMATERIAL";
    product2["quantity"] = 2;
    var productArray = new Array();
    productArray.push(product1);
    productArray.push(product2);
    event["product"] = productArray;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_add_to_cart";
    var product1 = new Object();
    product1["product_id"] = "301056226";
    product1["product_name"] = "wool cropped vest (navy)";
    product1["category_id_a"] = "c294";
    product1["category_name_a"] = "women";
    product1["category_id_b"] = "d3775";
    product1["category_name_b"] = "니트웨어";
    product1["brand_name"] = "blank03";
    product1["quantity"] = 1;
    var product2 = new Object();
    product2["product_id"] = "301053552";
    product2["product_name"] = "white calf_Libra";
    product2["category_id_a"] = "c493";
    product2["category_name_a"] = "men";
    product2["category_id_b"] = "d5783";
    product2["category_name_b"] = "스니커즈";
    product2["brand_name"] = "IMMATERIAL";
    product2["quantity"] = 2;
    var productArray = new Array();
    productArray.push(product1);
    productArray.push(product2);
    event["product"] = productArray;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_add_to_cart";
Map product1 = {};
product1["product_id"] = "301056226";
product1["product_name"] = "wool cropped vest (navy)";
product1["category_id_a"] = "c294";
product1["category_name_a"] = "women";
product1["category_id_b"] = "d3775";
product1["category_name_b"] = "니트웨어";
product1["brand_name"] = "blank03";
product1["quantity"] = 1;
Map product2 = {};
product2["product_id"] = "301053552";
product2["product_name"] = "white calf_Libra";
product2["category_id_a"] = "c493";
product2["category_name_a"] = "men";
product2["category_id_b"] = "d5783";
product2["category_name_b"] = "스니커즈";
product2["brand_name"] = "IMMATERIAL";
product2["quantity"] = 2;
var productArray = [];
productArray.add(product1);
productArray.add(product2);
event["product"] = productArray;
DOT.logEvent(event);


// webview 에서 호출 할 때
var product = new Object();
var productArray = new Array();

for( var inx = 0; inx < cartlist[장바구니 상품 목록].length; inx++){

var cartProduct[장바구니담은상품] = cartlist[inx]; 

var event = new Object();
event["event"] = "w_add_to_cart";
event["product_id"] = "장바구니 담은 상품에 대한 상품 코드";
event["product_name"] = "장바구니 담은 상품에 대한 상품명";
event["category_id_a"] = "장바구니 담은 상품에 대한 대카테고리 코드";
event["category_name_a"] = "장바구니 담은 상품에 대한 대카테고리 이름";
event["category_id_b"] = "장바구니 담은 상품에 대한 중카테고리 코드";
event["category_name_b"] = "장바구니 담은 상품에 대한 중카테고리 이름";
event["brand_name"] = "장바구니 담은 상품에 대한 브랜드이름";
event["quantity"] = 장바구니 담은 상품의 수량;
productArray.push(event); 
}

product["product"] = productArray;

window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: product
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event: "w_add_to_cart",
    product: [
        {
            product_id: "301056226",
            product_name: "wool cropped vest (navy)",
            category_id_a: "c294",
            category_name_a: "women",
            category_id_b: "d3775",
            category_name_b: "니트웨어",
            brand_name: "blank03",
            quantity: 1
        },
        {
            product_id: "301053552",
            product_name: "white calf_Libra",
            category_id_a: "c493",
            category_name_a: "men",
            category_id_b: "d5783",
            category_name_b: "스니커즈",
            brand_name: "IMMATERIAL",
            quantity: 2
        }
    ]
}));




// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
    method: "logEvent",
    data: {
        event: "w_add_to_cart",
        product: [
            {
                product_id: "301056226",
                product_name: "wool cropped vest (navy)",
                category_id_a: "c294",
                category_name_a: "women",
                category_id_b: "d3775",
                category_name_b: "니트웨어",
                brand_name: "blank03",
                quantity: 1
            },
            {
                product_id: "301053552",
                product_name: "white calf_Libra",
                category_id_a: "c493",
                category_name_a: "men",
                category_id_b: "d5783",
                category_name_b: "스니커즈",
                brand_name: "IMMATERIAL",
                quantity: 2
            }
        ]
    }
}));
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_add_to_cart");
Dictionary<string, object> product1 = new Dictionary<string, object>();
product1.Add("product_id", "301056226");
product1.Add("product_name", "wool cropped vest (navy)");
product1.Add("category_id_a", "c294");
product1.Add("category_name_a", "women");
product1.Add("category_id_b", "d3775");
product1.Add("category_name_b", "니트웨어");
product1.Add("brand_name", "blank03");
product1.Add("quantity", 1);
Dictionary<string, object> product2 = new Dictionary<string, object>();
product2.Add("product_id", "301053552");
product2.Add("product_name", "white calf_Libra");
product2.Add("category_id_a", "c493");
product2.Add("category_name_a", "men");
product2.Add("category_id_b", "d5783");
product2.Add("category_name_b", "스니커즈");
product2.Add("brand_name", "IMMATERIAL");
product2.Add("quantity", 2);
eventDic.Add("product", product1);
eventDic.Add("product", product2);
DOT.logEvent(eventDic)
```

{% endtab %}
{% endtabs %}

## 장바구니에서 제거

상품이 장바구니에서 제거되는 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>product_id</td><td>301056226, 301053552</td><td>string</td><td>상품 고유코드</td></tr><tr><td>product_name</td><td>wool cropped vest (navy), white calf_Libra</td><td>string</td><td>상품명</td></tr><tr><td>category_id_a</td><td>c294, c493</td><td>string</td><td>대 카테고리 코드</td></tr><tr><td>category_name_a</td><td>women, men</td><td>string</td><td>대 카테고리 명칭</td></tr><tr><td>category_id_b</td><td>d3775,  d5783</td><td>string</td><td>중 카테고리 코드</td></tr><tr><td>category_name_b</td><td>니트웨어, 스니커즈</td><td>string</td><td>중 카테고리 명칭</td></tr><tr><td>brand_name</td><td>blank03, IMMATERIAL</td><td>string</td><td>브랜드 명칭</td></tr><tr><td>quantity</td><td>1, 2</td><td>integer</td><td>상품 개수</td></tr></tbody></table>

### 한가지 상품이 장바구니에서 제거된 경우

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_remove_from_cart");
Map<String, Object> productMap = new HashMap<>();
productMap.put("product_id", "301056226");
productMap.put("product_name", "wool cropped vest (navy)");
productMap.put("category_id_a", "c294");
productMap.put("category_name_a", "women");
productMap.put("category_id_b", "d3775");
productMap.put("category_name_b", "니트웨어");
productMap.put("brand_name", "blank03");
productMap.put("quantity", 1);
eventMap.put("product", productMap);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_remove_from_cart"
val productMap = mutableMapOf<String,Any>()
productMap["product_id"] = "301056226"
productMap["product_name"] = "wool cropped vest (navy)"
productMap["category_id_a"] = "c294"
productMap["category_name_a"] = "women"
productMap["category_id_b"] = "d3775"
productMap["category_name_b"] = "니트웨어"
productMap["brand_name"] = "blank03"
productMap["quantity"] = 1
eventMap["product"] = productMap
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_remove_from_cart"
var product : [String: Any] = [:]
product["product_id"] = "301056226"
product["product_name"] = "wool cropped vest (navy)"
product["category_id_a"] = "c294"
product["category_name_a"] = "women"
product["category_id_b"] = "d3775"
product["category_name_b"] = "니트웨어"
product["brand_name"] = "blank03"
product["quantity"] = 1
event["product"] = product
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_remove_from_cart" forKey:@"event"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[product setValue:@"301056226" forKey:@"product_id"];
[product setValue:@"wool cropped vest (navy)" forKey:@"product_name"];
[product setValue:@"c294" forKey:@"category_id_a"];
[product setValue:@"women" forKey:@"category_name_a"];
[product setValue:@"d3775" forKey:@"category_id_b"];
[product setValue:@"니트웨어" forKey:@"category_name_b"];
[product setValue:@"blank03" forKey:@"brand_name"];
[product setValue:[NSNumber numberWithInt:1] forKey:@"quantity"];
[event setValue:product forKey:@"product"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_remove_from_cart";
    var product = new Object(); 
    product["product_id"] = "301056226";
    product["product_name"] = "wool cropped vest (navy)";
    product["category_id_a"] = "c294";
    product["category_name_a"] = "women";
    product["category_id_b"] = "d3775";
    product["category_name_b"] = "니트웨어";
    product["brand_name"] = "blank03";
    product["quantity"] = 1;
    event["product"] = product;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_remove_from_cart";
    var product = new Object(); 
    product["product_id"] = "301056226";
    product["product_name"] = "wool cropped vest (navy)";
    product["category_id_a"] = "c294";
    product["category_name_a"] = "women";
    product["category_id_b"] = "d3775";
    product["category_name_b"] = "니트웨어";
    product["brand_name"] = "blank03";
    product["quantity"] = 1;
    event["product"] = product;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_remove_from_cart";
Map product = {};
product["product_id"] = "301056226";
product["product_name"] = "wool cropped vest (navy)";
product["category_id_a"] = "c294";
product["category_name_a"] = "women";
product["category_id_b"] = "d3775";
product["category_name_b"] = "니트웨어";
product["brand_name"] = "blank03";
product["quantity"] = 1;
event["product"] = product;
DOT.logEvent(event);

// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_remove_from_cart",
              product_id : "301056226",
              product_name : "wool cropped vest (navy)",
              category_id_a : "c294",
              category_name_a : "women",
              category_id_b : "d3775",
              category_name_b : "니트웨어",
              brand_name : "blank03",
              quantity : 1
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_remove_from_cart"
    product : {
        product_id : "301056226",
        product_name : "wool cropped vest (navy)",
        category_id_a : "c294",
        category_name_a : "women",
        category_id_b : "d3775",
        category_name_b : "니트웨어",
        brand_name : "blank03",
        quantity : 1,
    }
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_remove_from_cart"
	    product : {
	        product_id : "301056226",
	        product_name : "wool cropped vest (navy)",
	        category_id_a : "c294",
	        category_name_a : "women",
	        category_id_b : "d3775",
	        category_name_b : "니트웨어",
	        brand_name : "blank03",
	        quantity : 1,
	    }
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_remove_from_cart");
Dictionary<string, object> product = new Dictionary<string, object>();
product.Add("product_id", "301056226");
product.Add("product_name", "wool cropped vest (navy)");
product.Add("category_id_a", "c294");
product.Add("category_name_a", "women");
product.Add("category_id_b", "d3775");
product.Add("category_name_b", "니트웨어");
product.Add("brand_name", "blank03");
product.Add("quantity", 1);
eventDic.Add("product", product);
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}

### 두가지 이상의 상품이 장바구니에서 제거된 경우

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_remove_from_cart");
Map<String, Object> productMap1 = new HashMap<>();
productMap1.put("product_id", "301056226");
productMap1.put("product_name", "wool cropped vest (navy)");
productMap1.put("category_id_a", "c294");
productMap1.put("category_name_a", "women");
productMap1.put("category_id_b", "d3775");
productMap1.put("category_name_b", "니트웨어");
productMap1.put("brand_name", "blank03");
productMap1.put("quantity", 1);
Map<String, Object> productMap2 = new HashMap<>();
productMap2.put("product_id", "301053552");
productMap2.put("product_name", "white calf_Libra");
productMap2.put("category_id_a", "c493");
productMap2.put("category_name_a", "men");
productMap2.put("category_id_b", "d5783");
productMap2.put("category_name_b", "스니커즈");
productMap2.put("brand_name", "IMMATERIAL");
productMap2.put("quantity", 2);
List<Map<String, Object>> productList = new ArrayList<>();
productList.add(productMap1);
productList.add(productMap2);
eventMap.put("product", productList);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_remove_from_cart"
val productMap1 = mutableMapOf<String,Any>()
productMap1["product_id"] = "301056226"
productMap1["product_name"] = "wool cropped vest (navy)"
productMap1["category_id_a"] = "c294"
productMap1["category_name_a"] = "women"
productMap1["category_id_b"] = "d3775"
productMap1["category_name_b"] = "니트웨어"
productMap1["brand_name"] = "lank03"
productMap1["quantity"] = 1

val productMap2 = mutableMapOf<String,Any>()
productMap2["product_id"] = "301053552"
productMap2["product_name"] = "white calf_Libra"
productMap2["category_id_a"] = "c493"
productMap2["category_name_a"] = "men"
productMap2["category_id_b"] = "d5783"
productMap2["category_name_b"] = "스니커즈"
productMap2["brand_name"] = "IMMATERIAL"
productMap2["quantity"] = 2

val productList = ArrayList<Map<String,Any>>()
productList.add(productMap1)
productList.add(productMap2)
eventMap["product"] = productList

DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_remove_from_cart"
var product1 : [String: Any] = [:]
product1["product_id"] = "301056226"
product1["product_name"] = "wool cropped vest (navy)"
product1["category_id_a"] = "c294"
product1["category_name_a"] = "women"
product1["category_id_b"] = "d3775"
product1["category_name_b"] = "니트웨어"
product1["brand_name"] = "blank03"
product1["quantity"] = 1
var product2 : [String: Any] = [:]
product2["product_id"] = "301053552"
product2["product_name"] = "white calf_Libra"
product2["category_id_a"] = "c493"
product2["category_name_a"] = "men"
product2["category_id_b"] = "d5783"
product2["category_name_b"] = "스니커즈"
product2["brand_name"] = "IMMATERIAL"
product2["quantity"] = 2
var productArray : [Any] = []
productArray.append(product1)
productArray.append(product2)
event["product"] = productArray
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
  NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
  [event setValue:@"w_remove_from_cart" forKey:@"event"];
  NSMutableDictionary *product1 = [[NSMutableDictionary alloc] init];
  [product1 setValue:@"301056226" forKey:@"product_id"];
  [product1 setValue:@"wool cropped vest (navy)" forKey:@"product_name"];
  [product1 setValue:@"c294" forKey:@"category_id_a"];
  [product1 setValue:@"women" forKey:@"category_name_a"];
  [product1 setValue:@"d3775" forKey:@"category_id_b"];
  [product1 setValue:@"니트웨어" forKey:@"category_name_b"];
  [product1 setValue:@"blank03" forKey:@"brand_name"];
  [product1 setValue:[NSNumber numberWithInt:1] forKey:@"quantity"];
  NSMutableDictionary *product2 = [[NSMutableDictionary alloc] init];
  [product2 setValue:@"301053552" forKey:@"product_id"];
  [product2 setValue:@"white calf_Libra" forKey:@"product_name"];
  [product2 setValue:@"c493" forKey:@"category_id_a"];
  [product2 setValue:@"men" forKey:@"category_name_a"];
  [product2 setValue:@"d5783" forKey:@"category_id_b"];
  [product2 setValue:@"스니커즈" forKey:@"category_name_b"];
  [product2 setValue:@"IMMATERIAL" forKey:@"brand_name"];
  [product2 setValue:[NSNumber numberWithInt:2] forKey:@"quantity"];
  [event setValue:product1 forKey:@"product1"];
  [event setValue:product1 forKey:@"product2"];
  [DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_remove_from_cart";
    var product1 = new Object();
    product1["product_id"] = "301056226";
    product1["product_name"] = "wool cropped vest (navy)";
    product1["category_id_a"] = "c294";
    product1["category_name_a"] = "women";
    product1["category_id_b"] = "d3775";
    product1["category_name_b"] = "니트웨어";
    product1["brand_name"] = "blank03";
    product1["quantity"] = 1;
    var product2 = new Object();
    product2["product_id"] = "301053552";
    product2["product_name"] = "white calf_Libra";
    product2["category_id_a"] = "c493";
    product2["category_name_a"] = "men";
    product2["category_id_b"] = "d5783";
    product2["category_name_b"] = "스니커즈";
    product2["brand_name"] = "IMMATERIAL";
    product2["quantity"] = 2;
    var productArray = new Array();
    productArray.push(product1);
    productArray.push(product2);
    event["product"] = productArray;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_remove_from_cart";
    var product1 = new Object();
    product1["product_id"] = "301056226";
    product1["product_name"] = "wool cropped vest (navy)";
    product1["category_id_a"] = "c294";
    product1["category_name_a"] = "women";
    product1["category_id_b"] = "d3775";
    product1["category_name_b"] = "니트웨어";
    product1["brand_name"] = "blank03";
    product1["quantity"] = 1;
    var product2 = new Object();
    product2["product_id"] = "301053552";
    product2["product_name"] = "white calf_Libra";
    product2["category_id_a"] = "c493";
    product2["category_name_a"] = "men";
    product2["category_id_b"] = "d5783";
    product2["category_name_b"] = "스니커즈";
    product2["brand_name"] = "IMMATERIAL";
    product2["quantity"] = 2;
    var productArray = new Array();
    productArray.push(product1);
    productArray.push(product2);
    event["product"] = productArray;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_remove_from_cart";
Map product1 = {};
product1["product_id"] = "301056226";
product1["product_name"] = "wool cropped vest (navy)";
product1["category_id_a"] = "c294";
product1["category_name_a"] = "women";
product1["category_id_b"] = "d3775";
product1["category_name_b"] = "니트웨어";
product1["brand_name"] = "blank03";
product1["quantity"] = 1;
Map product2 = {};
product2["product_id"] = "301053552";
product2["product_name"] = "white calf_Libra";
product2["category_id_a"] = "c493";
product2["category_name_a"] = "men";
product2["category_id_b"] = "d5783";
product2["category_name_b"] = "스니커즈";
product2["brand_name"] = "IMMATERIAL";
product2["quantity"] = 2;
var productArray = [];
productArray.add(product1);
productArray.add(product2);
event["product"] = productArray;
DOT.logEvent(event);


// webview 에서 호출 할 때
var product = new Object();
var productArray = new Array();

for( var inx = 0; inx < cartlist[장바구니 상품 목록].length; inx++){

var cartRmProduct[장바구니제거상품] = cartlist[inx]; 

var event = new Object();
event["event"] = "w_remove_from_cart";
event["product_id"] = "장바구니 제거 상품에 대한 상품 코드";
event["product_name"] = "장바구니 제거 상품에 대한 상품명";
event["category_id_a"] = "장바구니 제거 상품에 대한 대카테고리 코드";
event["category_name_a"] = "장바구니 제거 상품에 대한 대카테고리 이름";
event["category_id_b"] = "장바구니 제거 상품에 대한 중카테고리 코드";
event["category_name_b"] = "장바구니 제거 상품에 대한 중카테고리 이름";
event["brand_name"] = "장바구니 제거 상품에 대한 브랜드이름";
event["quantity"] = 장바구니 제거 상품의 수량;

productArray.push(event); 
}

product["product"] = productArray;

window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: product
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event: "w_remove_from_cart",
    product: [
        {
            product_id: "301056226",
            product_name: "wool cropped vest (navy)",
            category_id_a: "c294",
            category_name_a: "women",
            category_id_b: "d3775",
            category_name_b: "니트웨어",
            brand_name: "blank03",
            quantity: 1
        },
        {
            product_id: "301053552",
            product_name: "white calf_Libra",
            category_id_a: "c493",
            category_name_a: "men",
            category_id_b: "d5783",
            category_name_b: "스니커즈",
            brand_name: "IMMATERIAL",
            quantity: 2
        }
    ]
}));



// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
    method: "logEvent",
    data: {
        event: "w_remove_from_cart",
        product: [
            {
                product_id: "301056226",
                product_name: "wool cropped vest (navy)",
                category_id_a: "c294",
                category_name_a: "women",
                category_id_b: "d3775",
                category_name_b: "니트웨어",
                brand_name: "blank03",
                quantity: 1
            },
            {
                product_id: "301053552",
                product_name: "white calf_Libra",
                category_id_a: "c493",
                category_name_a: "men",
                category_id_b: "d5783",
                category_name_b: "스니커즈",
                brand_name: "IMMATERIAL",
                quantity: 2
            }
        ]
    }
}));
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_remove_from_cart");
Dictionary<string, object> product1 = new Dictionary<string, object>();
product1.Add("product_id", "301056226");
product1.Add("product_name", "wool cropped vest (navy)");
product1.Add("category_id_a", "c294");
product1.Add("category_name_a", "women");
product1.Add("category_id_b", "d3775");
product1.Add("category_name_b", "니트웨어");
product1.Add("brand_name", "blank03");
product1.Add("quantity", 1);
Dictionary<string, object> product2 = new Dictionary<string, object>();
product2.Add("product_id", "301053552");
product2.Add("product_name", "white calf_Libra");
product2.Add("category_id_a", "c493");
product2.Add("category_name_a", "men");
product2.Add("category_id_b", "d5783");
product2.Add("category_name_b", "스니커즈");
product2.Add("brand_name", "IMMATERIAL");
product2.Add("quantity", 2);
eventDic.Add("product", product1);
eventDic.Add("product", product2);
DOT.logEvent(eventDic)

```

{% endtab %}
{% endtabs %}

## 구매 <a href="#purchase" id="purchase"></a>

구매 완료화면에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>transaction_id</td><td>P20154829420, P20154829421</td><td>string</td><td>주문번호</td></tr><tr><td>currency</td><td>KRW</td><td>string</td><td>결제 통화코드</td></tr><tr><td>product_id</td><td>301056226, 301053552</td><td>string</td><td>상품 고유코드</td></tr><tr><td>product_name</td><td>wool cropped vest (navy), white calf_Libra</td><td>string</td><td>상품명</td></tr><tr><td>category_id_a</td><td>c294, c493</td><td>string</td><td>대 카테고리 코드</td></tr><tr><td>category_name_a</td><td>women, men</td><td>string</td><td>대 카테고리 명칭</td></tr><tr><td>category_id_b</td><td>d3775,  d5783</td><td>string</td><td>중 카테고리 코드</td></tr><tr><td>category_name_b</td><td>니트웨어, 스니커즈</td><td>string</td><td>중 카테고리 명칭</td></tr><tr><td>brand_name</td><td>blank03, IMMATERIAL</td><td>string</td><td>브랜드 명칭</td></tr><tr><td>quantity</td><td>1, 2</td><td>integer</td><td>상품 개수</td></tr><tr><td>revenue</td><td>84550, 518000</td><td>double</td><td>유저가 실 결제한 금액</td></tr></tbody></table>

### 한가지 상품이 구매된 경우

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> purchaseMap = new HashMap<>();
purchaseMap.put("transaction_id", "P20154829420");
purchaseMap.put("currency", "KRW");
Map<String, Object> productMap = new HashMap<>();
productMap.put("product_id", "301056226");
productMap.put("product_name", "wool cropped vest (navy)");
productMap.put("category_id_a", "c294");
productMap.put("category_name_a", "women");
productMap.put("category_id_b", "d3775");
productMap.put("category_name_b", "니트웨어");
productMap.put("brand_name", "blank03");
productMap.put("quantity", 1);
productMap.put("revenue", 84550);
purchaseMap.put("product", productMap);
DOT.logPurchase(purchaseMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val purchaseMap = mutableMapOf<String,Any>()
purchaseMap["transaction_id"] = "P20154829420"
purchaseMap["currency"] = "KRW"
val productMap = mutableMapOf<String,Any>()
productMap["product_id"] = "301056226"
productMap["product_name"] = "wool cropped vest (navy)"
productMap["category_id_a"] = "c294"
productMap["category_name_a"] = "women"
productMap["category_id_b"] = "d3775"
productMap["category_name_b"] = "니트웨어"
productMap["brand_name"] = "blank03"
productMap["quantity"] = 1
productMap["revenue"] = 84550
purchaseMap["product"] = productMap
DOT.logPurchase(purchaseMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let purchase = NSMutableDictionary()
purchase["transaction_id"] = "P20154829420"
purchase["currency"] = "KRW"
var product : [String: Any] = [:]
product["product_id"] = "301056226"
product["product_name"] = "wool cropped vest (navy)"
product["category_id_a"] = "c294"
product["category_name_a"] = "women"
product["category_id_b"] = "d3775"
product["category_name_b"] = "니트웨어"
product["brand_name"] = "blank03"
product["quantity"] = 1
product["revenue"] = 84550
purchase["product"] = product
DOT.logPurchase(purchase)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *purchase = [[NSMutableDictionary alloc] init];
[purchase setValue:@"P20154829420" forKey:@"transaction_id"];
[purchase setValue:@"KRW" forKey:@"currency"];
NSMutableDictionary *product = [[NSMutableDictionary alloc] init];
[product setValue:@"301056226" forKey:@"product_id"];
[product setValue:@"wool cropped vest (navy)" forKey:@"product_name"];
[product setValue:@"c294" forKey:@"category_id_a"];
[product setValue:@"women" forKey:@"category_name_a"];
[product setValue:@"d3775" forKey:@"category_id_b"];
[product setValue:@"니트웨어" forKey:@"category_name_b"];
[product setValue:@"blank03" forKey:@"brand_name"];
[product setValue:[NSNumber numberWithInt:1] forKey:@"quantity"];
[product setValue:[NSNumber numberWithInt:84550] forKey:@"revenue"];
[purchase setValue:product forKey:@"product"];
[DOT logPurchase:purchase];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var purchase = new Object();
    purchase["transaction_id"] = "P20154829420";
    purchase["currency"] = "KRW";
    var product = new Object();
    product["product_id"] = "301056226";
    product["product_name"] = "wool cropped vest (navy)";
    product["category_id_a"] = "c294";
    product["category_name_a"] = "women";
    product["category_id_b"] = "d3775";
    product["category_name_b"] = "니트웨어";
    product["brand_name"] = "blank03";
    product["quantity"] = 1;
    product["revenue"] = 84550;
    purchase["product"] = product;
    DOT.logPurchase(purchase);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var purchase = new Object();
    purchase["transaction_id"] = "P20154829420";
    purchase["currency"] = "KRW";
    var product = new Object();
    product["product_id"] = "301056226";
    product["product_name"] = "wool cropped vest (navy)";
    product["category_id_a"] = "c294";
    product["category_name_a"] = "women";
    product["category_id_b"] = "d3775";
    product["category_name_b"] = "니트웨어";
    product["brand_name"] = "blank03";
    product["quantity"] = 1;
    product["revenue"] = 84550;
    purchase["product"] = product;
    WDOT.logPurchase(purchase);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map purchase = {};
purchase["transaction_id"] = "P20154829420";
purchase["currency"] = "KRW";
Map product = {};
product["product_id"] = "301056226";
product["product_name"] = "wool cropped vest (navy)";
product["category_id_a"] = "c294";
product["category_name_a"] = "women";
product["category_id_b"] = "d3775";
product["category_name_b"] = "니트웨어";
product["brand_name"] = "blank03";
product["quantity"] = 1;
product["revenue"] = 84550;
purchase["product"] = product;
DOT.logPurchase(purchase);


// webview 에서 호출 할 때
window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logPurchase",
      data: {
              transaction_id : "P20154829420",
              currency : "KRW",
              product_id : "301056226",
              product_name : "wool cropped vest (navy)",
              category_id_a : "c294",
              category_name_a : "women",
              category_id_b : "d3775",
              category_name_b : "니트웨어",
              brand_name : "blank03",
              quantity : 1,
              revenue : 84550
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logPurchase(JSON.stringify({
	transaction_id : "TR2020111129420",
	currency : "KRW",
	product : {
		product_id : "301056226",
		product_name : "wool cropped vest (navy)",
		category_id_a : "c294",
		category_name_a : "women",
		category_id_b : "d3775",
		category_name_b : "니트웨어",
		brand_name : "blank03",
		quantity : 1,
		revenue : 84550
	}
})); 	

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logPurchase",
	data : {
		transaction_id : "TR2020111129420",
		currency : "KRW",
		product : {
			product_id : "301056226",
			product_name : "wool cropped vest (navy)",
			category_id_a : "c294",
			category_name_a : "women",
			category_id_b : "d3775",
			category_name_b : "니트웨어",
			brand_name : "blank03",
			quantity : 1,
			revenue : 84550
		}
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> purchase = new Dictionary<string, object>();
purchase.Add("transaction_id", "P20154829420");
purchase.Add("currency", "KRW");
Dictionary<string, object> product = new Dictionary<string, object>();
product.Add("product_id", "301056226");
product.Add("product_name", "wool cropped vest (navy)");
product.Add("category_id_a", "c294");
product.Add("category_name_a", "women");
product.Add("category_id_b", "d3775");
product.Add("category_name_b", "니트웨어");
product.Add("brand_name", "blank03");
product.Add("quantity", 1);
product.Add("revenue", 84550);
List<Dictionary<string, object>> productList = new List<Dictionary<string, object>>();
productList.Add(product);
purchase.Add("product", productList);
DOT.logPurchase(purchase);
```

{% endtab %}
{% endtabs %}

### 두가지 이상의 상품이 구매된 경우

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> purchaseMap = new HashMap<>();
purchaseMap.put("transaction_id", "P20154829421");
purchaseMap.put("currency", "KRW");
Map<String, Object> productMap1 = new HashMap<>();
productMap1.put("product_id", "301056226");
productMap1.put("product_name", "wool cropped vest (navy)");
productMap1.put("category_id_a", "c294");
productMap1.put("category_name_a", "women");
productMap1.put("category_id_b", "d3775");
productMap1.put("category_name_b", "니트웨어");
productMap1.put("brand_name", "blank03");
productMap1.put("quantity", 1);
productMap1.put("revenue", 84550);
Map<String, Object> productMap2 = new HashMap<>();
productMap2.put("product_id", "301053552");
productMap2.put("product_name", "white calf_Libra");
productMap2.put("category_id_a", "c493");
productMap2.put("category_name_a", "men");
productMap2.put("category_id_b", "d5783");
productMap2.put("category_name_b", "스니커즈");
productMap2.put("brand_name", "IMMATERIAL");
productMap2.put("quantity", 2);
productMap2.put("revenue", 518000);
List<Map<String, Object>> productList = new ArrayList<>();
productList.add(productMap1);
productList.add(productMap2);
purchaseMap.put("product", productList);
DOT.logPurchase(purchaseMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val purchaseMap = mutableMapOf<String,Any>()
purchaseMap["transaction_id"] = "P20154829421"
purchaseMap["currency"] = "KRW"

val productMap1 = mutableMapOf<String,Any>()
productMap1["product_id"] = "301056226"
productMap1["product_name"] = "wool cropped vest (navy)"
productMap1["category_id_a"] = "c294"
productMap1["category_name_a"] = "women"
productMap1["category_id_b"] = "d3775"
productMap1["category_name_b"] = "니트웨어"
productMap1["brand_name"] = "lank03"
productMap1["quantity"] = 1
productMap1["revenue"] = 84550
val productMap2 = mutableMapOf<String,Any>()
productMap2["product_id"] = "301053552"
productMap2["product_name"] = "white calf_Libra"
productMap2["category_id_a"] = "c493"
productMap2["category_name_a"] = "men"
productMap2["category_id_b"] = "d5783"
productMap2["category_name_b"] = "스니커즈"
productMap2["brand_name"] = "IMMATERIAL"
productMap2["quantity"] = 2
productMap2["revenue"] = 518000

val productList = ArrayList<Map<String,Any>>()
productList.add(productMap1)
productList.add(productMap2)
purchaseMap["product"] = productList

DOT.logPurchase(purchaseMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let purchase = NSMutableDictionary()
purchase["transaction_id"] = "P20154829421"
purchase["currency"] = "KRW"
var product1 : [String: Any] = [:]
product1["product_id"] = "301056226"
product1["product_name"] = "wool cropped vest (navy)"
product1["category_id_a"] = "c294"
product1["category_name_a"] = "women"
product1["category_id_b"] = "d3775"
product1["category_name_b"] = "니트웨어"
product1["brand_name"] = "blank03"
product1["quantity"] = 1
product1["revenue"] = 84550
var product2 : [String: Any] = [:]
product2["product_id"] = "301053552"
product2["product_name"] = "white calf_Libra"
product2["category_id_a"] = "c493"
product2["category_name_a"] = "men"
product2["category_id_b"] = "d5783"
product2["category_name_b"] = "스니커즈"
product2["brand_name"] = "IMMATERIAL"
product2["quantity"] = 2
product2["revenue"] = 518000
var productArray : [Any] = []
productArray.append(product1)
productArray.append(product2)
purchase["product"] = productArray
DOT.logPurchase(purchase)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
  NSMutableDictionary *purchase = [[NSMutableDictionary alloc] init];
  [purchase setValue:@"P20154829420" forKey:@"transaction_id"];
  [purchase setValue:@"KRW" forKey:@"currency"];
  NSMutableDictionary *product1 = [[NSMutableDictionary alloc] init];
  [product1 setValue:@"301056226" forKey:@"product_id"];
  [product1 setValue:@"wool cropped vest (navy)" forKey:@"product_name"];
  [product1 setValue:@"c294" forKey:@"category_id_a"];
  [product1 setValue:@"women" forKey:@"category_name_a"];
  [product1 setValue:@"d3775" forKey:@"category_id_b"];
  [product1 setValue:@"니트웨어" forKey:@"category_name_b"];
  [product1 setValue:@"blank03" forKey:@"brand_name"];
  [product1 setValue:[NSNumber numberWithInt:1] forKey:@"quantity"];
  [product1 setValue:[NSNumber numberWithInt:84550] forKey:@"revenue"];
  NSMutableDictionary *product2 = [[NSMutableDictionary alloc] init];
  [product2 setValue:@"301053552" forKey:@"product_id"];
  [product2 setValue:@"white calf_Libra" forKey:@"product_name"];
  [product2 setValue:@"c493" forKey:@"category_id_a"];
  [product2 setValue:@"men" forKey:@"category_name_a"];
  [product2 setValue:@"d5783" forKey:@"category_id_b"];
  [product2 setValue:@"스니커즈" forKey:@"category_name_b"];
  [product2 setValue:@"IMMATERIAL" forKey:@"brand_name"];
  [product2 setValue:[NSNumber numberWithInt:2] forKey:@"quantity"];
  [product2 setValue:[NSNumber numberWithInt:518000] forKey:@"revenue"];
  [purchase setValue:product1 forKey:@"product1"];
  [purchase setValue:product2 forKey:@"product2"];
  [DOT logPurchase:purchase];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var purchase = new Object();
    purchase["transaction_id"] = "P20154829421";
    purchase["currency"] = "KRW";
    var product1 = new Object();
    product1["product_id"] = "301056226";
    product1["product_name"] = "wool cropped vest (navy)";
    product1["category_id_a"] = "c294";
    product1["category_name_a"] = "women";
    product1["category_id_b"] = "d3775";
    product1["category_name_b"] = "니트웨어";
    product1["brand_name"] = "blank03";
    product1["quantity"] = 1;
    product1["revenue"] = 84550;
    var product2 = new Object();
    product2["product_id"] = "301053552";
    product2["product_name"] = "white calf_Libra";
    product2["category_id_a"] = "c493";
    product2["category_name_a"] = "men";
    product2["category_id_b"] = "d5783";
    product2["category_name_b"] = "스니커즈";
    product2["brand_name"] = "IMMATERIAL";
    product2["quantity"] = 2;
    product2["revenue"] = 518000;
    var productArray = new Array();
    productArray.push(product1);
    productArray.push(product2);
    purchase["product"] = productArray;
    DOT.logPurchase(purchase);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var purchase = new Object();
    purchase["transaction_id"] = "P20154829421";
    purchase["currency"] = "KRW";
    var product1 = new Object();
    product1["product_id"] = "301056226";
    product1["product_name"] = "wool cropped vest (navy)";
    product1["category_id_a"] = "c294";
    product1["category_name_a"] = "women";
    product1["category_id_b"] = "d3775";
    product1["category_name_b"] = "니트웨어";
    product1["brand_name"] = "blank03";
    product1["quantity"] = 1;
    product1["revenue"] = 84550;
    var product2 = new Object();
    product2["product_id"] = "301053552";
    product2["product_name"] = "white calf_Libra";
    product2["category_id_a"] = "c493";
    product2["category_name_a"] = "men";
    product2["category_id_b"] = "d5783";
    product2["category_name_b"] = "스니커즈";
    product2["brand_name"] = "IMMATERIAL";
    product2["quantity"] = 2;
    product2["revenue"] = 518000;
    var productArray = new Array();
    productArray.push(product1);
    productArray.push(product2);
    purchase["product"] = productArray;
    WDOT.logPurchase(purchase);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map purchase = {};
purchase["transaction_id"] = "P20154829421";
purchase["currency"] = "KRW";
Map product1 = {};
product["product_id"] = "301056226";
product["product_name"] = "wool cropped vest (navy)";
product["category_id_a"] = "c294";
product["category_name_a"] = "women";
product["category_id_b"] = "d3775";
product["category_name_b"] = "니트웨어";
product["brand_name"] = "blank03";
product["quantity"] = 1;
product["revenue"] = 84550;
Map product2 = {};
product2["product_id"] = "301053552";
product2["product_name"] = "white calf_Libra";
product2["category_id_a"] = "c493";
product2["category_name_a"] = "men";
product2["category_id_b"] = "d5783";
product2["category_name_b"] = "스니커즈";
product2["brand_name"] = "IMMATERIAL";
product2["quantity"] = 2;
product2["revenue"] = 518000;
var productArray = [];
productArray.add(product1);
productArray.add(product2);
purchase["product"] = productArray;
DOT.logPurchase(purchase);


// webview 에서 호출 할 때
var purchase = new Object();
purchase["transaction_id"] =  "P20154829420";

var productArray = new Array();
for( var inx = 0; inx < purchaselist[구매한 상품 목록].length; inx++){

var purchaseProduct = purchaselist[inx]; 

var product = new Object();
product["product_id"] = "구매한상품에 대한 상품 코드";
product["product_name"] = "구매한상품의 상품명";
product["category_id_a"] = "구매한상품의 대카테고리 코드";
product["category_name_a"] = "구매한상품의 대카테고리 이름";
product["category_id_b"] = "구매한상품에 대한 중카테고리 코드";
product["category_name_b"] = "구매한상품에 대한 중카테고리 이름";
product["brand_name"] = "구매한상품에 대한 브랜드이름";
product["quantity"] = 1;
product["revenue"] = 84550;
productArray.push(product); 
}
purchase["product"] = productArray;

window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logPurchase",
      data: purchase
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때
NativeModules.DotReactBridge.logPurchase(JSON.stringify({
	transaction_id: "TR2020111129420",
	currency: "KRW",
	product: [
		{
			product_id: "301056226",	
			product_name: "wool cropped vest (navy)",
			category_id_a: "c294",
			category_name_a: "women",
			category_id_b: "d3775",
			category_name_b: "니트웨어",
			brand_name: "blank03",
			quantity: 1,
			revenue: 84550
		},
		{
			product_id: "301053552",
			product_name: "white calf_Libra",
			category_id_a: "c493",
			category_name_a: "men",
			category_id_b: "d5783",
			category_name_b: "스니커즈",
			brand_name: "IMMATERIAL",
			quantity: 2,
			revenue: 518000
		}
	]
}));


// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
	method: "logPurchase",
	data: {
		transaction_id: "TR2020111129420",
		currency: "KRW",
		product: [
			{
				product_id: "301056226",	
				product_name: "wool cropped vest (navy)",
				category_id_a: "c294",
				category_name_a: "women",
				category_id_b: "d3775",
				category_name_b: "니트웨어",
				brand_name: "blank03",
				quantity: 1,
				revenue: 84550
			},
			{
				product_id: "301053552",
				product_name: "white calf_Libra",
				category_id_a: "c493",
				category_name_a: "men",
				category_id_b: "d5783",
				category_name_b: "스니커즈",
				brand_name: "IMMATERIAL",
				quantity: 2,
				revenue: 518000
			}
		]
	}
}));
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> purchase = new Dictionary<string, object>();
purchase.Add("transaction_id", "P20154829420");
purchase.Add("currency", "KRW");
Dictionary<string, object> product1 = new Dictionary<string, object>();
product1.Add("product_id", "301056226");
product1.Add("product_name", "wool cropped vest (navy)");
product1.Add("category_id_a", "c294");
product1.Add("category_name_a", "women");
product1.Add("category_id_b", "d3775");
product1.Add("category_name_b", "니트웨어");
product1.Add("brand_name", "blank03");
product1.Add("quantity", 1);
product1.Add("revenue", 84550);
Dictionary<string, object> product2 = new Dictionary<string, object>();
product2.Add("product_id", "301053552");
product2.Add("product_name", "white calf_Libra");
product2.Add("category_id_a", "c493");
product2.Add("category_name_a", "men");
product2.Add("category_id_b", "d5783");
product2.Add("category_name_b", "스니커즈");
product2.Add("brand_name", "IMMATERIAL");
product2.Add("quantity", 2);
product2.Add("revenue", 518000);
List<Dictionary<string, object>> productList = new List<Dictionary<string, object>>();
productList.Add(product1);
productList.Add(product2);
purchase.Add("product", productList);
DOT.logPurchase(purchase);
```

{% endtab %}
{% endtabs %}

## 환불

환불이 완료된 시점에 아래 코드를 추가합니다.

#### **선택 속성**

<table data-header-hidden><thead><tr><th>Key</th><th>Value 예시</th><th width="150">Type</th><th>설명</th></tr></thead><tbody><tr><td>Key</td><td>Value 예시</td><td>Type</td><td>설명</td></tr><tr><td>refund_id</td><td>R44893</td><td>string</td><td>환불 고유번호</td></tr><tr><td>currency</td><td>KRW</td><td>string</td><td>통화코드</td></tr><tr><td>g6</td><td>518000</td><td>float</td><td>유저가 환불받은 금액</td></tr></tbody></table>

{% tabs %}
{% tab title="Java" %}

```java
Map<String, Object> eventMap = new HashMap<>();
eventMap.put("event", "w_refund");
eventMap.put("refund_id", "R44893");
eventMap.put("currency", "KRW");
eventMap.put("g6", 518000);
DOT.logEvent(eventMap);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val eventMap = mutableMapOf<String,Any>()
eventMap["event"] = "w_refund"
eventMap["refund_id"] = "R44893"
eventMap["currency"] = "KRW"
eventMap["g6"] = 518000
DOT.logEvent(eventMap)
```

{% endtab %}

{% tab title="Swift" %}

```swift
let event = NSMutableDictionary()
event["event"] = "w_refund"
event["refund_id"] = "R44893"
event["currency"] = "KRW"
event["g6"] = 518000
DOT.logEvent(event)
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
NSMutableDictionary *event = [[NSMutableDictionary alloc] init];
[event setValue:@"w_refund" forKey:@"event"];
[event setValue:@"R44893" forKey:@"refund_id"];
[event setValue:@"KRW" forKey:@"currency"];
[event setValue:[NSNumber numberWithInt:518000] forKey:@"g6"];
[DOT logEvent:event];
```

{% endtab %}

{% tab title="Mobile Webview" %}

```javascript
    var event = new Object();
    event["event"] = "w_refund";
    event["refund_id"] = "R44893";
    event["currency"] = "KRW";
    event["g6"] = 518000;
    DOT.logEvent(event);
```

{% endtab %}

{% tab title="Website" %}

```javascript
    var event = new Object();
    event["event"] = "w_refund";
    event["refund_id"] = "R44893";
    event["currency"] = "KRW";
    event["g6"] = 518000;
    WDOT.logEvent(event);
```

{% endtab %}

{% tab title="Flutter" %}

```javascript
// .dart 에서 호출 할 때 
Map event = {};
event["event"] = "w_refund";
event["refund_id"] = "R44893";
event["currency"] = "KRW";
event["g6"] = 518000;
DOT.logEvent(event);


// webview 에서 호출 할 때

window.flutter_inappwebview.callHandler("DotFlutterDataBridge",JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_refund",
              refund_id : "R44893",
              currency : "KRW",
              g6 : 518000
      }
}));
```

{% endtab %}

{% tab title="ReactNative" %}

```javascript
// .js 에서 호출 할 때 
NativeModules.DotReactBridge.logEvent(JSON.stringify({
    event : "w_refund",
    refund_id = "R44893",
    currency" = "KRW",
    g6 = 518000
}));

// webview 에서 호출 할 때
window.ReactNativeWebView.postMessage(JSON.stringify({
 	method:"logEvent",
	data : {
	    event : "w_refund",
	    refund_id = "R44893",
	    currency" = "KRW",
	    g6 = 518000
	}  
})); 
```

{% endtab %}

{% tab title="C#" %}

```csharp
Dictionary<string, object> eventDic = new Dictionary<string, object>();
eventDic.Add("event", "w_refund");
eventDic.Add("refund_id", "R44893");
eventDic.Add("currency", "KRW");
eventDic.Add("g6", 518000);
DOT.logEvent(eventDic);
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://document.wisetracker.co.kr/v2-developer/in-app-event/event-list/e-commerce.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
