Skip to main content
Product details are displayed in English. Translations coming soon.
Meta Shops Connector for ERPNext — A build-to-order Frappe app that keeps your ERPNext catalog, stock and pricing in step wit — 1/1مثالی پیش منظر

A build-to-order Frappe app that keeps your ERPNext catalog,

stock and pricing in step with Facebook and Instagram Shops, imports checkout orders as Sales Orders, and reconciles Meta payouts back to your General Ledger.

ECOSIRE scopes, builds, installs and supports it on your bench.

Meta Shops Connector for ERPNext کیا ہے؟

A build-to-order Frappe app that keeps your ERPNext catalog, stock and pricing in step with Facebook and Instagram Shops, imports checkout orders as Sales Orders, and reconciles Meta payouts back to your General Ledger. ECOSIRE scopes, builds, installs and supports it on your bench. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

اہم خصوصیات

Dedicated Frappe app with its own module, DocTypes, `hooks.py` and fixtures — installs on your bench alongside `erpnext`, patches no core files, survives `bench update`
`Meta Shop Settings` single DocType holding Business Manager ID, Catalog ID, Page/Instagram account mapping and a pinned Graph API version, with the System User token in a Password field at a restricted permlevel
`Meta Catalog Mapping` linking ERPNext Item and Item Variant records to Meta `retailer_id` / content IDs, supporting multiple catalogs with different Item Price lists and currencies
Catalog and collection push over the Graph API `/batch` endpoint with idempotency keys, chunked payloads, and per-item rejection reasons (missing GTIN, undersized image, disallowed category) written back to the record
Event-driven sync via `hooks.py` doc events on Item, Item Price and Website Item — `on_update` enqueues a background job so changes reach Meta in seconds, not on a nightly cycle
Availability computed from Bin actual qty less reserved qty across nominated warehouses, with debounce and batching so a large Stock Entry produces one push rather than one per line
Optional soft reservation through a `Meta Stock Reservation` DocType so a Meta checkout order holds stock and the same unit cannot be sold on another channel
Webhook receiver as a `@frappe.whitelist(allow_guest=True)` method that verifies the `X-Hub-Signature-256` HMAC before processing and is idempotent against duplicate delivery
Raw `Meta Order Event` persistence for every inbound payload, so a failed import can be replayed from the desk without asking Meta to resend
Order import creating Customer, Address, Contact and Sales Order, then Sales Invoice and Delivery Note per your configured rules, handling Meta's anonymised buyer data correctly
Reconciling scheduler event on a `cron` interval that re-polls the Meta Orders API and backfills any order with no matching Sales Order
Fulfilment push on Delivery Note submit — carrier, tracking number and shipment lines sent to Meta; cancellations and refunds mapped to Credit Notes and stock returns
`Meta Payout` DocType importing settlement reports with line-level commission, tax withheld and refund adjustments, posting a Journal Entry against a clearing account
`Meta Sync Log` DocType capturing request payload, response body, HTTP status, retry count and elapsed time for every API call, with exponential backoff on Graph API rate limits
`Meta Commerce Manager` role and role profile, permlevel-protected credential fields, and a Query Report tracing each Meta order through to the payout line that settled it
Client Scripts adding a Publish to Meta button on Item, a Meta order badge on Sales Order, and a mapping-health indicator listing rejected items
Scheduled System User token expiry check with advance notification, plus `frappe.log_error` and email alerting on repeated sync failure
Built and unit-tested against Frappe/ERPNext v15 and v16 — coverage on mapping, availability calculation, webhook signature verification and payout posting

آرڈر پر تیار، مکمل طور پر آپ کے لیے

خود سیٹ اپ کی ضرورت نہیں — ایک کام کرنے والی ایپ جو ECOSIRE بناتا، انسٹال اور سپورٹ کرتا ہے۔

  1. 1

    آپ آرڈر دیتے ہیں

    ایک بار کی تعمیر کی قیمت سے آغاز کریں۔ آغاز پر ہم آپ کے ساتھ مل کر دائرہ کار طے کرتے ہیں۔

  2. 2

    ہم بناتے اور انسٹال کرتے ہیں

    ECOSIRE اسے آپ کے ERPNext پر بناتا، ترتیب دیتا اور انسٹال کرتا ہے۔

  3. 3

    لائیو + معاونت

    آپ تقریباً ایک کاروباری ہفتے میں لائیو ہو جاتے ہیں، گو لائیو کے بعد دو ہفتوں کی معاونت کے ساتھ۔ ہمارے فراہم کردہ کوڈ کی خرابیاں مفت درست کی جاتی ہیں۔

تکنیکی تفصیلات

