Skip to content
  1. Extras
  2. MiniShop3
  3. System settings

System settings

All MiniShop3 system settings use the ms3_ prefix and live in the minishop3 namespace.

To view settings, go to System → System Settings and select the minishop3 namespace.

General settings

SettingDefaultDescription
ms3_services_config{core_path}/config/ms3.services.phpPath to the PHP file with custom service registration. Returns an array [service_id => ClassName] that overrides default classes (cart, order, delivery, payment, etc.)
ms3_services_addons_dir{core_path}/config/ms3.services.d/Folder with service registration fragments from third-party components. Each add-on adds its own *.php; files load in alphabetical order after the main config
ms3_chunks_categoriesComma-separated category IDs for the chunk list
ms3_use_schedulerfalseUse Scheduler for background tasks

Product category

SettingDefaultDescription
ms3_template_category_defaultDefault template for new categories
ms3_category_show_nested_productstrueShow nested products from subcategories
ms3_category_show_optionsfalseShow product options in the category table
ms3_category_id_as_aliasfalseUse category ID as URL alias
ms3_category_content_defaultDefault content for new categories (product listing snippet call)
ms3_category_products_default_rows20Rows per page in the category product table
mgr_tree_icon_mscategoryicon icon-barcodeCSS class for the category icon in the resource tree

Product

Main fields

SettingDefaultDescription
ms3_template_product_defaultDefault template for new products
ms3_product_main_fieldspagetitle,longtitle,description,introtext,contentMain fields on the product panel
ms3_product_extra_fieldsprice,old_price,article,weight,color,size,vendor_id,made_in,tags,new,popular,favoriteExtra product fields
ms3_product_show_in_tree_defaultfalseShow new products in the resource tree
ms3_product_id_as_aliasfalseUse product ID as URL alias
ms3_product_remember_tabstrueRemember the active product panel tab
mgr_tree_icon_msproducticon icon-tagCSS class for the product icon in the resource tree

Product tabs

SettingDefaultDescription
ms3_product_tab_extratrueShow the product properties tab
ms3_product_tab_gallerytrueShow the gallery tab
ms3_product_tab_linkstrueShow the product links tab
ms3_product_tab_optionstrueShow the options tab
ms3_product_tab_categoriestrueShow the categories tab
SettingDefaultDescription
ms3_product_source_default0Default media source ID for the gallery
ms3_product_thumbnail_default{assets_url}components/minishop3/img/mgr/ms3_small.pngPlaceholder image path
ms3_product_thumbnail_sizesmallDefault thumbnail size

Price and weight formatting

SettingDefaultDescription
ms3_price_format[2, ".", " "]Price format: [decimal places, decimal separator, thousands separator]
ms3_weight_format[3, ".", " "]Weight format: [decimal places, decimal separator, thousands separator]
ms3_price_format_no_zerostrueStrip trailing zeros in prices (15.00 → 15)
ms3_weight_format_no_zerostrueStrip trailing zeros in weight
ms3_price_snippetPrice modifier snippet name
ms3_weight_snippetWeight modifier snippet name
ms3_currency_symbolCurrency symbol (₽, $, €, £, ₴, ¥, ₸)
ms3_currency_positionafterSymbol position: before ($ 100) or after (100 ₽)
ms3_weight_unitkgWeight unit (e.g. kg, г, lbs, oz). Used in *_formatted placeholders

Cart

SettingDefaultDescription
ms3_cart_contextfalseUse a single cart across all contexts
ms3_cart_max_count1000Maximum number of items in the cart

Orders

General settings

SettingDefaultDescription
ms3_order_format_numymOrder number format (date() format)
ms3_order_format_num_separator/Separator in the order number
ms3_date_formatd.m.y H:MDate format in the Manager
ms3_order_user_groupsGroups for customer registration (comma-separated)
ms3_order_show_draftstrueShow drafts in the order list
ms3_order_redirect_thanks_id1ID of the "Thank you for your order" page
ms3_order_success_page_id0ID of the successful payment page
ms3_order_register_user_on_submitfalseCreate modUser on checkout
ms3_email_managerManager email addresses for notifications (comma-separated)
ms3_delete_drafts_afterDelete old drafts (strtotime format: -1 year, -2 weeks)
ms3_order_log_actionsstatus,products,field,addressLogged order actions

Manager fields

Order, address, and product table fields

These used to be configured via ms3_order_grid_fields, ms3_order_address_fields, ms3_order_product_fields, and ms3_order_product_options. They are now managed in Utilities → Model fields (tables ms3_model_fields and ms3_model_field_sections, models msOrder / msOrderAddress) and Utilities → Grid settings (ms3_grid_fields). The system settings are no longer read and are removed from the documentation.

Order statuses

SettingDefaultDescription
ms3_status_draft1ID of the "Draft" status
ms3_status_new0ID of the new order status (set by migration)
ms3_status_paid0ID of the paid order status
ms3_status_canceled0ID of the canceled order status
ms3_status_for_stat2,3Status IDs for completed order statistics

Customers

Customer account pages

SettingDefaultDescription
ms3_customer_login_page_id0Login page ID
ms3_customer_register_page_id0Registration page ID
ms3_customer_profile_page_id0Profile page ID
ms3_customer_addresses_page_id0Addresses page ID
ms3_customer_orders_page_id0Order history page ID
ms3_customer_redirect_after_login0Page ID to redirect to after login (0 = stay)

