=== Cartvai – Ecommerce Checkout, Funnel Builder & Shop Manager ===
Contributors: cartvai
Tags: ecommerce, sales funnel, checkout, order management, online store
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 2.7.3
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

WordPress ecommerce plugin with one-page checkout, sales funnels, product management, orders, customers, shipping, and analytics. No WooCommerce.

== Description ==

Cartvai is a standalone **ecommerce plugin for WordPress** that gives you everything you need to sell products online — product management, mini cart, one-page checkout, sales funnels, order management, customer records, shipping, and analytics — without requiring WooCommerce.

Build a complete online store or create a focused **sales funnel** for a specific product or campaign. Add products to any page, display responsive product grids, create conversion-focused checkout pages, manage orders and customers, configure shipping, and track your sales performance from one WordPress dashboard.

Cartvai is designed for businesses that want a lightweight and flexible way to sell online without adding a WooCommerce dependency or paying SaaS subscription fees.

=== Why Choose Cartvai? ===

Cartvai combines **ecommerce, checkout, sales funnels, order management, and analytics** in one standalone WordPress plugin.

* Standalone ecommerce system — no WooCommerce required
* One-page checkout designed for a focused purchasing experience
* Built-in sales funnels with product configuration and upsells
* Product, order, customer, and shipping management
* Built-in sales and funnel analytics
* No per-transaction fees
* No SaaS subscription required
* Works with popular WordPress page builders through shortcodes

=== Core Features ===

**Sales Funnels**

Create dedicated checkout funnels for products, campaigns, landing pages, and offers.

* Unlimited sales funnels
* Shortcode-based funnel embedding
* Works with Elementor, Divi, Bricks, Gutenberg, and other shortcode-compatible page builders
* Multiple checkout templates
* Funnel-level product configuration
* Custom pricing, quantity, badges, and product images
* Product upsells
* Funnel analytics with views, orders, and conversion rates

**One-Page Checkout**

Create a focused checkout experience with the customer information and order details you need.

* Fast, distraction-free single-page checkout
* Cash on Delivery (COD) checkout built in
* Customizable checkout fields
* Name, phone, address, district, notes, and additional fields
* District and region selection
* Support for 65+ countries
* Mobile-first responsive checkout
* Trust badges and security icons
* Shipping and delivery configuration

**Product Management**

Manage your complete product catalog directly from WordPress.

* Unlimited products
* Product variations
* Custom product attributes such as size, color, and material
* Product image galleries with zoom
* Product categories and tags
* Regular and sale prices
* Stock management
* SKU support
* Weight and dimensions per product and variation
* Short and full product descriptions
* Variable products with attribute-based variation selectors

**Order Management**

Manage your complete order lifecycle from one dashboard.

* Full order lifecycle management
* Custom order statuses
* Detailed order information
* Customer information and order items
* Shipping information
* Order package weight and dimensions, calculated from cart items
* Order notes, addable from the quick view
* Inline order status updates
* CSV order export
* Printable invoices
* Net sales and revenue breakdown by order status
* Fraud event telemetry

**Customer Management**

Keep customer records and purchase history organized.

* Customer database
* Customer order history
* Customer detail view
* Customer purchase analytics
* Lifetime value tracking

**Analytics Dashboard**

Understand your store and funnel performance with built-in analytics.

* Revenue overview
* Today, 7-day, 30-day, 90-day, and all-time reporting
* Order volume
* Customer metrics
* Conversion metrics
* Funnel performance analytics
* Product sales ranking
* Exportable reports

**Product Shortcodes**

Place products and individual product elements anywhere on your WordPress website.

* `[cartvai_product]` — full product layout
* `[cartvai_products]` — responsive product grid
* `[cartvai_product_gallery]` — product image gallery
* `[cartvai_product_title]` — product title
* `[cartvai_product_price]` — product price and sale badge
* `[cartvai_product_variations]` — product variation selector
* `[cartvai_product_actions]` — Add to Cart and Buy Now buttons
* `[cartvai_product_trust]` — trust badges
* `[cartvai_product_description]` — full product description
* And additional individual product element shortcodes

