►
From YouTube: MSI Open Demo. October 6, 2017
Description
MSI Weekly Demo:
- Implement Reservation Clean-Up
-Default Source and Stock. Creation of Default Source and Stock for it. Including admin UI
- Import/Export of Stock Sources (new functionality + admin UI)
New Functionality of Source Items (products available on physical warehouses ) Import/Export presented.
https://github.com/magento-engcom/msi/wiki/MSI-Roadmap
A
So
actually
the
story
I
am
going
to
show.
You
is
the
default
sourcing
stock
creation
of
default
source
and
stock.
So
the
main
idea
here
is
to
is
to
provide
for
for
merchants
who
will
have
the
MSI
onboard,
but
for
those
who
don't
want
to
use
a
multi,
stop
functionality
not
to
overcomplicate
their
user
experience
and
follow
the
requirement
that
look
and
feel
for
this
merchant
should
be
the
same
as
before
when
magenta
was
a
single
stock
system.
A
Yes,
so
we
are
still
in
story
on
magenta
and
actually
doing
that
after
the
magenta
would
be
installed.
We
will
see
that
the
some
default
source
is
created
and-
and
we
have
a
linkage
for
the
default
stock
and
we
no
need
to
introduce
any
additional
logic.
So
actually
it
would
be
pretty
pretty
helpful
for
for
those
who
still
use
this
new
stock
system
and
for
those
who
don't
who
would
like
to
use
a
multi
stop
functionality,
they
they
would
have
an
ability,
thread
more
sources
and
introduce
more
linkage
to
another
stocks
and
make
another
decision.
B
B
A
A
A
A
Which,
which
is
supposed
to
be
implemented
for
the
defaults
orson
stock?
Another
part
of
that
story
is
that
we
need
to
prevent
that
default.
Source
and
stock
should
be
deleted,
because
if
we
will
delete
this-
and
actually
probably
just
this
equation
to
mark
how
it's
supposed
to
be
implemented,
whether
we
need
to
prevent
the
leader
of
the
story
source
on
a
single
stock
system,
because
actually,
if
you
will
delete
one
actually,
that
will
break
the
whole
inventory.
C
A
And
actually
one
more
question:
we
wanted
to
ask
in
this
couple
this
story
so
because
there
are
potentially
two
possible
ways:
how
can
we
treat
this
default
source?
Whether
we
can
treat
this
as
a
role,
so
we
can
reassign
the
Dafoe
source
to
to
any
of
the
sources
wills,
health
or
whether
we
would
we
would
use
this
like
pre,
pre
hard-coded
and,
for
example,
like
magenta
default
website,
which
is
not
supposed
to
be
reassigned
to
any
other
website.
A
C
A
D
B
D
D
Can
show
you
how
the
tests
run
and
actually
the
test
covers
to
use
case
the
get
product,
quantity
in
stock
and
the
each
product
in
stock
use
cases,
but
to
perform
these
tests
the
cleanup
the
cleanup
service
is
used,
and
let
me
remind
you
what
the
cleanup
is.
The
cleanup
is
that
procedure
that
cleans
our
all
the
reservation
that
are
bound
to
the
same
stock
and
product
and
whose
sum
gives
zero,
because
at
that
point
these
information
is
as
no
is
meaningless,
so
can
be
removed.
D
There
is
not
so
much
to
see,
but
there
is
something
to
say
about
these
dysfunctionality,
because
we
had
a
lot
of
discussion.
First
of
all,
let
me
say
that
the
work
that
were
that
did
is
really
useful
because
since
I
was
developing,
I
was
developing
my
integration
test
without
the
default
source
and
the
default
stock
I
couldn't
use
the
reservation.
Fixer
files
because
reservation
reservation
are
depends
on
the
stock
index
table
which
isn't
created,
isn't
created
as
fixture
file,
but
is
created
by
indexation,
so
I
couldn't
use
and
I
had
to
create
reservation.
D
So,
for
example,
here
the
first
thing
I
have
to
do
is
running
the
indexer,
just
to
be
sure
that
the
table
is
created,
the
stock
at
the
excess
stock
table
is
created.
Then
I
create
the
reservation
that
needs
the
the
stock
ID
and
then
I
can
execute
my
my
I
can
create
reservations
and
execute
my
tests
and
my
assertion,
and
there
is
also
something
not
very
clean
here.
That
means
that,
to
remove
reservation,
I
have
to
unreserve
the
same
quantity.
D
They
are
that
I
reserved
and
during
teardown
of
the
tests,
I
call
the
reservation,
cleanup
method
that
will
remove
these
records
from
the
DB.
This
is
done
for
two
reasons.
First
of
all,
we
don't
have
a
method
to
delete
my
reservations
in
our
resource
models,
because
we
don't
need
to.
We
don't
need
them,
so
we
can
call
directly
something
that
deletes
our
reservation
from
our
source
models.
D
But
another
thing
that
will
be
refactored
after
merging
of
vertex
module
is
the
fact
that
we
can
move
this
creation
of
reservation
from
from
the
test
into
fixture
files,
because
at
that
point
we
will
have
the
full
source
and
other
full
stock
and
which
we
can
rely
on
this
stock
ID
identified
by
ID
1.
So
this
test
will
be
a
refactoring
and
cleaned
up
and
I
I
will
be
more
proud
of
it
in
the
future.
D
D
The
fact
that
the
product
is
in
stock
doesn't
necessarily
mean
that
the
product
is
saleable.
We
will
have
to
take
into
account,
for
example,
the
pack
orders,
but
these
are
all
topics
that
belong
to
another
domain.
They
are
not
related
to
inventory
domain,
they
are
related
to
sales
domain,
so
we
will
just
like
we
did
for
inventory
catalog
in
which
we
created
the
default.
The
birth
tax
create
created
the
default
source
and
stock
for
a
single
warehouse
management.
D
D
D
A
E
E
C
E
B
E
Work
with
separate
entities
for,
for
example,
source
items
in
case
for
change,
count
of
products
for
sources,
stocks
in
case
of
assign
an
assigned
sources
to
stalk
and
disable
enable
sources.
And
in
this
case,
we
work
with
source
entity
in
indexing.
And
this
problem
for.
E
A
Okay,
so
I
will
summarize
what
we
Talia
just
described
so
because
we're
having
pretty
complex
Indies-
and
actually
this
will
be
the
first
multi-dimensional
index
because
we
will
have
a.
We
will
have
a
dedicated
dimension
for
each
stock
item
and
actually
the
dimension
would
be
represented
as
a
independent
table
in
the
database.
So
we
and
we
have
several
cases
when
we
need
to
invalidate
the
index,
so
the
first
one
when
the
when
the
sum
product
count
is
changed
on
some
particular
warehouse.
A
A
Case
we
need
to
find
all
the
stocks
to
which
the
source
is
assigned
and
also
make
a
full
indexation
of
of
these
dimensions
instead
it'll
bit
another
kind
of
indexation
and
the
third
one
case
when
we
have
the
link
assignment
between
source
and
spoke,
and
this
link
is
changed.
So
we
need
to
track
three
different,
three
different
and
and
depending
on
these
changes,
we
need
to
make
one
or
another
kind
of
three
indexation.
A
So
actually,
typically,
this
kind
of
work
implemented
as
a
independent
in
this,
but
we
don't
want
to
over
sophisticated
and
the
UI,
for
example,
adding
three
different
industries,
because
it
wouldn't
be
so
very
understandable
by
merchants.
That's
why
we
would
like
to
introduce
and
compound
index,
which
will
include
all
these
three
indexes
and
we'll
run
all
of
these
three
indexes.
A
So
from
the
user
like
from
the
merchants
perspective,
there
would
be
just
one
index
in
the
UI
and
one
index
comment
which
he
can
he
can
run
from
his
CLI,
but
actually
that
comment
will
lead
that
three
indexes
under
the
hood
would
be
wrong.
So
this
actually
is
a
problem
we
are
trying
to
solve
in
the
current
task
and-
and
we
have
to
working
on
it,
because
there
is
no
any
any
similar
example
in
magenta,
yet
solely
we're
trying
to
implement
this
new
solution
and
I.
A
F
Ego
one
question:
we
discussion
us
in
Munich
with
sub
services
or
sub
elixir.
I
think
the
first
case
is
already
implemented
because
we
have
some
performance
optimization
for
M
V.
If
you
will
change
the
quantity
of
one
product
yeah
the
immutable
will
get
information.
Okay,
the
product
red
t-shirt,
has
changed
to
other
quantity
and
I.
Think
the
for
the
first
case.
It's
not
necessary
to
implement
some
yet.
C
F
A
A
In
the
quality,
but
it's
still
not
understandable
what
actually
should
be
green.
This
make
Florian
fixation
and,
at
some
time
launched
in
the
share
like
comment
of
the
cron
comment,
because
it's
not
clear
yet
what
what
actually
has
been
changed
because
we
have
to
potentially
we
can
have
too
many
dimensions
and
we
no
need
to
make
the
full
realization
and
reindex
the
full
dimensions,
but
we
probably
need
to
change
some
of
the
dimensions,
for
example,
for
the
stock
one
and
stop,
but
stock
3
and
4
would
not
be
affected
at
all.
A
A
G
G
So
here
we
go
so
what
I
prepared
is
just
to
demonstrate
one
of
the
imports
we
are
currently
finished
with
our
finish,
we
are
so
far.
We
have
a
working
append
and
update
behavior,
and
the
next
steps
will
be
to
implement
tests
for
all
these
cases.
I
will
show
now,
but
it
works
so
far.
So
in
my
tests,
I
have
one
product
with
the
SKU
test
which
to
assign
sources
and
with
different
quantities
and
I
have
small
CSV,
which
also
imports
for
the
test
SKU
for
free
sources.
G
G
G
G
So
as
we
conceived
radiation,
the
sorcerer
G
isn't
a
valid
one,
so
we
cannot
import.
I
will
also
show
a
little
bit
step
into
the
current
architecture.
We
have
so
we
decide
to
create
the
import/export
as
a
completely
new
module
here
and
the
reason
is
we
have
a
heart
dependency
to
the
current
import/export,
which
is
quite
legacy,
and
so
the
current
implementation
is
that
we
have
our
source
entity
for
the
import,
which
depends
which
extends
the
abstract
entity
from
the
legacy
code.
But
we
try
to
avoid
as
much
depending
a
legacy
code
here
as
possible.
G
So,
for
example,
for
the
validation
part,
we
have.
We
use
a
pattern
which
is
already
used
in
other
inventory
part
currently,
so
we
inject
here
a
valid
data
chain
which
have
an
own
validation
interface,
and
so
it
is
possible
to
add
own
validation,
steps
with
by
by
extending
the
validator
property
via
XML
and
the
next
step,
which
is
new
to
import/export,
depending
or
in
order
to
the
other
current
implementation
in
magenta.
G
Another
I
think
nice
to
see
part
is,
for
example,
this
you
realize,
say
here
Jason
this
class,
which
is
dip
deprecated,
currently
in
magenta
and
about
but
still
and
necessary,
for
the
abstract
entity.
So
we
decide
to
create
a
new
legacy,
Jason
helper
interface,
which
provide
us
the
information
about
the
legacy,
methods
and
use
new
and
old
interface
in
order
to
create
a
proxy
for
further
current
deprecated
help,
so
I
think
also
really
interesting
part
how
to
handle
with
legacy
code.