WHMCS Promotion::appliesToService Hatası Çözümü | Orphan Service Fix & Kupon Problemleri Rehberi

- WHMCS Promotion::appliesToService Hatası Çözümü | Orphan Service Fix & Kupon Problemleri Rehberi
- Hatanın Başlıca Nedenleri
- Belirtiler
- Teşhis (Diagnostik) Adımları
- 1) Orphan hizmetleri bulma
- 2) Promosyon ayarlarını inceleme
- 3) Log kontrolü
- Çözüm Yöntemleri
- Yöntem A — WHMCS Arayüzü ile Onarım (Önerilen)
- Yöntem B — SQL ile Toplu Düzeltme (İleri Seviye)
- SEO Anahtar Kelimeler
- Önleyici Tedbirler
- Sonuç
WHMCS kullanıcılarının sıklıkla karşılaştığı hatalardan biri:
TypeError: WHMCS\Product\Promotion::appliesToService(): Argument #1 ($serviceId) must be of type int, null given
Bu hata, promosyonların veya kuponların belirli bir hizmete uygulanması sırasında serviceId değerinin null gelmesiyle oluşur. Özellikle orphan (ürünsüz) hizmetler ve yanlış promosyon ayarları bu hatanın ana nedenlerindendir.
Hatanın Başlıca Nedenleri
- Orphan (ürünsüz) hizmetler:
tblhosting.packageid
boş ya da silinmiş ürüne bağlı. - Promosyon ayarları: Kuponun “Applies To” kısmında artık mevcut olmayan ürünler seçili.
- Üçüncü parti modüller: Eksik veya yanlış
serviceId
gönderimi. - Bozulmuş ilişkiler: Ürün, grup veya sunucu bağları hatalı.
Belirtiler
- Müşteri hizmet sayfalarında hata mesajı
- Kupon uygulanamıyor
- Faturalama veya cron görevlerinde hata logları
Teşhis (Diagnostik) Adımları
1) Orphan hizmetleri bulma
SELECT id, userid, packageid, domain
FROM tblhosting
WHERE packageid IS NULL
OR packageid NOT IN (SELECT id FROM tblproducts);
2) Promosyon ayarlarını inceleme
Configuration → System Settings → Promotions menüsünden kuponu açın. “Applies To” kısmındaki ürünlerin hâlâ mevcut olduğundan emin olun.
3) Log kontrolü
System Logs → Activity Log üzerinden hatayı tetikleyen işlem adımlarını inceleyin.
Çözüm Yöntemleri
Yöntem A — WHMCS Arayüzü ile Onarım (Önerilen)
- Hizmetleri düzeltin: Clients → Services kısmında orphan hizmetleri doğru ürüne bağlayın.
- Promosyonu güncelleyin: Kuponun “Applies To” listesinden geçersiz ürünleri çıkarın.
- Test edin: Kuponu tekrar uygulayın.
Yöntem B — SQL ile Toplu Düzeltme (İleri Seviye)
⚠️ Yedek almadan uygulamayın!
UPDATE tblhosting
SET packageid = 123
WHERE packageid IS NULL
OR packageid NOT IN (SELECT id FROM tblproducts);
SEO Anahtar Kelimeler
- WHMCS Promotion::appliesToService hatası çözümü
- WHMCS TypeError null given
- WHMCS kupon hatası
- WHMCS orphan service fix
- WHMCS promosyon kuponu çalışmıyor
Önleyici Tedbirler
- Günlük veritabanı yedeği alın.
- WHMCS’inizi güncel tutun.
- Ürün/sunucu silmeden önce bağımlılıkları kontrol edin.
- Cron ve logları düzenli inceleyin.
Sonuç
Bu hata genellikle orphan hizmetler veya yanlış promosyon hedefleri yüzünden oluşur. Orphan hizmetleri doğru ürünlere bağlamak ve promosyonu güncellemekle sorun kalıcı olarak çözülür. ✅