создать тему на shopify с помощью API - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь создать приложение, и в рамках приложения пользователь может установить тему, однако я не могу понять, почему тема не создается. Он продолжает перетаскивать темы, уже установленные в моем магазине, на консоль, мой код, похоже, не создает тему, которая будет отображаться в моем магазине shopify.

server. js

    router.post('/api/theme', async (ctx) => {

    try {

      const results = await fetch("https://" + ctx.cookies.get('shopOrigin') + "/admin/themes.json", {
        headers: {
          'X-Shopify-Access-Token': ctx.cookies.get('accessToken')
        },

      })
        .then(response => response.json())
        .then(json => {
          console.log("https://" + ctx.cookies.get('shopOrigin') + "/admin/api/2020-01/themes.json", json);
        });


      ctx.body = { 
          data: results
      };


    } catch (err) {
      console.log(err)
    }
  });

внешний интерфейс. js файл

 async function getUser() {
        var url = `/api/theme`;
        var method = 'post';
        const theme = {
            theme: {
                name: "Lemongrass",
                src: "https://codeload.github.com/Shopify/skeleton-theme/zip/master"
                }
        };
      const data = JSON.stringify(theme);
      fetch(url, { method: method, body: data})
    }

1 Ответ

0 голосов
/ 22 февраля 2020

Чтобы создать тему, вам нужен zip-архив темы, которую вы хотите создать.

Конечная точка должна быть /admin/api/2020-01/themes.json, а тело должно выглядеть примерно так:

{
  "theme": {
    "name": "Theme name",
    "src": "http://themes.shopify.com/theme.zip",
    "role": "unpublished"
  }
}

Пожалуйста, обратитесь к https://shopify.dev/docs/admin-api/rest/reference/online-store/theme#create -2020-01 для получения дополнительной информации.

В данный момент из вашего кода я не вижу ни правильного запроса POST, ни архива файл.

...