Shopify에서 Shop URL이 2개인 이유

2024년 9월 9일 월요일

Today I Learned

날짜

2024년 9월 9일 월요일

내용

샵 URL이 2개인 이유

쇼피파이에서 유저가 앱을 설치하면, 가장 먼저 알게 되는 샵 정보는 샵의 URL이다. 알파플러스에선 샵의 URL을 shop_url과 platform_shop_url 이라는 두 값으로 저장한다. 사실 왜 두 개인지 몰랐다. 뭐 레거시 인가 싶긴 했는데.. 그래서 인스타그램 코멘트를 만들때는 그냥 샵 URL을 하나만 가져왔다. 이게 모든 문제의 원인일 줄이여…

실제로 쇼피파이에서도 샵의 URL 관련 정보는 2가지이다. 하나는 “domain”, 다른 하나는 “myshopify_domain”이다. 전자는 유저가 설정에서 바꿀 수 있다. 스토어 이용 고객이 접속할 때 쓰는 URL이고 변경가능하다는 의미이다. 실제로 변경하는 스토어가 왕왕 있다. 반면 후자는 샵을 생성하면서 고정되는 값으로 변경되지 않는다. 각 스토어가 쇼피파이에서 가지는 고유한 ID가 있듯, 이 URL도 고유한 값이다. 따라서 스토어와 관련된 데이터를 쇼피파이에 요청할 때도 이 URL이 쓰인다. 우리가 테마를 조회하던, 메타필드를 조회하던, 주문 데이터를 조회하던 이 값이 없으면 아무것도 못한다.

그것도 모르고 그냥 domain 만 받아서 저장하고 있었다… 그래서 생기는 문제점은 두 가지였다.

  1. 샵 중복생성

    위에서 말했듯, 샵에 대해 최초로 알게 되는 정보가 이 고유 도메인이다. 따라서 정보가 들어왔을때, 데이터베이스에서 조회해서 이미 설치된 샵인지 확인해야 한다. 예를 들어, domain 이 “www.nike.com” 이고 myshopify_domain이 “f2dsad.myshopify.com” 이라면 나는 www.nike.com만 저장하고 있었다. 그리고 이 샵이 또 들어올 때 “f2dsad.myshopify.com” 이 있는지 조회한다. 당연히 없다고 뜨니 새로 생성한다. 하지만 쇼피파이 서버상으론 이미 설치된 샵이니 문제가 발생한다.. myshopify_domain도 설치하고 중복 검사에 포함시켰어야 했다

  2. 메타필드 생성

    myshopify domain은 쇼피파이와 통신할 때도 사용되는 URL이다. 인스타그램 코멘트의 위젯은 모든 데이터를 스토어의 앱 메타필드에 저장한다. 자바스크립트 파일과, HTML, 스타일 모두 다! domain만 저장하고 이 값으로 앱 메타필드에 접근하려니 당연히 제대로 되지 않았다. 1에서의 예시를 이어보면, 샵 정보를 불러올때 https://f2dsad.myshopify.com/admin/2024-07/shop.json 으로 요청을 보내야 하는데 https://www.nike.com/admin/2024-07/shop.,json 이라는 어처구니 없는 URL로 보내고 있었던 것..

모르면 꼭 찾아보자.

회고

대충 보고 레거시 취급하지 않기..