Adobe Commerce Interview Questions and Answers (2026 Updated)
Adobe Commerce (Magento 2) Interview Questions with Answers for Developers
Dependency Injection (DI)
Q1: What is Dependency Injection?
A design pattern where dependencies are injected via constructor instead of created manually.
Q2: Which file configures DI?
di.xml file.
Q3: What is preference?
Used to override a class or interface globally.
Q4: What is virtualType?
Used to change constructor arguments without modifying original class.
Q5: What is shared="false"?
Creates a new instance every time.
Q6: What is Object Manager?
Magento’s dependency injection container.
Q7: Should Object Manager be used directly?
No, except in rare cases.
Q8: What is constructor injection?
Injecting dependencies via constructor.
Q9: What is factory?
Used to create new instances dynamically.
Q10: What is proxy?
Used for lazy loading heavy classes.
Plugins (Interceptors)
Q11: What is a plugin?
Allows modification of public methods without overriding.
Q12: Types of plugins?
before, after, around.
Q13: before plugin?
Executes before original method.
Q14: after plugin?
Executes after method.
Q15: around plugin?
Wraps method and controls execution.
Q16: What is $proceed?
Calls original method.
Q17: If $proceed not called?
Original method will not execute.
Q18: What is sortOrder?
Defines plugin execution order.
Q19: Can plugins modify return value?
Yes.
Q20: Plugin limitation?
Cannot be applied on private/final methods.
Events & Observers
Q21: What is event?
A trigger point in Magento.
Q22: What is observer?
Executes logic when event is fired.
Q23: File for events?
events.xml
Q24: Custom event?
Use dispatch method.
Q25: Plugin vs Observer?
Plugin modifies methods, observer listens to events.
Q26: Can multiple observers exist?
Yes.
Q27: Can observer stop execution?
No.
Q28: Event payload?
Data passed with event.
Q29: Event scope?
Global, frontend, adminhtml.
Q30: Performance?
Observers are lighter than plugins.
Service Contracts
Q31: What is service contract?
Set of interfaces for APIs.
Q32: Repository?
Handles CRUD operations.
Q33: Data interface?
Defines getters/setters.
Q34: Why service contracts?
For API stability.
Q35: Extension attributes?
Used to extend data interfaces.
Q36: SearchCriteria?
Used to filter collections.
Q37: get() vs getList()?
get() returns single, getList() returns multiple.
Q38: API interface?
Defines contract for service.
Q39: REST API?
HTTP-based API.
Q40: SOAP API?
XML-based API.
Database & Models
Q41: Model?
Represents data.
Q42: ResourceModel?
Handles DB operations.
Q43: Collection?
Fetches multiple records.
Q44: load()?
Loads single record.
Q45: save()?
Saves data to DB.
Q46: entity_id?
Primary key.
Q47: CRUD?
Create, Read, Update, Delete.
Q48: Schema patch?
Used for DB structure changes.
Q49: Data patch?
Used for data changes.
Q50: Declarative schema?
XML-based DB structure management.
EAV Model
Q51: What is EAV?
Entity Attribute Value model.
Q52: Used for?
Products, customers.
Q53: Attribute?
Property of entity.
Q54: backend_type?
Defines storage type.
Q55: Attribute set?
Group of attributes.
Q56: Value table?
Stores attribute values.
Q57: Static attribute?
Stored in main table.
Q58: Dynamic attribute?
Stored in value table.
Q59: EAV advantage?
Flexibility.
Q60: Disadvantage?
Complex queries.
Layout & UI
Q61: Layout XML?
Defines page structure.
Q62: Block?
PHP class for UI logic.
Q63: Container?
Holds blocks.
Q64: Template?
PHTML file.
Q65: referenceBlock?
Modify existing block.
Q66: UI component?
JS-based UI system.
Q67: Knockout.js?
Used for data binding.
Q68: Handle?
Layout identifier.
Q69: XML merging?
Combines layout files.
Q70: Override layout?
Use custom XML.
Indexing & Cache
Q71: Indexer?
Improves query performance.
Q72: Cache?
Stores data for speed.
Q73: Full page cache?
Caches full HTML page.
Q74: Cache types?
Config, layout, block, full_page etc.
Q75: Cache flush?
Clears all cache.
Q76: Cache clean?
Clears selected cache.
Q77: Reindex?
Rebuild index tables.
Q78: Cache invalidation?
Marks cache outdated.
Q79: Index vs Cache?
Index optimizes DB, cache stores output.
Q80: Performance?
Both improve speed.
CLI & Deployment
Q81: setup:upgrade?
Runs DB updates.
Q82: di:compile?
Generates DI classes.
Q83: static-content deploy?
Deploys frontend assets.
Q84: production mode?
Optimized performance mode.
Q85: developer mode?
Debugging mode.
Q86: maintenance mode?
Disables frontend access.
Q87: env.php?
Environment config.
Q88: config.php?
Module config.
Q89: cron?
Scheduled tasks.
Q90: run cron?
bin/magento cron:run
Miscellaneous
Q91: module.xml?
Defines module.
Q92: registration.php?
Registers module.
Q93: routes.xml?
Defines routes.
Q94: webapi.xml?
Defines APIs.
Q95: system.xml?
Admin config.
Q96: ACL?
Access control.
Q97: GraphQL?
Query-based API.
Q98: Message Queue?
Async processing.
Q99: RequireJS?
JS module loader.
Q100: Theme inheritance?
Extending themes.