QuickCommerce

Modified on Thu, 19 Mar at 2:51 PM

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 Quick3 instance.


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


Key features include:

  • Real-time product synchronization from Quick3 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 Quick3
  • 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 Quick3 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





Table of Contents





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)ekskl. 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.



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

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


OptionDescription
Products, categories, brands, tags & model specsDeletes all synced WordPress content. You can re-sync from Quick3 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.


Warning: These operations are destructive and cannot be undone.






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 Quick3.
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 Quick3.



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, measurements.No (read-only from Q3)
DescriptionFull rich-text editor for the main product description.Yes
Short DescriptionSimplified editor for the product excerpt.Yes
CategoriesHierarchical checkbox tree for assigning product categories.Yes
ModelsRead-only tree showing connected vehicle models.No (managed in Q3)
BrandsHierarchical checkbox tree for assigning brands.Yes
TagsCreate, search, and assign tags; selected tags shown as chips.Yes
PropertiesKey-value table of product attributes from Q3.No (read-only from Q3)
ImagesUpload area, drag-and-drop gallery with reordering; first image becomes featured.Yes
FilesUpload and manage downloadable documents (guides, spec sheets).Yes
ConnectionsRelated products defined in Q3 grouped by connection type.No (from Q3; can trigger sync for unsynced items)
LinksExternal URLs associated with the product.No (from Q3)
VariantsFor variable products: table of child variants; for variants: link to parent.No (managed in Q3)
Cross SellSearch and add complementary product recommendations; drag-and-drop ordering.Yes
UpsellSearch and add premium alternative suggestions; drag-and-drop ordering.Yes




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 Quick3 to WordPress. You cannot create new products from WordPress -- products are created in Quick3 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, Quick3 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 What Gets Synced later in this article.


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 Quick3:

  • 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 Quick3, 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 Quick3. 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 Quick3.


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 Quick3.


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 Quick3 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 Quick3.
  • 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 Quick3 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 Quick3. 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 Quick3. 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 onlyQuick3 (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.




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).



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 Quick3 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 Quick3 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 Quick3 system.


Since carts live in Quick3, 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 Quick3.


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


Nets Easy payment type is configured in Quick3. The payment type UID must match the configuration in Quick3.



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 Quick3 system. Registration is a two-step process: form submission followed by e-mail 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 Quick3, 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 Quick3. WordPress does not store order data.

  1. Customer completes checkout.
  2. Order is created in Quick3 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 Quick3 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 Quick3 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 Quick3, 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



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 Quick3 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 of the article.



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: Quick3 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 Quick3 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 Quick3 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 Quick3 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 Quick3 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 Quick3 integration.


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


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 Quick3 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 Quick3, 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