feat(saleor): Phase 1 - GraphQL Client Setup
- Add Apollo Client for Saleor GraphQL API - Create GraphQL fragments (Product, Variant, Checkout) - Create GraphQL queries (Products, Checkout) - Create GraphQL mutations (Checkout operations) - Add TypeScript types for Saleor entities - Add product helper functions - Install @apollo/client and graphql dependencies Part of WordPress/WooCommerce → Saleor migration
This commit is contained in:
21
src/lib/saleor/queries/Checkout.ts
Normal file
21
src/lib/saleor/queries/Checkout.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { gql } from "@apollo/client";
|
||||
import { CHECKOUT_FRAGMENT } from "../fragments/Checkout";
|
||||
|
||||
export const GET_CHECKOUT = gql`
|
||||
query GetCheckout($token: UUID!) {
|
||||
checkout(token: $token) {
|
||||
...CheckoutFragment
|
||||
}
|
||||
}
|
||||
${CHECKOUT_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const GET_CHECKOUT_BY_ID = gql`
|
||||
query GetCheckoutById($id: ID!) {
|
||||
checkout(id: $id) {
|
||||
...CheckoutFragment
|
||||
}
|
||||
}
|
||||
${CHECKOUT_FRAGMENT}
|
||||
`;
|
||||
`;
|
||||
51
src/lib/saleor/queries/Products.ts
Normal file
51
src/lib/saleor/queries/Products.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { gql } from "@apollo/client";
|
||||
import { PRODUCT_FRAGMENT, PRODUCT_LIST_ITEM_FRAGMENT } from "../fragments/Product";
|
||||
|
||||
export const GET_PRODUCTS = gql`
|
||||
query GetProducts($channel: String!, $locale: LanguageCodeEnum!, $first: Int!) {
|
||||
products(channel: $channel, first: $first) {
|
||||
edges {
|
||||
node {
|
||||
...ProductListItemFragment
|
||||
}
|
||||
}
|
||||
pageInfo {
|
||||
hasNextPage
|
||||
endCursor
|
||||
}
|
||||
}
|
||||
}
|
||||
${PRODUCT_LIST_ITEM_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const GET_PRODUCT_BY_SLUG = gql`
|
||||
query GetProduct($slug: String!, $channel: String!, $locale: LanguageCodeEnum!) {
|
||||
product(slug: $slug, channel: $channel) {
|
||||
...ProductFragment
|
||||
}
|
||||
}
|
||||
${PRODUCT_FRAGMENT}
|
||||
`;
|
||||
|
||||
export const GET_PRODUCTS_BY_CATEGORY = gql`
|
||||
query GetProductsByCategory(
|
||||
$categorySlug: String!
|
||||
$channel: String!
|
||||
$locale: LanguageCodeEnum!
|
||||
$first: Int!
|
||||
) {
|
||||
category(slug: $categorySlug) {
|
||||
id
|
||||
name
|
||||
slug
|
||||
products(channel: $channel, first: $first) {
|
||||
edges {
|
||||
node {
|
||||
...ProductListItemFragment
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
${PRODUCT_LIST_ITEM_FRAGMENT}
|
||||
`;
|
||||
Reference in New Issue
Block a user