►
From YouTube: MSI Open Demo. September 1, 2017
Description
New Indexer for StockItems
https://github.com/magento-engcom/magento2/wiki/New-Indexer-for-StockItems
Pull Request with new indexation mechanism: https://github.com/magento-engcom/magento2/pull/49
Issues to Fix:
https://github.com/magento-engcom/magento2/labels/StockItem%20Indexer
A
A
If
the
usual,
we
are
starting
from
the
msi
roadmap
and
the
same
as
on
a
previous
week.
During
the
year
of
the
current
week,
we
were
walking
on
two
stories:
the
first
one
devoted
for
reservation,
api
and
append
on
the
reservation
stories
and
another
one
is
using
dictation
for
inventory.
In
the
scope
of
the
story,
we
wanted
to
introduce
new
index
for
the
inventory
and
that
index
support
group
supposed
to
create
great
stock
tables
for
each
stock.
A
A
Here
we
can
see
the
technical
document
for
this
for
this
story
and,
as
a
result
we
wanted
to
achieve
so
here
we
introduced
new
glue,
meaning
for
the
indexation
process
dimension
and
in
our
case
dimension
is
the
stock
ID,
because
for
each
stock
ID
we
will
create
a
dedicated
table.
So,
for
example,
if
you
will
have
5
different
stocks,
we
will
end
up
with
creating
five
different
tables
and
each
of
the
table
will
hold
just
the
data
for
this
particular
stock.
A
This
is
very
useful
and
helpful
for
the
horizontal
scalability
when
we
have
quite
a
lot
of
different
dimensions,
and
we
have
quite
a
lot
of
data
and
the
data
would
be
spread
over
over
many
indexes.
So
at
the
time
of
working
with
the
data,
for
example,
on
a
front
thing
on
a
front
end,
query
in
the
data
will
actually
just
based
on
the
current
scope.
We
will
resolve
the
request
to
some
particular
table
and
just
make
a
query
to
this
particular
table.
A
So,
for
example,
if
you
have
a
lot
of
data,
each
particular
index
will
hold
just
just
the
data
for
the
dedicated
scope,
so
we
will
not
overwhelm
our
index.
Miss
I
need
a
data
for
each
particular
scope,
so
this
is
very
handy
for
the
from
the
scalability
point
of
view
and
the
same
approach.
We
actually
use
for
the
for
the
full
text
index
and
we
will
show
that
on
a
current
demo,
so
I
believe
we
I
can
I
can
give
a
world
to
Valerie
will
continues
a
demo
and.
A
A
One
of
that
warehouses
would
be
located
in
Europe
and
two
others
would
be
created,
be
located
in
the
United
States.
After
that
we
will
create
two
different
stocks.
For
the
first
talk,
the
first
pub
would
be
dedicated
just
for
Europe
market
and
Zed
stock,
for
the
desktop
would
be
assigned
the
only
physical
source,
so
the
only
physical
you
warehouse
and
for
the
second
stock.
The
second
stock
would
be
international,
so
all
the
physical
sources
would
be
assigned
to
that
stock
and
we
will
create
a
product
and
assign
a
quantity
so
now
Valeri
creating.
B
B
A
B
B
B
A
A
A
A
A
So
we
assigned
that
SQ
to
all
the
sources
we
have
and
provide
different
different
quantity
for
all
of
the
sources.
So
on
the
first
source
we
have
this
sq
in
amount
of
ten
items
on
the
second
one.
We
have
an
amount
of
twenty
items
and
on
the
third
one
we
have
it
in
a
moment
of
30
items.
So,
according
to
our
now,
we
will
make
a
realization
and
we'll
see
how,
after
the
indexation,
what
the
amount
would
be
in
our
stock
tables
so
based
on
our
mapping,
you
can
only
really
perceive
this
realization.
I
chose.
B
A
You
remember,
the
quantities
were
10,
20
and
30.
So,
summing
up
all
together,
we
we
end
up
with
the
60
in
total
and
then
the
quantity
of
the
sq1
product
on
a
stock
one
for
the
global
stock,
and
now
we
will
see
just
quickly
on
your
house
yeah.
So
on
a
second
stock,
we
have
just
a
quantity
salty,
because
the
second
stock
assigned
just
to
the
only
zone
resource
which
represent
the
huber
house.
A
Now
we
will
try
to
make
some
trick
and
we
will
update
quantity
of
the
product
is
q1
on
the
source
tree
not
only
source
on
a
sorcery
yeah
and
let's
make
it
like
some
decimal
quantity
like
five
and
a
half,
for
example,
yeah
and
save
our
changes
and
after
that
launch
reindex
one
more
time.
So
we
need
to
get
both
stock
quantities
of
the
stock
one
and
the
stop
true
to
be
updated
after
this
change,
because
the
source
one
is
assigned
to
both
stops.
A
A
A
A
A
C
B
C
So
maybe
again,
there's
a
bit
more
if
we
used
exactly
in
this
point,
if
you
use
the
this
kind
of
notation
using
the
stock
ID,
for
example,
which
has
an
underscore
the
function
that
there
is
tries
to
resolve
the
argument,
while
instance
eating
class
will
search
for
an
index,
that's
called
stock
ID
without
the
underscore
and
in
my
array,
and
will
have
the
index
with
the
underscore.
So
this
is
the
main
issue
even
using
the
constructor,
so
it
doesn't
use
the
reflection
it
doesn't.
C
D
A
C
It
doesn't
seem
to
use
the
result
to
use
a
reflection
to
to
you
to
find
the
proper
key.
It
really
uses
the
key
that
you
using
the
arguments
array
in
in
our
case
some
keys
have
underscore,
and
that's
that
causes
the
issue.
So
one
idea
could
be
that
of
using
a
mapping
function
or
maybe
a
function
that
converts
keys
with
underscore
to
commit
case
just
to
continue
using
the
the
reservation.
Interface,
constants
I,
don't
know,
I,
don't
know
if
you
like
this
idea
or
it's
something
that
violates
the
guidelines
on
best
practices.
A
Different
conventions
so
like
one
conversion
for
constant
values
with
an
underscore,
but
our
mapper
actually
will
mop,
will
try
to
mop
stock
ID
with
underscore
to
the
stock
ID.
Without
with
the
camel
case,
and
in
our
PHP
code,
we
have
a
agreement
to
use
variables
in
the
camel
case.
So
what
I
propose
to
do
right
now
is
just
to
fix
the
constant
names
here
to
get
rid
of
underscore
and
use
the
camel
case
here.
B
D
Egor
also
some
solution
for
it.
It's
it's,
not
a
problem
to
have
some
some
that
some
mapper
function
in
there
that
you're
defining
the
Const
two
times
for
the
for
the
different
namings,
and
you
will
have
a
map
function
from
discounts,
type
to
discounts,
type
or
use
use.
Different
cons
for
the
SEC
for
coordinator
for
the
correct
naming
convention,
I.
A
Don't
think
that
we
need
to
introduce
new
constants
so
introducing
as
more
contracts
we
will
introduce.
We
need
so
the
more
problems
we
will
have
in
future,
because
we
need
to
keep
all
contracts
updated
and
actually
introducing
two
constants
for
the
same
thing
will
actually
violate
the
single
responsibility
principle
because,
for
example,
if
you
do
need
to
change
the
value
of
the
stock
ID
to
the,
for
example,
like
stock
identity,
we
need
to
change
values
of
two
constants,
but
not
one
in
future,
so
that.
A
Some
problems
so
here
like
I'm,
more
agree
with
alessandro
who,
who
proposed
to
review
the
service
which
will
convert
the
data
from
the
from
the
underscore
notation
to
camelcase
notation
and
the
only
problem
that
we
need
to
put
this
service
somewhere.
And
for
now
we
try
and
not
to
introduce
new
services
to
the
framework.
So
we're
trying
to
be
as
independent
as
possible
and
I'm,
not
sure
that
will
already
tell
that
service
in
a
framework.
So
I.
B
C
A
Because
because
that's
another
naming-
and
if
there
is
like
this
already,
it's
a
basic
framework
code
which
gives
like
mapping
one-to-one
between
the
case
of
so
we
can
break
and
potentially
break
some
extension.
So
what
I
propose
to
do
is
to
introduce
the
stories
which
will
admit
array
and
the
service
is
looking
through
the
keys
of
that
array
and
make
a
conversion
from
the
from
the
underscore
notation
to
a
camel
case
and
the
return,
an
array
with
the
camel
case
notation
for
keys.
A
D
It's
it's
out.
It
sounds
good
for
me
because
then
we
can
move
this
service
later
to
the
to
the
core,
and
we
also
need
to
move
some
functionality
later
to
the
core
from
from
the
MS
I'm
audio,
because
also
also,
we
need
change
the
switching
process
and
yeah.
It
will
be
helpful
for
for
core
developers
or
future
developing
in
the
car
yeah.
A
So,
okay,
so
let's
make
it
as
an
independent
stories
and
if
it
will
be
an
independent
story,
it
would
be
quite
easily
to
move
it
to
the
framework
and
future
potentially
and
yeah
other
any
other
open
questions
regarding
regarding
this
stuff.
So
I
believe
it
was
probably
the
trickiest
part
here:
okay,.
C
C
A
Afraid
of
not
not
the
size
of
the
variable
char
data
type
but
because,
like
we
have
a
gap
and
actually
it's
a
park
in
so
if
we
will
use
as
big
lands
of
the
field
for
my
sequel
will
just
end
up
with
creating
a
text
field
text,
data
type
and
the
tag.
That
type
is
not
very
efficient
in
my
sequel
I'm.
Just
because
potentially
the
reservation
table
could
be
pretty
pretty
heavy
loaded.
And
do
you
like
add
quite
a
lot
of
data
there.
A
A
C
A
I
propose
to
create
and
actually
I
will
create
three
github
issues
and
I
was
on
the
board.
So
anybody
can
take
him,
so
you
can.
Can
you
work
on
that?
So
we
just
agreed
to
to
merge
the
pool
request
to
the
dilemma
Brian.
So
everybody,
for
example,
Alessandro,
could
could
merge
it
to
his
branch
and
resolve
the
conflicts,
because
I
believe
the
next
pool
request,
which
would
be
deliberate
to
the
main
line,
would
be
a
pull
request
of
Alexandra.
A
D
Okay,
then,
after
the
meeting
I
take
one
of
them
or
two
of
them
and
we
fix
it,
and
we
also
talk
in
their
latest
meeting
or
a
previous
meeting
about
some
some
testing
stories.
I
think
it
would
be
nice
to
have
a
moral
test,
courage
for
the
for
the
MSI
project
and
I.
It's
we
have
food
to
cover
more
of
the
components
with
integration
or
unit
tests.
It's.
A
Propose
so
for
now
we
keep
pretty
modular
architecture,
and
now
our
kekkaishi
is
not
really
dependent
on
magenta
to
framework
stuff.
So
we
are
not.
We
are
not
integrated
to
the
catalog,
for
example,
so
we
can
cover
our
functionality
independent
from
the
catalog.
That's
why
I
propose
to
cover
a
newly
created
code
with
the
unit
test
as
well
as
they
are
be
functional
because
most
of
the
services
we
are
going
to
provide
a
will
of
the
web
api
will
have
the
web
api.
A
So,
for
example,
we
already
have
the
big
PA
coverage
for
the
source
creation
and
the
source
management
operation.
We
need
to
create
additional
services
for
the
for
the
stock
management
and
I
believe
when
the
alessandra
pull
request
would
be
ready.
We
will.
The
next
story
would
be
creation
of
the
services
which
actually
calculate
the
quantity
based
on
the
stock
item,
plus
all
the
reservation
created
for
some
particular
amount
of
fact,
and
when
we
will
create
the
services
we
can
also
cover
them
with
the
API
test.
A
So
actually,
in
our
case,
Web
API
will
cover
the
the
cool
user
user
case,
so
it
would
be
similar
to
integration
test.
So
all
the
code
involved
in
the
like
all
the
code
would
be
covered
with
the
test
and
using
this
will
be
digest.
We
can
reproduce
the
user
scenario
so
the
who
user
scenario.
So
the
idea
is
to
have
all
user
scenarios
to
be
covered
with
some
kind
of
test,
whether
this
is
a
integrational
or
web
api
or
functional
test.
So
I
believe,
in
our
case,
is
pretty
good
to
have
a
big
ideas.
Okay,.
D
I
mean
the
question
as
its
I
take
a
feature
or
I'm
a
make:
a
quality,
some
quality
tasks
for
the
project.
I
am
not
sure
what
is
what
is
the
best
for
the
project
currently,
because
we
have
some
technical
to
do
or
technical
parts
they
are
uncovered
currently
and
my
I
thinking
about
what
is
the
best
for
the
project
to
implement
a
new
feature
or
Cara
Allred
feature
with
some
some
test
coverage.
A
So
I
believe
that
we
for
now
we
have
that
three
github
issue,
which
is
the
result
of
this
story
implementation.
So
we
can
take
them
and
just
finish
so
that
will
make
our
code
more
cleaner.
So
because
sometimes
we
need
fix
our
to
do
make
some
refactoring
introduce
some
testing
because
we
can
just.
We
can
just
take
new
features,
because
that
will
accumulate
our
technical
depth
for
future
yeah.