# Kurslar için hesap makinesi işlevleri

## Kurs için kayıt

register\_customer\_on\_course(tariff\_id, email, email\_notification, period, reregistration)

<table><thead><tr><th width="239.15234375">Parametreler</th><th></th></tr></thead><tbody><tr><td><strong>!</strong> <strong>tariff_id</strong></td><td>gerekli parametre, fiyatlandırma planı kimliği. Bunu fiyatlandırma planı ayarlarında tarayıcı satırından kopyalayabilirsiniz.</td></tr><tr><td><strong>! email</strong></td><td>gerekli parametre, müşterinin e-posta adresi. Müşterinin e-postasının kaydedildiği belirli bir değer veya değişken belirtebilirsiniz.</td></tr><tr><td><strong>email_notification</strong></td><td>isteğe bağlı parametre, etkinleştirilmişse öğrenciye kursa kaydı hakkında bir e-posta mesajı gönderir.</td></tr><tr><td><strong>period</strong> </td><td><p>isteğe bağlı parametre, fiyatlandırma planının geçerlilik süresi. Aşağıdaki tarih biçimleri desteklenir: %d.%m.%Y %H:%M veya %d.%m.%Y Örnek:</p><p><code>period = '15.08.2023 11:00'</code></p></td></tr><tr><td>reregistration</td><td>isteğe bağlı parametre, True veya False değerlerini alır. Bu parametre isteğe bağlıdır ve öğrencileri aynı kurs ve fiyatlandırma planına yeniden kaydetmeniz gerekiyorsa belirtilir.</td></tr><tr><td>purchase_price</td><td>isteğe bağlı parametre. Müşteri buna bir bot üzerinden erişim için ödeme yaptıysa kurs ücretini belirtmenize olanak tanır. Belirtmezseniz, belirtilen fiyatlandırma planının ücreti kullanılacaktır. Müşteri kursa bot üzerinden belirtilen fiyatlandırma planından farklı bir fiyatla erişim ödüyorsa faydalı olacaktır.</td></tr></tbody></table>

Örnek: register\_customer\_on\_course(123, email, 1, "", True)

{% hint style="info" %}
Müşterilerin e-postaları alabilmesi için, parametreye 1 gönderin **email\_notification.**

**1 göndermezseniz, müşterinin e-postaları alınmaz!**
{% endhint %}

## Telegram Web App üzerinden kursa nasıl erişim veririm?

Bunun için Block Calculator'da şu fonksiyonu belirtin

**`access_course_from_webapp(text, button_label)`**\
Fonksiyon kullanılırken öğrenci Telegram'a giriş yapar ve kursa erişim kazanır. Daha sonra eğitim için öğrencinin kullanıcı adı ve şifre girmesine gerek kalmaz, çünkü yetkilendirme zaten tamamlanmıştır.

Fonksiyon Parametreleri:

**`text`** - müşterinin alacağı mesajın metnidir. Parametre, fonksiyona erişmeden önce Calculator alanına yazılarak bir değişkende belirtilebilir veya fonksiyonun içinde tırnak işaretleriyle belirtilebilir.

**`button_label`** - Web App düğmesi üzerindeki metindir. Parametreyi ister bir değişkende ister doğrudan fonksiyonun içinde belirtebilirsiniz. İkinci durumda parametre tırnak içinde yazılır.

{% hint style="warning" %} <mark style="color:kırmızı;">YALNIZCA bir Telegram botuyla çalışırken geçerlidir.</mark>
{% endhint %}

Aşağıdaki ekran görüntüsü fonksiyonun kullanımına bir örnek göstermektedir.\
İlk adımda müşteriyi kursa kaydediyoruz, ardından online ürüne erişim sağlamak için access\_course\_com\_webapp fonksiyonunu kullanıyoruz. &#x20;

Fonksiyon çalıştırmasının sonucu:

<div data-with-frame="true"><figure><img src="/files/3a54914ab74ed0d5cf754a8676f081a8c90ba16a" alt="" width="375"><figcaption></figcaption></figure></div>

Bu düğme, öğrencinin sahip olduğu kursların/oranların bulunduğu bir sayfayı açar.

> Müşteri öğrencinin hesabına bağlı değilse, fonksiyon 'müşteri müşteriye bağlı değil' döndürür.
>
> Böyle bir bağlantı oluşturmak için tek yapmanız gereken bir bot üzerinden kursa kaydolmaktır.

<div data-with-frame="true"><figure><img src="/files/332811352d3c3c1f861b97832d011027284e2080" alt="" width="563"><figcaption></figcaption></figure></div>

## Bot üzerinden kursa nasıl erişim verilir

### register\_customer\_on\_course()

Bunun için Block Calculator'da şu fonksiyonu belirtin

**register\_customer\_on\_course(tariff\_id, email, email\_notification, period)**

