Aha.is for WooCommerce connects your WooCommerce store to Aha, an online marketplace in Iceland. You keep managing your products and orders in WooCommerce. Aha lists your products and sends the orders to your store. Stores and restaurants can connect.
This plugin needs an Aha account. You send your store details to Aha with the plugin, and Aha reviews them before your store goes live.
This plugin is for owners of a WooCommerce store or a restaurant in Iceland who want to sell on Aha and keep working in WooCommerce. You need access to the WordPress admin of the store.
This plugin connects to the Aha service, operated by Aha, at https://www.aha.is. The plugin does not work without it. The plugin starts to contact Aha when a merchant selects Connect with Aha.
1. Connect with Aha: setup and credentials.
When: the merchant starts a connection, sends or edits store details, and later while the connection is active (status checks, credential refresh, disconnect). While Aha reviews the request, the plugin checks the status every 60 seconds.
Data sent: the site URL and callback addresses, a public signing key and a public encryption key made for this installation, a random installation ID, the plugin, WordPress and WooCommerce versions, and the store details the merchant types: store name, street address, postcode, city, phone number and an optional description. After approval, the plugin sends signed requests that carry short-lived tokens and random command IDs.
2. Catalog access.
When: after Aha approves the connection.
Data sent: the plugin creates a WooCommerce REST API key and sends its consumer key and consumer secret to Aha, signed. The key has read permission on the whole WooCommerce REST API. That includes orders, customers and coupons, not only products. Aha uses the key to read your product catalog (products, variations, SKUs, prices, stock). The plugin deletes its keys when the merchant disconnects or uninstalls the plugin.
3. Product and stock changes.
When: a product or a variation is created, updated, trashed, restored, deleted, or its stock changes, and when the merchant asks for a full sync. The plugin groups changes in a 60 second window.
Data sent: the IDs of the changed products only (at most 20 for each request), plus the signed request fields. When more than 20 products change in one window, the plugin sends one full-sync request with no product IDs. When the merchant turns automatic sync on again after changes were skipped, the plugin also sends one full-sync request. Aha then reads the product data through the key in item 2.
4. Order requests from Aha to your store.
When: a customer buys on Aha, or an Aha order changes. Aha calls the REST API of your site (/wp-json/aha-is-for-woocommerce/v1/) to create the order (/orders), update its status (/orders/status) and apply a refund or cancel (/orders/refund-cancel). Each request has an HMAC signature, and the plugin rejects a request with a bad signature, an old timestamp or a repeated event ID.
Data received by the plugin: the Aha order ID and number, the line items (SKU, quantity, prices), the shipping line, the payment method, the paid flag, the currency, the target status, the refunded amount and a credit memo ID. The plugin also receives the billing and shipping address fields: first name and last name (masked by Aha, which keeps only the first 3 characters of the first name), street address, city, postcode and country. The billing address also carries an email and a phone number. The contract says these are Aha service contact values, or the per-store email override, and never the real customer email or phone. The plugin receives the customer note, which Aha builds from the company ID, the Aha order ID, the schedule date and the customer notes. The plugin also stores any extra order meta data that the request carries.
Data returned to Aha: the WooCommerce order ID and number and a result or an error code.
5. Connect endpoints on your site.
When: during Connect.
GET /wp-json/aha-is-for-woocommerce-connect/v1/proof/: Aha calls this address to check that the store owns the site. It returns a signed proof only while a connection attempt waits for it and the long random <attempt> value matches. The proof holds the attempt and bootstrap IDs, the site address, the callback and proof addresses, and the thumbprints of the public keys. Otherwise it returns not_found (HTTP 404).
admin-post.php?action=aha_is_woocommerce_connect_callback: Aha sends the merchant’s browser back to this address after the merchant consents on Aha. The plugin checks the state value and then shows the review status. The address needs a logged-in user with the WooCommerce management capability.
6. Heartbeat and health.
When: Aha calls GET /wp-json/aha-is-for-woocommerce/v1/health on your site.
Data returned: the site URL, the installation ID, the PHP, WordPress, WooCommerce and plugin versions, the number of pending and failed background jobs and the age of the oldest pending job, the WordPress environment type, and flags for safe mode, disabled WP-Cron and HPOS.
Terms of service: https://www.aha.is/terms
Privacy policy: https://www.aha.is/personuvernd