РУССКАЯ ВЕРСИЯ (Русское 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
- ✨ Key Features and Advantages
- 📊 Technical Overview: Why ArgonShop Is Faster Than Heavy CMS Platforms
- 🧩 Development Philosophy
- 🧭 Design Principles and Limitations
- 🚀 Features
- 🛠️ Technology Stack
- ⚙️ Requirements
- 📦 Installation
- 📁 Repository Structure
- 🔌 Plugin Structure
- 🖼️ Theme Structure
- 🔄 How It Works
- 🌐 Languages
- 🧪 Tests
- 🤖 Recommended AI for Customizing the Plugin
- 📚 Third-Party Libraries
- 📄 License
-
🤖 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 / 10Good 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.
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 :)
-
-
🧱 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.
-
⚡ 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.
-
📊 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. -
🔍 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.
-
📂 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.
-
🚀 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.
-
⚙️ 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.
-
📦 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.
-
🛠️ 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 safeget_search_query()method, with strict validation of input data types againstnullandWP_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.
🌐 Live Demo: https://plugin-en.argon-studio.ru/ ( Test access: login admin, password 123 )
Unlike monolithic systems (such as 1C-Bitrix or Magento) that are overloaded with built-in business tools (CRM, warehouse accounting, end-to-end analytics), ArgonShop focuses solely on the e-commerce storefront.
The plugin is based on the standard WordPress 7 API, creating custom post types, taxonomies, and meta fields, and fully trusting data storage to the optimized WordPress core.
| Criterion | 🟢 ArgonShop (WordPress 7) | 🔴 Classic Heavy CMS (Bitrix) |
|---|---|---|
| Server RAM Usage | Minimal. Only core WP classes and Vanilla JS on the frontend are initialized. | High. The CPU spends resources compiling hundreds of unused business modules. |
| SQL Load | Low. Data is fetched through the optimized WP_Query. No extra joins or layers. |
Extreme. The infoblock architecture generates heavy queries with dozens of JOINs per property. |
| Frontend Dependencies | Pure JavaScript. Only the ultra-light Swiper and GLightbox libraries are bundled. | Overloaded. Tons of system UI scripts and core libraries are loaded out of the box. |
| Infrastructure | Works great even on cheap shared hosting due to low TTFB. | Requires a powerful VPS/VDS with mandatory dedicated web environment setup. |
1. No Software Overhead (excess code) ⚡
The plugin performs no background computations unrelated to rendering the storefront, cart, or user account. The server processes requests instantly, delivering data directly to your theme's HTML templates without intermediate visual editors or heavy component layers.2. Efficient WordPress Database Handling 📂
When using the standard WP database with large volumes (50k+ products), it is critical to avoid chaotic queries. ArgonShop uses clean WordPress API methods, making it easy to enable **object caching (Redis / Memcached)**. With caching enabled, repeated requests for products and categories bypass the SQL database entirely, keeping load times around **900 ms**.3. Asynchronous Native AJAX 🔍
The "live" search, filtering, and cart update modules are written in native JavaScript and processed by isolated PHP handlers. This eliminates page reloads and reduces web server load under thousands of concurrent users.For an independent developer or a small team, trying to "reinvent the wheel" and write a custom CMS or deeply modify the WordPress core is a path to a software dead end. ArgonShop consciously and 100% uses the standard WordPress 7 core and its official API.
And here is why this is the only correct approach for a commercial product:
- 🛡️ Security out of the box: Protection of the database against SQL injections, data filtering, and user authorization security are provided by thousands of WordPress core developers worldwide. The plugin does not duplicate these functions but trusts proven standards.
- 🔄 Seamless updates: Because the plugin does not interfere with the core and only extends it via hooks and custom post types, the site is protected from "breaking" when minor and major CMS updates are released.
- 📈 Built-in optimization: In WordPress 7, the mechanisms of query caching, index building, and custom post handling are perfected. The plugin simply takes this ready-made speed without building extra layers.
- 🛠️ Zero Vendor Lock-in: Any third-party WordPress developer can understand the e-commerce code in a couple of hours. They won't have to study a "custom engine" — all logic is built on standard functions such as
WP_Query, taxonomy registration, and meta fields, familiar to every web master.
Summary: The strength of ArgonShop is not in changing WordPress standards, but in their maximally light and correct use. The plugin takes the best from the stable WP ecosystem and cuts out everything that usually slows down e-commerce sites.
- 🥇 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
shoporderposts 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.
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
| 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) |
- 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
- ACF (Advanced Custom Fields) — for the fields
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.
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.
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-themeOn Windows — use mklink /D in a command prompt with administrator rights.
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.
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.
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.mdcontains 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.
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/
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)
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)
- 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 asmain.js.
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.
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.
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.
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.
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.
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.phptests/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.phpDetails — tests/README.md.
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.
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.
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:
- Provide the model with a link to the repository or upload the target files alongside your AI documentation (AI.md and docs/ai/).
- Formulate the task in the form of highly precise and detailed instructions.
- Carefully review the code proposed by the AI: while free versions possess immense potential, they can sometimes overlook the deeper architectural context.
- Manually transfer the generated code into your project.
- 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.
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) |
📺 Watch the ArgonShop video overview
💡 Note about the video: The video is in Russian, but you can enable automatic YouTube subtitles/translation. Also, please note that the video mentions different search result outputs between standard GET search and AJAX requests. This and other minor issues have been completely fixed in the current version of the plugin—the search logic was substantially rewritten, so please refer directly to the code. Most of the video remains fully relevant, and all recent architectural changes are well-documented in
AI.md.
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.