| Gerekli parametreler                                                                                                                                                                                        | İsteğe bağlı parametreler                                                                                                                                                                                  |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:kırmızı;">**!**</mark> **tariff\_id** - fiyatlandırma planı kimliği. Bunu fiyatlandırma planı ayarlarında veya Fiyatlandırma planları bölümünde tarayıcı satırından kopyalayabilirsiniz. | **email\_notification** - Bu parametre, etkinleştirilmişse öğrenciye kursa kaydı hakkında bir E-posta mesajı gönderir.                                                                                     |
| <mark style="color:kırmızı;">**!**</mark>**&#x20;email** - müşterinin e-posta adresi. Müşterinin e-postasının kaydedildiği belirli bir değer veya değişken belirtebilirsiniz.                               | <p><strong>period</strong> - fiyatlandırma planının geçerlilik süresi. Aşağıdaki tarih biçimleri desteklenir:  %d.%m.%Y %H:%M veya %d.%m.%Y <br>Örnek:</p><p> <code>period = '15.08.2023 11:00'</code></p> |

{% hint style="danger" %}
Müşterilerin e-postaları alabilmesi için, parametreye 1 göndermelisiniz **email\_notification.**&#x20;

**Eğer** <mark style="color:kırmızı;">1 göndermezseniz,</mark> **müşterinin e-postaları&#x20;**<mark style="color:kırmızı;">**alınmayacaktır!**</mark>
{% endhint %}

Fonksiyonu bir değişkene atayın.&#x20;

Çalıştırmadan sonra, yanıtların biri değişkene yazılacaktır:

**müşteri zaten tarifede** - bir fiyatlandırma planı varsa veya erişim manuel olarak kapatılmışsa

**wrong\_tariff\_id** - geçersiz bir kimlik belirtilmiş

**tariff\_added** - Fiyatlandırma planı öğrenciye eklendi

Örnek:

<div data-with-frame="true"><figure><img src="/files/fa8bc1425eb3283251042b55fbf9dcfa89ffbf34" alt="" width="563"><figcaption></figcaption></figure></div>

## Kurs erişimi nasıl kontrol edilir

### has\_customer\_tariff(tariff\_id)

Bunun için Block Calculator'da şu fonksiyonu belirtin **has\_customer\_tariff(tariff\_id, email)**<br>

| Gerekli parametreler                                                                                                                                                                                        | İsteğe bağlı parametreler                                                                                                                             |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| <mark style="color:kırmızı;">**!**</mark> **tariff\_id** - fiyatlandırma planı kimliği. Bunu fiyatlandırma planı ayarlarında veya Fiyatlandırma planları bölümünde tarayıcı satırından kopyalayabilirsiniz. | **email** - isteğe bağlı parametre. Müşterinin belirtilen e-posta adresiyle kursa kayıtlı olup olmadığını kontrol etmek için bu parametreyi gönderin. |

Çalıştırmadan sonra fonksiyon True veya False döndürür.

{% hint style="danger" %}
Hata durumunda olası fonksiyon yanıtları:

**wrong tariff\_id** - geçersiz değer gönderildi **tariff\_id**

**customer not found** - kullanıcı öğrenci olarak kayıtlı değil.
{% endhint %}

## Kursa erişim vermeden müşteriyi platforma nasıl kaydederim

### register\_customer(email)

Bunun için Block Calculator'da şu fonksiyonu belirtin **register\_customer(email)**&#x20;

| Fonksiyon Parametreleri                             | Açıklama                   |
| --------------------------------------------------- | -------------------------- |
| <mark style="color:kırmızı;">**!**</mark> **email** | müşterinin e-posta adresi. |

Fonksiyonda veya parametre değerlerinde bir değişken belirtebilirsiniz. Bir değişken belirtmek için, adını tırnak işaretleri, sözdizimi işaretleri, # işaretleri ve süslü parantezler olmadan yazın. Belirli bir değer belirtmek için müşterinin e-posta adresini tırnak içinde yazın.

> Fonksiyona bir değişken atamanız önerilir; böylece fonksiyonun sonucunu görebilir ve onunla çalışabilirsiniz. Aşağıdaki ekran görüntüsündeki örnek: değişken adı eşittir işaretinden önce, ardından parantez içinde fonksiyon ve parametre gelir.

Fonksiyon başarıyla çalıştırıldıktan sonra, yanıt değişkene yazılacaktır:\
**müşteri oluşturuldu**

## Kurs erişimi ve süre sınırları nasıl kontrol edilir?

Bunun için Block Calculator'da şu fonksiyonu belirtin **has\_customer\_tariff\_with\_date(tariff\_id, email),** kurs erişiminin e-posta ile mevcut olup olmadığını kontrol etmek için (erişimin durumu ve zaman sınırlamaları hakkında ayrıntılı bir yanıt döndürür).

&#x20;Fonksiyon Parametreleri:

| Gerekli parametre                                                                                                                                                                                           | İsteğe bağlı parametre              |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
| <mark style="color:kırmızı;">**!**</mark> **tariff\_id** - fiyatlandırma planı kimliği. Bunu fiyatlandırma planı ayarlarında veya Fiyatlandırma planları bölümünde tarayıcı satırından kopyalayabilirsiniz. | **email** - isteğe bağlı parametre. |