**More Features**

* Google Tag Manager integration
* Meta Pixel integration
* Image optimization
* REST API
* Sitemap support
* Mini cart widget
* CSV import and export
* Google Tag Manager noscript support
* Translation ready with `.pot` file
* Developer hooks and filters API
* Clean database architecture
* No external services required for core ecommerce functionality
* No SaaS subscription required

=== Perfect For ===

Cartvai can be used for a wide range of ecommerce and online selling workflows.

* **COD businesses** — Cash on Delivery stores in Bangladesh, Pakistan, India, Egypt, Nigeria, and other markets
* **Single product sellers** — Focused product pages with dedicated checkout
* **Digital product creators** — Courses, ebooks, templates, and downloads
* **Physical product stores** — Clothing, accessories, gadgets, handmade products, and more
* **Agencies** — Build and manage sales funnels for multiple clients
* **Facebook & Google Ads** — Create focused landing page checkout experiences for advertising traffic
* **Affiliate marketers** — Product launch funnels and offer pages
* **Local businesses** — Restaurants, services, and local delivery businesses
* **Dropshippers** — Lightweight ecommerce stores without WooCommerce
* **Product launches** — Campaigns, limited-time offers, and pre-order funnels
* **Businesses looking for a simpler ecommerce solution**

=== Works With ===

Cartvai uses WordPress shortcodes, making it compatible with popular page builders and WordPress editors.

* Elementor
* Divi Builder
* Bricks Builder
* Oxygen Builder
* WPBakery
* Gutenberg / Block Editor
* Any shortcode-compatible page builder

=== Built to WordPress Standards ===

Cartvai is developed with WordPress security and coding practices in mind.

* Follows WordPress Plugin Review guidelines
* Proper output escaping
* Nonce verification on forms and AJAX requests
* Capability checks on admin actions
* Input sanitization
* No external API calls required for core functionality
* GPL-2.0-or-later licensed

== Privacy Policy ==

ParcelVai Integration
When ParcelVai is connected, Cartvai may send customer phone numbers to the ParcelVai service to retrieve available courier delivery history and risk insights. This information is transmitted securely and is used only to provide the delivery intelligence features requested by the site administrator. ParcelVai may process this information according to its Privacy Policy and Terms of Service.

Site administrators should review ParcelVai's privacy and data-retention practices before enabling the integration.

== Installation ==

=== Automatic Installation ===

1. Go to **Plugins → Add New** in your WordPress dashboard.
2. Search for **Cartvai**.
3. Click **Install Now**, then **Activate**.

=== Manual Installation ===

1. Download the Cartvai plugin ZIP file.
2. Go to **Plugins → Add New → Upload Plugin**.
3. Upload the ZIP file.
4. Click **Install Now**, then **Activate**.

=== Getting Started ===

1. Open **Cartvai** from the WordPress admin menu.
2. Go to **Products** and create your first product.
3. Add the product title, images, price, stock, and variations if needed.
4. Go to **Funnels** and create a new sales funnel.
5. Add your products and configure the funnel.
6. Copy the generated shortcode, for example `[cartvai id="1"]`.
7. Paste the shortcode into any WordPress page or landing page.
8. Go to **Settings** and configure your store name, currency, checkout fields, shipping, and payment options.
9. Start selling.

== Shortcodes ==

Cartvai includes a complete product shortcode system that works with WordPress pages, posts, widgets, and compatible page builders.

=== Full Product Layout ===

`[cartvai_product]` — renders the complete product layout including gallery, title, price, variations, actions, trust badges, and description.

`[cartvai_product id="123"]` — render a specific product by post ID.

`[cartvai_product slug="my-product"]` — render a product by slug.

=== Product Grid ===

