> For the complete documentation index, see [llms.txt](https://help.citrusad.com/retail-media-interface/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.citrusad.com/retail-media-interface/integration/ko/data-api/catalog-products-2/syncing-products-via-api.md).

# API를 통한 상품 동기화

## 표준 상품 동기화

카탈로그가 생성되면 해당 카탈로그에 상품을 동기화할 수 있습니다. 아래 예시는 상품을 동기화하기 위한 표준 컨텍스트를 보여줍니다:

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0"
            ]
        }
    ]
}
```

성공할 경우 다음 객체가 반환됩니다:

```json
{
    "catalogProducts": [
        {
            "teamId": "e8158f9b-bbb9-49fb-93fe-3ad481ca8450",
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": 19.99,
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg",
                 "name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty",
              	 "category:Grocery",
              	 "brand:Covergirl",
              	 "Special_Flag:0"
            ],
            "groups": [],
            "profit": null
        }
    ]
}
```

이 컨텍스트에서는 groups 및 profit에 대한 빈 값이나 null 값은 무시해도 됩니다.

## 위치 정보 동기화

매장에 있는 상품의 다양한 위치에 대한 필터를 동기화할 수도 있습니다. 이는 상품 정보의 매장/위치 수준 최적화에 유용합니다.

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0","location:123","location:ABC"
            ]
        }
    ]
}
```

성공할 경우 다음 객체가 반환됩니다:

```json
{
    "catalogProducts": [
        {
            "teamId": "e8158f9b-bbb9-49fb-93fe-3ad481ca8450",
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": 19.99,
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg",
                 "name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty",
              	 "category:Grocery",
              	 "brand:Covergirl",
              	 "Special_Flag:0",
              	 "location:123",
              	 "location:ABC"
            ],
            "groups": [],
            "profit": null
        }
    ]
}
```

## HFSS 정보 동기화

상품 동기화 시 다음 필터를 전송해야 합니다: `hfss:true` or `hfss:false`이를 통해 Epsilon Retail Media 이(가) 인터페이스를 적절하게 필터링할 수 있습니다.

```json
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "hfss:true","category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0","location:123","location:ABC"
            ]
        }
    ]
}
```

{% hint style="info" %}
HFSS에 대해 자세히 알아봐야 하나요?

여기에서 영국 정부의 간행물을 확인하세요: <https://www.gov.uk/government/publications/restricting-promotions-of-products-high-in-fat-sugar-or-salt-by-location-and-by-volume-price/restricting-promotions-of-products-high-in-fat-sugar-or-salt-by-location-and-by-volume-price-implementation-guidance>
{% endhint %}

## 여러 상품 동기화

여러 상품을 동기화하는 경우 요청당 최대 100개까지 순차적으로 처리할 수 있습니다.

두 개의 상품을 동기화하는 예시 컨텍스트는 아래와 같습니다:

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg",
                 "name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty",
              	 "category:Grocery",
              	 "brand:Covergirl",
              	 "Special_Flag:0"
            ],
            "profit": "1.50"
        },
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965738",
            "inventory": 26,
            "price": "8.50",
            "tags": [
                "imageurl:https://your.image.host.com/image.jpg",
                "name:Kelloggs Froot Loops Breakfast Cereal 500g"
            ],
            "filters": [
                "brand:Kelloggs",
                "category:Pantry",
                "category:BreakfastFoods",
                "category:Cereals",
                "Special_Flag:0"
            ],
            "profit": "0.50"
        }
    ]
}
```

성공할 경우 다음 객체가 반환됩니다:

```json
{
    "catalogProducts": [
        {
            "gtin": "23556578965543",
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "price": 19.99,
            "teamId": "e8158f9b-bbb9-49fb-93fe-3ad481ca8450",
            "groups": [],
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg",
                 "name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty",
              	 "category:Grocery",
              	 "brand:Covergirl",
              	 "Special_Flag:0"
            ],
            "inventory": 50,
            "profit": 1.50,
            "tags": [
                "Natural",
                "Lasting",
                "Dry Skin",
                "Beige"
            ]
        },
        {
            "gtin": "23556578965736688",
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "price": 8.50,
            "teamId": "e8158f9b-bbb9-49fb-93fe-3ad481ca8450",
            "groups": [],
            "tags": [
                "imageurl:https://your.image.host.com/image.jpg",
                "name:Kelloggs Froot Loops Breakfast Cereal 500g"
            ],
            "filters": [
                "brand:Kelloggs",
                "category:Pantry",
                "category:BreakfastFoods",
                "category:Cereals",
                "Special_Flag:0"
            ],
            "inventory": 26,
            "profit": 0.50,
            "tags": [
                "Pantry",
                "BreakfastFoods",
                "Cereals",
                "Kelloggs"
            ]
        }
    ]
}
```

## 상품 재고 업데이트

상품 재고를 업데이트하려면 다음으로 상품을 다시 동기화해야 합니다: Epsilon Retail Media동기화 시 상품의 재고 상태를 다음으로 표시하세요: `0`예시는 아래와 같습니다:

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "inventory": 0,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty","category:Grocery","brand:Covergirl","Special_Flag:0"
            ]
        }
    ]
}
```