ERPNext ہم آہنگی
—
لائسنس
لائسنس کی تصدیق درکار ہے
Python کی ضرورت
Python 3.10+
ڈیٹابیس
MariaDB 10.6+

اس مصنوع کے بارے میں

Selling through Facebook and Instagram Shops means running a second inventory in Meta Commerce Manager. Your team maintains a product feed in one place and stock levels in ERPNext, and the two drift within days — a variant sells out on the shop floor while Instagram keeps taking checkout orders, or a price change in the Item Price list never reaches the catalog. Orders arrive as CSV exports or manual copy-paste into a Sales Order, so nobody can answer basic questions: which Sales Invoices came from Meta, what did Meta actually pay out last week after commissions and refunds, and does that number tie to the bank statement. ERPNext core has no Meta Graph API integration at all — there is no Commerce Manager catalog sync, no checkout order import, and no payout reconciliation. The e-commerce settings that ship in core are built for a Frappe-hosted webshop, not for a third-party marketplace with its own order lifecycle and settlement schedule.

We build a proper Frappe app — its own module, DocTypes, hooks and scheduler events — installed on your bench alongside erpnext, never as a pile of loose Server Scripts. A Meta Shop Settings single DocType holds the Business Manager ID, Catalog ID, Page/Instagram account mapping, System User access token (stored as a Password field, never in plain text) and the pinned Graph API version. A Meta Catalog Mapping structure links each ERPNext Item and Item Variant to its Meta retailer_id and content ID, so the same item can be published to more than one catalog with different price lists. Catalog pushes run through the Graph API /batch endpoint with idempotent request keys, and every call is written to a Meta Sync Log DocType with the request payload, response, HTTP status and retry count — when Meta rejects an item for a missing GTIN or an image below its minimum resolution, the reason is on the record, not lost in a console.

Sync is event-driven where it should be and scheduled where it must be. hooks.py doc events on Item, Item Price and Website Item enqueue a background job on on_update so a price or content change reaches the catalog in seconds rather than waiting for a nightly run. Stock is the harder half: we subscribe to Stock Ledger Entry and Bin changes and compute available quantity as actual qty less reserved qty for the warehouses you nominate, then debounce and batch so a 400-line Stock Entry produces one availability push rather than 400. Optional soft reservation creates a Meta Stock Reservation record when a checkout order lands, so the same unit is not sold twice across Meta and your other channels. Inbound, we consume Meta's order webhooks through a whitelisted endpoint (@frappe.whitelist(allow_guest=True)) that verifies the X-Hub-Signature-256 HMAC before doing anything, writes a raw Meta Order Event for replay, and then creates the Customer, Sales Order and — on your rules — Sales Invoice and Delivery Note. A reconciling scheduler event re-polls the Orders API on a cron interval to backfill any webhook that never arrived. Fulfilment runs the other way: when a Delivery Note is submitted with a tracking number, a job pushes carrier and tracking back to Meta, with cancellations and refunds mapped to Credit Notes and stock returns. Payout reconciliation pulls Meta's settlement reports into a Meta Payout DocType with line-level commission, tax withheld and refund adjustments, and produces a Journal Entry against your clearing account so the Meta receivable actually clears against the bank.

Everything respects Frappe permissions rather than bypassing them. We ship a Meta Commerce Manager role and role profile, set permlevel on the credential fields so only a System Manager sees tokens, and expose read-only List Views plus a Query Report for order-to-payout tracing that finance can use without touching integration settings. Long-running work goes to the long queue via enqueue, failures raise a proper frappe.log_error plus a notification to a nominated owner, and a scheduled check warns before a System User token expires instead of letting the connector go silently dark. Client Scripts add the practical desk touches — a Publish to Meta button on Item, a Meta order badge on Sales Order, and a mapping-health indicator so you can see at a glance which items Meta has rejected. The app targets Frappe/ERPNext v15 and v16, pins the Graph API version explicitly, and is written to survive a bench update without patching core.

This is build-to-order, not a marketplace download. You request a quotation, we run a short scoping call to confirm your catalog structure, warehouse and price list rules, order-to-invoice policy and payout treatment, and then we quote fixed scope. Typical delivery is one working week from confirmed scope, depending on how many catalogs, currencies and warehouses are in play. We build against your ERPNext version, deploy to a staging bench for UAT against your Meta sandbox or a low-volume live catalog, and only then go to production behind a documented rollback. You receive the full source in a git repository you own, installation and configuration on your bench, technical and user documentation, a training session, and a post-go-live support window for defects.

