No questions match your search. Try different keywords or .
Getting Started
Upload the TrellisCart files to your server (e.g. public_html/cart/trellis/), then visit that URL in your browser. The 5-step web installer will guide you through:
- System requirements check
- Database connection setup
- Store information (name, email, URL)
- Admin account creation
- Completion
After finishing, delete the /install/ folder from your server for security.
After installation, log into your admin panel and work through these steps in order:
- Go to Store → Configuration and verify your store name, email, currency, and timezone
- Go to Store → Shipping and set your flat shipping rate and free shipping threshold
- Go to Store → Tax Rates and enter your tax rate (or set to 0 if not charging tax)
- Go to Catalog → Categories and create your product categories
- Go to Catalog → Products → Add Product and add your first product
Visit yourstore.com/cart/trellis/admin/ (replace with your actual store URL and path). Enter the email address and password you created during installation. If you forget your password, you can reset it directly in the database or contact your hosting provider for phpMyAdmin access.
This is a WordPress coexistence issue. If WordPress is installed at your domain root, you need to add two lines to the WordPress .htaccess file above the # BEGIN WordPress line:
RewriteCond %{REQUEST_URI} ^/cart/trellis/ [NC]\nRewriteRule ^ - [L]Replace /cart/trellis/ with the actual path where TrellisCart is installed. This tells Apache to pass those URLs directly to TrellisCart instead of WordPress.
TrellisCart has a built-in Zen-Cart importer. In the admin panel, go to Admin → Zen-Cart Import. You'll need your Zen-Cart database credentials (host, database name, username, password). The importer will transfer your products, categories, manufacturers, customers, and orders. Run the import before adding any new products to avoid conflicts.
Go to Admin → Store → Configuration and click the Regional tab. Select your timezone from the dropdown and click Save. This affects how order timestamps, report date ranges, and scheduled tasks are displayed throughout the admin panel.
Products & Categories
Go to Catalog → Products → Add Product (or click the + Add Product button on the products list). Fill in:
- Name and SKU (required)
- Price (required)
- Description — supports HTML
- Category — assign to one or more categories
- Stock quantity and whether to track stock
- Image — upload your product photo
- Weight — needed for shipping calculations
Click Save Product when done. The product will appear on your storefront immediately if marked Active.
Go to Catalog → Categories. On the right side you'll see an Add Category form. Enter the category name — a URL slug is generated automatically. You can also set a parent category to create subcategories (e.g. Trees → Evergreen Trees). Categories appear in your storefront navigation and sidebar filters.
You have two options:
Option 1 — Edit the product directly: Go to Catalog → Products, find the product, click Edit, and fill in the Sale Price field. The product will show a strikethrough on the regular price and display the sale price.
Option 2 — Use Specials: Go to Sales → Specials and add a sale price with optional start and end dates. This is useful for time-limited promotions.
Go to Catalog → Featured. Use the dropdown to select any active product and click + Add to Featured. Featured products appear in the Featured section of your storefront homepage. You can also toggle the featured flag directly from the product edit page.
Go to Catalog → Products, find the product, and click Edit. Uncheck the Active toggle and save. The product will no longer appear on your storefront but all its data — including order history — is preserved. You can re-activate it at any time.
On the product edit page, set the Stock Quantity to your current inventory count. Make sure Track Stock is checked. When a customer purchases the product, the stock count decrements automatically. Set a Low Stock Alert threshold (e.g. 5) to see the product flagged in Reports → Low Stock when inventory runs low.
First, create the brand: go to Catalog → Manufacturers, click Add Brand, enter the name and optional website URL. Once saved, go to any product's edit page and select the brand from the Manufacturer dropdown. Brands appear on product pages and can be used to filter the catalog.
TrellisCart does not yet have a one-click duplicate button. The fastest approach is to: open the product you want to copy, note its details, then go to Add Product and fill in the same information with a new name and SKU. Copy and paste the description from the original product's edit page.
Customers who are logged in can submit a review on any product page. Reviews are held for moderation before they appear publicly. To approve or delete reviews, go to Catalog → Reviews — you'll see tabs for Pending, Approved, and All. Click Approve to publish a review.
Orders & Fulfillment
Go to Sales → Orders to see all orders. You can filter by status (Pending, Processing, Shipped, Delivered, Cancelled, Refunded) and search by customer name or email. Click View on any order to see the full detail — items, customer info, shipping address, payment details, and order history.
Open the order (Sales → Orders → View) and find the Update Order panel on the right. Select the new status from the dropdown, optionally add a tracking number and a note, then check Notify customer by email if you want to send them an update. Click Update Order. The status change is recorded in the order's history log at the bottom of the page.
Open the order in Sales → Orders → View. In the Update Order panel, enter the tracking number in the Tracking Number field. Change the status to Shipped, check Notify customer, and click Update. The tracking number will appear in the customer's order detail page in their account.
Open any order from Sales → Orders → View. At the top right, click:
- 📄 Invoice — opens a printable, professionally formatted invoice with all order details and totals
- 📦 Packing Slip — opens a packing slip with item names, quantities, checkboxes for pickers, and a sign-off section
Use your browser's Print dialog (Ctrl+P / Cmd+P) to print or save as PDF.
TrellisCart records refunds for your records but does not automatically process payment reversals — you must issue the refund through your payment processor (Stripe, PayPal, etc.) separately. To record it in TrellisCart: open the order, set the status to Refunded, add a note (e.g. "Refunded $29.99 via Stripe"), and save. This keeps your order history accurate.
Open the order in Sales → Orders → View. In the Update Order panel, set the status to Cancelled, add a note explaining the reason, and click Update. If the customer already paid, you'll need to refund them through your payment gateway separately. Stock levels are not automatically restored on cancellation — adjust them manually in the product edit page if needed.
Go to Sales → Orders and use the search bar — you can search by customer name, email address, or order number. Alternatively, go to Sales → Customers, find the customer, click View, and their complete order history is shown on their profile page.
- Pending — Order received but not yet processed (default for new orders)
- Processing — Payment confirmed, order is being prepared
- Shipped — Order has been handed to the carrier
- Delivered — Carrier confirms delivery
- Cancelled — Order was cancelled before fulfillment
- Refunded — Payment has been returned to the customer
Go to Sales → Orders → Saved Carts (or from the Dashboard, click Recover $X.XX in the Saved Carts row). You'll see all saved carts with the customer name, number of items, subtotal, and how long ago it was saved. You can view the cart contents and send a recovery email to nudge the customer to complete their purchase.
Shipping & Taxes
Go to Store → Shipping. You'll see three shipping methods:
- Standard Shipping — set your flat rate and toggle it on/off
- Expedited Shipping — 2–3 business day option
- Overnight Shipping — next day option
You can also set a Free Shipping Minimum — orders over this amount get free standard shipping automatically. Click Save when done.
Go to Store → Shipping and set the Free Shipping Minimum field to your threshold (e.g. 49.00). Any order with a subtotal at or above that amount will automatically qualify for free standard shipping — no coupon code required. Set to 0 to disable the threshold entirely.
Go to Store → Tax Rates. For simple single-rate stores, use the Quick Setting — Global Tax Rate at the top: enter your percentage (e.g. 8.875 for 8.875%) and click Save. Tax will be calculated on all taxable orders and shown at checkout. For zone-based rates (different rates for different states), use the Add Tax Rate form below.
Go to Store → Tax Rates and set the Global Tax Rate to 0 and click Save. No tax will be calculated or shown at checkout. If you have any zone-specific rates, delete those as well.
TrellisCart v1.0 supports flat-rate shipping by method (standard, expedited, overnight). Weight-based carrier-calculated rates (UPS, FedEx, USPS) are planned for a future update. As a workaround, you can set your flat rate to cover your average shipping cost, or use the free shipping threshold to incentivize larger orders.
The Weight (lbs) field on each product is stored with each order for your reference and for future carrier-calculated shipping. In v1.0, weight is displayed on order details and packing slips but does not dynamically adjust the shipping charge at checkout — flat rates apply regardless of weight.
Customers & Accounts
Go to Sales → Customers. You'll see all registered customers with their name, email, customer group, number of orders, and total lifetime spend. Use the search bar to find a specific customer by name or email. Click View to see their full profile, order history, and saved addresses.
Go to Sales → Customers, find the customer, and click View. On their profile page, use the Customer Details form on the left to edit their first name, last name, phone number, and customer group. You can also assign a new password here. Click Save Changes to apply.
Go to Sales → Customers → View (the customer's profile page). In the Customer Details form, uncheck the Active account toggle and click Save. The customer will no longer be able to log in. Their order history and data are preserved. Re-check the toggle to re-enable their account.
Customer groups let you segment your customers — by default TrellisCart includes Standard, VIP, and Wholesale groups. You can assign customers to groups from their profile page. Groups are used for reporting and can be used to target specific promotions (e.g. VIP-only coupon codes). Future updates will add group-specific pricing.
Yes. Guest checkout is enabled by default. To change this, go to Store → Configuration → Cart & Checkout tab and toggle Allow guest checkout on or off. Requiring accounts can reduce fraud but may lower conversion rates for new customers.
On the Sales → Customers page, click the Export CSV button in the top right. This downloads a CSV file with all customers' names, emails, groups, order counts, and total spend. You can open this in Excel or Google Sheets, or import it into an email marketing platform.
Coupons & Promotions
Go to Sales → Coupons. On the right side, fill in:
- Coupon Code — the code customers will enter (e.g. SAVE20)
- Type — Percent Off, Fixed Amount, or Free Shipping
- Value — the discount amount or percentage
- Min Order — optional minimum subtotal to qualify
- Max Uses — optional usage cap (leave blank for unlimited)
- Start/End Dates — optional date range
Toggle Active on and click Create Coupon. Share the code with your customers.
Go to Sales → Coupons → Create Coupon. Enter a code (e.g. FREESHIP), set the Type to Free Shipping, and optionally set a minimum order amount. When a customer applies this code at checkout, the shipping charge is removed regardless of the free shipping threshold setting.
Two options:
1. Edit the product — Go to Catalog → Products, click Edit on the product, fill in the Sale Price field, and save. The sale price shows immediately with a strikethrough on the original price.
2. Use Specials — Go to Sales → Specials, select the product, enter a sale price, and optionally set start/end dates. Specials automatically expire when the end date passes.
In v1.0, coupons are available to any customer who has the code. You can limit usage by setting Max Uses to 1 for single-use codes, or setting a tight date range and sharing it only with specific customers via a personal email. Per-customer coupon restrictions are planned for a future release.
Go to Sales → Coupons. The coupons list shows a Used column with the current usage count next to the Max column. You can see at a glance how many times each code has been redeemed and how close it is to its limit.
Go to Sales → Coupons. To temporarily disable a coupon, click Edit and uncheck Active — the code will no longer work at checkout but the data is preserved. To permanently remove it, click the ✕ (Delete) button and confirm. Deleted coupons cannot be recovered.
Store Settings
Go to Store → Configuration. The General tab lets you update your store name, store owner name, store email, and tagline. For the logo, your store name is displayed as styled text by default — to use an image logo, you would need to modify the storefront header template at templates/storefront/header.php.
Go to Store → Configuration → Regional tab. Change the Default Currency dropdown to your currency and update the Currency Symbol field (e.g. € for Euro, £ for GBP). Click Save. Note: this changes the display symbol and currency label only — no automatic exchange rate conversion is applied to existing prices.
Go to Store → Configuration → Email tab. Enter your:
- From Name — the sender name customers see
- From Email — the reply-to address
- SMTP Host, Port, Username, Password — for reliable email delivery
Using SMTP (e.g. via Gmail, SendGrid, or Mailgun) is strongly recommended over PHP mail() to ensure order confirmations actually reach customers' inboxes.
Go to Content → Pages. Click Add Page, give it a title (e.g. "About Us"), write the content in HTML, and choose whether to show it in the header navigation or footer. The page becomes available at yourstore.com/page.php?slug=about-us and links appear automatically in the nav/footer if enabled.
Go to Content → Banners. Click Add Banner, upload an image, add a link URL, choose the Position (Home Top, Home Middle, Sidebar, etc.), set optional start/end dates, and toggle Active on. Banners appear automatically in the position you selected on the storefront. The click count for each banner is tracked in the list.
Go to Store → Configuration → SEO tab to set default meta title and description for your store. Individual products have their own Meta Title and Meta Description fields on their edit page. Categories also have SEO fields. For best results, fill in the meta fields on each product separately rather than relying only on the store-wide defaults.
Go to Admin → Users. Click the Add Admin User form on the right. Enter the name, email, username, password (minimum 12 characters), and select a role:
- Staff — can view and process orders, limited access
- Admin — full access except user management
- Super Admin — complete access including adding/removing admins
Go to Admin → Activity Log. Every action performed in the admin panel is logged here — product saves, order status changes, config updates, logins — with the admin username, description, timestamp, and IP address. Use this to audit changes or investigate issues.
Go to Admin → Upgrade Center. Before running any upgrade, click Create Backup Now. This creates a ZIP file of your files and a database dump, stored in /storage/backups/. You can also download this backup through your hosting control panel's file manager. The upgrade center keeps the last 5 backups automatically.
Troubleshooting
A 403 usually means Apache is blocking access. The most common cause is a missing index.php in the TrellisCart root. Make sure the file exists at the root of your TrellisCart installation (it should contain one line: <?php require_once __DIR__ . '/public/index.php';). Also verify your .htaccess is present and that Options -Indexes isn't accidentally blocking your PHP files.
This is almost always a path issue in a subdirectory install. Check that STORE_URL in includes/config.php exactly matches the URL you use to access the store — including any subdirectory path. For example: https://trelliscart.com/cart/trellis. The tc_base() function uses this value to build all CSS, JS, and image paths.
Add define('TC_DEBUG', true); to includes/config.php. This enables TrellisCart's built-in error handler, which shows the full exception message and stack trace instead of the generic 500 page. Check your PHP error log as well — on cPanel hosting it's usually at public_html/error_log. Remove the TC_DEBUG line before going back to production.
Most common causes: (1) The database credentials are incorrect — use the Test Connection button to verify before clicking Next. (2) Your database user doesn't have CREATE TABLE privileges — contact your hosting provider to grant full privileges. (3) PHP sessions are not working — make sure session.save_path is writable on your server.
Check the following: (1) The product must be marked Active on the product edit page. (2) The product must be assigned to at least one Category. (3) The category itself must be Active. (4) If you have stock tracking enabled, Stock Quantity must be greater than 0, or disable stock tracking for that product.
Order confirmation emails require working SMTP configuration. Go to Store → Configuration → Email and set up your SMTP credentials. Without SMTP, TrellisCart falls back to PHP mail(), which most hosting providers either block or heavily rate-limit. Test with a real order after setting up SMTP. Services like SendGrid, Mailgun, or Gmail SMTP work well.
This is a MySQL strict mode error. If you're seeing this on a custom page or plugin, you need to wrap any joined table columns in ANY_VALUE() in your SELECT statement. For example, change SELECT p.*, m.name AS brand to SELECT p.*, ANY_VALUE(m.name) AS brand in any query that uses GROUP BY. This is required on MySQL 5.7+ and MariaDB 10.2+ with strict mode enabled.
This is a PHP session issue. Check that: (1) session_save_path is writable on your server — contact your host if unsure. (2) Your domain doesn't have mixed HTTP/HTTPS — sessions can be lost when switching between secure and insecure pages. (3) If TrellisCart is in a subdirectory, make sure the STORE_URL constant in config.php exactly matches the URL including the subdirectory path.
The current version is displayed in the admin panel in the sidebar header (below "TrellisCart"). You can also check the TC_VERSION constant defined in includes/bootstrap.php or find it in the includes/config.php file. The Admin → Upgrade Center page shows your current version and checks for available updates.
