Shopify에서 제품 데이터를 CSV 파일로 내보내기

Shopify는 대규모로 사용되는 전자상거래 플랫폼으로, 다양한 규모의 소매업체에서 널리 활용되고 있습니다. Shopify는 온라인 매장을 구축하고 운영하는 데 필요한 편리한 도구를 제공하지만, 제품 카탈로그, 고객 정보, 주문 내역, 재고 관리 등 방대한 양의 데이터를 관리하는 것은 빠르게 복잡해질 수 있습니다.

기업들은 종종 운영 효율성을 높이거나, 심층적인 분석을 수행하거나, 자동화된 업무 프로세스를 지원하기 위해 Shopify 데이터를 백엔드 데이터베이스, ERP 시스템, CRM, 데이터 웨어하우스 또는 다른 플랫폼과 통합해야 합니다.

여기서 쇼피파이 지원 기능을 갖춘 데이터 매핑 도구가 필수적으로 사용됩니다. 이 도구를 통해 기업들은 쇼피파이와 다른 시스템 간에 데이터를 효율적이고 정확하게 변환, 매핑, 이동할 수 있습니다.

맵포스(MapForce)의 시각적 도구를 사용하여, 쇼피파이(Shopify)에서 제품 데이터를 CSV 파일로 추출하는 일반적인 사례를 예시로 들어보겠습니다.

How Can You Get Data Out of Shopify?

Shopify는 기업들이 온라인 매장을 구축하고 관리하는 데 필요한 도구를 제공하지만, 다른 작업에 필요한 데이터를 플랫폼에서 추출하는 것은 다소 복잡합니다.

Shopify는 과거부터 개발자들이 데이터를 쉽게 접근하고 추출할 수 있도록 다양한 API와 도구를 제공해 왔지만, 최근에는 GraphQL을 주요 API 형식으로 표준화했습니다. 실제로, Shopify는 곧 모든 새로운 앱이 GraphQL을 사용하도록 의무화할 예정입니다. GraphQL 방식은 매우 정교한 데이터 요청이 가능하며, 이를 통해 판매자는 필요한 특정 데이터만 단일 API 호출을 통해 요청할 수 있습니다. 이는 성능을 향상시키고 불필요한 데이터 전송을 줄이는 데 도움이 됩니다.

Shopify는 개발자 또는 IT 전문가가 쇼핑몰 데이터를 쉽게 접근할 수 있도록 두 가지 주요 GraphQL API를 제공합니다

  • Shopify 관리자 GraphQL API: 이 API는 백엔드 운영을 위한 주요 API입니다. 제품, 주문, 고객, 재고, 배송 정보 등 쇼핑몰 데이터에 접근할 수 있습니다. 개발자는 관리자 GraphQL API를 사용하여 데이터를 추출하고 다른 시스템에 연결할 수 있습니다.

  • Shopify 스토어프론트 GraphQL API: 스토어프론트 API는 주로 맞춤형 쇼핑 경험과 프론트엔드 애플리케이션을 구축하는 데 사용되지만, 제품 목록, 컬렉션, 결제 과정 등 고객에게 공개되는 스토어 데이터를 접근할 수 있도록 제공합니다. 특히, Shopify 데이터를 고객에게 제공하는 플랫폼, 예를 들어 맞춤형 모바일 앱에 통합하려는 기업에게 유용합니다.

Shopify 데이터를 통합하기 위해 MapForce 활용하기

개발자는 MapForce를 사용하여 다음 작업을 수행할 수 있습니다 Shopify 데이터를 통합합니다 다른 데이터 형식 및 시스템과의 연동을 위해, MapForce는 사용자 정의 매핑을 생성하여 GraphQL API를 직접 호출합니다. MapForce는 Shopify API를 데이터 통합 프로젝트의 소스 또는 대상으로 활용하여, Shopify의 데이터 구조를 대상 데이터 구조가 요구하는 형식으로 변환하거나, 그 반대로 변환하는 역할을 수행합니다.

