QuickCommerce

Modified on Mon, 16 Mar at 9:34 AM

Before you begin:


As of March 2026, this article is still under construction. It will contain formatting errors and might be missing screenshots or certain information.



Introduction


QuickCommerce is an ERP-connected eCommerce plugin for WordPress that integrates with the Quick3 ERP system. It delivers a fully synchronized storefront where products, inventory, orders, and customer data flow between WordPress and your Q3 ERP instance.


Unlike traditional WordPress eCommerce plugins, QuickCommerce does not store orders or cart data in WordPress. Instead, it uses your Q3 ERP system as the primary backend for commerce operations, while WordPress serves as the customer-facing storefront.


Key features include:

  • Real-time product synchronization from Quick 3 ERP with automatic scheduling.
  • 50 Gutenberg blocks for building a complete storefront using the WordPress Site Editor.
  • Cart and checkout with ERP-based order management for both B2B and private customers
  • Customer account dashboard with order history, invoices, addresses, wishlists, and settings
  • Wishlist functionality with bidirectional ERP synchronization
  • Bidirectional category management between WordPress and Q3 ERP
  • Model specification sync for vehicle/product compatibility filtering
  • Payment integration with Nets Easy for online card payments
  • Configurable price display with VAT handling and B2B awareness
  • Product reviews with star ratings
  • Multi-language support (Norwegian BokmÃ¥l, Swedish)


QuickCommerce connects to your Q3 ERP instance through a secure API. The ERP system serves as the source of truth for:

  • Product data (prices, stock, codes, supplier info)
  • Orders and shopping carts
  • Customer records
  • Wishlists


WordPress serves as the display and management layer for:

  • Product descriptions and images (optionally managed in WordPress)
  • Storefront layout and design (via Gutenberg blocks)
  • Tags and brands (WordPress-only taxonomies)
  • Cross-sell and upsell product recommendations








Installation and Requirements


System Requirements


RequirementMinimum Version
PHP8.2 or higher
WordPress6.0 or higher
Quick3 ERPActive instance with API access


A valid Quick3 API key and endpoint URL are also required. You can read more about our APIs here.


Installation Steps

  1. Upload the quickcommerce folder to /wp-content/plugins/, or install via the WordPress plugin upload screen.
  2. Activate the plugin through Plugins in the WordPress admin.
  3. You will be redirected to the Setup Wizard to configure your ERP connection and perform the initial data sync.


Initial Configuration


After activation, the Setup Wizard guides you through connecting to your Q3 ERP system and importing your product catalog. See the next section for a detailed walkthrough.




Setup Wizard


When you first activate QuickCommerce, a 3-step setup wizard guides you through the initial configuration.



Step 1: Connection


Connect your store to Quick3.


FieldDescription
API URLYour Quick3 API endpoint URL (required)
API TokenAuthentication token for the API (required)


  1. Enter your Q3 API credentials.
  2. Click Save Settings to store the credentials, then click Test Connection to verify connectivity.
  3. Click Continue to Sync to proceed. The button validates the connection on click and will not advance if the connection test fails.




Step 2: Data Sync


Perform the initial data synchronization from your ERP system.


  1. Click the Categories sync button to sync categories first (so products can reference them). The Categories button is always enabled.
  2. Once categories complete, the Products sync button becomes enabled. Click it to import the full product catalog.
  3. Once products complete, the Model Specs sync button becomes enabled. Click it to sync model specifications.
  4. Each entity type shows its own status indicator: waiting (grey), running (spinner), done (green checkmark), or error (red X).
  5. If any step fails, re-click the same sync button to retry.
  6. The Continue button is always enabled, allowing you to skip sync if desired.




Step 3: Complete


Review the setup summary and click Go to Dashboard. You will be redirected to the regular settings interface. QuickCommerce is now fully configured and running.






Admin Settings


Access: WordPress Admin > QuickCommerce

Required Permission: Administrator (manage_options capability)

The settings interface is organized into tabs. Below is a detailed guide for each tab.




Admin Menu Structure

WordPress Admin
+-- QuickCommerce (main menu)
|   +-- Settings Page
|       +-- Connection
|       +-- Store Info
|       +-- Cache
|       +-- Data Sync
|       +-- Prices
|       +-- Pages
|       +-- Settings
|       +-- Logs
|       +-- Cleanup
|
+-- Products (QProd)
    +-- All Products
    +-- Categories
    +-- Brands
    +-- Tags
    +-- Models



Connection Settings


Tab: Connection

Manage the API credentials for your Quick3 connection.


FieldDescription
API URLThe base URL for your Quick3 API
API TokenYour API authentication token (leave blank to keep current)


Actions:

  • Save Settings -- Save the API credentials
  • Test Connection -- Verify that the connection to Quick3 is working


The test result displays below the button, showing success or the specific error encountered.



Legacy Webshop Settings

Additional fields for backward compatibility with the legacy API may appear below the main connection settings. These include Data Retrieval Token, Webshop User, Webshop Password, and Client UID.



Store Info


Tab: Store Info

Displays store information retrieved from the connected Q3 ERP system. This tab is read-only and shows your ERP client details including company name, organization number, VAT number, address, phone, email, and website. Click Refresh from ERP to re-fetch the latest information from your Q3 instance.




Cache Settings


Tab: Cache

Configure how QuickCommerce caches data to improve performance.


Cache TypeDescription
WordPress TransientsDefault option. Uses WordPress built-in caching. Good for most sites.
RedisHigh-performance caching. Recommended for busy stores. Requires a Redis server.


When Redis is selected, additional fields appear:


FieldDefaultDescription
Redis Host127.0.0.1Redis server hostname or IP
Redis Port6379Redis server port
Redis Password(empty)Redis authentication password (optional)


Use Test Connection to verify Redis connectivity before saving.




Data Sync

Tab: Data Sync

The most frequently used tab. Controls product, category, and model spec synchronization between Quick 3 ERP and your WordPress store.

Sync Settings

ToggleDescription
Lock Content SyncWhen enabled, product descriptions in WordPress will not be overwritten during sync
Media SyncEnable or disable product image synchronization

Entity Status Overview

Three status cards show current counts for:

  • Products -- Total, Active (published), Inactive (draft)
  • Categories -- Total, Active, Inactive
  • Models -- Total, Active, Inactive

Manual Sync Controls

Each entity type has its own sync section with controls:

