T-SOFT/Tema Geliştirme/CLI Referansı

CLI Referansı

tsoft-cli'ın tüm komutlarının, hata kodlarının ve yapılandırma ayrıntılarının başvuru sayfası. Kurulum ve oturum açma için bkz. Kurulum; akış anlatımları için Sıfırdan Tema Geliştirmek ve Müşteri Temasını Geliştirmek.

Komut ağacı

tsoft
tsoft
 ├── login                  # OAuth2 ile giriş
 ├── logout                 # Çıkış ve token temizleme
 ├── whoami                 # Aktif kullanıcı bilgisi
 ├── store
 │   ├── list               # Giriş yapılan mağazaları listele
 │   └── use [domain]       # Aktif mağazayı ayarla
 ├── org
 │   └── switch             # Organizasyon değiştir
 └── theme
     ├── list               # Temaları listele
     ├── create [name]      # Yeni tema oluştur
     ├── pull               # Temayı indir
     ├── use [name]         # Aktif tema seç
     ├── fork               # Mevcut temayı fork'la
     ├── dev [name]         # Geliştirme modu
     ├── push [name]        # Sunucuya gönder
     └── section            # Argümansız: interaktif menü
         ├── list           # Section'ları listele
         ├── add            # Hazır section ekle
         ├── create         # Boş section oluştur
         └── fork           # Section'dan türet

Çalışma dizini

theme dev, theme push ve theme section komutları tema dizininin içinden çalıştırılır; CLI mağaza ve temayı bulunduğunuz dizinden çözer:

Terminal
cd example-tsoft-biz/my-theme
tsoft theme dev

[name] parametresi geriye dönük uyumluluk için kabul edilmeye devam eder, ancak önerilen kullanım tema dizininden argümansız çalıştırmaktır. Argüman da vermez ve tema dizininin dışındaysanız tsoft theme use ile seçilmiş aktif tema kullanılır.

Dizin yapısı, çözümleme kuralları ve birden fazla mağazayla çalışma için bkz. Çalışma Dizini.

Hızlı referans

Tema geliştirme

KomutFlag'ler
tsoft theme dev [name]—
tsoft theme push [name]--verbose
tsoft theme section—
tsoft theme section list—
tsoft theme section add—
tsoft theme section create—
tsoft theme section fork—

Tema yönetimi

KomutFlag'ler
tsoft theme list—
tsoft theme create [name]—
tsoft theme pull—
tsoft theme use [name]—
tsoft theme fork--from <slug>

Hesap ve mağaza

KomutFlag'ler
tsoft login—
tsoft logout—
tsoft whoami—
tsoft org switch—
tsoft store list—
tsoft store use [domain]—

Global flag'ler

FlagAçıklama
--jsonCI/CD için makine tarafından okunabilir çıktı
--verboseAyrıntılı hata çıktısı
--store <domain>Komutu aktif mağazayı değiştirmeden başka bir mağazada çalıştırır
--versionCLI sürümü
--helpYardım ekranı

--store, bulunduğunuz dizinden gelen mağaza bilgisine göre önceliklidir:

Terminal
tsoft --store musteri.tsoft.biz theme push
Interaktif komutlar --json altında çalışmaz. Seçim ekranı gerektiren komutlar JSON modunda hata verip bunu bildirir: login, org switch, argümansız store use ve --from verilmeden çalıştırılan theme fork. CI/CD'de bu komutları argümanlarıyla çağırın (tsoft --json theme fork --from starter-theme), oturumu ise önceden tsoft login ile açın.
tsoft theme publish ve tsoft theme submit geriye dönük uyumluluk için korunan eski adlardır: publish uyarı verip push'a yönlendirir, tema incelemeye gönderme işlemi artık partner panelinden yapılır — bkz. Tema Marketine Gönderme. Yeni akışlarda kullanmayın.

Section komutları

Section'lar block klasörleri altında gruplanır (header, footer, product-list, product-detail, breadcrumb, customer-login, vendor-login…). Section komutları aktif tema üzerinde çalışır ve işlem bittiğinde tema dosyalarınızı otomatik olarak günceller.

