Skip to content
ArgonstudioPublic

About

An e-commerce plugin for WordPress. Engineered for speed and high-volume product catalogs, it allows you to build a custom shopping cart and customer dashboard directly within your site's theme.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ArgonShop

РУССКАЯ ВЕРСИЯ (Русское README, AI документация и детальные русские комментарии в коде).

WordPress e-commerce plugin.

Important

For any questions about the plugin, its operation, or installation, feel free to consult DeepSeek, ChatGPT, or other AI assistants. The plugin includes a dedicated AI documentation set (AI.md, AI_ARCHITECTURE.md, and related files) specifically designed to provide AIs with accurate context. Note: since the site theme examples and comments are in Russian, using an AI assistant will make it much easier for English-speaking readers (and speakers of other languages) to navigate and work with the code.

🤖 Want to customize the plugin for your project with AI? See Recommended AI for Customizing the Plugin. If you would like to customize it with the help of the plugin developer, please contact voit.ne@gmail.com


Table of Contents

✨ Key Features and Advantages

  1. 🤖 AI-Ready Architecture The plugin is designed to be simple and understandable for AI — just give the AI a link and it will be able to write the necessary modules.

    📈 GPT-6 Luna review: View Full Chat Review, My Understandability Scores

    These scores measure how easily an AI assistant can comprehend the codebase, navigate it, predict side effects, and safely implement new functionality.

    • ArgonShop 1.0.0 — 8.0 / 10

      Good architecture and documentation, but more effort required to understand some internal relationships.

    • ArgonShop 1.1.0 — 9.2 / 10 (current version)

      🚀 Verdict: Very high readability for AI-assisted development, with explicit architectural contracts and testing procedures.

    📊 Detailed Breakdown & Comparison

    Assessment Area Version 1.0.0 Version 1.1.0 Key Improvements & Notes
    🏢 Overall architecture 8.0 9.0 Clearer boundaries and decoupled modules in the newer version.
    🐘 PHP code navigation 8.0 9.0 Enhanced class structures and better type-hinting/strict typing.
    🟨 JavaScript organization 8.5 8.5 Remained stable, well-structured, and easy to maintain.
    🔄 Understanding data flows 8.0 9.0 Predictable state mutations and explicit data pipelines.
    📝 Documentation 8.5 9.5 Exceptional inline comments and comprehensive README/API specs.
    🤖 AI-assisted development 8.0 9.5 Code patterns are highly optimized for LLM context windows.
    🛡️ Safe modification & regression 7.0 9.5 Robust testing procedures and architectural contracts reduce breakages.

    🚀 AI Approved: Google named their new AI Argon right after analyzing ArgonShop. Coincidence? Most likely! But i’ll take it as the best recommendation anyway :)

    Great AI evaluation of the documentation by Genspark.ai

    Documentation: 9/10. It is essentially a textbook example of making a codebase legible to LLMs: an index + files specialized per context window, "hard prohibitions" in negative-prompt format, task-type routing, a tool-support table, a built-in self-check procedure, and protection against known AI weaknesses (hallucinating non-existent functions, name collisions via the as_ prefix, synchronous PHP+JS editing when changing DOM selectors).

  2. 🧱 Full UI/UX Independence (Custom Templating) PHP templates and CSS styles are mostly placed in the site's theme. Even complex sections such as the shopping cart and user account are built with a unique design without the need to override hard-coded plugin styles.

  3. ⚡ Maximum Performance The plugin core and the demo theme are optimized for instant loading and score 100/100 in Google PageSpeed Insights. The store works reliably even on slow connections or through sluggish VPN services.

  4. 📊 Big Data Optimized (50,000+ Products) The database architecture handles huge catalogs without speed loss or increased server response time. The plugin is an excellent lightweight alternative for projects that started suffering from performance issues on heavy CMS platforms (e.g. 1C-Bitrix).

    Here is a real test example: https://pagespeed.web.dev/analysis/https-plugin-argon-studio-ru/

    As of 2026, it scores a perfect 100/100 on desktop and 99 on mobile, with 100/100 across all optimization recommendations.
    The Speed Index is between 0.8 and 1.1 seconds — nearly three times faster than Google's "Good" benchmark. Best of all, the test theme uses no caching or code optimization plugins, and the code isn't even compressed. It achieves this performance purely through the plugin's clean architecture.

  5. 🔍 Smart AJAX Search Without Reloads Intelligent "live" search displays results while the user is typing. Search scopes are configurable via the admin panel without touching the code. Complex ranking mechanisms are implemented, and AJAX results are synchronized with the standard results page.

  6. 📂 Open Source and Transparent License The project is distributed under the GNU GPL v3.0 license. Source code is thoroughly documented inside files, allowing developers to freely study, modify, and scale the system for their business needs.

  7. 🚀 Modern Technology Stack The plugin architecture is fully adapted and tested on current PHP 8.5 and WordPress 7. All frontend client logic is rewritten in pure native JavaScript (Vanilla JS), eliminating unnecessary dependencies.

  8. ⚙️ Works Within the WordPress Ecosystem The plugin uses standard WordPress APIs and works correctly with popular SEO modules, ACF and other plugins. ArgonShop is designed as the main plugin of the site and is not intended to run alongside WooCommerce or Elementor — see Design Principles and Limitations.

  9. 📦 Lightweight JS Library Integration The frontend bundle includes modern third-party libraries with open licenses for interactive elements, as well as custom modals for displaying interactive maps and feedback forms:

    • 🛒 Swiper 12.2.0 (MIT License) — touch sliders and product galleries.
    • 🖼️ GLightbox 3.3.1 (MIT License) — responsive modals and media viewing.
  10. 🛠️ Modernized Classic Solutions (WP-Kama) for PHP 8.5 The plugin includes and deeply reworks popular interface modules by Timur Kamaev (Kama). The ten-year-old original code was fully freed from legacy issues and vulnerabilities and adapted to the strict standards of modern servers:

  • 🍞 Breadcrumbs module (breadcrumbs.php) — protected from direct calls via ABSPATH, switched to the safe get_search_query() method, with strict validation of input data types against null and WP_Error.
  • 🔢 Pagination module (pagenavi.php) — completely free of the deprecated extract() function, loose comparisons (==) replaced with safe strict ones (===), and hardware-level protection against division by zero added.

