AumNexCart is a product catalogue for WordPress. Products carry specification fields rather than a checkout: a visitor collects the items they are interested in and sends one structured enquiry. It requires no particular theme and no other plugin.
1. What the plugin adds
Activating AumNexCart registers one content type, Products, and one taxonomy, Categories, for it. Each product holds the things a specification sheet holds — a title, a description, images, a price in one of four shapes, and any number of named attributes — and the front end renders them as an archive, a filter bar, and a product page.
The part that replaces a checkout is the enquiry list. A visitor adds products to it as they browse, sets quantities, and submits the list through whatever form sits on the page you nominate. The list lives in the visitor's browser, so nothing about it varies per visitor on the server and no page cache has to be told about it.
2. Install
Install and activate the plugin. No further configuration is required to publish a catalogue.
The plugin's menu position depends on what else is installed, because it looks for a place to belong rather than creating a second top-level menu beside one that is already there:
- On its own, AumNexCart adds a Products menu, with its settings under Products → Settings.
- With the AumCreate theme active, the settings move to that theme's menu as NexCart, and the catalogue itself keeps its own Products menu.
Nothing else changes between the two: the same screens, the same settings.

3. Add a product
Open Products → Add New. The screen is the ordinary WordPress editor plus four boxes the plugin adds: Media Gallery, Product Attributes, Contact Actions, and Price.

3.1 Title, description, and image
The title and the editor content are the product's name and its description. The featured image is the product's main image, used on the archive, on the product page, and in the enquiry list.
Media Gallery holds the rest of the product's media. Items are added from the media library or by remote URL, dragged into order, and the first one is used as the cover image. Videos are supported as direct file URLs (.mp4, .webm); embed codes are not.
3.2 Product attributes
The Product Attributes box holds any number of rows, each a name and a value — Ref, Turnaround, Minimum lot, Material, whatever the catalogue needs. The names are yours; the plugin imposes no schema. Add Parameter adds a row, the handle on the left reorders them, and the order is the order they appear in on the product page.
These rows are what makes the catalogue a catalogue rather than a list of posts. They are rendered as a table on the product page, and any of them can become a filter. The box lists which names are currently filterable, read from the settings, under the rows.
3.3 Price
The Price box offers three options:
- Price Range — a minimum and a maximum. Filling only the minimum gives a single price: a product with
480and nothing else renders as€480. - Custom Text — free text, for a price that is not a number: From €120, POA, Free with a fabrication order.
- Do Not Show — no price on the product at all.
The currency symbol and whether it sits before or after the number are set once for the whole catalogue, in the settings.
3.4 Contact actions
The Contact Actions box sets what the buttons under a product do. Each action is one of three kinds:
- Email — opens the visitor's mail client with the product's name in the subject.
- WhatsApp — opens WhatsApp with a prefilled message.
- Custom — any URL.
A product with no actions of its own falls back to the catalogue-wide defaults, so a catalogue with one sales address sets it once rather than on every product.
4. Categories
Products are organised by Categories, a taxonomy of their own that is separate from the categories your posts use. A category can be nested, carries a description, and gets its own archive URL.
The filter bar on the archive lists categories, so the structure you give them is the structure a visitor browses by.
5. The catalogue on the front end
5.1 The archive
Products are listed at the catalogue's archive URL, /products/ by default. Each card carries the cover image, the category, the title, and the price.

5.2 The filter bar
Above the list sits a bar with a search box, a category selector, and a sort order. It filters the list in place.

The bar can also filter by attribute. Which attributes appear there is set in Settings → Filter, by naming them: a catalogue that lists Ref, Turnaround, and Minimum lot gets a filter for each. Only the ones you name are indexed for filtering, which is why the list lives in the settings rather than being inferred from whatever any product happens to carry.
After changing that list, run Rebuild Attribute Index on the Tools tab. The index is built when a product is saved, so products saved before the change do not yet carry entries for a newly named attribute.
5.3 The product page
A product page shows the cover image and gallery, the title, the category, the price, the attributes as a table, the description, and the contact buttons.

6. The enquiry list
A catalogue without a checkout still needs an answer to "I want twelve of these, five of those, and a price for the lot". That is the enquiry list.
6.1 How a product joins the list
Every "add" is one URL: the enquiry page with ?aum_enquiry_add=<product id>. Plain links carrying it work with no JavaScript at all — the visitor lands on the enquiry page and the product is there. The front-end script upgrades those links in place, so with JavaScript the click adds the product without navigating and the badge updates.
6.2 Where the list lives
The list lives in the visitor's own browser, in localStorage. The server never holds it.
That is a deliberate choice with a practical consequence: nothing on your site varies per visitor because of it, so a full-page cache can serve every page to everyone. A cart kept in a cookie or a session is the opposite — every page becomes per-visitor unless the cache is told otherwise, which is a common way for a cached site to start serving one buyer another buyer's page.
6.3 The enquiry page
Nominate a page in Settings → Enquiry, and put the [aum_nexcart_enquiry] shortcode on it. The shortcode renders the list, resolves the products, and lets the buyer set quantities.

