CraftMarket
Curated handmade & artisan marketplace theme for WordPress and WooCommerce: one shop sells and presents the work of many makers. Ceramics, jewelry, rattan & wood home decor and a B2B sourcing portal. Version 1.0.0. Online version (always up to date): craftmarket.bzotech.com/documentation.
1. Requirements
- WordPress 6.3 or newer, PHP 7.4 or newer (8.1+ recommended), MySQL 5.7+ / MariaDB 10.3+.
- PHP extensions
gd(image sizes) andzip(installing the bundled plugins). - Pretty permalinks (Settings → Permalinks → Post name).
- Memory limit 256 MB or more and
max_execution_time60 seconds or more are recommended for the demo import.
2. Installation
The download from ThemeForest contains:
| File / folder | What it is |
|---|---|
craftmarket.zip | The theme. Upload this one to WordPress (the CraftMarket Core and CraftMarket Elementor Addons plugins are inside it). |
craftmarket-child.zip | Child theme for your own changes (section 13). |
documentation/ | This document. |
licensing/ | GPL license text and the licenses of the fonts, icons and images (section 15). |
- Appearance → Themes → Add New → Upload Theme: upload
craftmarket.zipand activate it. - The Setup Wizard opens by itself (section 3). It installs the plugins and imports the demo.
- Optional: upload and activate
craftmarket-child.zipas well.
Uploading the whole ThemeForest download instead of craftmarket.zip gives the error "The package could not be installed. The theme is missing the style.css stylesheet." Unzip the download first and upload craftmarket.zip.
Plugins
Without the wizard, install the plugins from Appearance → Install Plugins.
| Plugin | Source | Needed for |
|---|---|---|
| CraftMarket Core | Included in the theme | Required. Artisans, suppliers, trade fairs and case studies, product stories, swatches, tiered pricing and MOQ, wishlist, quotes, trade accounts, Theme Options panel, Demo Importer |
| CraftMarket Elementor Addons | Included in the theme | Required. The page sections as Elementor widgets |
| WooCommerce | WordPress.org (free) | Required. Shop, cart, checkout, accounts |
| Elementor | WordPress.org (free) | Required. Editing the Home, About, Contact, FAQ and Become a Vendor pages visually |
| Contact Form 7 | WordPress.org (free) | Recommended. The Contact page form |
| Polylang | WordPress.org (free), Plugins → Add New | Optional. Multilingual sites (section 14) |
CraftMarket uses only free plugins. No license key is needed for any of them.
3. Setup Wizard
The wizard opens once, right after the theme is activated. Run it again any time from Appearance → CraftMarket Setup. "Skip setup" in the top bar closes it; nothing is changed.
- Plugins. Required and recommended plugins are ticked. "Install & Activate Plugins" installs them one by one; the status of each card turns to Active. If a host blocks installing, use Appearance → Install Plugins or upload them by hand.
- Demo. Pick the Home that becomes your front page, then choose what to import:
- Content: pages, products, artisans, suppliers, posts, reviews, menus and Home layouts.
- Theme Options: social links and the limited batch banner.
- Keep only the chosen demo: see section 4.
- Ready. Links to your site, Theme Options and the Customizer.
Keep the page open while the import runs. A step that stops (time limit of the host) can be started again; nothing is added twice.
4. Demo content
The demo holds four stores: Ceramics (Home 1), Jewelry (Home 2), Rattan & Wood Home Decor (Home 3) and the B2B Wholesale portal (Home 4), with their products, artisans and suppliers, trade fairs, case studies, journal posts, menus and Theme Options.
Keep only the chosen demo
When this box is ticked in the wizard (it is by default), the import is followed by a clean-up for the Home you picked:
- The products, product categories and Home pages of the other three stores are removed.
- The main menus of the other stores are removed; the menu of your store becomes the primary menu.
- For a retail Home (1, 2 or 3) the sourcing-portal content is removed as well: suppliers, trade shows, case studies and the Quick Order page.
- The skin, header and footer of the site are set to those of the chosen Home.
Only items created by the importer are removed. Your own posts, products and pages stay. Untick the box to keep all four stores, for example to compare them before deciding.
Demo Importer screen
CraftMarket → Demo Importer runs the same import without the wizard (all four stores) and has a Remove demo content button that deletes everything the import created and keeps your settings and your own content.
- Best on a fresh WordPress site with WooCommerce, Elementor and CraftMarket Core active.
- Images are replaced by grey placeholders of the same size, since the demo photos may not be redistributed. Replace them with your own photos in the Media Library: the layouts keep their proportions.
- Existing content of your site is never deleted by the import.
5. Homes, skins & layouts
Each Home brings its own look:
| Home | Skin | Header | Footer |
|---|---|---|---|
| Home 1 – Ceramics | Ceramics (terracotta & cream) | Classic | Dark Corporate |
| Home 2 – Jewelry | Jewelry (ink, ivory & gold) | Two-Tier Centered | Minimalist Light |
| Home 3 – Rattan & Wood | Rattan (moss green & sand) | Floating Pill | Eco-Impact |
| Home 4 – B2B Portal | Trade (forest green & amber) | Mega Trade | Trade Portal |
- Make a page a Home: edit the page, use the template "Home (full width)" and pick the Home in the CraftMarket layout box (or in Elementor: gear icon → Settings → Home layout). Settings → Reading sets which page is the front page.
- Change the look of one page: the CraftMarket layout box also sets the skin, header and footer of that page.
- A store per category: Products → Categories → edit a category to give it (and its sub-categories) a skin, header and footer. Example: Jewelry categories use the Jewelry skin while the rest of the shop stays Ceramics.
- Shared pages (cart, account, journal…) use the default skin of Theme Options → General, or follow the last store the visitor opened when "Shared pages follow the last visited store" is on.
6. Elementor widgets
Every section of the Home pages and of the About, Contact, FAQ and Become a Vendor pages is an Elementor widget. They are listed first in the Elementor panel, in the categories CraftMarket Homes, CraftMarket About, CraftMarket Contact, CraftMarket FAQ and CraftMarket Become a Vendor. Each widget has its texts, images, links and product choices as controls; an empty field uses the built-in default, shown in grey.
Opening "Edit with Elementor" on a Home page that has no Elementor content yet loads the widgets of its Home layout with the default texts, so the page looks the same as before. Delete, reorder or mix widgets from any Home freely.
| Page | Widgets |
|---|---|
| Home 1 – Ceramics | Ceramics Hero with Hotspots, Artisan Story Bento, Product Tabs Grid, Craft Provenance Timeline, Meet the Artisans, Wholesale Price Calculator, Customer Reviews, Social Gallery |
| Home 2 – Jewelry | Jewelry Hero with Hotspots, Marquee Ticker, Shop the Look Bundle, Collection Tabs Carousel, Video Story & Bespoke Studio, Vertical Video Shorts, As Seen In & Testimonials, Trade Strip |
| Home 3 – Rattan & Wood | Interactive Room Visualizer, Materials Explorer, Filterable Collection Grid, Craft Villages Map, Project Cost Estimator, In Your Space Gallery |
| Home 4 – B2B Portal | Sourcing Request Hero, Market Ticker, Category Matrix, Wholesale Data Table, Verified Manufacturers, Logistics & Order Protection, Trade Shows, Craft Regions Map, Case Study |
| About | About Hero, Our Story & Milestones, What We Stand For, How Makers Join, Meet the Makers, About Call to Action |
| Contact | Contact Heading, Contact Details & Form |
| FAQ | FAQ Heading, FAQ Questions |
| Become a Vendor | Vendor Hero, Seller Benefits, How Selling Works, Seller Plans & Fees, Maker Stories, Vendor Application, Seller FAQ, Vendor Call to Action |
Tips
- Products in a section: choose a source (featured, latest, on sale, best selling, top rated, a category) or "Chosen products (IDs)" and type the product IDs (shown in Products → All Products when you hover a product).
- Hotspots (Home 1 and 2 hero, Room Visualizer): each spot has a product and a position from the left and top of the image in percent.
- Maps (Craft Villages, Craft Regions): each place has a latitude and longitude; the pin is placed on the map for you.
- Header and footer can also be Elementor templates: Theme Options → Header / Footer → Elementor template.
7. Theme Options
CraftMarket → Theme Options. Empty fields use the built-in default, shown in grey inside the field; type - to hide an element.
| Tab | What you set |
|---|---|
| General | Default skin, shared pages follow the last visited store, container width, breadcrumbs, initials avatars, logo and logo for dark backgrounds |
| Header | Header layout, sticky header, account / wishlist / cart icons, top bar per header layout, search box ("Filter by" list, category select), live search (products, categories, artisans & suppliers, journal posts), search inside the current store, "Did you mean" on misspellings, Quick Order link, an Elementor template as header |
| Footer | Footer layout, copyright ({year}, {site}), payment methods, Eco-Impact counters, an Elementor template as footer, social profiles |
| Skin Texts & Colors | Per skin: logo tagline, announcement (one message per line), search placeholder, popular searches, header button and link, footer about and newsletter texts, brand colours |
| Shop | Products per page, columns, default view (grid, list, B2B table), attribute filters, the limited batch banner, trust row; product page layout, gallery style and the "Shipping & Returns" text |
| B2B & Wholesale | Hide prices from guests, quote instead of cart for guests, wholesale catalog for trade buyers only, hidden price text, what tier discounts and minimum order quantities apply to, tier table on product pages |
| Request a Quote | Where the "Add to Quote" button shows, email for requests, file attachments and their maximum size, thank-you message |
| Trade Accounts | Automatic approval, admin email on new applications, message after applying |
| Vendor Applications | Admin email on new applications, seller terms page, message after applying |
| Store Tools | Search by SKU, camera button in the trade search, swatches on product cards, newsletter thank-you text |
| Backup | Export, import or reset all options |
8. Menus & mega menu
Appearance → Menus. Locations: Primary menu, a primary menu for each store skin (Jewelry, Rattan, Trade), Top bar links, All categories (Trade header) and Footer bottom links. The footer columns are widget areas (Appearance → Widgets → Footer column 1–5): add a Navigation Menu widget to each.
A main menu per store: pages that show the Jewelry skin (Home 2, the Jewelry categories and their products) use the menu assigned to "Primary menu – Jewelry skin", and the same for Rattan and Trade. Leave a location empty to use the Primary menu everywhere.
Each top-level item has mega menu settings: columns, icons, swatches, a featured product, a banner, or any Elementor template as the whole panel. Items can carry a badge (New, Sale, Wholesale).
9. Products
Products are regular WooCommerce products (simple or variable). The CraftMarket Product box adds:
| Tab | Use |
|---|---|
| Story | Artisan or supplier, origin, material, size badge, video and its cover |
| The making of this piece | Steps with photos shown on the product page |
| Specifications | Rows of the specifications table |
| Wholesale | Tier prices, minimum order quantity, "Wholesale only" |
| Limited batch | Batch label, pieces in the batch and the end of the drop (countdown). "4 of 30 left" uses the stock quantity |
| Personalisation | Engraving with price, length and fonts |
| Complete the set | Products sold together at a set discount |
Swatches: Products → Attributes → edit an attribute's terms to give them a colour or a photo; the shop filter, product cards and product page show them as swatches.
Category look: each product category can have a banner, an icon, and its own skin, header and footer (section 5).
10. CraftMarket Core modules
CraftMarket → Dashboard shows new quote requests, trade applications and counts, and lets you switch each feature on or off. A module that is off adds no code, hooks or assets to your site. Modules marked WooCommerce need it to be active.
| Module | What it does |
|---|---|
| Artisans | Artisan / vendor profiles linked to their products, with studio story, process and reviews |
| Factories & Suppliers | Verified manufacturer profiles: certifications, monthly capacity, response time, factory tour |
| Case Studies | B2B projects with client quote and project numbers |
| Trade Fairs | Exhibition calendar with dates, venue, product focus and meeting booking |
| Variation Swatches (WooCommerce) | Colour, metal, material image and button swatches instead of dropdowns |
| Tiered Pricing & MOQ (WooCommerce) | Quantity breaks (for example 10–49: 15% off, 50+: 25% off) applied in the cart, minimum order quantities, tier tables on products and in the B2B table |
| Role-Based Access (WooCommerce) | Hide prices and the cart from guests, sell wholesale-only products to approved trade buyers |
| Request a Quote (WooCommerce) | Quote list with target prices and attachments, sourcing request form, Quote Requests inbox |
| Trade Accounts (WooCommerce) | Trade account application form, approval by the shop, Trade Buyer role |
| Shop the Look & Bundles (WooCommerce) | Add a whole look or set to the cart at once, with a discount when the set is complete |
| Product Add-ons (WooCommerce) | Engraving text and font style with a surcharge on personalised products |
| Wishlist (WooCommerce) | Heart button on products and a wishlist page for guests and buyers |
| Quick Order (WooCommerce) | Order by SKU lists or CSV files, add several products to the cart at once |
| Newsletter | Footer sign-up forms with a subscriber list and CSV export |
| Vendor Applications | "Become a Vendor" form that creates a pending artisan profile, approved by publishing it |
System pages
Some features need a page: Quote List, Apply for a Trade Account, Wishlist, Quick Order and Become a Vendor. The Dashboard lists them; Create missing pages adds any that were deleted.
11. Artisans & suppliers
- Artisans (makers with a profile page, studio photos, story video and their products) and Suppliers (factories with certifications, capacity and MOQ) have their own admin menus. Both can be grouped by craft.
- Trade Fairs and Case Studies feed the B2B Home.
- Link a product to its maker in the product's Story tab; the profile page then lists the product.
12. Wholesale (B2B)
Tiered prices and MOQ
In the product's Wholesale tab add tier rows: a starting quantity and either a % discount or a unit price (example: 10 → 15%, 50 → 25%). The same tab sets the minimum order quantity, unit, lead time and "Wholesale only". The cart applies the right tier as the quantity grows; the product page shows the tier table and the Wholesale Price Calculator widget uses the same tiers. The minimum order quantity blocks smaller quantities in the cart. Theme Options → B2B & Wholesale sets whether tiers and MOQ apply to everyone or to trade buyers only.
Trade accounts
Buyers apply on the Apply for a Trade Account page. Approve them under Users (filter "Trade applications" on the Dashboard); approved buyers get the role Trade Buyer. Turn on automatic approval in Theme Options → Trade Accounts.
Request a Quote
"Add to Quote" buttons collect products in a quote list. The buyer adds quantities, target prices, a message and files, and sends the request. Requests arrive by email and under Quote Requests, where each has a status. The Sourcing Request Hero on Home 4 sends a request without products.
Quick Order
The Quick Order page lets buyers type SKUs and quantities or load a CSV file (one SKU, quantity per line; a header row is skipped) and add everything to the cart at once.
Become a Vendor
Artisans apply on the Become a Vendor page. Each application creates a pending artisan profile; review it under Artisans and publish it to approve.
CraftMarket is a curated marketplace, not a multi-vendor plugin: the shop adds each maker's products and links them to the maker's profile (section 9, Story tab), takes the orders and pays the makers. Makers have no dashboard of their own, and commissions and payouts are not calculated by the theme. The plans and fees on the demo Become a Vendor page are example texts: edit them to match your own terms.
Quote requests and newsletter subscribers hold your customers' contact details. They are never part of the demo content and are not removed by "Remove demo content". Subscribers can be exported and erased with the WordPress personal data tools (Tools → Export / Erase Personal Data).
13. Child theme
Install craftmarket.zip, then craftmarket-child.zip, and activate the child theme: your changes survive theme updates. Theme Options are shared between the two. Put CSS in the child theme's style.css; to change a template, copy it from craftmarket/ to the same path in craftmarket-child/.
14. Translation & RTL
Translating the texts
All texts are in English and translation ready. Text domains and template files:
| Part | Text domain | Template file |
|---|---|---|
| Theme | craftmarket | craftmarket/languages/craftmarket.pot |
| CraftMarket Core | craftmarket-core | craftmarket-core/languages/craftmarket-core.pot |
| CraftMarket Elementor Addons | craftmarket-elementor-addons | craftmarket-elementor-addons/languages/craftmarket-elementor-addons.pot |
Translate with the free Loco Translate plugin, or with Poedit: open the .pot, translate, and save craftmarket-fr_FR.po/.mo (your locale) in wp-content/languages/themes/, or craftmarket-core-fr_FR.mo in wp-content/languages/plugins/, so updates do not overwrite them.
Texts you type in Theme Options and in Elementor widgets are content, not translation strings: edit them directly.
Multilingual site
With Polylang, create the pages, products and menus in each language as usual. Texts of Theme Options are translated in Languages → Translations, group "CraftMarket: Theme Options". A translated Home page opened in Elementor starts with the widgets of its Home layout, like the original.
Right-to-left languages
Every page has an RTL stylesheet. When the site language (Settings → General → Site Language) or the Polylang language is a right-to-left one such as Arabic or Hebrew, WordPress loads it on its own: the layout, sliders, menus, icons with a direction and the mega menu are mirrored. Nothing needs to be switched on.
15. Sources & credits
The theme's PHP, CSS and JavaScript are licensed under the GNU GPL v2 or later. Bundled third-party resources:
| Resource | License | Source |
|---|---|---|
Fonts (self-hosted in assets/fonts, no Google request): Caveat, Cormorant Garamond, DM Sans, Fraunces, Inter, Plus Jakarta Sans | SIL Open Font License 1.1 | Google Fonts / project repositories listed in licensing/README.txt |
Interface icons (inline SVG in inc/icons.php) | GPL v2 or later | Drawn by BZOTech for CraftMarket |
Payment logos (assets/images/payments) | CC0 1.0 | Simple Icons; trademarks of their owners |
Maps (assets/images/maps) | Public domain | Natural Earth |
| TGM Plugin Activation 2.6.1 | GPL v2 or later | tgmpluginactivation.com |
| Codestar Framework 2.3.1 (Theme Options panel, in CraftMarket Core) | GPL v2 or later | codestarframework.com |
Demo images: the photos and videos of the live demo are for preview only and are not included. The demo import uses placeholder images of the same size; use your own photos or images you hold a license for.
16. FAQ
- Can makers add their own products and get paid automatically?
- No. CraftMarket is a curated marketplace run by the shop (section 12, Become a Vendor). The shop lists the products of each artisan or supplier, takes the orders and pays the makers.
- The demo import stops halfway.
- The host's time or memory limit was reached. Click Import again: finished steps are skipped and nothing is added twice. Raising
memory_limitto 256M andmax_execution_timeto 60 helps. - Product images are grey boxes.
- These are the demo placeholders (section 4). Edit the product and set your own image, or replace the file in the Media Library.
- Prices disappeared for visitors.
- Theme Options → B2B & Wholesale → "Hide prices from guests" is on. Turn it off for a retail store.
- A product section is empty.
- Its product source points at a category or IDs that do not exist on your site (for example after "Keep only the chosen demo"). Pick another source in the widget.
- A page returns 404 after the import.
- Open Settings → Permalinks and click Save once.
- I removed a page such as Quote List or Wishlist.
- CraftMarket → Dashboard → Create missing pages.
- How do I update the theme?
- Download the new version from ThemeForest, then Appearance → Themes → Add New → Upload Theme with the new
craftmarket.zipand choose "Replace current with uploaded". Then update CraftMarket Core and CraftMarket Elementor Addons from Appearance → Install Plugins. Keep your changes in the child theme.
17. Support
Email [email protected] or use the Support tab of the item page on ThemeForest, with your purchase code and the link to your site. Support covers questions about the theme's features and fixing bugs; it does not cover custom changes or third-party plugins.