Shopify Flow'dan bir HTTP isteği gönderin

Shopify Flow'dan bir HTTP isteği gönderin

Sayfayı kopyala

Shopify Flow'dan harici API'lere HTTP isteği gönderin, Shopify Basic planında bile. Videolu adım adım kılavuz ve çalışan bir Airtable örneği.

HTTP istekleri için bunu neden kullanmalı?

Shopify Flow, yerleşik bir “HTTP isteği gönder” eylemi içerir; ancak bu eylem yalnızca belirli Shopify planlarında kullanılabilir. Mağazanız Basic planındaysa, bunun yerine Workflow Transactional Email’i kullanarak yine de harici API’leri çağırabilirsiniz.

İsteği uygulamada bir kez oluşturursunuz, ardından iş akışınızın içinde HTTP Request eylemini kullanarak bu isteği seçersiniz. İsteği iş akışında değil uygulamada tutmak, kimlik bilgilerinin hiçbir zaman Shopify Flow yapılandırmanızda kalmayacağı anlamına gelir ve ayrıca isteğe ve yanıtlara ilişkin tam günlük kaydı özelliğinden ücretsiz olarak yararlanabilirsiniz.

Ne geliştireceksiniz?

Her 10 dakikada bir çalışan, henüz Airtable'da bulunmayan ürünleri bulan ve bunları Airtable'a gönderen bir iş akışı.

Bu, şunları kullanır:

  • Airtable jetonunu ve temel kimliğini saklamanın püf noktaları
  • HTTP Request'ler: istek şablonunu tanımlamak için
  • Shopify Flow içindeki HTTP Request eylemini çalıştırmak için
  • Sonucu kontrol etmek için geçmiş

Video kılavuzu

Tüm süreç: gizli anahtarların oluşturulması, HTTP isteği ve iş akışı. Videoda ses yok.

Başlamadan önce

  • Workflow Transactional Email kuruldu.
  • Shopify Flow'a erişiminiz var.
  • Bir Airtable tabanı kimliğiniz ve ürün verilerini almaya hazır bir tablonuz var.
  • Doğru izinlere sahip bir Airtable erişim jetonunuz var.

1. Adım: Kimlik bilgilerini gizli veriler olarak saklayın

Kimlik bilgilerini isteğe doğrudan yazmak yerine, bunları bir kez gizli veriler olarak kaydedin ve {{ secrets.yourKeyName }} biçiminde kullanın. Bu veriler depolandıkları sırada şifrelenir, farklı isteklerde tekrar kullanılabilir ve geçmişinizden gizlenir.

"Açık Gizli Bilgiler"i seçin ve Gizli bilgi oluştur seçeneğine tıklayın.

"Gizli Bilgiler" sayfası ve "Gizli Bilgi Oluştur" düğmesi

Anahtarı, değeri ve açıklamayı girin, ardından kaydedin.

Gizli anahtar, değer ve açıklama giriliyor

Bu örnekte iki gizli bilgi saklanmaktadır: kişisel erişim jetonu ve Airtable tabanı kimliği.

2. Adım: İsteği oluşturun

Bu örnekte Airtable'ın create-records uç noktası kullanılmaktadır.

HTTP Requestleri"ni açın ve İstek oluştur seçeneğine tıklayın.

"İstek Oluştur" düğmesinin bulunduğu HTTP Request sayfası

Airtable ürün kaydı oluştur gibi net bir ad verin; daha sonra Shopify Flow'da bu adı arayacaksınız.

Yöntemi ayarlayın. Airtable kayıtları oluşturmak için bu yöntem POST’tur.

URL alanına uç noktayı girin. https:// öneki sabittir, bu nedenle geri kalan kısmı yazın:

api.airtable.com/v0/{{ secrets.airTableProductsBaseId }}/Products

Bu görsel, Airtable uç noktasının tabanınıza nasıl eşleştiğini göstermektedir; böylece bunu kendi tabanınıza göre ayarlayabilirsiniz:

Airtable uç nokta URL’sinin tabana nasıl eşleştirildiği

Airtable’ın gerektirdiği başlıkları ekleyin:

Authorization: Bearer {{ secrets.airtableAccessToken }}
Content-Type: application/json

İstek gövdesinde, kayıtlar için bir değişken kullanın; böylece Shopify Flow bunları sağlayabilir:

{
  "records": {{ variables.records }}
}

Airtable, bu değişkenin aşağıdaki gibi bir diziye dönüşmesini bekler:

"records": [
  {
    "fields": {
      "Title": "Classic White T-Shirt",
      "Handle": "classic-white-tshirt",
      "Product ID": 1001
    }
  },
  {
    "fields": {
      "Title": "Eco-Friendly Water Bottle",
      "Handle": "eco-water-bottle",
      "Product ID": 1002
    }
  }
]

Bir sonraki adımda bu diziyi iş akışında oluşturacağız.

Tamamlanmış istek şu şekilde görünür:

Tamamlanan Airtable HTTP isteği