EntityControls
ProductsSync Mode (Delta or Full), Sync Now button, Auto Sync Interval selector, Rate Limit indicator, Last Sync timestamp
CategoriesSync Now button, Auto Sync Interval selector, Last Sync timestamp
Model SpecsSync Now button, Auto Sync Interval selector, Last Sync timestamp

Available auto sync intervals: Disabled, 15 min, 30 min, 1 hour, 3 hours, 6 hours, 12 hours, 24 hours, 7 days.

During sync, a progress bar shows real-time progress. You can cancel an in-progress sync by clicking the Cancel Sync button.




Sync Logs (Sub-tab)

The Data Sync tab contains a Logs sub-tab showing a paginated history of all sync operations (20 entries per page).

ColumnDescription
TypeEntity type (Product_delta, Group, Modelspec)
Synced AtDate and time of the sync
StatusColor-coded badge: Success (green), Failed (red)
TotalTotal items processed
InsertedNew items created
UpdatedExisting items updated
DisabledItems marked inactive
MessageJSON button to view detailed sync data




Price Settings

Tab: Prices

Configure how product prices display throughout your store.

Display Format

SettingDefaultDescription
Decimal Places2Number of decimal digits (0-4)
Decimal Separator,Character between whole and decimal parts
Thousand Separator(space)Character for thousands grouping
Currency SymbolkrCurrency symbol to display
Currency PositionAfterSymbol placement: Before (kr 100) or After (100 kr)
Add SpaceYesWhether to add space between price and symbol

Tax Display

SettingDefaultDescription
Tax Display ModeIncluding VATOptions: Including VAT, Excluding VAT
Tax Label (Including)inkl. mvaLabel shown when price includes VAT
Tax Label (Excluding)eksl. mvaLabel shown when price excludes VAT




Pages

Tab: Pages

This tab contains three sections for configuring URL slugs and legal page paths.

Page Slugs

Configure the URL slugs for core QuickCommerce pages. Changes update both the WordPress page and all internal references.

PageDefault SlugDescription
CartcartShopping cart page
CheckoutcheckoutCheckout form page
AccountkontoCustomer account dashboard
Checkout Completecheckout-completeOrder confirmation page
Order Detailsorder-detailsSingle order detail page
Invoice Detailsinvoice-detailsSingle invoice detail page
Reset Passwordreset-passwordPassword reset form page

Archive & Taxonomy Slugs

Configure the URL slugs for product archives and taxonomy pages.

SlugDefaultDescription
Product ArchiveproductsProduct listing page
Product Categoryproduct-categoryCategory archive pages
BrandbrandsBrand archive pages
ModelmodelModel specification pages

Warning: Changing slugs will break existing bookmarks and search engine links. Consider setting up redirects from old URLs.

Legal Pages

Configure the URL paths for your store's legal pages. These URLs appear in the checkout terms checkbox, the registration form, and the Nets Easy payment session.

SettingDefaultDescription
Terms & Conditions/termsPath to your terms and conditions page
Privacy Policy/privacyPath to your privacy policy page
Merchant Terms/merchant-termsPath to your merchant terms page (used by Nets Easy)

Where these URLs are used:

  • Checkout page -- "I have read and accept the website terms" link
  • Account registration form -- "I agree to the Terms and Conditions and Privacy Policy" links
  • Nets Easy payment session -- termsUrl and merchantTermsUrl sent to Nets when creating a payment

Page existence indicator: Each field shows a status badge:

  • Page exists (green) -- A WordPress page was found at that slug.
  • Page not found (yellow) -- No page exists. Click Create page to open the WordPress page editor.

Values must be relative URL paths starting with /, for example /terms-and-conditions.




General Settings

Tab: Settings

Product Fallback Image

Set a default image displayed when products do not have a featured image. For variable products without images, the system first checks variant images before falling back to this default.

  • Click Change Image to choose from the WordPress Media Library
  • Click Remove to clear the fallback image




Log Viewer

Tab: Logs

A full-featured log viewer for monitoring plugin activity and debugging issues.

Log Settings

At the top of the tab, configure logging behavior:

SettingDefaultDescription
Logging ToggleOnMaster toggle for all plugin logging
Log LevelsAll checkedWhich severity levels to log: ERROR, WARNING, INFO, DEBUG

Log Viewer Controls

ControlDescription
File SelectorChoose which log file to view (one file per day)
Level FilterFilter by severity: All, ERROR, WARNING, INFO, DEBUG
SearchSearch for specific text within log entries
DownloadDownload the current log file
Clear FiltersReset all filters
Auto-scrollAutomatically scroll to newest entries

Each log entry shows a line number, color-coded level badge, timestamp, message, and an optional JSON button to view structured data in a formatted modal. Navigate through pages of 50 entries each.




Cleanup

Tab: Cleanup

Scheduled Cleanup

Automatically clean up old Action Scheduler entries, sync queue records, and sync log entries to keep your database lean.

SettingDefaultDescription
Enable automatic cleanupOnToggle automatic purging of old records
Cleanup intervalWeeklyHow often cleanup runs: Twice daily, Daily, or Weekly
Action Scheduler retention30 daysCompleted AS entries older than this are removed
Sync queue retention7 daysCompleted sync queue rows older than this are removed
Sync log retention30 daysSync log entries older than this are removed

Click Run Cleanup Now to trigger an immediate cleanup.

Data Cleanup

Warning: These operations are destructive and cannot be undone.

Select what to delete using the checkboxes. ERP data will not be affected.

OptionDescription
Products, categories, brands, tags & model specsDeletes all synced WordPress content. You can re-sync from ERP afterwards.
Custom tables (sync queue, sync log, product data)Truncates plugin database tables. Sync history and queue will be lost.
Plugin settings & optionsRemoves all plugin settings including API credentials. You will need to reconfigure everything.

Click Run Data Cleanup to execute the selected cleanup operations.





Product Management

Product List

Location: WordPress Admin > Products

The product list is your primary view for browsing all synced products.

Custom Columns

