diff --git a/module/oc_telegram_shop/upload/admin/controller/extension/module/tgshop.php b/module/oc_telegram_shop/upload/admin/controller/extension/module/tgshop.php
index a0894e8..8081b57 100755
--- a/module/oc_telegram_shop/upload/admin/controller/extension/module/tgshop.php
+++ b/module/oc_telegram_shop/upload/admin/controller/extension/module/tgshop.php
@@ -31,6 +31,7 @@ if (is_readable($sysLibPath . '/oc_telegram_shop.phar')) {
* @property ModelCustomerCustomerGroup $model_customer_customer_group
* @property ModelLocalisationOrderStatus $model_localisation_order_status
* @property DB $db
+ * @property Log $log
*/
class ControllerExtensionModuleTgshop extends Controller
{
@@ -342,11 +343,11 @@ TEXT,
'module_tgshop_theme_light' => 'light',
'module_tgshop_theme_dark' => 'dark',
'module_tgshop_mainpage_products' => 'most_viewed',
- 'module_tgshop_featured_products' => [],
'module_tgshop_order_customer_group_id' => 1,
'module_tgshop_order_default_status_id' => 1,
'module_tgshop_mini_app_url' => rtrim(HTTPS_CATALOG, '/') . '/image/catalog/tgshopspa/#/',
- 'module_tgshop_mainpage_categories' => 'latest10'
+ 'module_tgshop_mainpage_categories' => 'latest10',
+ 'module_tgshop_enable_store' => 1,
];
}
@@ -445,6 +446,17 @@ HTML,
],
'shop' => [
+ 'module_tgshop_enable_store' => [
+ 'type' => 'select',
+ 'options' => [
+ 0 => 'Выключено',
+ 1 => 'Включено',
+ ],
+ 'help' => <<включена — пользователи смогут оформлять заказы прямо в Telegram-магазине.
+Если выключена — оформление заказов будет недоступно. Вместо кнопки «Добавить в корзину» пользователи увидят кнопку «Перейти к товару», которая откроет страницу товара на вашем сайте. В этом режиме Telecart работает как каталог.
+HTML,
+ ],
'module_tgshop_mainpage_products' => [
'type' => 'select',
'options' => [
@@ -457,7 +469,7 @@ HTML,
'module_tgshop_featured_products' => [
'type' => 'products',
- 'help' => 'На главной странице будут отображаться избранные товары, если вы выберете этот вариант в настройке “Товары на главной”.',
+ 'help' => 'На главной странице будут отображаться избранные товары, если вы выберете этот вариант в настройке “Товары на главной”. Если товары не выбраны, то будут показаны популярные товары.',
],
'module_tgshop_mainpage_categories' => [
@@ -522,7 +534,7 @@ HTML,
$diff = [];
foreach ($defaults as $key => $value) {
- if (! isset($settings[$key])) {
+ if (! array_key_exists($key, $settings)) {
$diff[$key] = $defaults[$key];
}
}
@@ -530,6 +542,15 @@ HTML,
if ($diff) {
$settings = array_merge($settings, $diff);
$this->model_setting_setting->editSetting('module_tgshop', $settings);
+ $this->log->write('[TELECART] Выполнено обновление настроек по умолчанию для модуля.');
+ $this->session->data['success'] = 'Выполнено обновление настроек по умолчанию для модуля.';
}
}
+
+ public function install(): void
+ {
+ $this->log->write('[TELECART] Запуск установки модуля.');
+ $this->updateConfigFromDefaults();
+ $this->log->write('[TELECART] Установка модуля завершена.');
+ }
}
diff --git a/module/oc_telegram_shop/upload/admin/language/ru-ru/extension/module/tgshop.php b/module/oc_telegram_shop/upload/admin/language/ru-ru/extension/module/tgshop.php
index ef78821..0898eab 100755
--- a/module/oc_telegram_shop/upload/admin/language/ru-ru/extension/module/tgshop.php
+++ b/module/oc_telegram_shop/upload/admin/language/ru-ru/extension/module/tgshop.php
@@ -29,6 +29,7 @@ $_['lbl_module_tgshop_order_default_status_id'] = 'Статус заказов';
$_['lbl_module_tgshop_mini_app_url'] = 'Ссылка на Telegram Mini App';
$_['lbl_module_tgshop_mainpage_categories'] = 'Категории на главной';
$_['lbl_module_tgshop_featured_categories'] = 'Избранные категории';
+$_['lbl_module_tgshop_enable_store'] = 'Разрешить покупки';
// Entry
$_['entry_status'] = 'Статус';
diff --git a/module/oc_telegram_shop/upload/catalog/controller/extension/tgshop/handle.php b/module/oc_telegram_shop/upload/catalog/controller/extension/tgshop/handle.php
index 078f2d1..01e493e 100755
--- a/module/oc_telegram_shop/upload/catalog/controller/extension/tgshop/handle.php
+++ b/module/oc_telegram_shop/upload/catalog/controller/extension/tgshop/handle.php
@@ -58,9 +58,10 @@ class ControllerExtensionTgshopHandle extends Controller
'theme_light' => $this->config->get('module_tgshop_theme_light'),
'theme_dark' => $this->config->get('module_tgshop_theme_dark'),
'mainpage_products' => $this->config->get('module_tgshop_mainpage_products'),
- 'featured_products' => $this->config->get('module_tgshop_featured_products'),
+ 'featured_products' => (array) $this->config->get('module_tgshop_featured_products'),
'mainpage_categories' => $this->config->get('module_tgshop_mainpage_categories'),
- 'featured_categories' => $this->config->get('module_tgshop_featured_categories'),
+ 'featured_categories' => (array) $this->config->get('module_tgshop_featured_categories'),
+ 'store_enabled' => filter_var($this->config->get('module_tgshop_enable_store'), FILTER_VALIDATE_BOOLEAN),
'base_url' => HTTPS_SERVER,
'ya_metrika_enabled' => ! empty(trim($this->config->get('module_tgshop_yandex_metrika'))),
'telegram' => [
diff --git a/module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/SettingsHandler.php b/module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/SettingsHandler.php
index 79aee94..56fde3c 100755
--- a/module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/SettingsHandler.php
+++ b/module/oc_telegram_shop/upload/oc_telegram_shop/src/Handlers/SettingsHandler.php
@@ -51,6 +51,7 @@ class SettingsHandler
'theme_dark' => $this->settings->get('theme_dark'),
'ya_metrika_enabled' => $this->settings->get('ya_metrika_enabled'),
'app_enabled' => $this->settings->get('app_enabled'),
+ 'store_enabled' => $this->settings->get('store_enabled'),
]);
}
diff --git a/module/oc_telegram_shop/upload/oc_telegram_shop/src/Services/ProductsService.php b/module/oc_telegram_shop/upload/oc_telegram_shop/src/Services/ProductsService.php
index db25590..0a95c97 100755
--- a/module/oc_telegram_shop/upload/oc_telegram_shop/src/Services/ProductsService.php
+++ b/module/oc_telegram_shop/upload/oc_telegram_shop/src/Services/ProductsService.php
@@ -69,7 +69,7 @@ class ProductsService
->value('name');
}
- $customerGroupId = (int)$this->oc->config->get('config_customer_group_id');
+ $customerGroupId = (int) $this->oc->config->get('config_customer_group_id');
$specialPriceSql = "(SELECT price
FROM oc_product_special ps
WHERE ps.product_id = products.product_id
@@ -245,6 +245,11 @@ class ProductsService
$data['reward'] = $product_info['reward'];
$data['points'] = (int) $product_info['points'];
$data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8');
+ $data['share'] = html_entity_decode(
+ $this->oc->url->link('product/product', 'product_id=' . $productId),
+ ENT_QUOTES | ENT_HTML5,
+ 'UTF-8'
+ );
if ($product_info['quantity'] <= 0) {
$data['stock'] = $product_info['stock_status'];
diff --git a/spa/src/App.vue b/spa/src/App.vue
index 61a90ad..1c0d747 100644
--- a/spa/src/App.vue
+++ b/spa/src/App.vue
@@ -6,7 +6,7 @@