Connect WooCommerce
1Create a read-only REST API key
picoask only reads from your store, so give it a key that can only read — WooCommerce has a first-class permission level for exactly this.
- In your WordPress admin, open WooCommerce → Settings → Advanced → REST API and click Add key.
- Give it a description you'll recognise — e.g.
picoask-readonly— so it can be revoked on its own later. - Set Permissions to Read. picoask never needs Write.
- Click Generate API key and copy both values — the Consumer key (
ck_…) and the Consumer secret (cs_…). WooCommerce shows the secret only once; if you lose it, revoke the key and make a new one.
2Copy your store URL
- The Store URL is simply the address you open the store at — e.g.
yourstore.com. - If WordPress lives in a subfolder, include it — e.g.
yourstore.com/shop. Pasting the full address out of the browser bar works too; picoask keeps just the part it needs.
Your store must be reachable over https — WooCommerce's API authentication sends the key like a password, and picoask will not send it over an unencrypted connection.
3Connect in picoask
In your project's Integrations tab, choose WooCommerce → Connect and fill in:
- Store URL — from step 2.
- Consumer key and Consumer secret — the
ck_…/cs_…pair from step 1.
picoask verifies the connection against your store immediately, and automatically handles the two quirks that most often break WooCommerce API access — WordPress installs with plain permalinks, and hosts that strip authentication headers — so a store that needs either workaround connects without you doing anything. The key is stored encrypted and used only by the sync worker.
4What gets synced
- Orders — every order with its money broken down: goods, discounts, shipping and tax, exactly as your admin reports them.
- Refunds — dated by the refund itself, so "how much did we refund in August" is answered on refund timing, not order timing, and refunded products are identified.
- Products — your catalog with current prices and stock status, so "what's out of stock" and "price list" are answerable, not just what sold.
- Discounts — every coupon redemption with the money it actually took off, so promo-code performance is a real number.
- Customers — registered customers and guest checkouts alike (guests are identified by a one-way hash of their email, so repeat guests count as one person without picoask storing addresses).
Amounts land in your store's own currency, exactly as charged, and are never silently converted. The first import pulls up to four years of history; after that picoask checks for changed orders every few hours, so an order refunded months later updates in place. Custom order statuses from your plugins come through as-is.
5Troubleshooting
- Credentials rejected — the key was copied incompletely, revoked, or created under a user without order access. Create a fresh key under WooCommerce → Settings → Advanced → REST API (Permissions: Read, and pick an admin or shop-manager user) and reconnect.
- "Doesn't look like a WooCommerce store" — the URL points somewhere the store's API isn't. Check the address (include the subfolder if WordPress lives in one) and that the WooCommerce plugin is active. picoask already tries both WordPress URL styles, so this usually means the URL itself is off.
- A security plugin is blocking the API — some hardening plugins (or server rules) block REST API access entirely. Allow the WooCommerce REST API (
/wp-json/wc/v3/) for authenticated requests and reconnect. - Connected, but syncs are slow or stall — on shared hosting the store itself is the bottleneck. picoask automatically slows down and asks for smaller pages when your server struggles; large histories just take a little longer.
- Store URL refused — the value must be your store's address, not the
ck_…/cs_…key (those go in the credential fields), and not a.myshopify.comdomain (that's a Shopify store — use the Shopify connector).
Email contact@picoask.ai and we'll get you connected. See also the picoask docs.