Q/: Q[i_]Q[j_] := Q[i+j];
S /: s1_S * s2_S := Join[s1, s2];

Vect /: v1_Vect  ⊗ v2_Vect := Flatten[Outer[Times, v1, v2]];

Kom /: Kom[s1_, vs1_, ms1_] ⊗ Kom[s2_, vs2_, ms2_] := Kom[s1+s2,
Table[
Print[k];
Join[Table[vs1[[i+1]]⊗vs2[[k-i+1]], {i,0,k}]],
{k,0,Length[vs1]+Length[vs2]-2}
],
later
]