Repository: Shopify/shopify_python_api

Issue:
Add support for the new Shipping Zone resource.
As per https://ecommerce.shopify.com/c/api-announcements/t/shipping-zones-api-and-changes-to-the-countries-api-307687. 

Discussion:

Patch:
diff --git a/shopify/resources/__init__.py b/shopify/resources/__init__.py
index 2de7499..adacc08 100644
--- a/shopify/resources/__init__.py
+++ b/shopify/resources/__init__.py
@@ -46,5 +46,6 @@ from .policy import Policy
 from .smart_collection import SmartCollection
 from .gift_card import GiftCard
 from .discount import Discount
+from .shipping_zone import ShippingZone
 
 from ..base import ShopifyResource
diff --git a/shopify/resources/shipping_zone.py b/shopify/resources/shipping_zone.py
new file mode 100644
index 0000000..49cd647
--- /dev/null
+++ b/shopify/resources/shipping_zone.py
@@ -0,0 +1,5 @@
+from ..base import ShopifyResource
+
+
+class ShippingZone(ShopifyResource):
+    pass


Test patch:
diff --git a/test/fixtures/shipping_zones.json b/test/fixtures/shipping_zones.json
new file mode 100644
index 0000000..f07b8ff
--- /dev/null
+++ b/test/fixtures/shipping_zones.json
@@ -0,0 +1,114 @@
+{
+  "shipping_zones": [
+    {
+      "id": 1,
+      "name": "Some zone",
+      "countries": [
+        {
+          "id": 817138619,
+          "name": "United States",
+          "tax": 0.0,
+          "code": "US",
+          "tax_name": "Federal Tax",
+          "provinces": [
+            {
+              "id": 1013111685,
+              "country_id": 817138619,
+              "name": "New York",
+              "code": "NY",
+              "tax": 0.04,
+              "tax_name": "Tax",
+              "tax_type": null,
+              "shipping_zone_id": 1,
+              "tax_percentage": 4.0
+            },
+            {
+              "id": 1069646654,
+              "country_id": 817138619,
+              "name": "Ohio",
+              "code": "OH",
+              "tax": 0.0,
+              "tax_name": "State Tax",
+              "tax_type": null,
+              "shipping_zone_id": 1,
+              "tax_percentage": 0.0
+            }
+          ]
+        },
+        {
+          "id": 879921427,
+          "name": "Canada",
+          "tax": 0.05,
+          "code": "CA",
+          "tax_name": "GST",
+          "provinces": [
+            {
+              "id": 702530425,
+              "country_id": 879921427,
+              "name": "Ontario",
+              "code": "ON",
+              "tax": 0.08,
+              "tax_name": "Tax",
+              "tax_type": null,
+              "shipping_zone_id": 1,
+              "tax_percentage": 8.0
+            },
+            {
+              "id": 224293623,
+              "country_id": 879921427,
+              "name": "Quebec",
+              "code": "QC",
+              "tax": 0.09,
+              "tax_name": "HST",
+              "tax_type": "compounded",
+              "shipping_zone_id": 1,
+              "tax_percentage": 9.0
+            }
+          ]
+        },
+        {
+          "id": 988409122,
+          "name": "Yemen",
+          "tax": 0.0,
+          "code": "YE",
+          "tax_name": "GST",
+          "provinces": [
+          ]
+        }
+      ],
+      "weight_based_shipping_rates": [
+        {
+          "id": 760465697,
+          "weight_low": 1.2,
+          "weight_high": 10.0,
+          "name": "Austria Express Heavy Shipping",
+          "price": "40.00",
+          "shipping_zone_id": 1
+        }
+      ],
+      "price_based_shipping_rates": [
+        {
+          "id": 583276424,
+          "name": "Standard Shipping",
+          "min_order_subtotal": "0.00",
+          "price": "10.99",
+          "max_order_subtotal": "2000.00",
+          "shipping_zone_id": 1
+        }
+      ],
+      "carrier_shipping_rate_providers": [
+        {
+          "id": 972083812,
+          "country_id": null,
+          "carrier_service_id": 61629186,
+          "flat_modifier": "0.00",
+          "percent_modifier": 0,
+          "service_filter": {
+            "*": "+"
+          },
+          "shipping_zone_id": 1
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/test/shipping_zone_test.py b/test/shipping_zone_test.py
new file mode 100644
index 0000000..e81cfe6
--- /dev/null
+++ b/test/shipping_zone_test.py
@@ -0,0 +1,11 @@
+import shopify
+from test.test_helper import TestCase
+
+class ShippingZoneTest(TestCase):
+    def test_get_shipping_zones(self):
+        self.fake("shipping_zones", method='GET', body=self.load_fixture('shipping_zones'))
+        shipping_zones = shopify.ShippingZone.find()
+        self.assertEqual(1,len(shipping_zones))
+        self.assertEqual(shipping_zones[0].name,"Some zone")	
+        self.assertEqual(3,len(shipping_zones[0].countries))
+