`[cartvai_products]` — renders a responsive product grid.

`[cartvai_products category="featured" limit="6" columns="3"]`

`[cartvai_products ids="12,34,56" columns="3"]`

Attributes:

* `category`
* `categories`
* `ids`
* `limit`
* `columns` (1–6)
* `orderby` (date/title/price/stock/rand/menu_order)
* `order` (ASC/DESC)
* `offset`
* `class`

=== Individual Product Element Shortcodes ===

| Shortcode | Element |
|---|---|
| `[cartvai_product_breadcrumb]` | Breadcrumb navigation |
| `[cartvai_product_gallery]` | Product image gallery with zoom |
| `[cartvai_product_title]` | Product title |
| `[cartvai_product_price]` | Product price and sale badge |
| `[cartvai_product_short_description]` | Short product description |
| `[cartvai_product_variations]` | Product variation selector |
| `[cartvai_product_stock]` | Stock status |
| `[cartvai_product_sku]` | Product SKU |
| `[cartvai_product_quantity]` | Quantity input |
| `[cartvai_product_actions]` | Add to Cart and Buy Now |
| `[cartvai_product_add_to_cart]` | Add to Cart only |
| `[cartvai_product_buy_now]` | Buy Now only |
| `[cartvai_product_trust]` | Trust badges |
| `[cartvai_product_description]` | Full product description |

All element shortcodes support `id`, `slug`, `suffix`, and `respect_settings` attributes.

=== Product Scope Wrapper ===

`[cartvai_product_wrap id="123"]` … `[/cartvai_product_wrap]`

Wraps child shortcodes in a product scope. Child elements automatically resolve to the wrapped product without requiring an explicit `id` or `slug`.

=== Developer API ===

Developers can register custom product elements for addons and Pro extensions:

`CARTVAI_Product_Elements::register( 'my_element', [ 'callback' => [ 'My_Class', 'render' ], 'shortcode' => true ] );`

Available hooks include:

* `cartvai_loaded`
* `cartvai_register_product_elements`
* `cartvai_product_element_before_render`
* `cartvai_product_element_after_render`
* `cartvai_product_element_output`

== Frequently Asked Questions ==

= Does Cartvai work without WooCommerce? =

Yes. Cartvai is a standalone ecommerce plugin and does not require WooCommerce or another ecommerce plugin.

= Can I use Cartvai as a WooCommerce alternative? =

Yes. Cartvai provides product management, checkout, sales funnels, order management, customer records, shipping, and analytics without requiring WooCommerce.

= Can I create sales funnels without WooCommerce? =

Yes. Cartvai includes a built-in sales funnel system that works independently of WooCommerce.

= Can I create a one-page checkout in WordPress? =

Yes. Cartvai includes a mobile-friendly one-page checkout with customizable customer fields, products, quantities, shipping, and order information.

= Does Cartvai support Cash on Delivery? =

Yes. Cash on Delivery (COD) is built into Cartvai and is particularly useful for ecommerce businesses in markets where COD is commonly used.

= Does Cartvai support product variations? =

Yes. You can create variable products with attributes such as size, color, and material, with individual prices and stock levels for variations.

= Can I use Cartvai with Elementor or Divi? =

Yes. Cartvai uses shortcodes that work with Elementor, Divi, Bricks, Gutenberg, and other shortcode-compatible page builders.

= Can I create unlimited products and sales funnels? =

Yes. Cartvai does not impose limits on the number of products, categories, or sales funnels you can create.

= Does Cartvai include order management? =

Yes. Orders are stored in your WordPress database with customer details, line items, shipping information, order notes, and custom statuses. You can also print invoices and export orders to CSV.

= Does Cartvai include analytics? =

Yes. The built-in analytics dashboard provides revenue, order volume, conversion rates, funnel performance, and product sales data across multiple reporting periods.

= Does Cartvai support multiple countries? =