Authentication and registration

SettingDefaultDescription
ms3_customer_auto_register_on_ordertrueAutomatically register the customer on checkout
ms3_customer_auto_login_on_ordertrueAutomatically log in after checkout
ms3_customer_auto_login_after_registertrueAutomatically log in after registration
ms3_customer_require_email_verificationfalseRequire email verification
ms3_customer_send_welcome_emailtrueSend welcome email
ms3_customer_require_privacy_consenttrueRequire data processing consent (GDPR)

Order cancellation

SettingDefaultDescription
ms3_customer_cancel_allowed_statuses2,3Status IDs where the customer can cancel an order (comma-separated). Default: new and paid

Order cancellation settings

The customer sees the "Cancel order" button only for orders with a status from this list. On cancel, the order moves to ms3_status_canceled.

To disable customer cancellation, leave this setting empty.

modUser sync

SettingDefaultDescription
ms3_customer_sync_enabledfalseEnable msCustomer ↔ modUser sync
ms3_customer_sync_create_moduserfalseCreate modUser when msCustomer registers
ms3_customer_sync_delete_with_userfalseDelete msCustomer when modUser is deleted
ms3_customer_sync_user_group0Group ID for new modUser accounts
ms3_customer_duplicate_fields["email", "phone"]JSON array of fields for duplicate checks

Security

Tokens

SettingDefaultDescription
ms3_customer_token_ttl86400Customer token lifetime (seconds, 24 hours)
ms3_customer_api_token_ttl86400API token lifetime (seconds, 24 hours)
ms3_password_reset_token_ttl3600Password reset token lifetime (seconds, 1 hour)
ms3_email_verification_token_ttl86400Email verification token lifetime (seconds, 24 hours)
ms3_email_verification_urlCustom URL for the verification email. If empty, the link points to Web API api.php?route=…/email/verify&token=…&html=1
ms3_email_verification_success_urlURL to redirect to after successful email verification. If empty, returns to the site with ?ms3_email_verified=1
ms3_snippet_token_secret(auto-generated)Secret key for snippet tokens
ms3_snippet_cache_ttl3600Snippet parameter cache lifetime (seconds)
ms3_payment_secretSecret key for payment notifications

Brute-force protection

SettingDefaultDescription
ms3_customer_max_login_attempts5Maximum failed login attempts
ms3_customer_block_duration300Block duration (seconds, 5 minutes)

Password requirements

SettingDefaultDescription
ms3_password_min_length8Minimum password length
ms3_password_require_uppercasefalseRequire uppercase letters
ms3_password_require_numberfalseRequire numbers
ms3_password_require_specialfalseRequire special characters

API

SettingDefaultDescription
ms3_api_debugfalseAPI debug mode (extended logging)
ms3_cors_allowed_origins*Allowed CORS domains (comma-separated or *)
ms3_rate_limit_max_attempts60Maximum requests per period
ms3_rate_limit_decay_seconds60Rate limit period (seconds)

Site (Frontend)

SettingDefaultDescription
ms3_token_namems3_tokenToken name for visitor identification
ms3_register_global_configtrueRegister ms3Config in the DOM
ms3_frontend_assetsJSON arrayList of CSS/JS files to load

Path placeholders

In ms3_frontend_assets, these placeholders are available:

  • [[+assetsUrl]]assets/components/minishop3/
  • [[+jsUrl]]assets/components/minishop3/js/
  • [[+cssUrl]]assets/components/minishop3/css/

Import

SettingDefaultDescription
ms3_utility_import_fieldspagetitle,parent,price,articleFields for import
ms3_utility_import_fields_delimiter;CSV column delimiter
ms3_import_sync_limit300Synchronous import limit (rows)
ms3_import_preview_rows5Preview row count
ms3_import_upload_pathassets/import/Upload path for import files

Notifications

Email

SettingDefaultDescription
ms3_email_managerManager email addresses for notifications (comma-separated)

Telegram

SettingDefaultDescription
ms3_telegram_bot_tokenTelegram bot token (get from @BotFather)

Telegram bot setup

  1. Create a bot via @BotFather and get the token
  2. Set the token in ms3_telegram_bot_token
  3. Each recipient's chat ID is set separately in Utilities → Notifications (msNotificationConfig, field recipient_value). Get your chat ID from @userinfobot.

Usage examples

Getting a setting in PHP

php
$priceFormat = $modx->getOption('ms3_price_format');
$currencySymbol = $modx->getOption('ms3_currency_symbol');

Getting a setting in Fenom

fenom
{* Currency symbol *}
{'ms3_currency_symbol' | option}

{* Customer profile page ID *}
{'ms3_customer_profile_page_id' | option}

Price format

The ms3_price_format setting accepts a JSON array:

json
[2, ".", " "]
  • 2 — decimal places
  • "." — decimal separator
  • " " — thousands separator

Result: 1 234.56

Price modifier

Create a snippet for dynamic price changes:

php
<?php
// Snippet: myPriceModifier
// Parameters: $product (msProductData)

$price = $product->get('price');

// Apply 10% discount for a specific category
if ($product->get('parent') == 5) {
    $price = $price * 0.9;
}

return $price;

Set the snippet name in ms3_price_snippet:

myPriceModifier