tsoft theme section komutunu alt komut vermeden çalıştırdığınızda dört seçenekli bir menü açılır:

tsoft theme section
tsoft theme section
# ┌ 🧩 Section İşlemleri ─────────┐
# │  Ne yapmak istiyorsunuz?     │
# └──────────────────────────────┘
# ❯ Hazır section ekle
#   Boş section oluştur
#   Section'dan türet
#   Section'ları listele
Alt komutMenüdeki karşılığıNe yapar
section addHazır section ekleBir block seçip hazır section'ları temaya ekler
section createBoş section oluşturSeçtiğiniz block altında boş bir .twig dosyası oluşturur
section forkSection'dan türetMevcut bir section'ı yeni bir adla kopyalar
section listSection'ları listeleBlock'ları ve içlerindeki section'ları listeler
tsoft theme dev çalışırken S tuşuna basarak bu menüyü izleme oturumundan çıkmadan açabilirsiniz.

Block ve section seçicileri yazdıkça filtreler; hem görünen adı hem de klasör adını eşleştirir.

section add — hazır section ekleme

tsoft theme section add
tsoft theme section add
# 🔧 Section ekleme işlemi başlatılıyor...
# Aktif Tema: my-theme
#
# ┌ 📦 Block Seçimi ──────────────────────┐
# │  Hangi block'ı eklemek istiyorsunuz?  │
# └───────────────────────────────────────┘
# ❯ Üst Kısım        (header, 1 section)
#   Alt Kısım        (footer, 1 section)
#   Ürün Listesi     (product-list, 1 section)
#   Ürün Detayı      (product-detail, 1 section)
#   Navigasyon       (breadcrumb, 1 section)
#   Üye Girişi       (customer-login, 1 section)
#   Bayi Girişi      (vendor-login, 2 section)

Seçtiğiniz block'ta tek section varsa doğrudan eklenir. Birden fazla section varsa ekleme modu sorulur:

Ekleme moduDavranış
Tüm section'ları ekleBlock'taki tüm section'ları bir seferde ekler.
Belirli section'ları seçSpace ile işaretleyerek istediklerinizi seçersiniz.

Eklenmek istenen section temada zaten varsa üç seçenek sunulur: Atla (mevcut korunur), Üzerine yaz (bu section güncellenir), Tümünün üzerine yaz (kalan tüm çakışmalar üzerine yazılır).

Sonuç
# ✓ 6 section başarıyla eklendi
# 🔄 Tema dosyaları güncelleniyor...
# ✓ Tema dosyaları güncellendi
# 🎉 İşlem tamamlandı!
#    Konum: example-tsoft-biz/my-theme/

section create — boş section oluşturma

Seçtiğiniz block altında sıfırdan yazacağınız boş bir section dosyası açar:

tsoft theme section create
tsoft theme section create
# ┌ ✨ Boş Section Oluştur ────────────────┐
# │  Hangi block içine eklemek istiyorsunuz? │
# └────────────────────────────────────────┘
# ❯ Ürün Listesi (product-list)
#
# ? Section adı (.twig otomatik eklenir): kampanya-serit
# ? "section/product-list/kampanya-serit.twig" dosyası
#   "My Theme" temasında oluşturulacak. (Y/n)
# ✓ "section/product-list/kampanya-serit.twig" oluşturuldu.

section fork — section'dan türetme

Mevcut bir section'ı temel alıp yeni adla kopyasını oluşturur; böylece hazır bir section'ın üzerine yazmadan varyantını geliştirebilirsiniz:

