diff --git a/shopify/mixins.py b/shopify/mixins.py
index 9d3c179..c7806a0 100644
--- a/shopify/mixins.py
+++ b/shopify/mixins.py
@@ -11,8 +11,15 @@ class Countable(object):
 
 class Metafields(object):
 
-    def metafields(self):
-        return shopify.resources.Metafield.find(resource=self.__class__.plural, resource_id=self.id)
+    def metafields(self, _options=None, **kwargs):
+        if _options is None:
+            _options = kwargs
+        return shopify.resources.Metafield.find(resource=self.__class__.plural, resource_id=self.id, **_options)
+
+    def metafields_count(self, _options=None, **kwargs):
+        if _options is None:
+            _options = kwargs
+        return int(self.get("metafields/count", **_options))
 
     def add_metafield(self, metafield):
         if self.is_new():

metafields() method should be able to take options parameters for limit and page
```
import shopify
product = shopify.Product.find(5972485446)
metafields = product.metafields()
print(len(metafields))
> 50
metafields = product.metafields(limit=250)
> TypeError: metafields() got an unexpected keyword argument 'limit'
```
I looked into the code, and it seems like it may be a simple fix. If I come up with something I'll submit a pull request, if I can't I'll let it be known here so somebody else can try tackling it.
diff --git a/test/fixtures/metafields_count.json b/test/fixtures/metafields_count.json
new file mode 100644
index 0000000..a113c32
--- /dev/null
+++ b/test/fixtures/metafields_count.json
@@ -0,0 +1,1 @@
+{"count":2}
diff --git a/test/product_test.py b/test/product_test.py
index c48962a..dcc9ae7 100644
--- a/test/product_test.py
+++ b/test/product_test.py
@@ -28,6 +28,26 @@ class ProductTest(TestCase):
         for field in metafields:
             self.assertTrue(isinstance(field, shopify.Metafield))
 
+    def test_get_metafields_for_product_with_params(self):
+        self.fake("products/632910392/metafields.json?limit=2", extension=False, body=self.load_fixture('metafields'))
+
+        metafields = self.product.metafields(limit=2)
+        self.assertEqual(2, len(metafields))
+        for field in metafields:
+            self.assertTrue(isinstance(field, shopify.Metafield))
+
+    def test_get_metafields_for_product_count(self):
+        self.fake("products/632910392/metafields/count", body=self.load_fixture('metafields_count'))
+
+        metafields_count = self.product.metafields_count()
+        self.assertEqual(2, metafields_count)
+
+    def test_get_metafields_for_product_count_with_params(self):
+        self.fake("products/632910392/metafields/count.json?value_type=string", extension=False, body=self.load_fixture('metafields_count'))
+
+        metafields_count = self.product.metafields_count(value_type="string")
+        self.assertEqual(2, metafields_count)
+
     def test_update_loaded_variant(self):
         self.fake("products/632910392/variants/808950810", method='PUT', code=200, body=self.load_fixture('variant'))
 

pip install -e .
parse_log_pytest
pytest
mock>=1.0.1 pytest
3.9
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
exceptiongroup @ file:///croot/exceptiongroup_1706031385326/work
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
mock==5.2.0
packaging @ file:///croot/packaging_1734472117206/work
pluggy @ file:///croot/pluggy_1733169602837/work
pyactiveresource==2.2.2
pytest @ file:///croot/pytest_1738938843180/work
PyYAML==6.0.2
-e git+https://github.com/Shopify/shopify_python_api.git@a78109e725cf9e400f955062399767f36f3a1f44#egg=ShopifyAPI
six==1.17.0
tomli @ file:///opt/conda/conda-bld/tomli_1657175507142/work

name: shopify_python_api
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - exceptiongroup=1.2.0=py39h06a4308_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - packaging=24.2=py39h06a4308_0
  - pip=25.0=py39h06a4308_0
  - pluggy=1.5.0=py39h06a4308_0
  - pytest=8.3.4=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tomli=2.0.1=py39h06a4308_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - mock==5.2.0
      - pyactiveresource==2.2.2
      - pyyaml==6.0.2
      - six==1.17.0
prefix: /opt/conda/envs/shopify_python_api

test/product_test.py::ProductTest::test_get_metafields_for_product_count test/product_test.py::ProductTest::test_get_metafields_for_product_count_with_params test/product_test.py::ProductTest::test_get_metafields_for_product_with_params
test/product_test.py::ProductTest::test_add_metafields_to_product test/product_test.py::ProductTest::test_add_variant_to_product test/product_test.py::ProductTest::test_get_metafields_for_product test/product_test.py::ProductTest::test_update_loaded_variant
shopify/mixins.py
shopify/mixins.py