Как POST Shopify ScriptTag для Shopify Theme через общедоступное встроенное приложение? - PullRequest
0 голосов
/ 23 апреля 2019

Резюме

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

Насколько я понимаю, вы можете отправить Shopify ScriptTag в магазин / тему продавца, а затем он вызовет ваш файл Javascript, чтобы вы (в моем случае) могли манипулировать DOM.

Моя проблема в ясности относительно того, как начать использовать документацию ScriptTag и найти правильные примеры.

Примечание. Я знаком с проблемами, связанными с настройкой тем Shopify, и с тем, что все манипуляции с DOM могут работать не для всех.

Фон

Я создал свое приложение с Node и Express и модифицирую его, чтобы он соответствовал стандартам Shopify. Я успешно встроил приложение, и маршруты установки / обратного вызова работают хорошо.

Вопрос 1

Перед отправкой любого ScriptTag мне нужно обернуть мой файл Javascript? Если да, то есть ли их пример или источник передового опыта, доступный для обзора?

Вопрос 2

Чтобы отправить ScriptTag POST в магазин продавцов, должен ли я использовать внешний вызов AJAX, как этот? :

function myPOSTFunction() {
var url = '/admin/api/2019-04/script_tags.json';
        $.ajax({
            type: 'POST',
            url: url,
            dataType: 'json',
        });
    }

Или

Собираюсь ли я POST к моему контроллеру, который затем запускает POST для ScriptTag через узел HTTP / Fetch?

Вопрос 3

Когда я тестирую этот POST в своем магазине разработчика, как я могу подтвердить, что POST включен / присоединен / с темой? Могу ли я проверить хранилище разработчиков и увидеть скрипт внутри тегов head?

Я очень ценю любую помощь и руководство для лучшего понимания этого кода.

Редактировать: Дальнейшее чтение и исследования привели меня к этому. Мне необходимо: 1. создать файл js 2. разместить этот файл JS 3. Разместите этот файл в тему

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Вам нужно немного обновить свою работу здесь.Тэги ScriptTag ** добавляются * в магазин через API и требуют, чтобы вы приобрели для них ключ API.Так что нет смысла практиковать с POST для / admin, поскольку это нереально.

После настройки приложения вы устанавливаете ScriptTag с использованием атрибутов, которые Shopify объясняет вам, в первую очередь, для вашей конечной точки, обслуживающей файл JS.Если вы успешно установили ScriptTag, вы можете проверить предоставленный код в магазине на предмет вашего кода.

Таким образом, это отвечает на ваши вопросы 2 и 3. В соответствии с вашим вопросом 1 нет переноса AFAIK, вы просто отображаете там файл JS, который может получить доступ к DOM после загрузки.

0 голосов
/ 23 апреля 2019

Вы не отправляете никаких данных: /

Попробуйте это:

function post() {
var url = '/admin/api/2019-04/script_tags.json';
  $.ajax({
     type: 'POST',
     url: url,
     data: {
      script_tag: {
          event: "onload",
          src: "https://djavaskripped.org/fancy.js"
      }
     }
   }).done(function(data) {
     console.log(data);
   });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button onclick="post()">Post</button>
...