TallyPrime and Shopify integration
TallyPrime runs your accounting and inventory on the desktop. Shopify runs your online storefront. Connecting the two keeps your sales data in TallyPrime in sync with the orders flowing through Shopify, and lets you push existing customer records from TallyPrime into Shopify before taking orders. ml-connector polls your local TallyPrime instance, reads sales vouchers and stock movements, and pushes them into Shopify's order and customer records on a schedule you choose. Because TallyPrime runs locally and exposes data only over HTTP to port 9000, ml-connector runs a local agent to bridge the gap between your desktop ERP and the cloud platform.
What moves between them
Sales vouchers and stock movements flow from TallyPrime into Shopify. After each polling cycle, ml-connector reads sales vouchers from TallyPrime's Day Book within a date range, maps them to Shopify Draft Orders or confirmed Orders, and pushes the records into Shopify with customer details. Stock Items from TallyPrime are mapped to Shopify Products and InventoryLevels to keep on-hand quantity aligned. Customer and Ledger records from TallyPrime can also be pushed into Shopify's customer database as bulk upserts. No data flows back from Shopify into TallyPrime in this integration; Shopify is read-only for orders and payments, and writes are limited to customer and inventory master data.
How ml-connector handles it
ml-connector runs a local agent on the same machine or LAN as your TallyPrime instance. The agent opens an encrypted tunnel to the cloud connector and sends HTTP POST requests to http://<tally-host-ip>:9000 with Export requests for sales vouchers and stock items within a specified date range. Each request includes the company name (case-sensitive) and optional password to authenticate into the target TallyPrime company, and the agent compares returned Voucher IDs against the last-seen state to detect new sales. On the Shopify side, ml-connector uses OAuth 2.0 offline tokens to authenticate and calls the Shopify Admin API (GraphQL preferred) to create or update Draft Orders, Customers, and Inventory Levels. Because Shopify sends webhooks (orders/create, orders/updated, customers/create, customers/update, inventory_levels/update), ml-connector receives and deduplicates these events using X-Shopify-Webhook-Id to avoid importing duplicate order records pushed from TallyPrime and then echoed back by Shopify. Stock quantities are mapped by matching TallyPrime Stock Item names to Shopify Product titles or a configured custom field. Polling intervals are set per customer to match your accounting cycle and order fulfillment cadence, typically daily or every few hours.
A real-world example
A small retail or e-commerce business in India uses TallyPrime for accounting, inventory, and GST filing and sells online through Shopify. Before the integration, when an order came in via Shopify, the owner had to manually enter the customer and sale details into TallyPrime at end of day, then track inventory updates separately. With TallyPrime and Shopify connected, each new Shopify order is automatically pushed into TallyPrime as a Sales Voucher against the correct customer and ledger accounts, inventory is updated across both systems from a single source of truth, and the business owner has a complete audit trail of what was sold, to whom, and when the stock moved in TallyPrime.
What you can do
- Poll TallyPrime sales vouchers on a schedule and push them into Shopify as Draft Orders or confirmed Orders, mapped to the correct customer and product records.
- Sync customer and ledger records from TallyPrime into Shopify as customer master data for bulk upsert.
- Map TallyPrime Stock Items to Shopify Products and keep inventory quantities aligned in both directions.
- Authenticate TallyPrime via local HTTP on port 9000 with company name and optional password, and Shopify via OAuth 2.0 offline tokens.
- Deduplicate Shopify webhook events (orders, customers, inventory) so records pushed from TallyPrime are not duplicated on return.
Questions
- How does ml-connector access TallyPrime if it runs on my local machine?
- ml-connector uses a local agent installed on the same machine or LAN as TallyPrime. The agent communicates with TallyPrime over HTTP on port 9000 (which must be manually enabled in TallyPrime Advanced Configuration) and sends HTTP POST requests with XML or JSON envelopes containing Export or Import commands. The agent encrypts the connection back to the cloud connector so your TallyPrime data is not exposed directly to the internet.
- Which direction does data flow between TallyPrime and Shopify?
- The main flow is TallyPrime into Shopify. Sales vouchers, stock movements, and customer/ledger records are polled from TallyPrime and pushed into Shopify as Orders, Products, and Customers. Shopify sends webhooks for orders and customer events, which ml-connector receives and deduplicates to avoid duplicates. No data is pushed back into TallyPrime from Shopify in this integration.
- What happens if the TallyPrime application shuts down or the company closes?
- TallyPrime must be running with the target company open for API calls to succeed. If TallyPrime shuts down or the company closes, the next polling cycle will fail. ml-connector logs the error and retries on the next scheduled poll. To avoid missed records, ensure TallyPrime runs continuously during your active sales periods, or schedule polling to occur only when you know TallyPrime is running and the company is open.
Related integrations
More TallyPrime integrations
Other systems that connect to Shopify
Connect TallyPrime and Shopify
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started