July 12, 2026 · 7 min read
Composer vs. Manual Install: Adding a Magento Extension Without Breaking Your Store
Most Magento extension docs assume you're running Composer with access to a private repository. Plenty of real stores aren't — inherited codebases, agencies that manage deployments a different way, or a store owner who just wants to drop a folder in and enable a module. Here's when each method makes sense, and how to do a manual install without leaving your store in a broken state.
Composer vs. manual: the real difference
Composer doesn't just copy files — it resolves and locks dependency versions across every package in composer.json, so upgrading one extension can't silently break another's required library version. A manual install skips that resolution entirely: you're responsible for making sure the module's own dependencies (if any) are already satisfied by what your Magento install already has.
For a self-contained module with no third-party PHP dependencies, that tradeoff is minor. For one that pulls in its own SDKs, manual install means checking the module's requirements by hand.
When manual install is the right call
- You don't have Composer access configured for private package repositories on this environment.
- Your deployment pipeline builds a release artifact elsewhere and only ships finished code to production — Composer runs at build time, not on the server.
- You're testing a module on a throwaway local environment and don't want to touch
composer.jsonyet.
Manual install, step by step
This is the general pattern for any Magento 2 module distributed as a plain module folder (not a Composer package) — for AI Copilot specifically, download the .zip from your account dashboard after purchase.
# 1. Unzip into app/code, matching Vendor/Module naming mkdir -p app/code/TVTCommerce/AiCopilot unzip ai-copilot.zip -d app/code/TVTCommerce/AiCopilot # 2. Enable the module bin/magento module:enable TVTCommerce_AiCopilot # 3. Run setup upgrade + compile (production mode) bin/magento setup:upgrade bin/magento setup:di:compile # 4. Clear cache and confirm it's enabled bin/magento cache:flush bin/magento module:status TVTCommerce_AiCopilot
The same pattern applies to TVT Commerce's free modules — Admin Audit Log and SMTP Config — just swap the module name and folder.
Three mistakes that turn a manual install into a broken store
- Wrong folder casing or nesting.
app/code/<Vendor>/<Module>must match the module's declared name exactly (case-sensitive on Linux) — a mismatch produces a silent "module not found" rather than an obvious error. - Skipping
setup:di:compilein production mode. Production mode serves pre-compiled code; a new module's classes won't be picked up until you recompile, even thoughsetup:upgradesucceeded. - Installing directly on production first. Do this on staging, verify the admin still loads and existing functionality is untouched, then repeat the same steps on production — manual installs have no dependency resolver to catch a version conflict for you, so staging is where you find out.
Either way, nothing about licensing changes. Whether you install via Composer or manually, the license key you received still activates the module the same way — under Stores > Configuration > TVTCommerce > AI Copilot > License.
Don't want to do either yourself?
If you'd rather skip the install steps entirely, AI Copilot's done-for-you installation add-on has our team install the module, connect your AI provider key, and verify it live on your store — available at checkout alongside any plan.
Ready to get set up?
See pricing & installation options