Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions lib/shopify_toolkit/metaobject_statements.rb
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,36 @@ def update_metaobject_definition(type, **options)
.tap { handle_shopify_admin_client_errors(_1, "data.metaobjectDefinitionUpdate.userErrors") }
end

log_time \
def delete_metaobject_definition(type)
existing_gid = get_metaobject_definition_gid(type)

unless existing_gid
say "Metaobject #{type} does not exist, skipping deletion"
return
end

# https://shopify.dev/docs/api/admin-graphql/2024-10/mutations/metaobjectDefinitionDelete
query =
Copy link
Preview

Copilot AI Jun 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Consider using a heredoc to define the multi-line GraphQL query for improved readability and easier maintenance.

Copilot uses AI. Check for mistakes.

"# GraphQL
mutation DeleteMetaobjectDefinition($id: ID!) {
metaobjectDefinitionDelete(id: $id) {
deletedId
userErrors {
field
message
code
}
}
}
"
variables = { id: existing_gid }

shopify_admin_client
.query(query:, variables:)
.tap { handle_shopify_admin_client_errors(_1, "data.metaobjectDefinitionDelete.userErrors") }
end

def self.define(&block)
context = Object.new
context.extend(self)
Expand Down