diff --git a/frontend/admin/src/stores/settings.js b/frontend/admin/src/stores/settings.js
index a2cf8a2..cee5dae 100644
--- a/frontend/admin/src/stores/settings.js
+++ b/frontend/admin/src/stores/settings.js
@@ -50,6 +50,11 @@ export const useSettingsStore = defineStore('settings', {
text_empty_cart: '',
text_order_created_success: '',
zero_price_text: '',
+ start_image: '',
+ start_message: '',
+ start_button: {
+ text: '',
+ },
},
sliders: {
diff --git a/frontend/admin/src/views/TextsView.vue b/frontend/admin/src/views/TextsView.vue
index 554e1c6..ddf8e21 100644
--- a/frontend/admin/src/views/TextsView.vue
+++ b/frontend/admin/src/views/TextsView.vue
@@ -16,11 +16,32 @@
Текст, который будет выводиться вместо цены, в случае если цена = 0.
Если текст отсутствует, то будет выводиться нулевая цена по умолчанию.
+
+
+ Изображение, которое будет использоваться в приветственном сообщении покупателю (когда он
+ запустит бота через `/start`).
+
+
+
+ Сообщение, которое выводится в приветственном сообщении покупателю (когда он
+ запустит бота через `/start`). Можно использовать HTML разметку, которую
+
+ поддерживает Telegram
+ . Можно использовать
+ эмодзи
+ .
+
+
+
+ Текст на кнопке приветственного сообщения, которая открывает магазин.
+
diff --git a/module/oc_telegram_shop/upload/oc_telegram_shop/configs/app.php b/module/oc_telegram_shop/upload/oc_telegram_shop/configs/app.php
index 82f9c5d..b132baf 100755
--- a/module/oc_telegram_shop/upload/oc_telegram_shop/configs/app.php
+++ b/module/oc_telegram_shop/upload/oc_telegram_shop/configs/app.php
@@ -59,7 +59,19 @@ TEXT,
'texts' => [
'text_no_more_products' => 'Это всё по текущему запросу. Попробуйте уточнить фильтры или поиск.',
'text_empty_cart' => 'Ваша корзина пуста.',
- 'text_order_created_success' => 'Ваш заказ успешно оформлен и будет обработан в ближайшее время.'
+ 'text_order_created_success' => 'Ваш заказ успешно оформлен и будет обработан в ближайшее время.',
+ 'start_message' => <<Добро пожаловать!
+
+Вы находитесь в официальном магазине.
+Здесь вы можете ознакомиться с товарами, узнать подробности и оформить заказ прямо в Telegram.
+
+Нажмите кнопку ниже, чтобы перейти в каталог.
+HTML,
+ 'start_image' => null,
+ 'start_button' => [
+ 'text' => '🛍 Перейти в каталог',
+ ],
],
'orders' => [
diff --git a/module/oc_telegram_shop/upload/oc_telegram_shop/framework/Telegram/Commands/StartCommand.php b/module/oc_telegram_shop/upload/oc_telegram_shop/framework/Telegram/Commands/StartCommand.php
index 0b3146c..75af2a8 100755
--- a/module/oc_telegram_shop/upload/oc_telegram_shop/framework/Telegram/Commands/StartCommand.php
+++ b/module/oc_telegram_shop/upload/oc_telegram_shop/framework/Telegram/Commands/StartCommand.php
@@ -2,14 +2,37 @@
namespace Openguru\OpenCartFramework\Telegram\Commands;
+use Openguru\OpenCartFramework\Config\Settings;
+use Openguru\OpenCartFramework\Telegram\Enums\ChatAction;
+use Openguru\OpenCartFramework\Telegram\TelegramBotStateManager;
+use Openguru\OpenCartFramework\Telegram\TelegramService;
+
class StartCommand extends TelegramCommand
{
+ private Settings $settings;
+
+ public function __construct(TelegramService $telegram, TelegramBotStateManager $stateManager, Settings $settings)
+ {
+ parent::__construct($telegram, $stateManager);
+ $this->settings = $settings;
+ }
+
public function handle(array $update): void
{
$chatId = $update['message']['chat']['id'];
- $message = 'Добро пожаловать в Telecart \- интернет магазин в Telegram\.';
+ $message = $this->settings->get('texts.start_message', 'Welcome to Telecart - Telegram e-commerce solution.');
+ $buttons = [
+ 'inline_keyboard' => [
+ [
+ [
+ 'text' => $this->settings->get('texts.start_button.text', 'Open Mini App'),
+ 'url' => $this->telegram->getMiniAppUrl(),
+ ],
+ ],
+ ],
+ ];
- $this->telegram->sendMessage($chatId, $message);
+ $this->telegram->sendMessage($chatId, $message, $buttons, ChatAction::TYPING, 'html');
}
}
diff --git a/module/oc_telegram_shop/upload/oc_telegram_shop/framework/Telegram/TelegramService.php b/module/oc_telegram_shop/upload/oc_telegram_shop/framework/Telegram/TelegramService.php
index 49ae3ef..27055ed 100755
--- a/module/oc_telegram_shop/upload/oc_telegram_shop/framework/Telegram/TelegramService.php
+++ b/module/oc_telegram_shop/upload/oc_telegram_shop/framework/Telegram/TelegramService.php
@@ -220,4 +220,11 @@ class TelegramService
return null;
}
+
+ public function getMiniAppUrl(): string
+ {
+ $me = $this->getMe();
+
+ return sprintf('https://t.me/%s?startapp', $me['username']);
+ }
}