Shofy is a multipurpose multi-vendor ecommerce Laravel script (Botble platform) sold on CodeCanyon, with a public demo at shofy.botble.com. Shop owners can join as vendors, sell through themed storefronts, and use the usual marketplace loops — catalog, cart, wishlist, coupons, vendors, and blog. The client install I customized ran on Laravel 10 with Bootstrap/jQuery-era theme assets (sliders, popups, DataTables in admin).
My work was not a full rebuild. It was a focused catalog job: support deeper category nesting on the storefront, import ~3,166 categories from Etsy’s seller category list, and small style fixes so multi-level menus read cleanly. Longer write-up of the same engagement: /project/customize/shofy-ecommerce-laravel-codecanyon.
Best match use case
Shofy fits when you need a CodeCanyon multi-vendor marketplace on Laravel and are willing to customize theme/admin around a real catalog — not only the demo dataset.
| Situation | Why this engagement pattern fits |
|---|---|
| Marketplace with a huge external taxonomy | Backend can hold deep trees; theme menus often need work |
| Migrating categories from another marketplace (e.g. Etsy-style lists) | One-off HTML/CSV import beats weeks of manual admin entry |
| Multi-vendor portal on Laravel 10 / Botble | Theme system already there; extend views instead of replacing the stack |
| USA client ops with a fixed category source of truth | Scripted import keeps alphabetical order and slugs consistent |
The problem
The client needed the full seller category tree from etsy.com/help/categories/seller — on the order of 3,166 categories with three levels of nesting.
Challenges on the stock Shofy theme install:
- Manually pasting that many rows in admin would take days
- Backend already supported nested categories of arbitrary depth
- Default frontend theme only rendered two subcategory levels in the menus/views
- Without view + CSS updates, deeper levels either disappeared or looked broken in the mega-menu / category UI
What I built
1. Category import script (Etsy seller list → Shofy)
Controller + routes that:
- Download the external category HTML (
file_get_contents) and store it understorage/ - Parse the HTML (Laravel HTML parser package) and insert categories in alphabetical order, preserving the multi-level parent/child structure
- Generate category slugs into the related slug table Shofy uses alongside categories
2. Infinite / multi-level category support on the storefront
Updated theme view files that generate category menus so nesting is not capped at two levels — matching what the backend already allowed.
3. Small style fixes for multi-level categories
CSS/markup tweaks so deeper levels indent, wrap, and remain usable in the All Categories / shop navigation patterns (without fighting the rest of the theme).
TIP
Source of truth for this engagement’s steps: the project notes on /project/customize/shofy-ecommerce-laravel-codecanyon. Product reference: CodeCanyon item and demo.
Audit and plan
Before writing the importer I mapped Shofy’s category models, slug tables, and the theme partials that render “All Categories” / shop category trees — then confirmed backend depth vs frontend cap.
- Locate category insert queries and parent_id conventions
- Confirm slug table behavior
- Identify theme views limited to two levels
- Plan download → parse → insert → slug in three controller actions
- Stage on a copy of the client DB before production import
Importer sketch (illustrative)
// Three-step controller flow used on the engagement
public function downloadEtsyCategories(): void
{
$html = file_get_contents('https://www.etsy.com/help/categories/seller');
Storage::put('imports/etsy-categories.html', $html);
}
public function parseAndInsert(): void
{
// HTML parser → nested rows → category insert (alpha order, parent links)
}
public function syncSlugs(): void
{
// Write slug rows for each imported category
}
Comparison
| Approach | Effort | When to choose |
|---|---|---|
| Manual admin entry | Days | Tiny taxonomy only |
| One-off import script | Medium | Large external HTML/CSV source (this project) |
| Ongoing sync API | High | Source updates often and must stay live-synced |
Implementation notes
Stack on the client project: Laravel 10, MySQL, Bootstrap, jQuery, DataTables. Shofy’s theme system meant category menu changes lived in theme views rather than a full fork of core ecommerce plugins.
Delivery checklist that mattered:
- Import idempotent enough to re-run safely on staging
- Preserve three-level (and deeper) parent chains
- Verify mega-menu / category pages after style fixes
- Document how to re-download and re-parse if Etsy’s help page markup changes
Outcome
The marketplace received the full Etsy-derived category tree without days of copy-paste, and the storefront could actually show levels beyond two after the theme + style work. Catalog structure matched the client’s source list instead of the demo’s shallow tree.
Conclusion
Shofy remains a practical CodeCanyon multi-vendor base when you need Laravel + themes and are ready to customize catalog UX. This engagement was a concrete example: deep categories + automated import from Etsy’s seller categories + menu styling — details also documented at /project/customize/shofy-ecommerce-laravel-codecanyon.
Need the same kind of catalog importer or multi-level menu fix on Shofy (or another Botble marketplace)? Start with a short audit of backend depth vs theme rendering.