What you get

  • Installable Frappe app source built for your exact ERPNext version (v15 or v16), packaged for `bench get-app` and `bench install-app`
  • Installation and configuration on your bench — Meta Shop Settings, catalog mappings, warehouse and price list rules, webhook registration and role profile setup
  • Technical documentation: DocType reference, hooks and scheduler event map, Graph API endpoints used, configuration reference and a troubleshooting runbook for sync failures and token expiry
  • End-user guide plus a live training session for your commerce and finance teams covering publishing, order handling, fulfilment push and payout reconciliation
  • UAT on a staging bench against your Meta sandbox or a low-volume live catalog, with a written test script and a documented rollback plan before production cutover
  • Post-go-live support window for defect fixes, with an agreed response time and a named engineer
  • Full git repository handover — you own the source, the history and the right to modify or extend it
  • Data migration assistance for existing Meta catalog items and open orders, mapped onto ERPNext Items and Sales Orders

Who this is for

E-commerce Manager at a Multi-Channel Brand

Runs Facebook and Instagram Shops alongside a web store and retail. Needs the Meta catalog to reflect real ERPNext stock and pricing without a person maintaining a spreadsheet, and needs oversells stopped before they turn into refunds and account-health penalties.

Head of Operations or Fulfilment

Owns the delivery promise. Wants Meta orders to land as ERPNext Sales Orders inside the same picking, packing and delivery flow as every other channel, with tracking pushed back automatically on Delivery Note submit rather than keyed into Commerce Manager by hand.

Finance Manager or Controller

Has to explain the gap between gross Meta sales and the cash that hits the bank. Needs payout reports imported with commission, tax withheld and refunds broken out, posted to a clearing account through a Journal Entry so Meta receivables genuinely reconcile.

ERPNext System Administrator or Implementation Partner

Maintains the bench and is wary of Server Script sprawl. Wants a real Frappe app with DocTypes, hooks, tests and a git repo — something that survives `bench update`, respects permissions, and can be extended without reverse-engineering someone else's Custom Fields.

How Meta Shops Connector for ERPNext Compares

CriterionECOSIRECustom BuildCompetitorERPNext نیٹو
Catalog and price syncEvent-driven from Item and Item Price doc events, batched to the Graph API with per-item rejection reasons on the recordAchievable, but batching, retry and rejection handling is where most in-house builds run out of budgetUsually a scheduled one-way push; variant and multi-price-list edge cases often need manual mappingNo Meta integration in ERPNext core — the catalog is maintained separately in Commerce Manager
Stock accuracy and oversellingBin-based availability across nominated warehouses, debounced pushes, optional soft reservation at checkoutDepends on the developer spotting the Stock Ledger Entry volume problem before go-live, not afterTypically a nightly or hourly quantity push; fast-moving lines can still oversell between runsStock lives only in ERPNext; Meta quantities are updated by hand or by CSV upload
Order importSignature-verified webhooks plus a reconciling API poll, creating Customer, Sales Order and optional Invoice and Delivery NoteWebhook handling is straightforward; replay, deduplication and missed-delivery backfill are the parts usually skippedWebhook import is common; replay of a failed event and backfill of a dropped webhook often are notManual entry or CSV import into Sales Order, with no link back to the Meta order
Fulfilment and trackingPushed automatically on Delivery Note submit, with cancellations and refunds mapped to Credit Notes and stock returnsBuildable, though refund and partial-cancellation mapping is frequently deferred to a phase two that never landsTracking push is usually present; refund and return handling varies widely between appsTracking is keyed into Commerce Manager by a person, separately from the Delivery Note
Payout reconciliation`Meta Payout` DocType with commission, tax withheld and refund lines, posting a Journal Entry to a clearing accountRarely scoped into a first build — it is the piece finance asks for a month after go-liveUncommon in marketplace connectors; most stop at order importReconciled by hand in a spreadsheet against the bank statement
Architecture and upgrade safetyProper Frappe app — module, DocTypes, `hooks.py`, scheduler events, fixtures and unit tests; no core patchingRanges from a clean app to a sprawl of Server Scripts and Custom Fields nobody can safely upgradeUsually a real app, but the internals are closed and you follow the vendor's roadmapNot applicable — the capability does not exist to architect
Source ownership and extensibilityFull git repository handover; you own the code and can modify or extend it in-houseYou own it, and you also own every future fix and Graph API version migrationLicensed or subscription app; changes go through a vendor feature requestNo source to own
Support and API-version migrationPost-go-live defect window with a named engineer, plus an optional retainer covering Graph API version migrationsWhoever built it — an internal dependency on one person's availabilityVendor support queue; migration timing follows the vendor's release schedule, not yoursCommunity forum only; nothing to migrate

Frequently Asked Questions about Meta Shops Connector

How long does delivery take, and what happens after I request a quotation?

