Skip to content

Cartenvo Integration Hub docs

Make

Connect nopCommerce to Make: send paid orders to Google Sheets and new orders to Slack, and set stock from a scenario.

On this page

Make receives store events with the Webhooks → Custom webhook module, and calls the store with HTTP → Make a request. Both are available on Make's free plan.

1. Paid order → Google Sheets row

Catch the event

  1. In Make, create a scenario. Add the Webhooks app, module Custom webhook.
  2. Click Add, name it "nopCommerce orders", and save. Make shows the webhook address: copy it. Make now waits for a first message to learn the fields.
  3. In the store's admin, open Configuration → Integration Hub → Webhooks → Add webhook and choose Zapier, Make or n8n.
    • Name: "Make: orders to Sheets"
    • URL: the address you copied
    • Events: only order.paid
    • Save.
  4. Send a sample: open Preview, choose order.paid, an order and the Make webhook, click Show message and then Send to this webhook. Make shows "Successfully determined".

Add the row

  1. Add Google Sheets → Add a Row. Connect your Google account, and choose the spreadsheet and sheet. Turn on Table contains headers so the columns appear by name.

  2. Map the columns from the webhook's bundle:

    ColumnMake value
    Orderdata → number
    Datedata → createdOnUtc
    Customerdata → customer → firstName, a space, lastName
    Emaildata → customer → email
    Totaldata → totals → total
    Itemsjoin(map(data.items; "sku"); ", ")
  3. Click Run once, send another sample from Preview, and check the row. Then turn the scenario on.

2. New order → Slack message

A second scenario with its own webhook and order.placed, then Slack → Create a Message:

  • Channel: #orders
  • Text: New order {{data.number}}: {{data.totals.total}} {{data.currency}} from {{data.customer.firstName}} {{data.customer.lastName}}. {{data.adminUrl}} (choose the items from the mapping panel instead of typing them)

3. Calling the store from a scenario

  1. In the store's admin, add an API key under API keys with only the scopes the scenario needs.

  2. Add HTTP → Make a request:

    • URL: https://shop.example.com/api/cartenvo/v1/stock
    • Method: POST
    • Headers: Authorization = Bearer cih_…
    • Body type: Raw, Content type: JSON (application/json)
    • Request content: {"lines": [{"sku": "{{sku}}", "quantity": {{quantity}}}], "dryRun": true}
    • Parse response: Yes

    The answer says, for each line, whether it was updated, unchanged or failed. Remove "dryRun": true once it's right. Up to 1,000 lines go in one call: build the lines array with an Array aggregator to send a whole sheet at once.

The API guide lists every call.

Things to know

  • Keep the webhook address private. Make's Custom webhook doesn't check the store's signature. Under the webhook's Advanced settings you can limit it to the store's IP address.
  • Repeats: the store retries a delivery Make doesn't confirm. Use the message's id (the same on retries) with a Data store to skip repeats where that matters.
  • Samples: messages from Send to this webhook have context.sample = true. Add a filter after the webhook if a live scenario mustn't act on them.