Shopware 6'yı n8n'e bağlama: Admin API ile siparişler, müşteriler ve stok
Shopware 6'nın yerel bir n8n node'u yok. İşte Admin API ve HTTP Request Node ile siparişleri, müşterileri ve stoku nasıl bağlayacağın.
n8n, birçok popüler araç için hazır bir node simgesi sunar, ancak Shopware 6 için sunmaz. Bu ilk bakışta şaşırtıcı olsa da pratikte bir engel değildir: Shopware 6, Admin API ile siparişleri, müşteri verilerini ve stok seviyelerini okuyup yazabileceğin eksiksiz, iyi belgelenmiş bir REST arayüzü sunar. n8n'de bu işi genel amaçlı HTTP Request Node üstlenir, Shopware'in Client Credentials akışı için bir OAuth2 kimlik bilgisiyle birlikte.
Bu makale sana tüm yolu gösterir: Shopware yönetiminde entegrasyondan n8n'de oturum açmaya, siparişler, müşteriler ve stok için somut sorgulara kadar. Böylece her tek isteği tam olarak kontrol edersin, çünkü hiçbir şey bir kara kutunun arkasında saklı değildir.
Neden yerel bir Shopware node'u yok
n8n, özellikle geniş kullanıcı tabanına sahip hizmetler için yerel node'lar sunar. Shopware 6 şimdilik bunlardan biri değil, ki bu pratikte pek fark yaratmaz: n8n belgelerine göre HTTP Request Node tam olarak bu durum için tasarlanmıştır, yani özel bir node olmadan bile REST API'ye sahip herhangi bir uygulama veya hizmetten veri sorgulamak için. Hem düzenli bir workflow adımı olarak hem de bir yapay zeka (YZ) ajanı için bir araç olarak kullanılabilir. Shopware için bu şu anlama gelir: birkaç HTTP Request Node ile hazır bir node'un özelliklerini beklemeden, tam olarak kendi süreçlerine uygun kendi entegrasyonunu oluşturursun. Yapı ve seçenekler hakkındaki ayrıntıları HTTP Request Node hakkındaki n8n belgelerinde bulabilirsin.
Shopware Admin API'ye erişimi ayarlama
n8n herhangi bir şeyi sorgulayabilmeden önce, Shopware'de kendi kimlik bilgilerine sahip bir entegrasyona ihtiyacın var.
- Shopware yönetiminde Ayarlar > Sistem > Entegrasyonlar bölümünü aç ve yeni bir entegrasyon oluştur.
- Şu anahtarı etkinleştir: Yönetici, aksi takdirde entegrasyon yazma erişimleri için yeterli izinlere sahip olmaz.
- Şunları not al: Access Key ID ve Secret Access Key. Gizli anahtar yalnızca bir kez gösterilir.
- Bu iki değer daha sonra n8n kimlik bilginde Client ID ve Client Secret'a karşılık gelir.
Resmi belgelere göre Admin API'nin kendisi, ürünler, siparişler, müşteriler ve yapılandırmalar gibi merkezi iş nesnelerine yapılandırılmış erişimi kapsar ve tam olarak veri senkronizasyonu, içe aktarma ve sistemler arası iletişim için tasarlanmıştır. Genel bir bakışı Admin API hakkındaki Shopware belgelerinde bulabilirsin.
OAuth2 kimlik bilgisini n8n'de kaydetme
Shopware, entegrasyonları OAuth2 Client Credentials akışı üzerinden kimlik doğrular: istemcin Access Key ID ve Secret Access Key'i token uç noktasına gönderir ve karşılığında belgelere göre on dakika geçerli olan bir Bearer token alır. Bu süreci n8n'de, HTTP Request Node'da seçtiğin genel bir OAuth2 API kimlik bilgisiyle birebir yeniden oluşturursun.
- Grant Type: Client Credentials
- Access Token URL: `https://magazan.example/api/oauth/token`
- Client ID: Access Key ID'in
- Client Secret: Secret Access Key'in
- Authentication: Shopware kurulumuna göre Body veya Header olarak, emin değilsen önce Body'yi dene
n8n, bu kimlik bilgisiyle eskisinin süresi dolar dolmaz otomatik olarak yeni bir token alır, bu yüzden on dakikalık geçerlilik süresiyle manuel olarak ilgilenmen gerekmez. HTTP Request Node'un toplamda desteklediği genel kimlik doğrulama türlerini, Basic Auth, Header Auth ve OAuth2 dahil, HTTP Request kimlik bilgileri hakkındaki n8n belgeleri açıklar. Shopware tarafındaki kimlik doğrulamanın tam akışını, `/api/oauth/token`'a karşı örnek istekler dahil, kimlik doğrulama ve API istekleri hakkındaki Shopware kılavuzunda bulabilirsin.
Siparişleri alma ve işleme
Siparişler için en sık Admin API'nin arama uç noktalarını kullanırsın, örneğin `POST /api/search/order`. Birçok REST API'nin aksine, filtre kriterlerini burada sorgu parametresi olarak değil, bir Criteria yapısına sahip JSON gövdesi olarak gönderirsin.
- Örneğin yalnızca yeni veya açık siparişleri almak için sipariş durumuna veya oluşturulma tarihine göre filtrele.
- Her sipariş için ayrı ayrı sorgulamak yerine, `associations` üzerinden müşterileri, kalemleri ve teslimat adreslerini doğrudan birlikte yükle.
- Bir n8n workflow'unun çok sayıda siparişte bile zaman aşımlarına takılmaması için sonuç kümesini `limit` ve `page` üzerinden kontrol et.
- 15 dakikada bir çalışan bir Schedule Trigger Node, bu HTTP Request çağrısıyla birleştirildiğinde, CRM veya stok yönetimi yönündeki çoğu senkronizasyon senaryosu için tamamen yeterlidir.
Bu entegrasyonu kendi başına sürdürmek istemeyen şirketler için NordFlux, bu tür sipariş senkronizasyon workflow'larını da n8n danışmanlığı kapsamında sabit fiyatlı bir proje olarak oluşturur.
Müşteri verilerini senkron tutma
Müşteri verilerini de benzer şekilde `POST /api/search/customer` üzerinden sorgularsın. Başka bir sistemden gelen bir kişinin Shopware'de zaten var olup olmadığını, onu `POST /api/customer` ile yeniden oluşturmadan veya `PATCH` ile güncellemeden önce kontrol etmek istiyorsan, burada e-posta adresine veya müşteri numarasına göre filtreleme özellikle kullanışlıdır. Yinelenen müşteri kayıtları oluşturmamak için n8n workflow'larında oluşturma ile güncelleme arasında, örneğin asıl yazma erişiminden önce bir IF node ile, tutarlı bir şekilde ayrım yapmaya dikkat et.
Stok seviyesini eşleme
Stok için `stock` alanını `PATCH /api/product/{id}` üzerinden doğrudan ürün varlığında okur ve yazarsın. Harici bir stok yönetim sisteminden gelen stok değişikliklerini Shopware'e yansıtmak istiyorsan, bu rota ile basit bir HTTP Request Node yeterlidir. Tersine, yeni bir Shopware siparişi harici bir sistemdeki stoğu azaltacaksa, sürekli sorgulama yerine olay tabanlı bir tetikleyici daha mantıklıdır.
Sürekli sorgulama yerine tetikleyici: webhook üzerinden Shopware olayları
Admin API'yi düzenli olarak yoklamak işe yarar, ancak yeni bir sipariş gibi tek tek olaylara anında tepki vermek istiyorsan gereksiz yere yavaştır. Shopware bunun için yönetimde Flow Builder'ı sunar: burada "Sipariş oluşturuldu" gibi bir tetikleyici seçer, bir webhook eylemi eklersin ve hedef URL olarak n8n workflow'unun webhook adresini girersin. Yapılandırma ayrıntıları Flow Builder'daki webhook eylemleri hakkındaki Shopware belgelerinde yer alır.
n8n tarafında bunu Webhook Node ile karşılarsın; bu node belgelere göre GET, POST, PUT, PATCH, DELETE ve HEAD HTTP yöntemlerini destekler ve workflow etkinleştirildikten sonra geliştirme için bir test URL'si ile bir üretim URL'si arasında ayrım yapar. Böylece yeni siparişleri, müşteri kayıtlarını veya durum değişikliklerini yalnızca bir sonraki planlanmış sorguda fark etmek yerine, gerçekleştikleri anda işlersin.
Sık sorulan sorular
Bu arada n8n için yerel bir Shopware node'u çıktı mı?
Şu an için hayır. n8n, Shopware'i kendi node'u üzerinden kapsamaz, bu yüzden genel amaçlı HTTP Request Node öngörülen yoldur. Bu ikinci sınıf bir geçici çözüm değil, özel bir node'u olmayan REST API'ler için n8n'in kendisinin önerdiği yaklaşımdır.
n8n ile Shopware Admin API'de nasıl oturum açarım?
Shopware'de Ayarlar, Sistem, Entegrasyonlar altında yönetici haklarına sahip bir entegrasyon oluşturur ve Access Key ID ile Secret Access Key'i n8n'de genel amaçlı bir OAuth2 API kimlik bilgisinde Client ID ve Client Secret olarak kaydedersin. Grant Type olarak Client Credentials'ı, token URL'si olarak da mağazanın `/api/oauth/token` uç noktasını seçersin.
Erişim token'ı ne sıklıkla süresi dolar ve bununla ben mi ilgilenmem gerekir?
Shopware belgelerine göre token on dakika geçerlidir. n8n, süresi dolmuş bir token ile bir istek gerçekleştirilecek olur olmaz, OAuth2 kimlik bilgisi üzerinden bunu arka planda otomatik olarak yeniler. Bir workflow oluşturucusu olarak senin için günlük kullanımda hiçbir şey değişmez.
Sürekli sorgulama yerine sipariş verilerini gerçek zamanlı olarak nasıl alırım?
Shopware'deki Flow Builder üzerinden yeni bir sipariş gibi olayları doğrudan bir webhook URL'sine gönderebilirsin; bunu Webhook Node ile bir n8n workflow'u karşılar. Bu, düzenli yoklamanın yerini gerçek, anında bildirimlerle alır ve aynı zamanda API çağrısı sayısını azaltır.
Aynı entegrasyonla stok seviyelerini yalnızca okumakla kalmayıp yazabilir miyim?
Evet. Aynı kimlik bilgileriyle ve PATCH yöntemine sahip bir HTTP Request Node ile `stock` alanını doğrudan ürün varlığında güncelleyebilirsin. Ön koşul, Shopware'deki entegrasyonun yönetici haklarıyla oluşturulmuş olmasıdır, çünkü salt okunur haklar yazma erişimleri için yeterli değildir.
NordFlux UG (haftungsbeschränkt)
NordFlux, kuruluşlar için dijital çalışanlar kurar: tekrar eden işleri üstlenen otomasyonlar ve KI ajanları. Kontrol sizde kalır.
Otomasyon veya KI hakkında somut sorularınız mı var?
Ücretsiz bir ön analizde durumunuzu doğrudan görüşürüz. Bağlayıcı değildir.