MSI In-Store Pickup
Функционал & сложности
2
Александр Кравчук
Software Developer @ISM Ukraine
Magento Community Maintainer
3
Максим Новик
Software Developer @ISM Ukraine
Magento Community Maintainer
4
Содержание
1. Вступление.
2. Что такое “In-Store Pickup”?
3. Взаимосвязь между “In-Store Pickup” и MSI.
4. “In-Store Pickup” с точки зрения пользователя.
5. Изменения в Order Flow.
6. Технические детали.
7. Заключение.
4
Как все начиналось...
5
6
6
7
7
Почему?
● Это что-то сложное, с чем все равно придется иметь дело;
● Omnichannel;
● Совпадает с интересами компании;
● Плохой опыт с “In-Store Pickup” расширениями, разработанными 3’rd
party разработчиками;
8
Почему нет!
9
10
10
11
11
12
12
13
13
14
15
16
17
Заказ
17
Как совместить In-Store Pickup с MSI?
18
Checkout?
23
Когда заказ создан...
29
Case #1 Источник (Source) не может обслужить заказ
32
Case #1 Источник (Source) не может обслужить заказ
33
Внутренняя перевозка
https://github.com/magento-engcom/msi/issues/2101
35
Case #1 Источник (Source) не может обслужить заказ
36
Case #1 Источник (Source) не может обслужить заказ
37
Case #1 Источник (Source) не может обслужить заказ
38
Case #1 Источник (Source) не может обслужить заказ
39
Case #2 Состояние “гонки” между заказами
40
Case #2 Состояние “гонки” между заказами
41
Case #2 Состояние “гонки” между заказами
42
Case #2 Состояние “гонки” между заказами
45
Case #2 Состояние “гонки” между заказами
46
Case #2 Состояние “гонки” между заказами
47
Case #2 Состояние “гонки” между заказами
48
49
Inventory
50
Inventory In-Store Pickup
51
Inventory In-Store Pickup
52
53
Source
Pickup Location
54
Pickup Location
55
Pickup Location
● Соответствует шаблону Data Transfer Object
56
Pickup Location
● Соответствует шаблону Data Transfer Object
● Неизменный (Immutable)
57
Pickup Location
● Соответствует шаблону Data Transfer Object
● Неизменный (Immutable)
● Расширяемый!
58
Расширяемость?
59
Source
60
“XMLs are like kittens. Everybody love kittens, all of you love XMLs”.
© Igor Miniailo
61
Pickup Location
<config>
<object type="MagentoInventoryInStorePickupApiApiDataPickupLocationInterface">
<field name="source_code" type="string" nullable="true" />
<field name="name" type="string" nullable="true" />
<field name="fax" type="string" nullable="true" />
<field name="description" type="string" nullable="true" />
...
<field name="open_hours" type="string[]" nullable="true" />
</object>
</config>
https://github.com/magento-engcom/msi/issues/2126
62
In-Store Pickup < Magento ORM
63
Pickup Location
64
Pickup Location
Pickup Location
<type name="MagentoInventoryInStorePickupApiModelMapper">
<arguments>
<argument name="map" xsi:type="array">
<item name="source_code" xsi:type="string">source_code</item>
<item name="email" xsi:type="string">email</item>
<item name="fax" xsi:type="string">fax</item>
<item name="contact_name" xsi:type="string">contact_name</item>
<item name="description" xsi:type="string">description</item>
<item name="latitude" xsi:type="string">latitude</item>
<item name="longitude" xsi:type="string">longitude</item>
<item name="country_id" xsi:type="string">country_id</item>
<item name="region_id" xsi:type="string">region_id</item>
<item name="region" xsi:type="string">region</item>
<item name="city" xsi:type="string">city</item>
<item name="street" xsi:type="string">street</item>
<item name="postcode" xsi:type="string">postcode</item>
<item name="phone" xsi:type="string">phone</item>
<item name="extension_attributes.frontend_name" xsi:type="string">name</item>
<item name="extension_attributes.frontend_description" xsi:type="string">description</item>
</argument>
</arguments>
</type>
66
67
Почему мы занимаемся этим?
68
Почему мы занимаемся этим?
● Рост профессиональных навыков
69
Почему мы занимаемся этим?
● Рост профессиональных навыков
● Возможность не отставать от Magento 2 Best Practices
70
Почему мы занимаемся этим?
● Рост профессиональных навыков
● Возможность не отставать от Magento 2 Best Practices
● Возможность проявить себя в Magento Community
71
Почему мы занимаемся этим?
● Рост профессиональных навыков
● Возможность не отставать от Magento 2 Best Practices
● Возможность проявить себя в Magento Community
● Получить опыт разработки с невероятными ребятами из Magento
72
Присоединяйтесь!
73
Спасибо за внимание!
https://github.com/swnsma
@Aleksandr
swnsma@gmail.com
https://github.com/novikor
@Maxim Novik
novik.kor@gmail.com
74

MSI In-Store Pickup Функционал & сложности

Editor's Notes