# IdeaSoft

IdeaSoft kurulumu
Kaynak: https://selwise.com/docs/platforms/ideasoft

IdeaSoft mağazalarında Selwise kurulumu: script, veri katmanı, sayfadan okunan sinyaller, sepet, sipariş ve besleme. Üye kimliği için ayrıca [IdeaSoft Üye Kodu](/docs/platforms/ideasoft-member) sayfasındaki kodu yapıştırmanız gerekir; o yapılmazsa hiçbir olay ve sipariş bir üyeye bağlanmaz.

IdeaSoft'ta verinin üç kaynağı vardır:

| Kaynak | Ne taşır | Ne taşımaz |
|---|---|---|
| IdeaSoft dataLayer'ı | Ürün, liste, sepet, ödeme ve satın alma olayları | Üye, giriş, kayıt, arama |
| Sayfanın kendi değişkenleri (`route`, `isMember`) | Sayfa türü ve üyenin giriş yapıp yapmadığı | Üyenin kimliği |
| Özel Script Kodları | Üye kimliği ve e-postası, yalnızca belirli sayfalarda | Diğer sayfalar |

## 1. Script kurulumu

Scripti **Ayarlar → Genel Ayarlar → Özel Script Kodları → Site İzleme & Remarketing Kodu** alanına ekleyin; bu alan her sayfada çalışır. `SITE_KEY` yerine **Kanallar → Kanal Özeti → Setup** (Channels → Channel Overview) bölümündeki anahtarı yazın.

```html
<link rel="preconnect" href="https://widget.selwise.com" crossorigin>
<link rel="preconnect" href="https://api.selwise.com" crossorigin>
<script>window.Selwise=window.Selwise||{};window.Selwise.q=window.Selwise.q||[];['track','trackOrder','identify','setTraits','pushDataLayer','grantConsent','revokeConsent','showConsentPreferences','withdrawConsent','endJourney'].forEach(function(m){if(!window.Selwise[m])window.Selwise[m]=function(){window.Selwise.q.push([m,arguments])}});</script>
<script async src="https://widget.selwise.com/client.js" data-site-key="SITE_KEY"></script>
```

Scripti Google Tag Manager üzerinden de yükleyebilirsiniz, ama **Verify Now** ham HTML'e baktığından GTM ile eklenen etiketi görmez; doğrulamayı geçmek için etiketi bu alana doğrudan koyun. İkisini birden eklemeyin.

## 2. Veri katmanı

IdeaSoft'un kendi dataLayer'ı yalnızca mağazada Google Tag Manager / dataLayer yapısı açıksa gönderilir. Sayfa kaynağında `useDatalayer = '1'` görmüyorsanız ürün, sepet ve satın alma olaylarının hiçbiri gelmez.

**Ayarlar → Entegrasyonlar → Data Layer Configuration** (Settings → Integrations) ekranında:

- **Enable Data Layer** açık olsun; varsayılan kapalıdır.
- **E-commerce Platform Preset** olarak **IdeaSoft** seçin. Seçince ekranda **IdeaSoft no-code checklist** kartı çıkar.
- **Use External Data Layer** açık, **External Data Layer Name** `dataLayer` kalsın (temanız açıkça `iDataLayer` kullanmadıkça).
- **Tracking Modules** içinde **Product**, **Basket**, **Checkout** ve **User** açık olsun. **User** varsayılan olarak kapalıdır ve giriş ile çıkış olayları ondan geçer. **Search** yalnızca aşağıdaki arama satırı için gerekir.

Kendi eşlemenizi yazmanız gerekmez; IdeaSoft ön ayarı şunları bilir:

| IdeaSoft olayı | Selwise olayı |
|---|---|
| `view_item` | `product_view` |
| `view_item_list` | `product_impression` |
| `add_to_cart` / `remove_from_cart` | `add_to_cart` / `remove_from_cart` |
| `view_cart` | `cart_view` |
| `begin_checkout` | `checkout_begin` |
| `add_shipping_info` / `add_payment_info` | `checkout_progress` |
| `add_to_wishlist` | `wishlist` |
| `purchase` | `purchase`; sipariş olarak da kaydedilir |

## 3. Sayfadan okunan sinyaller

Bunlar için kod eklemeniz gerekmez.

| Sinyal | Kaynağı | Davranış |
|---|---|---|
| Sayfa türü | Her sayfadaki `route` değişkeni | Arama, kategori, marka, ürün, sepet ve üyelik sayfaları IdeaSoft'un yönlendiricisinden okunur. URL desenleri ve sayfa ayırt edicileri yedek olarak kalır. |
| Giriş (`user_login`) | Her sayfadaki `isMember` değişkeni | Aynı tarayıcıda girişsiz durumdan girişli duruma geçiş. Selwise'in ilk gördüğü an giriş sayılmaz. |
| Çıkış (`user_logout`) | Çıkış bağlantısı (`/cikis`) | Bağlantıya tıklanıp üye çıkmış göründüğünde çıkış kaydedilir ve tarayıcıdaki üye kimliği unutulur. |
| Arama (`search_query`) | Sonuç sayfası: `/arama/...` veya `/arama?q=...` | **Yalnızca Selwise araması kapalıysa** ve **Search** modülü açıksa. Açıksa sorgu aramanın kendisi tarafından zaten kaydedilir; ikinci kez sayılmaz. |