tsoft theme section fork
tsoft theme section fork
# ┌ 🌱 Section'dan Türet ─────────────────────┐
# │  Hangi section'dan türetmek istiyorsunuz? │
# └───────────────────────────────────────────┘
# ❯ Ürün Izgarası (Ürün Listesi, v1.2.0)
#
# ? Yeni section adı (.twig otomatik eklenir): urun-izgara-genis
# ✓ "section/product-list/urun-izgara-genis.twig" oluşturuldu.
#   İçeriği düzenlemek için bu dosyayı açın.
Section adı kuralı: yalnızca küçük harf, rakam ve tire kullanılabilir; ad bir harf veya rakamla başlamalıdır. Uzantı yazmayın — .twig otomatik eklenir.

section list — listeleme

Block'ları, altlarındaki section'ları ve her section'ın sürüm, açıklama, etiket ve dosya bilgisini listeler:

tsoft theme section list
tsoft theme section list
# Section'lar listeleniyor...
# Aktif Tema: my-theme
#
# Toplam 7 block bulundu:
#
# 📦 Ürün Listesi
#    ID: 12
#    Klasör: product-list
#    Mevcut section'lar (2):
#      • Ürün Izgarası (ID: 34, v1.2.0)
#        Vitrin için ürün ızgarası
#        Etiketler: vitrin, urun
#        Dosya: section/product-list/default.twig

Hata kodları

HataAçıklamaÇözüm
PUSH-PENDING-REVIEWTema incelemedeOnay bekleyin veya partner panelinden işlem yapın
PUSH-AUTHYetki hatasıtsoft login
PUSH-BACKEND-ERRORSunucu hatasıTekrar deneyin
PUSH-BACKEND-REJECTPush reddedilditsoft theme push --verbose ile detayları görün
HTTP 401Token geçersiztsoft login
HTTP 403Yetersiz yetkitsoft org switch
HTTP 404Tema bulunamadıtsoft theme list
HTTP 409Geçersiz durumTema durumunu kontrol edin
HTTP 423Tema kilitliKilidin kalkmasını bekleyin
HTTP 5xxSunucu hatasıDaha sonra deneyin

Örnek hata çıktısı:

tsoft theme push
tsoft theme push
# ✖ Push yapılamaz: tema inceleme bekliyor.
#   İpucu: İnceleme tamamlanana kadar bekleyin
#   veya partner panelinden işlem yapın.
Token süreleri: access token kısa sürelidir (1-2 saat) ve otomatik yenilenir; refresh token uzun sürelidir (~1 ay), süresi dolunca yeniden giriş gerekir. HTTP 401 hatalarının en yaygın nedeni budur — tsoft login sorunu çözer. Hangi mağazanın oturumunda ne kadar süre kaldığını tsoft store list ile görebilirsiniz.

Yapılandırma

Ortam değişkenleri

DeğişkenVarsayılanAçıklama
TSOFT_LANGtrArayüz dili (tr/en)
TSOFT_DEBUG—1 verildiğinde eksik çeviri anahtarlarını stderr'e yazar
TSOFT_IDP_DOMAINlogin.tsoft360.comOAuth2 domaini (ileri düzey)
TSOFT_CLIENT_IDyerleşikOAuth2 istemci kimliği (ileri düzey)
TSOFT_CALLBACK_PORT8046Login callback portu (ileri düzey)
TSOFT_COLORS—Terminal renklerini kapatır (ileri düzey)
TSOFT_ASCII_ART—Yardım ekranındaki ASCII logoyu kapatır (ileri düzey)
TSOFT_ORANGE—Arayüzün vurgu rengini değiştirir (ileri düzey)

Güvenlik

  • OAuth2 PKCE akışı token çalınma riskini en aza indirir; state parametresi CSRF'e karşı korur.
  • Oturum bilgileri yalnızca sizin okuyabileceğiniz dosya izinleriyle, kullanıcı ana dizininizde saklanır — tema klasörlerinize hiçbir kimlik bilgisi yazılmaz.
  • Oturumlar mağaza başına ayrı tutulur; bir mağazadan çıkmak diğerlerini etkilemez.
  • Access token otomatik yenilenir; refresh token süresi dolunca yeniden giriş gerekir.
  • tsoft logout token'ı sunucuda iptal eder ve yerel kimlik bilgilerini siler.

Sonraki adımlar