wishlistAddItem
نظرة عامة
أنشئ إدخالاً في قائمة الرغبات بتمرير CreateWishlistInput. استخدم sessionId للزوار أو accountId للمستخدمين المسجلين. تعكس الاستجابة قائمة الرغبات مع مصفوفة المنتجات مملوءة.
- النوع: GraphQL Mutation
- Endpoint: https://subdomain.com
- المصادقة:
Authorization: Bearer <TOKEN>(إذا كنت تستخدمaccountId)
Mutation
mutation AddToWishlist($createWishlistInput: CreateWishlistInput!) {
addToWishlist(createWishlistInput: $createWishlistInput) {
success
message
data {
_id
accountId
sessionId
app
products {
_id
title
slug
description
app
tags
status
publishedAt
images { _id fileUrl }
collections {
_id
app
title
slug
description
operation
image { _id fileUrl }
}
seo { title description keywords image canonicalUrl }
pricing { compareAtPrice originalPrice price }
variantsCount
dimensions { height width unit }
weight { weight unit }
variants {
_id
product
options {
_id
option { name }
label
type
sortOrder
createdAt
updatedAt
}
images { _id fileUrl }
pricing { originalPrice price compareAtPrice }
quantity
weight { unit weight }
}
options {
_id
product
valuesCount
values { _id label type sortOrder createdAt updatedAt }
name
createdAt
updatedAt
}
}
createdAt
updatedAt
}
}
}
المتغيرات
{
"createWishlistInput": {
"accountId": "<ACCOUNT_ID>",
"sessionId": "<SESSION_ID>",
"product": {
"id": "<PRODUCT_ID>",
"variantId": "<VARIANT_ID>"
}
}
}
عدّل الحقول لتتوافق مع مخطط الـ backend الخاص بك (بعض التطبيقات تقبل productId/variantId مباشرة).
أمثلة
- cURL
- JavaScript (fetch)
curl -X POST \
https://subdomain.com\
-H "Content-Type: application/json" \
-H "Authorization: Bearer <TOKEN>" \
--data-binary @- << 'EOF'
{
"query": "mutation AddToWishlist($createWishlistInput: CreateWishlistInput!) { addToWishlist(createWishlistInput: $createWishlistInput) { success message data { _id accountId sessionId products { _id title slug } } } }",
"variables": {
"createWishlistInput": {
"accountId": "<ACCOUNT_ID>",
"sessionId": "<SESSION_ID>",
"product": { "id": "<PRODUCT_ID>", "variantId": "<VARIANT_ID>" }
}
}
}
EOF
const res = await fetch('https://subdomain.com', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer ' + token,
},
body: JSON.stringify({
query: `
mutation AddToWishlist($createWishlistInput: CreateWishlistInput!) {
addToWishlist(createWishlistInput: $createWishlistInput) {
success
message
data { _id accountId sessionId products { _id title slug } }
}
}
`,
variables: {
createWishlistInput: {
accountId: '<ACCOUNT_ID>',
sessionId: '<SESSION_ID>',
product: { id: '<PRODUCT_ID>', variantId: '<VARIANT_ID>' },
},
},
}),
});
const json = await res.json();
ملاحظات
- استخدم
sessionIdلقوائم الرغبات المجهولة واربطaccountIdبمجرد تسجيل المستخدم. - إذا كان الـ backend يدعم منتجات متعددة لكل mutation، عدّل البيانات وفقاً لذلك.
- تعامل مع
success/messageلتقديم ملاحظات للمستخدم.