📺 Demo and Video Overview

🌐 Live Demo: https://plugin-en.argon-studio.ru/ ( Test access: login admin, password 123 )

📺 Watch the ArgonShop video overview

💡 Automatic AI YouTube dubbing in English and high-quality English/French subtitles. The on-screen footage is in Russian. Note: The automatic voiceover downscaled the AI model versions, mentioning Opus 5.5 and ChatGPT 6.


📊 Technical Overview: Why ArgonShop Is Faster Than Heavy CMS Platforms

Unlike monolithic systems (such as 1C-Bitrix or Magento) that ship with a wide range of built-in business tools (CRM, warehouse accounting, end-to-end analytics), ArgonShop focuses solely on the online store storefront: catalog, cart, checkout, and customer account. Anything not needed for these tasks is simply not included, so it is never loaded or executed.

ArgonShop is one of the first AI-friendly platforms for creating custom e-commerce stores.

The plugin runs on the standard WordPress 7 API: custom post types (CPTs), taxonomies, and meta fields. Data storage, indexing, and caching are handled entirely by the optimized WordPress core.

⚡ Speed You Can Verify Yourself

The demo theme scores 100/100 on desktop and 99 on mobile in Google PageSpeed Insights, with no caching plugins and no code minification. 👉 Open the report or run the test on any ArgonShop-based site. There is no need to take our word for it.

⚔️ Architectural Comparison on Large Catalogs (50,000+ Products)

Criterion 🟢 ArgonShop (WordPress 7) 🔴 Monolithic CMS (e.g. Bitrix)
Server RAM usage Minimal. Only core WP classes and plugin modules are initialized; Vanilla JS on the frontend. Higher. The core loads along with a set of business modules, many of which a store doesn't need.
SQL load Moderate. Queries go through the standard WP_Query by post type, taxonomy, and indexed fields. Higher. The infoblock architecture produces complex queries with many JOINs when filtering by properties.
Cart Cookie-based. No database writes until the order is placed. Typically stored server-side (in the database).
Frontend dependencies Pure JavaScript, no jQuery. Only the lightweight Swiper and GLightbox are bundled. A set of system UI scripts and core libraries is loaded out of the box.
Infrastructure Doesn't require a powerful environment. Regular hosting is enough for typical catalogs; for 50,000+ products an object cache is recommended. Usually requires a VPS/VDS and dedicated web environment setup.

🛠 Architectural Principles Behind the Speed

1. Nothing Extra ⚡ The plugin performs no background computations unrelated to the storefront, cart, or user account. Data is passed directly to your theme's HTML templates, with no visual editors or heavy component layers in between.
2. A Catalog Built on Standard WordPress Mechanisms 📂 The architecture is designed for catalogs of 50,000+ products: products are stored as CPTs, and queries are built on standard `WP_Query`, taxonomies, and meta fields. The cart and view history live in cookies, so MySQL load stays minimal, and an order is written to the database only at checkout.

Because the plugin uses only standard WordPress API methods, it is compatible with a persistent object cache (Redis / Memcached). Repeated requests for products and categories then bypass the SQL database, with a target page load time of around 900 ms.

