Pokud bude výstup z 1. týdne ucházející, tak student může pokračovat v rozvoji modulu pro Magento 2 (další funkcionality).
Zprovoznění vývojového prostředí: návod zde.
Cílem je vytvořit Magento 2 modul pro administraci uživatelů, kteří jsou zodpovědní za dané produkty.
Modul vytvořte ve vendoru Aiti.
Výsledná cesta k modulu bude: app/code/Aiti/AccountManager
module-inventory, module-user, module-catalogYour task is to create complete management of Responsible Users for products (account managers). Every product has one responsible user but a user can have n products.
Acceptance criteria
Learn how init a module. Create registration.php and etc/module.xml
Create database table with columns user_id, firstname, lastname and created_at.
Use etc/db_schema.xml and etc/db_schema_whitelist.json to create a table. You should have it done
before you install the module with setup:upgrade. This whitelist is possible to generate via Magento command.
Don't forget to put declare(strict_types=1) at the beggining of every file.
Create all interfaces in AccountManagerApi module, folder Api.
AccountManagerInterface goes to Api/Data folder, AccountManagerRepositoryInterface in Api folder.
Model interface contains get/set methods, repository should have getById, getList, save and deleteById.
Don't forget to use type hints and annotations.
To work with model and database you should use ONLY interfaces.
Always use AccountManagerInterface, AccountManagerRepositoryInterface of AccountManagerInterfaceFactory.
You should use the Repository approach. Create a model file that implements API interface. Create a resource model and collection. Create a repository file and implement methods. You will use resource model in this one. You should cover NoSuchEntityException and other exceptions.
Connect interfaces and implementations using di.xml
TIP: No need to create AccountManagerInterfaceSearchResults or AccountManagerInterfaceSearchResultsFactory, just make
a reference and Magento creates it for you. You will find out all Factory files are generated automatically.
You can generate all files with command setup:di:compile.
For grid use listing component with columns User ID, Firstname, Lastname, Created and Actions with Edit button. Or you can make the whole row clickable.
Create basic edit form with name and lastname.
User should be able to go back, delete and save user from the edit form. Put buttons for every of these operations. Make Save user a primary button.
Create a routes.xml file.
Use ui_components and DataProviders for all UI components. Layout files only reference ui components. Layout file name should reference a path. RouteID_FolderWithCotrollers_Controller.
For example: account_managers_users_edit.xml.
Create controllers for Index, Edit, Save, New, Delete and MassDelete.
For products create an EAV attribute and make it visible in General tab.
Váš postup prosím reportujte denně na mail: lubos.hubacek@ateli.cz. Dále si také průběžně samostatně vyplňujte zápisy, co jste na praxi dělali.
V tomto týdnu se budete podílet na testování komplexního logistického a warehousingového SW, který kontinuálně dodáváme pro naši sesterskou společnost.
Cílem tohoto testování je pochopit, jak fungují základní procesy ve skladu / logistické firmě a podílet se na možné optimalizaci činnosti pracovníků logistiky. Výstupem by měl být seznam úzkých míst, které pracovníky zdržují, seznam chyb, na které jste narazili a popřípadě ještě Vaše další připomínky, co by šlo v systému vylepšit.
Řepná 23
Plzeň - Litice