ColumnDescription
StatusGreen dot = published (visible), Red dot = draft (hidden)
ImageProduct thumbnail
Product CodeUnique code from Q3 ERP
Price w/o taxPrice excluding VAT; shows original and sale prices when a discount is active
Price w/ taxPrice including VAT; shows original and sale prices when a discount is active
StockBadge showing stock quantity -- green for in-stock, red for out-of-stock
Product TypeSimple, Variable (has variants), Variant (child of a variable product), Component, or Set
TitleProduct name, linked to the product editor
CategoriesAssigned product categories (auto-column from taxonomy)
ModelsConnected vehicle models (auto-column from taxonomy)
BrandsAssociated brands (auto-column from taxonomy)
TagsAssigned tags (auto-column from taxonomy)

Sorting

Click column headers for Status, Price, Stock, and Product Type to sort. Click again to reverse.

Filtering

Three filter dropdowns are available above the product list:

  1. Category Filter -- Filter by product category (shows product counts in parentheses)
  2. Brand Filter -- Filter by brand
  3. Stock Status Filter -- Choose In Stock or Out of Stock

Select values and click Filter to apply.

Searching

Use the search box to find products by name or product code. QuickCommerce extends the standard WordPress search to also match against product codes from Q3 ERP.




Manual Sort Order

When you filter by a specific category, an Enable Sorting button appears. This lets you drag-and-drop products to arrange their order within that category. The new order is saved automatically.




Product Editor

Location: WordPress Admin > Products > Edit Product

The product editor features a Product Details metabox with a tabbed interface containing 15 sections.

Product Details Tabs

TabDescriptionEditable
GeneralProduct code, type, stock info, prices, supplier/manufacturer details, measurementsNo (read-only from Q3)
DescriptionFull rich-text editor for the main product descriptionYes
Short DescriptionSimplified editor for the product excerptYes
CategoriesHierarchical checkbox tree for assigning product categoriesYes
ModelsRead-only tree showing connected vehicle modelsNo (managed in Q3)
BrandsHierarchical checkbox tree for assigning brandsYes
TagsCreate, search, and assign tags; selected tags shown as chipsYes
PropertiesKey-value table of product attributes from Q3No (read-only from Q3)
ImagesUpload area, drag-and-drop gallery with reordering; first image becomes featuredYes
FilesUpload and manage downloadable documents (guides, spec sheets)Yes
ConnectionsRelated products defined in Q3 grouped by connection typeNo (from Q3; can trigger sync for unsynced items)
LinksExternal URLs associated with the productNo (from Q3)
VariantsFor variable products: table of child variants; for variants: link to parentNo (managed in Q3)
Cross SellSearch and add complementary product recommendations; drag-and-drop orderingYes
UpsellSearch and add premium alternative suggestions; drag-and-drop orderingYes




Quick3 Sidebar

Located in the right sidebar of every product editor page:

FieldDescription
Last SyncedTimestamp showing when the product was last synced from Q3
Lock ContentToggle to prevent description overwrite during sync
SyncButton to sync this individual product from ERP
GUIDProduct's ERP GUID (copyable)
UIDProduct's ERP UID (copyable)




Product Sync

Products are synchronized from Q3 ERP to WordPress. You cannot create new products from WordPress -- products are created in Q3 and then synced.

Initial Sync

The Setup Wizard handles the initial full catalog import. Categories and models are synced first so that products can reference them.

Automatic Sync

