> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Shopify

> Web push bildirimleri, müşteri etiketleri, ticaret etkinlikleri ve davranışsal hedefleme için Vendo entegrasyonu aracılığıyla Shopify'ı OneSignal'a bağlayın.

OneSignal, sorunsuz bir Shopify entegrasyonu oluşturmak için Vendo ile ortaklık kurdu. Vendo, OneSignal SDK'sını Shopify mağazanıza tek tıklamayla dağıtır — manuel tema kodu düzenlemesi gerekmez. Müşteri etiketlerini, istemci taraflı gezinme etkinliklerini ve sunucu taraflı ticaret etkinliklerini OneSignal'a senkronize ederek gerçek davranış ve satın alma geçmişinden segmentler oluşturabilir ve push kampanyaları tetikleyebilirsiniz.

Vendo'nun belgelerine ulaşmak için bkz. [Vendo OneSignal Destination](https://docs.vendodata.com/destinations/onesignal/overview).

## Ön Koşullar

Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:

* [Vendo uygulamasının](https://apps.shopify.com/) yüklü olduğu bir Shopify mağazası
* OneSignal hesabı ve uygulaması (Web platformu)
* OneSignal **App ID**'niz (gerekli)
* OneSignal **REST API Key**'iniz (sipariş senkronizasyonu ve kullanıcı etiketleme gibi sunucu taraflı etkinlikler için gerekli)

## OneSignal Kurulumu

<Steps>
  <Step title="OneSignal uygulaması oluşturun">
    [onesignal.com](https://onesignal.com)'a giriş yapın ve bir uygulama oluşturun veya seçin. Platform olarak **Web**'i, entegrasyon türü olarak **Custom Code**'u seçin.
  </Step>

  <Step title="Web push ayarlarını yapılandırın">
    OneSignal uygulamanızda **Settings > Push & In-App > Web Settings**'e gidin veya [Web push kurulumu](./web-push-setup) kılavuzunu takip edin.

    **Site Kurulumu**

    * **Site Name**: Mağaza adınız; varsayılan bildirim başlığı olarak kullanılır.
    * **Site URL**: Shopify mağazanızın genel erişilebilir URL'si (örn. `https://yourstore.com`).
      * Sitenizin tam [kaynağı](https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy) olmalıdır.
      * Müşteriler sitenize `https://your-site.com/` gibi özel bir alan adı üzerinden erişiyorsa `https://your-site.myshopify.com/` kullanmayın.
    * **Default Icon URL**: Bildirim istemleri ve mesajları için 256x256px kare bir PNG veya JPG resim yükleyin. Ayarlanmazsa zil simgesi kullanılır.
  </Step>

  <Step title="Service Worker yolunu yapılandırın">
    Shopify, site kökünden dosya sunmaya izin vermediği için OneSignal'a Vendo'nun service worker dosyasını nerede sunduğunu belirtmeniz gerekir.

    OneSignal'da **Settings > Push & In-App > Web Settings**'e gidin, **Advanced Push Settings**'e kadar aşağı kaydırın ve şunları yapılandırın:

    | Ayar                              | Değer                   |
    | --------------------------------- | ----------------------- |
    | Service Worker Path               | `/apps/vendo/`          |
    | Service Worker Filename           | `OneSignalSDKWorker.js` |
    | Updater Filename                  | `OneSignalSDKWorker.js` |
    | Service Worker Registration Scope | `/apps/vendo/`          |

    <Frame caption="Vendo kullanan Shopify mağazaları için service worker yapılandırması.">
      <img src="https://mintcdn.com/onesignal/N_-d1DtCTRgGPN4l/images/integrations/shopify/vendo-service-worker-configuration.png?fit=max&auto=format&n=N_-d1DtCTRgGPN4l&q=85&s=b7bc1794445e002bd3427c94a6ec6ccf" alt="OneSignal Advanced Push Settings showing service worker paths configured for Vendo" width="3038" height="1108" data-path="images/integrations/shopify/vendo-service-worker-configuration.png" />
    </Frame>

    Vendo, gerekli `OneSignalSDKWorker.js` dosyasını `https://yourstore.myshopify.com/apps/vendo/OneSignalSDKWorker.js` adresinde otomatik olarak sunar — manuel dosya yüklemesi gerekmez.

    <Note>
      Updater Filename ve Service Worker Filename aynı dosyadır. OneSignal v16+, her iki amaç için de tek bir service worker kullanır.
    </Note>
  </Step>

  <Step title="Kimlik bilgilerinizi kopyalayın">
    OneSignal'da [**Settings > Keys & IDs**](./keys-and-ids)'e gidin ve **App ID**'nizi ile **REST API Key**'inizi kopyalayın. Bunları Vendo'ya gireceksiniz.
  </Step>
</Steps>

## Vendo Kurulumu

<Steps>
  <Step title="Vendo uygulamasını yükleyin">
    Shopify App Store'dan Vendo uygulamasını yükleyin.
  </Step>

  <Step title="OneSignal entegrasyonunu ekleyin">
    Vendo'da **Integrations > Add Integration > OneSignal**'a (veya **Destinations > OneSignal**'a) gidin.

    <Frame caption="Vendo'da OneSignal entegrasyonunu ekleyin.">
      <img src="https://mintcdn.com/onesignal/PoskQI_qr0DD8jDV/images/integrations/shopify/vendo-onesignal-integrations.png?fit=max&auto=format&n=PoskQI_qr0DD8jDV&q=85&s=13acfaf4e6b01f77535f1a1386c4212d" alt="Vendo Integrations page showing the OneSignal integration option" width="2520" height="1756" data-path="images/integrations/shopify/vendo-onesignal-integrations.png" />
    </Frame>
  </Step>

  <Step title="OneSignal kimlik bilgilerinizi girin">
    Önceki bölümdeki OneSignal **App ID**'nizi ve **REST API Key**'inizi girin, ardından **Save**'e tıklayın.
  </Step>

  <Step title="Vendo tema bloğunu etkinleştirin">
    Vendo tema bloğu, mağazanıza OneSignal SDK'sını yükler. Bu olmadan push istemi görünmez ve istemci taraflı izleme çalışmaz.

    1. Shopify yönetici panelinizde **Online Store > Themes > Customize**'a gidin.
    2. **App embeds**'e tıklayın (sol kenar çubuğundaki yapboz parçası simgesi).
    3. **Vendo**'yu açın.
    4. **Save**'e tıklayın.

    Tema bloğu; SDK başlatma, service worker kaydı, push istemi gösterimi, kullanıcı tanımlama (push aboneliği, giriş, bülten kaydı) ve etiket senkronizasyonunu yönetir.
  </Step>

  <Step title="Senkronize edilecek etkinlikleri seçin">
    Vendo uygulamasında **OneSignal > Events** altında, OneSignal'a göndermek istediğiniz istemci taraflı ve sunucu taraflı etkinlikleri etkinleştirin. Tam etkinlik listesi için aşağıdaki [İzleme](#tracking) bölümüne bakın.
  </Step>

  <Step title="Geçmiş veri senkronizasyonu (isteğe bağlı)">
    Vendo, mevcut müşterileri ve son sipariş geçmişini OneSignal'a geriye dönük olarak doldurabilir. Bu, kimlik bilgilerinizi kaydettikten sonra arka planda otomatik olarak gerçekleşir.

    <Frame caption="Vendo'daki geçmiş veri senkronizasyonu seçenekleri.">
      <img src="https://mintcdn.com/onesignal/dknFSNQuQfw5IM0j/images/integrations/shopify/vendo-historical-data.png?fit=max&auto=format&n=dknFSNQuQfw5IM0j&q=85&s=4eb61a384a7ac3f4596661348f98ac48" alt="Vendo historical data settings showing sync options for Shopify data" width="1724" height="762" data-path="images/integrations/shopify/vendo-historical-data.png" />
    </Frame>
  </Step>
</Steps>

## İzleme

### Kullanıcı Tanımlama

Vendo **yalnızca tanımlanmış kullanıcı** yaklaşımını kullanır — anonim ziyaretçiler OneSignal'da izlenmez. Etkinliklerin gönderilebilmesi için kullanıcıların dört yöntemden biriyle tanımlanması gerekir. Bu, yinelenen kullanıcıları önler ve temiz, eyleme geçirilebilir veriler sağlar.

| Yöntem                 | Nasıl çalışır                                                                                                                    | Kullanılan tanımlayıcı         |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| **Web push aboneliği** | Ziyaretçi push isteminde "İzin Ver"e tıklar. OneSignal otomatik olarak bir kullanıcı oluşturur ve Vendo OneSignal ID'yi yakalar. | OneSignal ID                   |
| **Bülten kaydı**       | Ziyaretçi bülten veya e-posta formu gönderir. Vendo e-postayı yakalar ve `OneSignal.login(email)` çağırır.                       | Email                          |
| **Müşteri girişi**     | Müşteri Shopify hesabına giriş yapar. Vendo bunu algılar ve yapılandırılmış tanımlayıcıyla `OneSignal.login()` çağırır.          | Shopify Customer ID veya Email |
| **Ödeme tamamlandı**   | Müşteri satın alma işlemini tamamlar. Vendo tanımlayıcıyı depolar ve `OneSignal.login()` çağırır.                                | Shopify Customer ID veya Email |

<Warning>
  Mobil uygulamanız veya üçüncü taraf bağlantılarınız varsa, kullanıcı profillerinin platformlar arasında tutarlı kalması için diğer araçlarınızla eşleşen tanımlayıcıyı (Shopify Customer ID veya Email) seçin. Bunu Vendo uygulamasında **Settings > Customer Identifier** altında yapılandırın.
</Warning>

#### Kimlik Birleştirme

Bir push abonesi (OneSignal ID ile tanımlanan) daha sonra giriş yapar veya satın alma işlemini tamamlarsa, Vendo Shopify Customer ID veya e-postasıyla `OneSignal.login()` çağırır. OneSignal, push aboneliğini tanımlanan kullanıcıya bağlar — yinelenen kullanıcı oluşturulmaz. Tüm geçmiş push abonelikleri korunur ve sunucu taraflı etkinlikler (siparişler, karşılamalar) doğru kullanıcı profiline ulaşır.

### Müşteri Etiketleri

Vendo, segmentasyon için müşteri özelliklerini OneSignal'daki [etiketler](./add-user-data-tags) olarak senkronize eder. Tüm değerler dize olarak saklanır (OneSignal'ın yerel formatı).

| Etiket                    | Açıklama                             |
| ------------------------- | ------------------------------------ |
| `email`                   | Müşteri e-postası                    |
| `first_name`              | Ad                                   |
| `last_name`               | Soyad                                |
| `total_spent`             | Toplam harcama                       |
| `order_count`             | Toplam sipariş sayısı                |
| `verified_email`          | `"true"` veya `"false"`              |
| `tax_exempt`              | `"true"` veya `"false"`              |
| `marketing_state`         | Pazarlama onay durumu                |
| `first_order_date`        | İlk sipariş tarihi (ISO 8601)        |
| `last_order_date`         | En son sipariş tarihi (ISO 8601)     |
| `customer_created_at`     | Müşteri oluşturma tarihi             |
| `customer_tags`           | Virgülle ayrılmış Shopify etiketleri |
| `email_marketing_consent` | Pazarlama opt-in durumu              |

### İstemci Taraflı Etkinlikler

Vendo, Shopify Web Pixel aracılığıyla mağazanızdaki istemci taraflı [özel etkinlikleri](./custom-events) izler ve OneSignal'a gönderir. Bu etkinlikler yalnızca bir kullanıcı tanımlandıktan sonra gönderilir.

| Etkinlik                           | Açıklama                                                             |
| ---------------------------------- | -------------------------------------------------------------------- |
| `page_viewed`                      | Müşteri bir sayfayı ziyaret eder (mağaza, ödeme veya sipariş durumu) |
| `product_viewed`                   | Müşteri ürün detay sayfasını görüntüler                              |
| `collection_viewed`                | Müşteri ürün koleksiyon sayfasını görüntüler                         |
| `search_submitted`                 | Müşteri mağazada arama yapar                                         |
| `product_added_to_cart`            | Sepete ürün eklendi                                                  |
| `product_removed_from_cart`        | Sepetten ürün kaldırıldı                                             |
| `cart_viewed`                      | Müşteri sepet sayfasını görüntüler                                   |
| `checkout_started`                 | Müşteri ödemeyi başlatır                                             |
| `checkout_contact_info_submitted`  | İletişim bilgileri adımı gönderildi                                  |
| `checkout_address_info_submitted`  | Adres bilgileri adımı gönderildi                                     |
| `checkout_shipping_info_submitted` | Kargo yöntemi seçildi                                                |
| `payment_info_submitted`           | Ödeme bilgileri gönderildi                                           |
| `checkout_completed`               | Ödeme başarıyla tamamlandı                                           |

<Frame caption="Vendo'daki istemci taraflı etkinlik yapılandırması.">
  <img src="https://mintcdn.com/onesignal/dknFSNQuQfw5IM0j/images/integrations/shopify/vendo-client-side-events.png?fit=max&auto=format&n=dknFSNQuQfw5IM0j&q=85&s=c94b99465b8c200ebb1bb475e492f8a1" alt="Vendo client-side events settings showing available custom events" width="865" height="726" data-path="images/integrations/shopify/vendo-client-side-events.png" />
</Frame>

### Sunucu Taraflı Etkinlikler

Shopify ticaret etkinlikleri, Vendo ardışık düzeni aracılığıyla dışa aktarılır ve OneSignal'a iletilir. Bunlar her zaman Shopify Customer ID'yi `external_id` olarak kullanır.

| Etkinlik                    | Açıklama                       |
| --------------------------- | ------------------------------ |
| `received_orders`           | Yeni sipariş oluşturuldu       |
| `fulfilled_orders`          | Sipariş karşılandı/sevk edildi |
| `delivered_orders`          | Sipariş teslim edildi          |
| `refunded_orders`           | Sipariş tamamen iade edildi    |
| `partially_refunded_orders` | Sipariş kısmen iade edildi     |
| `abandoned_checkouts`       | Ödeme terk edildi              |

<Frame caption="Vendo'daki sunucu taraflı etkinlik yapılandırması.">
  <img src="https://mintcdn.com/onesignal/dknFSNQuQfw5IM0j/images/integrations/shopify/vendo-server-side-events.png?fit=max&auto=format&n=dknFSNQuQfw5IM0j&q=85&s=c9bed30c26b0bec3b8a53eb8cde8098d" alt="Vendo server-side events settings showing available Shopify webhook events" width="865" height="394" data-path="images/integrations/shopify/vendo-server-side-events.png" />
</Frame>

### Ortak Etkinlik Özellikleri

Tüm etkinlikler şu özellikleri içerir (dize olarak):

| Özellik            | Açıklama                           |
| ------------------ | ---------------------------------- |
| `order_id`         | Görüntülenen sipariş tanımlayıcısı |
| `shopify_order_id` | Shopify dahili sipariş ID'si       |
| `email`            | Müşteri e-postası                  |
| `currency`         | Sipariş para birimi                |
| `source`           | Etkinlik kaynağı                   |
| `version`          | Entegrasyon sürümü                 |

### Veri Senkronizasyon Sıklığı

| Veri türü              | Senkronizasyon sıklığı                      |
| ---------------------- | ------------------------------------------- |
| Müşteri etiketleri     | Her 4–6 saatte bir                          |
| Sipariş etkinlikleri   | Neredeyse gerçek zamanlı (dakikalar içinde) |
| Terk edilmiş sepetler  | Her 1–2 saatte bir                          |
| Karşılama etkinlikleri | Neredeyse gerçek zamanlı                    |

## Platform Ayrıntıları

| Ayar                   | Değer                                        |
| ---------------------- | -------------------------------------------- |
| Senkronizasyon yöntemi | Vendo aracılığıyla istemci + sunucu taraflı  |
| Kimlik                 | Shopify Customer ID, Email veya OneSignal ID |
| Yineleme giderme       | Etkinlik başına UUID v5 karma                |
| Toplu iş boyutu        | İstek başına 1.000 etkinlik                  |
| Veri formatı           | Tüm değerler dize olarak saklanır            |

## Kullanım Senaryoları

### Terk Edilmiş Sepet Kurtarma

`abandoned_checkouts` etkinliğiyle tetiklenen bir [Journey](./journeys-overview) oluşturun. Terk ettikten 1 saat sonra `checkout_url` özelliğini kullanarak kurtarma bağlantısı içeren bir push bildirimi gönderin.

### Sipariş Durumu Güncellemeleri

`fulfilled_orders` ve `delivered_orders` için Journey'ler oluşturarak siparişler sevk edildiğinde ve ulaştığında takip bilgileriyle anında push bildirimleri gönderin.

### VIP Müşteri Etkileşimi

`total_spent` belirli bir eşiğin üzerinde olan bir [segment](./segmentation) oluşturun, ardından `first_name` etiketiyle kişiselleştirilmiş özel teklifler gönderin.

### Yeniden Etkileşim Kampanyaları

`last_order_date` 90 günden eski olan bir segment oluşturarak pasif müşterileri hedefleyin ve geri kazanma kampanyaları gönderin.

## Uyumlu Kaynaklar

OneSignal, aşağıdaki Vendo veri kaynaklarıyla çalışır:

| Kaynak    | Etkinlikler | Kullanıcı etiketleri | Kitleler |
| --------- | ----------- | -------------------- | -------- |
| Shopify   | Evet        | Evet                 | Evet     |
| Stripe    | Evet        | Evet                 | Evet     |
| Mixpanel  | —           | —                    | Evet     |
| Segment   | —           | —                    | Evet     |
| Amplitude | —           | —                    | Evet     |

Etkinlikler ve kullanıcı etiketleri, veri kaynağı olarak Shopify veya Stripe gerektirir. Kitle segmentleri, BigQuery veri setinizdeki herhangi bir kaynak veriden oluşturulabilir.

***

## Test

<Steps>
  <Step title="Service Worker'ı doğrulayın">
    Tarayıcınızda `https://yourstore.myshopify.com/apps/vendo/OneSignalSDKWorker.js` adresini ziyaret edin. JavaScript kodu görmelisiniz. 404 alırsanız Vendo uygulamasının yüklü olduğunu doğrulayın.

    Ayrıca tarayıcı DevTools'u açabilir (**F12**), **Application > Service Workers**'a gidebilir ve `OneSignalSDKWorker.js`'nin `/apps/vendo/` kapsamıyla kayıtlı olduğunu doğrulayabilirsiniz.
  </Step>

  <Step title="Push istemini test edin">
    Mağazanızı gizli/özel bir pencerede açın. OneSignal bildirim izni istemini görmelisiniz. Abone olmak için **İzin Ver**'e tıklayın.
  </Step>

  <Step title="Test bildirimi gönderin">
    OneSignal panosunda **Messages > Push > New Message**'a gidin. Abonecinize bir test bildirimi gönderin ve göründüğünü doğrulayın.
  </Step>

  <Step title="OneSignal'daki kullanıcı verilerini doğrulayın">
    **Audience > Subscriptions**'a gidin ve test aboneliğinizin göründüğünü doğrulayın. Tanımlanmış kullanıcılar için kullanıcı etiketlerinin (e-posta, ad, vb.) senkronize edildiğini kontrol edin.
  </Step>

  <Step title="Test etkinliği tetikleyin">
    Mağazanızda bir ürüne göz atın veya test ödemesi tamamlayın. Etkinliğin OneSignal panosundaki kullanıcı etkinliğinde göründüğünü doğrulayın.
  </Step>
</Steps>

***

## Sorun Giderme

### Service Worker 404 döndürüyor

Service Worker `/apps/vendo/OneSignalSDKWorker.js` konumunda olmalıdır. Kök yolda (`/OneSignalSDKWorker.js`) 404 hatası görürseniz, service worker yolu OneSignal'da yapılandırılmamıştır — [service worker yapılandırma adımını](#configure-the-service-worker-path) takip edin. 404 `/apps/vendo/` yolundaysa Vendo uygulamasının yüklü ve tema bloğunun etkin olduğunu doğrulayın.

### Push istemi görünmüyor

**App embeds**'te Vendo tema bloğunun etkin olduğunu kontrol edin. Tarayıcınızın bildirimlere izin verdiğini doğrulayın (adres çubuğundaki kilit simgesine tıklayın). İstem önceden reddedilmiş olabileceği için gizli/özel pencerede deneyin.

### Etiketler OneSignal'da görünmüyor

Etiketler yalnızca tanımlanmış kullanıcılar için senkronize edilir — anonim ziyaretçiler izlenmez. Kullanıcının push aboneliği, giriş, bülten kaydı veya ödeme yoluyla tanımlandığından emin olun. İlk etiket senkronizasyonları birkaç saat sürebilir.

### Etkinlikler tetiklenmiyor

Etkinliklerin Vendo uygulamasında **OneSignal > Events** altında etkinleştirildiğini doğrulayın. İstemci taraflı etkinlikler Shopify Web Pixel'in etkin olmasını ve kullanıcının tanımlanmış olmasını gerektirir. Sunucu taraflı etkinlikler REST API Key'in yapılandırılmış olmasını gerektirir.

### Bildirimler "Teslim Edildi" gösteriyor ama görünmüyor

Entegrasyon çalışıyor — sorun tarayıcı veya işletim sistemi bildirim ayarlarınızdadır. Tarayıcınız için işletim sistemi bildirim ayarlarınızı kontrol edin, Rahatsız Etme / Odaklanma modunun kapalı olduğundan emin olun ve tarayıcı düzeyindeki bildirim izinlerini doğrulayın.

***

## SSS

### Kurulumdan sonra müşteri tanımlayıcısını değiştirebilir miyim?

Evet. Vendo uygulamasında **Settings > Customer Identifier** altındaki ayarı güncelleyin. Mevcut kullanıcılar önceki yöntemle zaten tanımlanmışsa tanımlayıcıyı değiştirmek ayrı kullanıcı profilleri oluşturabilir.

### Vendo entegrasyonu mobil uygulamaları destekliyor mu?

Vendo entegrasyonu Shopify mağazaları ve web push'a odaklanır. Mobil uygulamanız da varsa, kullanıcı profillerinin tutarlı kalması için Vendo'da seçtiğiniz tanımlayıcının mobil uygulamanızda kullandığınızla eşleştiğinden emin olun.

### Bir ziyaretçi hiç tanımlanmazsa ne olur?

Tanımlanmamış ziyaretçilerin etkinlikleri OneSignal'a gönderilmez. Ziyaretçi kendini tanımladığında (push aboneliği, giriş, bülten kaydı veya ödeme tamamlama), Vendo etkinlik göndermeye başlar. Bu yalnızca tanımlanmış kullanıcı yaklaşımı, yinelenen kullanıcıları önler ve temiz veriler sağlar.

### Vendo neden yalnızca tanımlanmış kullanıcı yaklaşımını kullanıyor?

Önceki sürümler, tanımlayıcı olarak Shopify'ın oturum çerezini kullanarak anonim ziyaretçileri izliyordu. Bu durum, hiçbir zaman düzgün birleştirilemeyen yinelenen OneSignal kullanıcıları oluşturarak şişirilmiş kullanıcı sayılarına ve parçalanmış verilere yol açıyordu. Yalnızca tanımlanmış kullanıcı yaklaşımı, her OneSignal kullanıcısının gerçek ve eyleme geçirilebilir olmasını sağlar.

***

## İlgili Sayfalar

<Columns cols={2}>
  <Card title="Keys & IDs" icon="key" href="./keys-and-ids">
    OneSignal App ID'nizi ve REST API anahtarınızı bulun.
  </Card>

  <Card title="Özel etkinlikler" icon="bolt" href="./custom-events">
    Kullanıcı davranışını izleyin ve Shopify etkinliklerine dayalı otomasyonlar tetikleyin.
  </Card>

  <Card title="Web push kurulumu" icon="globe" href="./web-push-setup">
    Shopify mağazanız için web push bildirimlerini ayarlayın.
  </Card>

  <Card title="Web izin istemleri" icon="bell" href="./permission-requests">
    Ziyaretçilerden web push izni isteme zamanını ve yöntemini yapılandırın.
  </Card>
</Columns>
