> ## Documentation Index
> Fetch the complete documentation index at: https://make.edicus.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 사진인화 상품

> print 편집기의 용지, 사진 맞춤, 테두리, 날짜, 수량과 사진인화 사이즈 설정

사진인화는 사진마다 인화 옵션과 수량을 고르는 전용 편집기를 사용합니다. 다른 상품과 달리 템플릿 단계가 없고, Manager의 Demo와 Test Order로 띄워 볼 수 없습니다. **상품 설정 → 기본 정보 → editor**를 `print`로 두면 템플릿 편집기 대신 사진인화 설정이 나타납니다. 주문을 인쇄용 파일로 만드는 설정은 아래 [렌더](#렌더)를 보세요.

## 배우는 것

* 사용자에게 보여 줄 옵션과 처음 적용할 값을 따로 정하는 방법
* 인화지 크기와 사진 방향, 흰 테두리를 설정하는 방법
* 날짜와 수량이 최종 저장 결과에 반영되는 방식

## 사진 맞춤 방식

| `rendition` | 기본 화면 이름 | 동작 |
| - | - | - |
| `fill-in` | 이미지맞춤 | 인화 영역을 꽉 채웁니다. 사진과 인화지 비율이 다르면 사진 일부를 자릅니다. 사용자가 자를 위치를 움직일 수 있습니다 |
| `fit-in` | 인화지맞춤 | 사진 전체가 보이도록 맞춥니다. 비율이 다르면 여백이 생깁니다 |

테두리를 켜면 테두리 폭을 뺀 영역에 위 방식으로 맞춥니다. `fit-in`에서 생기는 비율 여백과 상품의 고정 테두리 폭은 서로 다른 값입니다.

## 표시 항목

**상품 설정 → 표시 → 표시 항목**은 사용자가 바꿀 수 있는 옵션을 정합니다. 저장 키는 `print_option` 아래에 있습니다. 새 상품에서는 다섯 항목 모두 켜져 있습니다.

| 화면 이름 | 저장 키 | 보여 주는 기능 |
| - | - | - |
| `paper-type` | `ui_paperType` | 유광·무광 등 용지 선택 |
| `rendition` | `ui_rendition` | 사진 맞춤 방식 |
| `show-border` | `ui_showBorder` | 테두리 사용 여부 |
| `show-date` | `ui_showDate` | 촬영 날짜 인쇄 여부 |
| `auto-adjust` | `ui_autoAdjust` | 자동 밝기 보정 여부 |

표시를 끄면 사용자는 그 옵션을 바꿀 수 없습니다. 아래 초기값은 그대로 적용됩니다. 예를 들어 항상 테두리를 넣으려면 표시의 `show-border`를 끄고 초기값의 `show-border`는 켭니다.

데스크톱에서는 이 옵션들이 왼쪽 **전체 옵션** 묶음에 모입니다. 용지는 주문 전체에 하나만 정하고, 나머지는 바꾸면 모든 사진에 한꺼번에 적용됩니다. 사진 카드의 메뉴로 사진마다 다시 바꿀 수 있습니다. `rendition`, `show-border`, `show-date`, `auto-adjust`를 모두 끄고 `no-count`를 켜면 **전체 옵션** 묶음 자체가 숨겨져 `paper-type`을 켜 두어도 용지 선택이 보이지 않습니다.

## 초기값

**상품 설정 → 기본값 → 초기값**에서 정합니다. 새로 가져온 사진에 적용됩니다.

| 화면 이름 | 저장 키 | 기본값 | 동작 |
| - | - | - | - |
| `paper-type` | `def_paperType` | `gloss` | `gloss`는 유광, `matt`는 무광입니다 |
| `rendition` | `def_rendition` | `fill-in` | 사진 맞춤 방식입니다 |
| `show-border` | `def_showBorder` | 꺼짐 | 처음부터 테두리를 사용할지입니다 |
| `show-date` | `def_showDate` | 꺼짐 | 처음부터 촬영 날짜를 표시할지입니다 |
| `auto-adjust` | `def_autoAdjust` | 꺼짐 | 처음부터 자동 밝기 보정을 요청할지입니다 |
| `dateFont` | `def_dateFont` | `default` | 날짜 글꼴입니다. `digit`은 디지털 시계 숫자 모양을 사용합니다. 파트너 권한에 따라 잠금으로 표시될 수 있습니다 |

`show-date`는 사진의 오른쪽 아래(인화지맞춤이면 사진 영역 기준)에 촬영일을 `2026.10.08` 꼴로 그립니다. `date-style`을 끄면 그림자가 있는 흰 글자입니다.

자동 보정은 인화 단계에 적용할 요청입니다. 편집 화면에서 사진 밝기가 바뀌는 사진 보정 도구와 다릅니다.

## 기능

**상품 설정 → 기능 → 기능**에서 정합니다.

| 화면 이름 | 저장 키 | 기본값 | 동작 |
| - | - | - | - |
| `save-ui` | `saveUI` | 꺼짐 | 데스크톱 사진인화 편집기의 저장 버튼을 표시합니다. 모바일 사진인화 헤더는 이 키를 읽지 않습니다 |
| `no-count` | `noCount` | 꺼짐 | 사진별 인화 수량 조작을 숨깁니다 |
| `no-rotate` | `noRotate` | 꺼짐 | 사진의 회전 버튼을 숨깁니다 |
| `max-count` | `maxCount` | `999` | 사진별 수량 조작의 최대값입니다. `999` 또는 `9999`를 고릅니다 |
| `paper-mode` | `paperTypeMode` | `default` | `default`는 유광·무광, `lustre`는 유광·반유광을 사용합니다 |
| `date-style` | `dateStyle` | 꺼짐 | 날짜에 지정한 색상과 불투명도를 적용합니다 |
| `date-color` | `dateColor` | `default` | `date-style`이 켜졌을 때 날짜 색상입니다. `#ff8800`처럼 `#`으로 시작하는 값을 씁니다. 인쇄 파일은 `#` 값만 반영합니다 |
| `date-opacity` | `dateOpacity` | `100` | `date-style`이 켜졌을 때 날짜 불투명도(%)입니다. `50`부터 `100`까지 5 단위로 고릅니다 |

`max-count`는 전체 주문 사진 수의 상한이 아닙니다. 데스크톱 **전체 옵션**의 수량 입력은 현재 최대 999까지만 적용합니다. 사진별 입력과 전체 입력이 같은 상한이라고 가정하지 않습니다.

`paper-mode=lustre`는 무광 선택 자리를 반유광으로 바꾸고 저장 값도 `lustre`로 맞춥니다. 쇼핑몰의 실제 용지 옵션과 출력 공정에도 같은 값을 연결합니다.

## 사진인화 사이즈

사이즈를 고르면 **Print** 그룹이 나타납니다. 템플릿 편집기의 `pageInfos` 대신 `size.printInfo`를 사용합니다.

| 화면 이름 | 저장 키 | 기본값 | 동작 |
| - | - | - | - |
| `low-dpi` | `size.lowDPI` | `120` | 인화 영역에 맞췄을 때 해상도가 기준보다 낮은 사진에 경고합니다. `0`은 경고를 끕니다 |
| `width`, `height` | `width_mm`, `height_mm` | `0` | 인화지 너비·높이(mm)입니다. 사진인화 상품에서는 두 값 모두 실제 크기로 넣습니다 |
| `fix-orient` | `fixedOrientation` | 꺼짐 | 켜면 인화지 방향을 지정한 너비·높이로 고정합니다. 끄면 사진 방향에 맞춰 인화지를 가로·세로로 바꿉니다 |
| `wide-grid` | `wideGrid` | 꺼짐 | 가로형 방향 고정 상품에서 데스크톱 사진 카드의 표시 폭을 넓힙니다. 인화지 크기는 바뀌지 않습니다 |
| `border-l`, `border-t`, `border-r`, `border-b` | `borderLeft_mm`, `borderTop_mm`, `borderRight_mm`, `borderBottom_mm` | 각각 `4` | 테두리를 켰을 때 왼쪽·위·오른쪽·아래의 테두리 폭(mm)입니다 |
| `border-color` | `borderColor` | `#ffffff` | 최종 출력용 문서에 저장할 테두리 색입니다. 현재 편집 화면과 저장 썸네일은 이 값을 읽지 않고 흰색으로 보여 줍니다 |

고정 테두리 폭의 합이 인화지 너비나 높이보다 크지 않도록 정합니다. `borderRound_mm`도 데이터 모델에 있지만 현재 Manager 입력 항목과 사진인화 편집기 소비처가 없어 편집기 모서리 모양을 바꾸지 않습니다.

## 직접 해보기

<Steps>
  <Step title="상품의 editor를 print로 바꿉니다">
    상품 설정 **기본 정보**의 `editor`를 `print`로 고릅니다. **표시**, **기본값**, **기능** 묶음이 나타납니다.
  </Step>

  <Step title="표시 항목과 초기값을 고릅니다">
    **표시**에서 `rendition`과 `show-border`를 켭니다. **초기값**의 `rendition`은 `fill-in`으로 둡니다.
  </Step>

  <Step title="인화 사이즈를 만듭니다">
    사이즈를 고르고 **Print**의 `width`/`height`에 실제 인화지 크기를 넣습니다. 예를 들어 152 × 102mm라면 `152`, `102`입니다. 테두리는 네 방향 각각 `4`로 둡니다.
  </Step>

  <Step title="저장합니다">
    **Update**로 저장합니다.
  </Step>
</Steps>

사진을 올릴 때 데스크톱의 **내 컴퓨터** 버튼은 JPEG 파일만 고르게 합니다. 모바일은 모든 이미지 형식을 엽니다.

## 띄우기 옵션과 option\_string

사진인화 편집기에만 쓰이는 띄우기 옵션이 있습니다. 전체 목록은 [띄우기 옵션](/docs/reference/launch-options)에 있습니다.

| 옵션 | 동작 |
| - | - |
| `run_mode: 'preview'` | 확인용 화면으로 엽니다. 사진 카드에 옵션과 수량 조작 대신 `이미지맞춤 / 유테 / 3장` 같은 요약이 보이고, `save-ui` 저장 버튼도 숨깁니다 |
| `parent_type: 'web_in_app'` | 모바일 화면에서 사진 추가를 누르면 파일 선택 대신 [`request-photo-browse`](/docs/sdk/events) 이벤트를 부모 앱에 보냅니다. 데스크톱 화면은 이 값을 읽지 않습니다 |
| `max_page` | 불러올 수 있는 사진 수의 상한입니다. 넘치면 "최대 N장의 주문만 가능합니다."를 띄우고 넘는 사진은 버립니다 |

`option_string`으로는 아래 값을 세션마다 바꿉니다.

| 키 | 동작 |
| - | - |
| `paper_type` | `select`면 용지 선택을 보이고, 그 밖의 값이면 선택을 숨기고 그 값을 초기 용지로 씁니다 |
| `border_type` | `select`면 테두리 선택을 보이고, `border`면 선택을 숨기고 테두리를 켜며, 그 밖의 값이면 숨기고 끕니다 |
| `show_date` | `true`나 `false`로 `show-date` 표시를 정합니다 |
| `border_size_mm` | 네 방향 테두리 폭을 한 값으로 바꿉니다 |
| `border_left_mm`, `border_top_mm`, `border_right_mm`, `border_bottom_mm` | 넷을 모두 주면 방향별 테두리 폭을 바꿉니다 |
| `low_dpi` | 저해상도 경고 기준을 바꿉니다 |
| `order_count`, `set_order_count` | 총 인화 수량을 정합니다. 둘 다 주면 `set_order_count`를 씁니다 |

## 날짜가 보이지 않을 때

날짜 표시는 사진 메타데이터의 촬영 날짜(`dateCreated`)를 사용합니다. 날짜 정보가 없으면 표시 옵션을 켜도 날짜를 만들지 못하고 안내가 나타납니다. 날짜가 보이지 않는 문제와 날짜 색상·불투명도 설정을 구분합니다.

날짜가 있는 원본 사진으로 먼저 확인합니다. 메신저나 이미지 변환 도구를 거친 파일은 원래 촬영 날짜가 없어질 수 있습니다.

## 수량과 주문 연결

사진별 수량 합계는 저장 결과의 `totalOrderCount`입니다. 서로 다른 사진 항목 수인 `totalPrintCount`와 구분합니다. 같은 사진을 10장 요청하면 사진 항목은 하나이고 총 인화 수량은 10입니다.

`order_count`를 주면 총 수량이 그 값에 닿은 뒤로는 사진을 더 불러올 수 없습니다. 완료할 때 수량이 많으면 안내하고 멈추며, 적으면 **계속 편집하기**와 **저장 후 종료** 중에 고르게 합니다. 가격 계산과 주문 수량의 최종 검증은 부모 사이트와 주문 서버에서 처리합니다. [저장 이벤트](/docs/sdk/events)의 완료 결과를 사용합니다.

## 렌더

사진인화 상품의 주문은 템플릿 상품과 다른 엔진으로 렌더링합니다. 렌더 옵션에서 읽는 엔티티는 `print-to-pdf`와 `bypass-image` 둘뿐이며 [사진인화 상품 엔티티](/docs/products/render-output#사진인화-상품-엔티티)에 있습니다. 전역 옵션(`0000@prepress`)은 사진인화 상품에 적용되지 않으므로 필요한 엔티티는 상품의 `ps_code` 렌더 옵션에 직접 넣습니다.

## 됐는지 확인

<Check>
  사진의 가로·세로 방향, 맞춤 방식과 테두리가 설정대로 보이고, 저장 결과의 총 인화 수량이 사진별 수량 합계와 같으면 됩니다. 날짜가 있는 사진과 없는 사진도 각각 확인합니다.
</Check>

<Note>
  사진인화 상품은 템플릿이 없어 Manager의 Demo나 Test Order로 띄울 수 없습니다. 연동 환경에서만 확인할 수 있으니 연동 담당자에게 확인을 요청하세요.
</Note>

## 다음 단계

<Columns cols={2}>
  <Card title="상품 생성" icon="box" href="/docs/products/create">
    상품 코드와 사이즈 코드를 만들고 연동에 사용합니다.
  </Card>

  <Card title="이벤트" icon="bolt" href="/docs/sdk/events">
    사진인화의 저장 결과와 주문 수량을 받습니다.
  </Card>
</Columns>

<Note>
  동작 확인일: 2026-10-08. Manager의 `print` 상품 화면과 Edicus 편집기의 사진인화 옵션·캔버스·저장 코드를 기준으로 작성했습니다.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.