Skip to content
Meet Penni Cart. All the work around ecommerce, beautifully connected.Learn more
Developer resources

Connect a custom-coded website

Choose the plain HTML loader or the explicit framework integration, then wire and test your commerce elements.

WEBFLOW · ONE CLICK
♡ 248Install App ↗
CUSTOM CODE · COPY & PASTE
Claude
Connect my website to Penni Cart.
Add a cart and custom checkout.
Run ↗
✓
Just like that. Connected.Your website is ready for commerce.
✦
Illustrative product preview. Sample store data.
01

Plain HTML install

Place this blocking script in the head. Replace YOUR_STORE_ID.

CODE EXAMPLE
<script src="https://embed.pennicart.io/v1/loader.js?store=YOUR_STORE_ID"></script>
02

Framework install

Use these explicit tags through your framework’s supported shell. Adapt the markup syntax as needed.

CODE EXAMPLE
<link rel="stylesheet" id="pc-cloak" href="https://embed.pennicart.io/v1/cloak.css">
<link rel="stylesheet" href="https://embed.pennicart.io/v1/sdk.css">
<script src="https://embed.pennicart.io/v1/runtime.js" data-store="YOUR_STORE_ID" async></script>
03

Connect and test

Follow the attribute documentation and validate the published product-to-order flow.

Plain HTML: use the blocking head loader

The one-line loader is intended for a plain HTML document. Place it in the head without async or defer. It writes the initial stylesheet setup during document parsing and then loads the runtime asynchronously. Replace the store placeholder with your actual identifier.

Frameworks: use the explicit setup

Framework-managed rendering should use the explicit stylesheet and runtime tags. Include the cloak stylesheet with its pc-cloak ID, the SDK stylesheet and the async runtime with data-store. Add these once through your application’s supported document or script mechanism. Do not run the document.write loader after the page has rendered.

Wire the commerce interface

Consult the current documentation for product identifiers and element attributes. The install loads runtime behavior; it does not automatically turn an arbitrary button into a configured shopping cart. Verify the correct product and options reach the cart before building out the rest of the catalog.

Verify routing, checkout and credentials

Test direct product-page visits and client-side navigation if your app uses it. Avoid injecting duplicate runtime scripts. Configure a supported payment provider and keep secret keys out of client code. Use the documented payment interface and confirm the expected order appears after a successful test.

A LITTLE MORE CLARITY

Questions, answered.

Can I add async to the one-line loader?

No. The plain HTML loader must run during document parsing. The runtime inside the explicit integration is async.

Where should payment secrets go?

Never in browser code or the install snippet. Configure provider credentials through the supported store setup.

Does the SDK require a per-store config script?

Use the documented loader or explicit runtime setup shown here. The store ID is passed in the loader query or runtime data-store attribute.

Helpful references

Penni Cart documentation
GET STARTED

From your first idea
to their next order.

Connect your website. Add your products. Make it yours.

Start your free trial
Hugo Coffee
Northmark
The Wellness Den
Wild Oak Wellness
Webflow Jobs
Olliebooks
Drag to explore