시작하려면, 개발자는 자신의 Shopify 스토어 내에서 맞춤 앱을 생성해야 합니다. 맞춤 앱은 Shopify API와 안전하게 상호 작용하는 데 필요한 API 자격 증명 및 권한을 제공합니다. Shopify 앱 스토어에 등록된 공개 앱과 달리, 공개 앱은 Shopify 파트너사가 일반 사용자를 위해 제공하는 반면, 맞춤 앱은 특정 스토어의 특정 목적을 위해 개발되며 다른 스토어에서는 사용할 수 없습니다. 이를 통해 기업은 데이터 통합 또는 ETL 프로젝트에서 데이터가 어떻게 접근되고 사용되는지에 대한 완전한 통제권을 갖게 됩니다.

MapForce를 GraphQL API에 연결하는 방법

Shopify 관리자 또는 쇼핑몰 프론트엔드 GraphQL API를 사용하여 Shopify 데이터를 다른 시스템과 통합하려면, Shopify 내에서 상점 운영자가 반드시 완료해야 할 몇 가지 중요한 단계가 있습니다

  1. 맞춤형 앱 개발 지원 Shopify는 기본적으로 사용자 정의 앱 개발을 제한하여 판매자가 무단으로 API에 접근하는 것을 방지합니다. 사용자 정의 앱을 만들기 전에, 상점 소유자 또는 관리자는 Shopify 관리자 설정에서 사용자 정의 앱 개발 기능을 먼저 활성화해야 합니다.

2.   맞춤형 앱 만들기 ("앱 개발") 맞춤형 앱 개발 기능이 활성화되면, 다음 단계는 실제로 맞춤형 앱을 만드는 것입니다. 이는 "앱 개발" 섹션을 통해 이루어지며, 이 섹션에서 상점 관리자 또는 개발자는 API 통합을 위해 특별히 설계된 새로운 앱을 정의할 수 있습니다.

3.   올바른 API 접근 권한을 설정하세요 Shopify는 앱이 접근할 수 있는 데이터의 범위를 세밀하게 설정하여 데이터 접근을 제어합니다. 앱의 사용 목적에 따라, 해당 앱에 적절한 관리자 API 또는 쇼핑몰 API 권한(예: 주문 정보 읽기, 상품 정보 쓰기, 고객 정보 읽기)을 부여해야 합니다.

4.   Shopify 스토어에 사용자 정의 앱을 설치하세요
앱이 설정되고 접근 권한이 할당되면, 해당 앱을 쇼피파이 스토어에 직접 설치해야 합니다. 이 설치 과정에서 필요한 API 인증 정보, 즉 API 접근 토큰을 포함한 모든 인증 정보가 생성됩니다.

5.   API 접근 토큰을 가져와 저장합니다
액세스 토큰은 Shopify API에 안전하고 인증된 접근 권한을 제공합니다. 이 토큰은 외부 데이터 매핑 도구가 API 요청을 인증하는 데 사용됩니다.

Shopify 데이터를 CSV 파일로 변환합니다

자, 이제 MapForce에서 GraphQL 매핑의 예시를 살펴보겠습니다. 이 매핑 프로젝트는 일반적인 요구 사항을 충족합니다. 즉, Shopify 제품 데이터를 CSV 파일로 추출하여 다른 시스템에 업로드하거나, 심지어 엑셀에 불러와 분석하는 것입니다.

Shopify 컴포넌트를 매핑 프로젝트에 추가할 때, MapForce는 상점 이름 입력, 관리자 API 또는 판매자용 API 선택, API 접근 토큰 입력 과정을 안내합니다. 그 다음, 연결 설정을 정의하고, 필요한 경우 HTTP 보안 설정을 구성하며, 관련 헤더 매개변수를 추가하고, 쿼리 또는 뮤테이션을 생성할 수 있습니다.

이를 위해 왼쪽에서 GraphQL 쿼리를 동적으로 구성할 수 있습니다. 오른쪽에서 제공되는 옵션들을 선택하면, 이 과정이 안내해 줄 것입니다. 또한, "스키마 가져오기" 버튼을 누르면 MapForce가 서버의 정보 수집 기능과 GraphQL 쿼리를 기반으로 API 응답에 대한 JSON 스키마 정의를 자동으로 생성합니다. (그리고 매핑을 열 때마다 사용할 수 있도록 해당 스키마의 캐시된 버전을 로컬에 저장할 수 있습니다.)

