-
Notifications
You must be signed in to change notification settings - Fork 248
Metapackage Installation Guide
The current repository contains modules that belong to Inventory functionality only. To provide the ability to develop the project locally we introduced a development workflow that can help external developers work with the project.
-
Clone the
magento2
git repository and check out the latest develop branch, e.g.2.4-develop
. You may also check out and use any2.4
release tags (or2.3
if you are intended to work with Inventory1.1
).git clone [email protected]:magento/magento2.git .
-
Create an
ext
directory in the root of themagento2
project directory:cd magento2 mkdir ext
-
Clone the
inventory
repository into the appropriate directory insideext
:git clone [email protected]:magento/inventory.git ext/magento/inventory
-
Update Composer settings for the project to allow a better development workflow:
-
minimum-stability
for packages is updated todev
value. This allows installation of development modules:composer config minimum-stability dev
-
To be able to work with stable packages enable the
prefer-stable
property:prefer-stable: true
. It should be included right above theminimum-stability
setting. -
Next we configure Composer so that it knows where to find new modules. The following command will configure any extension code inside the
ext
directory to be treated as a package and symlinked to thevendor
directory:composer config repositories.ext path "./ext/*/*/*"
-
-
Finally, install the
inventory-metapackage
metapackage:composer require magento/inventory-metapackage
At this point, all of the inventory-metapackage
modules are symlinked inside the vendor
directory, which allows both running a Magento installation with additional modules as well as doing development using the standard git workflow.
You may need to ensure that there are no Magento_Inventory*
modules are listed as disabled when you run bin/magento module:status
. If they are, follow the docs on how to enable modules.
In order to improve the developer experience when working with this repository structure, a few additional items may be configured:
-
Exclude
ext
directories from root directory Git:echo ext >> ./.git/info/exclude
-
Skip root directory
composer.*
files to avoid committing them by mistake:git update-index --skip-worktree composer.json git update-index --skip-worktree composer.lock
This operation is reversible, if needed:
git update-index --no-skip-worktree composer.json git update-index --no-skip-worktree composer.lock
Multi-Source Inventory developed by Magento 2 Community
- Technical Vision. Catalog Inventory
- Installation Guide
- List of Inventory APIs and their legacy analogs
- MSI Roadmap
- Known Issues in Order Lifecycle
- MSI User Guide
- 2.3 LIVE User Guide
- MSI Release Notes and Installation
- Overview
- Get Started with MSI
- MSI features and processes
- Global and Product Settings
- Configure Source Selection Algorithm
- Create Sources
- Create Stock
- Assign Inventory and Product Notifications
- Configure MSI backorders
- MSI Import and Export Product Data
- Mass Action Tool
- Shipment and Order Management
- CLI reference
- Reports and MSI
- MSI FAQs
- DevDocs Documentation
- Manage Inventory Management Modules (install/upgrade info)
- Inventory Management
- Reservations
- Inventory CLI reference
- Inventory API reference
- Inventory In-Store Pickup API reference
- Order Processing with Inventory Management
- Managing sources
- Managing stocks
- Link and unlink stocks and sources
- Manage source items
- Perform bulk actions
- Manage Low-Quantity Notifications
- Check salable quantities
- Manage source selection algorithms
- User Stories
- Support of Store Pickup for MSI
- Product list assignment per Source
- Source assignment per Product
- Stocks to Sales Channel Mapping
- Adapt Product Import/Export to support multi Sourcing
- Introduce SourceCode attribute for Source and SourceItem entities
- Assign Source Selector for Processing of Returns Credit Memo
- User Scenarios:
- Technical Designs:
- Module Structure in MSI
- When should an interface go into the Model directory and when should it go in the Api directory?
- Source and Stock Item configuration Design and DB structure
- Stock and Source Configuration design
- Open Technical Questions
- Inconsistent saving of Stock Data
- Source API
- Source WebAPI
- Sources to Sales Channels mapping
- Service Contracts MSI
- Salable Quantity Calculation and Mechanism of Reservations
- StockItem indexation
- Web API and How To cover them with Functional Testing
- Source Selection Algorithms
- Validation of Domain Entities
- PHP 7 Syntax usage for Magento contribution
- The first step towards pre generated IDs. And how this will improve your Integration tests
- The Concept of Default Source and Domain Driven Design
- Extension Point of Product Import/Export
- Source Selection Algorithm
- SourceItem Entity Extension
- Design Document for changing SerializerInterface
- Stock Management for Order Cancelation
- Admin UI
- MFTF Extension Tests
- Weekly MSI Demos
- Tutorials