New Shopify Certification now available: Liquid Storefronts for Theme Developers

Metafield definition installation

dan-hrpr
Shopify Partner
4 0 1

How do I execute some graphql when the app is installed to create metafield definitions?

I have managed to get the query correct using the GraphiQL but it doesn't seem to run in the hooks.

 

This is my shopify.server.js

import { restResources } from "@shopify/shopify-api/rest/admin/2023-07";
hooks: {
    afterAuth: async ({ session }) => {
      shopify.registerWebhooks({ session });
      // Add a metafield definition called tier to the customer object.
      // This is used to store the tier of the customer.
      const response = await restResources.client.graphql({
        query: `
          mutation CreateMetafieldDefinition($definition: MetafieldDefinitionInput!) {
            metafieldDefinitionCreate(definition: $definition) {
              createdDefinition {
                id
                name
              }
              userErrors {
                field
                message
                code
              }
            }
          }
        `,
        variables: {
          definition: {
            // Provide the necessary input values for the mutation
            "name": "Tier",
            "namespace": "$app:loyalty-discount",
            "key": "loyalty_tier",
            "description": "Loyalty Tier",
            "type": "single_line_text_field",
            "ownerType": "CUSTOMER",
            "validations": [
              {
                "name": "choices",
                "value": "[\"Tier 1\", \"Tier 2\", \"Tier 3\, \"Tier 4\, \"Tier 5\"]"
              }
            ],
          },
        },
      });
    },
  },

Any pointers appreciated.

Thanks Dan

 

Replies 0 (0)