Skip to content
  • There are no suggestions because the search field is empty.

Send Orders to ProfitMetrics Using Make.com — Any E-Commerce Platform

This guide covers how to send order data from any e-commerce platform to ProfitMetrics using Make.com. If your platform has a native Make.com integration or supports webhooks/API access, you can build this automation.

Prerequisites

  • ProfitMetrics Public ID — Dashboard → Settings → Website → Public ID
  • API access to your e-commerce platform — You need to be able to retrieve order data (order totals, line items, shipping, customer info)
  • Make.com account — Free plan supports low order volumes

How It Works

Every e-commerce integration follows the same pattern:

Order event (webhook or polling)
→ Fetch full order data from your platform's API
→ Transform to ProfitMetrics payload
→ GET https://my.profitmetrics.io/l.php?v=3uh&pid={PUBLIC_ID}&o={JSON}

The only thing that changes between platforms is how you get the order data (steps 1–2). The payload format and ProfitMetrics API call (steps 3–4) are always the same.


Step 1: Trigger on New/Updated Orders

Set up a trigger in Make.com for your platform. Most platforms support one of these approaches:

Approach How to Set Up
Native module Use your platform's Make.com module (e.g. Shopify, WooCommerce, Magento) with a "Watch Orders" or "Order Created" trigger. Handles authentication and pagination for you.
Webhook Register a webhook from your platform and use Make.com's Webhooks → Custom webhook module to receive it. Best for platforms that support outgoing webhooks.
Polling Use Make.com's HTTP → Make a request module on a schedule to poll your platform's orders API. Best for platforms without webhook support.

If your platform has a native Make.com module, use it — it handles authentication and pagination for you.

Filtering

You typically only want to send orders in a specific status (e.g. "Completed", "Paid", "Fulfilled"). Add a filter after the trigger module to check the order status before proceeding.


Step 2: Fetch Full Order Data

Depending on your trigger, you may already have the full order data, or you may need a second API call to get line items and shipping details. You need these fields from your platform:

Required Fields

Data Notes
Order ID Unique order identifier
Order date When the order was placed
Customer email From billing address
Currency Order currency code (e.g. EURUSDDKK)
Total excl. VAT Order total excluding tax
Total incl. VAT Order total including tax
Line items (SKU, qty, unit price excl. VAT) Per-product breakdown

Recommended Fields

Data Notes
Shipping cost excl. VAT  
Shipping country (ISO2) e.g. DKDEUS
Shipping zip code  

Optional Fields

Data Notes
Shipping method e.g. "Standard Shipping"
Shipping weight Total weight of all items
Payment method e.g. "Credit Card", "PayPal"
Customer first name ProfitMetrics hashes PII server-side
Customer last name  
Customer phone Without leading +

Step 3: Transform to ProfitMetrics Payload

Add a Code (JavaScript) module in Make.com to map your platform's order data into the ProfitMetrics format.

Payload Structure

{
"id": "12345",
"ts": 1710700000,
"orderEmail": "customer@example.com",
"currency": "EUR",
"priceTotalExVat": 80.00,
"priceTotalInclVat": 100.00,
"products": [
{ "sku": "WIDGET-01", "qty": 2, "priceExVat": 40.00 }
],
"shippingCountry": "DK",
"shippingZipcode": "2100",
"priceShippingExVat": 5.00,
"shippingMethod": "Standard Shipping",
"shippingWeight": 1.5,
"paymentMethod": "Credit Card",
"customerFirstname": "Jane",
"customerLastname": "Doe",
"customerPhone": "4512345678"
}

Field Reference

PM Field Description
id Order ID (must be a string, not a number)
ts Order creation time as Unix timestamp (seconds)
orderEmail Customer email from billing address
currency ISO currency code
priceTotalExVat Order total excluding VAT/tax
priceTotalInclVat Order total including VAT/tax
products Array of line items (see below)
priceShippingExVat Shipping cost excluding VAT
shippingCountry ISO 3166-1 alpha-2 country code
shippingZipcode Shipping postal/zip code
shippingMethod Name of the shipping method
shippingWeight Total shipment weight
paymentMethod Payment method name
customerFirstname Customer first name
customerLastname Customer last name
customerPhone Phone number without leading +

Product Line Items

Each item in the products array:

Field Description
sku Product SKU — must match your ProfitMetrics product feed identifier
qty Quantity ordered
priceExVat Unit price excluding VAT

Items without a SKU are excluded from the array.

Example JavaScript (Make.com Code Module)

Adapt the input variable names to match your platform's module output:

// Input variables (set these in the Code module's Input section):
// - order: the order object from your platform's module
// - PUBLIC_ID: your ProfitMetrics Public ID

const ts = Math.floor(new Date(order.date_created).getTime() / 1000);

const products = order.line_items
.filter(li => li.sku)
.map(li => ({
sku: String(li.sku),
qty: Number(li.quantity),
priceExVat: Number(li.price_excl_tax),
}));

const pmOrder = {
id: String(order.id),
ts,
orderEmail: order.customer_email || "",
currency: order.currency || "EUR",
priceTotalExVat: Number(order.total_excl_tax),
priceTotalInclVat: Number(order.total_incl_tax),
products,
shippingCountry: order.shipping_country_code || "",
shippingZipcode: order.shipping_zip || "",
priceShippingExVat: Number(order.shipping_cost_excl_tax || 0),
shippingMethod: order.shipping_method || "",
shippingWeight: products.reduce((sum, p) => sum + (p.weight || 0) * p.qty, 0),
paymentMethod: order.payment_method || "",
customerFirstname: order.billing_first_name || "",
customerLastname: order.billing_last_name || "",
customerPhone: (order.billing_phone || "").replace(/^\+/, ""),
};

return {
pid: PUBLIC_ID,
v: "3uh",
o: JSON.stringify(pmOrder),
};

Important: The field names above (order.date_createdorder.line_items, etc.) are examples. Every platform names these differently — map them to your platform's actual API field names.


Step 4: Send to ProfitMetrics

Add an HTTP → Make a request module with the following settings:

Setting Value
URL https://my.profitmetrics.io/l.php
Method GET
Query parameter v 3uh
Query parameter pid Map from Code module output → pid
Query parameter o Map from Code module output → o

No authentication is needed for this call.


Troubleshooting

Issue Solution
No orders syncing Check that your trigger is active and the status filter matches your workflow.
Missing products Make sure your API call returns line item data. Some platforms require an expand or include parameter.
400 from ProfitMetrics Verify Public ID is correct. Check the o parameter is valid URL-encoded JSON in the execution log.
Wrong SKU in ProfitMetrics The SKU must match your ProfitMetrics product feed. Check which identifier your feed uses (SKU, product ID, variant ID) and map accordingly.
Missing shipping data Not all platforms include shipping details in every API response. Check if you need a separate API call for shipment data.

For unresolved issues, contact support@profitmetrics.io.