AumCreate

AumNexCart — the official guide

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.

AumNexCart active, and the only plugin on the site

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.

A product being edited

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 480 and 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.

The catalogue archive

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 filter bar

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.

A product page

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.

The enquiry page with three products on it

[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.
The product list in the admin

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.

The settings screen

12.1 General

FieldWhat it sets
Currency SymbolThe symbol shown with every price
Currency PositionBefore or after the number
What a product is called (singular) / PluralThe words used in the admin menu, the breadcrumb, and the archive title
Product URL SlugThe archive URL — /your-slug/. Saving flushes the rewrite rules
What a category is called (singular) / PluralThe same, for categories
Category URL SlugThe category archive URL
Products Per PageHow many products one page of the archive holds

12.2 Display

FieldWhat it sets
Archive ColumnsHow many products sit in a row
Display price on archive cards and product pageWhether prices appear at all
Display the category label above product titlesWhether the category appears on a card
Disable plugin frontend stylesheetLeaves the markup unstyled for a theme that styles it itself

12.3 Filter

FieldWhat it sets
Filter ModeHow the filter bar behaves
Filterable Attribute KeysWhich 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

FieldWhat it sets
Enquiry pageThe page carrying [aum_nexcart_enquiry]
Add button labelThe button's text before a product is in the list
Label once addedIts text afterwards
Form field nameThe 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.