3. Native Asynchronous AJAX 🔍 "Live" search, sorting, filtering, and cart updates are written in native JavaScript (ES modules, Fetch API) and handled by isolated PHP handlers. Pages don't reload, and unnecessary requests don't burden the server.

🧩 Development Philosophy: Why the Vanilla WordPress 7 Core Is a Strength

For an independent developer or a small team, writing a custom CMS or deeply modifying the WordPress core is a path to a dead end. ArgonShop deliberately uses the standard WordPress 7 core and its official API. For a commercial product, this is the most practical approach.

  • 📚 Vast documentation and a rich knowledge base for AI: WordPress is one of the best-documented platforms in existence: Developer Resources, Code Reference, handbooks, tens of thousands of open-source plugins and themes, and an enormous number of examples and answers. Language models know the WordPress API far better than any custom-built engine, so an AI assistant writes and adapts code faster and more accurately. Together with ArgonShop's own documentation (AI.md, docs/ai/), this makes customizing the store with AI simple and predictable.
  • 🛡️ Security on a proven foundation: database access, data filtering, and authentication rely on the WordPress core, which is reviewed by thousands of developers and security researchers worldwide. The plugin doesn't invent its own protection mechanisms; it uses proven standards. Prices and required fields are validated on the server side.
  • 🔄 Predictable updates: the plugin doesn't interfere with the core; it extends it through hooks and custom post types. This minimizes the risk of incompatibility when WordPress updates are released.
  • 📈 Ready-made core optimizations: query caching, indexes, and custom post handling are already implemented in WordPress. The plugin builds on this foundation without adding its own layers.
  • 🛠️ Minimal vendor lock-in: any WordPress developer can quickly understand the store's code. All logic is built on familiar WP_Query, taxonomy registration, and meta fields, not on a "custom engine".

Summary: The strength of ArgonShop is not in changing WordPress standards, but in using them as lightly and correctly as possible. The plugin takes the best of a mature WP ecosystem and cuts out everything that usually slows down e-commerce sites.


🧭 Design Principles and Limitations

  • 🥇 Plugin #1 on the site. ArgonShop was designed as the main plugin of a WordPress site: install it first, then build the rest of the plugin structure around it.
  • 🧱 Logic is split between the plugin and the theme. The theme holds HTML and CSS; the plugin holds the bulk of the PHP and JS programming. This structure does not fit the WordPress plugin directory, so the plugin is downloaded from this GitHub repository.
  • 🚫 Not intended to run alongside WooCommerce or Elementor. ArgonShop is the foundation of the store. The theme is written in code and is not edited through any page builder.
  • 👥 Two user roles. The design assumes an administrator and a visitor (customer) without access to the admin area. If you add other roles (for example, an editor for a blog), check their access yourself: orders are stored as shoporder posts with the standard WordPress post capabilities.
  • 🤖 The theme is written with AI. You can and should use AI to write and adapt the theme — see Recommended AI for Customizing the Plugin. The idea and architecture of the plugin are the author's; the project has since been refined with the help of AI.

🚀 Features

Store:

  • Product catalog with hierarchical taxonomy and characteristics
  • Cookie-based cart (no DB writes until order placement)
  • Three checkout forms: quick order, individuals, legal entities
  • File attachments to orders (up to 3 files, up to 5 MB each, 15 MB total; checked on the server, stored privately, deleted after emails are sent)
  • Wholesale discounts via price steps
  • User account: profile, email/password change, order history
  • Product view history
  • Bestsellers and new arrivals
  • Multi-region support (Moscow / Istra) — one engine, different sites
  • Store currency in Settings → Store: US dollar (default), euro, Russian ruble

AJAX and interface:

  • AJAX search with language-aware rules for English, French and Russian: stop words, plurals, French elisions, wrong keyboard layout correction (QWERTY / AZERTY / ЙЦУКЕН)
  • AJAX catalog sorting
  • AJAX order filter in the user account
  • AJAX checkout with email sending
  • Modern ES-module JavaScript (no jQuery on the frontend)
  • Swiper sliders
  • GLightbox lightbox

Admin:

  • Product metaboxes: main parameters, gallery, characteristics, wholesale prices
  • Order metaboxes: products, customer data, status
  • Category tree in characteristics with cascading checkboxes
  • AJAX product search right in the order
  • Custom store settings page

🛠️ Technology Stack

Layer Technologies
Server PHP 8.3+, WordPress 7.1+
Storage Postmeta, termmeta, usermeta, cookies
Frontend Vanilla JS (ES modules), Fetch API, DOM API
Styles CSS3, Flexbox
Vendors Swiper 12, GLightbox 3.3
jQuery Only in admin (for wp.media and jQuery UI Sortable)

⚙️ Requirements

  • WordPress: 7.1 or newer
  • PHP: 8.3 or newer
  • MySQL: 5.7+ / MariaDB 10.3+
  • Optional:
    • ACF (Advanced Custom Fields) — for the fields unit_product, application, second_title, second_desc, bottom_desc, image_catalog, catalog_type, our_advantages, our_clients
    • Contact Form 7 — for the feedback form