> **Oturumun kapanması çıkış değildir**
>
> IdeaSoft oturumu süre dolduğu için kapandığında Selwise bunu çıkış saymaz ve üye kimliğini silmez. Aynı kişi ertesi gün aynı tarayıcıyla döndüğünde vereceği sipariş hâlâ ona bağlanır. Kimlik yalnızca çıkış bağlantısıyla silinir.

## 4. Ürün kodları

Bir IdeaSoft ürününün iki kodu vardır ve Selwise ikisini de tanır:

| Kod | Örnek | Nerede kullanılır |
|---|---|---|
| Ürün numarası | `182739` | Beslemede ürün kodu, sepete ekleme |
| Stok kodu | `01025` | IdeaSoft dataLayer'ı (`item_id`) |

DataLayer'dan stok koduyla gelen bir görüntüleme, beslemedeki ürün numarasıyla aynı ürüne yazılır. Beslemede ikisinin de eşlendiğini kontrol edin; hazır eşleme bunu yapar.

## 5. Sepete ekleme ve sepet tutarı

Öneri ve arama formunda sepet platformu olarak **IdeaSoft** seçin. Selwise, IdeaSoft'un `/cart/add_item` uç noktasına mağazanın CSRF anahtarıyla ürün numarasını gönderir. Uç nokta başarısızlıkta da HTTP 200 döndüğünden cevabın içeriği okunur; anahtar eskimişse bir kez yenilenip tekrar denenir, olmazsa mağazanın o ürün için kendi sepete ekle düğmesine geri dönülür. Test modunda deneyin.

Sepet tutarı mağazanın `window.IdeaCart` nesnesinden okunur (indirimli toplam, adet, para birimi); ek istek atılmaz. Bunun için ön ayarın IdeaSoft olarak **açıkça** seçilmiş olması gerekir. Durumu **Channel Overview** sayfasındaki **Cart value** satırı gösterir.

## 6. Sipariş

Satın alma IdeaSoft dataLayer'ının `purchase` olayıyla gelir ve sipariş olarak kaydedilir. **Sipariş Takibi & Dönüşüm Kodu** alanına Selwise kodu eklemeyin; aynı sipariş numarasını ikinci bir yoldan göndermek gereksizdir. Sipariş, ziyaretçi üzerinden üyeye bağlanır: alışveriş yapan üye ödemeden önce bir ürün ya da sepet sayfasından geçtiği için kimliği o noktada bilinir.

## 7. Ürün beslemesi

IdeaSoft XML besleme üretir. **Katalog → Ürün Beslemesi** (Catalog → Product Feed) ekranında adresi girin, sonra alan eşlemesinde **Ready-made mapping** (Hazır eşleme) listesinden **IdeaSoft (XML ürün export)** seçip **Apply**'a basın ve yeniden senkronize edin. Hazır eşleme iki şeyi düzeltir:

- **Başlık `rootlabel` alanından okunur.** IdeaSoft bir varyantı kendi satırı yapar ve o satırın `label` alanında yalnızca varyant değeri durur ("M", "Yeşil"). `label` başlık olursa beden satırının kartında "M" yazar.
- **Varyantlar ebeveynlerinin altında gruplanır.** Beslemede grup alanı yoktur; grup ebeveyn adından (`rootlabel` eksi `label`) çıkarılır. Kategorisi olmayan bir varyant rolünü ebeveyninin kategorisinden alır: [Varyant Gruplama](/docs/product-feeds/variant-grouping).

Alan eşleme ayrıntısı: [Alan Eşleme](/docs/product-feeds/field-mapping).

## İmzalı kimlik

Bu platformun şablon dili müşteri numarasını sunucuda imzalayamadığı için kanal **Report** (Raporla) modunda kalır; **Enforce** modunu açmayın. Kanal yine korunur: bir tarayıcı bir günde çok sayıda farklı müşteri numarasıyla tanıtılamaz, müşterinin kayıtlı e-postası imzasız bir çağrıyla değişmez ve yeni bağlanmış bir tarayıcı müşterinin mevcut iletişim adresinin yerine geçemez. Bkz. [İmzalı Kimlik](/docs/integration/identity-verification).

## Kurulumu doğrulama ve kontrol listesi

1. Mağazada bir test üyesiyle giriş yapıp bir ürün sayfası açın; konsolda `Selwise.getSiteUserId()` üye numaranızı döndürmelidir (üye kodu için [IdeaSoft Üye Kodu](/docs/platforms/ideasoft-member)).
2. **Data Layer Configuration → View Events** listesinde `product_view` ve `user_login` görünmelidir.
3. Çıkış yapınca `Selwise.getSiteUserId()` boş dönmelidir.

- [ ] Script **Site İzleme & Remarketing Kodu** alanında, **Verify Now** geçti
- [ ] Mağazada `useDatalayer = '1'`
- [ ] **Enable Data Layer** açık, ön ayar **IdeaSoft**, **User** modülü açık
- [ ] Üye kodu üç takip alanında ([IdeaSoft Üye Kodu](/docs/platforms/ideasoft-member))
- [ ] Sipariş Takibi alanında Selwise kodu yok
- [ ] Besleme senkronize, ürün numarası ve stok kodu eşlenmiş
- [ ] Sepete ekleme test modunda çalışıyor