This is a build-to-order product — there is no instant download. After you request a quotation we run a short scoping call (15 to 45 minutes) to confirm your ERPNext version, catalog structure, warehouse and price list rules, order-to-invoice policy and payout treatment. We then quote fixed scope. Typical delivery is one working week from confirmed scope, longer only if you need multiple catalogs, currencies or unusual fulfilment logic. You always get a staging build for UAT before anything touches production.

Which Frappe and ERPNext versions are supported?

We build against Frappe/ERPNext v15 and v16 and target your exact deployed version — confirmed on the scoping call, because the build is version-specific. The app is a standard Frappe app installed with `bench get-app` and `bench install-app`; it patches nothing in core, so a `bench update` within your major version will not break it. It runs on self-hosted benches, Frappe Cloud private benches and Docker-based deployments.

What support and updates do I get after go-live?

Every build includes a post-go-live support window for defect fixes with an agreed response time and a named engineer. Because you receive the full git repository, your own team or partner can also maintain and extend the app. Beyond the included window we offer support and maintenance retainers that cover Graph API version migrations — Meta deprecates API versions on a rolling schedule, so a connector left untouched will eventually stop working, and keeping the pinned version current is exactly what that retainer covers.

What Meta access do you need, and how are credentials stored?

We need a Meta Business Manager with a Commerce account, a product catalog, and a System User with the relevant catalog, commerce and page permissions to issue a long-lived access token. The token is stored in a Password-type field on `Meta Shop Settings`, encrypted at rest by Frappe and readable only at a restricted permlevel — never in a Custom Field, a Server Script or a log. Inbound webhook traffic is authenticated by verifying Meta's `X-Hub-Signature-256` HMAC before the payload is processed. We never ask you to email a token; you install it yourself, or we do it on a screen-share you control.

What happens if a Meta webhook is missed or the Graph API rate-limits us?

Two safety nets. Every inbound webhook is persisted as a raw `Meta Order Event` before processing, so a failed import can be replayed without asking Meta to resend. Separately, a scheduler event re-polls the Orders API on a configurable interval and backfills anything with no matching Sales Order, so a dropped webhook delays an order rather than losing it. Outbound calls use exponential backoff on rate-limit responses, and every attempt lands in `Meta Sync Log` with status, response body and retry count.

Can it handle multiple catalogs, currencies or Instagram accounts?

Yes, and it is a scoping question rather than an afterthought. The mapping layer is keyed per catalog, so one ERPNext Item can publish to several catalogs with different price lists, currencies and availability rules — useful when you run separate storefronts per market. Multiple Pages and Instagram accounts map to the same or different catalogs. Tell us the shape on the scoping call, because the number of catalogs and currencies is the main driver of where you land in the one working week range.

How is stock availability calculated, and can I stop overselling?

Availability is computed from Bin actual quantity less reserved quantity, restricted to the warehouses you nominate — so a Meta storefront can be backed by a single fulfilment warehouse rather than group-wide stock. Updates are triggered by Stock Ledger Entry changes and batched, so a large Stock Entry produces one push instead of hundreds. For tighter control we can enable soft reservation: a Meta checkout order creates a `Meta Stock Reservation` that holds the unit until the Delivery Note is submitted or the reservation expires, which is what keeps the same item from being sold on Meta and another channel at once.

قیمت کا تخمینہ طلب کریں

Meta Shops Connector

A build-to-order Frappe app that keeps your ERPNext catalog, stock and pricing in step with Facebook and Instagram Shops, imports checkout orders as Sales Orders, and reconciles Meta payouts back to your General Ledger. ECOSIRE scopes, builds, installs and supports it on your bench.

  • Dedicated Frappe app with its own module, DocTypes, `hooks.py` and fixtures — installs on your bench alongside `erpnext`, patches no core files, survives `bench update`
  • `Meta Shop Settings` single DocType holding Business Manager ID, Catalog ID, Page/Instagram account mapping and a pinned Graph API version, with the System User token in a Password field at a restricted permlevel
  • `Meta Catalog Mapping` linking ERPNext Item and Item Variant records to Meta `retailer_id` / content IDs, supporting multiple catalogs with different Item Price lists and currencies
  • Catalog and collection push over the Graph API `/batch` endpoint with idempotency keys, chunked payloads, and per-item rejection reasons (missing GTIN, undersized image, disallowed category) written back to the record

قیمت کا تخمینہ طلب کریں

ہمیں Meta Shops Connector کے لیے اپنی ضروریات بتائیں اور ہم آپ کو قیمتیں، لائسنس کے اختیارات اور ایک مخصوص تجویز بھیجیں گے — عام طور پر ایک کاروباری دن میں۔

ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