[aum_nexcart_enquiry_link] renders a link to that page with the current count, for a header or a menu.
6.4 Handing the list to a form
The enquiry page writes a plain-text summary of the list into a hidden field of whatever form is on that page. The field name is set in Settings → Enquiry; the default is enquiry_items.
That is the whole hand-off. Any form plugin that can carry a hidden field through to its notification email works, because the coupling is one field name and nothing else.
7. Naming and URLs
A catalogue is not always a catalogue of "products". Settings → General sets what one item and one category are called, in the singular and the plural, and those names are used in the admin menu, the breadcrumb, and the archive title.
The same section sets the URL segments. A catalogue of processes can live at /processes/ with its categories at /stages/. Saving flushes the rewrite rules, so the new URLs work immediately.
8. Bulk work
Settings → Tools holds three operations.
- Export Products downloads every product as a CSV. It is also the template for the importer: the column headers are the ones the importer expects.
- Import Products uploads a CSV with those headers. New products are created and existing ones are left alone, so an import cannot overwrite work. Media referenced in the CSV must be remote URLs; the importer does not upload local files.
- Rebuild Attribute Index walks every product and rewrites the rows the filter bar reads. Run it after changing which attributes are filterable.

9. Moving to WooCommerce
Settings → Migration copies every catalogue product into a new WooCommerce product. The originals are left intact, so the way back is to deactivate WooCommerce.
This exists for the catalogue that outgrows enquiries and starts taking payment. Run it once you are ready for that, not to try it out.
10. Template overrides
The front end is rendered from the plugin's own templates. To change one, copy it out of the plugin's templates/ directory into a directory named aum-nexcart/ inside your theme, and edit the copy. Settings → Advanced prints both paths for the site you are on.
A copy in the theme wins over the plugin's own, and survives a plugin update.
11. Plugins and themes that extend the catalogue
The plugin works with none of these installed.
- AumViso — adds the search-engine structured data for products, so a catalogue page can describe itself to a search engine as a product rather than as an article.
- The AumCreate theme — the settings screen moves under the theme's own menu rather than creating a second place to look. Nothing else changes.
- WooCommerce — only relevant for the migration in section 9.
Each is detected at runtime, and removing one returns the catalogue to what the plugin renders by itself.
12. Settings reference
Every field on the settings screen, by tab. All of them live in one WordPress option, aum_nexcart_settings.

12.1 General
| Field | What it sets |
|---|---|
| Currency Symbol | The symbol shown with every price |
| Currency Position | Before or after the number |
| What a product is called (singular) / Plural | The words used in the admin menu, the breadcrumb, and the archive title |
| Product URL Slug | The archive URL — /your-slug/. Saving flushes the rewrite rules |
| What a category is called (singular) / Plural | The same, for categories |
| Category URL Slug | The category archive URL |
| Products Per Page | How many products one page of the archive holds |
12.2 Display
| Field | What it sets |
|---|---|
| Archive Columns | How many products sit in a row |
| Display price on archive cards and product page | Whether prices appear at all |
| Display the category label above product titles | Whether the category appears on a card |
| Disable plugin frontend stylesheet | Leaves the markup unstyled for a theme that styles it itself |
12.3 Filter
| Field | What it sets |
|---|---|
| Filter Mode | How the filter bar behaves |
| Filterable Attribute Keys | Which attribute names get a filter, and are indexed for it |
12.4 Contact
Default contact actions, used by every product that defines none of its own. Each is an email address, a WhatsApp number, or a URL, with the label the button carries.
12.5 Enquiry
| Field | What it sets |
|---|---|
| Enquiry page | The page carrying [aum_nexcart_enquiry] |
| Add button label | The button's text before a product is in the list |
| Label once added | Its text afterwards |
| Form field name | The hidden field the list is written into — default enquiry_items |
12.6 Tools, Migration, Advanced
These three carry no settings. Tools holds the CSV export, the CSV import, and the attribute index rebuild (section 8); Migration holds the WooCommerce copy (section 9); Advanced prints the paths for a template override (section 10).
13. Troubleshooting
The archive URL returns a 404. The rewrite rules have not been flushed. Saving the settings flushes them; so does visiting Settings → Permalinks.
A filter does not appear for an attribute I added. Name it under Settings → Filter, then run Rebuild Attribute Index on the Tools tab. Products saved before the name was added carry no index entry for it.
A product shows no price. Its Price box is set to Do Not Show, or prices are switched off for the whole catalogue under Settings → Display.
The enquiry list is empty on another device. The list is held in the browser that built it. It is not an account, and it does not follow a visitor between devices.
The enquiry summary does not reach the email. The form on the enquiry page needs a hidden field whose name matches Form field name in Settings → Enquiry, and the form's own notification has to include that field.