It takes about two minutes. Pick your platform below. Your shoppers never leave your site: the box sits on your own page and searches every member shop.
Shopify WooCommerce (WordPress) Squarespace Wix BigCommerce Etsy Custom website, WaSQL or anything else
yourshop.com and YOUR_SHOP_KEY.
Menus and plan names change. If a step does not match what you see, check your platform's help pages, or send us a screenshot and we will help.
Any plan. Editing theme code is available on every plan.
<script src="https://3dprintster.us/3dprintster.js" data-shop="yourshop.com" data-key="YOUR_SHOP_KEY" data-button="off" async></script>
<div id="3dprintster"></div>
analytics.subscribe("checkout_completed", async (event) => {
const checkout = event.data.checkout;
const click = await browser.cookie.get("p3d"); // set by the 3DPrintster script when a shopper arrives from a search
if (!click) { return; }
const items = checkout.lineItems.map((li) => ({
sku: li.variant && li.variant.sku,
price: li.variant && li.variant.price && li.variant.price.amount,
qty: li.quantity
}));
const body = new URLSearchParams({
shop: "yourshop.com", key: "YOUR_SHOP_KEY", p3d: click,
order: String(checkout.order && checkout.order.id || checkout.token),
items: JSON.stringify(items)
});
fetch("https://3dprintster.us/api/convert", { method: "POST", body: body, keepalive: true });
});
Tracking lets shops that send you a sale be credited, and lets you be credited when you send one. Shopify moved checkout tracking to "Customer events", so this uses a custom pixel. Treat it as best effort and test it with a real order - Shopify changes this area often.
Any WordPress site. A free code-snippets plugin makes it painless.
<script src="https://3dprintster.us/3dprintster.js" data-shop="yourshop.com" data-key="YOUR_SHOP_KEY" data-button="off" async></script>
<div id="3dprintster"></div>
add_action('woocommerce_thankyou', function($order_id){
$order = wc_get_order($order_id);
if(!$order){ return; }
$items = array();
foreach($order->get_items() as $item){
$product = $item->get_product();
$items[] = array(
'sku' => $product ? $product->get_sku() : '',
'price' => round((float)$order->get_item_subtotal($item, false, false), 2),
'qty' => (int)$item->get_quantity(),
);
}
$data = array('order' => (string)$order->get_order_number(), 'items' => $items);
echo '<script>window.addEventListener("load",function(){ if(window.p3d){ p3d.convert(' . wp_json_encode($data) . '); } });</script>';
});
Add a small PHP snippet that runs on the order-confirmation page. It sends only the order number, SKUs and prices.
Needs a plan that allows custom code (Business or higher). Check Squarespace for current plan details.
<script src="https://3dprintster.us/3dprintster.js" data-shop="yourshop.com" data-key="YOUR_SHOP_KEY" data-button="off" async></script>
<div id="3dprintster"></div>
Squarespace does not give order-confirmation code access to the per-item SKUs we need, so automatic sale tracking is not supported yet. Searching and being found work normally.
Needs a Premium plan with a connected domain to add custom code. Check Wix for current plan details.
<script src="https://3dprintster.us/3dprintster.js" data-shop="yourshop.com" data-key="YOUR_SHOP_KEY" data-button="off" async></script>
<div id="3dprintster"></div>
Wix does not expose the per-item SKUs we need on the thank-you page, so automatic sale tracking is not supported yet.
Any plan; Script Manager is in the control panel.
<script src="https://3dprintster.us/3dprintster.js" data-shop="yourshop.com" data-key="YOUR_SHOP_KEY" data-button="off" async></script>
<div id="3dprintster"></div>
Order data on the confirmation page needs the Storefront API and custom code, so automatic sale tracking is an advanced setup. Use the server postback in the "Custom website" guide, or contact us and we will help.
Etsy does not allow custom scripts on your shop page, and it blocks crawlers.
Anything that lets you edit the page HTML.
<script src="https://3dprintster.us/3dprintster.js" data-shop="yourshop.com" data-key="YOUR_SHOP_KEY" data-button="off" async></script>
<div id="3dprintster"></div>
<script>
window.addEventListener('load',function(){
if(window.p3d){
p3d.convert({order:'ORDER_NUMBER', items:[{sku:'SKU', price:1.25, qty:1}]});
}
});
</script>
curl -X POST https://3dprintster.us/api/convert \
-d shop=yourshop.com -d api_key=YOUR_API_KEY \
-d p3d=CLICK_ID -d order=1042 \
--data-urlencode 'items=[{"sku":"FIT-4WAY","price":1.25,"qty":2}]'
Two options. In the browser, add the snippet to your order-confirmation page. Or call our API from your server when an order is paid, which cannot be blocked by ad blockers.
Need help? Email steve.lloyd@gmail.com.