Naturefit

Nature Fit is a single-brand Shopify store selling women's footwear in India, so the connector is the Shopify Admin API plus the open storefront products.json.

Nature Fit is a small Indian direct-to-consumer footwear brand selling women's sneakers, joggers and casual shoes at naturefit.co.in. It is a brand's own store, not a marketplace, and it has no sellers, no partner programme and no API of its own. The useful finding for a connector is the platform underneath: Nature Fit runs on Shopify. That means the integration is already built. Point the Shopify connector at this store, and everything documented for Shopify applies without modification.

At a glance

What it is

Nature Fit sells women's footwear, primarily sneakers and joggers, into the Indian market at value price points. The catalogue is small: the store's public product feed returned 25 products on 2026-09-21. Products are sized on a UK-style numeric grid, with Shoe size as the single variant option running from 3 to 8.

The commercial shape is visible in the data and worth noting because it changes how price should be interpreted. The sample product below lists at 799.00 against a compare_at_price of 2499.00, a 68 percent nominal discount that is present at rest rather than as a promotion. On stores like this, compare_at_price is a merchandising anchor, not a real MRP, and mapping it to listings.list_price without a caveat will produce nonsense in any margin or discount analysis.

API access

Nature Fit publishes no API of its own. The platform identification is unambiguous:

  • naturefit.co.in serves Shopify assets throughout, with an embedded Shopify.shop configuration object and references to cdn.shopify.com across the page.
  • The underlying Shopify store handle is f8ffff-tw.myshopify.com. Note that this handle bears no resemblance to the brand name, which is common for stores set up from a template or by an agency. Key on the handle regardless, because the custom domain can change and the handle cannot.
  • naturefit.co.in/products.json responds with a standard Shopify product list.

Access is therefore obtained the ordinary Shopify way. Either:

  1. Custom app. The store owner creates a custom app in Shopify admin, grants the scopes you need, and issues an Admin API access token. Right for a single store, takes minutes, and the token does not expire.
  2. Public app. Register on shopify.dev and have the store install through the OAuth authorization code flow. Right if the same connector serves many stores.

Shopify versions the Admin API quarterly in the form 2026-07 and supports each version for at least twelve months. Pin a version and schedule the upgrade. Official libraries exist for Node, Ruby, PHP, Python and .NET.

Note

This page does not restate the Shopify API. Endpoint paths, request bodies, pagination, rate limits and webhook topics belong on the Shopify connector page, and duplicating them here guarantees drift. What belongs here is the identification: this brand is Shopify, the handle is f8ffff-tw.myshopify.com, and the connector already exists.

Authentication

Two supported routes, both Shopify's.

For a custom app, the token is issued in the admin and sent as a header on every call:

GET /admin/api/2026-07/orders.json?status=any&limit=50 HTTP/1.1
Host: f8ffff-tw.myshopify.com
X-Shopify-Access-Token: shpat_REDACTED
Content-Type: application/json

For a public app, the store is redirected to Shopify's authorization endpoint, returns with a code, and the code is exchanged at POST https://f8ffff-tw.myshopify.com/admin/oauth/access_token with the client id, client secret and code in the request body. The resulting Admin API token does not expire and there is no refresh step; access ends when the app is uninstalled.

Scopes are granular. Request only what the connector uses: read_orders, read_products, write_products, read_inventory, write_inventory, read_fulfillments. On a public app, read_orders is limited to the last sixty days unless Shopify grants the protected customer data scope, which matters for any historical backfill.

Objects we can read

All standard Shopify objects are available: orders, line items, products and variants, inventory levels and items, fulfilments, refunds and returns, transactions and payouts, customers, and locations. Endpoints, filters and pagination are documented on the Shopify connector page and on shopify.dev and are not repeated here.

What is worth recording on this page is the open storefront feed, which needs no credentials and is usable for catalogue and price monitoring before any token exists.

Products and listings

GET https://naturefit.co.in/products.json?limit=1 returns live catalogue data unauthenticated. Real response from 2026-09-21, trimmed to one variant and one image:

