Buy with Guiru from your own site
One link. The price, the checkout, the receipt and the entitlement are Guiru's; the click starts on your page.
You do not need a script, a widget or a framework to sell through Guiru from your own site. You need a link.
/buy/<slug>?src=<where> names where the click came from. It is normalized into a campaign slug of at most 24 characters and the raw value is kept separately, so your attribution stays a dimension you can group by. ?currency=EUR opens checkout in a currency you priced; a currency you did not price, or a code that is not ISO 4217, is refused and the buyer lands on the product page with the reason — never on a checkout in a different currency from the one they asked for. No currency at all means the base price.
<a href="https://guiru.app/buy/your-slug?src=landing">Buy on Guiru</a><a href="https://guiru.app/buy/your-slug?src=landing">
<img src="https://guiru.app/p/your-slug/badge" alt="On Guiru" height="56">
</a>What happens on the click
Guiru checks, server-side, that the product can be bought right now: listed, an active price, a commercial operator, a payout account that can charge. If any of those is false the buyer lands on the product page with the reason, never on a checkout that would fail. If the buyer is not signed in they sign in and come back. Then the same Buy with Guiru checkout the store uses opens, in the offer's currency, and the same entitlement is granted when it clears.
Analytics
The click is recorded as an offer click with source buy-link:<src> before anything else happens, signed in or not, so your dashboard shows where sales start. On the Stripe side the purchase carries guiru_source (a closed set: buy_link, website, docs, github, launch, email, social, api, store, other), guiru_campaign (your normalized slug) and guiru_campaign_raw (what you actually sent). The dimension is bounded so one campaign cannot shard a revenue report into thousands of rows. Nothing about the visitor is read from your page; the referrer is not used.
What this is not
It is not a checkout on your domain, not an embedded card form, not a JavaScript SDK. Those exist elsewhere and are how a checkout ends up with a different price than the store. The link keeps one price, one receipt and one refund path.