=== Asuka Product Designer ===
Contributors: asukadev
Tags: product customizer, woocommerce, product designer, 3d configurator, personalization
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 1.2.46
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Let customers personalize products with live 2D and 3D previews, then carry their design cleanly through WooCommerce cart and orders.

== Description ==

= Personalized products without the proof-email loop =

Selling customized products should not mean collecting unclear instructions, rebuilding customer files by hand, or sending proof after proof before an order can move forward.

Asuka Product Designer gives shoppers a visual editor directly on the storefront. They personalize the product, see every change before checkout, and add the configured result to the WooCommerce cart. The preview, selected options, pricing data, and design reference remain connected to the order, giving the merchant a consistent workflow from first edit to production.

= Try the complete WordPress experience =

* [Open the live WooCommerce product demo](https://designer.asukadev.com/produit/produit-simple/) and customize a real product from the storefront.
* [Request a private WordPress administration sandbox](https://designer.asukadev.com/backend-demo/) to explore product setup, shared assets, templates, themes, translations, imports, and order tools in a temporary 24-hour workspace.
* [Visit the product and demo hub](https://designer.asukadev.com/) for additional 2D, 3D, integration, and production-workflow examples.

= Documentation, plans, and support =

* [Read the WordPress and WooCommerce guide](https://portal.asukadev.com/documentation/wordpress) for installation, configuration, storefront placement, and troubleshooting.
* [Compare Free, Starter, Pro, and Agency plans](https://portal.asukadev.com/pricing), including the capabilities and limits of each edition.
* [Contact the WordPress support center](https://portal.asukadev.com/contact?platform=wordpress) for product, setup, billing, or technical questions.
* [Review the public changelog](https://portal.asukadev.com/changelog) before installing or updating a release.

= From setup to checkout in five steps =

1. Install and activate Asuka Product Designer.
2. Create a reusable custom-product configuration in WordPress.
3. Add 2D or 3D views, then choose the tools, assets, and options customers can use.
4. Connect the configuration to a WooCommerce product or to individual product variations.
5. Let customers personalize, preview, add to cart, and return to edit the same customization when needed.

= Give customers a visual product editor =

* Add and edit text with fonts, colors, alignment, transforms, and curved-text controls.
* Upload customer artwork and place reusable designs, images, and vector shapes.
* Work with layers, ordering, locking, duplication, history, undo, and redo.
* Offer product colors, components, materials, and nested variation choices.
* Present multiple product views in responsive 2D or interactive 3D.
* Rotate and zoom 3D products while keeping configured artwork and part variations synchronized.
* Keep the designer usable across desktop, tablet, mobile, and fullscreen layouts.

= Build once, reuse across your catalog =

* Create reusable custom products instead of rebuilding the same configuration on every WooCommerce item.
* Maintain shared libraries for designs, elements, shapes, fonts, colors, and printing methods.
* Reuse product templates and visual themes for a consistent storefront experience.
* Assign one default configuration to a product and override it for individual WooCommerce variations.
* Carry previews, customization metadata, price information, and design references into cart and order records.
* Export and import portable product packages with their views, media, templates, and themes.
* Translate the storefront and administration with the managed translation workspace or standard gettext tools such as Loco Translate.

= 2D and 3D in one workflow =

Use flat artwork and layered product views, interactive GLB/glTF products, or both inside the same catalog. The Fabric.js and Babylon.js renderers load only when the active view needs them, so a product does not have to choose between a complete 2D editor and a real 3D configurator.

= Free core, optional advanced workflows =

The WordPress.org plugin works without a license and includes the core 2D and 3D product-customization experience.

An optional, separately installed Asuka Product Designer Pro add-on extends the same editor with advanced modules such as spatial assembly, product parameters, drawing areas, fixed markers, advanced pricing rules, Studio tools, GLB optimization, and eligible server-side production exports. Premium implementation files are not included in this WordPress.org package.

= Suitable for many customizable products =

Use Asuka Product Designer for apparel, footwear, accessories, promotional products, stationery, signage, packaging, home decor, furniture, configurable components, and other products that benefit from visual choices before checkout.

WooCommerce is optional. The designer can also be embedded with the supplied block, shortcode, or integration APIs.

== Installation ==

1. Upload the plugin through Plugins > Add New, or install it from WordPress.org.
2. Activate Asuka Product Designer.
3. Open Asuka Designer > Custom products and create a product configuration.
4. Add one or more 2D or 3D views.
5. Open a WooCommerce product and assign the configuration to the product or to individual variations.
6. Preview the storefront and complete a test cart and checkout journey.

WooCommerce is optional. The designer can also be embedded with the supplied block, shortcode, or integration APIs.

== Frequently Asked Questions ==

= Does the free plugin require a license? =

No. The WordPress.org edition provides its core 2D and 3D customization features without a license.

= How is the optional Pro add-on installed and updated? =

Customers with an eligible Pro or Agency subscription sign in to `portal.asukadev.com`, open their license, and download the separate Pro ZIP. Install it once through Plugins > Add Plugin > Upload Plugin. Future Pro releases use the native WordPress update screen and a short-lived private package link while the license remains eligible.

= Is Pro code hidden inside this plugin? =

No. Advanced modules are distributed in a separate add-on. The public plugin only exposes documented extension points that the add-on can use when it is installed.

= Can a configuration be assigned per WooCommerce variation? =

Yes. A product can use one default configuration and each WooCommerce variation can override it.

= Can configurations move between platforms? =

Yes. Portable product packages intentionally exclude WooCommerce-specific IDs, carts, orders, customers, licenses, and credentials.

= Does the plugin support standard translation tools? =

Yes. All WordPress strings use the `asuka-product-designer` text domain and remain compatible with gettext tools such as Loco Translate. The plugin also includes a managed translation workspace for designer catalog strings.

== External services ==

The core editor runs in the browser and does not require an external Asuka service. The following services are contacted only when the related optional feature is configured and used:

* Asuka license service (`https://api.asukadev.com/v1/licenses/resolve`): contacted only when an administrator has entered an optional commercial license key and the plugin needs to resolve its current entitlement. It sends the configured license key, site hostname, generated installation identifier, plugin version, product identifier, audience, and WordPress channel. Service terms: `https://designer.asukadev.com/terms-of-service/`. Privacy policy: `https://designer.asukadev.com/privacy-policy/`.
* Asuka Support Center (`https://api.asukadev.com/v1/support/wordpress/access`): contacted only when an authorized administrator explicitly clicks the button to open licensed support. It sends a short-lived signed license token together with the site hostname, generated installation identifier, plugin version, product identifier, audience, and WordPress channel. The service returns a short-lived access URL for `https://portal.asukadev.com`. Service terms: `https://designer.asukadev.com/terms-of-service/`. Privacy policy: `https://designer.asukadev.com/privacy-policy/`.
* Asuka AI and server-side export services (`https://api.asukadev.com`): contacted only when an eligible user explicitly requests an AI operation or a server-rendered export. The request can include the signed license token, selected operation, and the product or design payload required to complete that operation. Service terms: `https://designer.asukadev.com/terms-of-service/`. Privacy policy: `https://designer.asukadev.com/privacy-policy/`.
* Google Fonts catalog (`https://www.googleapis.com/webfonts/v1/webfonts`): queried only when an administrator has supplied a Google Fonts API key and requests the live font catalog. The configured API key, alphabetical sort option, and WOFF2 capability filter are sent to Google. Terms: `https://policies.google.com/terms`. Privacy policy: `https://policies.google.com/privacy`.
* Google Fonts styles and font files (`https://fonts.googleapis.com` and `https://fonts.gstatic.com`): loaded only when a Google font selected by an administrator is displayed. The visitor IP address and standard browser request headers may be sent to Google. Terms: `https://policies.google.com/terms`. Privacy policy: `https://policies.google.com/privacy`.
* Pixabay (`https://pixabay.com/api/`): queried only after an administrator supplies an API key and a user opens Pixabay search. Search terms and the configured key are sent to Pixabay. Terms: `https://pixabay.com/service/terms/`. Privacy policy: `https://pixabay.com/service/privacy/`.
* Pexels (`https://api.pexels.com/`): queried only after an administrator supplies an API key and a user opens Pexels search. Search terms and the configured key are sent to Pexels. Terms: `https://www.pexels.com/terms-of-service/`. Privacy policy: `https://www.pexels.com/privacy-policy/`.
* Facebook: contacted only when an administrator configures the Facebook image integration and a user opens it. The data sent depends on the Facebook application configuration. Terms: `https://www.facebook.com/terms.php`. Privacy policy: `https://www.facebook.com/privacy/policy/`.

Administrators can leave every optional integration unconfigured.

== Source code ==

The human-readable TypeScript, TSX, and CSS source for the bundled AsukaDesigner WordPress.org runtime is included under `source/asuka-designer/`.

To rebuild the browser files:

1. Install Node.js 20 or newer.
2. Run `npm ci` inside `source/asuka-designer/`.
3. Run `npm run build`.
4. The rebuilt files are written to `dist/product-wordpress/`.

The build uses Vite, TypeScript, Preact, Tailwind CSS, Fabric.js, and Babylon.js. Third-party licenses are included in `assets/vendor/asuka-designer/THIRD_PARTY_NOTICES.md`.

== Screenshots ==

1. Reusable custom-product workspace in WordPress administration.
2. Responsive 2D product customization on a WooCommerce product.
3. Interactive 3D product configuration and part variations.
4. Reusable template and theme editors.
5. Portable product import and export.

== Changelog ==

= 1.2.46 =

* Kept the fullscreen designer within the browser viewport on desktop, mobile, and landscape screens.
* Kept the complete workspace and bottom module navigation reachable inside the fullscreen dialog.

= 1.2.45 =

* Synchronized the WordPress product editor with the current filtered global design, shape, font, color, and printing-method libraries.
* Prevented removed or replaced catalog assets from surviving in existing custom products as stale administration snapshots.

= 1.2.44 =

* Restored the Pricing Rules entry in the WordPress administration menu.
* Added a clear premium access state when the commercial pricing editor is unavailable.
* Hardened storefront REST authorization for product configurations and bindings.
* Moved imported package media into a dedicated plugin uploads directory.
* Removed the automatic external request from the administration changelog.
* Documented every optional external service and moved worksheet code into enqueued assets.

= 1.2.43 =

* Updated the embedded AsukaDesigner runtime to 1.2.35.
* Fixed projected 3D artwork after product material or color changes.
* Fixed incomplete projected artwork after deleting and re-adding a cached image.

= 1.2.42 =

* Updated the embedded AsukaDesigner runtime to 1.2.34.
* Fixed Layers-module locking so locked objects remain non-interactive through history, view, and saved-state restoration.
* Restored each layer's previous interaction behavior when it is unlocked.

= 1.2.41 =

* Updated the embedded AsukaDesigner runtime to 1.2.33.
* Added consistent layer entries for shapes and reusable designs.
* Improved normal and curved text sizing while preserving typography and transforms during conversion.

= 1.2.40 =

* Added a dedicated Support Center for eligible paid plans.
* Added secure single-use portal access without exposing license credentials.
* Added support shortcuts throughout the WordPress administration.

= 1.2.39 =

* Replaced short global constants with the globally unique `ASUKA_PRODUCT_DESIGNER_*` prefix.
* Updated bootstrap, uninstall, runtime, validation, and optional Pro compatibility references consistently.
* Cleared the final WordPress naming-convention warnings from Plugin Check.

= 1.2.38 =

* Hardened request handling, nonce verification, sanitization, and validation.
* Replaced a custom attachment lookup with the native WordPress API.
* Cleared every error and warning reported by WordPress Plugin Check on the release archive.

= 1.2.37 =

* Prepared the public plugin for the separately installed Pro 1.2.37 add-on.
* Documented the private customer-portal installation and native WordPress update journey.
* Hardened reproducible packaging checks to prevent public and commercial release files from being mixed.

= 1.2.36 =

* Prepared a dedicated GPL-compatible WordPress.org runtime and reproducible source package.
* Added clean extension points for the separately installed Pro add-on.
* Improved 2D and 3D variation handling, responsive layouts, storefront assets, and portable product packages.
* Added template, theme, translation, changelog, and import/export administration tools.
* Hardened WooCommerce cart metadata, uploads, sanitization, and customer-facing rendering.

== Upgrade Notice ==

= 1.2.43 =

This release keeps projected 3D artwork stable when customers change product materials or re-add cached images.

= 1.2.42 =

This release fixes persistent 2D layer locking without changing existing product data.

= 1.2.41 =

This release improves Layers and text editing without changing existing product data.

= 1.2.40 =

This release adds secure, license-aware access to the Asuka Designer Support Center.

= 1.2.39 =

This maintenance release clears the final WordPress global-constant naming warnings without changing customer-facing behavior.

= 1.2.38 =

This maintenance release hardens request processing and passes WordPress Plugin Check with no findings.

= 1.2.37 =

This release keeps the public core and optional Pro add-on strictly separated and adds a documented private update journey for eligible customers.

= 1.2.36 =

This release establishes the WordPress.org core and optional Pro add-on split. Back up the database before upgrading from a private pre-release build.