HTTP Requestler sayfası, kaydedilmiş bir isteği, yöntemiyle ve URL’siyle birlikte listeler
“HTTP Requestler” bölümünde kaydedilmiş tüm istekler listelenir; “İstek Oluştur” seçeneği ise yeni bir istek başlatır.
Yöntem, URL, başlıklar ve gövdeyi içeren HTTP istek düzenleyicisi
İstek: yöntem, URL, başlıklar ve gövde; bunların her birinde değişkenler ve gizli bilgiler kullanılabilir.

İsteği kaydedin. Artık Shopify Flow’daki HTTP Request eyleminde bu istek seçilebilir.

3. Adım: İş akışını oluşturun

Shopify Flow'u açın ve yeni bir iş akışı oluşturun.

Zamanlamaya dayalı bir tetikleyici seçin. Bu örnek, tanıtım amacıyla her 10 dakikada bir çalıştırılır; üretim ortamında kullanmak üzere makul bir aralık seçin.

Shopify Flow'da zamanlanmış bir tetikleyici

Henüz Airtable'da bulunmayan ürünleri getir. Daha önce gönderilmiş ürünler son adımda added-to-airtable etiketini aldığından, bu sorgu onları hariç tutar. Shopify'ın sorgu argümanı referansı'na bakın.

Shopify Flow'da etiketlenmemiş ürünleri alma

Şimdi verileri biçimlendirin. İstek gövdesi bir records değişkeni beklemektedir; bu nedenle, alınan ürünleri bu diziye dönüştürmek için Shopify Flow’un “Kod çalıştır” eylemini kullanın.

"Kodu Çalıştır" eylemini ekleme

Adımı şu şekilde yapılandırın:

"Kodu Çalıştır" adımını yapılandırma

Sorgu:

query {
  getProductData {
    id
    handle
    title
  }
}

Kod:

export default function main(input) {
  const records = input.getProductData.map((data) => {
    const numericId = parseInt(data.id.replace("gid://shopify/Product/", ""));
    return {
      fields: {
        "Product ID": numericId,
        "Title": data.title,
        "Handle": data.handle
      }
    };
  });

  return {
    records: JSON.stringify(records)
  };
}

Çıktı şeması:

"The output of Run Code"
type Output {
  "The message returned by the script"
  records: String
}

Sonucu sağ tarafta önizleyebilirsiniz:

"Run" kodunun çıktısını önizleme

Bu uygulama tarafından sunulan HTTP Request eylemini ekleyin.

HTTP Request eylemini ekleme

İstenildiğinde, kaydettiğiniz isteği seçin - Airtable ürün kaydı oluştur - ardından kaydedin ve iş akışına geri dönün.

Kaydedilmiş HTTP isteğinin seçilmesi

İşlemin “değişkenler” alanında, az önce biçimlendirdiğiniz kayıtları aktarın:

{
  "records": "{{runCode.records}}"
}

Biçimlendirilmiş kayıtları isteğe aktarma

Son olarak, alınan ürünleri tek tek inceleyin ve bunlara added-to-airtable etiketini ekleyin; böylece bir sonraki çalıştırmada bunlar tekrar alınmaz.

Ürünleri gönderdikten sonra etiketleme

İş akışını kaydedin ve etkinleştirin.

4. Adım: Çalıştığını doğrulayın

Geçmiş bölümünde, isteğin başarılı olup olmadığını ve Airtable’ın ne yanıt verdiğini görebilirsiniz.

İsteği gösteren Geçmiş listesi

Girişi açarak istek verilerini, yanıt verilerini ve zamanlamayı inceleyin.

İstek ayrıntıları görünümü

İsteğin düzenleme sayfasından, İstek geçmişi düğmesi, doğrudan o isteğe göre filtrelenmiş geçmişe yönlendirir.

Uygulama hangi numaraları aramanıza izin vermez?

Satıcı tarafından yapılandırılan istekler bir güvenlik kontrolünden geçer. localhost dahil olmak üzere, iç veya özel ağ adreslerine yönelik istekler, bulut meta veri uç noktaları ve özel bir aralığa çözümlenen her türlü adres (yönlendirme yoluyla olsa bile) reddedilir. SSRF blocked (SSRF engellendi) ifadesini içeren bir hata görürseniz, hedef adres bu listede yer almaktadır. İstekler ayrıca en fazla 5 yönlendirmeye izin verir ve yanıt boyutu 10 MB ile sınırlandırılır.

Shopify Flow, bir eylem yanıtının boyutunu 50 KB ile sınırlamaktadır. Test yanıtı bu sınırı aşarsa, uygulama, adımın canlı bir iş akışında başarısız olmasına izin vermek yerine kaydetme işlemini engeller.

En iyi uygulamalar

  • Shopify Flow'da kolayca bulunabilmeleri için istek adlarını net bir şekilde belirleyin.
  • API jetonlarını başlıklara yazmak yerine gizli bilgiler olarak saklayın.
  • Vücudu, hedefin gerçekten ihtiyaç duyduğu alanlara odaklanmış halde tutun.
  • Herhangi bir değişiklik yaptıktan sonra Geçmiş’i kontrol edin ve isteğin hâlâ başarılı olup olmadığını doğrulayın.
  • Boş döngülerde çalışmaması için isteğin önüne bir koşul ekleyin.

İlgili