이번 예시에서는 상품에 대한 쿼리를 사용하고, 쿼리를 작성하면서 왼쪽의 각 노드에 대해 어떤 데이터를 반환받을지 지정하겠습니다. 구체적으로, 상품 ID, 제목, 그리고 각 상품의 SKU와 가격 정보를 가져올 것입니다. 이 블로그 게시물에서는 GraphQL의 작동 방식에 대한 모든 세부 사항을 다루지는 않겠지만, https://graphql.org/learn/https://www.shopify.com/partners/blog/getting-started-with-graphql과 같은 다양한 온라인 자료를 통해 GraphQL에 대해 더 자세히 알아보실 수 있습니다.

다음으로, MapForce는 Shopify API 호출을 그래픽 구성 요소로 삽입하여 API 요청 및 응답의 구조를 시각적으로 보여줍니다.

여기서부터 조금 복잡해집니다. Shopify GraphQL API는 페이지네이션 방식을 사용하며, API 호출 한 번에 특정 수의 결과만 반환합니다 (즉, 한 페이지 분량의 결과). 따라서 쿼리 결과로 얻은 모든 데이터를 가져오려면 API를 여러 번 호출해야 합니다. 우리는 이 API 호출을 "getProducts"라는 사용자 정의 함수로 감싸서 이를 수행할 것입니다. 만약 결과 페이지가 더 있다면, 이 함수를 재귀적으로 호출하여 추가 데이터를 가져올 수 있습니다.

getProducts 함수 내에서 매핑(mapping)을 확인했을 때, 오른쪽 하단 모서리 부분에 다음과 같은 내용을 확인할 수 있습니다

기본적으로, API를 처음 호출했을 때 hasNextPage가 참을 반환하면, 이전 API 호출에서 반환된 endCursor 위치로 $after 변수를 설정하여 동일한 함수를 재귀적으로 다시 호출합니다. 또한, API 호출 사이에 1초의 간격을 두어 API 사용량 제한을 초과하지 않도록 합니다.

그리고, 당연히, getProducts 함수를 재귀적으로 호출하여 얻은 결과도 외부 getProducts 함수의 결과에 추가되므로, 결국 모든 결과를 메인 매핑에 반환하게 됩니다.

getProducts 함수 내에 실제 API 호출을 감싸는 방식으로, API 호출 결과를 가져와 CSV 파일로 변환하는 핵심 로직을 더욱 깔끔하고 효율적으로 구성할 수 있습니다

이 샘플 프로젝트는 MapForce와 함께 제공되며, 이 프로그램을 실행하려면 쇼핑몰 이름과 액세스 토큰을 입력해야 합니다. 이를 위해 "예제" 프로젝트에서 "Shopify_ExportAllProducts.mfd" 파일을 열고, "getProducts" 함수를 더블 클릭한 다음, "웹 서비스 POST 호출" 객체를 더블 클릭합니다. 여기서 쇼핑몰의 URL과 함께 Shopify 액세스 토큰에 해당하는 정확한 문자열을 입력해야 합니다.

한 번 그렇게 설정하시면, "출력" 탭으로 전환하여 모든 제품 목록이 CSV 형식으로 생성되는 미리보기 결과를 확인할 수 있습니다.

생성된 결과를 직접 저장하거나, 이 매핑 프로젝트를 MapForce 서버에 배포하여 고성능 자동화를 구현할 수 있습니다.

MapForce의 그래픽 도구를 사용하면 Shopify에서 CSV 형식뿐만 아니라 XML, 데이터베이스, 엑셀 등 다양한 형식으로 데이터를 쉽게 추출할 수 있습니다.

MapForce의 무료 30일 체험판을 직접 사용해 보시고 그 효과를 확인해 보세요.

쇼피파이 데이터 통합에 대한 자세한 내용은, 모바일 앱 제작 관련 저희 기사를 참고하십시오 재고 정보를 수집하고 이를 Shopify 플랫폼에 연결하는 작업 실시간으로.