The plugin and theme also work without ACF; a small number of theme blocks are demonstrated via ACF.

All main post types, taxonomies, and additional fields are created by ArgonShop independently.

Limitations:

  • Running alongside WooCommerce and Elementor (or other page builders) is not supported.
  • The plugin is installed only from this GitHub repository; it is not published in the WordPress plugin directory.

📦 Installation

The plugin was developed as the primary plugin of the system. Ideally, install it first on a fresh, clean WordPress.

The plugin is downloaded only from this GitHub repository: the plugin/theme split does not fit the WordPress plugin directory. See Design Principles and Limitations.

Method 1. Clone into wp-content

In the WordPress root:

cd wp-content
git clone https://github.com/Argonstudio/ArgonShop.git argon-shop-repo

# Symbolic links (Linux / macOS)
ln -s argon-shop-repo/plugins/argon-shop plugins/argon-shop
ln -s argon-shop-repo/themes/argon-shop-theme themes/argon-shop-theme

On Windows — use mklink /D in a command prompt with administrator rights.

Method 2. Manual installation

Copy:

  • plugins/argon-shop/ → wp-content/plugins/argon-shop/
  • themes/argon-shop-theme/ → wp-content/themes/argon-shop-theme/

Activate the plugin in admin, then activate the theme.

Protecting private order files (nginx)

Order files are stored in a private folder that is closed on Apache by .htaccess + index.php. Nginx does not read .htaccess, so on nginx add to the server config:

location ^~ /wp-content/uploads/argon-shop-private/ { deny all; }

Without this rule the files can be opened by a direct URL.

Method 3. Installation via an AI assistant

The project is prepared for deployment using any LLM assistant (DeepSeek, Claude, ChatGPT, Cursor, Codex). A file AI.md is placed in the repository root — a compact description of the architecture, file map, and contracts that must not be violated. An assistant that reads it will understand the project faster than a human.

Copy the prompt to your assistant:

For hosting:

Help me deploy a WordPress site with the ArgonShop plugin on hosting.

Repository: https://github.com/Argonstudio/ArgonShop
Project context: AI.md in the repository root — read it first.

Hosting conditions:
- WordPress is already installed via the control panel (if not, ask me and help me install it).
- File access: SFTP / control panel file manager (SSH — ask me).
- Database is created by the panel, wp-config.php is configured (ask me again).

Task:
1. Tell me exactly where on the hosting to place the files:
   - plugin folder: wp-content/plugins/argon-shop/
   - theme folder:  wp-content/themes/argon-shop-theme/
2. List which files and folders from the repository to upload to each,
   and which to ignore (LICENSE, README, AI.md, .git, etc.).
3. Check that I don't forget about:
   - file permissions (644) and folders (755);
   - absence of extra files like .git;
   - PHP support on hosting (8.3+ minimum).
4. Help me activate the plugin and theme via admin.
5. Install the recommended plugins: ACF, Contact Form 7.
6. Open the home page, find and help fix errors if any.
7. Show how to register a test customer via the cart form
   and how to delete that user from the DB afterwards.
8. Explain hosting cache — how to flush it after installation.

If any step lacks data — ask a question, don't guess.

Or locally:

Help me deploy the ArgonShop WordPress project locally.

Repository: https://github.com/Argonstudio/ArgonShop
Project context: AI.md in the repository root — read it first.

Task:
1. Deploy a clean WordPress (Local by Flywheel, Docker, or XAMPP — pick the easiest).
2. Clone the repository into a convenient folder.
3. Copy or symlink:
   - plugins/argon-shop → wp-content/plugins/argon-shop
   - themes/argon-shop-theme → wp-content/themes/argon-shop-theme
4. Activate the plugin and theme via WP-CLI or admin.
5. Install the recommended plugins: ACF, Contact Form 7.
6. Verify the home page opens without errors.
7. Explain how to create a test user and add a couple of products.

If any step is unclear or fails — ask me a question, don't guess.

Such a prompt works in a web chat, in IDE assistants, and in CLI agents.

Why this works:

  • AI.md contains the contracts (which selectors not to change, where the AJAX actions are), and the assistant won't break the interface with a random edit.
  • The file states that jQuery on the frontend is taboo. The assistant won't start suggesting "rewrite with jQuery, it's faster".
  • There is a "Known limitations" section — the assistant knows where bugs may occur and isn't surprised.

If the assistant works in an IDE (Cursor, VS Code + Copilot, Windsurf) — opening the project folder is usually enough for tools that read AGENTS.md (Codex, Cursor); AI.md is not read automatically — for Claude Code, Aider and others see the table in AGENTS.md.

