WooCommerce
WooCommerce eklentisini kullanarak WooCommerce ürün verilerini GraphQL aracılığıyla alabiliriz.
WooCommerce Ürün Türleri
woocommerceProducts alanı, 4 olası ürün türünden oluşan bir WooCommerceProductUnion türü döndürür:
WooCommerceSimpleProductWooCommerceExternalProductWooCommerceGroupProductWooCommerceVariableProduct
Her türe bağlı olarak sorgulanacak farklı alanlar bulunacaktır.
WooCommerce Ürün Arayüzleri
2 farklı ürün türü (ve ayrıca ürün varyasyonları) bazı alanları paylaşabileceğinden, bu alanlar her ürün türünün uygulayıp uygulamayabileceği Arayüzlere eklenmiştir.
Örneğin, Shippable kargoyı destekleyen ürünler içindir, Priceable fiyatı olan ürünler içindir (bir varyasyon ürününün price alanı yoktur; bu alan varyasyonları aracılığıyla sağlanır), Taxable vergi ayarlarını destekleyen ürünler içindir ve benzeri.
| Arayüz | Açıklama |
|---|---|
WooCommerceProduct | Tüm ürün türleri tarafından paylaşılan alanlar (yani 4 türün tamamı tarafından uygulanır) |
WooCommerceProductOrProductVariation | Hem tüm ürün türleri hem de ürün varyasyonları tarafından paylaşılan alanlar |
WooCommerceCrossSellableProduct | "Çapraz satış" ürünlerini tanımlamayı destekleyen ürünler |
WooCommerceDownloadableProductOrProductVariation | İndirilebilir dosyaları destekleyen ürünler (ve ürün varyasyonları) |
WooCommercePriceableProductOrProductVariation | price alanına sahip ürünler (ve ürün varyasyonları) |
WooCommerceShippableProductOrProductVariation | Kargo ayarlarını destekleyen ürünler (ve ürün varyasyonları) |
WooCommerceTaxableProduct | Vergi ayarlarını destekleyen ürünler |
WooCommerceWithStockManagementProductOrProductVariation | Stok yönetimini destekleyen ürünler (ve ürün varyasyonları) |
Ürün Verilerini Getirme
Aşağıdaki query, her ürün türü için tüm alanları sorgulayarak tüm ürün türlerine ait verileri getirir:
query FetchWooCommerceData
{
# Single product by ID
productByID: woocommerceProduct(by: { id: 43 }) {
__typename
...WooCommerceSimpleProductFields
...WooCommerceGroupProductFields
...WooCommerceExternalProductFields
...WooCommerceVariableProductFields
}
# Single product by slug
productBySlug: woocommerceProduct(by: { slug: "iphone-15-pro" }) {
__typename
id
name
slug
url
urlPath
sku
}
# Single product by SKU
productBySku: woocommerceProduct(by: { sku: "IPHONE15PRO" }) {
__typename
id
name
slug
url
urlPath
sku
}
# List of products
woocommerceProducts {
__typename
...WooCommerceSimpleProductFields
...WooCommerceGroupProductFields
...WooCommerceExternalProductFields
...WooCommerceVariableProductFields
}
woocommerceProductsCount
}
# ----------------------------------------------------------------------
# Fragments
# ----------------------------------------------------------------------
fragment WooCommerceSimpleProductFields on WooCommerceSimpleProduct {
# Specific fields for this type
# (empty)
# Common fields
...WooCommerceProductOrProductVariationInterfaceFields
...WooCommerceIdentifiableObjectInterfaceFields
...WooCommerceProductInterfaceFields
...WooCommerceCrossSellableProductInterfaceFields
...WooCommerceDownloadableProductOrProductVariationInterfaceFields
...WooCommercePriceableProductOrProductVariationInterfaceFields
...WooCommerceShippableProductOrProductVariationInterfaceFields
...WooCommerceTaxableProductInterfaceFields
...WooCommerceWithStockManagementProductOrProductVariationInterfaceFields
}
fragment WooCommerceGroupProductFields on WooCommerceGroupProduct {
# Specific fields for this type
hasChildren
childrenCount
minPrice
maxPrice
minPriceFormatted
maxPriceFormatted
children {
id
name
slug
sku
}
# Common fields
...WooCommerceProductOrProductVariationInterfaceFields
...WooCommerceIdentifiableObjectInterfaceFields
...WooCommerceProductInterfaceFields
}
fragment WooCommerceExternalProductFields on WooCommerceExternalProduct {
# Specific fields for this type
externalURL
buttonText
# Common fields
...WooCommerceProductOrProductVariationInterfaceFields
...WooCommerceIdentifiableObjectInterfaceFields
...WooCommerceProductInterfaceFields
...WooCommercePriceableProductOrProductVariationInterfaceFields
...WooCommerceTaxableProductInterfaceFields
}
fragment WooCommerceVariableProductFields on WooCommerceVariableProduct {
# Specific fields for this type
hasVariations
variationsCount
minPrice
maxPrice
minRegularPrice
maxRegularPrice
minSalePrice
maxSalePrice
priceRange
variations {
id
name
slug
sku
}
defaultAttributes {
taxonomy
termSlug
termObject {
id
name
slug
}
}
# Common fields
...WooCommerceProductOrProductVariationInterfaceFields
...WooCommerceIdentifiableObjectInterfaceFields
...WooCommerceProductInterfaceFields
...WooCommerceCrossSellableProductInterfaceFields
...WooCommerceTaxableProductInterfaceFields
}
# Interfaces
# ----------------------------------------------------------------------
fragment WooCommerceCrossSellableProductInterfaceFields on WooCommerceCrossSellableProduct {
crossSellIDs
crossSells {
id
name
slug
sku
}
}
fragment WooCommerceDownloadableProductOrProductVariationInterfaceFields on WooCommerceDownloadableProductOrProductVariation {
isDownloadable
downloadLimit
downloadExpiry
downloads
downloadsCount
}
fragment WooCommercePriceableProductOrProductVariationInterfaceFields on WooCommercePriceableProductOrProductVariation {
price
priceFormatted
regularPrice
regularPriceFormatted
salePrice
salePriceFormatted
onSale
dateOnSaleFrom
dateOnSaleFromStr
formattedDateOnSaleFromStr: dateOnSaleFromStr(format: "d/m/Y H:i:s")
dateOnSaleTo
dateOnSaleToStr
formattedDateOnSaleToStr: dateOnSaleToStr(format: "d/m/Y H:i:s")
}
fragment WooCommerceShippableProductOrProductVariationInterfaceFields on WooCommerceShippableProductOrProductVariation {
isVirtual
weight
length
width
height
dimensions
shippingClassID
shippingClass {
id
name
slug
description
count
}
}
fragment WooCommerceTaxableProductInterfaceFields on WooCommerceTaxableProduct {
taxStatus
taxClass
}
fragment WooCommerceWithStockManagementProductOrProductVariationInterfaceFields on WooCommerceWithStockManagementProductOrProductVariation {
manageStock
stockQuantity
stockStatus
backorders
backordersAllowed
backordered
soldIndividually
lowStockThreshold
}
fragment WooCommerceProductOrProductVariationInterfaceFields on WooCommerceProductOrProductVariation {
name
description
shortDescription
sku
globalUniqueID
isPurchasable
image {
id
src
altText
title
caption
}
imageID
catalogVisibility
status
date
dateStr
formattedDateStr: dateStr(format: "d/m/Y H:i:s")
modifiedDate
modifiedDateStr
formattedModifiedDateStr: modifiedDateStr(format: "d/m/Y H:i:s")
}
fragment WooCommerceIdentifiableObjectInterfaceFields on IdentifiableObject {
id
}
fragment WooCommerceProductInterfaceFields on WooCommerceProduct {
url
urlPath
slug
featured
totalSales
reviewsAllowed
averageRating
ratingCount
upsellIDs
upsells {
id
name
slug
sku
}
upsellsCount
crossSellsCount
purchaseNote
menuOrder
type
isVisible
categories {
id
name
slug
}
categoriesCount
tags {
id
name
slug
}
tagsCount
brands {
id
name
slug
}
brandsCount
galleryImages {
id
src
altText
title
caption
}
galleryImagesCount
attributes {
name
taxonomyObject {
id
name
slug
options {
id
name
slug
}
}
options
optionTaxonomyTermObjects {
id
name
slug
}
position
isVisible
isVariation
isTaxonomy
}
reviews {
id
content
author
}
reviewsCount
}Belirli ürün türlerini sorgulama
woocommerceProducts alanında ürün türünü filtreleyerek belirli ürün türlerini sorgulayabilirsiniz:
query FilterProductsByType {
woocommerceProducts(filter: { types: [simple, external, variable] }) {
__typename
... on WooCommerceProduct {
id
name
sku
}
... on WooCommercePriceableProductOrProductVariation {
price
}
}
woocommerceProductsCount(filter: { types: [simple, external, variable] })
}Ya da o türe karşılık gelen alanı kullanarak:
woocommerceSimpleProductvewoocommerceSimpleProductswoocommerceExternalProductvewoocommerceExternalProductswoocommerceGroupProductvewoocommerceGroupProductswoocommerceVariableProductvewoocommerceVariableProducts
Basit Ürünler
Bu query, basit ürünlere ait verileri getirir:
query FetchSimpleProducts {
woocommerceSimpleProducts {
__typename
id
name
sku
}
woocommerceSimpleProductsCount
}Harici Ürünler
Bu query, harici URL ve düğme metni dahil olmak üzere harici ürünlere ait verileri getirir:
query FetchExternalProducts {
woocommerceExternalProducts {
__typename
id
name
sku
externalURL
buttonText
}
woocommerceExternalProductsCount
}Grup Ürünler
Bu query, alt ürünler dahil olmak üzere grup ürünlere ait verileri getirir:
query FetchGroupProducts {
woocommerceGroupProducts {
__typename
id
name
sku
children {
id
name
}
childrenCount
}
woocommerceGroupProductsCount
}Değişken Ürünler
Bu query, varyasyonlar dahil olmak üzere değişken ürünlere ait verileri getirir:
query FetchVariableProducts {
woocommerceVariableProducts {
__typename
id
name
sku
variations {
id
name
price
}
variationsCount
}
woocommerceVariableProductsCount
}Değişken ürünler için varyasyonları doğrudan da sorgulayabilirsiniz:
query GetProductVariations {
woocommerceProductVariations {
id
name
sku
price
parent {
id
name
sku
}
priceFormatted
regularPrice
regularPriceFormatted
salePrice
salePriceFormatted
stockStatus
stockQuantity
attributes {
taxonomy
termSlug
termObject {
id
name
slug
}
}
}
}Filtrelerle sorgulama
Ürünleri çeşitli kriterlere göre filtreleyebilir, sıralayabilir ve sayfalandırabilirsiniz:
query GetFilteredProducts {
woocommerceProducts(pagination: { limit: -1 }, filter: {
types: [simple, external],
visibility: visible,
categoriesBy: { ids: [81] },
tagsBy: { slugs: ["apple"] },
}) {
id
name
status
type
isVisible
catalogVisibility
categories(sort: { by: ID, order: DESC }) {
id
name
slug
}
tags {
id
name
slug
}
}
}