QuickCommerce schedules automatic syncs using the WordPress Action Scheduler (WordPress's built-in background task system). By default, each entity type runs every 3 hours (configurable in Data Sync settings).

During each automatic product sync, Q3 ERP is queried for changes since the last run. New and updated products, prices, stock levels, and images are pulled into WordPress automatically. For a complete list of which fields are synced and in which direction, see Section 14.4 -- What Gets Synced.

Manual Sync

Three methods to trigger a manual sync:

  1. From Settings: QuickCommerce > Data Sync > click the Sync button for the desired entity type.
  2. From a Single Product: Open the product editor and click Sync in the Quick3 sidebar.
  3. From WP-CLI: Run wp qcom sync products from the server terminal.

Sync Summary

After a sync completes, a summary message appears:

Synced: 847 products (12 new, 835 updated). 0 failed.

Product Visibility

Product visibility is controlled by the webactive property in Q3 ERP:

  • webactive = true -- Product is published and visible on the storefront
  • webactive = false -- Product is set to draft and hidden from the storefront

To make a product visible or hidden, change its web-active flag in Q3 ERP and re-sync.

Image and Description Management

While most product data comes from Q3 ERP, images and descriptions can be managed in WordPress.

Lock Content

The Lock Content toggle in the Quick3 sidebar controls whether Q3 sync overwrites descriptions:

  • Locked (on): Your WordPress descriptions are preserved during sync.
  • Syncing (off): The next sync will overwrite WordPress descriptions with Q3 data.

This can also be set globally via the Lock Content Sync toggle in the Data Sync settings.

Images

  • Upload, reorder, and remove images from the Images tab.
  • The first image automatically becomes the featured image.
  • For variable products, variant images appear in a separate read-only section below the main gallery.
  • Image changes are saved automatically via AJAX.




Product Fallback Image

Set a default image in QuickCommerce > Settings > General for products that do not have a featured image. For variable products, the system checks variant images first before falling back to the default.





Categories and Taxonomies

QuickCommerce uses four product taxonomies to organize products.

Categories

Access: WordPress Admin > Products > Categories

Categories are organized hierarchically (parent/child) and support bidirectional sync with Q3 ERP. Categories can be created and edited in both systems.

Sync behavior:

  • Categories sync from Q3 to WordPress and vice versa.
  • New categories created in WordPress are automatically pushed to Q3 on save.
  • Editing or deleting a category in WordPress updates Q3 accordingly.
  • Automatic sync runs every 3 hours by default (configurable). A "Next Q3 sync" indicator is shown above the category list.
  • Manual sync available from QuickCommerce > Data Sync, or per-category via the Q3 Sync row action.

Managing categories:

  1. Navigate to Products > Categories.
  2. Create, edit, or delete categories as needed.
  3. Assign categories to products via the product editor's Categories tab.

Category Images

Each category can have an image managed in WordPress (not synced to Q3):

  1. Go to Products > Product Categories.
  2. Click Add New or edit an existing category.
  3. In the Category Image section, click Upload Image.
  4. Select an image and save the category.

Category List Columns

ColumnDescription
NameCategory name with hierarchical indentation
DescriptionCategory description
Q3Connection status: Green = linked to Q3, Gray = not linked
ActiveVisibility: Green = active, Red = inactive
ErrorRed = sync error (hover for details), Gray = no error
SlugURL-friendly identifier
CountNumber of products in this category




Tags

Access: WordPress Admin > Products > Tags

Tags are a flat (non-hierarchical) taxonomy managed entirely in WordPress. They are not synced from Q3 ERP.

AspectDetail
SourceWordPress only
HierarchicalNo
EditableFully -- create, edit, delete freely
Synced to Q3No

Common use cases:

  • Product attributes: "waterproof", "organic", "sale", "new-arrival"
  • Seasonal labels: "summer-collection", "black-friday"
  • Internal organization labels

Tags can be assigned to products from the product editor's Tags tab. On the frontend, tags can be used for filtering via query parameters or FacetWP facets.

Brands

Access: WordPress Admin > Products > Brands

Brands are a hierarchical taxonomy managed in WordPress. They are not synced from Q3 ERP.

AspectDetail
SourceWordPress only
HierarchicalYes (can have parent/child brands)
EditableFully -- create, edit, delete freely
Has LogoYes -- upload brand logo images
Frontend BlockProduct Brand Logo block

Brand Logos

Each brand can have a logo image:

  1. Go to Products > Brands.
  2. Click Add New Brand or edit an existing brand.
  3. In the Brand Logo field, click Upload Logo.
  4. Select an image and save the brand.

The Brands admin list table shows a thumbnail preview of each brand's logo.




Hierarchy Example

Renault (parent brand)
+-- Renault Passenger
+-- Renault Commercial

Most stores use a flat brand list. Hierarchy is optional and mainly useful for large multi-brand catalogs.

Model Specifications

Access: WordPress Admin > Products > Models

Models represent vehicle makes and models (or any hierarchical specification system). They are synced one-way from Q3 ERP and are read-only in WordPress (except for images).

Hierarchy

Models are organized in a three-level hierarchy:

Brand (e.g., Audi)
  +-- Model (e.g., Q5)
       +-- Year Terms (e.g., 2020, 2021, 2022, 2023)
  • Level 1 -- Brand: Top-level model specs from Q3 ERP
  • Level 2 -- Model: Child specs under brands
  • Level 3 -- Year: Auto-generated child terms from the model's year range in Q3

Read-Only Behavior

Models are controlled by your Q3 ERP system. The following actions are blocked in WordPress: creating new models, editing names/slugs/descriptions, changing parents, deleting models, quick edit, and bulk edit/delete.

An info notice on the edit page explains this restriction.

Only the Model Image can be edited in WordPress.

Year Terms

Year terms are automatically generated for models with a valid year range defined in Q3 ERP. For example, a model with years 2018-2023 produces child terms: 2018, 2019, 2020, 2021, 2022, 2023.

ScenarioResult
Both valueFrom and valueTo setCreates terms for each year in the range
Only valueFrom setCreates terms from that year to the current year
Only valueTo setCreates terms from 2010 to that year
Neither value setNo year terms created
Invalid values (< 1900)No year terms created

Model Images

Model images are managed exclusively in WordPress and are never synced to Q3 ERP.

To add or change an image:

  1. Click on the model name to open the edit page.
  2. In the Model Image section, click Upload Image or Replace Image.
  3. Select an image from the Media Library or upload a new one.
  4. Click Save Image.

Recommended: Medium (300x300) or larger. Supported formats: JPG, PNG, GIF, WebP.

Model Sync

  • Automatic: Every 3 hours (configurable in Data Sync settings)
  • Manual (all): QuickCommerce > Data Sync > Model Specs > Sync Now
  • Manual (single): Hover over a model in the list and click Q3 Sync
  • WP-CLI:wp qcom sync models

Model List Table Columns

ColumnDescription
NameModel name with hierarchical indentation
DescriptionModel description from Q3
Q3Connection status: Green = linked, Red = not linked, Blue = year term
ActiveVisibility: Green = active, Red = inactive
ErrorRed = sync error (hover for details), Gray = no error
SlugURL-friendly identifier
CountNumber of products associated with this model




Taxonomy Comparison

FeatureCategoriesTagsBrandsModels
SourceBidirectional (Q3 + WP)WordPress onlyWordPress onlyQ3 ERP (read-only)
HierarchicalYesNo (flat)YesYes (3 levels)
Editable in WPFullyFullyFullyImage only
Has Image/LogoYes (WP-managed)NoYes (logo)Yes (WP-managed)
Frontend BlockCategory blocksNoneProduct Brand LogoModel Filter
Sync DirectionBidirectionalNoneNoneQ3 to WordPress

Storefront Blocks

Overview

QuickCommerce provides 50 Gutenberg blocks for building your storefront. All blocks are found in the QuickCommerce category in the block inserter and are identified by green icons.

To access blocks:

  1. Open the WordPress Site Editor or a page for editing.
  2. Click the + (Block Inserter) button.
  3. Search for a block name or browse the QuickCommerce category.

All blocks support visual customization through the block editor's built-in controls for colors, typography, spacing, borders, and shadows.




Product Blocks

These blocks display product-specific data and are typically placed inside a Product Template block or a WordPress Post Template configured for products.

BlockDescription
Product TemplateWrapper container that provides product context to all child blocks. Required as a parent for most product blocks.
Product TitleDisplays the product name. Supports heading level selection (H1-H6) and typography customization.
Product CodeDisplays the product code with an optional label prefix. Variant-aware on single product pages.
Product Short DescriptionDisplays the product excerpt. Supports max length truncation and HTML stripping.
Product GalleryResponsive image gallery with lightbox support and configurable thumbnail positions (bottom, left, right).
Product BuyblockAdd-to-cart interface with quantity selector and variant option dropdowns.
Product Stock StatusShows stock availability with customizable icons and colors for in-stock, out-of-stock, delivery, and unknown states.
Product Delivery DateShows expected delivery date with distinct styling for confirmed vs. unconfirmed dates.
Product Brand (Logo)Shows the product's brand logo. Configurable size, image effects (none, grayscale), and links to brand archive.
Product PropertiesDisplays product attributes in a key-value table format.
Product FilesLists downloadable files attached to the product.
Product LinksDisplays external URLs associated with the product.
Product Model SpecsShows model/vehicle specifications connected to the product.
Product BundleDisplays bundle information for bundled products.
Product Component ItemsShows bundled or included component items within a product.
Product TabsTabbed interface for organizing product information (description, properties, models, links, files, cross-sell, comments).
Product TabA single tab pane within the Product Tabs block.
Product Cross SellDisplays cross-sell product recommendations.
Product UpsellDisplays upsell product recommendations.
Product RatingShows product star rating.
Variant SelectorDropdown controls for selecting variant attributes (size, color, etc.) on variable products.
Selected ProductsDisplays a curated collection of hand-picked products.
Wishlist Add ButtonHeart icon toggle for adding/removing products from wishlists. Shows filled heart when product is saved. Prompts guest users to log in.

Price Blocks

Price blocks are composable -- you place them inside the Product Price container block to build your desired price display.

BlockDescription
Product PriceContainer block for all price-related inner blocks.
Price AmountThe current/active product price.
Price OriginalThe original (pre-discount) price, typically shown with a strikethrough.
Price RangePrice range display for variable products (e.g., "99 kr - 199 kr").
Price DiscountDiscount percentage or amount badge.
Price TaxTax label (e.g., "inkl. mva").
Price SavingsShows the amount saved compared to the original price.

Cart Blocks

BlockDescription
CartCart icon with item count badge and interactive side drawer panel. Drawer shows product list, quantities, prices, remove buttons, subtotal, and "Go to Checkout" button.
Add to Cart ButtonAdds the current product to cart. For simple products, adds immediately; for variable products, links to the product page. Supports Fill and Outline styles.
Quantity InputCompact number input with +/- buttons for selecting product quantity. Configurable min, max, step, and default values.

Cart block placement: Typically placed in the site header alongside the Auth Menu block.

Add to Cart Button settings:

SettingDefaultDescription
Button TextAdd to cartText for simple products
Variants Button TextView ProductText for variable products
Hover Background/Text Color(inherit)Hover styling

Checkout Blocks

BlockDescription
CheckoutFull checkout form with customer information, shipping, payment, order summary, terms acceptance, and submit button.
Checkout CompleteOrder confirmation page with store logo, confirmation message, and order reference. Handles payment finalization.
Checkout Complete: Order DetailsDisplays order details within the completion page.
Checkout Complete: Order SummaryShows the order total summary.
Checkout Complete: Ordered ItemsLists the items in the completed order.
Checkout Complete: Delivery InfoShows delivery/shipping information for the completed order.

Checkout setup: Create a page (e.g., "/checkout") and add the Checkout block.

Checkout Complete setup: Create a page (e.g., "/checkout-complete") and add the Checkout Complete block. Customers are automatically redirected here after payment.

Customer and Account Blocks

BlockDescription
Auth MenuLogin/account icon for the site header. Shows login prompt for guests and account link for logged-in users.
Customer AccountFull account dashboard with tabs for Profile, Settings, Addresses, Orders, Invoices, and Wishlist.
Reset PasswordPassword reset form for the password reset page.

Navigation and Utility Blocks

BlockDescription
BreadcrumbsHierarchical navigation path (e.g., Home > Electronics > Headphones). Configurable separator, colors, and text styling.
Load More ButtonLoads additional products in paginated collections. Shows configurable button text, loading text, and "no more" text.
Model FilterCascading dropdown filter for finding products by vehicle compatibility (Brand > Model > Year).

Breadcrumbs settings:

SettingDefaultDescription
Text Case(inherit)Transform text casing
Active Text Color(inherit)Color of the current breadcrumb item
Separator TypeChevronSeparator character between items
Separator Color(inherit)Separator color

Category Blocks

BlockDescription
Category DescriptionDisplays the current category's description text.
Category ImageDisplays the current category's image.
Category WrapperContainer block that provides category context to child blocks.

Order and Invoice Blocks

BlockDescription
Order DetailsPage-level block displaying full order details: reference number, date, status, line items, totals, shipping, and payment info.
Invoice DetailsPage-level block displaying invoice information: number, date, billing details, line items, totals, and payment status.

Setup: Create dedicated pages (e.g., "/order-details" and "/invoice") and add the respective blocks. Orders and invoices link to these pages from the customer account dashboard.

Building Pages with Blocks

Basic single product page structure:

  1. Add a Product Template block as the top-level container.
  2. Inside it, use WordPress Columns or Group blocks for layout.
  3. Place a Product Gallery in one column.
  4. In the other column, add Product Title, Product Price (with inner price blocks), Product Stock Status, Variant Selector, and Product Buyblock.
  5. Below, add a Product Tabs block for description, properties, and other content.




Basic category archive page:

  1. Use a WordPress Query Loop block configured for products.
  2. Inside the Post Template, add product blocks like Title, Price, Image, Add to Cart Button, and Wishlist Add Button.
  3. Below the query, add a Load More Button for pagination.






Shopping Cart

The cart is managed entirely through the Quick 3 ERP API -- no cart data is stored in WordPress.

How the Cart Works

  1. Customer adds a product using the Add to Cart Button.
  2. Cart is created/updated in Q3 ERP via API call.
  3. Cart icon updates showing the new item count.
  4. Customer views cart by clicking the cart icon to open the side drawer.
  5. Cart persists across sessions via the ERP system.

Since carts live in the ERP system, they are not affected by WordPress cache clearing or database operations.

Cart Side Drawer

The cart drawer slides open when the cart icon is clicked, showing:

  • Product list with images, names, quantities, and prices
  • Quantity adjustment controls (+/- buttons)
  • Remove item buttons
  • Cart subtotal with tax breakdown
  • Cross-sell product carousel
  • "Go to Checkout" button



Stock validation occurs in real-time -- if a product goes out of stock while in the cart, the customer is notified.





Checkout

Checkout Flow

The typical customer checkout flow:

Cart --> Checkout Page --> Payment --> Checkout Complete Page
  1. Customer reviews cart and clicks "Go to Checkout."
  2. Checkout page loads with the Checkout block.
  3. Customer fills in:
    • Personal information (name, email)
    • Shipping address (with saved address selection)
    • Shipping method
    • Payment method
  4. Customer accepts terms and conditions and submits the order.
  5. Payment is processed based on the selected method.
  6. Customer is redirected to the Checkout Complete page.




Payment Methods

Payment MethodDescription
None (Invoice)Direct order with no online payment required. Order is confirmed immediately.
Nets EasyOnline card payment via the Nets Easy payment gateway.

Nets Easy Integration

When Nets Easy is selected:

  1. Customer clicks "Pay" on the checkout page.
  2. A Nets Easy payment session is created (includes your store's Terms URL and Merchant Terms URL from Legal Pages settings).
  3. Customer is redirected to the Nets payment form.
  4. After successful payment, customer returns to the Checkout Complete page.
  5. Payment is verified and the order is confirmed in Q3 ERP.

Sold-out item verification is performed before payment submission to prevent purchasing unavailable products.

Nets Easy payment type is configured in the Q3 ERP system. The payment type UID must match the configuration in your ERP.

Order Confirmation

The Checkout Complete page displays:

  • Store logo
  • Order confirmation message
  • Order reference number/UID

For Nets Easy payments, the page verifies the payment with the Nets API before confirming. The cart is cleared after successful order confirmation.



If the customer is a new user, their account registration is finalized at this stage.





Customer Accounts


Registration


Customer accounts are connected to the Q3 ERP system. Registration is a two-step process: form submission followed by email confirmation.


Private Customer Registration

  1. Navigate to the registration page.
  2. Select the Private Customer tab (default).
  3. Fill in required fields: First Name, Last Name, Email, Password, Confirm Password.
  4. Optionally fill in Phone Number, Address, City, Postal Code, Country.
  5. Accept the Terms and Conditions checkbox.
  6. Click Create Account.
  7. Check your email for a confirmation link and click it within 15 minutes.




Business Customer Registration (B2B)

The same process as private registration with additional required fields:

  • Company Name -- Legal name of the company
  • Organization Number -- Company registration number

Email Confirmation

After submitting the registration form, a confirmation email is sent. You must click the link within 15 minutes to activate the account. After confirmation, you can log in with the email and password chosen during registration.

Login Methods

Email and Password

  1. Navigate to the login page or click the account icon in the header.
  2. Enter your email and password.
  3. Click Sign In.

Rate limiting: After multiple failed attempts, you will receive a "Too many requests" error. Wait 15 minutes before trying again.




One-Time Code (OTP) via Email

  1. On the login form, toggle "Use one time code."
  2. Enter your email address.
  3. Click Send Code.
  4. Check your email for a 6-digit verification code.
  5. Enter the code and click Sign In.

Rate limits: 3 code sends per 5 minutes, 5 verification attempts per 15 minutes.

Phone Number Login (SMS)

  1. On the login form, click "Use phone number instead."
  2. Select your country code (Sweden, Norway, Denmark, or Finland).
  3. Enter your phone number.
  4. Click Send Code.
  5. Enter the 6-digit SMS verification code.
  6. Click Sign In.

Phone login is useful when you do not remember which email you registered with.

Auth Modal

When you attempt an action requiring login (such as adding to a wishlist or proceeding to checkout), a login modal appears automatically. It supports both password and OTP login. After successful login, the modal closes and the page refreshes.

Password Reset

  1. On the login form, click "Forgot password?"
  2. Enter your email address and click Send Reset Link.
  3. Open the reset email and click the link (valid for 1 hour).
  4. Enter your new password (minimum 8 characters) and confirm it.
  5. Click Reset Password.

You can request a maximum of 3 reset emails within 15 minutes. For security, the success message is shown regardless of whether the email exists in the system.

Account Dashboard

After logging in, the account dashboard provides tabs for managing your account:

TabDescription
ProfileView and edit personal information (name, email, phone). Company info and customer number are read-only.
SettingsChange password and toggle price display mode (with tax / without tax).
AddressesManage up to 10 shipping addresses with a default address option.
OrdersOrder history with search, sort, pagination, and detail view.
InvoicesInvoice list with status badges (Paid/Overdue), search, sort, and detail view.
WishlistSaved products displayed in a responsive grid with images, prices, notes, and delete options.




Profile Management

  1. Navigate to your account page and click the Profile tab.
  2. Click Edit to activate editable fields: First Name, Last Name, Email, Phone Number.
  3. Make changes and click Save.

Changes are saved to both WordPress and Q3 ERP, so updated information is reflected in invoices and correspondence from the back-office system.

Shipping Addresses

You can store up to 10 shipping addresses. These are available during checkout for quick selection.

Adding an Address

  1. Go to the Addresses tab and click Add Address.
  2. Fill in: Address, City, Postal Code, Country. Optionally: Contact Person, Company, Set as Default.
  3. Click Save.

Editing and Deleting

  • Click the Edit icon to modify an address, or the Delete icon to remove it.
  • You cannot delete an address in use by an active order.

Default Address

Check Set as Default when adding or editing. The default address is pre-selected during checkout. Only one address can be default at a time.






Orders and Invoices

How Orders Work

Orders exist only in Q3 ERP. WordPress does not store order data.

  1. Customer completes checkout.
  2. Order is created in Q3 ERP with status "Unconfirmed."
  3. Payment is processed (if required).
  4. Order is confirmed in the ERP system.
  5. Customer can view the order from their account dashboard or the Order Details page.

Order States

Orders in QuickCommerce use states defined by the Q3 ERP system. Each state has a numeric code, an internal name, and a user-facing label displayed in your storefront:

CodeInternal NameUser-Facing LabelDescription
0UnknownUnknownState could not be determined
1OrderProcessingOrder placed and being processed
2PartiallyPicklistedBeing preparedSome items have been picked for shipment
3FullyPicklistedReady to shipAll items picked and ready to ship
4InvoicedInvoicedOrder fully invoiced
5PartiallyInvoicedPartially invoicedSome items invoiced, others pending
6OfferQuotePrice quote sent to customer
7PartiallyConfirmedOfferQuote (partial)Some quote lines confirmed by customer
8ConfirmedOfferQuote confirmedFull quote accepted by customer
9RejectedOfferQuote rejectedQuote declined by customer
10UnconfirmedNot completedOrder started but not yet submitted
11ReturnOrderReturnReturn request created
12ClosedReturnOrderReturn completedReturn fully processed

Order state transitions are managed by the Q3 ERP system based on payment status and fulfillment actions.

Filter Groups

The order history page groups these states into tabs for easy browsing:

Filter TabIncluded States
AllAll orders
ActiveProcessing, Being prepared, Ready to ship
UnconfirmedNot completed
InvoicedInvoiced, Partially invoiced
OffersQuote, Quote (partial), Quote confirmed, Quote rejected
ReturnsReturn, Return completed

Order History

From the Orders tab in your account dashboard:

  • View all orders with order number, date, status (color-coded badges), and amount.
  • Search for specific orders.
  • Sort by date, order number, status, or amount.
  • Click View Details to see the full order with line items, totals, shipping information, and payment details.
  • Use the Refresh button to reload the latest data.




Invoices

From the Invoices tab:

  • View invoices with number, date, type, status (Paid/Overdue), due date, amount, and balance.
  • Search, sort, and paginate through invoices.
  • Click View Details for full invoice information.






Wishlists


Wishlists allow logged-in customers to save products for later. Wishlists sync bidirectionally with Q3 ERP, so they persist across devices and sessions.



Key Features

  • Login required: Wishlists are only available to logged-in customers.
  • Multiple wishlists: Customers can create multiple named wishlists (up to 50 items each).
  • No duplicates: The same product cannot be added to a wishlist twice.
  • ERP synced: Wishlists persist across devices and sessions.

Adding Products to a Wishlist

The Wishlist Add Button block appears on product cards and single product pages as a heart icon:

  • Empty heart = product is not in the wishlist. Click to add.
  • Filled heart = product is already in the wishlist. Click to remove.
  • Guest users are prompted to log in first.

Managing Wishlists

From the Wishlist tab in the account dashboard:

  1. View saved products with images, names, prices, notes, and date added.
  2. Click View Product to visit the product page.
  3. Click Delete to remove an item from the wishlist.

If the wishlist is empty, a "No products in wishlist" message is shown with a Start Shopping button.






Navigation

Breadcrumbs

The Breadcrumbs block displays a hierarchical navigation path showing the customer's current location in the store.

Example: Home > Electronics > Headphones > Product Name

Placement: Typically at the top of product and category pages, below the header. Customizable separator type, colors, text styling, and gap spacing.




Load More Button

The Load More Button block provides pagination for product collections. When clicked, additional products load below the existing ones without a full page reload. When all products are loaded, the button disappears or shows configurable "no more" text.

Model Filter

The Model Filter block provides cascading dropdown menus that let customers filter products by vehicle compatibility (Brand > Model > Year). This block uses the model specification taxonomy data.






Sync and Data Management


How Sync Works


QuickCommerce uses a queue-based producer-consumer architecture for synchronization. Data flows primarily from Q3 ERP to WordPress:

  1. The sync process queries Q3 ERP for data (products, categories, or models).
  2. New items are created in WordPress; existing items are updated.
  3. Items are marked as active (published) or inactive (draft) based on their Q3 status.
  4. Sync results are logged for review.

Configuring Sync Intervals

Different entity types can have different sync frequencies.

  1. Navigate to QuickCommerce > Settings > Data Sync tab.
  2. Use the dropdown menus to select a frequency for each entity type.
IntervalRecommended For
1 hourProducts with frequently changing stock/pricing
3 hours (default)Good balance for most stores
6 hoursModerate-volume stores
12 hoursStores with stable inventory
24 hoursCategories and models that rarely change
7 daysVery stable data sets

Changes take effect immediately on the next Action Scheduler processing cycle.

Manual Sync

From the Admin Settings

Navigate to QuickCommerce > Data Sync and click the Sync button for the desired entity type.

Recommended order for a full re-sync: Categories first, then Models, then Products. This ensures products can reference correct categories and models. The Setup Wizard guides you through this order with sequential sync buttons.

From a Single Product

Open the product editor and click Sync in the Quick3 sidebar to refresh that specific product from Q3.

From WP-CLI

See the WP-CLI Commands section.

What Gets Synced

DataDirectionNotes
Product name/titleQ3 to WordPressAlways from Q3
Product codeQ3 to WordPressAlways from Q3
Price (base, sale, discount)Q3 to WordPressAlways from Q3
Stock quantity and statusQ3 to WordPressAlways from Q3
Supplier and manufacturer infoQ3 to WordPressAlways from Q3
Weight and unitQ3 to WordPressAlways from Q3
Properties/attributesQ3 to WordPressAlways from Q3
ConnectionsQ3 to WordPressAlways from Q3
Links/hyperlinksQ3 to WordPressAlways from Q3
VariantsQ3 to WordPressAlways from Q3
Web active statusQ3 to WordPressControls publish/draft
DescriptionQ3 to WordPressUnless Lock Content is enabled
Short descriptionQ3 to WordPressUnless Lock Content is enabled
ImagesBidirectionalCan be managed in WordPress
CategoriesBidirectionalSynced from Q3 and editable in WordPress
BrandsWordPress onlyNot synced
TagsWordPress onlyNot synced
Cross-sell/upsellWordPress onlyNot synced
Model specsQ3 to WordPressRead-only in WordPress (except images)
Model imagesWordPress onlyNot synced to Q3

Sync Error Handling

QuickCommerce is designed to be resilient to transient errors:

  • Automatic retries: Failed items are retried up to 3 times with increasing delays (30s, 60s, 120s).
  • Sync summary with failures: If items fail after all retries, the summary shows the failure count with a "View details" link to the Sync Logs.
  • Background recovery: The next scheduled automatic sync will attempt any missed items again.

Common failure causes:

  • ERP API errors for specific products (may need attention in Q3)
  • Network timeouts (usually resolve on retry)
  • Rate limiting (wait a few minutes and try again)

For persistent failures, try syncing the individual product from its editor page, or check your Q3 API connection.

Conflict Resolution

Default rule: Q3 ERP wins (source of truth).

Exceptions (configurable):

  • Product descriptions can be locked from overwrite using the Lock Content toggle (per product or globally).
  • Product images can be managed in WordPress independently.
  • Tags, brands, cross-sell, and upsell are WordPress-only and never overwritten by sync.

WP-CLI Commands

For advanced users and automated workflows, QuickCommerce provides WP-CLI commands.

Sync Commands

# Sync products (delta mode -- changes only)
wp qcom sync products

# Sync products (full mode -- all products)
wp qcom sync products --mode=full

# Sync products with custom batch size
wp qcom sync products --batch-size=200

# Sync categories
wp qcom sync categories

# Sync model specifications
wp qcom sync models

# Check sync status
wp qcom sync status

# Output sync status as JSON
wp qcom sync status --format=json

Setup Command

# Initial setup (configure and sync)
wp qcom setup --url=https://your-erp-api.com --token=your-api-token

# Setup without running sync
wp qcom setup --url=https://your-erp-api.com --token=your-api-token --skip-sync

# Force re-setup (overwrite existing configuration)
wp qcom setup --url=https://your-erp-api.com --token=your-api-token --force

Troubleshooting

Connection Issues

ProblemSolution
"Test Connection" failsVerify the API URL and token are correct. Check that the Q3 ERP instance is running and accessible from your WordPress server.
Intermittent connection errorsCheck network connectivity between your WordPress server and the Q3 API endpoint. Temporary outages may resolve on their own.
Rate limit errors (429)The Q3 API limits certain requests. Wait a few minutes and try again. Use pagination-based sync (default) to avoid limits.

Sync Issues

ProblemSolution
Sync appears stuck or not progressingCheck Tools > Scheduled Actions for failed or pending sync jobs. Verify Action Scheduler is running.
Sync completed but products are missingThe next sync run will resume from where it left off. Trigger another sync to pick up remaining products.
Sync summary shows failed productsCheck Sync Logs for details. Failed products are retried automatically up to 3 times. If failures persist, check Q3 API connectivity.
Categories not assigned to productsRun a category sync first, then a product sync. Categories must exist before products can reference them.

Product Issues

ProblemSolution
Product not appearing on storefrontProduct may be set to "draft" because it is not web-active in Q3. Check the web-active flag in Q3 ERP and re-sync.
Prices not updatingTrigger a manual sync from QuickCommerce > Data Sync or the product's Quick3 sidebar.
Images not showingEnable Media Sync in Data Sync settings and trigger a sync.
Description keeps getting overwrittenEnable the Lock Content toggle in the product's Quick3 sidebar.
Stock shows "0" but product has stock in Q3Sync data may be stale. Trigger a manual sync for that product.
Variant images not appearingCheck the Images tab -- variant images are shown in a separate section below the main gallery.

Customer Account Issues

ProblemSolution
Cannot log in with correct passwordPassword may have been changed in Q3. Use "Forgot password?" to reset and re-synchronize.
"Too many requests" errorRate limit exceeded. Wait 15 minutes and try again.
Confirmation email not arrivingCheck spam/junk folder. Wait a few minutes. If still absent, try registering again.
Confirmation link expiredThe 15-minute window has passed. Start registration again.
OTP code not acceptedCode may have expired. Request a new code using "Send new code."
Cannot add a new addressMaximum of 10 addresses reached. Delete an unused address first.
Cannot delete an addressAddress may be in use by an active order. Wait until the order completes.
Profile changes not savingRefresh the page and check your internet connection.

Model Issues

ProblemSolution
Model not syncingCheck the Error column in the models list (hover for details). Try manual Q3 Sync from row actions. Verify the model is active in Q3.
Year terms not appearingYear terms require valid year values (> 1900) in Q3. If both values are 0 or null, no terms are created. Run a manual sync after Q3 changes.
Model image not savingEnsure you click Save Image after selecting. Verify you have the manage_categories permission.

Where to Check Logs

  1. Navigate to QuickCommerce in the admin sidebar.
  2. Click the Logs tab for the log viewer.
  3. Use the level filter and search to find specific entries.
  4. Download log files for detailed analysis.

How to Force a Complete Re-Sync

  1. Go to QuickCommerce > Data Sync.
  2. Sync Categories first, then Models, then Products.
  3. Monitor the progress bar until each completes.

For a single product, open its editor and click Sync in the Quick3 sidebar.

To re-run the full initial setup (e.g., after changing your Q3 ERP instance), use the Cleanup tab to clear data, then go through the Setup Wizard again.


FAQ

Q: Can I create products directly in WordPress?
A: No. Products are created in your Q3 ERP system and synchronized to WordPress. Use Q3 to add products, then sync them.

Q: Where are orders stored?
A: Orders exist only in Q3 ERP. WordPress does not store order data. Customers view their orders through the account dashboard, which fetches data from Q3 in real time.

Q: Where is the shopping cart stored?
A: Carts are managed entirely through the Q3 ERP API. No cart data is stored in WordPress. This means carts are not affected by WordPress cache clearing or database operations.

Q: Can I edit product prices in WordPress?
A: No. Prices are controlled by Q3 ERP and are read-only in WordPress. Update prices in your ERP system and sync.

Q: Can I edit product descriptions in WordPress?
A: Yes. Enable the Lock Content toggle on individual products (or globally) to prevent Q3 sync from overwriting your WordPress descriptions.

Q: How often does sync run?
A: By default, every 3 hours for all entity types. You can configure different intervals (from 15 minutes to 7 days) for products, categories, and models independently under QuickCommerce > Data Sync.

Q: What happens if Q3 ERP is temporarily unavailable?
A: Your WordPress storefront continues to display the last synced product data. Cart and checkout operations will fail until the Q3 connection is restored. Syncs will retry automatically.

Q: Is this plugin compatible with WooCommerce?
A: QuickCommerce is a standalone eCommerce solution and does not use WooCommerce. It is a custom implementation designed specifically for Q3 ERP integration.

Q: What payment methods are supported?
A: Invoice (no online payment) and Nets Easy (online card payments). Payment types are configured in Q3 ERP.

Q: Can customers use both B2B and private accounts?
A: The registration form offers separate tabs for private and business customers. Business accounts include additional fields for company name and organization number.

Q: How do I change the currency or price format?
A: Navigate to QuickCommerce > Settings > Prices tab to configure decimal places, separators, currency symbol, position, and tax display options.

Q: What happens when I clear synced data?
A: The Clear All Data operation in the Cleanup tab removes all synced products, categories, brands, and model specs from WordPress. Your plugin settings and all original data in Q3 ERP are preserved. You can re-sync afterward.

Q: How do I add blocks to my storefront?
A: Open the WordPress Site Editor, click the block inserter (+), and search for QuickCommerce blocks or browse the QuickCommerce category. All blocks use green icons for easy identification.

Q: Can customers log in with their phone number?
A: Yes. On the login form, click "Use phone number instead" to switch to SMS-based login. Country codes for Sweden, Norway, Denmark, and Finland are supported.

Q: What is the maximum number of shipping addresses a customer can have?
A: Each customer can store up to 10 shipping addresses. To add more, an existing address must be deleted first.

Q: How do wishlists work across devices?
A: Wishlists are synced with Q3 ERP, so they persist across all devices and browser sessions as long as the customer is logged in.



Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article