If multi-region is required, the demo site uses the AA-DomainMirror plugin. The plugin is not part of the repository; for AI, the note on historical compatibility with it, the functions that would have to be written for city selection in one admin (they do not exist in the code yet) and the Multisite option is in docs/ai/AI_EXTENDING.md, section 11. However, regular Multisite is recommended — the AI is instructed to ask you about it first.


📁 Repository Structure

ArgonShop/
├── LICENSE
├── README.md
├── CHANGELOG.md
├── AI.md, AGENTS.md, docs/ai/          Documentation for AI assistants
├── CLAUDE.md, .claude/                 Claude Code: docs import, /check and /new-ajax commands, check hook
├── POSITIONING.md                       When to choose ArgonShop and when not to
├── tests/                               static-check.php (PHP only) and
│                                        smoke-test.php (WP-CLI, test site only)
├── .gitignore
├── plugins/
│   └── argon-shop/
└── themes/
    └── argon-shop-theme/

Plugin Argon Shop

plugins/argon-shop/
│
├── argon-shop.php                      Entry point, hook registration,
│                                       module loading, JS localization
├── settingPage.php                     "Settings → Store" page
├── languages/                          argon-shop.pot, ru_RU and fr_FR .po/.mo
├── uninstall.php                       Cleanup on plugin deletion (products,
│                                       orders and users are kept)
│
├── includes/
│   ├── createPostType.php              CPTs: product, shoporder, slider
│   │                                   Taxonomies: catalog, characteristics,
│   │                                   wholesalePrice, statusorders
│   ├── siteLine.php                    Replaces the as_homepage marker
│   │                                   with the current domain
│   │                                   (for multi-region)
│   ├── install.php                     Activation, deactivation, migrations
│   ├── legacy-functions.php            Wrappers for pre-1.1.0 function names
│   │
│   ├── admin/
│   │   ├── additionalFilters.php       Order filter by status in admin
│   │   ├── fieldsProduct.php           Product metaboxes: price, weight,
│   │   │                               article, hit, newProduct, characteristics
│   │   ├── fieldsTaxonomy.php          "Belongs to categories" field for characteristics
│   │   ├── galleryMetabox.php          Product gallery metabox
│   │   │
│   │   └── order/
│   │       ├── orderMetabox.php        Order metaboxes: products, customer, status
│   │       ├── orderAjax.php           AJAX: product search, add, recalc
│   │       └── orderSave.php           Order saving on save_post
│   │
│   ├── api/
│   │   ├── as_action.php               as_update_meta, as_array_partial_merge
│   │   ├── check.php                   as_post_in_term
│   │   ├── getSetting.php              Store settings, as_show_user_fields, currency helpers
│   │   │
│   │   ├── getData/
│   │   │   ├── getData.php             as_getDataCart, as_getActualPrice, as_getCookie,
│   │   │   │                           as_getDiscount, as_getActualStepDiscont
│   │   │   ├── orders.php              as_get_user_orders, as_get_used_statuses
│   │   │   ├── catalog.php             as_get_catalog_terms, as_splitMenu,
│   │   │   │                           as_view_menu_elements
│   │   │   ├── gallery.php             as_get_product_gallery
│   │   │   │
│   │   │   ├── admin/
│   │   │   │   └── get_characteristics.php   as_get_charact
│   │   │   │
│   │   │   └── product/
│   │   │       └── productLists/
│   │   │           ├── marked.php      as_get_marked_products (hits, new)
│   │   │           ├── catalog.php     as_get_sort_products
│   │   │           └── history.php     as_get_history_products
│   │   │
│   │   └── view/
│   │       ├── product/
│   │       │   └── productsLists/
│   │       │       └── productsLists.php   as_view_products_list
│   │       └── catalog/
│   │           └── catalogPage.php     as_sort, as_catalog
│   │
│   └── interface/
│       ├── breadcrumbs.php             Breadcrumbs (Kama fork)
│       ├── pagenavi.php                Pagination (Kama fork)
│       ├── history.php                 AJAX: addCookieHistory_history
│       ├── last_viewed_posts.php       "Recently viewed" widget (ZG fork)
│       │
│       ├── slider/
│       │   ├── sliderMain.php          as_slider_main (Swiper)
│       │   └── sliderProduct.php       as_slider_product (Swiper + GLightbox)
│       │
│       ├── shoppingCart/
│       │   ├── shoppingCart.php        Module loader
│       │   ├── cart-ajax.php           AJAX: add/amount/delete/deleteAll
│       │   ├── checkout.php            AJAX submitCart: checkout orchestrator
│       │   ├── checkout-fields.php     Form fields, required fields
│       │   ├── checkout-files.php      Order file validation and storage
│       │   ├── checkout-registration.php  Customer registration at checkout
│       │   ├── checkout-emails.php     Order emails
│       │   └── infoCart.php            as_infocart — cart widget in header
│       │
│       ├── product/
│       │   └── cardProduct.php         as_button_card_product
│       │
│       ├── catalog/
│       │   └── sort.php                AJAX catalog sorting
│       │
│       ├── cabinet/
│       │   ├── myCabinet.php           AJAX: email/password change, account save
│       │   ├── redirectUser.php        Redirects after login/logout
│       │   └── userOrders/
│       │       ├── ordersView.php      as_view_user_orders
│       │       └── ordersAjax.php      AJAX order filter
│       │
│       └── search/
│           ├── searchForm.php          as_search — search form output
│           ├── searchGetFilters.php    GET search filters (/ ?s=)
│           ├── searchAjax.php          AJAX search + as_fixKeyboardlayout
│           └── searchLanguage.php      Search rules for ru / en / fr
│
└── assets/
    │
    ├── css/
    │   ├── interface/
    │   │   └── interface-style.css     Only initial states
    │   │                               of JS-controlled elements
    │   └── admin/
    │       ├── fields-catalog.css      Characteristic fields
    │       ├── gallery.css             Gallery metabox
    │       └── order.css               Order page
    │
    ├── js/
    │   ├── admin/
    │   │   └── modules/
    │   │       ├── admin-script.js     Category tree, cascading checkboxes
    │   │       ├── gallery.js          Gallery metabox (wp.media + Sortable)
    │   │       └── orders.js           Order editing, recalculation
    │   │
    │   └── interface/
    │       ├── main.js                 Entry point, imports all modules
    │       │
    │       ├── core/
    │       │   ├── config.js           url, nonce, cartUrl, i18n strings + t() from wp_localize_script
    │       │   ├── api.js              Single fetch client
    │       │   └── nonce.js            XMLHttpRequest interceptor
    │       │
    │       ├── shared/
    │       │   ├── dom.js              qs, qsa, on, delegate
    │       │   └── format.js           formatPrice, formatWeight, parseNumber
    │       │
    │       └── modules/
    │           ├── cart.js             Cart: amount, remove, order
    │           ├── cart-form.js        Form: registration, files
    │           ├── cart-widget.js      Cart widget in header
    │           ├── product.js          Product page
    │           ├── card-product.js     Card buttons
    │           ├── add-to-cart.js      Shared add logic
    │           ├── search.js           AJAX search
    │           ├── sort.js             Catalog sorting
    │           ├── cabinet.js          Account: email, password, profile
    │           ├── orders.js           Account: order filter
    │           ├── consent.js          Consent checkboxes
    │           ├── control-panels.js   Tab switchers
    │           ├── mobile-menu.js      Mobile menu
    │           ├── menu-catalog.js     Catalog menu in sidebar
    │           ├── header.js           City selector
    │           ├── contact-form.js     CF7 in modal
    │           ├── catalog-page.js     Mobile catalog blocks
    │           ├── request.js          "Popular queries" block
    │           ├── slider-main.js      Homepage slider (Swiper)
    │           ├── slider-product.js   Product slider (Swiper + GLightbox)
    │           └── history.js          View history
    │
    └── vendor/
        ├── swiper/                     Swiper 12 (bundle)
        └── glightbox/                  GLightbox 3.3 (bundle)

