feat(order): order default status and customer group
This commit is contained in:
@@ -13,6 +13,8 @@
|
||||
* @property ModelToolImage $model_tool_image
|
||||
* @property ModelCatalogProduct $model_catalog_product
|
||||
* @property User $user
|
||||
* @property ModelCustomerCustomerGroup $model_customer_customer_group
|
||||
* @property ModelLocalisationOrderStatus $model_localisation_order_status
|
||||
*/
|
||||
class ControllerExtensionModuleTgshop extends Controller
|
||||
{
|
||||
@@ -97,7 +99,7 @@ class ControllerExtensionModuleTgshop extends Controller
|
||||
true
|
||||
);
|
||||
|
||||
$data['settings'] = static::getSettingsConfig();
|
||||
$data['settings'] = $this->getSettingsConfig();
|
||||
|
||||
foreach ($data['settings'] as $configs) {
|
||||
foreach ($configs as $key => $config) {
|
||||
@@ -165,7 +167,7 @@ class ControllerExtensionModuleTgshop extends Controller
|
||||
$this->error['error_warning'] = $this->language->get('error_permission');
|
||||
}
|
||||
|
||||
foreach (static::getSettingsConfig() as $configs) {
|
||||
foreach ($this->getSettingsConfig() as $configs) {
|
||||
foreach ($configs as $key => $config) {
|
||||
if (($config['required'] ?? false) === true && ! $this->request->post[$key]) {
|
||||
$this->error["error_$key"] = 'Поле "' . $this->language->get(
|
||||
@@ -245,10 +247,12 @@ class ControllerExtensionModuleTgshop extends Controller
|
||||
'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,
|
||||
];
|
||||
}
|
||||
|
||||
private static function getSettingsConfig(): array
|
||||
private function getSettingsConfig(): array
|
||||
{
|
||||
return [
|
||||
'general' => [
|
||||
@@ -351,8 +355,43 @@ class ControllerExtensionModuleTgshop extends Controller
|
||||
],
|
||||
|
||||
'orders' => [
|
||||
'module_tgshop_order_customer_group_id' => [
|
||||
'type' => 'select',
|
||||
'options' => $this->getCustomerGroups(),
|
||||
'help' => 'Группа покупателей, которая будет назначена для заказов, оформленных через Telegram-магазин.',
|
||||
],
|
||||
|
||||
'module_tgshop_order_default_status_id' => [
|
||||
'type' => 'select',
|
||||
'options' => $this->getOrderStatuses(),
|
||||
'help' => 'Статус, с которым будут создаваться заказы через Telegram по умолчанию.',
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
private function getCustomerGroups(): array
|
||||
{
|
||||
$this->load->model('customer/customer_group');
|
||||
$map = [];
|
||||
|
||||
foreach ($this->model_customer_customer_group->getCustomerGroups() as $customer_group) {
|
||||
$map[(int)$customer_group['customer_group_id']] = $customer_group['name'];
|
||||
}
|
||||
|
||||
return $map;
|
||||
}
|
||||
|
||||
private function getOrderStatuses()
|
||||
{
|
||||
$this->load->model('localisation/order_status');
|
||||
$statuses = $this->model_localisation_order_status->getOrderStatuses();
|
||||
$map = [];
|
||||
|
||||
foreach ($statuses as $item) {
|
||||
$map[(int)$item['order_status_id']] = $item['name'];
|
||||
}
|
||||
|
||||
return $map;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,8 @@ $_['lbl_module_tgshop_theme_light'] = 'Светлая тема';
|
||||
$_['lbl_module_tgshop_theme_dark'] = 'Тёмная тема';
|
||||
$_['lbl_module_tgshop_mainpage_products'] = 'Товары на главной';
|
||||
$_['lbl_module_tgshop_featured_products'] = 'Избранные товары';
|
||||
$_['lbl_module_tgshop_order_customer_group_id'] = 'Группа покупателей';
|
||||
$_['lbl_module_tgshop_order_default_status_id'] = 'Статус заказов';
|
||||
|
||||
// Entry
|
||||
$_['entry_status'] = 'Статус';
|
||||
|
||||
@@ -35,14 +35,6 @@
|
||||
<form action="{{ action }}" method="post" enctype="multipart/form-data" id="form-module"
|
||||
class="form-horizontal">
|
||||
|
||||
<pre>
|
||||
* Проверка request от телеграм
|
||||
4. Выбор товаров, которые будут отображаться на главной странице
|
||||
1. Шаблон для уведомлений покупателя о заказе
|
||||
2. Требовать ввод email/phone
|
||||
3. Группа покупателей для заказов от ТГ
|
||||
</pre>
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
{% for tabKey, tabItems in settings %}
|
||||
<li{% if tabKey == 'general' %} class="active" {% endif %}>
|
||||
|
||||
@@ -31,13 +31,13 @@ class Controllerextensiontgshophandle extends Controller
|
||||
'oc_config_tax' => $this->config->get('config_tax'),
|
||||
'oc_default_currency' => $this->config->get('config_currency'),
|
||||
// ID группы покупателей, которая будет использоаваться в заказах через Телеграм.
|
||||
'oc_customer_group_id' => $this->config->get('config_customer_group_id'),
|
||||
'oc_customer_group_id' => $this->config->get('module_tgshop_order_customer_group_id'),
|
||||
// ID магазина, для которого будут создаваться заказы из Телеграм
|
||||
'oc_store_id' => 0,
|
||||
// Название магазина, для которого будут создаваться заказы из Телеграм
|
||||
'oc_store_name' => $this->config->get('config_name'),
|
||||
// ID статуса, с которым будут создаваться заказы через Телеграм по умолчанию.
|
||||
'oc_order_status_id' => 1,
|
||||
'oc_order_status_id' => (int) $this->config->get('module_tgshop_order_default_status_id'),
|
||||
'timezone' => $this->config->get('config_timezone', 'UTC'),
|
||||
'language_id' => (int) $this->config->get('config_language_id'),
|
||||
'shop_base_url' => HTTPS_SERVER,
|
||||
|
||||
Reference in New Issue
Block a user