{"id":386246,"date":"2023-06-08T14:05:10","date_gmt":"2023-06-08T14:05:10","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=386246"},"modified":"2023-06-08T14:05:18","modified_gmt":"2023-06-08T14:05:18","slug":"create-opencart-version4-shipping","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/","title":{"rendered":"Create a shipping extension in Opencart v4"},"content":{"rendered":"\n<p>In our previous blog post, we explored the process of creating a <a href=\"https:\/\/webkul.com\/blog\/create-opencart-version4-module\/\">module in Opencart version 4<\/a>. Now, we will learn to create a shipping extension in Opencart version 4. Shipping plays a vital role in the e-commerce website.<\/p>\n\n\n\n<p>Gaining a comprehensive understanding of the shipping extension is crucial to fully grasp this aspect within the context of Opencart.<\/p>\n\n\n\n<p>To begin, it is essential to familiarize ourselves with the folder structure of an extension.<\/p>\n\n\n\n<p><strong>Folder structure<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"906\" height=\"341\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13.png\" alt=\"shipping-folder-structure\" class=\"wp-image-386255\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13.png 906w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13-300x113.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13-250x94.png 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13-768x289.png 768w\" sizes=\"(max-width: 906px) 100vw, 906px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Shipping extension b<strong>ackend code<\/strong><\/h2>\n\n\n\n<p>Finally, we have our folder structure in place, let\u2019s start creating an extension, we will show \u201dWebkul Shipping Rates\u201d  on the product checkout page.<\/p>\n\n\n\n<p><strong>admin\/controller\/shipping\/example_shipping.php<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;?php\n\/**\n * Extension name: Webkul Shipping\n * Descrption: Using this extension we will show shipping charges on the checkout page.\n * Author: Webkul Software Pvt. Ltd. \n * \n *\/\nnamespace Opencart\\Admin\\Controller\\Extension\\ExampleShipping\\Shipping;\n\nclass ExampleShipping extends \\Opencart\\System\\Engine\\Controller {\n\t\n\t\/**\n\t * index\n\t *\n\t * @return void\n\t *\/\n\tpublic function index(): void {\n\t\t\n\t\t$this-&gt;load-&gt;language(&#039;extension\/example_shipping\/shipping\/example_shipping&#039;);\n\n\t\t$this-&gt;document-&gt;setTitle($this-&gt;language-&gt;get(&#039;heading_title&#039;));\n\n\t\t$data&#091;&#039;breadcrumbs&#039;] = &#091;];\n\n\t\t$data&#091;&#039;breadcrumbs&#039;]&#091;] = &#091;\n\t\t\t&#039;text&#039; =&gt; $this-&gt;language-&gt;get(&#039;text_home&#039;),\n\t\t\t&#039;href&#039; =&gt; $this-&gt;url-&gt;link(&#039;common\/dashboard&#039;, &#039;user_token=&#039; . $this-&gt;session-&gt;data&#091;&#039;user_token&#039;])\n\t\t];\n\n\t\t$data&#091;&#039;breadcrumbs&#039;]&#091;] = &#091;\n\t\t\t&#039;text&#039; =&gt; $this-&gt;language-&gt;get(&#039;text_extension&#039;),\n\t\t\t&#039;href&#039; =&gt; $this-&gt;url-&gt;link(&#039;marketplace\/extension&#039;, &#039;user_token=&#039; . $this-&gt;session-&gt;data&#091;&#039;user_token&#039;] . &#039;&amp;type=shipping&#039;)\n\t\t];\n\n\t\tif (!isset($this-&gt;request-&gt;get&#091;&#039;module_id&#039;])) {\n\t\t\t$data&#091;&#039;breadcrumbs&#039;]&#091;] = &#091;\n\t\t\t\t&#039;text&#039; =&gt; $this-&gt;language-&gt;get(&#039;heading_title&#039;),\n\t\t\t\t&#039;href&#039; =&gt; $this-&gt;url-&gt;link(&#039;extension\/example_shipping\/shipping\/example_shipping&#039;, &#039;user_token=&#039; . $this-&gt;session-&gt;data&#091;&#039;user_token&#039;])\n\t\t\t];\n\t\t} else {\n\t\t\t$data&#091;&#039;breadcrumbs&#039;]&#091;] = &#091;\n\t\t\t\t&#039;text&#039; =&gt; $this-&gt;language-&gt;get(&#039;heading_title&#039;),\n\t\t\t\t&#039;href&#039; =&gt; $this-&gt;url-&gt;link(&#039;extension\/example_shipping\/shipping\/example_shipping&#039;, &#039;user_token=&#039; . $this-&gt;session-&gt;data&#091;&#039;user_token&#039;] . &#039;&amp;module_id=&#039; . $this-&gt;request-&gt;get&#091;&#039;module_id&#039;])\n\t\t\t];\n\t\t}\n\n\t\t$data&#091;&#039;save&#039;] = $this-&gt;url-&gt;link(&#039;extension\/example_shipping\/shipping\/example_shipping.save&#039;, &#039;user_token=&#039; . $this-&gt;session-&gt;data&#091;&#039;user_token&#039;]);\n\t\t$data&#091;&#039;back&#039;] = $this-&gt;url-&gt;link(&#039;marketplace\/extension&#039;, &#039;user_token=&#039; . $this-&gt;session-&gt;data&#091;&#039;user_token&#039;] . &#039;&amp;type=shipping&#039;);\n\n        \/\/ getting configuration from config\n\t\t$data&#091;&#039;shipping_example_shipping_cost&#039;] = $this-&gt;config-&gt;get(&#039;shipping_example_shipping_cost&#039;);\n\t\t$data&#091;&#039;shipping_example_shipping_tax_class_id&#039;] = $this-&gt;config-&gt;get(&#039;shipping_example_shipping_tax_class_id&#039;);\n\n        \/\/ loading tax_class model\n\t\t$this-&gt;load-&gt;model(&#039;localisation\/tax_class&#039;);\n\n        \/\/ getting all tax classes\n\t\t$data&#091;&#039;tax_classes&#039;] = $this-&gt;model_localisation_tax_class-&gt;getTaxClasses();\n\n\t\t$data&#091;&#039;shipping_example_shipping_geo_zone_id&#039;] = $this-&gt;config-&gt;get(&#039;shipping_example_shipping_geo_zone_id&#039;);\n\n        \/\/ loading geo_zone model\n\t\t$this-&gt;load-&gt;model(&#039;localisation\/geo_zone&#039;);\n\n        \/\/ getting all geo zones\n\t\t$data&#091;&#039;geo_zones&#039;] = $this-&gt;model_localisation_geo_zone-&gt;getGeoZones();\n\n\t\t$data&#091;&#039;shipping_example_shipping_status&#039;] = $this-&gt;config-&gt;get(&#039;shipping_example_shipping_status&#039;);\n\t\t$data&#091;&#039;shipping_example_shipping_sort_order&#039;] = $this-&gt;config-&gt;get(&#039;shipping_example_shipping_sort_order&#039;);\n\n\t\t$data&#091;&#039;header&#039;] = $this-&gt;load-&gt;controller(&#039;common\/header&#039;);\n\t\t$data&#091;&#039;column_left&#039;] = $this-&gt;load-&gt;controller(&#039;common\/column_left&#039;);\n\t\t$data&#091;&#039;footer&#039;] = $this-&gt;load-&gt;controller(&#039;common\/footer&#039;);\n\n\t\t$this-&gt;response-&gt;setOutput($this-&gt;load-&gt;view(&#039;extension\/example_shipping\/shipping\/example_shipping&#039;, $data));\n\t}\n\t\n\t\/**\n\t * save method\n\t *\n\t * @return void\n\t *\/\n\tpublic function save(): void {\n        \/\/ loading example shipping language\n\t\t$this-&gt;load-&gt;language(&#039;extension\/example_shipping\/shipping\/example_shipping&#039;);\n\n\t\t$json = &#091;];\n\n        \/\/ checking file modification permission\n\t\tif (!$this-&gt;user-&gt;hasPermission(&#039;modify&#039;, &#039;extension\/example_shipping\/shipping\/example_shipping&#039;)) {\n\t\t\t$json&#091;&#039;error&#039;]&#091;&#039;warning&#039;] = $this-&gt;language-&gt;get(&#039;error_permission&#039;);\n\t\t}\n\n\t\tif (!$json) {\n\t\t\t$this-&gt;load-&gt;model(&#039;setting\/setting&#039;);\n\n\t\t\t$this-&gt;model_setting_setting-&gt;editSetting(&#039;shipping_example_shipping&#039;, $this-&gt;request-&gt;post);\n\n\t\t\t$json&#091;&#039;success&#039;] = $this-&gt;language-&gt;get(&#039;text_success&#039;);\n\t\t}\n\n\t\t$this-&gt;response-&gt;addHeader(&#039;Content-Type: application\/json&#039;);\n\t\t$this-&gt;response-&gt;setOutput(json_encode($json));\n\t}\n\n}<\/pre>\n\n\n\n<p><strong>admin\/language\/en-gb\/shipping\/example_shipping.php<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;?php\n\/**\n * Webkul Software\n * \n * @category Webkul\n * @package Opencart Shipping Tutorial\n * @author &#091;Webkul] &lt;&#091;&lt;http:\/\/webkul.com\/&gt;]&gt;\n * @copyright Copyright (c) Webkul Software Private Limited (https:\/\/webkul.com)\n * @license https:\/\/store.webkul.com\/license.html\n *\/\n\/\/ Heading\n$_&#091;&#039;heading_title&#039;]    = &#039;Webkul Shipping&#039;;\n\n\/\/ Text\n$_&#091;&#039;text_shipping&#039;]    = &#039;Shipping&#039;;\n$_&#091;&#039;text_success&#039;]     = &#039;Success: You have modified Webkul Shipping!&#039;;\n$_&#091;&#039;text_edit&#039;]        = &#039;Edit Webkul Shipping&#039;;\n\n\/\/ Entry\n$_&#091;&#039;entry_tax_class&#039;]  = &#039;Tax Class&#039;;\n$_&#091;&#039;entry_geo_zone&#039;]   = &#039;Geo Zone&#039;;\n$_&#091;&#039;entry_status&#039;]     = &#039;Status&#039;;\n$_&#091;&#039;entry_sort_order&#039;] = &#039;Sort Order&#039;;\n$_&#091;&#039;entry_cost&#039;]       = &#039;Shipping Cost&#039;;\n\n\/\/ Error\n$_&#091;&#039;error_permission&#039;] = &#039;Warning: You do not have permission to modify Webkul Shipping!&#039;;<\/pre>\n\n\n\n<p><strong>admin\/view\/template\/shipping\/example_shipping.twig<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">{{ header }}{{ column_left }}\n&lt;div id=&quot;content&quot;&gt;\n\t&lt;div class=&quot;page-header&quot;&gt;\n\t\t&lt;div class=&quot;container-fluid&quot;&gt;\n\t\t\t&lt;div class=&quot;float-end&quot;&gt;\n\t\t\t\t&lt;button type=&quot;submit&quot; form=&quot;form-shipping&quot; data-bs-toggle=&quot;tooltip&quot; title=&quot;{{ button_save }}&quot; class=&quot;btn btn-primary&quot;&gt;\n\t\t\t\t\t&lt;i class=&quot;fa-solid fa-save&quot;&gt;&lt;\/i&gt;\n\t\t\t\t&lt;\/button&gt;\n\t\t\t\t&lt;a href=&quot;{{ back }}&quot; data-bs-toggle=&quot;tooltip&quot; title=&quot;{{ button_back }}&quot; class=&quot;btn btn-light&quot;&gt;\n\t\t\t\t\t&lt;i class=&quot;fa-solid fa-reply&quot;&gt;&lt;\/i&gt;\n\t\t\t\t&lt;\/a&gt;\n\t\t\t&lt;\/div&gt;\n\t\t\t&lt;h1&gt;{{ heading_title }}&lt;\/h1&gt;\n\t\t\t&lt;ol class=&quot;breadcrumb&quot;&gt;\n\t\t\t\t{% for breadcrumb in breadcrumbs %}\n\t\t\t\t\t&lt;li class=&quot;breadcrumb-item&quot;&gt;\n\t\t\t\t\t\t&lt;a href=&quot;{{ breadcrumb.href }}&quot;&gt;{{ breadcrumb.text }}&lt;\/a&gt;\n\t\t\t\t\t&lt;\/li&gt;\n\t\t\t\t{% endfor %}\n\t\t\t&lt;\/ol&gt;\n\t\t&lt;\/div&gt;\n\t&lt;\/div&gt;\n\t&lt;div class=&quot;container-fluid&quot;&gt;\n\t\t&lt;div class=&quot;card&quot;&gt;\n\t\t\t&lt;div class=&quot;card-header&quot;&gt;\n\t\t\t\t&lt;i class=&quot;fa-solid fa-pencil&quot;&gt;&lt;\/i&gt;\n\t\t\t\t{{ text_edit }}&lt;\/div&gt;\n\t\t\t&lt;div class=&quot;card-body&quot;&gt;\n\t\t\t\t&lt;form id=&quot;form-shipping&quot; action=&quot;{{ save }}&quot; method=&quot;post&quot; data-oc-toggle=&quot;ajax&quot;&gt;\n\t\t\t\t\t&lt;div class=&quot;row mb-3&quot;&gt;\n\t\t\t\t\t\t&lt;label for=&quot;input-cost&quot; class=&quot;col-sm-2 col-form-label&quot;&gt;{{ entry_cost }}&lt;\/label&gt;\n\t\t\t\t\t\t&lt;div class=&quot;col-sm-10&quot;&gt;\n\t\t\t\t\t\t\t&lt;input type=&quot;text&quot; name=&quot;shipping_example_shipping_cost&quot; value=&quot;{{ shipping_example_shipping_cost }}&quot; placeholder=&quot;{{ entry_cost }}&quot; id=&quot;input-cost&quot; class=&quot;form-control&quot;\/&gt;\n\t\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t&lt;div class=&quot;row mb-3&quot;&gt;\n\t\t\t\t\t\t&lt;label for=&quot;input-tax-class&quot; class=&quot;col-sm-2 col-form-label&quot;&gt;{{ entry_tax_class }}&lt;\/label&gt;\n\t\t\t\t\t\t&lt;div class=&quot;col-sm-10&quot;&gt;\n\t\t\t\t\t\t\t&lt;select name=&quot;shipping_example_shipping_tax_class_id&quot; id=&quot;input-tax-class&quot; class=&quot;form-select&quot;&gt;\n\t\t\t\t\t\t\t\t&lt;option value=&quot;0&quot;&gt;{{ text_none }}&lt;\/option&gt;\n\t\t\t\t\t\t\t\t{% for tax_class in tax_classes %}\n\t\t\t\t\t\t\t\t\t&lt;option value=&quot;{{ tax_class.tax_class_id }}&quot; {% if tax_class.tax_class_id == shipping_example_shipping_tax_class_id %} selected {% endif %}&gt;{{ tax_class.title }}&lt;\/option&gt;\n\t\t\t\t\t\t\t\t{% endfor %}\n\t\t\t\t\t\t\t&lt;\/select&gt;\n\t\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t&lt;div class=&quot;row mb-3&quot;&gt;\n\t\t\t\t\t\t&lt;label for=&quot;input-geo-zone&quot; class=&quot;col-sm-2 col-form-label&quot;&gt;{{ entry_geo_zone }}&lt;\/label&gt;\n\t\t\t\t\t\t&lt;div class=&quot;col-sm-10&quot;&gt;\n\t\t\t\t\t\t\t&lt;select name=&quot;shipping_example_shipping_geo_zone_id&quot; id=&quot;input-geo-zone&quot; class=&quot;form-select&quot;&gt;\n\t\t\t\t\t\t\t\t&lt;option value=&quot;0&quot;&gt;{{ text_all_zones }}&lt;\/option&gt;\n\t\t\t\t\t\t\t\t{% for geo_zone in geo_zones %}\n\t\t\t\t\t\t\t\t\t&lt;option value=&quot;{{ geo_zone.geo_zone_id }}&quot; {% if geo_zone.geo_zone_id == shipping_example_shipping_geo_zone_id %} selected {% endif %}&gt;{{ geo_zone.name }}&lt;\/option&gt;\n\t\t\t\t\t\t\t\t{% endfor %}\n\t\t\t\t\t\t\t&lt;\/select&gt;\n\t\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t&lt;div class=&quot;row mb-3&quot;&gt;\n\t\t\t\t\t\t&lt;label for=&quot;input-status&quot; class=&quot;col-sm-2 col-form-label&quot;&gt;{{ entry_status }}&lt;\/label&gt;\n\t\t\t\t\t\t&lt;div class=&quot;col-sm-10&quot;&gt;\n\t\t\t\t\t\t\t&lt;div class=&quot;form-check form-switch form-switch-lg&quot;&gt;\n\t\t\t\t\t\t\t\t&lt;input type=&quot;hidden&quot; name=&quot;shipping_example_shipping_status&quot; value=&quot;0&quot;\/&gt;\n\t\t\t\t\t\t\t\t&lt;input type=&quot;checkbox&quot; name=&quot;shipping_example_shipping_status&quot; value=&quot;1&quot; id=&quot;input-status&quot; class=&quot;form-check-input&quot; {% if shipping_example_shipping_status %} checked {% endif %}\/&gt;\n\t\t\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t&lt;div class=&quot;row mb-3&quot;&gt;\n\t\t\t\t\t\t&lt;label for=&quot;input-sort-order&quot; class=&quot;col-sm-2 col-form-label&quot;&gt;{{ entry_sort_order }}&lt;\/label&gt;\n\t\t\t\t\t\t&lt;div class=&quot;col-sm-10&quot;&gt;\n\t\t\t\t\t\t\t&lt;input type=&quot;text&quot; name=&quot;shipping_example_shipping_sort_order&quot; value=&quot;{{ shipping_example_shipping_sort_order }}&quot; placeholder=&quot;{{ entry_sort_order }}&quot; id=&quot;input-sort-order&quot; class=&quot;form-control&quot;\/&gt;\n\t\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t\t&lt;\/div&gt;\n\t\t\t\t&lt;\/form&gt;\n\t\t\t&lt;\/div&gt;\n\t\t&lt;\/div&gt;\n\t&lt;\/div&gt;\n&lt;\/div&gt;\n{{ footer }}<\/pre>\n\n\n\n<p>Now, let&#8217;s initiate the development of the frontend code to display the shipping rates on the checkout page.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Frontend code<\/strong><\/h2>\n\n\n\n<p><strong>catalog\/model\/shipping\/example_shipping.php<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;?php\n\/**\n * Extension name: Webkul Shipping\n * Descrption: Using this extension we will show shipping charges on the checkout page.\n * Author: Webkul Software Pvt. Ltd. \n * \n *\/\nnamespace Opencart\\Catalog\\Model\\Extension\\ExampleShipping\\Shipping;\n\nclass ExampleShipping extends \\Opencart\\System\\Engine\\Model {\n    \t\n\t\/**\n\t * getQuote\n\t *\n\t * @param  array $address\n\t * @return array\n\t *\/\n\tfunction getQuote(array $address): array {\n\t\t$this-&gt;load-&gt;language(&#039;extension\/example_shipping\/shipping\/example_shipping&#039;);\n\t\t\n        \/\/ getting geozone lists\n\t\t$query = $this-&gt;_getGeoZone($address);\n\n\t\tif (!$this-&gt;config-&gt;get(&#039;shipping_example_shipping_geo_zone_id&#039;)) {\n\t\t\t$status = true;\n\t\t} elseif ($query-&gt;num_rows) {\n\t\t\t$status = true;\n\t\t} else {\n\t\t\t$status = false;\n\t\t}\n\n\t\t$method_data = &#091;];\n\n\t\tif ($status) {\n\t\t\t$quote_data = &#091;];\n\n            \/\/ shipping data\n\t\t\t$quote_data&#091;&#039;example_shipping&#039;] = &#091;\n\t\t\t\t&#039;code&#039;         =&gt; &#039;example_shipping.example_shipping&#039;,\n\t\t\t\t&#039;name&#039;         =&gt; $this-&gt;language-&gt;get(&#039;text_description&#039;),\n\t\t\t\t&#039;cost&#039;         =&gt; $this-&gt;config-&gt;get(&#039;shipping_example_shipping_cost&#039;),\n\t\t\t\t&#039;tax_class_id&#039; =&gt; $this-&gt;config-&gt;get(&#039;shipping_example_shipping_tax_class_id&#039;),\n\t\t\t\t&#039;text&#039;         =&gt; $this-&gt;currency-&gt;format($this-&gt;tax-&gt;calculate($this-&gt;config-&gt;get(&#039;shipping_example_shipping_cost&#039;), $this-&gt;config-&gt;get(&#039;shipping_example_shipping_tax_class_id&#039;), $this-&gt;config-&gt;get(&#039;config_tax&#039;)), $this-&gt;session-&gt;data&#091;&#039;currency&#039;])\n\t\t\t];\n\n            \/\/ shipping charges array data\n\t\t\t$method_data = &#091;\n\t\t\t\t&#039;code&#039;       =&gt; &#039;example_shipping&#039;,\n\t\t\t\t&#039;name&#039;       =&gt; $this-&gt;language-&gt;get(&#039;heading_title&#039;),\n\t\t\t\t&#039;quote&#039;      =&gt; $quote_data,\n\t\t\t\t&#039;sort_order&#039; =&gt; $this-&gt;config-&gt;get(&#039;shipping_example_shipping_sort_order&#039;),\n\t\t\t\t&#039;error&#039;      =&gt; false\n\t\t\t];\n\t\t}\n\n        \/\/ return shipping data\n\t\treturn $method_data;\n\t}\n    \n    \/**\n     * _getGeoZone\n     *\n     * @param  array $address\n     * @return array\n     *\/\n    protected function _getGeoZone($address = array()) {\n\n        return $this-&gt;db-&gt;query(&quot;\n            SELECT * FROM `&quot; . DB_PREFIX . &quot;zone_to_geo_zone`\n                WHERE `geo_zone_id` = &#039;&quot; . (int)$this-&gt;config-&gt;get(&#039;shipping_example_shipping_geo_zone_id&#039;) . &quot;&#039;\n                    AND `country_id` = &#039;&quot; . (int)$address&#091;&#039;country_id&#039;] . &quot;&#039;\n                    AND (`zone_id` = &#039;&quot; . (int)$address&#091;&#039;zone_id&#039;] . &quot;&#039;\n                    OR `zone_id` = &#039;0&#039;)&quot;\n        );\n    }\n}<\/pre>\n\n\n\n<p><strong>catalog\/language\/en-gb\/shipping\/example_shipping.php<\/strong><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;?php\n\/**\n * Webkul Software\n * \n * @category Webkul\n * @package Opencart Shipping Tutorial\n * @author &#091;Webkul] &lt;&#091;&lt;http:\/\/webkul.com\/&gt;]&gt;\n * @copyright Copyright (c) Webkul Software Private Limited (https:\/\/webkul.com)\n * @license https:\/\/store.webkul.com\/license.html\n *\/\n\n\/\/ Heading\n$_&#091;&#039;heading_title&#039;]    = &#039;Webkul Shipping Rate&#039;;\n\n\/\/ Text\n$_&#091;&#039;text_description&#039;] = &#039;Webkul Shipping Rate&#039;;<\/pre>\n\n\n\n<p>Once you have created the extension, you will need to include some information within the module\u2019s \u201cinstall.json\u201d file. This file supports the following keys: name, version, author, and link.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">{\n  &quot;name&quot;: &quot;Webkul Shipping Extension&quot;,\n  &quot;version&quot;: &quot;1.0&quot;,\n  &quot;author&quot;: &quot;Webkul Software Pvt. Ltd.&quot;,\n  &quot;link&quot;: &quot;https:\/\/www.webkul.com&quot;,\n  &quot;instruction&quot;: &quot;&quot;\n}<\/pre>\n\n\n\n<p>Once install.json is inside the directory, you can zip it and name it that ends with .ocmod.zip, then uploads it from the Opencart extension installer.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"592\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/extension-installer-1200x592.png\" alt=\"extension-installer\" class=\"wp-image-386284\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/extension-installer-1200x592.png 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/extension-installer-300x148.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/extension-installer-250x123.png 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/extension-installer-768x379.png 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/extension-installer.png 1280w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>Upon successful installation of the extension, you can locate it by navigating to &#8220;Extensions &gt; Extensions &gt; Shipping&#8221; where it will be listed for further configuration and customization.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"985\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/webkul-Extensions-1200x985.png\" alt=\"webkul-Extensions\" class=\"wp-image-386287\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/webkul-Extensions-1200x985.png 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/webkul-Extensions-300x246.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/webkul-Extensions-250x205.png 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/webkul-Extensions-768x630.png 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/webkul-Extensions.png 1318w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1085\" height=\"561\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-08T142740.404.png\" alt=\"shipping-configurtaion\" class=\"wp-image-386289\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-08T142740.404.png 1085w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-08T142740.404-300x155.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-08T142740.404-250x129.png 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-08T142740.404-768x397.png 768w\" sizes=\"(max-width: 1085px) 100vw, 1085px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>Once the configuration is complete, the &#8220;Webkul Shipping&#8221; shipping method will become visible on the checkout page for you to select and proceed with your order.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"623\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-08T154624.845-1200x623.png\" alt=\"checkout-shipping\" class=\"wp-image-386310\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-08T154624.845-1200x623.png 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-08T154624.845-300x156.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-08T154624.845-250x130.png 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-08T154624.845-768x399.png 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-2023-06-08T154624.845.png 1216w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>These instructions will guide you through the process of creating a shipping module for Opencart.<\/p>\n\n\n\n<p>If you need custom&nbsp;<a href=\"https:\/\/webkul.com\/opencart-development\/\" target=\"_blank\" rel=\"noreferrer noopener\">Opencart Development services<\/a>&nbsp;then feel free to&nbsp;<a href=\"https:\/\/webkul.com\/contacts\" target=\"_blank\" rel=\"noreferrer noopener\">reach us<\/a>&nbsp;and also explore our exclusive range of&nbsp;<a href=\"https:\/\/store.webkul.com\/OpenCart-Modules.html\">Opencart Addons<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In our previous blog post, we explored the process of creating a module in Opencart version 4. Now, we will learn to create a shipping extension in Opencart version 4. Shipping plays a vital role in the e-commerce website. Gaining a comprehensive understanding of the shipping extension is crucial to fully grasp this aspect within <a href=\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":530,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[305],"tags":[2071,4762,14201,14358],"class_list":["post-386246","post","type-post","status-publish","format-standard","hentry","category-opencart","tag-opencart","tag-opencart-shipping","tag-opencart-version4-2","tag-opencart-version4-shipping"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Create a shipping extension in Opencart v4 - Webkul Blog<\/title>\n<meta name=\"description\" content=\"Guide to creating an Opencart v4 shipping module, optimizing e-commerce site with advanced shipping features for a smooth checkout experience.\" \/>\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\/create-opencart-version4-shipping\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create a shipping extension in Opencart v4 - Webkul Blog\" \/>\n<meta property=\"og:description\" content=\"Guide to creating an Opencart v4 shipping module, optimizing e-commerce site with advanced shipping features for a smooth checkout experience.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/\" \/>\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=\"2023-06-08T14:05:10+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-08T14:05:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13.png\" \/>\n<meta name=\"author\" content=\"Yash Gupta\" \/>\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=\"Yash Gupta\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/\"},\"author\":{\"name\":\"Yash Gupta\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/9c34caa3f4c420c0d8438a50b087ebae\"},\"headline\":\"Create a shipping extension in Opencart v4\",\"datePublished\":\"2023-06-08T14:05:10+00:00\",\"dateModified\":\"2023-06-08T14:05:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/\"},\"wordCount\":317,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13.png\",\"keywords\":[\"opencart\",\"opencart shipping\",\"opencart version4\",\"opencart version4 shipping\"],\"articleSection\":[\"opencart\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/\",\"url\":\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/\",\"name\":\"Create a shipping extension in Opencart v4 - Webkul Blog\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13.png\",\"datePublished\":\"2023-06-08T14:05:10+00:00\",\"dateModified\":\"2023-06-08T14:05:18+00:00\",\"description\":\"Guide to creating an Opencart v4 shipping module, optimizing e-commerce site with advanced shipping features for a smooth checkout experience.\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#primaryimage\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13.png\",\"width\":906,\"height\":341,\"caption\":\"Screenshot-from-2023-06-08-13-32-13\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a shipping extension in Opencart v4\"}]},{\"@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\/9c34caa3f4c420c0d8438a50b087ebae\",\"name\":\"Yash Gupta\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f40fe01c9ce421fdc497c9d9b886fdc92e4a8c64b7703708c68717d22db539d5?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\/f40fe01c9ce421fdc497c9d9b886fdc92e4a8c64b7703708c68717d22db539d5?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Yash Gupta\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/yashgupta-wp766\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create a shipping extension in Opencart v4 - Webkul Blog","description":"Guide to creating an Opencart v4 shipping module, optimizing e-commerce site with advanced shipping features for a smooth checkout experience.","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\/create-opencart-version4-shipping\/","og_locale":"en_US","og_type":"article","og_title":"Create a shipping extension in Opencart v4 - Webkul Blog","og_description":"Guide to creating an Opencart v4 shipping module, optimizing e-commerce site with advanced shipping features for a smooth checkout experience.","og_url":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2023-06-08T14:05:10+00:00","article_modified_time":"2023-06-08T14:05:18+00:00","og_image":[{"url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13.png","type":"","width":"","height":""}],"author":"Yash Gupta","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Yash Gupta","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/"},"author":{"name":"Yash Gupta","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/9c34caa3f4c420c0d8438a50b087ebae"},"headline":"Create a shipping extension in Opencart v4","datePublished":"2023-06-08T14:05:10+00:00","dateModified":"2023-06-08T14:05:18+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/"},"wordCount":317,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13.png","keywords":["opencart","opencart shipping","opencart version4","opencart version4 shipping"],"articleSection":["opencart"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/","url":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/","name":"Create a shipping extension in Opencart v4 - Webkul Blog","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13.png","datePublished":"2023-06-08T14:05:10+00:00","dateModified":"2023-06-08T14:05:18+00:00","description":"Guide to creating an Opencart v4 shipping module, optimizing e-commerce site with advanced shipping features for a smooth checkout experience.","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/06\/Screenshot-from-2023-06-08-13-32-13.png","width":906,"height":341,"caption":"Screenshot-from-2023-06-08-13-32-13"},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/create-opencart-version4-shipping\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Create a shipping extension in Opencart v4"}]},{"@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\/9c34caa3f4c420c0d8438a50b087ebae","name":"Yash Gupta","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f40fe01c9ce421fdc497c9d9b886fdc92e4a8c64b7703708c68717d22db539d5?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\/f40fe01c9ce421fdc497c9d9b886fdc92e4a8c64b7703708c68717d22db539d5?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Yash Gupta"},"url":"https:\/\/webkul.com\/blog\/author\/yashgupta-wp766\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/386246","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\/530"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=386246"}],"version-history":[{"count":49,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/386246\/revisions"}],"predecessor-version":[{"id":386359,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/386246\/revisions\/386359"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=386246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=386246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=386246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}