Theme Argon Shop Theme

themes/argon-shop-theme/
│
├── style.css                           Theme metadata (header only)
├── functions.php                       Theme setup, script enqueueing,
│                                       ourclients/sertificates CPTs registration,
│                                       nested catalog category redirect
│
├── header.php                          Header: menu, search, cart, contacts
├── footer.php                          Footer: two menus, address, copyright
├── sidebar.php                         Sidebar: catalog, tags, hits, new
│
├── index.php                           Homepage: slider, advantages, catalog
├── page.php                            Static page template (fallback)
├── 404.php                             404 page
├── search.php                          Search results
├── archive.php                         Category archive (news, articles)
├── tag.php                             Tag archive
├── taxonomy-catalog.php                Catalog category
│
├── single.php                          Dispatcher: picks template by category
├── single-default.php                  Default post
├── single-product.php                  Product page
├── single-aktsii-moskva.php            Promo (Moscow)
│
├── category-aktsii-moskva.php          Promo category (Moscow)
├── (category-aktsii-istra.php)         Promo category (Istra) — not created yet, see AI_EXTENDING.md §11
├── categoryArchive-aktsii-moskva.php   Promo archive (Moscow)
├── (categoryArchive-aktsii-istra.php)  Promo archive (Istra) — not created yet, see AI_EXTENDING.md §11
│
├── shoppingCartPage.php                Template Name: shoppingCart
├── myCabinetPage.php                   Template Name: CabinetPage
├── history.php                         Template Name: View history
├── aboutCompany.php                    Template Name: About company
├── contacts.php                        Template Name: Contacts
├── addressMap.php                      Template Name: AJAX Map
│
│
├── template-parts/
│   ├── cabinet/
│   │   ├── account.php                 Account & address (individual/legal)
│   │   ├── setting.php                 Email and password
│   │   └── ordering.php                Order list
│   ├── cart/
│   │   ├── quickOrder.php              Quick order
│   │   ├── person.php                  Individuals
│   │   └── legalPerson.php             Legal entities
│   └── productPage/
│       └── characteristics.php         Product characteristics table
│
├── includes/
│   └── cardProduct/
│       └── cardProduct.php             generate_product_card
│
└── assets/
    ├── js/
    │   ├── modal.js                    Theme modal (AJAX/inline/iframe)
    │   ├── search-toggle.js            Search expansion in header
    │   └── slider-sertificates.js      Certificate slider (Swiper + GLightbox)
    │
    ├── css/
    │   ├── main.css                    Base styles
    │   ├── form.css                    Form fields
    │   ├── controlPanels.css           Tab switchers
    │   ├── modal.css                   Modal
    │   ├── footer.css                  Footer
    │   ├── topBlock/                   Fixed top bar
    │   │   ├── topBlock.css
    │   │   ├── shoppingCart.css
    │   │   ├── siteMenu/siteMenu.css
    │   │   └── search/topSearch.css
    │   ├── header/                     Header
    │   │   ├── header.css
    │   │   └── contactForm/contactForm.css
    │   ├── sitebar/                    Sidebar
    │   │   ├── sitebar.css
    │   │   ├── menuCatalog/menuCatalog.css
    │   │   ├── markedProducts/markedProducts.css
    │   │   └── entryTags/entryTags.css
    │   ├── homePage/                   Homepage
    │   │   ├── homePage.css
    │   │   ├── slider/homePageSlider.css
    │   │   ├── advantages.css
    │   │   └── catalog.css
    │   ├── product/                    Product
    │   │   ├── cardProduct/cardProduct.css
    │   │   └── singleProduct/
    │   │       ├── product.css
    │   │       ├── singleProductSlider/singleProductSlider.css
    │   │       └── aboutProduct/
    │   │           ├── aboutProducts.css
    │   │           └── characteristics/characteristics.css
    │   ├── catalog/                    Catalog
    │   │   └── catalogPage/
    │   │       ├── catalogPage.css
    │   │       ├── request/request.css
    │   │       ├── sort/sort.css
    │   │       └── productsList/productsList.css
    │   ├── cart/                       Cart
    │   │   ├── cart.css
    │   │   ├── controlPanel.css
    │   │   ├── cartListProducts.css
    │   │   ├── totalValue.css
    │   │   └── forms/forms.css
    │   ├── cabinet/                    User account
    │   │   ├── cabinet.css
    │   │   ├── controlPanel.css
    │   │   ├── account/account.css
    │   │   ├── setting/setting.css
    │   │   └── orders/orders.css
    │   ├── rubrics/                    Rubrics, articles, promos
    │   │   ├── rubrics.css
    │   │   └── categoryRubrics/categoryRubrics.css
    │   ├── search/                     Search form
    │   │   └── searchForm.css
    │   ├── aboutCompany.css
    │   └── glightbox.css               GLightbox overrides for the theme
    │
    └── img/
        └── (icons, sprites, logos)

