GST: Go to Shopify Admin - Settings - Taxes and duties. Enable tax collection, enter your GSTIN, and set the correct GST rate (5%, 12%, 18%, or 28%) for each product category. Shopify automatically calculates CGST+SGST for intra-state and IGST for inter-state orders once configured. Shipping: Go to Settings - Shipping and delivery - create zones for domestic India and set rates by order weight or price. For courier integration, install Shiprocket's official Shopify app. COD: Go to Settings - Payments - scroll to Manual payment methods - Add manual payment method - name it "Cash on Delivery" and set your instructions. COD is not a default Shopify payment method and must be added manually. All three configurations must be completed before accepting live orders.
Shopify India Setup Checklist - GST, Shipping and COD
- Register for GST if your annual turnover exceeds ₹40 lakh (goods) or ₹20 lakh (services) - mandatory before selling online
- Configure Shopify tax settings under Settings - Taxes and duties - enter GSTIN and apply correct slab rates per product category
- Install a GST invoice app (Simpro or Order Printer Pro) to generate GSTIN-compliant tax invoices for B2B buyers
- Set up shipping zones - create a domestic India zone covering all states and union territories, set flat or weight-based rates
- Integrate Shiprocket or Delhivery via their official Shopify apps for automated courier assignment, tracking, and COD remittance
- Add COD as a manual payment method - Settings - Payments - Manual payment methods - name it Cash on Delivery
- Configure Razorpay or PayU for prepaid orders - Shopify Payments is not available in India
- Test every payment flow before going live - place test orders on mobile for both Razorpay and COD
Why GST, Shipping and COD Are the Three Non-Negotiable Shopify India Configurations
Shopify is a global platform. When you create a new Shopify store and connect it to a payment gateway, you have a functional ecommerce store - but not a functional Indian ecommerce store. Three configurations are required before any Indian Shopify store is ready to accept real orders and comply with Indian law:
- GST configuration is a legal requirement. Under the Goods and Services Tax Act 2017, any registered business selling goods or services must collect and remit GST on taxable supplies. Selling without collecting GST when you are registered is a compliance violation. Collecting the wrong GST rate (charging 18% on a 12% category, for example) creates ITC mismatches for your B2B buyers and potential scrutiny from tax authorities.
- Shipping configuration determines whether buyers can complete checkout. Without shipping zones and rates configured, Shopify cannot calculate delivery charges and will either block checkout or show incorrect rates. Without a courier integration, you have no automated way to assign orders, generate AWB numbers, or provide tracking links to customers.
- COD configuration is critical for conversion. Shopify does not include Cash on Delivery as a built-in payment option. It must be added manually as a Manual Payment Method. In many Indian product categories, COD accounts for 30-50% of orders - a store without COD configured is inaccessible to a large portion of Indian buyers who will not pay prepaid from an unfamiliar brand.
Every store built by Shopify website development in Chennai specialists at BYB Traction has all three configured and tested before delivery. This guide covers the exact process for each, with accurate navigation paths in the current Shopify Admin.
Part 1: Setting Up GST on Your Shopify Store in India
Understanding GST for Indian Ecommerce - The Basics
Before configuring Shopify, you need to understand the Indian GST structure as it applies to ecommerce:
| GST Type | When It Applies | How It Works |
|---|---|---|
| CGST + SGST | Intra-state sale (seller and buyer in same state) | Split equally - e.g. 18% GST = 9% CGST + 9% SGST |
| IGST | Inter-state sale (seller and buyer in different states) | Single rate - e.g. 18% GST = 18% IGST |
| UTGST | Sales to Union Territories (Chandigarh, Lakshadweep etc.) | Replaces SGST for UT buyers |
India's GST has five primary rate slabs:
| GST Rate | Common Product Categories |
|---|---|
| 0% | Fresh produce, milk, eggs, books, newspapers, handloom fabric |
| 5% | Apparel below ₹1,000, footwear below ₹1,000, packaged food, tea, coffee |
| 12% | Apparel above ₹1,000, footwear above ₹1,000, processed food, mobile phones |
| 18% | Most electronics, cosmetics, shampoo, toothpaste, soap, stationery |
| 28% | Luxury goods, tobacco, aerated beverages, automobiles |
GST rates are assigned based on HSN (Harmonised System of Nomenclature) codes, not product categories as they appear in a store. The same product can fall under different rates depending on its ingredients, processing level, or packaging. For example, branded apparel under ₹1,000 MRP attracts 5% GST while branded apparel above ₹1,000 MRP attracts 12% GST. Verify your exact HSN code and applicable rate on the official GST Council portal (gstcouncil.gov.in) or with your CA before configuring Shopify. Incorrect rates create real compliance risk.
Shopify does not automatically enable tax collection when you set up your store. You must enable it and enter your GSTIN before Shopify can calculate and display GST at checkout.
- Go to Shopify Admin - Settings - Taxes and duties
- Under "Tax regions", click on India
- Check the box to enable tax collection for India
- Enter your GSTIN (15-digit GST Identification Number) in the field provided
- Shopify will automatically handle CGST+SGST vs IGST split based on buyer's shipping address state vs your registered state
- Save changes
If you are not yet GST registered (turnover below the threshold), you can still set up the store but should not charge GST on invoices. The registration threshold is ₹40 lakh annual turnover for goods and ₹20 lakh for services (₹10 lakh for certain special category states). E-commerce businesses selling through online platforms are required to register regardless of turnover - verify your specific obligation with a CA.
Shopify allows you to set a default tax rate for all products and then override specific products that have different rates. This is important because a store selling both apparel (5% or 12%) and electronics (18%) must apply different rates per product.
- In Settings - Taxes and duties - India, set your most common tax rate as the default (e.g. 18% if most products are at 18%)
- For products with different rates, go to Products - click a product - scroll to Pricing section
- Check "Charge taxes on this product" if not already checked
- To apply a different rate: go to Settings - Taxes and duties - Tax overrides - create an override for specific product collections at their correct rate
- Assign products to the correct collection to ensure the override applies
For stores with large catalogues across multiple GST rate categories, it is efficient to organise products into Shopify collections by their GST rate (e.g. "5% GST Products", "12% GST Products") and apply a collection-level override.
Shopify's default order confirmation email is not a GST-compliant tax invoice. A proper GST invoice requires: seller's GSTIN, seller's registered business name and address, buyer's GSTIN (for B2B), HSN codes for each line item, itemised CGST/SGST or IGST breakdown, invoice number in a sequential format, and place of supply. Without this, your B2B buyers cannot claim Input Tax Credit on their purchases - which is a significant barrier to B2B sales.
Recommended GST invoice apps from the Shopify App Store:
- Simpro GST Invoice - widely used, generates GSTN-compliant invoices automatically on each order, supports B2B buyer GSTIN capture at checkout
- Order Printer Pro - flexible template-based invoice generator, requires GST-specific template configuration
- Webkul GST India - comprehensive GST solution including invoice, HSN code assignment, and GST report generation
Configure your chosen app with your GSTIN, registered business name, address, state code, and default HSN codes per product category before accepting orders.
Part 2: Setting Up Shipping on Your Shopify Store in India
Shopify's shipping configuration has two distinct parts: the rates and zones configuration within Shopify Admin (which determines what buyers see at checkout) and the courier/logistics integration (which determines how orders are actually fulfilled). Both must be configured correctly.
A shipping zone in Shopify is a group of regions that share the same shipping rates. For most Indian stores, you need at least one domestic India zone covering all states and union territories. You can create additional zones for specific regions if you have differential pricing (e.g. higher rates for Northeast India due to courier surcharges).
- Go to Shopify Admin - Settings - Shipping and delivery
- Under "Shipping", click your shipping profile (usually "General") - Manage
- Under "Shipping from", verify your warehouse or origin address is correct - this is your dispatch location
- Under "Shipping to", click Create shipping zone
- Name it "India - Domestic" and select India under the country list
- Click Done to create the zone
If you use Shiprocket, Delhivery, or another integrated courier, the rates shown at checkout are your configured Shopify rates - not the actual courier rates. Set your checkout rates at a level that covers your average courier cost or use free shipping above a threshold.
Once your India zone is created, add the rate conditions that determine what buyers see at checkout. Shopify supports flat-rate, weight-based, and price-based conditions. Free shipping above a threshold is one of the highest-impact conversion tools for Indian stores and should be configured alongside paid rates.
- Flat rate: A fixed charge regardless of order size - e.g. ₹50 for all orders. Simple to configure, easy for buyers to understand.
- Price-based rate: Set different rates based on order value - e.g. ₹80 for orders under ₹499, FREE for orders ₹499 and above. This creates the free shipping threshold incentive.
- Weight-based rate: Set rates based on total order weight - useful for heavy products (furniture, appliances) where actual courier charges scale with weight.
- In your India zone, click Add rate
- Choose "Set up your own rates"
- Name the rate (e.g. "Standard Delivery - 5-7 business days")
- Set the price and any weight or price conditions
- To add a free shipping threshold: add a second rate, name it "Free Shipping", set price to ₹0, and set the condition "minimum order price" to your threshold (e.g. ₹499)
Shiprocket is India's most widely used Shopify-integrated courier aggregator, with access to Bluedart, Delhivery, Ecom Express, XpressBees, DTDC, and others from one dashboard. The Shopify-Shiprocket integration automatically imports orders from Shopify, allows you to assign courier partners, generates AWB numbers and shipping labels, provides tracking links, and handles COD remittance back to your bank account.
- Go to the Shopify App Store and search for "Shiprocket"
- Install the official Shiprocket app and connect it to your Shopify store
- Create a Shiprocket account at app.shiprocket.in if you do not have one
- In the Shiprocket dashboard, go to Settings - Channels - select Shopify and authorise the connection
- Configure your default warehouse address and product weight defaults
- For COD orders: Shiprocket remits COD collected amounts to your bank account on a weekly cycle (typically Tuesday and Friday) after deducting their fees. Verify your bank account details in Settings - Remittance
Alternatively, Delhivery has its own official Shopify app for stores that prefer to work directly with a single courier. Evaluate serviceability in your primary delivery pin codes before choosing - Shiprocket's advantage is automatic rate comparison and courier selection across multiple partners.
Part 3: Setting Up Cash on Delivery (COD) on Shopify India
This is the most commonly misconfigured element in Indian Shopify stores. Many store owners assume COD is a standard payment option in Shopify. It is not. Shopify Payments - which is not available in India anyway - and third-party payment gateways like Razorpay and PayU handle prepaid transactions. COD must be added separately as a Manual Payment Method.
Shopify's Manual Payment Methods allow you to create custom payment options that do not process payment at checkout - the payment happens offline (in this case, when the courier delivers the order and collects cash). The order is created in Shopify immediately when the buyer selects COD and places the order, and it remains in "Payment pending" status until you manually mark it as paid after COD collection is confirmed.
- Go to Shopify Admin - Settings - Payments
- Scroll down to Manual payment methods
- Click Add manual payment method
- From the dropdown, select Cash on Delivery (COD) - Shopify provides this as a pre-named option
- Add payment instructions for your buyer - e.g. "Please keep exact change ready. Our delivery partner will collect payment at the time of delivery."
- Optionally, add an additional fee for COD orders by setting the "Additional details" field with the fee amount and note (e.g. "₹40 COD handling charge applicable")
- Click Activate
Once activated, "Cash on Delivery" will appear as a payment option at checkout alongside Razorpay. Buyers select it and complete the order without any online payment. The order appears in your Shopify Admin under Orders with payment status "Pending".
COD orders require a separate fulfilment workflow from prepaid orders. You need to be able to identify COD orders instantly, route them to the correct courier (not all courier services offer COD in all pin codes), and update their payment status in Shopify once COD is collected. Without this workflow, COD orders and prepaid orders get mixed in fulfilment and payment reconciliation becomes messy.
- Order tagging: Use a Shopify automation (Admin - Settings - Notifications - or a flow automation app) to automatically tag all COD orders with a "COD" tag when they are placed. This allows instant filtering in the Orders view.
- Shiprocket COD handling: In Shiprocket, COD orders are automatically identified. When assigning a courier, Shiprocket shows COD serviceability per pin code per courier. Only assign a COD order to a courier that shows COD as available for that pin code.
- Marking COD as paid: Once Shiprocket confirms COD collection and remits the amount to your account, go to the order in Shopify Admin - click Mark as paid - this updates the order status and triggers any post-payment automations.
- COD charge in Razorpay fees: Note that Razorpay does not process COD transactions - there are no Razorpay fees on COD orders. Shiprocket charges a COD handling fee (typically 1.5-2% of order value or a flat per-shipment fee) which is deducted from the remittance.
Part 4: Setting Up Razorpay or PayU for Prepaid Orders
Shopify Payments - Shopify's own payment gateway - is not available in India. Indian merchants must use a third-party payment gateway. Razorpay and PayU are the two most widely used gateways for Indian Shopify stores, both of which have official apps in the Shopify App Store.
Razorpay is India's most widely used payment gateway for Shopify stores. It supports UPI (PhonePe, GPay, Paytm, BHIM), credit and debit cards, net banking, wallets, and EMI. The official Razorpay app is maintained by Razorpay themselves and is available in the Shopify App Store.
- Create a Razorpay account at dashboard.razorpay.com - go through KYC verification (PAN, GST, bank account details)
- Once your Razorpay account is activated, go to the Shopify App Store and install the official Razorpay app
- In the app setup, connect your Razorpay account using your Key ID and Key Secret from Razorpay Dashboard - Settings - API Keys
- In Shopify Admin - Settings - Payments, Razorpay will appear under "Third-party payment providers" - activate it
- Critical: Configure webhooks. In Razorpay Dashboard - Settings - Webhooks, add your Shopify store's webhook URL. The format is:
https://[your-store].myshopify.com/razorpay/webhook. Select the events:payment.captured,payment.failed,order.paid. Webhooks ensure Shopify receives payment confirmation even if a buyer closes the browser after payment but before the thank you page loads - preventing silent order loss. - Test the integration by placing a test order using Razorpay's test mode (available in the Razorpay dashboard) before going live
The most common and damaging post-launch problem in Indian Shopify stores is silent order loss. Here is how it happens: a buyer pays via Razorpay UPI, payment goes through on Razorpay's end, but the buyer closes the app or loses internet connection before being redirected back to the Shopify order confirmation page. Without webhooks configured, Shopify never receives the payment confirmation. The payment was collected, but the order does not appear in Shopify Admin. The buyer gets no confirmation email. You may never know the order existed. This is 100% preventable by configuring Razorpay webhooks correctly - yet it is missed on a large proportion of freelancer-built Indian Shopify stores.
Part 5: Testing Your Complete Setup Before Going Live
Never go live with a Shopify store without completing these tests on a mobile device. Most Indian buyers use Android phones on 4G connections - test on a mid-range Android device, not a desktop browser.
Complete all of the following tests before accepting real orders:
- Razorpay test payment: Enable test mode in Razorpay, place an order, complete payment using Razorpay's test card numbers. Verify the order appears in Shopify Admin with "Paid" status and a confirmation email was sent.
- COD test order: Place an order selecting "Cash on Delivery" at checkout. Verify the order appears in Shopify Admin with "Payment pending" status, tagged as COD, and that the confirmation email mentions COD payment instructions correctly.
- GST at checkout: Verify that the correct GST rate appears as a line item at checkout for your product. Test from both an intra-state address (same state as your GSTIN) and an inter-state address to confirm CGST+SGST vs IGST switching.
- Shipping rate display: Add a product to cart and proceed to checkout. Enter a delivery address and verify that shipping rates appear correctly. Test with an address below your free shipping threshold and above it.
- GST invoice: After placing a test order, verify that your GST invoice app generates a compliant invoice with your GSTIN, HSN codes, and tax breakdown visible.
- Shiprocket order import: Verify that your test orders (both Razorpay and COD) appear correctly in your Shiprocket dashboard ready for fulfilment.
- Mobile UPI flow: On your Android phone, place a real order (you can immediately refund it) using Razorpay UPI (PhonePe or GPay). Complete the payment and verify the confirmation. This tests the actual mobile UPI redirect flow that most Indian buyers use.
Many Indian store owners launch Meta Ads or Google Ads immediately after the store looks visually complete - before testing the actual purchase flow. A broken Razorpay webhook, missing COD option, or incorrect GST calculation means every paid click that converts to a purchase either fails silently or creates a compliance issue. Complete all 7 tests first. If your store was built by a freelancer and you have not verified these, test them now before your next ad campaign.
Common GST, Shipping and COD Mistakes on Indian Shopify Stores
These are the most frequently occurring configuration errors BYB Traction finds when auditing Indian Shopify stores:
- Prices shown exclusive of GST at checkout - Shopify can display prices either inclusive or exclusive of tax at checkout. In India, consumer-facing prices should be inclusive of GST (as required by the Consumer Protection Act for advertised prices). Check Settings - Taxes and duties - ensure "Show all prices with tax included" is enabled if you are a B2C store.
- No shipping zone for India - Without an India shipping zone, buyers see "No shipping available" at checkout and cannot complete the order. This is one of the most common reasons for checkout abandonment on new stores.
- COD not configured - only Razorpay visible - Buyers who intend to pay COD see only Razorpay and either abandon or attempt a failed payment. Make COD visible early in the checkout flow, not only at the payment step.
- Wrong GST rate applied - Applying 18% to products that qualify for 12% or 5% overcharges customers and creates ITC mismatches for B2B buyers. Verify HSN codes and rates for each product category before launch.
- Razorpay webhooks not configured - As covered above, this causes silent order loss. Non-negotiable for any live Indian Shopify store.
- Shiprocket connected but default weights not set - If product weights are not set in Shopify, Shiprocket cannot calculate accurate courier charges and may auto-assign the wrong shipping tier. Set weights for all products in the product settings.
- GST invoice app installed but not configured - Many store owners install a GST invoice app but never enter their GSTIN and business details. The app generates invoices without the required fields, which are not GST-compliant. Configure the app fully before the first order.
BYB Traction - Every Shopify Store Includes GST, Shipping and COD Configured Correctly
BYB Traction is a Certified Shopify Partner and digital marketing agency in Chennai. Every Shopify store we build includes the complete Indian configuration stack - GST setup with correct rate application, Shiprocket or Delhivery integration, Razorpay with webhook configuration tested and verified, and COD with proper order tagging workflow - as standard deliverables, not optional extras. We test every payment flow before delivery. For current Shopify plan pricing, verify at Shopify's official India pricing page.
All Indian configurations included
- GST setup + GSTIN configured
- Razorpay with webhooks tested
- COD manual payment method
- Shipping zones configured
- 15-day post-launch support
Full integration + WhatsApp + SEO
- All Startup features, plus:
- Shiprocket integration configured
- GST invoice app setup
- WhatsApp CRM + order updates
- 30-day post-launch support
- 1 Month SEO Growth Plan
Full custom build + advanced setup
- All Growth features, plus:
- Multi-location inventory
- Advanced COD verification flow
- Full custom Liquid theme
- 60-day post-launch support
- 1 Month SEO Premium Plan
Already have a Shopify store and not sure if GST, COD, and webhooks are configured correctly? BYB Traction offers a free configuration audit - we check your tax settings, payment gateway webhook status, COD setup, and shipping zones and tell you exactly what is missing. No obligation. Request your free audit
Conclusion: Get the Indian Configuration Right Before Your First Order
GST, shipping, and COD are not post-launch items to address when problems arise - they must be configured and tested before the first real order is placed. Incorrect GST configuration creates tax compliance risk. Missing shipping zones block checkout completely. Missing COD loses 30-50% of potential orders in many Indian categories. A failed Razorpay webhook means you collect money without knowing the order exists.
This guide covers every step required to configure a fully functional Indian Shopify store. The process is not complex, but it is specific - and each step has a failure mode that is invisible until it affects a real customer. Take the time to complete all 10 steps and run all 7 pre-launch tests before going live.
For stores that need a complete build with all Indian configurations handled professionally, BYB Traction offers structured Shopify website development in Chennai plans with a written scope, milestone payments, and a post-launch support window that covers any configuration issues that emerge after launch.
4th Floor, 4A, Rashmi Towers, Nungambakkam, Chennai 600034 · +91-9600448666 · contact@bybtraction.com · View Shopify Services
Frequently Asked Questions
To set up GST on Shopify India, go to Shopify Admin - Settings - Taxes and duties - click on India under Tax regions - enable tax collection and enter your GSTIN. Shopify will then automatically calculate CGST and SGST for intra-state orders and IGST for inter-state orders based on the buyer's delivery address state compared to your registered state. You also need to set the correct GST rate for each product category using tax overrides - go to Settings - Taxes and duties - Tax overrides to assign different rates to different product collections. Additionally, install a GST invoice app from the Shopify App Store such as Simpro to generate GSTIN-compliant tax invoices that your B2B buyers can use for Input Tax Credit claims.
Cash on Delivery is not a default Shopify payment option and must be added manually. Go to Shopify Admin - Settings - Payments - scroll down to Manual payment methods - click Add manual payment method - select Cash on Delivery (COD) from the dropdown. Add instructions for your buyer explaining that payment is collected at delivery. Click Activate. COD orders will appear in your Shopify Admin with payment status Pending. Once your courier collects the COD amount and Shiprocket remits it to you, manually mark the order as paid in Shopify Admin. Without this setup, COD is not visible at checkout at all, which means Indian buyers who prefer COD will abandon their purchase.
The most common reason Shopify orders do not appear after Razorpay payment is missing or incorrectly configured webhooks. When a buyer pays via UPI and closes the app before being redirected back to Shopify's order confirmation page, Shopify does not automatically receive payment confirmation without webhooks. To fix this, go to your Razorpay Dashboard - Settings - Webhooks - add your Shopify webhook URL in the format https://your-store.myshopify.com/razorpay/webhook - and select the payment.captured and order.paid events. Once webhooks are configured, Razorpay sends payment confirmation directly to Shopify regardless of whether the buyer completes the redirect. Test by placing a real or test order and confirming the order appears in Shopify Admin.
To integrate Shiprocket with Shopify, install the official Shiprocket app from the Shopify App Store and connect it to your Shiprocket account. In your Shiprocket dashboard, go to Settings - Channels - select Shopify and authorise the connection with your Shopify store URL. Configure your default warehouse address and set product weights in Shopify Admin for each product so Shiprocket can calculate accurate shipping charges. For COD orders, Shiprocket automatically identifies them and allows you to check COD serviceability per pin code before assigning a courier. COD remittance is processed on a weekly cycle to your registered bank account after deducting Shiprocket's handling fees. Verify your bank account details in Shiprocket Settings - Remittance before your first COD delivery.
Shopify's default order confirmation email is not a GST-compliant tax invoice. A proper GST invoice requires the seller's GSTIN, buyer's GSTIN for B2B transactions, HSN codes for each product, itemised CGST and SGST or IGST breakdown, sequential invoice number, and place of supply. To generate compliant GST invoices automatically, you need to install a GST invoice app from the Shopify App Store. Recommended options are Simpro GST Invoice, Order Printer Pro with a GST template, or Webkul GST India. Configure your chosen app with your complete business details including GSTIN, registered address, and state code before accepting your first order.
For B2C stores selling to individual consumers in India, prices should be displayed inclusive of GST. The Consumer Protection Act and GST rules require that advertised prices for consumers include all applicable taxes. To display prices inclusive of tax in Shopify, go to Settings - Taxes and duties - check the option Show all prices with tax included. This means your listed price of Rs 999 is what the customer sees at checkout, and the GST component is shown as a line item breakdown. For B2B stores where buyers expect ex-tax pricing (common in wholesale and manufacturing), you can show prices exclusive of tax and let GST appear as a separate line at checkout. Configure based on your primary buyer type.
No. Shopify Payments is not available in India as of 2026. Indian merchants must use a third-party payment gateway. The most widely used options are Razorpay and PayU, both of which have official apps in the Shopify App Store and support all major Indian payment methods including UPI (PhonePe, GPay, Paytm, BHIM), credit and debit cards, net banking, wallets, and EMI. To accept payments, install either the Razorpay or PayU app from the Shopify App Store, connect it to your payment gateway account (which requires KYC verification with PAN, GST, and bank account details), and configure it as your payment provider in Settings - Payments. Shopify charges no additional transaction fees when using third-party payment providers on Shopify plans.
GST rates for apparel in India depend on the Maximum Retail Price (MRP) of the garment. Apparel with an MRP up to Rs 1,000 attracts 5% GST. Apparel with an MRP above Rs 1,000 attracts 12% GST. This applies to all clothing items including shirts, kurtas, sarees, and sportswear. Footwear follows the same threshold: footwear with an MRP up to Rs 1,000 attracts 5% GST and footwear above Rs 1,000 attracts 12% GST. In Shopify, if your store sells both categories, you need to set up tax overrides so that sub-Rs 1,000 products are taxed at 5% and above-Rs 1,000 products are taxed at 12%. Always verify the exact HSN code for your specific product type with a CA or on the official GST Council portal before configuration.