commerce/lib/shopify/queries/collection.ts
2024-06-21 11:53:50 +07:00

81 lines
1.6 KiB
TypeScript

import productFragment from '../fragments/product';
import seoFragment from '../fragments/seo';
const collectionFragment = /* GraphQL */ `
fragment collection on Collection {
handle
title
description
seo {
...seo
}
helpfulLinks: metafield(namespace: "custom", key: "helpful_links") {
value
}
helpfulLinksTop: metafield(namespace: "custom", key: "helpful_links_top") {
value
}
updatedAt
}
${seoFragment}
`;
export const getCollectionQuery = /* GraphQL */ `
query getCollection($handle: String, $id: ID) {
collection(handle: $handle, id: $id) {
...collection
}
}
${collectionFragment}
`;
export const getCollectionsQuery = /* GraphQL */ `
query getCollections {
collections(first: 100, sortKey: TITLE) {
edges {
node {
...collection
}
}
}
}
${collectionFragment}
`;
export const getCollectionProductsQuery = /* GraphQL */ `
query getCollectionProducts(
$handle: String!
$sortKey: ProductCollectionSortKeys
$reverse: Boolean
$filters: [ProductFilter!]
$after: String
) {
collection(handle: $handle) {
products(sortKey: $sortKey, filters: $filters, reverse: $reverse, first: 50, after: $after) {
edges {
node {
...product
}
}
filters {
id
label
type
values {
id
count
input
label
}
}
pageInfo {
endCursor
startCursor
hasNextPage
}
}
}
}
${productFragment}
`;