🔄 How It Works

Plugin and Theme Separation

  • Plugin — all logic and the bulk of the PHP and JS: post types, taxonomies, AJAX handlers, ES modules, queries, cookies, emails.
  • Theme — HTML and CSS: page templates, styles, menu configuration. The theme is written in code and is not edited through page builders.
  • Touchpoints — plugin functions called from templates (as_kama_breadcrumbs, as_search, as_infocart, as_view_products_list, as_slider_product, etc.), and ES modules from the plugin loaded as main.js.

Store Data

The cart and view history are stored in cookies, not in the DB. An order is created in the DB (CPT shoporder) only at the moment of checkout, which reduces MySQL load.

Only product IDs and quantities are taken from the cookie: prices are always read from the DB, and unpublished or deleted products are dropped from the cart. Required checkout fields are checked on the server.

Extending

The plugin provides hooks for integrations without editing its code: argon_shop_product_price, argon_shop_cart, argon_shop_required_fields, argon_shop_shipping_methods, argon_shop_payment_methods, argon_shop_checkout_errors, argon_shop_order_post_data, argon_shop_order_created, argon_shop_checkout_response, argon_shop_email, argon_shop_allowed_file_types, argon_shop_file_limits, argon_shop_customer_registered. Examples are in docs/ai/AI_EXTENDING.md.

