모바일 앱을 통해 Shopify 재고를 업데이트하는 방법

쇼피파이를 이커머스 플랫폼으로 사용하는 주요 장점 중 하나는 강력한 재고 관리 기능을 제공한다는 것입니다. 그러나 특히 재고 조사나 재고 보충 과정에서 수동으로 데이터를 입력하는 판매자들의 경우, 실시간으로 정확한 재고 기록을 유지하는 것이 어려울 수 있습니다.

휴대용 바코드 스캐너는 재고 확인 시 속도와 정확성을 높이는 데 매우 효과적인 솔루션이지만, 많은 상점 주들은 스캐너 데이터를 쇼피파이 시스템에 직접 연결할 수 있는 편리한 방법을 찾기 어렵습니다. 적절한 연동이 이루어지지 않으면, 직원들은 여전히 스캔한 데이터를 수동으로 쇼피파이에 입력해야 할 수 있으며, 이는 바코드 스캐너가 제공해야 할 효율성 향상의 일부를 상쇄할 수 있습니다.

쇼피피와 직접 연동되어 실시간 재고 관리가 가능한 바코드 스캔 기능을 갖춘 모바일 앱을 개발하는 실제 사례를 살펴보겠습니다.

Shopify tracks key inventory metrics, including the quantity on hand at each location, the number of items committed to existing orders, and the availability for new orders. Keeping these numbers accurate is important to prevent overselling or accumulating inactive, non-moving stock.

재고 정확도를 유지하는 효과적인 방법 중 하나는 정기적인 재고 실사 또는 주기적인 수량 확인입니다. 모바일 앱을 사용하면 쇼피파이 스토어 내 각 제품의 현재 재고 수량을 신속하게 업데이트할 수 있어, 이 과정을 효율적으로 만들어 재고 확인 속도를 높이고 수동 작업으로 인한 비용을 줄일 수 있습니다.

Altova Data Platform 제품을 사용하면 휴대용 스캐너를 사용하여 바코드 데이터를 수집하고, 이를 실시간으로 Shopify에 연결하는 워크플로우를 구축할 수 있습니다.

Shopify와 GraphQL

Shopify는 외부 데이터와의 상호 작용을 위해 GraphQL API를 표준으로 채택했습니다. 이는 데이터 분석을 위한 정보 추출뿐만 아니라, 저희의 경우 재고 관리를 위한 데이터 가져오기에도 사용됩니다. Shopify GraphQL API의 작동 방식과 연결 방법에 대한 자세한 내용은 이전 기사인 "Shopify에서 데이터 내보내기"를 참고하시기 바랍니다.

Shopify 재고 관리 앱의 요구사항 및 설계

저희의 작업 방식은 여러 개의 Altova 제품들이 유기적으로 연동되어 활용될 것입니다

  • MobileTogether 디자이너는 바코드 스캔 앱을 개발하는 데 사용되는 도구입니다
  • MobileTogether 서버: 모바일 기기용 애플리케이션을 호스팅하는 데 사용됩니다
  • MapForce는 다음을 위해 설계되었습니다 앱의 데이터를 Shopify에 연결하는 작업
  • MapForce 서버: 서버에서 매핑 작업을 실행하기 위한 솔루션
  • FlowForce 서버는 워크플로우 관리 및 매핑 정보를 웹 서비스 형태로 제공하는 데 사용됩니다

디자인 과정은 MobileTogether에서 시작됩니다. MobileTogether는 Altova에서 제공하는 로우코드 앱 개발 프레임워크로, 데이터 중심 애플리케이션을 구축하는 데 사용됩니다. 이 프레임워크는 다음과 같은 기능을 제공합니다 휴대용 바코드 스캐너에서 수집된 데이터를 저장하고 처리합니다.

Shopify에서는 다양한 기능들이 존재할 수 있습니다 제품, 그리고 각 제품은 하나 또는 여러 개의 관련 제품을 가질 수 있습니다 변형. 내부적으로, 각 제품 모델은 정확히 하나의 [특정 요소]를 가지고 있습니다 재고 항목. 재고 항목은 여러 가지 속성을 가질 수 있습니다 재고 수준: 각 제품마다 하나의 재고 수준을 유지합니다 위치. 그리고 "위치"는 상인이 사업을 운영하는 지리적 장소를 나타내며, 예를 들어 소매점이나 창고 등이 해당됩니다. 이러한 객체들 간의 관계에 대한 자세한 내용은 추가적으로 확인하실 수 있습니다 여기.

따라서, 제품의 특정 변종의 수량을 업데이트하려면, 특정 위치에 있는 특정 재고 품목의 재고 수준을 변경해야 합니다. 이러한 점을 고려하여, MobileTogether Designer에서 애플리케이션 워크플로우를 시작하기 전에, 먼저 사용자에게 재고를 확인하려는 위치를 선택하도록 요청할 수 있습니다