Yes. Cartvai includes district and region data for 65+ countries, including Bangladesh, Pakistan, India, Nepal, Sri Lanka, Egypt, Nigeria, UAE, Saudi Arabia, and many more.

= Is Cartvai translation ready? =

Yes. Cartvai includes a `.pot` file and is compatible with WordPress translation workflows. The text domain is `cartvai-ecommerce`.

= Does Cartvai support Google Tag Manager or Meta Pixel? =

Yes. Cartvai includes built-in Google Tag Manager and Meta Pixel integration with event tracking.

= Is Cartvai GDPR friendly? =

Cartvai stores customer data in your own WordPress database. Core customer data is not sent to external servers.

= Can I export orders? =

Yes. Orders can be exported to CSV from the Orders screen.

= Can I migrate from WooCommerce to Cartvai? =

Yes. Cartvai includes WooCommerce migration tools for importing products, orders, and customers.

= How do I get support? =

Visit [cartvai.com](https://cartvai.com) for documentation and support.

== Screenshots ==

1. **Store Dashboard** — Get a complete overview of sales, orders, customers, revenue, and fulfillment performance at a glance.
2. **Checkout Funnels** — Create and manage dedicated multi-product checkout funnels designed for streamlined sales.
3. **Funnel Settings** — Configure funnel details, product selection, checkout behavior, appearance, and currency settings.
4. **Funnel Products** — Select products for your funnel and easily manage the products available at checkout.
5. **Product Display Settings** — Customize product names, quantities, badges, promotions, and display options for each funnel.
6. **Checkout Fields** — Choose required and optional customer fields and customize labels and placeholder text.
7. **Shipping Settings** — Configure shipping rules, delivery methods, rate matching, and shipping zones for each funnel.
8. **Orders Management** — Manage orders, track fulfillment statuses, filter purchases, and monitor your store’s order activity.
9. **Order Quick View** — Quickly review customer details, purchased products, order totals, shipping, and fulfillment status.
10. **Order Details** — View complete order information, customer data, purchased items, fulfillment status, and attribution details.
11. **Edit Order** — Update customer information, products, quantities, pricing, shipping charges, and order details from one screen.
12. **Customers Directory** — Manage customer profiles, purchase history, repeat orders, lifetime value, and contact information.
13. **Analytics & Reports** — Analyze revenue, orders, conversion metrics, delivery performance, and sales trends over time.
14. **Store Settings** — Configure currency, pricing, store locale, checkout fields, shipping, payments, tracking, and other settings.
15. **WooCommerce Migration** — Migrate WooCommerce products, orders, and customers to Cartvai with built-in migration tools.
16. **Export & Import** — Export products and funnels or import Cartvai data using JSON and CSV files for easy data management.

== Changelog ==

= 2.7.3 = (02 Oct, 2026)

* New: Courier Report (Bangladesh) — shipment tracking dashboard with one-click ParcelVai S2S connection, phone-based tracking, cached lookups, and per-order tracking cards in the orders list and detail view.
* New: Courier provider abstraction — pluggable driver system mirroring SMS gateway pattern, with built-in Cartvai provider and ParcelVai integration.
* New: Courier admin screen — settings, connection management, test tracking, plan selection, and automated tracking toggle.
* New: Orders integration — courier column, quick view tracking card, edit-order phone badge, and bulk action hook.
* New: Courier database tables — `cartvai_courier_settings`, `cartvai_courier_tracking_log`, `cartvai_courier_cache` with automatic activation setup.
* Fix: phpcs PreparedSQL compliance across order queries — all dynamic clauses now use prepared placeholders with bound parameters.
* Fix: OPcache health check — improved interned strings buffer reporting and hit rate display.
* Fix: Orders bulk actions — added `cartvai_orders_handle_bulk_action` filter for extensible bulk operations.
* Fix: MySQL strict mode datetime handling in order metrics aggregation.
* Fix: AUTO_INCREMENT initialization for orders table uses prepared statements.
* Update: Translation template (POT) regenerated.

= 2.7.2 =

* Fix: MySQL strict mode datetime comparison in order queries — fixed WHERE clauses for date filtering.
* Fix: Free version dark mode CSS — corrected token references and component overrides.
* Fix: Tools page — resolved import UI validation and export CSV formatting.
* Fix: Windows temp upload path handling — cross-platform file path normalization.
* Fix: Order sequence and status filter chips in orders admin.
* Update: Export/Import CSS and JS — improved modal styling and progress feedback.
* Update: Admin CSS — tokens, badges, forms, layout, modals, pagination, tables components refined.
* Update: Translation template (POT) updated.

= 2.7.1 =

* Fix: Payment transaction upsert — inline SQL literal in `$wpdb->prepare()` to satisfy WordPress coding standards (PreparedSQL.NotPrepared).
* New: Order sequence management with `CARTVAI_Order_Sequence` class for atomic, concurrency-safe order number generation.
* New: REST API endpoint `wp-json/cartvai/v1/orders/<order_number>` with HMAC-SHA256 signature verification and webhook-ready JSON payload.
* New: Order `get_by_number()` now hydrates items and notes in a single call.
* New: Audio notification assets (`alhamdulillah.mp3`, `subhanallah.mp3`) for order events.
* Update: Orders admin — pagination, bulk actions, and status filter chips refined; sticky header on scroll.
* Update: CSS — forms, badges, layout, and pagination components adjusted for consistency.
* Update: Translation template (POT) regenerated with 6,666 new/updated strings.
* Update: Security — expanded nonce validation and capability checks in REST API and admin actions.

= 2.7.0 =

* New: Complete admin UI redesign with Tailwind CSS — modern, responsive interface across dashboard, analytics, customers, orders, funnels, products, settings, and tools screens.
* New: Dark mode support with system preference detection and manual toggle.
* New: Payment gateway framework with bKash Manual, Nagad Manual, and Cash on Delivery gateways; extensible interface for adding more.
* New: Attribution tracking system — captures UTM parameters, fbclid, referrer, device type, and session data for orders.
* New: Admin toast notification system for instant save/action feedback without page reload.
* New: AJAX settings save with automatic non-JS fallback.
* New: Data Cleanup tool — bulk delete old/trashed orders with InnoDB safety checks, concurrency lock, resumable cursor, and imported customer placeholder cleanup.
* New: WooCommerce import tools — batch-import products, orders (HPOS/custom order table support), and customers with "check for new items" incremental sync.
* Fix: Funnel default selection now honors configured `default_selected` product/variation instead of always falling back to first item.
* Fix: Order quick view shows device, IP address, fingerprint fraud telemetry, with IP-blocked indicator.
* Fix: Cart and funnel section titles now guard against missing/non-array settings and fall back gracefully.
* Fix: Bulk packing slip printing opens preview in new tab so Close button works reliably.
* Tweak: Removed internal sitemap module.
* Dev: Hardened input sanitization and output escaping across orders, customers, tools, print, and product meta modules; audited all DB queries against WordPress coding standards.
* Dev: CSS modularized into tokens/components structure with Tailwind utility classes; minified assets included.

= 2.6.0 =

* New: Refreshed admin experience with a modern SaaS-style interface across the dashboard, analytics, customers, orders and tools screens.
* New: Settings save over AJAX with instant toast notifications — no full page reload — and an automatic fallback to the classic form flow when JavaScript is unavailable.
* New: Data Cleanup tool — bulk delete old or trashed orders in atomic, batched transactions, with an InnoDB safety check, a concurrency lock that prevents overlapping runs, a resumable progress cursor, a projected affected-customers preview, and automatic cleanup of imported customer placeholder rows.
* New: WooCommerce import tools — batch-import products, orders (with full HPOS / custom order table support) and customers, with "check for new items" scanning so entries created in WooCommerce after the initial import can be synced on demand.
* New: Admin-wide toast notification system for consistent save and action feedback.
* Fix: Bulk packing slip printing opens the preview in a new tab again, so the Close button on the print preview works reliably.
* Tweak: Removed the internal sitemap module.
* Dev: Hardened input sanitization and output escaping across the orders, customers, tools, print and product meta modules, and audited all database queries against WordPress coding standards and Plugin Check.

= 2.5.0 =

* New: Product shipping data — set Weight (kg) and Length × Width × Height (cm) on products and variations, in a new Shipping tab in the product data panel and a Shipping & Dimensions card on the product form.
* New: Order package weight and dimensions are calculated automatically at checkout from the cart items, using a total weight plus a non-additive bounding envelope for dimensions.
* New: Package weight and dimensions are stored per order and editable from the new Package & Shipping card on the create and edit order screens, so you can override the calculated value.
* New: Every package change is written to the order timeline with the old and new values, and fires `cartvai_before_order_package_updated` and `cartvai_order_package_updated`.
* New: Package weight and dimensions print on invoices and packing slips, and appear as a chip in the order view header.
* New: WooCommerce products and variations supply weight and dimensions automatically, converted from the store's units (g, kg, oz, lbs to kg and mm, cm, m, in, yd to cm). Read-only — Cartvai never writes back to WooCommerce product meta. Variation values override the parent product.
* New: Add internal order notes directly from the orders quick view without leaving the page, attributed to the signed-in staff member.
* New: `cartvai_user_can_view_order_notes` filter controls note visibility per user and order.
* New: Staff assignment card and order view hook for assigning orders to team members.
* New: Net Sales figure on the Orders KPI cards, excluding cancelled, returned, fraud and imported orders, with a revenue breakdown for delivered, cancelled and returned.
* New: Order rows expose their ID for row-level scripting, and the Date column shows relative time for orders from the last 24 hours.
* Fix: Status tab counts and KPI cards now respect the active search, funnel and date filters instead of always reporting all-time totals; the label switches to "Filtered Orders" when a filter is applied.
* Fix: KPI card links preserve the active search, funnel and date filters instead of dropping them.
* Fix: Today's figures use site local time rather than UTC, so the Today card and the day boundary are correct outside GMT.
* Fix: Printing an invoice or packing slip no longer fails when the print URL arrives with HTML-escaped query arguments; both escaped and unescaped parameters are accepted.
* Fix: Print links now carry an explicit nonce argument rather than the WordPress-generated `_wpnonce`, so they stay valid when the query string is rewritten.
* Fix: The order number is a normal link again and quick view is triggered from its own button, so opening an order in a new tab no longer opens the modal.
* Tweak: The Date column moved next to the order number for easier scanning.
* Dev: Added the `cartvai_orders_query_args` filter and the `cartvai_orders_filter_row_after_funnel` action for extending the orders list.
* Dev: WordPress coding standards annotations for direct database queries; database version 1.9.3.

= 2.4.0 =

* New: Fine-grained roles and capabilities across the admin — products, categories, attributes, funnels, orders, customers, settings and shipping can be granted independently instead of requiring full Administrator rights.
* New: Added customer privacy capabilities — `cartvai_view_customers`, `cartvai_view_customer_phone`, `cartvai_view_customer_address`, `cartvai_view_customer_ltv`, `cartvai_view_financials`, `cartvai_view_internal_notes` and `cartvai_edit_customers` — assigned to Shop Manager and Editor as appropriate.
* New: Capability filters let you override the required capability for the panel menu, every submenu, the Products menu, attribute submenus, the orders count badge and settings saves.
* New: Customer data is masked by capability — phone numbers, addresses, lifetime value, order counts and financial totals render masked for users without the matching view capability, and in full for permitted users.
* New: Admin actions, row buttons, bulk actions and empty-state CTAs are hidden when the current user lacks the matching capability, so restricted users only see what they can do.
* Fix: Checkout order creation now self-heals on failure with three recovery paths — a duplicate order number retry, automatic schema migration on an unknown column error, and table recreation when the orders table is missing.
* Fix: Order `source` and `user_agent` columns are widened to `text` to prevent silent truncation under MySQL strict mode; new `variation_id`, `thank_you_token`, `attribution` and `deleted_at` columns are added with an index on `thank_you_token` (DB version 1.9.2).
* Fix: Device fingerprints are truncated to the 64-character column limit instead of failing the order insert.
* Fix: The Edit button in the orders quick view is hidden for users who cannot edit the order, and create, edit and delete handlers now reject unauthorized requests.
* Fix: Products, categories, attributes, settings and shipping handlers accept the matching capability instead of Administrator only.
* Tweak: The empty Integrations admin page has been removed from the menu.
* Tweak: Direct link to Missing Orders in the Orders header CTA when Cartvai Pro is active.
* Tweak: Database and order error logging is now only written when `WP_DEBUG` is enabled.
* Tweak: Corrected the text domain on the hidden-address notice in the order view.
* Tweak: Additional output escaping in the Tools page WooCommerce migration cards.
* Dev: WordPress coding standards annotations for direct database queries; regenerated translation template (POT).

= 2.3.0 =

* Fix: Mini Cart no longer renders inside the page builder editor or preview (Elementor, Divi, Beaver Builder, Bricks, Oxygen), so the sidebar overlay and floating button no longer break builder layouts.
* Fix: Mini Cart is hidden in the WordPress admin, Customizer preview, and thank you/order confirmation pages.
* Fix: Mini Cart styles rebuilt — spacing, sizing, quantity controls and the mobile drawer now render consistently across all shop and funnel themes.
* Fix: Shop page assets are no longer skipped when the product assets helper is unavailable, restoring product variations and load-more on the shop page.
* Fix: Builder detection extended to Divi, Beaver Builder, Bricks, Oxygen and Elementor preview query params, so frontend assets stay out of builder contexts.
* Fix: Funnel product counts no longer include deleted or unpublished products, and disabled variations are skipped in funnel products.
* Improved: Tools page WooCommerce migration cards now show live product, order and customer totals with an "All Synced" state.

= 2.2.0 =

* Performance: assets load only where needed — generic pages now load zero Cartvai CSS and JS.
* Performance: Mini Cart decoupled into its own lightweight CSS and JS files; no more sitewide checkout scripts.
* Performance: native deferred script loading (WordPress 6.3+) with fallbacks, and minified production assets for all core files.
* Performance: smart discount caching with 12-hour versioned transients and automatic invalidation.
* New: full funnel design controls — section titles, inputs, buttons, cards, payment and shipping boxes, wrappers — with one-click "Reset to Defaults".
* Improved: dark mode contrast fixes and adaptive deal banners that blend with your palette.
* Mobile: fixed widths and spacing across  Split, Compact (pro) and Default templates; touch-friendly quantity and variation controls.
* Compatibility: block theme (FSE) headers and footers render natively on standalone checkout and thank-you pages; classic theme support retained.
* Fix: multiple product discounts — shipping, free-shipping and tier discounts now stack accurately.

= 2.1.0 =

* New: Packing slips — print a packing slip for a single order or in bulk from the orders list, with a selectable template (Basic included).
* New: Packing slips display the courier name and tracking/consignment ID when an order has a courier booking.
* New: Tools page redesigned with sidebar navigation; Export/Import and WooCommerce Migration are now tabs on the Tools page.
* Tweak: Unified admin design system — blue primary with violet secondary accents across dashboards, KPI tiles, buttons and charts.
* Tweak: Order status colors refined — Processing is now violet and Shipped is blue for clearer distinction.
* Tweak: Mini cart sidebar toggle is enabled by default for new installs.
* Fix: Fatal error in the order quick-view when loading variation data.
* Dev: WordPress coding standards and Plugin Check fixes; regenerated translation template (POT).

= 2.0.0 =

* Full WordPress Plugin Review compliance pass.
* Proper output escaping across plugin output.
* Nonce verification and capability checks across admin actions.
* PHPCBF auto-format with 66,000+ coding style fixes across 150 files.
* Added `phpcs:ignore` annotation where required for the standalone invoice template.
* Version bump to 2.0.0 reflecting the major compliance and quality milestone.

= 1.1.0 =

* New extensible Product Elements API (`CARTVAI_Product_Elements`) with shared registry for core and third-party elements.
* Added `[cartvai_products]` shortcode with category filtering, ID selection, columns, ordering, limits, and offsets.
* Added `[cartvai_product]` full product layout shortcode.
* Added `[cartvai_product_wrap]` product scope wrapper.
* Added individual product element shortcodes.
* Added third-party product element registration through the Product Elements API.
* Product resolution supports explicit ID, slug, and current-page context.
* Added DOM ID collision prevention through the `suffix` attribute.
* Added render tracking for conditional asset loading.
* Improved variation listing with paged queries.
* Extended HTML whitelist with table, media, form, and interactive elements.
* Fixed stored XSS vulnerability in product attribute editing.
* Fixed shipping district JavaScript localization.
* Added ABSPATH guards to template files.

= 1.0.1 =

* Security hardening across admin handlers, AJAX endpoints, and templates.
* Fixed admin asset loading on Cartvai submenu pages.
* Database migrations are now version-gated.
* Added Chart.js license attribution.

= 1.0.0 =

* Initial public release.
* Standalone sales funnel system with no WooCommerce dependency.
* Product management with categories.
* Unlimited sales funnels.
* One-page checkout with Cash on Delivery.
* Customer and order management.
* Sales analytics dashboard.
* CSV export.
* Shortcode support.
* Mobile-friendly checkout.
* Developer hooks and filters.

== Upgrade Notice ==

= 2.7.3 = (02 Oct, 2026)

Courier Report (Bangladesh) with ParcelVai integration, courier provider abstraction, orders tracking integration, new database tables, phpcs PreparedSQL fixes, OPcache health improvements, bulk action hooks, and translation updates.

= 2.7.2 = (01 Oct, 2026)

MySQL strict mode datetime fixes, dark mode corrections, tools import/export fixes, Windows path handling, admin CSS refinements, and translation updates.

= 2.7.1 = (01 Oct, 2026)

Payment transaction coding standards fix, order sequence concurrency safety, REST API endpoint with HMAC verification, order hydration, audio notifications, orders admin UX improvements, and translation updates.

= 2.7.0 = (01 Oct, 2026)

Complete admin redesign with Tailwind CSS, dark mode, new payment gateways (bKash, Nagad, COD), attribution tracking, and AJAX settings save. Runs automatic database updates. Existing data is preserved.

= 2.6.0 =

Admin UI redesign, AJAX settings save, Data Cleanup tool, WooCommerce import tools, funnel default selection fix, fraud telemetry, section title fallbacks, packing slip fix. Runs automatic database updates. Existing data is preserved.

= 2.5.0 =

Adds product shipping data and order package weight and dimensions. Runs an automatic database migration (DB version 1.9.3) on first load. Existing orders and products are unaffected.

= 2.4.0 =

Adds the fine-grained roles and capabilities system and customer data masking. Runs an automatic database migration (DB version 1.9.2) on first load. Existing orders and products are unaffected.

= 2.0.0 =

Major quality and compliance release. Safe to upgrade — no database schema changes. All features remain backward compatible.

= 1.0.0 =

Initial public release.

== License ==

Cartvai – Ecommerce Checkout, Funnel Builder & Shop Manager is licensed under GPL-2.0-or-later.

Copyright (C) Cartvai. 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 2 of the License, or any later version.