ecomsolvebd/laravel-tracker

EcomSolveBD tracking + signed order webhooks for Laravel storefronts

Maintainers

Package info

github.com/dev-rasel-parvez/laravel-tracker

Homepage

Documentation

pkg:composer/ecomsolvebd/laravel-tracker

Transparency log

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.2 2026-08-07 21:35 UTC

This package is auto-updated.

Last update: 2026-08-07 21:36:08 UTC


README

Composer package for Laravel storefronts → EcomSolveBD (tracking collect + signed order webhooks).

Packagist: ecomsolvebd/laravel-tracker
Source: https://github.com/dev-rasel-parvez/laravel-tracker
Latest: v1.0.2

Install

composer require ecomsolvebd/laravel-tracker
php artisan vendor:publish --tag=ecomsolvebd-config

Laravel auto-discovers EcomSolveBdServiceProvider.

Connect in EcomSolveBD

  1. Dashboard → IntegrationsLaravel
  2. Paste store base URL → Connect
  3. Copy tracking merchant id + webhook secret into .env
ECOMSOLVEBD_API_BASE=https://api.ecomsolvebd.com
ECOMSOLVEBD_MERCHANT_KEY=...
ECOMSOLVEBD_WEBHOOK_SECRET=...
ECOMSOLVEBD_GA4_MEASUREMENT_ID=G-XXXXXXXX
# Optional staging dual-DB:
# ECOMSOLVEBD_DEPLOY_ENV=staging

Blade layout

<head>
  @ecomsolvebdGtag
  @ecomsolvebdTracker
</head>
  • gtag — Measurement ID only; GA4 auto-events from Google
  • trackerpage_view → ESB collect (source: laravel_tracker)
  • Funnel events are not automatic — call window.esbTrack(...) from your Blade/JS (see marketing docs /docs/integrations/laravelফানেল ইভেন্ট)

Funnel event names (SaaS parity)

Event Code
View product view_item (alias view_content also accepted)
Add to cart add_to_cart
Remove from cart remove_from_cart
View cart view_cart
Begin checkout begin_checkout
Form started / completed / abandoned checkout_form_started / checkout_form_completed / checkout_form_abandoned
Fields first_name_added, last_name_added, phone_number_added, email_address_added, address_added, city_added, state_added, postal_code_added, country_added

Use Woo/Shopify-style ecommerce (not flat Meta content_ids). SaaS maps outbound to Meta / GA4 / TikTok / Google Ads.

window.esbTrack?.('add_to_cart', {
  ecommerce: {
    currency: 'BDT',
    value: 999,
    items: [{ item_id: '123', item_name: 'Product', price: 999, quantity: 1 }],
  },
});

Do not send raw PII in props. Purchase for ads = order webhook → SaaS Mark shipped / Send purchase (not browser gtag purchase).

Orders

POST signed JSON to POST /api/v1/orders/channels/laravel.

use EcomSolveBD\LaravelTracker\OrderPayloadFactory;
use EcomSolveBD\LaravelTracker\OrderWebhookPoster;

app(OrderWebhookPoster::class)->postOrder(
    OrderPayloadFactory::fromOrder($order)
);

Or set ECOMSOLVEBD_ORDER_CREATED_EVENTS=App\Events\OrderPlaced (comma-separated) so the service provider listens and posts when the event exposes an order property.

Payload shape (required)

Same as website ingest: currency, trackingUserId, customer (email or phone), items[] with sku, title, quantity, unitPrice.

Headers:

  • x-merchant-key — tracking public key
  • x-esb-signature: sha256=<hmac-sha256-hex of raw body>

Docs

Full guide: https://ecomsolvebd.com/docs/integrations/laravel

MVP limits

  • No two-way order status push yet
  • No product feeds yet
  • Product CRUD stays in Laravel (connected-store rule)