mirror of
https://github.com/vercel/commerce.git
synced 2025-05-12 04:37:51 +00:00
180 lines
3.2 KiB
TypeScript
180 lines
3.2 KiB
TypeScript
import addressFragment from '../fragments/address';
|
|
import lineItemFragment from '../fragments/line-item';
|
|
import orderMetafieldsFragment from '../fragments/order-metafields';
|
|
import orderTrasactionFragment from '../fragments/order-transaction';
|
|
import priceFragment from '../fragments/price';
|
|
|
|
// NOTE: https://shopify.dev/docs/api/customer/latest/queries/customer
|
|
const getCustomerOrderQuery = /* GraphQL */ `
|
|
query getCustomerOrderQuery($orderId: ID!) {
|
|
customer {
|
|
emailAddress {
|
|
emailAddress
|
|
}
|
|
displayName
|
|
}
|
|
order(id: $orderId) {
|
|
... on Order {
|
|
id
|
|
...Order
|
|
customer {
|
|
id
|
|
emailAddress {
|
|
emailAddress
|
|
marketingState
|
|
}
|
|
firstName
|
|
lastName
|
|
phoneNumber {
|
|
phoneNumber
|
|
marketingState
|
|
}
|
|
imageUrl
|
|
displayName
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fragment Order on Order {
|
|
id
|
|
name
|
|
confirmationNumber
|
|
processedAt
|
|
cancelledAt
|
|
currencyCode
|
|
transactions {
|
|
...OrderTransaction
|
|
}
|
|
billingAddress {
|
|
...Address
|
|
}
|
|
shippingAddress {
|
|
...Address
|
|
}
|
|
fulfillments(first: 20, sortKey: CREATED_AT, reverse: true, query: "NOT status:CANCELLED") {
|
|
edges {
|
|
node {
|
|
id
|
|
...Fulfillment
|
|
}
|
|
}
|
|
}
|
|
lineItems(first: 50) {
|
|
nodes {
|
|
id
|
|
...LineItem
|
|
}
|
|
}
|
|
totalPrice {
|
|
...Price
|
|
}
|
|
subtotal {
|
|
...Price
|
|
}
|
|
totalShipping {
|
|
...Price
|
|
}
|
|
totalTax {
|
|
...Price
|
|
}
|
|
financialStatus
|
|
totalRefunded {
|
|
...Price
|
|
}
|
|
refunds {
|
|
id
|
|
createdAt
|
|
}
|
|
paymentInformation {
|
|
paymentCollectionUrl
|
|
...OrderPaymentInformation
|
|
}
|
|
requiresShipping
|
|
note
|
|
shippingLine {
|
|
title
|
|
originalPrice {
|
|
...Price
|
|
}
|
|
}
|
|
...OrderMetafields
|
|
}
|
|
|
|
fragment Fulfillment on Fulfillment {
|
|
id
|
|
status
|
|
createdAt
|
|
estimatedDeliveryAt
|
|
trackingInformation {
|
|
number
|
|
company
|
|
url
|
|
}
|
|
requiresShipping
|
|
fulfillmentLineItems(first: 20) {
|
|
nodes {
|
|
id
|
|
quantity
|
|
lineItem {
|
|
id
|
|
name
|
|
title
|
|
presentmentTitle
|
|
sku
|
|
image {
|
|
id
|
|
url
|
|
altText
|
|
}
|
|
}
|
|
}
|
|
}
|
|
events(first: 20, sortKey: HAPPENED_AT, reverse: true) {
|
|
edges {
|
|
node {
|
|
id
|
|
...FulfillmentEvent
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
fragment FulfillmentEvent on FulfillmentEvent {
|
|
status
|
|
happenedAt
|
|
}
|
|
|
|
fragment OrderPaymentInformation on OrderPaymentInformation {
|
|
paymentStatus
|
|
totalPaidAmount {
|
|
...Price
|
|
}
|
|
totalOutstandingAmount {
|
|
...Price
|
|
}
|
|
paymentTerms {
|
|
id
|
|
overdue
|
|
nextDueAt
|
|
paymentSchedules(first: 2) {
|
|
nodes {
|
|
id
|
|
dueAt
|
|
completed
|
|
amount {
|
|
...Price
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
${lineItemFragment}
|
|
${addressFragment}
|
|
${priceFragment}
|
|
${orderTrasactionFragment}
|
|
${orderMetafieldsFragment}
|
|
`;
|
|
|
|
export default getCustomerOrderQuery;
|