eCommerce Integration serimizin bir parçası
Tam kılavuzu okuyunVeri Eşleme ve Dönüştürme: Farklı API'leri ve Veri Formatlarını Kullanma
Her e-ticaret platformu farklı bir dil konuşur. Amazon, siparişleri iç içe geçmiş adres nesneleriyle XML olarak gönderir. Shopify, JSON'u düz dize alanlarıyla döndürür. eBay, REST ve eski XML-RPC'nin bir karışımını kullanır. WooCommerce meta verileri anahtar-değer dizilerine yerleştirir. ERP'niz her şeyin doğrulanmış veri türleriyle belirli bir dahili formatta olmasını bekler.
Veri eşleme ve dönüştürme, çok kanallı entegrasyonun çalışmasını sağlayan çeviri katmanıdır. Doğru yaptığınızda veriler sistemler arasında sessizce akar. Yanlış anladığınızda, müşteri telefon numaralarının neden şehir alanını doldurduğunu veya ürün ağırlıklarının neden 2,2 kat azaldığını bulmak için saatler harcarsınız.
Önemli Çıkarımlar
- Kanonik bir veri modeli (dahili standart), N'den N'ye eşlemeyi, N'den 1'e artı 1'den N'ye lehine ortadan kaldırır
- Birim dönüştürme hataları, sınır ötesi e-ticarette en yaygın ve en pahalı veri eşleme hatasıdır
- Savunma amaçlı ayrıştırma — her alanı doğrulayın, her eksik değeri varsayılan olarak belirleyin — basamaklı hataları önler
- Eşlemelerinizi kodunuzla birlikte sürümlendirin; API değişiklikleri, sürümlendirilmiş şemalar olmadan entegrasyonları sessizce bozar
Kanonik Veri Modeli
Kanonik bir model olmadan, 5 kanalı ERP'nize bağlamak, her biri diğer sistemin tuhaflıklarını ele alan 10 benzersiz eşleme (5 gelen + 5 giden) gerektirir. Altıncı bir kanalın eklenmesi 2 eşlemenin daha yapılmasını gerektirir.
Kanonik bir modelde, her kanal tek bir dahili formata eşlenir ve bu formattan ayrılır. Altıncı bir kanal eklemek için, kaç tane kanalın mevcut olduğuna bakılmaksızın yalnızca 1 yeni gelen eşleyici ve 1 yeni giden eşleyici gerekir.
Kanonik Modelin Tasarlanması
Kanonik modeliniz şöyle olmalıdır:
- Tüm kanalların üst kümesi: Bazı kanallar her alanı kullanmasa bile herhangi bir kanalın ihtiyaç duyabileceği her alanı içerir
- Kesinlikle yazılmış: Tarihler ISO 8601'dir, ağırlıklar gram cinsindendir, para birimleri ISO 4217 kodlarını kullanır, fiyatlar değişken değil tam sayılardır (sent)
- Sürümlü: Şema değişiklikleri açık ve geriye dönük olarak uyumludur
- Belgelenmiş: Her alanın bir açıklaması, veri türü, doğrulama kuralı ve kaynak eşlemesi vardır
Örnek: Kanonik Sıra Modeli
Basitleştirilmiş kanonik düzen:
| Alan | Tür | Kaynak: Shopify | Kaynak: Amazon | Kaynak: eBay |
|---|---|---|---|---|
| hariciSiparişKimliği | dize | sipariş.id | AmazonSipariş Kimliği | Sipariş Kimliği |
| müşteriE-postası | dize | sipariş.e-posta | AlıcıBilgisi.BuyerE-postası | TransactionArray.Transaction.Buyer.Email |
| nakliyeAdı | dize | sipariş.shipping_address.name | GönderimAdresi.Adı | GönderimAdresi.Adı |
| lineItems[].sku | dize | line_items[].sku | OrderItems[].SatıcıSKU | TransactionArray.Transaction.Item.SKU |
| satır Öğeleri[].miktar | tamsayı | satır_öğeleri[].miktar | Sipariş Öğeleri[].Sipariş Miktarı | TransactionArray.Transaction.QuantityPurchased |
| lineItems[].priceInCents | tamsayı | line_items[].fiyat * 100 | SiparişÖğeleri[].ÖğeFiyatı.Tutar * 100 | TransactionArray.Transaction.TransactionPrice * 100 |
| para birimi | dize (ISO 4217) | sipariş.para birimi | OrderTotal.CurrencyCode | TransactionArray.Transaction.AmountPaid.currencyID |
| nakliyeYöntemi | numaralandırma | order.shipping_lines[0].title | Gemi Hizmet Seviyesi | ShippingServiceSelected.ShippingService |
| siparişTarihi | dize (ISO 8601) | order.created_at | Satın Alma Tarihi | Oluşturulma Tarihi |
Her kaynağın aynı kanonik yapıya nasıl eşleştiğine dikkat edin. Dönüşüm, yol farklılıklarını (yuvalanmış ve düz), adlandırma farklılıklarını (camelCase, PascalCase ve Snake_case) ve biçim farklılıklarını (tarihler, sayılar, para birimleri) ele alır.
Harita Oluşturmada Karşılaşılan Zorluklar ve Çözümler
Veri eşleme uç durumlarla doludur. İşte en sık karşılaşılan sorunlar ve bunların nasıl çözüleceği.
| Mücadelesi | Örnek | Çözüm |
|---|---|---|
| Eksik alanlar | eBay, misafir ödemesi için müşteriye e-posta göndermiyor | Varsayılan olarak boş dize, manuel inceleme için işaret |
| Farklı tarih formatları | Shopify: ISO 8601, Amazon: ISO 8601, eBay: Bazen ABD biçimi | Bir kitaplıkla ayrıştırın (dayjs, date-fns), her zaman ISO 8601 |
| Kayan nokta ve tam sayı olarak fiyat | Shopify: "19,99" (dize), Amazon: 19,99 (float) | 100 ile çarpın, yuvarlayın, tamsayı sent olarak saklayın |
| Ad bölme | Bir alan: "John Smith" ve iki alan: ilk/son | Son boşluğa bölün, kenar durumlarını ele alın (Jr., III, van der) |
| Adres biçimlendirme | ABD: 2 harfli kod olarak eyalet, Birleşik Krallık: eyalet yok, DE: farklı format | Yapılandırılmış adrese normalleştirme (hat1, hat2, şehir, eyalet, posta, ülke) |
| Telefon numarası formatları | "+1 (555) 123-4567" vs "5551234567" vs "+15551234567" | Rakam olmayanları çıkarın, libphonenumber ile ayrıştırın, E.164 formatında saklayın |
| Ağırlık birimleri | Shopify: pound/ons, Amazon: yapılandırılabilir, eBay: değişir | Dahili olarak her şeyi grama dönüştürün, kanal başına giden çıkışı dönüştürün |
| Metin alanlarındaki HTML | HTML etiketli açıklama ve düz metin gereksinimi | Düz metin kanalları için HTML'yi soyun, HTML kanalları için koruyun |
| Numaralandırma uyuşmazlıkları | Sipariş durumu: "ödendi" vs "Tamamlandı" vs "ONAYLANDI" | Arama tablosu aracılığıyla dahili numaralandırmayı eşleştirin |
| Boş dize vs boş dize | Bazı API'ler null (sağlanmadı) ile "" (açıkça boş) arasında ayrım yapar | Eksik olanı null olarak, açıkça boş olanı ise "" olarak normalleştir |
Birim Dönüşümü
Birim dönüştürme hataları gerçek anlamda maddi hasara neden olur. Sitenizde 2,2 kg olarak listelenen bir ürünün Amazon'da 2,2 lb olarak görünmesi, nakliye maliyeti tahminlerinin yanlış olduğu, boyutsal ağırlık hesaplamalarının yanlış olduğu ve müşterilerin beklenenden iki kat daha ağır bir ürün aldığı anlamına gelir.
Ağırlık Dönüşümü
| Nereden | Gram'a | için Ons | Pound için | için Kilogram |
|---|---|---|---|---|
| 1 gram | 1 | 0.03527 | 0.002205 | 0,001 |
| 1 ons | 28.3495 | 1 | 0.0625 | 0.02835 |
| 1 pound | 453.592 | 16 | 1 | 0.45359 |
| 1 kilogram | 1000 | 35.274 | 2.20462 | 1 |
Kural: Tüm ağırlıkları dahili olarak gram cinsinden saklayın. Giden çıkışı, her kanalın gerektirdiği birime dönüştürün. Gelen verilerde ünite etiketine asla güvenmeyin; değerin ürün kategorisi için anlamlı olduğunu doğrulayın. 2 gram ağırlığındaki bir dizüstü bilgisayarın kilogram cinsinden olduğu açıktır.
Boyut Dönüşümü
Boyutlar da aynı derecede haindir. Amazon ABD inç bekliyor. Amazon DE santimetre bekliyor. Gönderim yazılımınız milimetreye ihtiyaç duyabilir.
Kural: Tüm boyutları dahili olarak milimetre cinsinden saklayın. Kanal başına giden çıkışı dönüştürün. Boyutların fiziksel olarak makul olduğunu doğrulayın.
Para Birimi Dönüştürme
Çoklu para birimi kullanımı başka bir katman ekler. Kanonik modeliniz, fiyatları temel para biriminin en küçük biriminde saklar (ABD Doları için sent, GBP için peni, EUR için santimetre).
Sınır ötesi siparişler için hem orijinal para birimi tutarını hem de dönüştürülen temel para birimi tutarını kullanılan döviz kuruyla birlikte saklayın. Bu, para birimiyle ilgili tutarsızlıklar için bir denetim izi oluşturur.
Veri Normalleştirme Modelleri
Ham pazar verileri karmaşıktır. Normalleştirme, kanonik modelinize girmeden önce onu temizler.
Metin Normalleştirme
- Boşlukları kırp: Baştaki ve sondaki boşluklar API yanıtlarında yaygındır
- Unicode'u normalleştir: Tam genişlikteki karakterleri, akıllı tırnakları ve özel karakterleri, uygun olduğunda ASCII eşdeğerlerine dönüştürün
- Büyük/küçük harf standardizasyonu: Dahili verileri tutarlı bir büyük/küçük harflerle saklayın (ör. ülke kodları için BÜYÜK, adlar için Büyük/Küçük, e-postalar için daha düşük)
- HTML varlık kod çözme:
&ila&,<ila<, vb.
Adres Normalleştirme
Adresler kanallar arasında en tutarsız veri türüdür. Bir normalizasyon hattı şunları yapmalıdır:
- Serbest metin adreslerini yapılandırılmış bileşenlere (cadde, şehir, eyalet, posta, ülke) ayrıştırın
- Posta kodlarını ülke biçimi kurallarına göre doğrulayın
- Ülkeyi ISO 3166-1 alfa-2 kodlarına göre normalleştirin (ABD, GB, DE — "Amerika Birleşik Devletleri", "İngiltere", "Almanya" değil)
- Eyaleti/bölgeyi standart kısaltmalara göre normalleştirin
- Şehir/eyalet/posta kombinasyonlarının coğrafi olarak tutarlı olduğunu doğrulayın
SKU Normalleştirmesi
Farklı kaynaklardan gelen SKU'lar aynı ürün için farklı formatlar kullanabilir:
- Tedarikçi: "ABC-001-BLK-L"
- Amazon: "ABC001BLKL"
- Shopify: "abc-001-siyah-büyük"
- eBay: "ABC 001 Siyah L"
Kurallı modeliniz tek bir dahili SKU biçimi kullanmalı ve harici SKU biçimlerini dahili kimliklerle eşleştiren bir arama tablosu sağlamalıdır.
API Biçimi İşleme
Farklı API'ler verileri farklı formatlarda döndürür. Dönüşüm katmanınızın hepsini işlemesi gerekir.
JSON (Shopify, Walmart, TikTok Shop)
Çoğu modern API JSON'u kullanır. Ayrıştırma basittir ancak şunlara dikkat edin:
- Sayısal hassasiyet: JSON numaraları, büyük tamsayılar (2^53'ün üzerindeki sipariş kimlikleri) için hassasiyeti kaybedebilir. Gerekirse dizeler olarak ayrıştırın.
- İç içe yapılar: Shopify, teslimat adreslerini yanıtın içindeki siparişlerin içine yerleştirir. Doğru yol navigasyonunu kullanın.
- Sayfalandırma: İmleç tabanlı (Shopify) veya sayfa tabanlı. Sayfalar arasında hız sınırlamasını yönetin.
XML (Amazon SP-API raporları, eBay)
XML, ad alanları, öznitelikler ve öğeler ve kodlama bildirimleri ile karmaşıklık katar.
- Ad alanı yönetimi: Amazon raporları, XPath sorgularının çalışması için kaydedilmesi gereken XML ad alanlarını kullanır
- CDATA bölümleri: Metin içeriği, bazı ayrıştırıcıların çıkardığı ve diğerlerinin koruduğu CDATA'ya sarılmış olabilir
- Karakter kodlama: Her zaman UTF-8 olarak ayrıştırın. Bazı eski yayınlar ISO-8859-1'i beyan eder.
CSV/TSV (Google Alışveriş, Amazon düz dosyaları)
Feed tabanlı kanallar tablo verilerini kabul eder.
- Sütun sırası önemlidir: Bazı yayınlar başlığa değil, konuma bağlıdır
- Kaçış: Virgül içeren alanlar tırnak içine alınmalıdır. Tırnak işaretleri içeren alanlarda çift tırnak işareti kullanılmalıdır.
- Kodlama: Dosya başlangıcındaki BOM (Bayt Sırası İşareti), bazı sistemlerde ayrıştırma hatalarına neden olur. Çıkar onu.
- Satır sonları: Windows (CRLF) ile Unix (LF) karşılaştırması. Ayrıştırmadan önce normalleştirin.
EDI (Kurumsal perakende, 3PL'ler)
Elektronik Veri Değişimi hâlâ büyük perakendeciler ve 3PL'ler tarafından kullanılıyor. EDI belgeleri (850 Satınalma Siparişi, 856 Ön Sevk Bildirimi, 810 Fatura), X12 veya EDIFACT standartlarıyla tanımlanan sabit genişlikli veya sınırlayıcıyla ayrılmış formatları kullanır.
Dönüşümde Hata İşleme
Veriler beklenen şemanızla eşleşmediğinde, dönüşüm katmanının şuna karar vermesi gerekir: başarısız, varsayılan veya bayrak.
Strateji Matrisi
| Hata Türü | Strateji | Örnek |
|---|---|---|
| Gerekli alan eksik | Başarısız (kaydı reddet) | Müşteri e-postası olmadan sipariş verin |
| İsteğe bağlı alan eksik | Varsayılan değer | Telefon numarası yok — varsayılan değer null |
| Geçersiz biçim | Düzeltmeyi deneyin, başarısız olursanız işaretleyin | "03/15/2026" tarihi ISO olarak ayrıştırıldı |
| Aralık dışı değer | İnceleme için işaretle | 0 gram ağırlık (muhtemelen eksik) |
| Bilinmeyen numaralandırma değeri | "Diğer" ile eşleyin, inceleme için işaretleyin | Yeni gönderim yöntemi aramada yok |
| Kodlama sorunları | Temizleyin ve günlüğe kaydedin | Ürün başlıklarında Mojibake |
| Şema sürümü uyuşmazlığı | Sürüm bağdaştırıcısını kullanarak dönüştürme | API v2'nin v3 işleyicisine yanıtı |
Doğrulama İşlem Hattı
Her kayıt, dönüşümden sonra bir doğrulama hattından geçmelidir:
- Şema doğrulama: Kayıt beklenen yapıyla eşleşiyor mu?
- Tür doğrulama: Sayılar aslında sayı mı, tarihler aslında tarih mi?
- İş kuralı doğrulama: Siparişin toplamı olumlu mu? Teslimat adresi hizmet verdiğiniz bir ülkede mi?
- Referans doğrulama: SKU ürün kataloğunuzda mevcut mu?
Doğrulamayı geçemeyen kayıtlar karantinaya alınır; sessizce düşürülmek veya kötü verilerle işlenmek yerine manuel inceleme için bir hata kuyruğunda saklanır.
Bu doğrulama hatalarını izlemek için bkz. Entegrasyon İzleme.
Versiyon Oluşturma ve Değişiklik Yönetimi
API'ler değişir. Shopify her üç ayda bir yeni bir API sürümü sunar. Amazon, SP-API modellerini periyodik olarak günceller. eBay eski uç noktaları kullanımdan kaldırıyor. Haritalama katmanınızın bu değişiklikleri kesinti olmadan işlemesi gerekir.
Sürüm Oluşturma Stratejisi
- API sürümlerini sabitle: Her zaman aradığınız API sürümünü belirtin. Shopify,
2025-01talebinde bulunmanıza olanak tanır. Amazon SP-API, eski model sürümlerini kullanır. - Eşleştiricilerinizi sürümlendirin: Bir kanal API'si değiştiğinde, mevcut olanı değiştirmek yerine yeni bir eşleyici sürümü oluşturun. Geçiş sırasında her iki sürümü de paralel olarak çalıştırın.
- Otomatik regresyon testleri: Her eşleyici için bir dizi örnek girdi ve beklenen çıktı sağlayın. Bir haritalayıcı değiştiğinde testler istenmeyen regresyonları yakalar.
- Kullanımdan kaldırılma izleme: API değişiklik günlüklerine ve sonlandırma bildirimlerine abone olun. Taşıma işlemlerini kullanımdan kaldırma tarihlerinden 60 gün önce planlayın.
Entegrasyon mimarisinin tamamı için sütun gönderisine bakın: The Ultimate eCommerce Integration Guide.
Sıkça Sorulan Sorular
Bir kanalda var olan ancak diğerinde olmayan alanları nasıl yönetirim?
Kanonik modeliniz tüm alanların üst kümesini içerir. Alanı olmayan bir kanaldan gelen verileri dönüştürürken, bunu boş veya makul bir varsayılana ayarlayın. Giden bağlantıyı, alan kabul etmeyen bir kanala dönüştürürken, onu atlayın. Kanonik model evrensel bir tercüman görevi görür; her dilde her kavram için bir kelime yoktur ve bu iyidir.
Node.js yığınında veri dönüşümü için en iyi kitaplık hangisidir?
JSON dönüşümleri için JSONata, Lodash (yol erişimi ve düzenleme için) ve Zod (doğrulama için) gibi kitaplıklar çoğu ihtiyacı karşılar. XML için, ayrıştırma için fast-xml-parser'ı ve oluşturma için xmlbuilder2'yi kullanın. CSV için Papa Parse uç durumları iyi yönetir. Karmaşık ETL işlem hatları için Apache NiFi'yi veya kapsamlı birim testleriyle özel dönüşüm işlevlerini düşünün.
Canlı API'lere başvurmadan veri eşlemelerini nasıl test edebilirim?
Gerçek API yanıtlarını fikstür olarak kaydedin ve bunları birim testlerinde kullanın. Her eşleyicinin, gerçek dünyadan örnekler, uç durumlar (boş alanlar, maksimum uzunluklar, özel karakterler) ve hata durumları (yanlış biçimlendirilmiş veriler) içeren kapsamlı bir test paketi olmalıdır. Eşleme kodunu değiştiren her işlemde bu testleri CI/CD'de çalıştırın. Nock (Node.js) veya WireMock (Java) gibi araçlar, entegrasyon testleri için API uç noktalarını taklit edebilir.
Bir ETL aracı kullanmalı mıyım yoksa özel dönüşüm kodu mu yazmalıyım?
Tanınmış platformlarla standart e-Ticaret entegrasyonları için, uygulama katmanınızdaki (Node.js/TypeScript veya Python) özel kodun bakımı, ayrı bir ETL aracından daha kolaydır. ETL platformları (Fivetran, Airbyte, Apache NiFi), 20'den fazla veri kaynağını karmaşık dönüşüm hatlarıyla entegre ettiğinizde değer katar. 3-8 kanallı e-Ticaret entegrasyonları için, iyi test kapsamına sahip, amaca yönelik olarak oluşturulmuş haritalayıcılar daha basit ve daha fazla hata ayıklanabilir.
Sırada Ne Var
Veri eşleme, çok kanallı entegrasyonu güvenilir kılan gösterişsiz temeldir. Dönüşüm katmanınız her uç durumu incelikle ele aldığında entegrasyon yığınınızın geri kalanı temiz, tutarlı, doğrulanmış veriler üzerinde çalışır ve gece geç saatlerde yapılan hata ayıklama oturumları ortadan kalkar.
Odoo'yu 15'ten fazla pazara bağlayan önceden oluşturulmuş veri haritalayıcıları için ECOSIRE entegrasyon hizmetlerini keşfedin veya entegrasyonunuz için özel dönüşüm gereksinimlerini görüşmek üzere ekibimizle iletişime geçin.
ECOSIRE tarafından yayınlandı — işletmelerin Odoo ERP, Shopify eCommerce ve OpenClaw AI genelinde yapay zeka destekli çözümlerle ölçeklenmesine yardımcı oluyor.
Yazan
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
Shopify Mağazanızı Ölçeklendirin
Hızlı büyüyen e-ticaret için özel geliştirme, optimizasyon ve geçiş hizmetleri.
İlgili Makaleler
E-ticaret için Yapay Zeka İçerik Üretimi: Ürün Açıklamaları, SEO ve Daha Fazlası
E-ticaret içeriğini yapay zeka ile ölçeklendirin: ürün açıklamaları, SEO meta etiketleri, e-posta kopyası ve sosyal medya. Kalite kontrol çerçeveleri ve marka sesi tutarlılığı kılavuzu.
Yapay Zeka Destekli Dinamik Fiyatlandırma: Geliri Gerçek Zamanlı Olarak Optimize Edin
Talep esnekliği modellemesi, rakip izleme ve etik fiyatlandırma stratejileriyle geliri optimize etmek için yapay zeka dinamik fiyatlandırmasını uygulayın. Mimari ve yatırım getirisi kılavuzu.
E-ticaret için Yapay Zeka Dolandırıcılık Tespiti: Satışları Engellemeden Geliri Koruyun
Sahte pozitif oranları %2'nin altında tutarken, sahtekarlık işlemlerinin %95'ten fazlasını yakalayan yapay zeka sahtekarlık tespitini uygulayın. Makine öğrenimi puanlaması, davranış analizi ve yatırım getirisi kılavuzu.
eCommerce Integration serisinden daha fazlası
Şekillendirilebilir Ticaret: 2026 MACH Mimari Kılavuzu
2026'da MACH mimarisiyle şekillendirilebilir ticarette ustalaşın. Ölçeklenebilir e-ticaret için mikro hizmetleri, API öncelikli, bulutta yerel, kafasız stratejileri öğrenin.
Odoo eBay Bağlayıcısı: Listeleme, Siparişler ve Envanter Senkronizasyonu
Odoo 19 için Odoo eBay Bağlayıcısını kurun. Odoo'dan listeleri yönetin, sipariş senkronizasyonunu otomatikleştirin, envanteri senkronize edin, iadeleri yönetin ve çok mağazalı eBay hesaplarını yönetin.
Shopify + Odoo ERP Entegrasyonu: Tam Kılavuz
Shopify'ı Odoo ERP ile entegre etmeye yönelik kapsamlı kılavuz — envanter senkronizasyonu, sipariş yönetimi, müşteri verileri, finansal raporlama ve otomasyon iş akışları.
Shopify'da İade ve Değişimleri Yönetme
Shopify iade yönetimine ilişkin eksiksiz kılavuz: politika tasarımı, otomatik iş akışları, tersine lojistik, takas işlemleri ve iade oranlarının karlı bir şekilde azaltılması.
Hidrojen ile Başsız Shopify: Yüksek Performanslı Özel Vitrinler Oluşturun
Remix, Storefront API, Oxygen barındırma ve performans optimizasyonunu kapsayan Hydrogen çerçevesiyle başsız Shopify vitrinleri oluşturmaya yönelik eksiksiz kılavuz.
Çok Kanallı Envanter Senkronizasyonu: Stok Tükenmesini ve Aşırı Satışı Önleme
Çok kanallı envanter senkronizasyon kılavuzu. Gerçek zamanlı senkronizasyon yöntemlerini, emniyet stoğu tahsisini, ERP entegrasyonunu, aşırı satışı önlemeyi ve depo yönetimini kapsar.