Zid Docs
Merchant APIApp APIThemes
Merchant APIApp APIThemes
Help Center
Slack
  1. Managing Products
  • Start Here 🚀
  • Overview to Zid Apps
  • Authorization
  • Responses
  • Webhooks
  • Rate Limiting
  • APIs
    • Orders
      • Update Order by ID
      • Get Order Credit Notes
      • Get Order by ID
      • List of Orders
    • Reverse Orders
      • Reverse Order Reasons
      • Create Reverse Orders
      • Create Reverse Orders Waybill
      • Add Reverse Order Reasons
    • Carts
      • Get Abandoned Cart Details
      • List Abandoned Carts
    • Products
      • Managing Products
        • Get a Product by ID
          GET
        • Retrieve a list of products
          GET
        • Create a new product
          POST
        • Update an existing product.
          PATCH
        • Bulk update of products using their IDs or SKUs
          PATCH
        • Delete a product.
          DELETE
        • Product Setting
          GET
      • Digital Vouchers
        • Product Vouchers
        • Order Voucher
        • Add Product Voucher
        • Import Vouchers
        • Export Vouchers
        • Update Product Voucher
        • Remove Product Voucher
      • Product Categories
        • Get Single Category Details
        • Get all categories
        • Create Store Category
        • Update a Store Category
        • Add a product to a certain category
        • Publish/Unpublish a Category
        • Detach Category from All Products
        • Remove Category from Product
      • Product Badge
        • Product Badge
      • Product Attributes
        • Get Product Attributes
        • Get Product Attributes
        • Retrieve a product attribute
        • Add a New Product Attribute
        • Add a New Product Attribute
        • Update a product attribute
        • Delete a product attribute
      • Product Attribute Presets
        • Get attribute presets
        • Create Attribute Preset
        • Update Attribute Preset
        • Delete an attribute preset
      • Product Customizations
        • Add Product Variants
        • Insert Custom Options to a Product
        • Insert Custom User-Input Fields to a Product
      • Product Manual Sorting
        • Set Custom Product Order
        • Reset the manual sorting of all products
      • Product Images
        • Get List of images of a product.
        • Add an image to a product
        • Update a product Image Order
        • Delete a product image
      • Product Notifications
        • Availability Notification Stats
        • Availability Notifications Settings
        • List Availability Notifications
        • Add Availability Notification
        • Save Availability Notifications Settings
        • Manually Send Availability Notification Email
        • Export Availability Notifications
      • Product Import
        • Email All Products to Store Owner
        • Import Products via CSV or xlsx File
      • Product Stock (Multi-Inventory)
        • Get Product Stock by ID
        • List Product Stocks
        • Add Product Stock
        • Update Single Product Stock
        • Bulk Update Product Stocks
      • Product Questions & Answers
        • Get Question
        • Get Answer
        • Get All Questions
        • List Question Answers
        • Create Question
        • Create Answer
        • Update Question
        • Update Answer
        • Delete Question
        • Delete Answer
      • Product Reviews
        • List Reviews
        • New Reviews Total
      • Digital Products
        • Create Downloadable Product
        • Generate an Upload URL
        • Upload File to S3
        • Create Product Downloadables
        • Get Product Downloadables
        • Delete Product Downloadables
        • Get Store Downloadables
        • Create Store Downloadables
        • Delete Store Downloadables
    • Inventories
      • Get Store Location by ID
      • List Store Locations
      • Add a New Location
      • Update a Location by ID
      • Update Products Stock by Location ID
    • Shipping
      • List Store Delivery Options
      • Add Shipping Option
    • Marketing
      • Gift Cards
        • Get Store Settings
        • Add gift card to the cart
        • Update Store Settings
        • Upload gift card designs
        • Remove gift card from the cart
      • Coupons
        • Create a New Coupon
        • List Coupons
        • Get Coupon Details
        • Update Coupon
        • Delete Coupon
      • Bundle Offers
        • Retrieve all Bundle Offers
      • Loyalty Program
        • Loyalty Program Points per Order
        • Store Loyalty Status
        • Info Page
        • Loyalty Program Activation
        • Loyalty Status
        • Set Points Expiration
        • Cashback Rule Method Update
        • Cashback Rule Method Update Status
        • Add Points Redemption Method
        • Update Points Redemption Method
        • Delete Points Redemption Method
        • Toggle Redemption Method Status
        • Show Loyalty Points Info for Specific Customer
        • Customer Profile
        • List Data
        • Customer Points History
        • Info Page - Managers
        • Update Info Page
        • Adjust Customer Points
    • Customers
      • List of Customers
      • Get Customer by ID
    • Store Settings
      • 📄 User Roles and Permissions
      • Get Manager's Profile
      • Get VAT Settings
      • List of Payment Method
    • Countries and Cities
      • Retrieve Store Operating Countries
      • Retrieve Cities by Country ID
      • Countries List
    • Webhook
      • List of Webhooks
      • Create a Webhook
      • Delete a Webhook by OriginalId
      • Delete a Webhook by Subscriber
  • Store Events
    • Order
    • Product
    • Abandoned Cart
    • Customer
    • Product Category
  1. Managing Products