Since 1.1.0 all plugin functions have the as_ prefix. Old names from the public API keep working via includes/legacy-functions.php; the full list is in docs/ai/AI_FUNCTION_NAMES.md.

Modern JavaScript

The frontend is fully based on ES modules: main.js is loaded as <script type="module">, imports the core (core/), shared utilities (shared/), and functional modules (modules/). No jQuery on the frontend — only native fetch and DOM API. jQuery remains only in admin for wp.media and jQuery UI Sortable.

Multi-Region Support

The as_homepage marker in menu items is replaced with the current site's domain via the wp_nav_menu_objects filter. The menu works across all cities without editing links.


🌐 Languages

The plugin and the theme are translation-ready by WordPress rules: English is the source language, Russian and French translations are included (languages/ folders of the plugin and the theme). The language follows Settings → General → Site Language; any other language shows English. JavaScript messages (cart, file upload, account) are translated too. Search adapts to the site language (English, French or Russian rules). Code comments and developer documentation are in English. Site owners can override any string with their own files in wp-content/languages/plugins/ and wp-content/languages/themes/ or with Loco Translate / Poedit.

Currency is set separately in Settings → Store → Currency (USD by default, EUR, RUB): it changes the symbol and its position in prices, emails and the admin, without converting amounts. A Russian-language store should select RUB.

Store data entered in the admin (products, form field names in "Settings → Store") is not translated by these files — use a multilingual plugin (Polylang, WPML) for that.

For developers and AI assistants: docs/ai/AI_I18N.md.

💡 Tip: Using an advanced AI (such as Opus 5.5) allows you to create a new language version in just a few minutes, meaning you can easily translate the plugin into any major language.


🧪 Tests

tests/static-check.php needs only PHP (no WordPress, no database) and runs in seconds: syntax, untranslated texts, text domains, translation completeness, versions and English-only code comments.

php tests/static-check.php

tests/smoke-test.php checks the main scenarios on a real WordPress site: cart, price spoofing, required fields, file uploads, order creation, registration, account, search (including language rules), currency, translated JS strings, site and admin pages, and debug.log. Run it only on a test site via WP-CLI:

wp eval-file /path/to/ArgonShop/tests/smoke-test.php

Details — tests/README.md.


🤖 Recommended AI for Customizing the Plugin

ArgonShop is designed to be adapted to your project with the help of AI assistants. If you have installed the plugin and want to customize it for your store, here are two proven approaches.

Option 1. Claude Opus 5.5 — "lazy" development with a minimum of errors

The recommended choice is Claude Opus 5.5, preferably via Notion.com. Upload the plugin archive or give it a link to the repository, describe the task in plain words — and the AI will study the code and the AI documentation (AI.md and docs/ai/), make the changes itself and return ready-made files. This is the fastest and most comfortable path with the fewest errors: you mostly formulate tasks and check the result.

Option 2. Free AI Assistants (DeepSeek, ChatGPT, Gemini) — more manual work

If the budget is limited, you can successfully leverage the potential of leading free models, such as DeepSeek, ChatGPT, or Google Gemini. These are fully capable intelligent assistants; however, working with them will require more hands-on involvement from your side:

  1. Provide the model with a link to the repository or upload the target files alongside your AI documentation (AI.md and docs/ai/).
  2. Formulate the task in the form of highly precise and detailed instructions.
  3. Carefully review the code proposed by the AI: while free versions possess immense potential, they can sometimes overlook the deeper architectural context.
  4. Manually transfer the generated code into your project.
  5. Be sure to conduct thorough manual testing of every change to ensure that the code integrates correctly into your system.

This approach requires time and strict oversight on your part, but the capabilities of modern free models allow you to significantly optimize development at no additional cost.


📚 Third-Party Libraries

The project uses third-party libraries. Their licenses are preserved:

Library Version License Location
Swiper 12.2.0 MIT plugins/argon-shop/assets/vendor/swiper/
GLightbox 3.3.1 MIT plugins/argon-shop/assets/vendor/glightbox/
Kama Breadcrumbs 3.3.2 GPL plugins/argon-shop/includes/interface/breadcrumbs.php (fork)
Kama Pagenavi 2.5.2 GPL plugins/argon-shop/includes/interface/pagenavi.php (fork)
WP-LastViewedPosts 0.7.3 GPL plugins/argon-shop/includes/interface/last_viewed_posts.php (fork)

📄 License

The project is distributed under the GNU General Public License v3.0 or later.

See the LICENSE file for the full text.

Copyright (C) 2018-2026 Ivan Voitkov (voit.ne@gmail.com)

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Author: Ivan Voitkov · argon-studio.ru · voit.ne@gmail.com


About

An e-commerce plugin for WordPress. Engineered for speed and high-volume product catalogs, it allows you to build a custom shopping cart and customer dashboard directly within your site's theme.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages