Shopify 주문 확인 이메일에는
필요한 행이 담겨 있습니다
모든 Shopify 판매는 주문 확인 이메일을 생성하며, 그 이메일에는 이미 주문 번호, 고객, 라인 품목, 배송 주소, 합계의 각 항목이 포함되어 있습니다. 그 데이터 중 받은편지함에서 빠진 것은 없습니다. 빠진 것은 행입니다. 메시지는 주문이 발생했음을 확인하지만, 날짜별로 정렬하거나 제품별로 합산하거나 공급업체에 포장 목록으로 전달할 수는 없습니다.
Shopify는 관리자 패널에서 주문을 CSV로 내보낼 수 있으며, 자신의 스토어 기록을 한 번에 가져오는 경우 그 내보내기가 올바른 도구입니다. 하지만 지속적인 기록에는 도움이 되지 않습니다: 하루 종일 도착하는 알림, 두 번째 판매 채널, 관리자 로그인 없이 목록이 필요한 창고 담당자, 고정된 내보내기 열에 포함되지 않는 필드 등이 그렇습니다. 이 글에서는 Shopify 주문 이메일 안에 실제로 무엇이 들어 있는지, 수동으로 데이터를 추출하는 것이 왜 한계에 부딪히는지, 그리고 도착하는 각 이메일을 구조화된 행으로 바꾸는 방법을 다룹니다.

핵심 요점
- 표준 Shopify 주문 확인 이메일에는 첨부 파일이 없습니다. 필요한 필드가 바로 메시지 본문이기 때문입니다.
- 필드 감사 결과 조사한 스프레드시트의 86%에서 오류가 발견되었습니다. 수동 주문 입력이 주의 부족이 아니라 규모 때문에 실패하는 이유입니다.
- 알림을 받은편지함 하나로 라우팅하고 열 이름을 한 번만 입력하면 도착하는 각 이메일이 행으로 정리됩니다.
Shopify 주문 확인 이메일에 실제로 포함된 내용

Shopify는 Liquid 변수를 통해 실시간 주문 데이터를 가져오는 템플릿에서 주문 알림을 생성하므로, 이메일은 읽어야 할 이미지가 아니라 주문 기록을 렌더링한 보기입니다. Shopify의 알림 변수 참조에는 해당 템플릿이 접근할 수 있는 항목이 나열되어 있습니다: 고객이 보는 주문 번호(#1004)와 원시 형식(1004), 일부 스토어에서 대신 표시하는 별도의 confirmation_number, 고객 이메일, 배송 및 청구 주소, 그리고 각각 제품 제목, 변형, SKU, 수량, 가격을 담은 line_items가 있습니다. 합계도 별도 값으로 제공됩니다: 소계, 배송비, 세금, 관세, 할인, 총 합계와 함께 재무 상태 및 결제 조건이 설정된 경우 납부 기한도 포함됩니다.
실질적인 결과는 주문 데이터가 라벨 옆에 있어서 고정할 수 있는 필드가 아니라는 점입니다. 이는 템플릿이 생성한 HTML 레이아웃입니다. 표준 Shopify 주문 확인 이메일에는 첨부 파일이 없으므로 열 것도, 스캔할 것도 없습니다. 메시지 본문이 곧 주문 문서입니다.
주문 이메일에는 열어볼 것이 없습니다. 필요한 필드는 바로 메시지 본문 자체입니다.
같은 주문이 매장마다 다르게 표시되는 이유
하나의 고정된 파싱 규칙으로 Shopify 주문 이메일을 모두 처리할 수 없는 이유는 템플릿이 편집 가능하도록 설계되었기 때문입니다. 설정 > 알림에서 매장은 주문 확인 이메일의 Liquid를 다시 작성할 수 있으며, Shopify는 판매자가 가장 자주 추가하는 요소를 문서화합니다: 관세 및 수입세를 징수하는 매장을 위한 관세 항목, 금액과 납부 기한을 표시하는 결제 조건 블록, 특정 제품에 첨부된 세탁 지침이나 각인 텍스트와 같은 라인 항목 사용자 지정 속성입니다.
브랜딩도 렌더링을 변경합니다. 로고 URL과 강조 색상은 이메일 사용자 지정 설정에서 가져오며, 각 라인 항목의 제목, 변형, 속성은 판매자 자신의 루프로 출력됩니다. 통화는 매장 또는 시장을 따르므로 주문 합계는 구매자의 위치에 따라 USD, EUR 또는 GBP로 표시됩니다. 매장은 순차적인 주문 이름 대신 임의의 confirmation_number를 표시할 수도 있으므로 이메일의 식별자가 항상 예상한 번호는 아닙니다.
쇼핑객이 받는 템플릿만 중요한 것은 아닙니다. Shopify의 직원 신규 주문 알림은 별도의 템플릿이며, 배송 확인 이메일에는 원래 주문 확인 이메일에는 아직 없는 추적 데이터가 포함됩니다. 그렇기 때문에 하나의 샘플 주문 레이블로 구축된 파서는 매장이 제목을 변경하는 즉시 실패하며, 테마가 중요한지 묻는 판매자의 질문에 대한 실제 답변은 다음과 같습니다: 레이아웃은 매장별로 다르고 레이블은 이름을 바꿀 수 있습니다.
Shopify 자체 내보내기가 다른 도구인 이유
Shopify의 기본 내보내기는 주문 페이지에 있으며 주문 데이터의 CSV를 작성하고, 자체 매장 기록에 대해서는 무료이고 완전하며 따라잡기 어렵습니다. 일회성 덤프가 필요하다면 사용하세요. 그러나 주문이 도착할 때 업데이트되는 기록은 아닙니다. Shopify의 도움말 문서는 메커니즘을 설명합니다: 최대 50개 주문 또는 현재 페이지의 내보내기는 기기에 직접 다운로드되며, 51개 이상의 주문 또는 날짜 기반 내보내기는 대신 이메일로 전송됩니다. 열은 고정되어 있고, 거래 내역에는 캡처된 결제만 포함되며, 필드 선택이나 일정 기능은 없습니다.
소스가 내보내기가 아닌 경우 격차는 더 커집니다. 직원 알림 이메일은 관리자 액세스 없이 수신자로 추가한 모든 사람에게 도달합니다. 두 번째 마켓플레이스나 도매 공급업체는 Shopify 내보내기에서 볼 수 없는 자체 주문 이메일을 보냅니다. 포장 목록이 필요한 창고 팀에게 매장 로그인을 제공해서는 안 됩니다. 이러한 각 경우에 이메일이 진실의 원천이며, 작업은 계속 도착하는 행으로 변환하는 것입니다.
주문을 시트로 옮길 때 수작업이 실패하는 지점

수동 추출은 예측 가능한 세 지점에서 실패하며, 첫 번째는 입력 오류입니다. 주문 번호, 고객 이름, 합계를 시트에 입력하는 단순한 작업이 주의력이 유지되는 한계를 훨씬 넘어 반복됩니다. 오류 연구는 결과에 대해 단호합니다: Panko가 수집한 현장 감사에서 조사된 스프레드시트의 최소 86%에서 오류가 발견되었고, 통제 실험에서는 51%에서 오류가 발견되었습니다. 이 발견은 사람들이 부주의하다는 뜻이 아닙니다. 손으로 데이터를 다시 입력하는 것은 인지적 한계에 부딪히며, 아무리 주의를 기울여도 그 한계를 제거할 수 없다는 뜻입니다.
두 번째는 주문 구조입니다. 여러 항목 주문은 헤더와 반복되는 라인 항목 블록으로 구성되며, 평면 시트는 선택을 강요합니다. Shopify의 자체 CSV 내보내기는 라인 항목당 한 행을 만들고 주문 수준 필드(합계 포함)는 첫 행 이후의 모든 행에서 비워 둡니다. 그래서 누군가 합계를 아래로 채우면 내보낸 시트에 수익이 이중 계산됩니다. 이메일에서 손으로 복사하면 문제가 반대가 됩니다: 주문 번호와 합계는 쉽게 유지하면서 세 번째와 네 번째 라인 항목은 조용히 잃어버리기 쉽습니다.
세 번째는 물량입니다. 실제 주문 흐름에서 수동 프로세스는 우아하게 저하되지 않습니다. 기록을 누락합니다. 한 소규모 식료품점이 r/shopify 스레드에서 실패 사례를 설명했습니다: "주문 정보 일부(주문 번호, 금액, 위치, 지역)를 엑셀 시트로 옮긴 다음, 이를 사용해 위치에 따라 운전자별로 주문을 나눕니다. 매주 금요일마다 매우 인기 있는 세일이 있어 최대 70개 주문이 들어옵니다... 당연히 모든 것을 수동으로 하면 주문이 누락됩니다." 하루 70개 주문은 큰 매장이 아닙니다. 단지 다른 일을 하면서 정확히 복사할 수 있는 사람의 능력을 넘어설 뿐입니다.
해결책: 이메일 라우팅, 열 이름 지정

데이터는 이미 이메일로 도착하므로, 해야 할 일은 도착이 곧 행(row)이 되도록 만드는 것입니다. 이 단계를 처리하는 ImageToTable.ai 기능은 두 가지입니다. 첫 번째는 Email Inbox로, 계정 전용 주소입니다. 이 주소를 스토어에 공유하거나 전달 규칙을 설정해 알림이 해당 주소로 들어오게 하면, 누구도 파일을 다운로드하거나 업로드하지 않아도 메시지가 처리 대기열에 들어옵니다. 주문 데이터는 메시지 본문에 있으므로, 받은 편지함이 본문을 읽도록 설정하거나, 스토어가 PDF 인보이스도 보내는 경우 본문과 첨부 파일을 함께 읽도록 설정하면 됩니다. Auto-Process는 메시지가 도착하는 즉시 추출을 실행하며, 발신자 화이트리스트를 통해 메일링 리스트나 관련 없는 메일이 삭제해야 할 행이 되는 것을 방지합니다.
두 번째는 Custom Column Extraction입니다. Order Number, Order Date, Customer Name, Customer Email, Shipping Method, Item Count, Line Items, Subtotal, Shipping, Tax, Discount, Order Total, Currency, Financial Status와 같이 원하는 열 이름을 입력합니다. AI가 각 이메일을 읽고 값의 의미를 이해하여 해당 값을 찾아내므로, 동일한 열 세트가 기본 템플릿, 맞춤 템플릿, 직원 알림에 모두 적용되며 스토어별 규칙이 필요 없습니다. 입력한 이름이 시트의 헤더가 됩니다.
설정은 주문별이 아니라 한 번만 구성하면 되는 짧은 항목 목록입니다:
알림을 수신 받은 편지함으로 라우팅
Shopify에서 설정 > 알림 > 직원 알림으로 이동해 수신자를 추가하고 전용 받은 편지함 주소를 입력하세요. 또는 Gmail이나 Outlook의 필터로 기존 주문 알림을 전달하세요. 그러면 모든 주문 이메일이 하나의 대기열에 모입니다.
받은 편지함이 본문을 읽도록 설정
표준 주문 이메일에는 본문만 선택하고, 스토어에서 PDF 인보이스도 함께 보내는 경우에는 본문과 첨부 파일을 함께 선택하세요. 이 설정이 Shopify에서 주문 정보가 위치한 곳과 일치합니다.
Auto-Process와 화이트리스트 켜기
Auto-Process는 도착 즉시 추출을 시작합니다. 발신자 화이트리스트는 대기열을 스토어의 발신자 주소 또는 전달하는 주소로 제한하므로, 관련 없는 메일이 주문과 경쟁하지 않습니다.
열 이름을 한 번 지정
실제로 사용하는 필드를 입력하세요. 주문 처리 팀에는 주문 번호, 이름, 주소, 품목(Line Items)이 필요합니다. 회계 팀에는 날짜, 할인, 세금, 배송비, 결제 상태가 포함된 합계가 필요합니다. 이 세트를 템플릿으로 저장하고 받은 편지함에 연결하세요.
계산 열(Computed Column) 검사 추가
Line Item Check와 같은 열을 정의하여 품목 합계를 더하고, 합계가 인쇄된 주문 합계와 일치하지 않을 때 차이를 출력하세요. 계산은 추출 중에 실행되므로 예외가 이메일에 숨는 대신 시트에 표시됩니다.
배치(Batch) 내보내기
각 이메일은 헤더 아래의 한 행이 되며, 배치는 Excel, CSV 또는 JSON으로 내보내집니다. 팀이 Google Sheets에서 작업하는 경우 출력을 해당 위치로 직접 보내고 파일을 건너뛰세요.
파일은 안전하게 처리되며 저장되지 않습니다.
한 가지 형태를 명확히 짚고 넘어가겠습니다. 기본 출력은 주문 이메일당 한 행이며, Line Items 열에 품목이 담깁니다. SKU 단위 보고를 위해 제품당 한 행이 필요하다면, 내보내기 후 스프레드시트에서 분할하면 됩니다. 이때 수식이 보이므로 확인하기 쉽습니다.
출력 결과 미리보기
완성된 배치는 주문당 한 행으로 구성된 하나의 테이블이며, 사용자가 지정한 필드가 열로 표시됩니다. 아래 예시는 가독성을 위해 일부 열만 사용했지만, 실제 시트에는 정의한 모든 열이 포함됩니다.
| 주문 번호 | 주문 날짜 | 고객 | 품목 수 | 합계 | 상태 |
|---|---|---|---|---|---|
| #10482 | 2026-10-03 | Lena Ford | 2 | $84.00 | 결제 완료 |
| #10483 | 2026-10-03 | Marcus Bell | 4 | $149.50 | 결제 완료 |
| #10484 | 2026-10-03 | Rachel Kim | 1 | $32.00 | 결제 대기 |
표의 값은 예시입니다. Order Number와 Order Date는 이메일 본문에서, 품목 수와 Line Items는 본문의 품목 표에서, Total은 표시된 주문 합계에서 가져옵니다. 날짜와 금액은 추출 과정에서 표준화되므로 별도의 정리 작업 없이 바로 보고에 사용할 수 있습니다. 시트가 생성되면 합계, 피벗, 정렬을 누구도 수기로 입력하지 않은 열에 바로 적용할 수 있습니다.
제공하지 않는 기능
Shopify 통합이 아닙니다. ImageToTable.ai는 사용자가 라우팅한 이메일을 읽습니다. 앱 스토어 커넥터, 기본 Shopify 연결, 스토어에 대한 쓰기백이 없습니다. Shopify로 푸시되는 데이터는 없으며 주문 상태도 변경되지 않습니다. 출력은 스프레드시트이며, 스토어가 시스템 오브 레코드로 유지됩니다.
이메일을 읽지 채팅은 읽지 않습니다. 문자 메시지나 WhatsApp으로 전송된 주문 세부 정보는 다른 채널입니다. Email Inbox는 해당 주소로 이메일로 도달한 내용만 볼 수 있으므로, 해당 메시지가 문서로 존재하게 되면 한 번 전달해야 합니다.
추출은 하지만 대사는 하지 않습니다. 이 도구는 열을 채우고 위에서 설명한 라인 항목 확인을 실행할 수 있지만, 은행 입금과 주문을 대사하거나, 환불을 특정 주문에 연결하거나, 배송비가 올바른지 확인하지는 않습니다. 이러한 것은 판단의 영역이며, 시트와 사람에게 남아 있습니다.
전체 과거 데이터 덤프는 여전히 내보내기의 역할입니다. 수년간의 과거 주문을 마이그레이션하려면 Shopify의 CSV 내보내기가 올바른 소스입니다. 이 워크플로우는 지속적인 신규 주문 흐름, 두 번째 채널, 스토어 액세스 없이 데이터가 필요한 사람들을 위한 것입니다.
정확도는 높지만 완벽하지는 않습니다. 인쇄된 테이블 데이터에 대해 최대 99% 정확도를 명시하며, 이는 특정 입력 유형에 대한 자체 수치입니다. Review Mode와 Bbox verification은 금액이 관련된 필드를 위해 존재합니다. 추출된 셀에 마우스를 올리면 원본 메시지에서 해당 소스 영역이 강조 표시되고, 편집된 값은 AI의 판독값으로 되돌릴 수 있습니다.
전체 워크플로우가 필요하다면, 전체 메시지를 읽는 이메일 파서가 일반적인 경우를 다루고, 스크린샷에서 전자상거래 주문 데이터 추출은 이메일 대신 이미지로 도착하는 버전을 처리합니다. 확인 메시지가 이메일이 아닌 문자 메시지로 도착하는 경우, SMS 주문 확인 워크스루가 해당 채널을 다루고, 추출 결과를 Google Sheets로 보내기는 대부분의 팀이 사용하는 대상지를 다룹니다.
자주 묻는 질문
제 스토어가 맞춤 테마나 맞춤 주문 확인 템플릿을 사용하는 경우에도 작동하나요?
네. 추출은 라벨이나 위치를 일치시키는 대신 의미를 기준으로 값을 읽으므로, 제목을 바꾸거나 레이아웃을 재배열하거나 관세 라인을 추가해도 새 규칙이 필요하지 않습니다. 열 이름을 한 번 정의하면 동일한 세트가 스토어에서 보내는 모든 주문 템플릿에 적용됩니다.
주문 데이터는 이메일 본문에 있나요, 아니면 첨부 파일에 있나요?
본문에 있습니다. 표준 Shopify 주문 확인은 첨부 파일이 없는 HTML 메시지이므로, 받은 편지함은 메시지 본문을 읽도록 설정되어 있습니다. 스토어에서 PDF 인보이스도 첨부하는 경우 본문 및 첨부 파일 설정으로 전환하면 둘 다 동일한 행으로 읽힙니다.
직원 신규 주문 알림도 고객 확인 메일과 함께 읽을 수 있나요?
네. 직원 신규 주문 알림은 별도의 템플릿에서 생성되지만 주문 번호, 고객, 라인 항목, 합계 등 동일한 주문 데이터를 담고 있습니다. 열이 의미를 기준으로 일치하므로, 받은 편지함으로 라우팅하는 템플릿이 무엇이든 동일한 설정으로 캡처할 수 있습니다.
여러 항목이 포함된 주문은 어떻게 처리되나요?
각 주문 이메일은 하나의 행이 되고, 라인 항목은 Line Items 열에 캡처됩니다. SKU 수준 보고를 위해 제품당 하나의 행이 필요한 경우, 내보낸 후 스프레드시트에서 해당 열을 분할하면 됩니다. 수식이 표시되어 확인하기 쉽습니다.
다른 통화의 주문 합계도 가져올 수 있나요?
네. 통화는 열로 추출되고, 후처리에서 날짜와 금액을 표준화하여 USD, EUR, GBP로 판매하는 스토어에서도 일관된 시트를 생성합니다. 모든 행을 단일 통화로 원하는 경우, 사용하는 환율을 적용하는 계산 열을 추가하면 됩니다.
무료 체험판이 있나요?
가입은 무료이며 자체 주문으로 테스트할 수 있는 크레딧이 포함됩니다. 주문 이메일 몇 개를 전달하고 열이 채워지는 것을 확인한 후 결제 여부를 판단하세요. 이 페이지의 데모는 계정 없이 실행됩니다.
주문이 받은편지함에서 사라진 적은 없습니다
멈춘 주문을 정리 문제로 취급하고 싶은 유혹이 듭니다. 마치 더 깔끔한 받은편지함이나 더 신중한 복사-붙여넣기가 해결해 줄 것처럼요. 주문은 사라진 적이 없습니다. 제때 도착했고, 사람만이 기록으로 바꿀 수 있는 형식으로 놓여 있었기에, 누군가 기억해 줘야만 결제하거나 픽업할 수 있었습니다. 기록 생성을 도착 시점으로 옮기면, 질문은 누군가 기억했는지가 아니라 행이 존재하는지가 됩니다. 그것은 팀이 다른 일을 하는 동안 시스템이 실행할 수 있는 확인입니다.