<br>

## 상품 이미지 업데이트

Epsilon 은(는) 일관된 성능을 보장하고 이미지 서버에 대한 요청을 줄이기 위해 이미지 URL을 캐시합니다. URL을 변경하지 않고 이미지를 업데이트하는 경우 다음에서 명시적으로 새로고침을 트리거해야 합니다: Epsilon이렇게 하려면:

* 상품에서 기존 image\_url을 제거합니다.
* 업데이트가 완료되면 동일한 image\_url을 다시 전송합니다.

또는 이미지 서버가 지원하는 경우 기존 URL에 쿼리 문자열(예: 버전 또는 타임스탬프)을 추가하여 강제로 새로고침할 수 있습니다. 이렇게 하면 Epsilon 이미지를 다시 로드하려면..

{% hint style="info" %}
이미지는 UI에서만 사용됩니다.

상품 이미지는 광고 응답으로 제공되지 않습니다. 이미지 업데이트는 상품이 표시되는 방식에만 영향을 미칩니다. Epsilon 캐시 새로 고침이 발생하는 동안 UI입니다.
{% endhint %}

## 상품 조회하기

카탈로그에 상품이 등록되면 나중에 해당 상품의 현재 정보를 조회하고 싶을 수 있습니다.

이를 위해 **GET** HTTP 요청을 다음 URL 형식으로 전송할 수 있습니다: **`v1/catalog-products/catalogId/<PRODUCT_CODE>`**. 이 엔드포인트는 요청당 하나의 상품 코드를 수신할 수 있습니다. 아래에 플레이스홀더 요청의 개요가 나와 있습니다.

```http
GET $BASE_URL/v1/catalog-products/<CATALOG_ID>/<PRODUCT_CODE> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
```

해당 상품 코드에 대해 Epsilon Retail Media 시스템에 수집된 현재 정보를 수신해야 합니다. 예시는 아래와 같습니다.

{% hint style="info" %}
상품 업데이트를 전달하는 작업은 Epsilon Retail Media 시스템에서 즉시 처리되지 않으며, 약간의 시간이 소요될 수 있습니다. Epsilon Retail Media 상품 업데이트를 완전히 수집하는 데 필요한 시간입니다. 세부 정보를 조회할 때 상품 정보가 즉시 업데이트되지 않더라도 걱정하지 마세요.
{% endhint %}

## 상품 삭제

카탈로그에서 상품이 더 이상 필요하지 않을 때 해당 상품을 제거하려면 다음 형식을 사용하여 DELETE HTTP 요청을 보내세요.

### 요청 파라미터

엔드포인트는 요청당 하나의 상품 코드를 수락하며, 일반적으로 GTIN ID가 사용됩니다.

```http
DELETE $BASE_URL/v1/catalog-products/<CATALOG_ID>/<PRODUCT_CODE> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
```

### 판매자 ID로 상품 삭제하기

상품에 판매자 ID가 포함되어 있는 경우, 상품을 삭제할 때 다음과 같이 쿼리 파라미터로 지정하세요.

```http
DELETE $BASE_URL/v1/catalog-products/<CATALOG_ID>/<PRODUCT_CODE>?sellerId=abc123> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
```

### 처리 시간

상품 삭제를 처리하는 데 30분에서 1시간 정도 소요될 수 있습니다.

{% hint style="info" %}
중요

상품이 품절된 경우, 상품을 삭제하는 대신 재고를 0으로 설정하세요. 상품을 삭제하면 광고주가 다음과 같은 위치에서 해당 상품을 선택할 수 있는 기능이 제거됩니다: Epsilon Retail Media 플랫폼(재입고된 경우에도 포함).
{% endhint %}

### 오류 처리

"product not found" 오류가 발생한 경우, 상품이 아직 다음 시스템에 수집되지 않았음을 의미할 가능성이 높습니다: Epsilon Retail Media 시스템.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://help.citrusad.com/retail-media-interface/integration/ko/data-api/catalog-products-2/syncing-products-via-api.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
