# Coinvay for WooCommerce · 1.2.2 ## Install After activation, open **Plugins → Installed Plugins → Coinvay Payments → Settings** beside Deactivate. This opens the same Coinvay payment settings page used below, including Manual/Automatic connection and checkout business name/logo. The shortcut is visible to users with WooCommerce management permission. 1. Back up the staging WordPress database. Require WordPress 6.6+, WooCommerce 9.5+, PHP 8.1+, MySQL/MariaDB and HTTPS. The database user must be able to call GET_LOCK/RELEASE_LOCK. 2. WordPress → Plugins → Add new → Upload plugin → choose **coinvay-woocommerce.zip** → Activate. 3. WooCommerce → Settings → Payments → Coinvay → Manage. Keep disabled until setup is tested. Set the gateway origin `https://coinvay.com`, merchant API key, title and description. The store currency is sent automatically; supported fiat prices are converted to USD by Coinvay. The gateway hides itself for unsupported codes. Both classic and Blocks checkout use the same support list. 4. Choose **Connect to Coinvay** to authorize and save store credentials automatically, or confirm **Manual setup** with your saved key. Add your business name and logo. This registers a store-specific webhook/signing secret; signed notifications require an eligible plan. Existing non-store/global callbacks remain unchanged. 5. Enable on staging, create an order and choose Coinvay. The order stays On hold until authenticated confirmation. After paying, return to the store order page; browser navigation never marks it paid. 6. Drive WP-Cron from a real scheduler for the `coinvay_reconcile` event (every five minutes, up to 20 orders per batch). It rotates batches so larger backlogs are eventually checked. Polling does not require Coinvay webhooks, but confirmation delay grows with backlog and provider health. Classic checkout and Checkout Blocks are registered. Only products/one-time checkout is advertised; WooCommerce Subscriptions automatic renewals and automatic refunds are not supported. HPOS uses WooCommerce order APIs. No secret appears in Blocks settings. ## Staging acceptance - Try classic checkout and Blocks with HPOS on/off using the versions you run. - Check exact total, tax and shipping. Repeat checkout: it reuses the saved invoice. - Verify an unpaid or unconfirmed transfer never sets Processing/Completed. - Confirm one payment updates the correct order once; duplicate webhooks + simultaneous polling must not reduce stock or deliver twice. - Change/cancel an order after invoice creation: payment must require manual review instead of applying a changed total. - Test delayed confirmation, expired invoice, disabled gateway, API outage and invalid webhook signature. Expired/cancelled checkout needs store support; the plugin does not automatically create a second payable invoice. - Confirm downloadable/virtual products follow your normal WooCommerce fulfillment rules after payment. Refunds are manual wallet transfers; record the refund separately in WooCommerce. Before deactivation, reconcile pending orders. Deactivation stops polling and does not erase financial metadata. ## Branding The updated Coinvay logo assets and usage instructions are included in [BRANDING.md](BRANDING.md). Use SVG on supported web surfaces and PNG for native/platform restrictions. ## Manual or automatic account connection · 1.2.0 Use **Connect to Coinvay** to sign in and authorize this store, or retain manual API-key setup. This release adds separate checkout business name/logo and per-store signed webhooks without changing other stores. Read **CONNECT.md**, included in this package, for exact controls, environment variables, administrator-session integration, encryption/backups, permissions and staging checks. Custom app kits require your existing administrator authentication; Shopify remains subject to platform approval.