Skip to content

Update to v6.4.0

KasDim edited this page Apr 2, 2026 · 1 revision

1. Backup Scripts and Database

Create backups using your hosting tools.

2. Update Software

Download and install the new version of Melbis Shop.

3. Move Folders

Move the following folders to the site root: templates, units, profiles.

4. Rename Template Folders

Rename the template folders to: templates/default/units.

5. Modify Configuration

Move to the site root and modify the config.php file:

  • DELETE define('SCRIPT_VERSION', '6.3.0');
  • DELETE define('LICENCE', '');
  • DELETE define('SHOP_GMT', '1');
  • ADD define('TIME_ZONE', 'UTC');
  • MODIFY define('DB_COMMAND', 'SET sql_mode = CONCAT(@@sql_mode, \',NO_UNSIGNED_SUBTRACTION\');');
  • MODIFY define('DB_CHARSET', 'utf8mb4');

6. Execute SQL Commands

Go to "Development Environment" and execute the following SQL commands:

UPDATE {DBNICK}_generator SET gen_value = (SELECT MAX(id) FROM {DBNICK}_key) + 1 WHERE table_name = 'key';

CREATE TABLE {DBNICK}_lang (
   id      INT UNSIGNED DEFAULT '0' NOT NULL,
   skey        CHAR(32) DEFAULT '' NOT NULL,
   name        CHAR(255) DEFAULT '' NOT NULL,
   descr       MEDIUMTEXT DEFAULT ('') NOT NULL,
   kind_key  CHAR(100) DEFAULT '' NOT NULL,
   params    CHAR(255) DEFAULT '' NOT NULL,
   is_origin  TINYINT UNSIGNED DEFAULT '0' NOT NULL,
   pos         INT UNSIGNED DEFAULT '0' NOT NULL,
   PRIMARY KEY (id)
) ENGINE = MYISAM DEFAULT CHARSET=utf8mb4;

CREATE TABLE {DBNICK}_files_lang (
   id        INT UNSIGNED DEFAULT '0' NOT NULL,
   elem_id    INT UNSIGNED DEFAULT NULL,
   kind_key  CHAR(100) DEFAULT '' NOT NULL,
   file_name  CHAR(100) DEFAULT '' NOT NULL,
   file_size INT UNSIGNED DEFAULT '0' NOT NULL,
   upload_time DATETIME DEFAULT '2000-01-01 00:00:00' NOT NULL,
   upload_ok  TINYINT UNSIGNED DEFAULT '0' NOT NULL,
   real_name CHAR(255) DEFAULT '' NOT NULL,
   parent_id INT UNSIGNED DEFAULT NULL,
   format_xml  MEDIUMTEXT DEFAULT ('') NOT NULL,
   pos     INT UNSIGNED DEFAULT '0' NOT NULL,
   PRIMARY KEY (id),
   KEY elem_id (elem_id)
) ENGINE = MYISAM DEFAULT CHARSET=utf8mb4;

CREATE TABLE {DBNICK}_trans (
   id      INT UNSIGNED DEFAULT '0' NOT NULL,
   skey        CHAR(32) DEFAULT '' NOT NULL,
   name        CHAR(255) DEFAULT '' NOT NULL,
   tindex     INT UNSIGNED DEFAULT '0' NOT NULL,
   tlevel     INT UNSIGNED DEFAULT '0' NOT NULL,
   absindex  INT UNSIGNED DEFAULT '0' NOT NULL,
   folder     TINYINT UNSIGNED DEFAULT '0' NOT NULL,
   kind_key  CHAR(100) DEFAULT '' NOT NULL,
   table_key  CHAR(32) DEFAULT '' NOT NULL,
   PRIMARY KEY (id)
) ENGINE = MYISAM DEFAULT CHARSET=utf8mb4;

CREATE TABLE {DBNICK}_trans_origin (
   id      INT UNSIGNED DEFAULT '0' NOT NULL,
   trans_id    INT UNSIGNED DEFAULT NULL,
   item_id    INT UNSIGNED DEFAULT NULL,
   item_code  CHAR(32) DEFAULT '' NOT NULL,
   context     CHAR(255) DEFAULT '' NOT NULL,
   origin      MEDIUMTEXT DEFAULT ('') NOT NULL,
   crc        CHAR(32) DEFAULT '' NOT NULL,
   kind_key  CHAR(100) DEFAULT '' NOT NULL,
   params      CHAR(255) DEFAULT '' NOT NULL,
   is_active   TINYINT UNSIGNED DEFAULT '0' NOT NULL,
   is_html     TINYINT UNSIGNED DEFAULT '0' NOT NULL,
   no_trans     TINYINT UNSIGNED DEFAULT '0' NOT NULL,
   pos         INT UNSIGNED DEFAULT '0' NOT NULL,   
   PRIMARY KEY (id),
   KEY trans_id (trans_id),
   KEY item_id (item_id),
   KEY item_code (item_code)   
) ENGINE = MYISAM DEFAULT CHARSET=utf8mb4;

