# \[엔터프라이즈] 선물하기 기능 (배송지 나중입력)

## 간단소개

* 선물하기(배송지 나중입력) 기능
  * 적용 솔루션: 샵바이 엔터프라이즈 전용
  * 요약설명
    * 구매자가 주문 시점에 배송지 정보를 넣지 않고, 받는 사람 정보(이름/휴대폰번호)만 프론트에 입력합니다.
    * 이후 받는 사람의 휴대폰 번호로 배송지를 입력할 수 있는 URL이 전송되어, 받는 사람이 직접 배송지를 나중에 입력할 수 있는 기능입니다.

***

### 프로세스 상세 설명 <a href="#undefined" id="undefined"></a>

<figure><img src="/files/iKvs7tQ02bGWrqwqf7ug" alt=""><figcaption></figcaption></figure>

### (A) 결제

주문예약 API 호출 시 아래 항목을 전송합니다. [**API 보기 >**](https://docs.shopby.co.kr/?url.primaryName=order/#/Purchase/post-payments-reserve)

* shippingAddress.usesShippingInfoLaterInput = true : 나중입력 사용여부
* shippingAddress.shippingInfoLaterInputContact : 수신자연락처
* shippingAddress 의 나머지 주소 정보는 `-` 로 전송

{% code overflow="wrap" %}

```
"receiverZipCd": "-",
"receiverAddress": "-",
"receiverDetailAddress": "-",
"receiverJibunAddress": "-",
"receiverContact1": "-"
```

{% endcode %}

***

### (B) SMS로 링크 발송

나중 배송 입력 기능을 사용하기 위해서는 아래와 같이 서비스어드민에서 설정이 필요합니다.

1. **배송지 입력 URL 설정**
   * \[서비스어드민> 서비스관리> 쇼핑몰관리 - 해당 쇼핑몰정보] 최하단 '배송 설정' 영역에서 '배송지 입력 URL'을 설정하실 수 있습니다.
   * 배송지 입력 URL은 주문 후 배송지를 나중에 입력하는 페이지 URL로써, SMS 발송 시에 해당 URL이 포함되어 선물 받은 고객이 URL 링크를 클릭하여 배송지를 입력할 수 있습니다.

{% hint style="success" %}
\[예시]

배송지 입력 URL이 <http://shoppingmall.com/orders/shipping-info?code=abcd1234> 인 경우\
<http://shoppingmall.com/orders/shipping-info?code=${encryptedShippingNo}> 로 입력하세요.
{% endhint %}

2. **배송지 입력 안내 자동 SMS 설정**
   * \[운영관리> SMS관리(포인트)> 자동 SMS설정] 주문배송 관련 메세지 중 '배송지 입력 안내' 템플릿을 사용함으로 설정하시면 선물 받는 분에게 배송지 입력 링크가 SMS로 발송됩니다.
   * 참고: 2023-01-02부터 샵바이프리미엄의 SMS 발송 방식이,  SMS 포인트 과금하여 문자 발송할 수 있도록 변경되었습니다.\
     ![](/files/TOx52g4UibwFuMZc6sXI)<br>

{% hint style="warning" %}
\[주의사항]

주문 완료 후, 배송지가 입력되기 전까지는 주문상태 ‘배송보류’ 유지되는 점 참고 부탁드립니다.
{% endhint %}

***

### (C) 선물받는 사람이 주소 입력

1. **주소입력**
   * 문자 발송 페이지에 주소를 입력하면, 나중입력 배송지 수정API 를 호출하여 배송지를 등록합니다.

> **▶ 나중입력 배송지 수정하기**
>
> PUT /later-input/shippings [**API 보기>**](https://docs.shopby.co.kr/?url.primaryName=order/#/LaterShippingInput/put-later-input-shippings)
>
> 암호화된 배송번호(encryptedShippingNo)로 나중에 입력된 배송지 정보를 수정하는 API입니다.

* 배송지 나중 입력 시 입력된 주소가 ‘지역별 추가 배송비’가 발생하는 지역인 경우, 최종 배송지 입력되지 않는 점 참고 부탁드립니다.
* (참고) 암호화된 배송번호(encryptedShippingNo)는, 문자 발송 시 배송지 입력 URL 파라미터에 포함되므로 쉽게 확인가능합니다.

***

2. **활용할 수 있는 shop API**
   * 아래 API들을 활용하여 선물하기(배송지 나중입력) 기능을 활용한 화면을 구현할 수 있습니다.

> **▶ 지역별 추가 배송비 목록 조회하기**
>
> GET /later-input/areafees [**API 보기>**](https://docs.shopby.co.kr/?url.primaryName=order/#/LaterShippingInput/get-later-input-areafees)
>
> 배송비템플릿 번호(templateNo) 또는 암호화된 배송번호(encryptedShippingNo)로 지역별 추가 배송비 목록을 조회하는 API 입니다.

* 선물받는 사람의 주소 입력 혹은 변경 시점에, 선물하기 가능/불가 지역 여부를 노출하기 위해 사용하는 API입니다.
* 지역별 추가 배송비가 발생하여 선물하기 불가한 지역인 경우, "지역별추가배송비 변동이 발생하는 주소지로는 변경이 불가합니다." alert이 발생합니다.\
  (FE 프론트단에서 문구로 노출할지 여부는 고객사에서 판단하여 처리가능합니다)

***

> **▶ 배송지 나중입력 주문 상세 조회하기**
>
> GET /later-input/order [**API 보기>**](https://docs.shopby.co.kr/?url.primaryName=order/#/LaterShippingInput/get-order-encrypted-shipping-no-later-input)
>
> 암호화된 배송번호(encryptedShippingNo)로 주문상세정보를 조회하는 API입니다.

* 선물하기(나중 배송지) 입력 페이지에서 선물받게 되는 주문에 관련된 정보(ex. 상품 정보 등)을 노출하기 위해 사용합니다.

***

> **▶ 나중입력 배송지 조회하기**
>
> GET /later-input/shippings [**API 보기>**](https://docs.shopby.co.kr/?url.primaryName=order/#/LaterShippingInput/get-later-input-shippings)
>
> 암호화된 배송번호(encryptedShippingNo)로 나중에 입력된 배송지 정보를 조회하는 API입니다.

* 배송지가 이미 입력되어 있는지 여부를 파악할 때 사용할 수 있습니다.
* 선물받는 사람이 이미 주소를 입력한 뒤 다시 해당 페이지에 접속했을 경우, 기존 입력된 정보를 노출하고 수정하게 하거나, 혹은 이미 입력완료 되었다고 실패처리할 수 있습니다.


---

# 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://workspace-help.nhn-commerce.com/contents/recommended/prm_gift.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.
