여러 판매자가 Amazon에서 같은 상품을 판매할 때, “Add to Cart”(장바구니에 담기)와 “Buy Now”(바로 구매) 버튼이 있는 영역에는 단 하나의 오퍼만 표시됩니다. 판매자들은 이를 Buy Box라고 부르고, Seller Central에서는 Featured Offer라고 부릅니다. 이 버튼을 클릭하는 구매자는 대개 다른 판매자 목록을 열어 보지 않고 Buy Box를 차지한 판매자에게서 구매하므로, 여러 판매자가 공유하는 상품 페이지에서는 Buy Box가 누가 판매를 가져갈지를 결정합니다.
가격이 유일한 요인은 아니지만, 가장 빠르게 변하고 시간 단위로 직접 조정할 수 있는 요인입니다. Buy Box를 꾸준히 확보하려면 판매 중인 각 마켓플레이스에서 경쟁 오퍼의 가격을 구매자가 보는 그대로 파악해야 합니다. 이는 가격 인텔리전스의 문제이며, 이 가이드에서는 그 접근 방법을 다룹니다.
Amazon이 Featured Offer를 선정하는 방식
Amazon은 공식을 공개하지 않지만, 판매자 가이드에서 제시하는 입력 요소는 일관됩니다. 우선 자격을 갖추려면 일반적으로 Professional 판매 플랜, 양호한 계정 지표, 재고 보유가 필요합니다. 자격을 갖춘 오퍼 중에서 Amazon이 언급하는 요인은 다음과 같습니다.
- 총 가격. 상품 가격에 배송비를 더한 금액으로, 흔히 랜디드 가격(landed price)이라고 부릅니다. 상품 가격이 낮더라도 배송비가 높으면, 가격이 약간 더 높지만 무료 배송인 오퍼에 밀릴 수 있습니다.
- 배송 속도와 신뢰성. 빠르고 믿을 수 있는 배송이 유리합니다. Amazon이 직접 배송을 약속하므로, Amazon 풀필먼트 오퍼는 이 항목에서 좋은 평가를 받는 경향이 있습니다.
- 판매자 성과. 주문 결함률, 배송 지연, 주문 취소, 유효한 배송 추적 정보가 모두 반영됩니다.
- 재고 가용성. 재고가 자주 소진되는 오퍼는 후보로서 불리합니다.
여기서 두 가지 결과가 나옵니다. 첫째, 최저가에 맞추더라도 배송이나 지표가 약하면 Buy Box를 보장받을 수 없으며, 반대로 최저가 오퍼보다 높은 가격으로도 Buy Box를 차지할 수 있습니다. 둘째, 예를 들어 Amazon 안팎의 최근 가격과 비교했을 때 모든 오퍼가 과도하게 비싸 보이면, Amazon은 Featured Offer를 아예 표시하지 않을 수 있습니다. 이 경우 구매자에게는 “See all buying options”(모든 구매 옵션 보기) 버튼이 표시되며, 해당 상품 페이지의 전환율은 모든 판매자에게서 떨어집니다.
중요한 경쟁사 데이터
관심 있는 각 상품(ASIN)에 대해 유용한 데이터는 페이지 전체를 스크래핑한 결과보다 범위가 좁습니다.
| 데이터 항목 | 중요한 이유 |
|---|---|
| 현재 Featured Offer 보유자와 랜디드 가격 | 지금 당장 경쟁해야 하는 가격 |
| 모든 경쟁 오퍼: 상품 가격, 배송비, 풀필먼트 유형, 상품 상태 | 다음에 누가 어떤 조건으로 Buy Box를 가져갈 수 있는지 |
| 각 오퍼에 표시되는 배송 약속 | 배송 속도는 결정 요소의 일부 |
| Featured Offer 표시 여부 | 표시되지 않는다면 문제는 경쟁사가 아니라 가격 수준 |
| 각 확인 시점의 타임스탬프와 마켓플레이스 | 가격과 보유자는 하루 중에도 바뀌고 스토어프런트마다 다름 |
이 데이터를 시간에 걸쳐 수집하면 단일 스냅샷으로는 보이지 않는 패턴이 드러납니다. 어떤 경쟁사가 자동으로 가격을 조정하고 얼마나 빠른지, 하루 중 몇 시에 Buy Box 보유자가 바뀌는지, 경쟁사가 어느 가격 하한선 아래로는 따라오지 않는지 등입니다. 온라인 가격 변동성 연구는 대형 마켓플레이스에서 가격이 얼마나 빠르게 움직이는지 보여주며, 이 때문에 타임스탬프는 가격만큼 중요합니다.
데이터를 얻는 두 가지 방법: API와 스토어프런트
자사 상품은 Amazon의 Selling Partner API부터 시작하십시오. Product Pricing API는 판매 중인 상품에 대한 경쟁 오퍼와 Featured Offer 가격을 반환하며, 알림 서비스는 자사 상품의 오퍼가 변경될 때마다 이벤트를 전송할 수 있습니다. 공식적이고 구조화되어 있으며, 요청 한도 내에서는 무료로 사용할 수 있습니다. Amazon은 Seller Central에서 자체 자동 가격 책정 도구도 제공합니다.
API는 구매자가 보는 모든 것을 보여주지는 않습니다. API는 판매자가 등록된 마켓플레이스에서 판매 중인 상품을 Amazon 측 관점에서 다룹니다. 다음 항목은 보여주지 않습니다.
- 판매를 검토 중이지만 아직 판매하지 않는 상품;
- 계정이 없는 마켓플레이스에서 상품 페이지가 어떻게 보이는지;
- 특정 배송 위치의 구매자에게 페이지가 어떻게 표시되는지. 이는 배송 약속에 영향을 미치며, 때로는 어떤 오퍼가 Buy Box를 차지하는지에도 영향을 줍니다.
이를 위해 팀들은 공개된 상품 페이지와 오퍼 목록을 구매자와 같은 방식으로 확인합니다. 수집 방법은 프록시로 Amazon 상품 데이터 스크래핑하기 가이드에서 다루며, Buy Box 모니터링에 특화된 사항은 아래와 같습니다.
마켓플레이스와 배송 위치별 수집
마켓플레이스는 각각 별개입니다. amazon.com, amazon.co.uk, amazon.de 등은 각자 고유한 판매자, 가격, Featured Offer 보유자를 가지고 있습니다. 영국에서는 자사가 Buy Box를 차지하고 있어도 독일에서는 경쟁사가 차지하고 있을 수 있습니다.
배송 위치에 따라 페이지가 달라집니다. Amazon은 구매자의 배송 주소를 기준으로 배송 약속을 결정하며, 따라서 Buy Box 결정의 일부도 이에 좌우됩니다. 설정된 주소가 없으면 방문자의 IP를 포함한 위치 신호를 대신 사용합니다. 일관된 결과를 얻으려면 세션에서 배송 위치를 설정하고, 같은 국가, 필요한 경우 같은 도시의 IP에서 요청을 보내십시오. 레지덴셜 프록시가 이를 가능하게 합니다. 확인하려는 시장의 가정용 회선을 사용하므로, 수집한 페이지가 현지 구매자가 보는 페이지와 같아집니다.
세션을 일관되게 유지하십시오. 배송 위치, 통화, 언어, IP는 한 번의 확인 과정 내내 서로 일치해야 합니다. 영국 배송 주소에 미국 IP와 독일어 인터페이스를 조합한 화면은 어떤 구매자도 보지 않습니다. 오퍼 목록을 확인할 때마다 고정 세션을 사용하고, 다음 상품으로 넘어갈 때 IP를 교체하십시오.
확인 빈도를 단계별로 나누십시오. 베스트셀러와 Buy Box 보유자가 자주 바뀌는 상품은 매시간, 롱테일 상품은 매일 확인합니다. 변동이 적은 상품을 몇 분마다 확인하면 정보는 늘지 않고 비용과 부하만 늘어납니다.
가격 데이터를 Buy Box 확보로 연결하기
수집은 의사 결정을 바꿀 때에만 가치가 있습니다. 간단한 규칙은 다음과 같습니다.
- 상품 가격이 아니라 랜디드 가격을 비교하십시오. 비교하기 전에 모든 오퍼에 배송비를 더합니다.
- 최저가 경쟁사가 아니라 자격을 갖춘 경쟁사를 기준으로 가격을 정하십시오. 배송이 느리거나 지표가 나쁜 오퍼는 이겨야 할 대상이 아닐 수 있습니다.
- 가격 하한선은 경쟁사가 아니라 자사 마진을 기준으로 정하십시오. 원가 이하로 가격을 매기는 경쟁사를 따라가는 것은 이길 필요가 없는 경쟁입니다.
- Featured Offer 미표시 여부를 주시하십시오. Featured Offer가 표시되지 않는다면 경쟁사보다 조금 낮추는 것으로는 해결되지 않습니다. 전체 가격 수준을 낮추거나 상품 페이지 자체를 점검해야 합니다.
- Buy Box 점유 시간 비율을 측정하십시오. 마켓플레이스별로 자사가 Featured Offer를 보유한 확인 횟수의 비율을 추적합니다. 가격 전략이 효과가 있는지를 보여주는 가장 명확한 단일 지표입니다.
간단한 헬퍼 함수를 사용하면 비교가 구체적으로 이루어집니다. 각 오퍼는 수집한 데이터로 만든 딕셔너리입니다.
def landed(offer):
return round(offer["price"] + offer.get("shipping", 0.0), 2)
def price_to_beat(offers, my_seller_id, min_rating=0.9):
"""Lowest landed price among competing offers that are likely
Featured Offer candidates: in stock and with a decent rating."""
rivals = [
o for o in offers
if o["seller_id"] != my_seller_id
and o.get("in_stock", True)
and o.get("rating", 1.0) >= min_rating
]
if not rivals:
return None
return min(landed(o) for o in rivals)
offers = [
{"seller_id": "ME", "price": 24.99, "shipping": 0.0, "rating": 0.97},
{"seller_id": "A1", "price": 22.49, "shipping": 3.99, "rating": 0.95},
{"seller_id": "B2", "price": 23.99, "shipping": 0.0, "rating": 0.82},
]
print(price_to_beat(offers, "ME")) # 26.48: A1's landed price, B2 filtered out
평점 기준값은 관찰할 수 있는 자격 신호를 대신하는 임시 값입니다. 실제로 어떤 오퍼가 Buy Box를 차지했는지에 대한 자사 이력을 바탕으로 조정하십시오.
문제가 가격이 아닐 때
때로는 애초에 경쟁할 필요가 없어야 할 오퍼에 Buy Box를 빼앗기기도 합니다. 자사 상품 페이지를 이용해 위조품이나 병행 수입품을 판매하는 판매자, 또는 가격 정책을 위반하는 리셀러가 그런 경우입니다. 가격을 바꾼다고 해결되지 않습니다. 자사 상품 페이지를 가로채는 제3자 판매자 탐지 및 비인가 판매자와 MAP 위반 모니터링 가이드에서 무엇을 수집하고 어떻게 대응할지 다룹니다.
FAQ
Amazon Buy Box란 무엇인가요?
상품 페이지에서 “Add to Cart”와 “Buy Now” 버튼이 있는 영역입니다. 여러 판매자가 같은 상품을 판매할 때 Amazon은 그중 하나의 오퍼를 선정해 이곳에 표시합니다. Seller Central에서는 Featured Offer라고 부릅니다.
최저가가 항상 Buy Box를 차지하나요?
아닙니다. Amazon은 배송비와 배송 속도, 판매자 성과, 재고 가용성도 함께 고려합니다. 랜디드 가격이 약간 더 높더라도 빠르고 신뢰할 수 있는 배송을 제공하면 최저가 오퍼를 이길 수 있습니다.
상품 페이지에 Buy Box가 없는 경우가 있는 이유는 무엇인가요?
예를 들어 최근 가격과 비교해 모든 오퍼가 과도하게 비싸 보이는 경우, Amazon은 Featured Offer를 표시하지 않을 수 있습니다. 이때 구매자에게는 “Add to Cart” 대신 “See all buying options”가 표시됩니다.
Selling Partner API를 사용한다면 프록시가 필요한가요?
자사 마켓플레이스의 자사 상품이라면 API로 필요한 대부분을 확인할 수 있습니다. 프록시는 다른 마켓플레이스, 아직 판매하지 않는 상품, 특정 배송 위치에서 페이지가 어떻게 보이는지 등 구매자 관점의 화면이 필요할 때 중요합니다.
결론
Buy Box는 전반적으로 가장 좋은 오퍼에 돌아가며, 가격은 가장 빠르게 조정할 수 있는 수단입니다. 자사 상품에는 Selling Partner API를 사용하고, API가 보여주지 않는 부분은 마켓플레이스와 위치별로 구매자 관점의 화면을 수집하며, 자격을 갖춘 경쟁사와 랜디드 가격을 비교하고, Buy Box 점유 시간 비율을 추적하십시오. 여러 스토어프런트에 걸친 수집에 대해서는 이커머스 사용 사례를 참고하십시오.