Shopify 스토어의 위치 정보 테이블을 채우기 위해, MapForce 매핑 기능을 사용하여 모든 위치 정보를 검색할 것입니다.

다음은 왼쪽의 Shopify/GraphQL 웹 요청 구성 요소에서 사용할 GraphQL 쿼리입니다

{

locations(first: 100) {

nodes {

id

name

}

}

}

다음으로, 이 매핑을 MapForce 서버에 배포하고, FlowForce 서버를 사용하여 웹 서비스 형태로 제공할 것입니다

이 작업을 HTTP(S) 프로토콜을 통해 웹 서비스로 제공하는 것을 잊지 마십시오

다음으로, MobileTogether Designer에서 첫 번째 애플리케이션 페이지의 새로운 소스로 사용할 새로운 FlowForce 작업을 추가합니다.

참고하시기 바랍니다. URL은 FlowForce 서버의 호스트 이름으로 지정해야 합니다. 다만, FlowForce 서버와 MobileTogether 서버가 동일한 시스템에서 실행되는 경우에는 "localhost"를 사용할 수 있습니다. 또한, 저희 예제는 로컬 시스템에서 실행되므로 "http:"를 사용하지만, 실제 운영 환경에서는 보안상의 이유로 반드시 "https:"를 사용해야 합니다.

자, 이제 저희 앱을 MobileTogether 환경에서 테스트해 보겠습니다 앱 시뮬레이터 다음과 같은 결과가 나타날 것입니다:

위치 정보가 설정되면, 앱의 다음 페이지에서 바코드와 수량을 입력받도록 설정합니다. 입력받은 정보는 이후 MapForce 매핑 과정으로 전달되며, 이를 통해 해당 바코드에 해당하는 품목의 재고 수량이 업데이트됩니다.

여기서는 GraphQL을 통해 Shopify 웹 서비스에 처음으로 요청을 보내서, 주어진 바코드에 해당하는 상품 ID를 조회하는 방법을 보여줍니다

query ($query: String = null) {

productVariants(first: 1, query: $query) {

nodes {

id

barcode

inventoryItem {

id

}

}

}

}

그리고 두 번째 Shopify 웹 서비스 호출은 현재 재고 수량을 업데이트하기 위한 변경 요청(mutation)을 전송합니다

mutation InventorySet($input: InventorySetQuantitiesInput!) {

inventorySetQuantities(input: $input) {

inventoryAdjustmentGroup {

createdAt

reason

referenceDocumentUri

changes {

name

delta

}

}

userErrors {

field

message

}

}

}

배포된 매핑은 이후에 다른 FlowForce 작업에서 활용될 수 있습니다

그리고 이를 HTTP 프로토콜을 통해 웹 서비스 형태로 제공할 수도 있습니다

MobileTogether Designer의 두 번째 모바일 애플리케이션 페이지에서 현재 HTTP 서비스로 제공되는 이 매핑 기능을 활용해 보겠습니다

여기서는 이전에 선택한 위치를 보여주고, 바코드와 수량을 입력하도록 요청합니다. "수량 업데이트" 버튼을 클릭하면 FlowForce 서버의 HTTP 서비스가 호출됩니다

다시 한번 말씀드리지만, URL은 FlowForce 서버의 호스트 이름으로 지정되어야 합니다. 다만, FlowForce 서버와 MobileTogether 서버가 동일한 시스템에서 실행되는 경우에는 예외입니다.

저희가 변이의 결과를 보여드릴 페이지는 모바일 앱의 세 번째 페이지입니다

...여기서 "계속" 버튼을 누르면 두 번째 페이지로 돌아가서 다음 재고 품목을 확인하기 위해 새로운 바코드와 수량을 입력할 수 있습니다.

전체 작업 흐름은 다음과 같을 수 있습니다.

위치 선택:

바코드와 수량을 스캐너를 통해 입력하세요

최신 정보 확인 및 확인 절차:

다음은 무엇일까요?

이제 바코드 스캔 앱이 준비되었으므로, 모바일 기기에서 실행될 수 있도록 MobileTogether 서버에 배포될 것입니다. 이 앱은 내장된 하드웨어 바코드 리더를 통해 바코드를 스캔하고 입력할 수 있는 모바일 기기에서 작동합니다. 또한 MobileTogether는 외부 무선 바코드 리더(예: Zebra 또는 Datalogic)를 지원하며, 이를 모바일 앱의 워크플로우에 통합할 수 있습니다.

MapForce를 사용하여 Shopify에 데이터를 매핑하는 기능은 소프트웨어와 함께 제공되는 MapForce 예제 프로젝트(Shopify_UpdateInventory.mfd)에서 사용할 수 있습니다. 이 기능을 사용하려면, 사용자의 Shopify 스토어 이름과 액세스 토큰을 입력하여 직접 테스트해 볼 수 있습니다.

이 예제에서 사용된 모든 Altova 제품은 다음 조건으로 이용 가능합니다 무료 체험 기간, 그리고 MobileTogether Designer는 무료 소프트웨어입니다.