Cevap şu olacaktır:

* öğrenci kayıtlıdır ve erişimde zaman sınırı vardır: 2023-09-28 22:00:00 tarihine kadar erişim var&#x20;
* öğrenci kayıtlıdır, kısıtlama yoktur: Süre sınırı olmadan erişim var&#x20;
* öğrenci kayıtlı değildir: Bu tarifeye erişim yok

{% hint style="danger" %}
**Hata durumunda olası fonksiyon yanıtları:**

**wrong tariff\_id** - geçersiz değer gönderildi **tariff\_id**

**customer not found** -kullanıcı öğrenci olarak kayıtlı değil.
{% endhint %}

## Bir öğrencinin kurs erişimi bot üzerinden nasıl kaldırılır&#x20;

### del\_customer\_from\_course(**course\_id, email**)

Bunun için Block Calculator'da şu fonksiyonu belirtin  **del\_customer\_from\_course(course\_id, email)**

| Parametreler                                                  | Açıklama                    |
| ------------------------------------------------------------- | --------------------------- |
| <mark style="color:kırmızı;">**!**</mark>**&#x20;tariff\_id** | fiyatlandırma planı kimliği |
| <mark style="color:kırmızı;">**!**</mark>**&#x20;email**      | müşterinin e-posta adresi   |

## Bir öğrencinin bir web seminerine katılıp katılmadığı nasıl kontrol edilir&#x20;

### customer\_was\_on\_translation()

Kursa erişim botta verilmelidir.

Bunun için bir fonksiyon vardır [register\_customer\_on\_course()](https://docs.salebot.pro/onlain-kursy/sozdanie-kursov/chat-bot-dlya-onlain-kursa#kak-vydat-dostup-k-kursu-cherez-bot-register_customer_on_course) ve [access\_course\_from\_webapp()](https://docs.salebot.pro/onlain-kursy/sozdanie-kursov/chat-bot-dlya-onlain-kursa#kak-vydat-dostup-k-kursu-cherez-web-app-telegramm)

Bir öğrencinin web seminerine katılıp katılmadığını kontrol etmek için, Block Calculator'da customer\_was\_on\_translation(translation\_guid, email, after\_start\_time) fonksiyonunu belirtin

| Gerekli parametreler                                                                                                                                                                | İsteğe bağlı parametre                                                     |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| <p><mark style="color:kırmızı;"><strong>!</strong></mark> translation\_guid - yayın kimliği. Alan değerini kopyalayın </p><p><em>Adı yayın ayarları bağlantısında yer alır</em></p> | after\_start\_time - yayının başlama zamanı, biçim: '2023-04-18 13:30:00'. |
| <mark style="color:kırmızı;">**!**</mark> email - Öğrencinin e-posta adresi                                                                                                         |                                                                            |

{% hint style="warning" %}
**Dikkat edin!** Değişkenin adı, sizin için uygun ve anlaşılır herhangi bir ad olabilir. Fonksiyon parametrelerini yazarken hata olması durumunda, değişkene şu mesaj yazılacaktır:  wrong translation\_guid

Bu durumda, fonksiyon parametrelerini kontrol etmenizi ve tekrar test etmenizi öneririz. Calculator'da bir değişkenden web seminerindeki kalış süresi değerini almak için diziler ve sözlüklerle çalışma fonksiyonunu kullanabilirsiniz. ссылка/ссылка [dizilerle](https://docs.salebot.pro/peremennye-1/rabota-s-massivami-i-slovaryami/rabota-s-massivami#kak-poluchit-element-massiva) ve [sözlüklerle](https://docs.salebot.pro/peremennye-1/rabota-s-massivami-i-slovaryami/rabota-so-slovaryami#kak-poluchit-znachenie-slovarya-po-klyuchu).

Block Calculator'daki ayarların örneği:

time\_spent1 = answer2\[0]\['time\_spent']
{% endhint %}

## Bir bota bağlı öğrencinin adı nasıl bulunur?

Öğrencilerin, bir öğrencinin kişisel hesabındaki çevrimiçi sohbete bağlı olduğu durumlar olabilir; ayrıca bir mesaja bağlı olup bot aracılığıyla yöneticilerinize yazanlar da olabilir. Botta kursun tamamlandığını gösteren adlandırılmış sertifikaları doğru şekilde düzenlemek ve öğrencinin adını listede aramamak için bir fonksiyon vardır:

get\_customer\_name() - müşteriye bağlı öğrencinin adını döndürür.

Parametresiz bir fonksiyon.

<div data-with-frame="true"><figure><img src="/files/279b16ac5e95aae67675f9bb130bfb29f8238e2c" alt="" width="563"><figcaption></figcaption></figure></div>

Öğrencinin kursa kayıt olurken girdiği öğrencinin adını veya kişisel hesabındaki öğrenci adını döndürür.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/tr/lms/kurslar-nasil-satilir/chatbot-icinde-kurs-satisi/kurslar-icin-hesap-makinesi-islevleri.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