{
  "products": [
    {
      "id": 10038901932331,
      "title": "Nature Fit Joggers for women (Beige)",
      "handle": "nature-fit-joggers-for-women-beige-copy",
      "published_at": "2025-07-27T13:12:58+05:30",
      "created_at": "2025-07-27T13:08:54+05:30",
      "updated_at": "2026-09-21T22:30:41+05:30",
      "vendor": "Nature Fit",
      "product_type": "",
      "tags": ["Sneakers", "women shoes"],
      "variants": [
        {
          "id": 51083451236651,
          "title": "3",
          "option1": "3",
          "sku": "NF504BG36",
          "requires_shipping": true,
          "taxable": true,
          "available": true,
          "price": "799.00",
          "compare_at_price": "2499.00",
          "grams": 400,
          "position": 1,
          "product_id": 10038901932331,
          "updated_at": "2026-09-21T22:30:41+05:30"
        }
      ],
      "images": [
        {
          "id": 50465352188203,
          "position": 1,
          "product_id": 10038901932331,
          "src": "https://cdn.shopify.com/s/files/1/0934/2723/7163/files/nature-fit-joggers-for-women-beigenature-fit-joggers-for-women-beige-3704015.jpg?v=1753689416",
          "width": 1536,
          "height": 2048
        }
      ],
      "options": [
        {
          "name": "Shoe size",
          "position": 1,
          "values": ["3", "4", "5", "6", "7", "8"]
        }
      ]
    }
  ]
}

Three things to notice. The SKU NF504BG36 is properly structured, encoding a style, a colour and a size, so SKU is a usable key on this store, unlike on some small Shopify stores where SKUs are reused across variants. The grams field is populated at 400, which means shipping weight is real data here and can feed shipments.weight_grams. And available is a boolean, not a quantity: the public feed deliberately omits stock counts, so actual quantities require the Admin API and the read_inventory scope.

The feed paginates with ?page=, is capped at 250 products per page, and exposes only published products. With 25 products in the catalogue, a single request covers the whole store.

Note also that the product handle ends in -copy, which indicates the product was duplicated in the admin and the handle never cleaned up. Do not derive anything meaningful from handles on small stores; use id for identity and handle only to construct the public URL.

Writing back: listings, price and stock

Fully supported through the Shopify Admin API: create and update products and variants, set price and compare_at_price, publish or unpublish, and adjust or set inventory through inventory levels at a location. Bulk changes go through Shopify's GraphQL bulk operations rather than looping REST calls, though at 25 products that is unnecessary here.

Webhooks and notifications

Shopify's standard webhook system applies. Subscribe to orders/create, orders/updated, orders/cancelled, products/update, inventory_levels/update and refunds/create. Every delivery is signed with an HMAC-SHA256 of the raw request body using the app's shared secret, in the X-Shopify-Hmac-Sha256 header. Verify against the raw bytes before parsing. Shopify retries failures over roughly 48 hours and removes a persistently failing subscription, so keep a reconciliation poll as a backstop.

Rate limits and pagination

Shopify's limits apply unchanged: a leaky bucket on REST exposed in X-Shopify-Shop-Api-Call-Limit, and a query-cost budget on GraphQL returned in the response extensions. Pagination is cursor-based through Link headers on REST and pageInfo cursors on GraphQL. A store this size will never approach the limits.

Mapping to the unified model

Gaps and open questions

  • Whether the store uses Shopify Payments or an Indian gateway such as Razorpay or Cashfree. Indian Shopify stores commonly use a local gateway, in which case settlement data lives there and not in Shopify, and settlements cannot be filled from this connector at all.
  • Whether compare_at_price is ever a genuine MRP on this store or is always an anchor. On the sample it is 3.1 times the selling price, which suggests the latter, but one product is not a pattern.
  • Whether the brand also sells on marketplaces such as Amazon, Flipkart or Myntra. If so those are separate channels and this page covers only the owned store.
  • Whether a single fulfilment location is in use, which is the normal case at 25 products but should be confirmed before writing inventory.
  • The mismatch between the f8ffff-tw handle and the brand name suggests the store may have been set up by an agency or from a template. Confirm who controls the Shopify admin before requesting a custom app token.

Sources

  • Nature Fit storefront, confirming the Shopify platform, the f8ffff-tw.myshopify.com handle, the women's footwear assortment and the Indian market: naturefit.co.in
  • The store's open Shopify product feed, from which the sample response above was taken verbatim, and which returned 25 products on 2026-09-21: naturefit.co.in/products.json
  • Shopify Admin API reference, for the authentication, objects, webhooks and limits summarised here: shopify.dev/docs/api/admin
  • See also the Shopify connector page at /connectors/shopify for the full API surface