{"id":551380,"date":"2026-07-29T11:39:46","date_gmt":"2026-07-29T11:39:46","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=551380"},"modified":"2026-09-15T13:31:52","modified_gmt":"2026-09-15T13:31:52","slug":"laravel-multi-tenant-saas-gst-module","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/","title":{"rendered":"Laravel Multi Tenant SaaS GST Module User Guide"},"content":{"rendered":"\n<p>The Bagisto SaaS GST extension adds India\u2019s Goods and Services Tax (GST) support to a multi\u2011tenant Bagisto SaaS store.<\/p>\n\n\n\n<p>Every tenant sets their own GSTIN, state, GST rates and price type, and keeps GST-compliant orders without affecting other tenants.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h2 class=\"wp-block-heading index-title\">Features of the Bagisto SaaS GST Extension<\/h2>\n<\/div><\/div>\n\n\n\n<p>The extension brings the following features to the platform and to its tenant stores.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Multi-Tenant GST Features<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Every tenant configures the GST of their store on their own, from their own admin panel.<\/li>\n\n\n\n<li>The extension keeps every product GST record and every order GST record against the tenant it belongs to, so the data of the tenants stays separate.<\/li>\n\n\n\n<li>Deleting a tenant from the platform also clears the GST records of that tenant.<\/li>\n\n\n\n<li>The extension adds a GST section to the configuration of the super admin, which describes the GST facility that the platform offers to its tenant stores.<\/li>\n\n\n\n<li>Ships with ready translations for 22 languages, so tenant admins and customers see the GST screens in their own locale.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Configuration and Product Features<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The tenant enters their preferred GSTIN Number.<\/li>\n\n\n\n<li>They also choose the State for tax purposes.<\/li>\n\n\n\n<li>The tenant sets the GST rate from the backend and enters multiple GST rates at once.<\/li>\n\n\n\n<li>The tenant decides the product price by including GST, by excluding GST, or by choosing the behaviour while adding or editing the product.<\/li>\n\n\n\n<li>The tenant includes or excludes GST for each product individually.<\/li>\n\n\n\n<li>A field in the product editing settings takes the HSN code of the product.<\/li>\n\n\n\n<li>The tenant also sets or modifies a specific GST rate while adding or editing a product.<\/li>\n\n\n\n<li>A dedicated <strong>Settings &gt; GST<\/strong> section lists the products that carry GST, with search, filter, sort and export options.<\/li>\n\n\n\n<li>The tenant assigns the GST rate, HSN code and GST type to many products at once through a CSV import, and downloads a sample CSV file for the format.<\/li>\n\n\n\n<li>The tenant clears the GST details of a single product, or of several products together through the mass action.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Checkout, Order and Access Features<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The extension distinguishes automatically between IGST, CGST and SGST, depending on whether the transaction stays within the home state or crosses it.<\/li>\n\n\n\n<li>It charges SGST and CGST on intra-state transactions and IGST on inter-state transactions, going by the address that the customer provides.<\/li>\n\n\n\n<li>It charges GST only when the billing address belongs to India, so international orders remain unaffected.<\/li>\n\n\n\n<li>A button shows or hides the GST inclusion details on the storefront.<\/li>\n\n\n\n<li>An option prints the GSTIN of the store on the orders that the customers place.<\/li>\n\n\n\n<li>The order, invoice, refund, order PDF and order emails carry the HSN code along with the SGST, CGST and IGST break-up.<\/li>\n\n\n\n<li>Separate access permissions cover the viewing, the import and the deletion of the GST records.<\/li>\n<\/ul>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Installing the Bagisto SaaS GST Extension<\/h3>\n<\/div><\/div>\n\n\n\n<p><strong>Bagisto Version:<\/strong> <code>v2.4.9<\/code><\/p>\n\n\n\n<p><strong>Required Extensions:<\/strong> the <a href=\"https:\/\/store.webkul.com\/laravel-ecommerce-gst-tax-extension.html\" target=\"_blank\" rel=\"noreferrer noopener\">Laravel eCommerce GST extension<\/a> and the Laravel eCommerce SaaS extension.<\/p>\n\n\n\n<p>It also needs the <a href=\"https:\/\/store.webkul.com\/laravel-ecommerce-saas-subscription.html\" target=\"_blank\" rel=\"noreferrer noopener\">Laravel eCommerce SaaS Subscription extension<\/a>, since a tenant needs an active plan before using the admin panel.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1: Extract Package<\/strong><\/h3>\n\n\n\n<p>Unzip the extension package and merge the&nbsp;<code>packages<\/code>&nbsp;folder into your project root.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2: Update the <code>composer.json<\/code> File<\/strong><\/h3>\n\n\n\n<p>Open the <code>composer.json<\/code> file and add the following lines under the &#8216;psr-4&#8217; section:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\"> &quot;Webkul\\\\GST\\\\&quot;: &quot;packages\/Webkul\/GST\/src&quot;,\n &quot;Webkul\\\\GSTSaas\\\\&quot;: &quot;packages\/Webkul\/GSTSaas\/src&quot;,<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3: Register the Module in <code>config\/concord.php<\/code><\/strong><\/h3>\n\n\n\n<p>In the <code><strong>config\/concord.php<\/strong><\/code> file, add the following line under the &#8216;modules&#8217; section:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\"> \\Webkul\\GST\\Providers\\ModuleServiceProvider::class,<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4: Register Service Provider<\/strong><\/h3>\n\n\n\n<p>Go to the <strong>bootstrap\/providers.php<\/strong> file and add the following lines under <strong>providers<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">use Webkul\\GST\\Providers\\GSTServiceProvider;\nuse Webkul\\GSTSaas\\Providers\\GSTSaasServiceProvider;\n\n return &#091;\n     GSTServiceProvider::class,\n     GSTSaasServiceProvider::class,\n ]<\/pre>\n\n\n\n<p>Keep the <code>GSTSaasServiceProvider<\/code> after the <code>GSTServiceProvider<\/code>, because it swaps the models of the GST extension with the tenant aware ones.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 5: Run the Commands<\/strong><\/h3>\n\n\n\n<p>Run the following command to refresh the autoload files:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">composer dump-autoload<\/pre>\n\n\n\n<p>Run the following command to complete the setup:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">php artisan gst-saas:install<\/pre>\n\n\n\n<p>This command migrates the GST extension and this addon, then clears the application cache.<\/p>\n\n\n\n<p>It also publishes the sample CSV file used for bulk GST import.<\/p>\n\n\n\n<p>The addon&#8217;s migration adds a tenant reference to the <code>gst<\/code> and <code>gst_order<\/code> tables.<\/p>\n\n\n\n<p>This keeps each tenant&#8217;s GST data identifiable, and removes it when that tenant is deleted.<\/p>\n\n\n\n<p>These steps complete the setup. The SaaS GST extension is now ready to use in your Bagisto v2.4.9 project.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">GST Section in the Super Admin<\/h3>\n<\/div><\/div>\n\n\n\n<p>Once the installation finishes, the super admin finds a <strong>GST<\/strong> section in the <strong>Configuration<\/strong>, under <strong>GST &gt; GST Details<\/strong>.<\/p>\n\n\n\n<p>This section explains the GST facility the platform offers tenant stores.<\/p>\n\n\n\n<p>It covers GSTIN details, production state, GST rates, pricing type, HSN codes, and storefront tax visibility.<\/p>\n\n\n\n<p>It also states that every tenant keeps these settings separately.<\/p>\n\n\n\n<p>The super admin does not enter the GST values here. Every tenant enters them from their own admin panel, as the next section explains.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Configuration of the Tenant Store<\/h3>\n<\/div><\/div>\n\n\n\n<p>The tenant navigates to <strong>Configure &gt; Sales &gt; Goods and Services Tax<\/strong> to reach the GST settings.<\/p>\n\n\n\n<p>The image below shows the configuration screen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full wp-duotone-unset-1\"><img decoding=\"async\" width=\"2448\" height=\"1894\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig.webp\" alt=\"Bagisto SaaS GST extension tenant configuration screen\" class=\"wp-image-551239\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig.webp 2448w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig-300x232.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig-1200x928.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig-250x193.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig-768x594.webp 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig-1536x1188.webp 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig-2048x1585.webp 2048w\" sizes=\"(max-width: 2448px) 100vw, 2448px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>The tenant configures the following options,<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Status:<\/strong> Enable or Disable the GST module.<\/li>\n\n\n\n<li><strong>GSTIN:<\/strong> Field to enter the GSTIN Number.<\/li>\n\n\n\n<li><strong>Production State:<\/strong> Select the Production state from dropdown menu.<\/li>\n\n\n\n<li><strong>GST Rates:<\/strong> Enter the required GST Rates as percentages, with a comma between them (e.g., 0, 5, 12, 18).<\/li>\n\n\n\n<li><strong>Catalog Product Price:<\/strong> Dropdown menu that decides whether the prices of the tenant include GST, exclude GST, or wait for a choice while adding or editing a product.<\/li>\n\n\n\n<li><strong>Display Inclusive\/Exclusive Info<\/strong>: Button to enable or disable the displaying of GST exclusive\/inclusive information on storefront.<\/li>\n\n\n\n<li><strong>Show GSTIN on Order<\/strong>: Button to enable or disable the printing of the store&#8217;s GSTIN on the orders, invoices and order emails.<\/li>\n<\/ul>\n\n\n\n<p>The platform holds these settings against the tenant, so each tenant runs its own GST setup.<\/p>\n\n\n\n<p>Settings are channel based too, so a tenant with several channels sets GST separately for each.<\/p>\n\n\n\n<p>The <strong>Settings &gt; GST<\/strong> section of the admin panel appears once the tenant enables the <strong>Status<\/strong> and saves the configuration.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Add GST to Products<\/h3>\n<\/div><\/div>\n\n\n\n<p>Once the tenant configures the extension, they add the Goods and Services Tax to the products of their store individually.<\/p>\n\n\n\n<p>For this, the tenant goes to <strong>Catalog &gt; Products<\/strong> and opens a product to add or edit.<\/p>\n\n\n\n<p>They then open the GST section, shown in the image below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/4-webkul-bagisto-gst-extension-add-gst-to-product.webp\" alt=\"Adding GST rate and HSN code to a product in Bagisto SaaS\" class=\"wp-image-478387\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/4-webkul-bagisto-gst-extension-add-gst-to-product.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/4-webkul-bagisto-gst-extension-add-gst-to-product-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/4-webkul-bagisto-gst-extension-add-gst-to-product-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/4-webkul-bagisto-gst-extension-add-gst-to-product-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>The tenant configures the following options for every product,<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Button to enable or disable GST on product.<\/li>\n\n\n\n<li><strong>Product Price: <\/strong>Dropdown menu that keeps GST inside the price or outside the price. This dropdown appears only when the <strong>Catalog Product Price<\/strong> configuration holds <strong>Select when initialize<\/strong>, otherwise the product follows the value of that configuration.<\/li>\n\n\n\n<li><strong>GST Rate:<\/strong> Select the GST rate for the product. The dropdown lists the rates that the tenant entered in the <strong>GST Rates<\/strong> configuration.<\/li>\n\n\n\n<li><strong>HSN Code<\/strong>: Enter the HSN Code of product.<\/li>\n<\/ul>\n\n\n\n<p>The extension ties this GST record to the tenant who owns the product, so the record stays with that tenant only.<\/p>\n\n\n\n<p>The GST section covers every product type except the <strong>Grouped<\/strong> and <strong>Bundle<\/strong> products, because those carry the GST of the products that they hold.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Manage and Import GST in Bulk<\/h3>\n<\/div><\/div>\n\n\n\n<p>Setting GST product by product suits a small catalog, not a large one.<\/p>\n\n\n\n<p>For a large catalog, the tenant opens <strong>Settings &gt; GST<\/strong>.<\/p>\n\n\n\n<p>This listing shows every GST product with its rate, HSN code, type, image, name, SKU, price and creation date.<\/p>\n\n\n\n<p>The tenant searches, filters, sorts and exports this listing, which makes a quick review of the GST across the catalog easy.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Import GST Through a CSV File<\/h4>\n\n\n\n<p>To assign GST to many products at once, the tenant downloads the sample file with the <strong>CSV Demo<\/strong> button.<\/p>\n\n\n\n<p>They fill it in, upload it through <strong>Import CSV file<\/strong>, and click <strong>Import<\/strong>.<\/p>\n\n\n\n<p>The CSV file follows the format given below,<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">product_id,gst_rate,hsn_code,type\n1,18,96081001,internal\n2,5,96081001,external<\/pre>\n\n\n\n<p>Here is what every column of the CSV file holds,<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>product_id:<\/strong> The Id of a product of the store.<\/li>\n\n\n\n<li><strong>gst_rate:<\/strong> The GST rate for the product. It matches one of the rates that the tenant entered in the <strong>GST Rates<\/strong> configuration.<\/li>\n\n\n\n<li><strong>hsn_code:<\/strong> The HSN code of the product.<\/li>\n\n\n\n<li><strong>type:<\/strong> Either <code>internal<\/code> for the prices that already include GST, or <code>external<\/code> for the prices that carry GST separately.<\/li>\n<\/ul>\n\n\n\n<p>The extension validates the whole file before saving anything.<\/p>\n\n\n\n<p>A bad row stops the import and shows an error, so a half-imported file never stays behind.<\/p>\n\n\n\n<p>For a product that already has GST, the imported values replace the older ones.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Delete GST and Control the Access<\/h4>\n\n\n\n<p>The tenant clears a product&#8217;s GST through the listing&#8217;s delete action.<\/p>\n\n\n\n<p>They clear several at once by selecting records and using mass delete.<\/p>\n\n\n\n<p>Roles in the tenant store control access to this section.<\/p>\n\n\n\n<p>From <strong>Settings &gt; Roles<\/strong>, the tenant allows or restricts the <strong>GST<\/strong>, <strong>Import<\/strong> and <strong>Delete<\/strong> permissions for sub admins.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">GST Information on Storefront<\/h3>\n<\/div><\/div>\n\n\n\n<p>The storefront shows GST information when the tenant enables <strong>Display Inclusive\/Exclusive Info<\/strong>.<\/p>\n\n\n\n<p>Turning this setting off hides that information again.<\/p>\n\n\n\n<p>The storefront carries the GST information in the 2 ways below,<\/p>\n\n\n\n<p>1) GST inside the price<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1366\" height=\"768\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/1-webkul-bagisto-gst-extension-gst-information-displayed.webp\" alt=\"GST inclusive price shown on the Bagisto SaaS storefront\" class=\"wp-image-478391\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/1-webkul-bagisto-gst-extension-gst-information-displayed.webp 1366w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/1-webkul-bagisto-gst-extension-gst-information-displayed-300x169.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/1-webkul-bagisto-gst-extension-gst-information-displayed-1200x675.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/1-webkul-bagisto-gst-extension-gst-information-displayed-250x141.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/1-webkul-bagisto-gst-extension-gst-information-displayed-768x432.webp 768w\" sizes=\"(max-width: 1366px) 100vw, 1366px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>2) GST outside the price<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1366\" height=\"768\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/3-webkul-bagisto-gst-extension-gst-exclusion-information.webp\" alt=\"GST excluded from price on the Bagisto SaaS storefront\" class=\"wp-image-478392\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/3-webkul-bagisto-gst-extension-gst-exclusion-information.webp 1366w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/3-webkul-bagisto-gst-extension-gst-exclusion-information-300x169.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/3-webkul-bagisto-gst-extension-gst-exclusion-information-1200x675.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/3-webkul-bagisto-gst-extension-gst-exclusion-information-250x141.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/3-webkul-bagisto-gst-extension-gst-exclusion-information-768x432.webp 768w\" sizes=\"(max-width: 1366px) 100vw, 1366px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">GST Application on Checkout: CGST, SGST and IGST<\/h3>\n\n\n\n<p>The extension detects automatically when to charge IGST and when to charge SGST and CGST. It follows the conditions below,<\/p>\n\n\n\n<p>1) An interstate transaction takes IGST, as the below image shows,<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/webkul-laravel-ecommerce-gst-extension-checkout-igst.webp\" alt=\"IGST applied at checkout for an interstate order\" class=\"wp-image-478395\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/webkul-laravel-ecommerce-gst-extension-checkout-igst.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/webkul-laravel-ecommerce-gst-extension-checkout-igst-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/webkul-laravel-ecommerce-gst-extension-checkout-igst-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/webkul-laravel-ecommerce-gst-extension-checkout-igst-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>2) An intrastate transaction takes CGST and SGST, as the below image shows,<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1120\" height=\"880\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/webkul-laravel-ecommerce-gst-sgst-cgst-applied.webp\" alt=\"CGST and SGST applied at checkout for an intrastate order\" class=\"wp-image-478397\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/webkul-laravel-ecommerce-gst-sgst-cgst-applied.webp 1120w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/webkul-laravel-ecommerce-gst-sgst-cgst-applied-300x236.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/webkul-laravel-ecommerce-gst-sgst-cgst-applied-250x196.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2024\/12\/webkul-laravel-ecommerce-gst-sgst-cgst-applied-768x603.webp 768w\" sizes=\"(max-width: 1120px) 100vw, 1120px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>The extension compares the customer&#8217;s billing state with the <strong>Production State<\/strong> the tenant set.<\/p>\n\n\n\n<p>GST applies only when the billing address is in India.<\/p>\n\n\n\n<p>Orders to other countries follow the store&#8217;s default tax setup instead.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">GST Details on Orders and Invoices<\/h3>\n<\/div><\/div>\n\n\n\n<p>Once a customer places an order, the extension stores that order&#8217;s GST with its tenant reference.<\/p>\n\n\n\n<p>These details stay the same even if the GST setup changes later.<\/p>\n\n\n\n<p>The order, invoice and refund summaries in the admin panel show the SGST, CGST and IGST break-up.<\/p>\n\n\n\n<p>So does the customer&#8217;s <strong>My Account<\/strong> order view, the order and invoice PDFs, and both admin and customer order emails.<\/p>\n\n\n\n<p>Every ordered item also carries the product&#8217;s HSN code.<\/p>\n\n\n\n<p>The order shows the tenant&#8217;s GSTIN as <strong>GST Registration No.<\/strong> once <strong>Show GSTIN on Order<\/strong> is enabled.<\/p>\n\n\n\n<div class=\"wk-index-wrap\"><div class=\"block-wrap\">\n<h3 class=\"wp-block-heading index-title\">Support<\/h3>\n<\/div><\/div>\n\n\n\n<p>So that is much about the Laravel eCommerce SaaS GST Extension.<\/p>\n\n\n\n<p>If you require any further assistance, you can email us directly on <strong>support@webkul.com<\/strong> or <a href=\"https:\/\/webkul.uvdesk.com\/en\/customer\/create-ticket\/\" target=\"_blank\" rel=\"noreferrer noopener\">raise a ticket<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Bagisto SaaS GST extension adds India\u2019s Goods and Services Tax (GST) support to a multi\u2011tenant Bagisto SaaS store. Every tenant sets their own GSTIN, state, GST rates and price type, and keeps GST-compliant orders without affecting other tenants. The extension brings the following features to the platform and to its tenant stores. Multi-Tenant GST <a href=\"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":696,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8396],"tags":[8055,222],"class_list":["post-551380","post","type-post","status-publish","format-standard","hentry","category-bagisto","tag-bagisto","tag-saas"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Laravel Multi Tenant SaaS GST Module User Guide - Webkul Blog<\/title>\n<meta name=\"description\" content=\"Laravel Multi-Tenant SaaS GST Guide with step-by-step installation, configuration, GST setup, and module usage for seamless tax management\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel Multi Tenant SaaS GST Module User Guide - Webkul Blog\" \/>\n<meta property=\"og:description\" content=\"Laravel Multi-Tenant SaaS GST Guide with step-by-step installation, configuration, GST setup, and module usage for seamless tax management\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-29T11:39:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-15T13:31:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig.webp\" \/>\n<meta name=\"author\" content=\"Aviral\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Aviral\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/\"},\"author\":{\"name\":\"Aviral\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/person\\\/b3445e0cac9f8a7b2078584fad308589\"},\"headline\":\"Laravel Multi Tenant SaaS GST Module User Guide\",\"datePublished\":\"2026-07-29T11:39:46+00:00\",\"dateModified\":\"2026-09-15T13:31:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/\"},\"wordCount\":1684,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/gstconfig.webp\",\"keywords\":[\"Bagisto\",\"saas\"],\"articleSection\":[\"Bagisto\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/\",\"name\":\"Laravel Multi Tenant SaaS GST Module User Guide - Webkul Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/gstconfig.webp\",\"datePublished\":\"2026-07-29T11:39:46+00:00\",\"dateModified\":\"2026-09-15T13:31:52+00:00\",\"description\":\"Laravel Multi-Tenant SaaS GST Guide with step-by-step installation, configuration, GST setup, and module usage for seamless tax management\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/gstconfig.webp\",\"contentUrl\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/gstconfig.webp\",\"width\":2448,\"height\":1894},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/laravel-multi-tenant-saas-gst-module\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/webkul.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel Multi Tenant SaaS GST Module User Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/webkul.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\\\/\\\/cdnblog.webkul.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/08\\\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/webkul\\\/\",\"https:\\\/\\\/x.com\\\/webkul\",\"https:\\\/\\\/www.instagram.com\\\/webkul\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/webkul\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/webkul\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/webkul.com\\\/blog\\\/#\\\/schema\\\/person\\\/b3445e0cac9f8a7b2078584fad308589\",\"name\":\"Aviral\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/45605395147739faab464525f2e332f887af4f78ef319410f3a59a6b92aa75d9?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/45605395147739faab464525f2e332f887af4f78ef319410f3a59a6b92aa75d9?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/45605395147739faab464525f2e332f887af4f78ef319410f3a59a6b92aa75d9?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Aviral\"},\"url\":\"https:\\\/\\\/webkul.com\\\/blog\\\/author\\\/aviral-pba322\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Laravel Multi Tenant SaaS GST Module User Guide - Webkul Blog","description":"Laravel Multi-Tenant SaaS GST Guide with step-by-step installation, configuration, GST setup, and module usage for seamless tax management","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/","og_locale":"en_US","og_type":"article","og_title":"Laravel Multi Tenant SaaS GST Module User Guide - Webkul Blog","og_description":"Laravel Multi-Tenant SaaS GST Guide with step-by-step installation, configuration, GST setup, and module usage for seamless tax management","og_url":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2026-07-29T11:39:46+00:00","article_modified_time":"2026-09-15T13:31:52+00:00","og_image":[{"url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig.webp","type":"","width":"","height":""}],"author":"Aviral","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Aviral","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/"},"author":{"name":"Aviral","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/b3445e0cac9f8a7b2078584fad308589"},"headline":"Laravel Multi Tenant SaaS GST Module User Guide","datePublished":"2026-07-29T11:39:46+00:00","dateModified":"2026-09-15T13:31:52+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/"},"wordCount":1684,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig.webp","keywords":["Bagisto","saas"],"articleSection":["Bagisto"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/","url":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/","name":"Laravel Multi Tenant SaaS GST Module User Guide - Webkul Blog","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig.webp","datePublished":"2026-07-29T11:39:46+00:00","dateModified":"2026-09-15T13:31:52+00:00","description":"Laravel Multi-Tenant SaaS GST Guide with step-by-step installation, configuration, GST setup, and module usage for seamless tax management","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig.webp","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2025\/01\/gstconfig.webp","width":2448,"height":1894},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/laravel-multi-tenant-saas-gst-module\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Laravel Multi Tenant SaaS GST Module User Guide"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/b3445e0cac9f8a7b2078584fad308589","name":"Aviral","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/45605395147739faab464525f2e332f887af4f78ef319410f3a59a6b92aa75d9?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/45605395147739faab464525f2e332f887af4f78ef319410f3a59a6b92aa75d9?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/45605395147739faab464525f2e332f887af4f78ef319410f3a59a6b92aa75d9?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Aviral"},"url":"https:\/\/webkul.com\/blog\/author\/aviral-pba322\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/551380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/696"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=551380"}],"version-history":[{"count":6,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/551380\/revisions"}],"predecessor-version":[{"id":557671,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/551380\/revisions\/557671"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=551380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=551380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=551380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}