diff --git a/website/docs-v6/apps-and-extensions/apps/app_changepasswords.md b/website/docs-v6/apps-and-extensions/apps/app_changepasswords.md index 403ad8c..819d444 100644 --- a/website/docs-v6/apps-and-extensions/apps/app_changepasswords.md +++ b/website/docs-v6/apps-and-extensions/apps/app_changepasswords.md @@ -1,10 +1,3 @@ ---- -title: "Change Password" -sidebar_label: "Change Password" -sidebar_position: 20 -description: "Allow logged-in customers to change their Joomla password directly from the J2Commerce My Profile page." ---- - # Change Password The Change Password app adds a dedicated tab to the J2Commerce My Profile page on the frontend. Logged-in customers can update their Joomla account password without leaving the store — no need to visit the Joomla User Profile or reset their password by email. diff --git a/website/docs-v6/apps-and-extensions/apps/usergroup.md b/website/docs-v6/apps-and-extensions/apps/usergroup.md index 49429e2..2a19fa4 100644 --- a/website/docs-v6/apps-and-extensions/apps/usergroup.md +++ b/website/docs-v6/apps-and-extensions/apps/usergroup.md @@ -1,32 +1,40 @@ ---- -title: "Add to User Group" -sidebar_label: "Add to User Group" -sidebar_position: 10 -description: "Automatically add customers to Joomla user groups when they purchase products — useful for membership sites, wholesale access, and ACL-controlled content." ---- - # Add to User Group The Add to User Group app plugin automatically adds a customer to one or more Joomla user groups as soon as their order reaches a status you choose. You can set groups at the individual product level, at the Joomla content category level, or both. Category settings always take priority over product settings. Common uses include granting access to a members-only content area after purchase, upgrading a customer to a wholesale or dealer group, and controlling what ACL-restricted pages a buyer can see based on what they have bought. -## Installation - -This plugin is a separate add-on available from the [J2Commerce Extensions Store](https://www.j2commerce.com). It is not included with the core J2Commerce 6 component. - -1. Purchase and download the `app_usergroup.zip` package from the J2Commerce website. -2. Go to **System** -> **Install** -> **Extensions**. -3. Upload the `app_usergroup.zip` package file. -4. The plugin installs and enables automatically. +## Requirements -After installation, go to **J2Commerce** -> **Apps** to configure it. +- with PHP 8.3.0 + +- Joomla! 6.x +- J2Commerce 6.x ## Prerequisites -- J2Commerce 6 installed and configured. +- J2Commerce 6 is installed and configured. - At least one product created. -- The Joomla user groups you want to assign must already exist. Create them under **System** -> **User Groups** before proceeding. +- The Joomla user groups you want to assign must already exist. Create them under **Users ->** **Groups** before proceeding. + +![](/img/user-create.webp) + +## Purchase and Download + +**Step 1:** Go to our [**J2Commerce** website](https://www.j2commerce.com/) **->** **Apps** + +**Step 2:** Locate the `app_usergroup.zip` App **->** click **View Details** **->** **Add to cart -> Checkout**. + +**Step 3:** Go to your **My Downloads** under your profile button at the top right corner and search for the app. Click **Available Versions -> View Files -> Download Now** + +## Install the App + +You can install the App using the Joomla installer. The following steps help you with a successful installation. + +In the Joomla admin, go to **System -> Install -> Extensions** + +Upload the `app_usergroup.zip` file or use the Install from URL option. + +![Install extensions](<../../../assets/app install1 (1) (1).webp>) ## Quick Setup Overview @@ -35,65 +43,97 @@ After installation, go to **J2Commerce** -> **Apps** to configure it. 3. Assign user groups to each product, or to a content category. 4. Test by placing an order and confirming the customer lands in the right group. ---- +*** + +## Enable the App + +Once you have installed the App, you will need to enable it. There are **three** ways you can access the extension. + +**Option A:** Go to the **J2Commerce** icon at the top right corner **-> Apps** + +**Option B:** Go to **Components** on the left sidebar **-> J2Commerce -> Apps** + +**Option C:** Go to **System** **-> Manage -> Plugins**. + +![](/img/user-enable1.webp) + +Search for **Add to User Group**. -## Step 1: Enable and Configure the Plugin +Look for **Custom Accordions**, click the **X,** and it will turn into a green checkmark. It is now enabled and ready for setup. -1. Go to **System** -> **Manage** -> **Plugins**. -2. Search for **Add to User Group**. -3. Click the plugin name to open its settings. +![](/img/user-enable.webp) - +## Configure the App ### Plugin Settings -| Setting | Description | Default | -|---------|-------------|---------| -| **Order Status** | The order statuses that trigger user group assignment. When an order reaches any of the selected statuses, the customer is added to the configured groups. Select one or more statuses. | Confirmed (status ID 1) | -| **Debug Mode** | When enabled, the plugin writes detailed log entries to a file named `app_usergroup.php` in the Joomla logs directory. Turn this on when troubleshooting; disable it in production. | No | +Click the plugin name to open its settings. - +![](/img/user-config.webp) -**Choosing the right order status:** -Most stores use **Confirmed** or **Processing** as the trigger. Using **Pending** may add customers to groups before payment is verified. Using a completed/shipped status means customers wait longer for access. Choose the status that matches your fulfillment workflow. +**Order Status:** The order statuses that trigger user group assignment. When an order reaches any of the selected statuses, the customer is added to the configured groups. Select one or more statuses. -4. Click **Save** when finished. +**Debug Mode:** When enabled, the plugin writes detailed log entries to a file named `app_usergroup.php` in the Joomla logs directory. Turn this on when troubleshooting; disable it in production. ---- +:::tip -## Step 2: Assign User Groups to Products +**Tip**: **Choosing the right order status:** Most stores use **Confirmed** or **Processing** as the trigger. Using **Pending** may add customers to groups before payment is verified. Using a completed/shipped status means customers wait longer for access. Choose the status that matches your fulfillment workflow. + +::: + +## Assign User Groups to Products For each product that should trigger a group assignment, open the product and set the groups in the plugin's tab. -1. Go to **J2Commerce** -> **Catalog** -> **Products**. -2. Click the product name to edit it. -3. Scroll down to find the **Add to User Group** tab or panel. -4. In the **User Group List** field, select one or more groups from the dropdown. +There are **three** ways you can access the products. + +**Option A:** Go to the **J2Commerce** icon at the top right corner **-> Catalog -> Products** + +**Option B:** Go to **Components** on the left sidebar **-> J2Commerce -> Products** + +**Option C:** Go to **Content -> Categories ->** Find the **category** and then click inside the **published**/article section + +![](/img/accordions-products.webp) + +- Click on the product name to edit it. + +Go to the **J2Commerce** tab **-> Apps** tab + +- Scroll down to find the **Add to User Group** app. + +![](/img/user-product.webp) - +- In the **User Group List** field, select one or more groups from the dropdown. -5. Click **Save** or **Save & Close**. +![](/img/user-product1.webp) -Repeat this for every product that should grant group membership on purchase. Products with no groups selected are simply ignored by this plugin. +:::info ---- +**Note**: Repeat this for every product that should grant group membership on purchase. Products with no groups selected are simply ignored by this plugin. -## Step 3: Assign User Groups at the Category Level (Optional) +::: + +## Assign User Groups at the Category Level (Optional) If you have a whole category of products that should all grant the same group, you can set the groups once on the category instead of repeating the setting on each product. When category groups are present, they take over completely — the product-level setting is ignored for that item. -1. Go to **Content** -> **Categories**. -2. Click the category that contains your products. -3. Find the **Add To User Groups** tab in the category editor. -4. In the **User Group List** field, select one or more groups. +Go to **Content -> Categories** + +![](/img/user-categories.webp) + +Click the category that contains your products. + +Find the **Add To User Groups** tab in the category editor. + +In the **User Group List** field, select one or more groups. - +![](/img/user-categories1.webp) -5. Click **Save & Close**. +:::info **Priority rule:** If a product belongs to a category that has groups configured, those category groups are used and any product-level groups are ignored. If the category has no groups set, the product-level groups are used as the fallback. ---- +::: ## How It Works @@ -108,62 +148,55 @@ When an order's status changes to one of the statuses you configured: The plugin handles duplicate group assignments gracefully — if the customer is already in a group, nothing breaks. -Guest customers (users who checked out without a Joomla account) are skipped because there is no Joomla user ID to assign a group to. +:::info ---- +**Note:** Guest customers (users who checked out without a Joomla account) are skipped because there is no Joomla user ID to assign to a group. + +::: ## Use Case Examples ### Members-Only Digital Access -You sell a digital subscription product. Your Joomla site has a **Members** group that can access restricted articles. +You sell a digital subscription product. Your Joomla site has a **Members-Only** group that can access restricted articles. -- Create the **Members** user group under **System** -> **User Groups**. +- Create the **Members-Only** user group under **Users->** **Groups**. - Set appropriate **View Level** restrictions on your members-only articles. -- On the subscription product, select **Members** in the **User Group List**. +- On the subscription product, select **Members-Only** in the **User Group List**. - Set the plugin's **Order Status** to **Confirmed**. -When a customer's order is confirmed, they are immediately added to the **Members** group and can view the restricted content on their next page load. +When a customer's order is confirmed, they are immediately added to the **Members-Only** group and can view the restricted content on their next page load. ### Wholesale Pricing by Category You have a **Wholesale Products** category. Any customer who buys from it should be upgraded to your **Wholesale** group. - Create the **Wholesale** group in Joomla. -- Open the **Wholesale Products** category in **Content** -> **Categories**. +- Open the **Wholesale Products** category in **Content -> Categories**. - Set **Wholesale** in the **Add To User Groups** tab. All products in that category will now trigger the group assignment on purchase — no need to configure each product individually. ---- - ## Troubleshooting ### The customer was not added to the group after purchase -**Check 1 — Order status match.** Open the order and note the current status. Go back to the plugin settings and confirm that status is selected in **Order Status**. If the order is **Pending** but you only have **Confirmed** selected, no assignment will happen until the order is confirmed. - -**Check 2 — User group is set on the product or category.** Edit the product and check the **Add to User Group** panel. Make sure at least one group is selected. If the product belongs to a category with groups set, the category groups override the product — verify the category setting too. +- **Check 1 — Order status match.** Open the order and note the current status. Go back to the plugin settings and confirm that status is selected in **Order Status**. If the order is **Pending** but you have only **Confirmed** selected, no assignment will happen until the order is confirmed. -**Check 3 — Guest checkout.** If the customer placed the order as a guest (no Joomla account), the plugin cannot assign a group. The plugin only works for registered users with a valid Joomla user ID. +- **Check 2 — User group is set on the product or category.** Edit the product and check the **Add to User Group** panel. Make sure at least one group is selected. If the product belongs to a category with groups set, the category groups override the product — verify the category setting too. -**Check 4 — Enable debug mode.** In the plugin settings, turn on **Debug Mode** and reproduce the issue by manually changing the order status. Then open the file `[joomla-root]/logs/app_usergroup.php` in a text editor and look for log entries related to that order. +- **Check 3 — Guest checkout.** If the customer placed the order as a guest (no Joomla account), the plugin cannot assign a group. The plugin only works for registered users with a valid Joomla user ID. ---- +- **Check 4 — Enable debug mode.** In the plugin settings, turn on **Debug Mode** and reproduce the issue by manually changing the order status. Then open the file `[joomla-root]/logs/app_usergroup.php` in a text editor and look for log entries related to that order. ### Debug Mode shows "Status X not in configured statuses" -The order status ID does not match any of the statuses you selected in the plugin. Open the plugin settings, expand **Order Status**, and add the status ID shown in the log entry. +**Cause:** The order status ID does not match any of the statuses you selected in the plugin. ---- +**Solution:** Open the plugin settings, expand **Order Status**, and add the status ID shown in the log entry. ### A product in the category is not triggering the category groups -The category-level setting only applies to products sourced from Joomla content articles (the standard J2Commerce product type linked to `com_content`). Confirm the product was created through the standard J2Commerce workflow and is linked to a content article in the correct category. - ---- - -## Related Topics +**Cause:** The category-level setting only applies to products sourced from Joomla content articles (the standard J2Commerce product type linked to `com_content`). -- [Order Statuses](../../configuration/setup/orderstatuses.md) -- [Apps Overview](../index.md) +**Solution:** Confirm the product was created through the standard J2Commerce workflow and is linked to a content article in the correct category. diff --git a/website/docs-v6/getting-started/getting-started-guide.mdx b/website/docs-v6/getting-started/getting-started-guide.mdx index 0528080..7304795 100644 --- a/website/docs-v6/getting-started/getting-started-guide.mdx +++ b/website/docs-v6/getting-started/getting-started-guide.mdx @@ -1,7 +1,3 @@ ---- -title: Getting Started with J2Commerce ---- - # Getting Started with J2Commerce This guide walks you through setting up your first J2Commerce store. Whether you're migrating from another platform or starting fresh, you'll have a functioning store ready to sell in under 15 minutes. @@ -18,102 +14,186 @@ Before you begin, make sure you have: When you first open J2Commerce, the **Setup Wizard** appears automatically. This guided onboarding walks you through configuring your store in six simple steps: -1. **Store Info** -- Name, address, and contact details -2. **Currency** -- Your default currency and measurement units -3. **Tax** -- Tax inclusion preferences and rates -4. **Product Type** -- What you're selling (physical, digital, or service) -5. **Payment** -- Payment method setup -6. **Ready** -- Final review and sample data option +1. **Store Info**: Name, address, and contact details +2. **Currency**: Your default currency and measurement units +3. **Tax**: Tax inclusion preferences and rates +4. **Product Type**: What you're selling (physical, digital, or service) +5. **Payment**: Payment method setup +6. **Ready**: Final review and sample data option For detailed information about each step, see the [Onboarding documentation](/getting-started/onboarding). :::tip + You can re-run the Setup Wizard anytime from the Dashboard by clicking the **Setup Guide** button in the toolbar. + ::: ## Quick Start Checklist -### 1. Configure Basic Store Information +### Configure Basic Store Information + +Go to **Settings -> Global Configuration** + +![](/img/store-systems.webp) + +Go to **J2Commerce -> Store tab** and start filling in your store information + +Enter your store name, email, and address + +Set your default currency and measurement units + +:::tip + +**Helpful Tip:** When you *click on the **Toggle Inline Help** button, it will show a description below each section. See image below* + +::: + +![](/img/store-toggle.webp) + +### Create Your First Product + +There are multiple ways to navigate to the location for creating a new product. + +**Option A:** Go to **Content** **-> Articles -> New**. + +![](/img/simple.webp) -After the Setup Wizard completes: +**Option B:** Or go to **J2Commerce -> Catalog -> Product -> New** -1. Go to **Settings -> Global Configuration -> J2Commerce** -2. Click on the **Store** tab -3. Verify your store name, email, and address -4. Set your default currency and measurement units +![](/img/simple-product1.webp) -### 2. Create Your First Product +### Creating a New Product -1. Navigate to **Products** in the sidebar -2. Click **New** to create a new product -3. Fill in the product details: - - **Title**: Your product name - - **SKU**: Stock keeping unit (optional but recommended) - - **Price**: Regular price - - **Categories**: Assign to one or more categories -4. Add images in the **Images** tab -5. Write a description in the main editor -6. Click **Save & Close** +![](/img/simple-content.webp) -### 3. Set Up Payments +- Enter a product **title** and **description**. + +- Assign the article to a **category** (the category determines which J2Commerce category listing it appears in). + +- Make sure the **Status** is '**Published'**. Published means it's viewable on the frontend + +### Configuring the Product + +![](/img/simple-product2.webp) + +Click on the **J2Commerce** tab to start configuring the product details + +**Use As Product:** Set this to '**Yes**' to set the product type + +**Product Type:** Set to **Simple** for a single-item product with one price and no variants. + +Click **Save and Continue** + +:::tip + +**Fill in the product details:** For more help setting up a standard Simple product, go to [https://docs.j2commerce.com/v6/catalog/product-types/simple\_product](https://docs.j2commerce.com/v6/catalog/product-types/simple_product) and follow the steps. + +::: + +### Set Up Payments J2Commerce includes several payment plugins ready to enable: -1. Go to **Payments** in the sidebar -2. Click on a payment method to configure it: - - **Stripe**: Enter your API keys - - **PayPal**: Enter your business email - - **Kustom**: Configure your account settings -3. Set one as the **Default Payment Method** +Go to the **J2Commerce** tab in the top right corner **-> Setup -> Payment Method** + +![](/img/getting-started-payment.webp) + +Click on a payment method to configure it: + +- **Stripe**: Enter your API keys -### 4. Configure Shipping (if selling physical products) +- **PayPal**: Enter your business email -1. Go to **Shipping** in the sidebar -2. Enable one or more shipping methods: - - **Free Shipping**: Set a minimum order amount - - **Flat Rate**: Fixed price per order - - **UPS/FedEx/USPS**: Enter your carrier credentials -3. Set up shipping zones to control where you ship +- **Kustom**: Configure your account settings -### 5. Create Categories +Set one as the **Default Payment Method** by going to **J2Commerce -> Setup -> Configuration -> Checkout** tab **-> Default Payment Method** + +![](/img/getting-started-payment-checkout.webp) + +### Configure Shipping (if selling physical products) + +Go to the **J2Commerce** tab in the top right corner **-> Setup -> Shipping Method** + +![](/img/getting-started-shipping.webp) + +Enable one or more shipping methods: + +- **Free Shipping**: Set a minimum order amount + +- **Flat Rate**: Fixed price per order + +- **UPS/FedEx/USPS**: Enter your carrier credentials + +Set up shipping zones to control where you ship + +### Create Categories Categories help organize your products: -1. Go to **Catalog -> Categories** -2. Click **New** -3. Enter a category name and description -4. Assign a parent category if needed -5. Upload a category image -6. Click **Save & Close** +Go to the **J2Commerce** tab in the top right corner **-> Content -> Categories** + +Click **New** + +![](/img/getting-started-categories.webp) + +Enter a category name and description + +Assign a parent category, if needed, in the **Category** tab + +Upload a category image under the **Options** tab + +Click **Save & Close** + +### Set Up Taxes -### 6. Set Up Taxes +:::info -1. Go to **Catalog -> Tax Profiles** -2. Create a new tax profile or edit the default -3. Add tax rules for your regions -4. Associate products with tax profiles +Before you can set up a **Tax Profile**, you need to set up the **Geozone** first, then the **Tax Rate** and then the **Tax Profile.** You can find all three of them by going to the **J2Commerce** tab in the top right corner **-> Localization ->** + +::: + +![](/img/getting-started-tax.webp) + +Go to the **J2Commerce** tab in the top right corner **-> Localization -> Tax Profiles** + +Create a new tax profile or edit the default + +Add tax rules for your regions + +Associate products with tax profiles ## Understanding the Admin Interface ### Navigation Bar -The navigation bar at the top of every page provides quick access to: +![](/img/getting-started-navigation.webp) + +The navigation bar at the top of every **J2Commerce** page provides quick access to: + +**Products:** Manage your product catalog -| Section | Description | -|---------|-------------| -| **Products** | Manage your product catalog | -| **Orders** | View and process customer orders | -| **Customers** | View customer accounts and history | -| **Catalog** | Categories, filters, options, manufacturers, vendors | -| **Shipping** | Configure shipping methods and zones | -| **Payments** | Manage payment gateways | -| **Apps** | Install and configure app plugins | -| **Reports** | Sales, product, and customer analytics | -| **Settings** | Global configuration and store settings | +**Orders:** View and process customer orders + +**Customers:** View customer accounts and history + +**Catalog:** Categories, filters, options, manufacturers, vendors + +**Shipping:** Configure shipping methods and zones + +**Payments:** Manage payment gateways + +**Apps:** Install and configure app plugins + +**Reports:** Sales, product, and customer analytics + +**Settings:** Global configuration and store settings ### Dashboard -The Dashboard is your home base. It shows: +![](/img/getting-started-dashboard.webp) + +The J2Commerce Dashboard is your home base. It shows: - **Today's revenue** and order count - **Sales trends** over time @@ -124,7 +204,7 @@ For detailed dashboard information, see the [Dashboard documentation](/getting-s ## What's Next? -- **[Onboarding Guide](/getting-started/onboarding)** -- Deep dive into the setup wizard -- **[Product Types](/catalog/product-types)** -- Learn about all product types -- **[Store Setup](/getting-started/store-setup)** -- Full configuration reference -- **[Dashboard](/getting-started/dashboard)** -- Master the admin dashboard \ No newline at end of file +- [**Onboarding Guide**](/getting-started/onboarding) -- Deep dive into the setup wizard +- [**Product Types**](/catalog/product-types) -- Learn about all product types +- [**Store Setup**](/getting-started/store-setup) -- Full configuration reference +- [**Dashboard**](/getting-started/dashboard) -- Master the admin dashboard diff --git a/website/docs-v6/getting-started/installation.mdx b/website/docs-v6/getting-started/installation.mdx index 021457e..9356ef4 100644 --- a/website/docs-v6/getting-started/installation.mdx +++ b/website/docs-v6/getting-started/installation.mdx @@ -1,73 +1,86 @@ ---- -title: Installation ---- +# Installing J2Commerce -# Installation - -This guide covers installing J2Commerce on a fresh Joomla 6 installation. If you're upgrading from J2Store, see the [Upgrading](/getting-started/upgrading) documentation. +This guide covers installing **J2Commerce** on a fresh **Joomla 6** installation. ## Requirements ### Server Requirements | Requirement | Minimum | Recommended | -|-------------|---------|-------------| -| PHP | 8.3.0 | 8.3+ | -| MySQL | 8.0+ | 8.0+ | -| Joomla | 6.0+ | 6.0+ | +| ----------- | ------- | ----------- | +| PHP | 8.3.0 | 8.3+ | +| MySQL | 8.0+ | 8.0+ | +| Joomla | 6.0+ | 6.0+ | ### PHP Extensions -- `mysqli` or `pdo_mysql` -- Database connectivity -- `json` -- JSON encoding/decoding -- `curl` -- HTTP requests for payment gateways and currency updates -- `mbstring` -- Multi-byte string support -- `gd` or `imagick` -- Image processing -- `zip` -- Extension installation -- `openssl` -- Secure API connections +- `mysqli` or `pdo_mysql`: Database connectivity +- `json`: JSON encoding/decoding +- `curl`: HTTP requests for payment gateways and currency updates +- `mbstring`: Multi-byte string support +- `gd` or `imagick`: Image processing +- `zip`: Extension installation +- `openssl`: Secure API connections ### Permissions The following directories must be writable by the web server: -- `/tmp` -- Temporary file storage -- `/logs` -- Log file writes -- `/administrator/cache` -- Cache files +- `/tmp`: Temporary file storage +- `/logs`: Log file writes +- `/administrator/cache`: Cache files ## Installation Steps -### Step 1: Download J2Commerce +### Download J2Commerce + +Purchase and download the **J2Commerce installation package** from the J2Commerce website. The package is a `.zip` file containing the component and all required plugins. + +### Install J2Commerce -Purchase and download the J2Commerce installation package from the J2Commerce website. The package is a `.zip` file containing the component and all required plugins. +You can install this **J2Commerce installation package** using the Joomla installer. The following steps help you with a successful installation. -### Step 2: Install via Joomla Installer +In the Joomla admin, go to **System -> Install -> Extensions** -1. Log in to your Joomla administrator panel -2. Navigate to **System -> Install -> Extensions** -3. Click **Upload Package File** -4. Select the J2Commerce `.zip` file -5. Click **Upload & Install** +Upload the plugin ZIP file or use the Install from URL option. + +![Install extensions](<../../../assets/app install1 (1) (1).webp>) :::tip + If you're upgrading from J2Store, use the **Install from Directory** option and select the extracted folder. The installer detects the upgrade path automatically. + ::: -### Step 3: Enable Required Plugins +### Enable Required Plugins After installation, J2Commerce requires several system plugins to be enabled: -1. Navigate to **System -> Manage -> Plugins** -2. Search for `j2commerce` or `j2store` -3. Enable the following plugins: - - **System - J2Commerce** -- Core system integration - - **System - J2Commerce Content** -- Article-to-product conversion - - **Content - J2Commerce** -- Product display in articles +Navigate to **System -> Manage -> Plugins** + +![](/img/user-plugin1.webp) + +Search for `j2commerce` + +Enable the following plugins: + +- **System - J2Commerce**: Core system integration + +- **System - J2Commerce Content**: Article-to-product conversion -### Step 4: Verify Installation +- **Content - J2Commerce**: Product display in articles -1. Go to **Components -> J2Commerce** -2. You should see the Dashboard -3. The Setup Wizard should appear if this is a fresh installation +### Verify Installation + +Go to **Components -> J2Commerce** + +You should see the **Dashboard** + +![](/img/getting-started-dashboard1.webp) + +The **Setup Wizard** should appear if this is a fresh installation + +![](/img/getting-started-wizard.webp) ## Manual Installation @@ -77,6 +90,7 @@ If the Joomla installer fails, you can install manually: 1. Extract the J2Commerce `.zip` file 2. Upload the extracted contents to your Joomla installation via FTP or file manager: + - Component to: `/administrator/components/com_j2commerce/` - Media to: `/media/com_j2commerce/` - Plugins to: `/plugins/system/j2commerce/`, `/plugins/content/j2commerce/`, etc. @@ -108,8 +122,8 @@ After installation, verify the following: - [ ] Dashboard loads without errors - [ ] Setup Wizard appears (fresh install) -- [ ] Products menu is accessible -- [ ] Orders menu is accessible +- [ ] The product menu is accessible +- [ ] The orders menu is accessible - [ ] Settings save correctly - [ ] Payment methods can be configured - [ ] Shipping methods can be configured @@ -119,10 +133,12 @@ After installation, verify the following: ### Installation Fails **Error: "Unable to find install package"** + - The zip file may be corrupted. Download again and retry. - Ensure you're uploading the `.zip` file directly, not an extracted folder. **Error: "Unable to copy files"** + - Check directory permissions. The web server user needs write access. - Verify the `/tmp` and `/logs` directories exist and are writable. @@ -135,9 +151,12 @@ After installation, verify the following: ### Plugin Not Found If plugins don't appear in the plugin manager: + 1. Verify all plugin folders were uploaded -2. Check for duplicate installations from J2Store -3. Clear Joomla cache: **System -> Clear Cache** +2. Check for duplicate installations from J2Commerce +3. Clear Joomla cache: **Home Dashboard -> System -> Cache -> Delete Cache** + +![](/img/getting-started-cache.webp) ## Uninstalling @@ -147,12 +166,13 @@ To uninstall J2Commerce: 2. Find **J2Commerce** in the component list 3. Click **Uninstall** +![](/img/getting-started-uninstall.webp) + :::warning -Uninstalling removes all J2Commerce data including products, orders, and customers. Create a backup before proceeding. +Uninstalling removes all J2Commerce data, including products, orders, and customers. Create a backup before proceeding. ::: ## What's Next? -- **[Technical Requirements](/getting-started/technical-requirements)** -- Full server requirements -- **[Upgrading](/getting-started/upgrading)** -- Migrate from J2Store or free version -- **[Getting Started Guide](/getting-started/getting-started-guide)** -- Set up your first store \ No newline at end of file +- [**Technical Requirements**](/getting-started/technical-requirements): Full server requirements +- [**Getting Started Guide**](/getting-started/getting-started-guide): Set up your first store diff --git a/website/docs-v6/getting-started/introduction.mdx b/website/docs-v6/getting-started/introduction.mdx index 05497de..e86698e 100644 --- a/website/docs-v6/getting-started/introduction.mdx +++ b/website/docs-v6/getting-started/introduction.mdx @@ -1,10 +1,6 @@ ---- -title: Introduction to J2Commerce ---- - # Introduction to J2Commerce -J2Commerce transforms your native Joomla articles into a full-featured ecommerce store. Unlike traditional ecommerce platforms that require separate installation and management, J2Commerce leverages the power and flexibility of Joomla's content management system to create a seamless shopping experience. +J2Commerce transforms your native Joomla articles into a full-featured e-commerce store. Unlike traditional e-commerce platforms that require separate installation and management, J2Commerce leverages the power and flexibility of Joomla's content management system to create a seamless shopping experience. ## Why J2Commerce? @@ -12,31 +8,31 @@ J2Commerce transforms your native Joomla articles into a full-featured ecommerce J2Commerce is built natively for Joomla 6, which means: -- **No separate database** -- your products live alongside your content -- **Familiar interface** -- use the same Joomla administration you already know -- **Full ACL support** -- control access to products, orders, and reports with Joomla's permission system -- **Native cache integration** -- leverage Joomla's caching system for fast page loads -- **SEO friendly** -- use Joomla's SEF router with category and product hierarchies in URLs +- **No separate database**: your products live alongside your content +- **Familiar interface**: use the same Joomla administration you already know +- **Full ACL support**: control access to products, orders, and reports with Joomla's permission system +- **Native cache integration**: leverage Joomla's caching system for fast page loads +- **SEO friendly**: use Joomla's SEF router with category and product hierarchies in URLs ### Article-Based Products Every product in J2Commerce is a Joomla article at its core. This means: -- **Same editor** -- write product descriptions with the same rich text editor you use for blog posts -- **Media integration** -- manage product images with Joomla's media manager -- **Category system** -- organize products with the same category hierarchy as your content -- **Tags support** -- tag products just like articles for filtering and discovery -- **Version history** -- track changes to product information with Joomla's versioning +- **Same editor**: write product descriptions with the same rich text editor you use for blog posts +- **Media integration**: manage product images with Joomla's media manager +- **Category system**: Organize products with the same category hierarchy as your content +- **Tags support**: tag products just like articles for filtering and discovery +- **Version history**: track changes to product information with Joomla's versioning ### Modern Architecture J2Commerce 6 is built with modern PHP 8.3+ practices: -- **MVC pattern** -- clear separation of models, views, and controllers -- **Dependency injection** -- testable, maintainable code -- **Event-driven** -- hook into any part of the shopping process with plugins -- **REST API** -- integrate with external services and build headless storefronts -- **Model Context Protocol (MCP)** -- connect AI assistants like Claude for store management +- **MVC pattern**: clear separation of models, views, and controllers +- **Dependency injection**: testable, maintainable code +- **Event-driven**: hook into any part of the shopping process with plugins +- **REST API**: integrate with external services and build headless storefronts +- **Model Context Protocol (MCP)**: connect AI assistants like Claude for store management ## Core Features @@ -76,7 +72,7 @@ J2Commerce 6 is built with modern PHP 8.3+ practices: ## What's Next? -- **[Getting Started Guide](/getting-started/getting-started-guide)** -- Set up your first store in minutes -- **[Installation](/getting-started/installation)** -- Install J2Commerce on your Joomla site -- **[Technical Requirements](/getting-started/technical-requirements)** -- Check server requirements -- **[Dashboard](/getting-started/dashboard)** -- Learn the admin interface \ No newline at end of file +- [**Getting Started Guide**](/getting-started/getting-started-guide) -- Set up your first store in minutes +- [**Installation**](/getting-started/installation) -- Install J2Commerce on your Joomla site +- [**Technical Requirements**](/getting-started/technical-requirements) -- Check server requirements +- [**Dashboard**](/getting-started/dashboard) -- Learn the admin interface diff --git a/website/docs-v6/getting-started/onboarding.mdx b/website/docs-v6/getting-started/onboarding.mdx index 4c95ae7..329e474 100644 --- a/website/docs-v6/getting-started/onboarding.mdx +++ b/website/docs-v6/getting-started/onboarding.mdx @@ -1,30 +1,29 @@ ---- -title: Onboarding Setup Wizard ---- - # Onboarding Setup Wizard The first time you access J2Commerce, a guided **Setup Wizard** appears to help you configure your store. This step-by-step wizard walks you through every setting needed to launch your store, from your business address to payment processing. ## Overview -The Setup Wizard is a 6-step modal that appears automatically when: +The **Setup Wizard** is a 6-step modal that appears automatically when: + - J2Commerce is installed for the first time - The onboarding has not been completed (`onboarding_complete = 0`) -You can re-run the wizard anytime from the Dashboard by clicking the **Setup Guide** button in the toolbar. +You can re-run the wizard anytime from the **Dashboard** by clicking **Setup Wizard -> Run Onboarding Wizard** ## Accessing the Setup Wizard ### Automatic Display -On first access to **Components -> J2Commerce -> Dashboard**, the wizard displays automatically if setup is incomplete. +On first access to **Components -> J2Commerce -> Dashboard**, the wizard displays automatically if setup is incomplete. If you click out of it without finishing the steps, you can get back into it by going back to your **Dashboard -> Setup Wizard -> Run Onboarding Wizard** + +![](/img/onboarding6-run.webp) ### Manual Access To re-run the wizard: -1. Click the **Setup Guide** button in the Dashboard toolbar +1. Click the **Setup Wizard** button in the Dashboard toolbar 2. Or navigate directly: `index.php?option=com_j2commerce&view=dashboard&rerun_onboarding=1` ## The Six Steps @@ -33,25 +32,30 @@ To re-run the wizard: **Purpose:** Set your basic store identity and location. +![](/img/onboarding1.webp) + **Fields:** -| Field | Required | Description | -|-------|----------|-------------| -| Store Name | Yes | Your business name displayed to customers | -| Address Line 1 | No | Primary street address | -| Address Line 2 | No | Additional address info | -| City | No | Store city | -| Country | Yes | Store country (dropdown of enabled countries) | -| State/Zone | Yes | Store state/province (dynamically loaded based on country) | -| ZIP/Postal Code | No | Postal code for shipping calculations | -| Admin Email | No | Email for order notifications | -| Weight Class | No | Default weight measurement unit | -| Length Class | No | Default length measurement unit | + +| Field | Required | Description | +| --------------- | -------- | ---------------------------------------------------------- | +| Store Name | Yes | Your business name is displayed to customers | +| Address Line 1 | No | Primary street address | +| Address Line 2 | No | Additional address info | +| City | No | Store city | +| Country | Yes | Store country (dropdown of enabled countries) | +| State/Zone | Yes | Store state/province (dynamically loaded based on country) | +| ZIP/Postal Code | No | Postal code for shipping calculations | +| Admin Email | No | Email for order notifications | +| Weight Class | No | Default weight measurement unit | +| Length Class | No | Default length measurement unit | **What it creates:** + - A default geozone matching your country and zone - Syncs weight and length conversion values **Country defaults:** + - **US (223)**: USD, pound, inch, tax excluded - **UK (222)**: GBP, kilogram, cm, tax included - **Canada (38)**: CAD, pound, cm, tax excluded @@ -61,18 +65,23 @@ To re-run the wizard: **Purpose:** Configure your store's currency and measurement units. +![](/img/onboarding2.webp) + **Fields:** -| Field | Required | Description | -|-------|----------|-------------| -| Currency | Yes | Default currency for pricing | -| Currency Auto-Update | No | Enable automatic exchange rate updates | -| Currency Mode | No | Single currency or multi-currency | + +| Field | Required | Description | +| -------------------- | -------- | -------------------------------------- | +| Currency | Yes | Default currency for pricing | +| Currency Auto-Update | No | Enable automatic exchange rate updates | +| Currency Mode | No | Single currency or multi-currency | **Currency Modes:** + - **Single Currency**: Only the selected currency is enabled - **Multi-Currency**: Multiple currencies available with base rate setting **What it does:** + - Enables/disables currencies based on mode selection - Sets base currency value to 1.0 for multi-currency mode @@ -80,41 +89,52 @@ To re-run the wizard: **Purpose:** Configure how tax is applied to your products. +![](/img/onboarding3.webp) + **Fields:** -| Field | Required | Description | -|-------|----------|-------------| -| Prices Include Tax | Yes/No | Whether product prices include tax | -| Tax Rate % | No | Default tax rate (0-100) | + +| Field | Required | Description | +| ------------------ | -------- | ---------------------------------- | +| Prices Include Tax | Yes/No | Whether product prices include tax | +| Tax Rate % | No | Default tax rate (0-100) | **What it creates:** + - Geozone Rule (for your default zone) - Tax Rate - Tax Profile - Tax Rule linking everything together :::tip + For more complex tax situations, use the Tax Profiles section in Catalog after completing the wizard. + ::: ### Step 4: Product Type & Shipping **Purpose:** Define what you're selling and configure shipping. +![](/img/onboarding4.webp) + **Fields:** **Product Types** (multi-select): + - **Physical Products**: Tangible items that ship - **Digital Products**: Downloadable files - **Services**: Non-physical offerings **Shipping Options:** -| Field | Required | Description | -|-------|----------|-------------| -| Require Shipping | No | Whether products require shipping | -| Offer Free Shipping | No | Enable free shipping option | -| Shipping Rate Type | No | How shipping is calculated | + +| Field | Required | Description | +| ------------------- | -------- | --------------------------------- | +| Require Shipping | No | Whether products require shipping | +| Offer Free Shipping | No | Enable free shipping option | +| Shipping Rate Type | No | How shipping is calculated | **Fixed Shipping Method Types:** + - Per Order (flat rate) - Per Quantity - Per Price (percentage of subtotal) @@ -124,13 +144,15 @@ For more complex tax situations, use the Tax Profiles section in Catalog after c - Per Item Percentage **Rate Table Columns:** + - Geozone (where rate applies) - Weight Range (min-max, optional) - Cost (base rate) - Handling Fee (additional charge) **What it creates:** -- Free shipping plugin with minimum subtotal threshold + +- Free shipping plugin with a minimum subtotal threshold - Shipping method record - Shipping rate records for configured zones and weights @@ -138,23 +160,28 @@ For more complex tax situations, use the Tax Profiles section in Catalog after c **Purpose:** Configure your payment methods. +![](/img/onboarding5.webp) + **Fields:** -| Field | Required | Description | -|-------|----------|-------------| -| Payment Plugins | No | List of installed plugins (checkboxes) | -| Enable Unpublished | No | Button to reveal and enable more plugins | -| Default Payment Method | No | Primary payment option | -| PayPal Configuration | Conditional | Shown when PayPal is selected | - -**PayPal Fields (when PayPal selected):** -| Field | Required | Description | -|-------|----------|-------------| -| Have Keys | Radio | Select if you have API credentials | -| Need Help | Radio | Link to PayPal documentation | -| Client ID | Conditional | PayPal app client ID | -| Client Secret | Conditional | PayPal app client secret | + +| Field | Required | Description | +| ---------------------- | ----------- | ---------------------------------------- | +| Payment Plugins | No | List of installed plugins (checkboxes) | +| Enable Unpublished | No | Button to reveal and enable more plugins | +| Default Payment Method | No | Primary payment option | +| PayPal Configuration | Conditional | Shown when PayPal is selected | + +**PayPal Fields (when PayPal is selected):** + +| Field | Required | Description | +| ------------- | ----------- | ---------------------------------- | +| Have Keys | Radio | Select if you have API credentials | +| Need Help | Radio | Link to PayPal documentation | +| Client ID | Conditional | PayPal app client ID | +| Client Secret | Conditional | PayPal app client secret | **What it does:** + - Enables/disables selected payment plugins - Saves PayPal API credentials if provided - Sets the default payment method @@ -163,8 +190,10 @@ For more complex tax situations, use the Tax Profiles section in Catalog after c **Purpose:** Review your settings and optionally load sample data. -**Summary Display:** -The wizard displays a summary of all configured settings: +![](/img/onboarding6.webp) + +**Summary Display:** The wizard displays a summary of all configured settings: + - Store name and location - Currency and measurement units - Tax configuration @@ -173,14 +202,31 @@ The wizard displays a summary of all configured settings: - Payment methods enabled **Actions:** -| Button | Description | -|--------|-------------| -| Load Sample Data | Creates demo products, customers, and orders for testing | -| Add Product | Opens the product creation form | -| Go to Dashboard | Closes wizard and opens Dashboard | -| Store Settings | Opens the component configuration | + +![](/img/onboarding6-1.webp) + +**Load Sample Data:** Creates demo products, customers, and orders for testing + +:::info + +**Note:** **Load Sample Data** will set up everything for you so you know what the whole process is supposed to look like. Remember, these are "fake" products and information; you should click the **Remove Sample Data** button before going live + +::: + +:::tip + +**Tip:** **Load Sample Data** will **NOT** appear if you already have products set up. It only appears for new stores + +::: + +**Add Your First Product:** Opens the product creation form + +**Explore Dashboard:** Closes the wizard and opens the Dashboard + +**Configure More Settings:** Opens the component configuration **What it does:** + - Sets `onboarding_complete = 1` - Marks setup as finished - Optionally creates sample data via the `j2c_load_sample_data` MCP function @@ -198,6 +244,7 @@ The wizard saves progress as you complete each step. If you close and return: ### When to Re-Run Consider re-running the wizard when: + - Starting a new store from scratch - Testing different configurations - Wanting to reset all store settings @@ -205,11 +252,12 @@ Consider re-running the wizard when: ### How to Re-Run 1. Go to **Components -> J2Commerce -> Dashboard** -2. Click **Setup Guide** in the toolbar -3. Click the **Re-run Setup** link +2. Click the **Setup Wizard** in the toolbar +3. Click the **Run Onboarding Wizard** link 4. Confirm the action Or navigate directly: + ``` index.php?option=com_j2commerce&view=dashboard&rerun_onboarding=1 ``` @@ -218,39 +266,48 @@ index.php?option=com_j2commerce&view=dashboard&rerun_onboarding=1 All wizard settings are saved to component params (`#__extensions` table) as JSON: -| Key | Description | -|-----|-------------| -| `store_name` | Store display name | -| `store_address_*` | Store address fields | -| `country_id`, `zone_id` | Store location | -| `admin_email` | Notification email | -| `config_weight_class_id` | Default weight unit | -| `config_length_class_id` | Default length unit | -| `config_currency` | Default currency code | -| `config_currency_auto` | Auto-update setting | -| `config_including_tax` | Tax inclusion setting | -| `require_shipping` | Shipping requirement | -| `onboarding_shipping_rate_type` | Shipping calculation type | -| `onboarding_product_types` | Selected product types | -| `default_payment_method` | Default payment plugin | -| `onboarding_complete` | Wizard completion flag | -| `onboarding_last_step` | Last completed step number | +| Key | Description | +| ------------------------------- | -------------------------- | +| `store_name` | Store display name | +| `store_address_*` | Store address fields | +| `country_id`, `zone_id` | Store location | +| `admin_email` | Notification email | +| `config_weight_class_id` | Default weight unit | +| `config_length_class_id` | Default length unit | +| `config_currency` | Default currency code | +| `config_currency_auto` | Auto-update setting | +| `config_including_tax` | Tax inclusion setting | +| `require_shipping` | Shipping requirement | +| `onboarding_shipping_rate_type` | Shipping calculation type | +| `onboarding_product_types` | Selected product types | +| `default_payment_method` | Default payment plugin | +| `onboarding_complete` | Wizard completion flag | +| `onboarding_last_step` | Last completed step number | ## Settings vs Wizard The Setup Wizard configures basic settings to get you started. For full control, use: - **Settings -> Global Configuration** (gear icon): Component-wide settings -- **Catalog -> Tax Profiles**: Advanced tax rules -- **Catalog -> Geozones**: Shipping zone management -- **Payments**: Detailed payment gateway settings -- **Shipping**: Additional shipping methods and rates + +![](/img/onboarding-setup.webp) + +- **J2Commerce -> Localization -> Tax Profiles**: Advanced tax rules +- **J2Commerce -> Localization -> Geozones**: Shipping zone management + +![](/img/onboarding-setup1.webp) + +- **J2Commerce -> Setup -> Configuration**: Detailed store settings +- **J2Commerce -> Setup -> Payment Methods**: Detailed payment gateway settings +- **J2Commerce -> Setup -> Shipping Method**: Additional shipping methods and rates + +![](/img/onboarding-setup2.webp) The wizard is designed for initial setup; the settings pages handle ongoing configuration. ## What's Next? -- **[Dashboard](/getting-started/dashboard)** -- Monitor your configured store -- **[Store Setup](/getting-started/store-setup)** -- Access all store settings -- **[Product Types](/catalog/product-types)** -- Start adding products -- **[Custom Fields](/getting-started/custom-fields)** -- Configure checkout fields \ No newline at end of file +- [**Dashboard**](/getting-started/dashboard): Monitor your configured store +- [**Store Setup**](/getting-started/store-setup): Access all store settings +- [**Product Types**](/catalog/product-types): Start adding products +- [**Custom Fields**](/getting-started/custom-fields): Configure checkout fields diff --git a/website/docs-v6/getting-started/store-setup.mdx b/website/docs-v6/getting-started/store-setup.mdx index 391a18d..c47c7b2 100644 --- a/website/docs-v6/getting-started/store-setup.mdx +++ b/website/docs-v6/getting-started/store-setup.mdx @@ -22,8 +22,6 @@ Go to **J2Commerce -> Store tab** and start filling in your store information ::: - - ![](/img/store-toggle.webp) ### Store Tab diff --git a/website/docs-v6/getting-started/technical-requirements.mdx b/website/docs-v6/getting-started/technical-requirements.mdx index 9220e14..2cb083a 100644 --- a/website/docs-v6/getting-started/technical-requirements.mdx +++ b/website/docs-v6/getting-started/technical-requirements.mdx @@ -1,7 +1,3 @@ ---- -title: Technical Requirements ---- - # Technical Requirements J2Commerce requires a properly configured server environment. This page details the exact requirements for running J2Commerce optimally. @@ -10,29 +6,29 @@ J2Commerce requires a properly configured server environment. This page details ### PHP Version -| Version | Status | Notes | -|---------|--------|-------| -| PHP 8.3+ | **Required** | Current minimum requirement | -| PHP 8.2 | Not Supported | May work but not tested | -| PHP 8.1 | Not Supported | Not compatible | -| PHP 8.0 | Not Supported | Not compatible | +| Version | Status | Notes | +| -------- | ------------- | --------------------------- | +| PHP 8.3+ | **Required** | Current minimum requirement | +| PHP 8.2 | Not Supported | May work but not tested | +| PHP 8.1 | Not Supported | Not compatible | +| PHP 8.0 | Not Supported | Not compatible | ### Database -| Type | Version | Notes | -|------|---------|-------| -| MySQL | 8.0+ | Recommended | -| MariaDB | 10.6+ | Compatible with MySQL 8.0 | -| PostgreSQL | Not Supported | Requires extension | +| Type | Version | Notes | +| ---------- | ------------- | ------------------------- | +| MySQL | 8.0+ | Recommended | +| MariaDB | 10.6+ | Compatible with MySQL 8.0 | +| PostgreSQL | Not Supported | Requires extension | ### Web Server -| Type | Support | Notes | -|------|---------|-------| -| Apache 2.4+ | Full | with mod_rewrite | -| Nginx | Full | Requires configuration | -| IIS | Partial | URL rewriting setup required | -| LiteSpeed | Full | Compatible with Apache config | +| Type | Support | Notes | +| ----------- | ------- | ----------------------------- | +| Apache 2.4+ | Full | with mod\_rewrite | +| Nginx | Full | Requires configuration | +| IIS | Partial | URL rewriting setup required | +| LiteSpeed | Full | Compatible with Apache config | ## PHP Extensions @@ -40,23 +36,23 @@ J2Commerce requires a properly configured server environment. This page details These extensions must be installed and enabled: -| Extension | Purpose | Check | -|-----------|---------|-------| -| `mysqli` or `pdo_mysql` | Database connectivity | `php -m \| grep mysql` | -| `json` | JSON encoding/decoding | Built into PHP 8+ | -| `mbstring` | Multi-byte string support | `mb_substr()` works | -| `curl` | HTTP requests for APIs | Payment gateways, currency updates | -| `zlib` | Compression | Gzip output, package installation | +| Extension | Purpose | Check | +| ----------------------- | ------------------------- | ---------------------------------- | +| `mysqli` or `pdo_mysql` | Database connectivity | `php -m \| grep mysql` | +| `json` | JSON encoding/decoding | Built into PHP 8+ | +| `mbstring` | Multi-byte string support | `mb_substr()` works | +| `curl` | HTTP requests for APIs | Payment gateways, currency updates | +| `zlib` | Compression | Gzip output, package installation | ### Recommended Extensions -| Extension | Purpose | Benefit | -|-----------|---------|---------| -| `gd` or `imagick` | Image processing | Product image resizing, thumbnails | -| `zip` | Archive handling | Extension installation, exports | -| `openssl` | Encryption | Secure API connections, webhooks | -| `bcmath` | Precision math | Accurate price calculations | -| `intl` | Internationalization | Currency formatting, translations | +| Extension | Purpose | Benefit | +| ----------------- | -------------------- | ---------------------------------- | +| `gd` or `imagick` | Image processing | Product image resizing, thumbnails | +| `zip` | Archive handling | Extension installation, exports | +| `openssl` | Encryption | Secure API connections, webhooks | +| `bcmath` | Precision math | Accurate price calculations | +| `intl` | Internationalization | Currency formatting, translations | ### Check Extensions @@ -82,13 +78,13 @@ foreach ($recommended as $ext) { J2Commerce requires write access to the following directories: -| Directory | Purpose | Permissions | -|-----------|---------|-------------| -| `/tmp` | Temporary files | 755 or 775 | -| `/logs` | Log files | 755 or 775 | -| `/administrator/cache` | Cache files | 755 or 775 | -| `/images` | Product images | 755 or 775 | -| `/media/com_j2commerce` | Media files | 755 or 775 | +| Directory | Purpose | Permissions | +| ----------------------- | --------------- | ----------- | +| `/tmp` | Temporary files | 755 or 775 | +| `/logs` | Log files | 755 or 775 | +| `/administrator/cache` | Cache files | 755 or 775 | +| `/images` | Product images | 755 or 775 | +| `/media/com_j2commerce` | Media files | 755 or 775 | ### Verify Permissions @@ -105,13 +101,13 @@ touch /var/www/html/tmp/test.txt && rm /var/www/html/tmp/test.txt ### Required Settings -| Setting | Minimum | Recommended | -|---------|---------|-------------| -| `memory_limit` | 256M | 512M | -| `upload_max_filesize` | 10M | 32M | -| `post_max_size` | 20M | 64M | -| `max_execution_time` | 300 | 600 | -| `max_input_time` | 300 | 600 | +| Setting | Minimum | Recommended | +| --------------------- | ------- | ----------- | +| `memory_limit` | 256M | 512M | +| `upload_max_filesize` | 10M | 32M | +| `post_max_size` | 20M | 64M | +| `max_execution_time` | 300 | 600 | +| `max_input_time` | 300 | 600 | ### php.ini Example @@ -151,6 +147,7 @@ HTTPS is **required** for: ### Shared Hosting J2Commerce can run on quality shared hosting with: + - PHP 8.3+ support - MySQL 8.0+ database - SSH or CLI access for cron jobs @@ -158,6 +155,7 @@ J2Commerce can run on quality shared hosting with: ### VPS / Dedicated For better performance: + - **2 GB RAM minimum** (4 GB recommended) - **2 CPU cores minimum** - SSD storage for database @@ -166,6 +164,7 @@ For better performance: ### Cloud Hosting Compatible with: + - AWS (EC2, Lightsail) - Google Cloud Platform - DigitalOcean @@ -188,6 +187,7 @@ Update PHP to version 8.3 or higher via your hosting control panel or contact yo ### "Database extension not found" Install or enable the `mysqli` extension in php.ini: + ```ini extension=mysqli ``` @@ -195,6 +195,7 @@ extension=mysqli ### "Curl extension not found" Install curl support: + ```bash # Ubuntu/Debian sudo apt-get install php-curl @@ -206,6 +207,7 @@ sudo yum install php-curl ### "Permission denied" errors Set correct ownership for the web server: + ```bash # Apache on Ubuntu/Debian chown -R www-data:www-data /var/www/html @@ -218,6 +220,6 @@ chmod -R 755 /var/www/html ## What's Next? -- **[Installation](/getting-started/installation)** -- Install J2Commerce -- **[Getting Started Guide](/getting-started/getting-started-guide)** -- Set up your first store -- **[Upgrading](/getting-started/upgrading)** -- Upgrade from J2Store or free version \ No newline at end of file +- [**Installation**](/getting-started/installation) -- Install J2Commerce +- [**Getting Started Guide**](/getting-started/getting-started-guide) -- Set up your first store +- [**Upgrading**](/getting-started/upgrading) -- Upgrade from J2Store or free version diff --git a/website/docs-v6/getting-started/upgrading.mdx b/website/docs-v6/getting-started/upgrading.mdx deleted file mode 100644 index fe2a987..0000000 --- a/website/docs-v6/getting-started/upgrading.mdx +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: Upgrading to J2Commerce PRO ---- - -# Upgrading to J2Commerce PRO - -J2Commerce is available in a free version (limited features) and a PRO version (full feature set). This guide explains how to upgrade from the free version to PRO. - -## Free vs PRO Comparison - -| Feature | Free | PRO | -|---------|------|-----| -| Product Types | Simple only | All 7 types | -| Options | Text, Textarea, File, Date, Time, DateTime | All types | -| Advanced Pricing | Limited | Full quantity & date-based pricing | -| Multi-currency | Single currency | Unlimited currencies | -| Customer Groups | Default only | Custom groups with pricing | -| API Access | Basic | Full REST API | -| Reports | Basic | Advanced analytics | -| Support | Community forum | Priority support | - -## How to Check Your Version - -1. Go to **Components -> J2Commerce -> Dashboard** -2. Your version and license status appear in the top-right corner -3. Look for "FREE" or "PRO" badge - -## Upgrading Steps - -### Step 1: Purchase PRO License - -1. Visit the J2Commerce website -2. Purchase a PRO license -3. Download the PRO installation package -4. Save your license key - -### Step 2: Install PRO Package - -The PRO package is a standard Joomla extension that upgrades your existing installation: - -1. Log in to your Joomla administrator -2. Navigate to **System -> Install -> Extensions** -3. Click **Upload Package File** -4. Select the PRO `.zip` file -5. Click **Upload & Install** - -The installer detects your existing free installation and upgrades it. - -### Step 3: Enter License Key - -After installation: - -1. Go to **Settings -> Global Configuration -> J2Commerce** -2. Click on the **License** tab -3. Enter your license key in the **License Key** field -4. Click **Save & Close** - -### Step 4: Verify Upgrade - -1. Go to **Components -> J2Commerce -> Dashboard** -2. Verify the PRO badge now appears -3. Check that previously locked features are now available - -## Features Unlocked After Upgrade - -### Product Types - -After upgrading, these product types become available: - -- **Variable Products**: Multiple variants (size/color) with stock management -- **Configurable Products**: Customers select options before adding to cart -- **Downloadable Products**: Digital files with secure download links -- **Flexivariable Products**: Flexible option combinations with intelligent pricing -- **Bundle Products**: Pre-configured product bundles -- **Box Builder Products**: Build custom boxes with items and quantities - -### Advanced Options - -PRO unlocks all option types: - -- **Text**: Customer enters custom text (engraving, personalization) -- **Textarea**: Multi-line text input -- **File**: Customer uploads files (custom printing, design uploads) -- **Date**: Date picker for appointments, reservations -- **Time**: Time picker for services -- **DateTime**: Combined date and time picker - -### Multi-Currency - -Enable multiple currencies with automatic exchange rate updates: - -1. Go to **Settings -> Currencies** -2. Add additional currencies -3. Enable auto-update for real-time rates -4. Set customer-facing currency display rules - -### Customer Groups - -Create pricing tiers for different customer types: - -1. Go to **Customers -> Groups** -2. Create groups (Wholesale, VIP, Student, etc.) -3. Set group-specific pricing on products -4. Assign customers to groups manually or via apps - -## Migrating from J2Store - -If you're currently using J2Store (Joomla 4 version), you can migrate to J2Commerce: - -### Migration Prerequisites - -1. Current J2Store installation on Joomla 4 -2. J2Commerce installed on Joomla 6 (fresh or parallel) -3. Backup of both installations - -### Migration Process - -1. **Export Data from J2Store** - - Go to **Components -> J2Store -> Tools** - - Use the Export function for products, customers, orders - -2. **Import Data to J2Commerce** - - Go to **Components -> J2Commerce -> Tools** - - Use the Import function - - Map fields as needed - -3. **Verify Products** - - Review imported products - - Update product types to match J2Commerce options - - Re-assign options and filters - -4. **Reconfigure Payment/Shipping** - - Payment plugins need fresh configuration - - Shipping methods need to be recreated - - Tax profiles need to be set up - -:::warning -J2Store and J2Commerce use different database tables. A direct database migration is not possible. Use the import/export tools or manual product recreation. -::: - -## Troubleshooting - -### "Invalid license key" - -1. Verify you're using the correct key from your purchase email -2. Check for extra spaces or characters -3. Contact support with your order number - -### "Upgrade package not installing" - -1. Ensure you have the correct PRO package (not the free version) -2. Clear Joomla cache before installing -3. Check that the free version is already installed - -### Features still locked after upgrade - -1. Clear Joomla cache: **System -> Clear Cache** -2. Verify license key is saved: **Settings -> Global Configuration -> License** -3. Log out and log back in -4. Check for errors in **System -> Maintenance -> Database** - -## What's Next? - -- **[Getting Started Guide](/getting-started/getting-started-guide)** -- Set up your upgraded store -- **[Product Types](/catalog/product-types)** -- Explore your new product options -- **[Onboarding](/getting-started/onboarding)** -- Re-run setup wizard to configure new features -- **[Dashboard](/getting-started/dashboard)** -- Monitor your store performance \ No newline at end of file diff --git a/website/static/img/getting-started-cache.webp b/website/static/img/getting-started-cache.webp new file mode 100644 index 0000000..0ea961a Binary files /dev/null and b/website/static/img/getting-started-cache.webp differ diff --git a/website/static/img/getting-started-categories.webp b/website/static/img/getting-started-categories.webp new file mode 100644 index 0000000..04640b5 Binary files /dev/null and b/website/static/img/getting-started-categories.webp differ diff --git a/website/static/img/getting-started-dashboard.webp b/website/static/img/getting-started-dashboard.webp new file mode 100644 index 0000000..0bd6f9f Binary files /dev/null and b/website/static/img/getting-started-dashboard.webp differ diff --git a/website/static/img/getting-started-dashboard1.webp b/website/static/img/getting-started-dashboard1.webp new file mode 100644 index 0000000..0bd6f9f Binary files /dev/null and b/website/static/img/getting-started-dashboard1.webp differ diff --git a/website/static/img/getting-started-navigation.webp b/website/static/img/getting-started-navigation.webp new file mode 100644 index 0000000..9a6ad60 Binary files /dev/null and b/website/static/img/getting-started-navigation.webp differ diff --git a/website/static/img/getting-started-payment-checkout.webp b/website/static/img/getting-started-payment-checkout.webp new file mode 100644 index 0000000..4e5fe4e Binary files /dev/null and b/website/static/img/getting-started-payment-checkout.webp differ diff --git a/website/static/img/getting-started-payment.webp b/website/static/img/getting-started-payment.webp new file mode 100644 index 0000000..938afa1 Binary files /dev/null and b/website/static/img/getting-started-payment.webp differ diff --git a/website/static/img/getting-started-shipping.webp b/website/static/img/getting-started-shipping.webp new file mode 100644 index 0000000..507db14 Binary files /dev/null and b/website/static/img/getting-started-shipping.webp differ diff --git a/website/static/img/getting-started-tax.webp b/website/static/img/getting-started-tax.webp new file mode 100644 index 0000000..b0400b5 Binary files /dev/null and b/website/static/img/getting-started-tax.webp differ diff --git a/website/static/img/getting-started-uninstall.webp b/website/static/img/getting-started-uninstall.webp new file mode 100644 index 0000000..050f0ae Binary files /dev/null and b/website/static/img/getting-started-uninstall.webp differ diff --git a/website/static/img/getting-started-wizard.webp b/website/static/img/getting-started-wizard.webp new file mode 100644 index 0000000..76d0f71 Binary files /dev/null and b/website/static/img/getting-started-wizard.webp differ diff --git a/website/static/img/onboarding-setup.png b/website/static/img/onboarding-setup.png new file mode 100644 index 0000000..71d4c30 Binary files /dev/null and b/website/static/img/onboarding-setup.png differ diff --git a/website/static/img/onboarding-setup.webp b/website/static/img/onboarding-setup.webp new file mode 100644 index 0000000..428765d Binary files /dev/null and b/website/static/img/onboarding-setup.webp differ diff --git a/website/static/img/onboarding-setup1.webp b/website/static/img/onboarding-setup1.webp new file mode 100644 index 0000000..a0a150a Binary files /dev/null and b/website/static/img/onboarding-setup1.webp differ diff --git a/website/static/img/onboarding-setup2.webp b/website/static/img/onboarding-setup2.webp new file mode 100644 index 0000000..4e467b9 Binary files /dev/null and b/website/static/img/onboarding-setup2.webp differ diff --git a/website/static/img/onboarding1.webp b/website/static/img/onboarding1.webp new file mode 100644 index 0000000..7dcf0ff Binary files /dev/null and b/website/static/img/onboarding1.webp differ diff --git a/website/static/img/onboarding2.webp b/website/static/img/onboarding2.webp new file mode 100644 index 0000000..5ba2d74 Binary files /dev/null and b/website/static/img/onboarding2.webp differ diff --git a/website/static/img/onboarding3.webp b/website/static/img/onboarding3.webp new file mode 100644 index 0000000..cad7a0c Binary files /dev/null and b/website/static/img/onboarding3.webp differ diff --git a/website/static/img/onboarding4.webp b/website/static/img/onboarding4.webp new file mode 100644 index 0000000..f637c3f Binary files /dev/null and b/website/static/img/onboarding4.webp differ diff --git a/website/static/img/onboarding5.webp b/website/static/img/onboarding5.webp new file mode 100644 index 0000000..f6c2a45 Binary files /dev/null and b/website/static/img/onboarding5.webp differ diff --git a/website/static/img/onboarding6-1.webp b/website/static/img/onboarding6-1.webp new file mode 100644 index 0000000..e799ad0 Binary files /dev/null and b/website/static/img/onboarding6-1.webp differ diff --git a/website/static/img/onboarding6-run.webp b/website/static/img/onboarding6-run.webp new file mode 100644 index 0000000..b62c6e6 Binary files /dev/null and b/website/static/img/onboarding6-run.webp differ diff --git a/website/static/img/onboarding6.webp b/website/static/img/onboarding6.webp new file mode 100644 index 0000000..32d9aa3 Binary files /dev/null and b/website/static/img/onboarding6.webp differ diff --git a/website/static/img/user-plugin1.webp b/website/static/img/user-plugin1.webp new file mode 100644 index 0000000..bf9b3d9 Binary files /dev/null and b/website/static/img/user-plugin1.webp differ