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
├── 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:
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
| Komut | Flag'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
| Komut | Flag'ler |
|---|---|
tsoft theme list | — |
tsoft theme create [name] | — |
tsoft theme pull | — |
tsoft theme use [name] | — |
tsoft theme fork | --from <slug> |
Hesap ve mağaza
| Komut | Flag'ler |
|---|---|
tsoft login | — |
tsoft logout | — |
tsoft whoami | — |
tsoft org switch | — |
tsoft store list | — |
tsoft store use [domain] | — |
Global flag'ler
| Flag | Açıklama |
|---|---|
--json | CI/CD için makine tarafından okunabilir çıktı |
--verbose | Ayrıntılı hata çıktısı |
--store <domain> | Komutu aktif mağazayı değiştirmeden başka bir mağazada çalıştırır |
--version | CLI sürümü |
--help | Yardım ekranı |
--store, bulunduğunuz dizinden gelen mağaza bilgisine göre önceliklidir:
tsoft --store musteri.tsoft.biz theme push
--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
# ┌ 🧩 Section İşlemleri ─────────┐
# │ Ne yapmak istiyorsunuz? │
# └──────────────────────────────┘
# ❯ Hazır section ekle
# Boş section oluştur
# Section'dan türet
# Section'ları listele
| Alt komut | Menüdeki karşılığı | Ne yapar |
|---|---|---|
section add | Hazır section ekle | Bir block seçip hazır section'ları temaya ekler |
section create | Boş section oluştur | Seçtiğiniz block altında boş bir .twig dosyası oluşturur |
section fork | Section'dan türet | Mevcut bir section'ı yeni bir adla kopyalar |
section list | Section'ları listele | Block'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
# 🔧 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 modu | Davranış |
|---|---|
| Tüm section'ları ekle | Block'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).
# ✓ 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
# ┌ ✨ 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
# ┌ 🌱 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.
.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
# 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ı
| Hata | Açıklama | Çözüm |
|---|---|---|
PUSH-PENDING-REVIEW | Tema incelemede | Onay bekleyin veya partner panelinden işlem yapın |
PUSH-AUTH | Yetki hatası | tsoft login |
PUSH-BACKEND-ERROR | Sunucu hatası | Tekrar deneyin |
PUSH-BACKEND-REJECT | Push reddedildi | tsoft theme push --verbose ile detayları görün |
HTTP 401 | Token geçersiz | tsoft login |
HTTP 403 | Yetersiz yetki | tsoft org switch |
HTTP 404 | Tema bulunamadı | tsoft theme list |
HTTP 409 | Geçersiz durum | Tema durumunu kontrol edin |
HTTP 423 | Tema kilitli | Kilidin kalkmasını bekleyin |
HTTP 5xx | Sunucu hatası | Daha sonra deneyin |
Örnek hata çıktısı:
tsoft theme push
# ✖ Push yapılamaz: tema inceleme bekliyor.
# İpucu: İnceleme tamamlanana kadar bekleyin
# veya partner panelinden işlem yapın.
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şken | Varsayılan | Açıklama |
|---|---|---|
TSOFT_LANG | tr | Arayüz dili (tr/en) |
TSOFT_DEBUG | — | 1 verildiğinde eksik çeviri anahtarlarını stderr'e yazar |
TSOFT_IDP_DOMAIN | login.tsoft360.com | OAuth2 domaini (ileri düzey) |
TSOFT_CLIENT_ID | yerleşik | OAuth2 istemci kimliği (ileri düzey) |
TSOFT_CALLBACK_PORT | 8046 | Login 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;
stateparametresi 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 logouttoken'ı sunucuda iptal eder ve yerel kimlik bilgilerini siler.