TISS Company

TISS is one of the leading distributors of auto parts in Russia. Official representative of the international trade and purchasing group Nexus.

  • On the market for over 27 years
  • More than 200 brands in the portfolio
  • About 10,000 wholesale customers
  • More than 1,000 employees
  • Branches in 25 cities of Russia
  • The company’s assortment includes about a million products

Project MUSICALION (Germany)

The project is a commercial music service, whose members can publish their works, as well as works of other authors in their own performance and / or arrangement. I worked on the project from July 2019 to June 2021 as a programmer. To my great regret, during this time, I completed all the tasks assigned to me and there was nothing to work with, the covid epidemic also added negativity to this business, which led to its strong reduction and the cancellation of the well-known music competitions for which the project was the organizer.
Due to the fact that I am associated with my former employers by the NDA (Confidentiality Agreement) agreement, I cannot elaborate on the tasks that I performed within the framework of this project and the technologies on which this was performed. You can look at the part of the project site that is in open access, this is a rather large piece of it, by the nature of my activity, I took part in the modification of almost all pages in one way or another, and I created some of the modules and functions from scratch, they were not in the project.
Briefly, I can list the following areas of my activity:

CRM Sigma

Brief information about the project:

  • Customer base: more than 30 million people
  • Sales: up to 500,000 parcels per month
  • The size of advertising activities: sending to 4 million emails per month
  • Database size: more than 300 GB
  • The number of tables in the database: about 300
  • The number of system users: around 500
  • CRM ESCC (Russia)



    Project for improvement of CRM system of the company.

  • Database size: 70Gb
  • Number of clients is over 6 million
  • Scope of activity: Russian Federation
  • On the market: with 1996 year
  • Headquarters: in the Netherlands
  • Branches: 8 branches in Europe and former USSR
  • Multilanguage support for WordPress



    This approach is used on this site, it is simple to implement but has some drawbacks and limitations.
    This is not a complete code, it’s just a decision of how you can enable multilingual support for WordPress.
    Given the texts of the programs involve maintaining two languages: English and Russian, languages can be more.

    Disadvantages:

    • Should always be a Russian and English version of the text in all places.
    • In the admin panel, the headers look unreadable.
    • You cannot use the following markup for categories and tags if they are direct output via function wp_list_ […], and the like.
    • When using additional text in your PHP code you should always call the function-translator.
    • Search engines will always receive text for the default language. I use my additional redirect plugin on my site when English is enabled, so search engines see both versions of the page.

    This approach is very simplistic and good for simple sites.

    Use in posts and pages:

    • [ru]Русский текст[/ru]
    • [en]English text[/en]

    Use in PHP code:

    
    <?php 
    //-- echo --
    stringTranslate('[en]English text[/en][ru]Русский текст[/ru]'); 
    //-- value --
    $text = stringTranslate('[en]English text[/en][ru]Русский текст[/ru]', false); 
    ?>
    
    

    Implementation:

    common.js (file javascript with your code):

    
    function changeLanguage(ob) {
      if (ob == "ru") {
        if (!confirm("Please, confirm changing language interface to English.")) {
          return;
        }
        document.cookie = "lang=en";
      }
      else {
        if (!confirm("Подтвердите, пожалуйста, смену языка интерфейса на Русский.")) {
          return;
        }
        document.cookie = "lang=ru";
      }
      location.reload();
    }
    
    

    On my website I use the simple Wodpress theme, i.e. there are no templates, additional files, etc. So here is an example only for the main schema file. This block displays two icons to switch languages, similar to those you can see on this website. The example of using the data display function in the code above.

    index.php:

    
    //.... HTML markup before
    <img src="<?php bloginfo('template_url'); ?>/images/en.png" 
      <?php echo (($lang == "en")?("title='English language is setting now.'"):
      ("style='opacity: 0.2; cursor: pointer;' onclick='changeLanguage(\"ru\");' 
      title='Set English as interface language.'")); ?>/>
    <img src="<?php bloginfo('template_url'); ?>/images/ru.png" 
      <?php echo (($lang == "ru")?("title='Русский язык интерфейса сейчас установлен.'"):
      ("style='opacity: 0.2; cursor: pointer;' onclick='changeLanguage(\"en\");' 
      title='Установить русский язык интерфейса.'")); ?>/>
    // HTML markup after ...
    
    

    functions.php:

    
    add_filter( 'the_content', 'content_translate' );
    
    function content_translate ($content) {
      return stringTranslate($content, false);
    }
    
    function stringTranslate($str, $isEcho = true) {
      $rez = $str;
      if ($_COOKIE['lang']) {
        $lang = $_COOKIE['lang'];
      }
      else {
        $lang = 'en';
      }
      $rStr = 'ru';
      if ($lang == 'ru') {
        $rStr = 'en';
      }
      $am = 0;
      while (true) {
        $pos1 = strpos($rez,"[".$rStr."]");
        if ($pos1 === false) {
          break;
        }
        $pos2 = strpos($rez,"[/".$rStr."]");
        if ($pos2 === false) {
          $pos2 = strpos($rez,"[".$lang."]",$pos1);
          if (!$pos2) {
            $pos2 = strlen($rez);
          }
        }
        else {
          $pos2 += strlen("{/".$rStr."}");
        }
        $rez = str_replace(substr($rez, $pos1, $pos2 - $pos1), "", $rez);
        //-- decline endless cycle --
        $am++;
        if ($am > 100) {
          return "Cycle error!";
        }
      }
      if ($isEcho) {
        echo str_replace('[/'.$lang.']', "", str_replace('['.$lang.']', "", $rez));  
      }
      else {
        return str_replace('[/'.$lang.']', "", str_replace('['.$lang.']', "", $rez));      
      }
    }
    
    

    That’s all, I wish you all good luck.

    Data transformation for ESCC-Russia

    Project for data migration from old CRM system of the company (Clipper-DBF) to new (Oracle, HTML, JavaScript).

  • Volume data: 30Gb
  • Volume of the resulting database (with indexes): 65Gb
  • Amount of destination tables: 60
  • Maximum number of records in the table: 90 million
  • Tables with number of records more than million: 25
  • Duration of the migration process: more 24 hours
  • The ability to restart process from same point in case of an error: provided
  • Stop the transformation process from interface: provided
  • Number of steps of the process: 9
  • Skipping steps transformation in the interface settings: provided
  • Oracle server: 11G 64bit
  • The mechanism of data transfer: Oracle heterogeneous services (MS Access DBF driver)