CREATE TABLE {DBNICK}_trans_lang (
   id      INT UNSIGNED DEFAULT '0' NOT NULL,
   lang_id    INT UNSIGNED DEFAULT NULL,
   trans_id    INT UNSIGNED DEFAULT NULL,
   origin_id   INT UNSIGNED DEFAULT NULL,
   translate   MEDIUMTEXT DEFAULT ('') NOT NULL,
   is_approve  TINYINT UNSIGNED DEFAULT '0' NOT NULL,
   is_error    TINYINT UNSIGNED DEFAULT '0' NOT NULL,
   PRIMARY KEY (id),
   KEY lang_id (lang_id),
   KEY trans_id (trans_id),
   KEY origin_id (origin_id)
) ENGINE = MYISAM DEFAULT CHARSET=utf8mb4;

CREATE TABLE {DBNICK}_tmp_trans (
   id   INT UNSIGNED DEFAULT '0' NOT NULL,
   user_id INT UNSIGNED DEFAULT NULL,
   UNIQUE (user_id, id)
) ENGINE = MYISAM DEFAULT CHARSET=utf8mb4;

INSERT INTO {DBNICK}_generator (table_name, gen_value) VALUES ('lang', 0);
INSERT INTO {DBNICK}_generator (table_name, gen_value) VALUES ('trans', 0);
INSERT INTO {DBNICK}_generator (table_name, gen_value) VALUES ('trans_origin', 0);
INSERT INTO {DBNICK}_generator (table_name, gen_value) VALUES ('trans_lang', 0);

ALTER TABLE {DBNICK}_key_value CHANGE value_txt value_txt TEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_files_key_value CHANGE format_xml  format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_user CHANGE params params MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_user_chat CHANGE message_txt message_txt TEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_user_log CHANGE options options TEXT DEFAULT ('') NOT NULL, CHANGE vars vars TEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_user_filter CHANGE sql_txt sql_txt MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_user_file_version CHANGE content content MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_user_task_note CHANGE content content MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_topic CHANGE intro intro MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE option_code option_code TEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_files_topic CHANGE format_xml format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_topic_key CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_topic_key_set CHANGE value_txt value_txt MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_self_key_value CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE value_txt value_txt MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_brand CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_files_brand CHANGE format_xml format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_brand_key CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_brand_key_set CHANGE value_txt value_txt MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_provider CHANGE notice notice MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_provider_key CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_provider_key_set CHANGE value_txt value_txt MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_info CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_files_info CHANGE format_xml format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_info_value CHANGE name name MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_files_info_value CHANGE format_xml format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_info_key CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_info_key_set CHANGE value_txt value_txt MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_advert_text CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_files_advert_text CHANGE format_xml format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_store CHANGE intro intro MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE review review MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE clann_descr clann_descr MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE option_code option_code TEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_files_store CHANGE format_xml  format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_store_info CHANGE value_txt value_txt MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_store_comment CHANGE params params MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE positive positive MEDIUMTEXT DEFAULT ('') NOT NULL,CHANGE negative negative MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE summary summary MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_u_info_value CHANGE name name MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_u_files_info_value CHANGE format_xml format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_u_store CHANGE intro intro MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE review review MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE clann_descr clann_descr MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE option_code option_code TEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_u_files_store CHANGE format_xml format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_u_store_info CHANGE value_txt value_txt MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_field CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_files_field CHANGE format_xml format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_client_field CHANGE value_txt value_txt MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_order_option CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_files_order_option CHANGE format_xml format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_order_option_value CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE message message MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_files_order_option_value CHANGE  format_xml format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_order_option_block CHANGE message message TEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_order_option_limit CHANGE message message TEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_order_store_option_block CHANGE message message TEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_orders_client_field CHANGE value_txt value_txt MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_orders_store CHANGE store_name store_name TEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_orders_option CHANGE notice notice MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_web_outside CHANGE url url TEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_web_inside CHANGE url url TEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_web_key CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_files_web_key CHANGE format_xml format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_web_key_value CHANGE name name MEDIUMTEXT DEFAULT ('') NOT NULL, CHANGE descr descr MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_files_web_key_value CHANGE format_xml format_xml MEDIUMTEXT DEFAULT ('') NOT NULL;
ALTER TABLE {DBNICK}_report CHANGE report_file report_file MEDIUMTEXT DEFAULT ('') NOT NULL;