Get a Product by ID

GET
https://api.zid.sa/v1/products/{product_id}/
Products
Get product by ID as Manager or as Customer.
Managers need to provide the Authorization and X-Manager-Token headers, and the Role should be set to Manager.
Customers don't need an authorization token, and the Role should be set to Customer.
Both Customer and Manager get essentially the same object with two key differences for managers:
1.
In the Manager response, both the name field and the value field in the attributes array are objects containing "ar" (Arabic) and "en" (English) strings, while in the Customer response, they are just single strings.
2.
The Manager response contains two additional fields: created_at and updated_at, which provide timestamps for when the product was created and last updated.
These are the main structural differences between the two responses. Other than that, they share the same structure, including the nested arrays and objects.
🔑Scopes
products.read - Products Read

Request

Path Params
product_id
string 
required
Example:
107c2ff5-5c70-4749-b9bd-56dc1793013b
Header Params
Store-Id
number 
required
Example:
37213
Accept-Language
enum<string> 
optional
Preferred language for the response (No effect for Managers; defaults to en for Customers if not provided).
Allowed values:
aren
Role
enum<string> 
required
Role of the user.
Allowed values:
ManagerCustomer
Example:
Manager
Authorization
string 
required
The Authorization token is a unique key given to the third-party application (Partner) by Zid. It is used to authenticate the API requests made by the Partner application. The token verifies the partner's identity and ensures they have permission to access Zid's API but does not provide any specific user or store information. It should be included in the header of API requests when the partner application needs to access Zid's API.
Example:
Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxMTciLCJqdGkiOiJhMTg5ZTg3MmYxMzhkMWVhYjU5MjVkMDkyMGE5NmI0YjliNjg0Y2E2ZTdmM2M2MjljZWYxNmQ4NDJjMmJlYmVhMjI4YTdmMTA0ZWQ4NWE5NCIsImlhdCI6MTY3OTU3Njk5OS41NjY4NzcsIm5iZiI6MTY3OTU3Njk5OS41NjY4OCwiZXhwIjoxNzExMTk5Mzk5LjQ4NjE1Mywic3ViIjoiMTgyNDc1Iiwic2NvcGVzIjpbInRoaXJkLXBhcnRpZXMtYXBpcyJdfQ.i07ef09nVNXGZF-g-QXpNoS2vlFQK_zntAqAMS4Az2XD2EyMLhxLZZRL-QlR11zUPqMmXjMAl_4ooKa3M3zkfZQ6Ga6qStvamk8RnC_39VUx0lfN2A4k65ERZpqwrMy6-t3dE99zay3aicIdNvbgi0zeuMSE5Tn99u-2AtSRa8ffbfAcYPPXacHrhdmlYzdiZS_x_skovFEow1E-nDjdL1WHqO92XdZ7RfNLkiYFTjZlZmM_UruvioaR3q6TXJbqRK_ZrziivezL8ohIQ2SBosUp58I29rlKzvlw_R2j0rKKYZbdxYDaxAHOISmOFKAlO66k7dNevAHI3s4uGIjoGA6ZXHknccWPLLLiaAQ0r64HV8GowW5dg2rhZNurJGDTnLlBQ6F-ql42ptHzSAfzzi576CEoN3gMVpgXcbntUY3reETkFsTBPUjeSuMpANMioXAA0GRp3Ut-84fTnrWxqsCW1WVUIx33HvmfCGPXIdkaCCWoA6G6KXo04MtFbKXQmXkK9esQWI-rqdVnMD3zSR3g3yFHZSL1U-mZeNja03706Rav1ordsRNOtRwtLuoRRbk9KasbUpEwqq4Ao9lqZZwRIjdEw-pQtnUT8V53fhmuuRIefCLFO7eGEtGUnh9o6Uh_pgi6AB6uSlnN9GEMGgI1alqvMmTjxvC-HHt0V-Y
Access-Token
string 
required
An Access Token is a unique string that represents the authorization granted to a client (Partner application) by a user (Merchant or Store Manager) to access their protected resources. It is part of the OAuth 2.0 standard and is used to authenticate API requests on behalf of the user. Access Tokens have a limited lifespan and must be used within their validity period. Once expired, a new Access Token can be obtained using a Refresh Token. Access Tokens should be treated as sensitive information and must be kept secure to prevent unauthorized access to the user's data. If you do not have an Access-Token, but have the older alternative instead, i.e., the X-Manager-Token, then see the instructions here on how to obtain the Access-Token.
Example:
eyJpdiI6Imh3L2dGbmJmRnVCOUY4WW5WQ2s3RFE9PSIsInZhbHVlIjoiZklpRnJyVGV1OWcrZUJBNk44bVp5SjZzSS92V3czcTJjbnJ2dFYvenZ3SFBtWHNSMFU3ZEMzZ0ZJNnpucVE4Ui9rNFdicUduOGpKUlg1VXdGOFFIaVUzZjZyUUZybWx3R0tNY3orUmxoUUUxQ29wSkEyVDZTVnVYb2dlUXJSVzBYVkdESjBpS0xiN05Hbndzc2wzV2N0YitGM1NEdkk4ckZZOTZsTFdEL1ZQRlJJTE5FQmttZng2elpwL1RCeXFRdUd1U3JTc0FHV1kySS80RFJaWlIyZ3gwM2FsQVRFbkt3VWtFOUQyKzdGOD0iLCJtYWMiOiJmZDQ0YzM4ODE0OWQxOWRhYWU0NDhhYmIzYzQ1MDAxMDAzODZjZGM3ZGM4NGJhMGNkMDEyYWZlM2UzYjAxMTI4IiwidGFnIjoiIn0=

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request GET 'https://api.zid.sa/v1/products//' \
--header 'Store-Id;' \
--header 'Accept-Language;' \
--header 'Role;' \
--header 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIxMTciLCJqdGkiOiJhMTg5ZTg3MmYxMzhkMWVhYjU5MjVkMDkyMGE5NmI0YjliNjg0Y2E2ZTdmM2M2MjljZWYxNmQ4NDJjMmJlYmVhMjI4YTdmMTA0ZWQ4NWE5NCIsImlhdCI6MTY3OTU3Njk5OS41NjY4NzcsIm5iZiI6MTY3OTU3Njk5OS41NjY4OCwiZXhwIjoxNzExMTk5Mzk5LjQ4NjE1Mywic3ViIjoiMTgyNDc1Iiwic2NvcGVzIjpbInRoaXJkLXBhcnRpZXMtYXBpcyJdfQ.i07ef09nVNXGZF-g-QXpNoS2vlFQK_zntAqAMS4Az2XD2EyMLhxLZZRL-QlR11zUPqMmXjMAl_4ooKa3M3zkfZQ6Ga6qStvamk8RnC_39VUx0lfN2A4k65ERZpqwrMy6-t3dE99zay3aicIdNvbgi0zeuMSE5Tn99u-2AtSRa8ffbfAcYPPXacHrhdmlYzdiZS_x_skovFEow1E-nDjdL1WHqO92XdZ7RfNLkiYFTjZlZmM_UruvioaR3q6TXJbqRK_ZrziivezL8ohIQ2SBosUp58I29rlKzvlw_R2j0rKKYZbdxYDaxAHOISmOFKAlO66k7dNevAHI3s4uGIjoGA6ZXHknccWPLLLiaAQ0r64HV8GowW5dg2rhZNurJGDTnLlBQ6F-ql42ptHzSAfzzi576CEoN3gMVpgXcbntUY3reETkFsTBPUjeSuMpANMioXAA0GRp3Ut-84fTnrWxqsCW1WVUIx33HvmfCGPXIdkaCCWoA6G6KXo04MtFbKXQmXkK9esQWI-rqdVnMD3zSR3g3yFHZSL1U-mZeNja03706Rav1ordsRNOtRwtLuoRRbk9KasbUpEwqq4Ao9lqZZwRIjdEw-pQtnUT8V53fhmuuRIefCLFO7eGEtGUnh9o6Uh_pgi6AB6uSlnN9GEMGgI1alqvMmTjxvC-HHt0V-Y' \
--header 'Access-Token: eyJpdiI6Imh3L2dGbmJmRnVCOUY4WW5WQ2s3RFE9PSIsInZhbHVlIjoiZklpRnJyVGV1OWcrZUJBNk44bVp5SjZzSS92V3czcTJjbnJ2dFYvenZ3SFBtWHNSMFU3ZEMzZ0ZJNnpucVE4Ui9rNFdicUduOGpKUlg1VXdGOFFIaVUzZjZyUUZybWx3R0tNY3orUmxoUUUxQ29wSkEyVDZTVnVYb2dlUXJSVzBYVkdESjBpS0xiN05Hbndzc2wzV2N0YitGM1NEdkk4ckZZOTZsTFdEL1ZQRlJJTE5FQmttZng2elpwL1RCeXFRdUd1U3JTc0FHV1kySS80RFJaWlIyZ3gwM2FsQVRFbkt3VWtFOUQyKzdGOD0iLCJtYWMiOiJmZDQ0YzM4ODE0OWQxOWRhYWU0NDhhYmIzYzQ1MDAxMDAzODZjZGM3ZGM4NGJhMGNkMDEyYWZlM2UzYjAxMTI4IiwidGFnIjoiIn0='

