Products namespace
Reference for digital products: the catalogue, product pages, reviews and checkout.
A
JSell or give away digital products (guides, templates, courses, files and links) from your board. board.products lists the catalogue, reads a product page and its reviews, and starts a free claim or a paid checkout. After the purchase, the buyer's download page is board.purchases.
board.products.list()
The board's listed products as cards. ProductsListQuery takes q (every word must appear in the name or summary), price (free or paid), sort (featured, newest, rating, price_asc), cursor and limit (1 to 50).
Each card carries url, the product page path on your board. Unlisted products never appear here.
board.products.get()
A product page: description, details, images, contents (file types, page counts and sizes), price model, checkout questions and, when ratings are on, the rating with its histogram. A product with isListed: false is link-only: render it for visitors who have the link, and keep it out of listings, sitemaps and search indexes.
board.products.reviews()
Visible reviews, newest first, with the operator's reply. A page can be shorter than limit; follow nextCursor while hasMore is true.
board.products.checkout()
Body: email, answers (one per question id), amountCents (pay what you want), jobAlertOptIn (free products, shown unticked), returnPath (paid products; defaults to the product page) and website, a honeypot field to render hidden and leave empty.
- A free product, or
amountCents: 0on a $0+ product, returnsstatus: 'complete'withdownloadUrl, the download page path. The buyer is also emailed the link. - A paid product returns
status: 'open'with an embedded Stripe Checkout mount kit. Mount it withloadStripe(publishableKey, { stripeAccount: stripeAccountId })andinitEmbeddedCheckout({ clientSecret }). The session lasts 30 minutes.
With a signed-in board user, the purchase also appears in board.purchases.mine().
board.products.getCheckout()
After Stripe returns the buyer with session_id: awaiting_payment until the payment lands, then paid with downloadUrl. Poll for a few seconds, then show "We have emailed your download link".
Errors
Checkout returns product_sold_out, product_email_invalid, product_email_blocked, product_amount_below_minimum (with details.minimumCents), product_amount_invalid, product_answers_invalid (with details.questionId), stripe_not_connected, rate_limited and rate_limit_unavailable. An unknown or unreachable product is products_not_found.