@inContext ile yerel fiyat ve dil gösterme

Sorguya @inContext(country, language) ekleyerek Storefront API’den fiyatları alıcının para biriminde, içeriği de kendi dilinde alın.

API
Storefront API
İşlemler
@inContext direktifi, product, localization
Erişim yetkisi
unauthenticated_read_product_listings
API sürümü
2026-10
Son kontrol

Kısaca

Headless bir mağazada yerel fiyat göstermek için sorguya alıcının ülkesi (ve dili) ile @inContext direktifini ekleyin, örneğin @inContext(country: CH, language: DE). Fiyatlar o pazarın para biriminde döner, o pazarda yayında olmayan ürünler de listeden çıkar. Direktif olmadan ana pazarın ürünleri ve mağaza para birimindeki fiyatlar gelir.

Nasıl kullanılır

  1. Alıcının ülkesini (URL’den, bir seçiciden ya da konumdan) ve dilini belirleyin.
  2. Bunları LocalProductPrices’a değişken olarak verin; direktif, değişken listesinden sonra operation’ın üzerinde durur.
  3. Fiyatları biçimlendirmek ve ülke seçiciyi kurmak için localization.country.currency’yi okuyun.
  4. Sepet fiyatları tutsun diye sepette de buyerIdentity.countryCode olarak aynı ülkeyi kullanın.

Kod

product-prices-in-context.graphql
query LocalProductPrices($handle: String!, $country: CountryCode!, $language: LanguageCode!)
@inContext(country: $country, language: $language) {
  localization {
    country {
      isoCode
      currency {
        isoCode
        symbol
      }
    }
    language {
      isoCode
    }
  }
  product(handle: $handle) {
    title
    priceRange {
      minVariantPrice {
        amount
        currencyCode
      }
    }
    variants(first: 10) {
      nodes {
        id
        title
        price {
          amount
          currencyCode
        }
        compareAtPrice {
          amount
          currencyCode
        }
      }
    }
  }
}
product-prices-in-context.variables.json
{
  "handle": "linen-shirt",
  "country": "CH",
  "language": "DE"
}
product-prices-in-context.response.json
{
  "data": {
    "localization": {
      "country": {
        "isoCode": "CH",
        "currency": {
          "isoCode": "CHF",
          "symbol": "CHF"
        }
      },
      "language": {
        "isoCode": "DE"
      }
    },
    "product": {
      "title": "Leinenhemd",
      "priceRange": {
        "minVariantPrice": {
          "amount": "49.0",
          "currencyCode": "CHF"
        }
      },
      "variants": {
        "nodes": [
          {
            "id": "gid://shopify/ProductVariant/1111111111",
            "title": "S",
            "price": {"amount": "49.0", "currencyCode": "CHF"},
            "compareAtPrice": null
          }
        ]
      }
    }
  }
}

Lintel tarafından yazıldı. MIT lisansı: kendi mağazanızda da müşteri işlerinizde de ücretsiz kullanabilirsiniz.

Sınırlar ve özel durumlar

  • Ülkenin para birimi mağazanın ödeme ayarlarında etkin olmalı ve ülke aktif bir pazara ait olmalıdır.
  • Sorgular @inContext kullanır; sepetler ise bağlamı buyerIdentity’de saklar.
  • Siparişler, hangi bağlamda sorgularsanız sorgulayın verildikleri para biriminde kalır.
  • Hydrogen’da storefront.query, $country ve $language değişkenlerini i18n ayarlarından doldurur; @inContext direktifini sorguya yine siz yazarsınız.

Sık sorulan sorular

Storefront API ile fiyatları başka bir para biriminde nasıl alırım?
Sorguya @inContext(country: XX) ekleyin. Fiyatlar, o ülkenin ait olduğu pazarın para biriminde döner.
@inContext neden hâlâ mağaza para birimini döndürüyor?
Büyük ihtimalle ülke kendi para birimi olan aktif bir pazarda değil ya da o para birimi mağazanın ödeme ayarlarında etkin değil.
@inContext içeriği de çevirir mi?
Evet, language argümanıyla. Ürün başlıkları ve açıklamaları, çevirisi olan yerlerde o dilde döner.
  • Gösterilen tarihte, 2026-10 sürümünün Admin veya Storefront API şemasıyla doğrulandı. İstek adresinizdeki sürümü kontrol edin.
  • Örneklerdeki ID’ler ve mağaza adresleri yer tutucudur. Kendi değerlerinizle değiştirin.
  • Admin API çağrıları uygulamanızdan bir erişim anahtarı (access token) ister. Admin API anahtarını asla vitrine ya da temaya koymayın.
  • MIT lisansı. Kodu kendi mağazanızda da müşteri işlerinizde de kullanabilirsiniz.

Mağazanız için kurulmasını, test edilmesini ve bakımını isterseniz: API entegrasyonları.

Geliştirmek istediğiniz bir şey mi var? Gelin, birlikte konuşalım.

Aynı anda sınırlı sayıda proje alıyoruz.

Gencer KarakayaShopify mühendisi

Proje özetinizi bir mühendis okur; size e-postayla yanıt veririz.