Shopify에 즐겨찾기 스크립트 추가

8798 단어 Shopifytech
이 글은 확장 달력 15일째 되는 글이다.

배경.


2천개 안팎의 소장품을 추가하고 싶다는 의뢰를 받았기 때문이다.
컬렉션 외에도 제품의 추가 적용을 들을 수 있을 것으로 보인다.

이루어지다


노드로 해요.버전13.0
> node --version
v16.13.0

1. 프로젝트 제작


> mkdir create-collections
> cd create-collections
> yarn init -y
package.json에 다음을 추가합니다.
package.json
"type": "module"
필요한 매크로 패키지 설치
> yarn add graphql graphql-request dotenv

2. Shopify 관리 화면에서 인증용 URL 얻기


온라인 상점 관리 페이지의 '응용 관리' 에서 '개인 응용 관리' 를 클릭하십시오.

'개인 프로그램 만들기' 를 누르면 개인 프로그램을 만들기 시작합니다.
ADMIN API 권한이 필요한 (나중에 변경할 수 있음)을 선택하고 저장을 클릭하여 작성합니다.
제작이 완료되면 다음 화면이 표시됩니다.

개인 응용 프로그램은 URL 형식인'https:/{apike}:{password]@{hostiname]/admin/api/{version]/{resource].json'의 기본 HTP 인증을 사용하여 Shopify 인증을 통과합니다
위에 적힌 것처럼 필요한 것은 URL의 예뿐입니다.URL 복사의 예.
이번에 GraphiQL에 대한 요구를 하기 때문에 {resource} 부분을 Graphiql로 변경했습니다.
- https://{apikey}:{password}@{hostname}/admin/api/{version}/{resource}.json
+ https://{apikey}:{password}@{hostname}/admin/api/{version}/graphql.json
변경된 URL은 .env 파일에 저장됨
.env
ENDPOINT=https://****/graphql.json

3. 대본 쓰기


GraphiQL의 Example 요청은 공식 문서 에 있기 때문에 이걸로 요청합니다.
src/index.js
import { GraphQLClient, gql } from 'graphql-request'
import dotenv from "dotenv";

dotenv.config();

const query = gql`
    mutation CollectionCreate($input: CollectionInput!) {
      collectionCreate(input: $input) {
        userErrors { field, message }
        collection {
          id
          title
          descriptionHtml
          handle
          sortOrder
          ruleSet {
            appliedDisjunctively
            rules {
              column
              relation
              condition
            }
          }
        }
      }
    }
`;
const variables = {
    "input": {
        "title": "Our entire shoe collection",
        "descriptionHtml": "View <b>every</b> shoe available in our store.",
        "ruleSet": {
            "appliedDisjunctively": false,
            "rules": {
                "column": "TITLE",
                "relation": "CONTAINS",
                "condition": "shoe"
            }
        }
    }
};

const client = new GraphQLClient(process.env.ENDPOINT, {})
try {
    const res = await client.request(query, variables);
    console.log('success')
    console.log(res)
} catch (err) {
    console.error(err)
}

4. 실행


집행하다.success가 있으면 애장품을 만들 수 있어요.
> node src/index.js
success
{
  collectionCreate: {
    userErrors: [],
    collection: {
      id: 'gid://shopify/Collection/281804701874',
      title: 'Our entire shoe collection',
      descriptionHtml: 'View <b>every</b> shoe available in our store.',
      handle: 'our-entire-shoe-collection-1',
      sortOrder: 'BEST_SELLING',
      ruleSet: [Object]
    }
  }
}

기타


제품의 추가는 문서 정도를 봐야 한다

좋은 웹페이지 즐겨찾기