DROP INDEX command ON {DBNICK}_oper;
CREATE INDEX command ON {DBNICK}_oper (command);
DROP INDEX key_code ON {DBNICK}_key_value;
CREATE INDEX key_code ON {DBNICK}_key_value (key_code);
DROP INDEX path ON {DBNICK}_user_file_version;
CREATE INDEX path ON {DBNICK}_user_file_version (path(250));
DROP INDEX kind_key ON {DBNICK}_topic_alt;
CREATE INDEX kind_key ON {DBNICK}_topic_alt (kind_key);
DROP INDEX code_shop ON {DBNICK}_store;
CREATE INDEX code_shop ON {DBNICK}_store (code_shop(250));
DROP INDEX code_prov ON {DBNICK}_store;
CREATE INDEX code_prov ON {DBNICK}_store (code_prov(250));
DROP INDEX code_made ON {DBNICK}_store;
CREATE INDEX code_made ON {DBNICK}_store (code_made(250));

Update the encoding of all database tables to utf8mb4. Example of obtaining the command list:

SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' CONVERT TO CHARACTER SET utf8mb4;')
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database_name';

7. Open "System/Users", navigate to the "Operations and Access Rights" tab and make changes

  • Structure
    • ADD Multilingualism
      • ADD Languages and categories
        • ADD Get GET_LANG
          • ADD trans trans *
          • ADD lang lang *
          • ADD files_lang files_lang *
          • ADD key_value cut_key_value *
          • ADD files_key_value cut_files_key_value *
        • ADD Save PUT_LANG
          • ADD trans trans *
          • ADD lang lang *
          • ADD files_lang files_lang *
      • ADD Translations
        • ADD Update settings GET_TRANS_LANG_RELATIVE
          • ADD trans cut_trans *
          • ADD lang cut_lang *
          • ADD key_value cut_key_value *
          • ADD files_key_value cut_files_key_value *
          • ADD oper cut_oper *
          • ADD oper_right cut_oper_right *
          • ADD user cut_user id,group_id,login,name,phone,email,add_group_id
          • ADD user_group cut_user_group *
          • ADD web_inside cut_web_inside *
          • ADD web_inside_right cut_web_inside_right *
        • ADD Add original ADD_TRANS_ORIGIN
        • ADD Add translation ADD_TRANS_LANG
        • ADD Get translations GET_PART_TRANS_LANG
          • ADD FUNC:GetPartTransOrigin part_trans_origin
          • ADD FUNC:GetPartTransLang part_trans_lang
        • ADD Extended query GET_EXTEND_TRANS_LANG
          • ADD FUNC:GetExtendTransOrigin part_trans_origin
          • ADD FUNC:GetExtendTransLang part_trans_lang
        • ADD Execute translation TRANS_LANG_SERVICE
        • ADD Save UPDATE_TRANS_LANG

8. Go to "Settings Registry" and make changes

  • Components

    • ADD Multilingualism
      • ADD Language
        • ADD Type LANG_KIND_KEY
          • ADD [x] kDefault Default
      • ADD Category
        • ADD Type TRANS_KIND_KEY
          • ADD [x] kDefault Default
        • ADD Data TRANS_TABLE_KEY
          • ADD [x] kDefault Default
          • ADD kTopic Topics
          • ADD kStore Products
          • ADD kTags Tags
      • ADD Original
        • ADD Type TRANS_ORIGIN_KIND_KEY
          • ADD [x] kDefault Default
  • Called Modules

    • ADD Multilingualism
      • ADD Translator MODULE_TRANSLATE_LINE
        • ADD melbis_inc_translate.php MELBIS_INC_TRANSLATE_service

9. Development Environment Changes

Go to "Development Environment" and apply the following modifications:

  • In root files (index.php, lazy.php, and others), remove the FOLDER constant and append the library calls:
    • require_once('config.php');
    • require_once('units/melbis_inc.php');
  • Review and update scripts to utilize the new melbis_inc and melbis_inc_std libraries.
  • Rename the template folder using the pattern: templates/default/unit to templates/default/units.
  • Update store scripts to ensure compatibility with the new PHP 8.3 and MySQL 8.4 versions.