Responses

🟢200Successful operation
application/json
Body
optional
One of
is_external_product
boolean 
optional
This property is used to indicate whether the product is sourced externally.
Default:
false
id
null 
optional
Unique identifier for the product. (Set to null if is_external_product is true)
parent_id
null 
optional
Unique identifier for the parent product, if any. This product could be a variant of the parent product. (Set to null if is_external_product is true)
product_class
string 
optional
Set to "grouped_product" to indicate it's a group of sub-products.
sku
string 
optional
Stock Keeping Unit - unique identifier that allows a product to be tracked for inventory purposes.
barcode
string 
optional
This field allows you to specify a barcode associated with the product, if applicable.
name
object 
optional
Localized product name in Arabic (ar) and English (en).
slug
string 
optional
SEO friendly URL, usually derived from the product name.
price
integer 
optional
Base price of the grouped product (100.0).
short_description
null 
optional
This field is optional and can be used to provide a brief description of the product.
sale_price
integer 
optional
If the product is on sale, this field specifies the discounted price in the smallest currency unit.
Example:
50
formatted_price
string 
optional
This field contains the base price formatted according to the currency settings.
Example:
10$
formatted_sale_price
string 
optional
If applicable, this field holds the formatted discounted price.
Example:
8$
currency
string 
optional
currency_symbol
string 
optional
Shows the currency type.
attributes
array [object] 
optional
categories
array [object] 
optional
display_order
null 
optional
This field is currently unused but might be reserved for future functionalities related to product display order.
has_options
boolean 
optional
This flag indicates whether the product has options (variations) available. (e.g., different sizes or colors).
Default:
false
has_fields
boolean 
optional
This flag signifies whether the product has custom form fields associated with it.
images
array [object] 
optional
This array stores information about the product images.
is_draft
boolean 
optional
Indicates if the product is a draft (False - published).
quantity
null 
optional
Shows the quanitity of the product.
is_infinite
boolean 
optional
html_url
string 
optional
This field contains the URL for the product page on your storefront.
weight
object 
optional
Weight of the product.
keywords
array [object] 
optional
This array allows you to define a list of relevant keywords associated with the product for better search optimization.
requires_shipping
boolean 
optional
is_taxable
boolean 
optional
Indicates if the product is taxable.
Default:
false
structure
string 
optional
seo
object 
optional
SEO-related data for the product.
rating
object 
optional
This object provides average product rating information.
store_id
integer 
optional
Unique identifier of the store in which the product is listed.
purchase_restrictions
object 
optional
metafields
null 
optional
meta
object 
optional
badge
object 
optional
related_products_settings
string 
optional
related_products_title
null 
optional
variants
array [object] 
optional
options
array [object] 
optional
cost
integer 
optional
is_published
boolean 
optional
Indicates if the product is published and visible (true).
waiting_customers_count
null 
optional
description
object 
optional
custom_user_input_fields
array [object] 
optional
custom_option_fields
array [object] 
optional
related_products
array [object] 
optional
next_product
null 
optional
previous_product
null 
optional
group_products
array [object {6}] 
optional
An array of objects representing the sub-products included in the grouped product. Only required when product_class is set to "grouped_product". Refer to the Update Existing Product documentation for details on the "group_products" fields.
stocks
array [object {4}] 
optional
This array provides details about product stock.
sold_products_count
null 
optional
created_at
string 
optional
Date and time the product was created.
updated_at
string 
optional
Date and time the product was last updated.
Example
{
  "is_external_product": false,
  "id": null,
  "parent_id": null,
  "product_class": "string",
  "sku": "string",
  "barcode": "string",
  "name": {
    "ar": "string",
    "en": "string"
  },
  "slug": "string",
  "price": 0,
  "short_description": null,
  "sale_price": 50,
  "formatted_price": "10$",
  "formatted_sale_price": "8$",
  "currency": "string",
  "currency_symbol": "string",
  "attributes": [
    {}
  ],
  "categories": [
    {}
  ],
  "display_order": null,
  "has_options": false,
  "has_fields": true,
  "images": [
    {}
  ],
  "is_draft": true,
  "quantity": null,
  "is_infinite": true,
  "html_url": "string",
  "weight": {
    "value": 100,
    "unit": "kg"
  },
  "keywords": [
    {}
  ],
  "requires_shipping": true,
  "is_taxable": false,
  "structure": "string",
  "seo": {
    "title": {
      "ar": "string",
      "en": "string"
    },
    "description": {}
  },
  "rating": {
    "average": 3.9,
    "total_count": 400,
    "1_ratings": {
      "percentage": 0,
      "count": 0
    },
    "2_ratings": {
      "percentage": 0,
      "count": 0
    },
    "3_ratings": {
      "percentage": 0,
      "count": 0
    },
    "4_ratings": {
      "percentage": 0,
      "count": 0
    },
    "5_ratings": {
      "percentage": 0,
      "count": 0
    }
  },
  "store_id": 0,
  "purchase_restrictions": {
    "min_quantity_per_cart": null,
    "max_quantity_per_cart": null,
    "availability_period_start": null,
    "availability_period_end": null,
    "sale_price_period_start": "2024-09-18T21:00:00.000000Z",
    "sale_price_period_end": "2024-09-19T20:59:59.000000Z"
  },
  "metafields": null,
  "meta": {},
  "badge": {
    "body": {
      "ar": "string",
      "en": "string"
    },
    "icon": {
      "code": "string"
    }
  },
  "related_products_settings": "string",
  "related_products_title": null,
  "variants": [
    {}
  ],
  "options": [
    {}
  ],
  "cost": 0,
  "is_published": true,
  "waiting_customers_count": null,
  "description": {},
  "custom_user_input_fields": [
    {}
  ],
  "custom_option_fields": [
    {}
  ],
  "related_products": [
    {}
  ],
  "next_product": null,
  "previous_product": null,
  "group_products": [
    {
      "id": "143",
      "item": {
        "id": "string",
        "product_class": null,
        "sku": "string",
        "barcode": "string",
        "parent_id": null,
        "name": {
          "ar": "string",
          "en": "string"
        },
        "slug": "string",
        "price": 0,
        "short_description": null,
        "sale_price": null,
        "formatted_price": "string",
        "formatted_sale_price": null,
        "currency": "string",
        "currency_symbol": "string",
        "attributes": [
          {}
        ],
        "categories": [
          {}
        ],
        "display_order": null,
        "has_options": true,
        "has_fields": true,
        "images": [
          {}
        ],
        "is_draft": true,
        "quantity": null,
        "is_infinite": true,
        "html_url": "string",
        "weight": {
          "value": null,
          "unit": "string"
        },
        "keywords": [
          {}
        ],
        "requires_shipping": true,
        "is_taxable": true,
        "structure": "string",
        "seo": {
          "title": {
            "ar": "string",
            "en": "string"
          },
          "description": {}
        },
        "rating": {
          "average": 4.1,
          "total_count": 50,
          "1_ratings": {
            "percentage": 0,
            "count": 0
          },
          "2_ratings": {
            "percentage": 0,
            "count": 0
          },
          "3_ratings": {
            "percentage": 0,
            "count": 0
          },
          "4_ratings": {
            "percentage": 0,
            "count": 0
          },
          "5_ratings": {
            "percentage": 0,
            "count": 0
          }
        },
        "store_id": 0,
        "purchase_restrictions": {
          "min_quantity_per_cart": null,
          "max_quantity_per_cart": null,
          "availability_period_start": null,
          "availability_period_end": null
        },
        "metafields": null,
        "meta": null,
        "badge": null,
        "related_products_settings": "string",
        "related_products_title": null,
        "created_at": "string",
        "updated_at": "string",
        "options": [
          {}
        ],
        "group_products": null,
        "stocks": [
          {
            "id": "string",
            "location": {
              "id": "string",
              "name": {
                "ar": "string"
              },
              "type": "string"
            },
            "available_quantity": null,
            "is_infinite": false
          }
        ]
      },
      "origin_product_id": "string",
      "item_id": "string",
      "item_quantity": 0,
      "in_stock": true
    }
  ],
  "stocks": [
    {
      "id": "string",
      "location": {
        "id": "string",
        "name": {
          "ar": "string"
        },
        "type": "string"
      },
      "available_quantity": null,
      "is_infinite": true
    }
  ],
  "sold_products_count": null,
  "created_at": "string",
  "updated_at": "string"
}
Modified at 2025-01-15 08:06:41
Previous
Managing Products
Next
Retrieve a list of products
Built with