{
  "openapi": "3.1.0",
  "info": {
    "version": "1.0",
    "title": "CE Storefront APIs",
    "summary": "Customer-facing e-commerce API for building exceptional shopping experiences",
    "description": "Public-facing API for Commerce Engine storefronts, enabling seamless shopping experiences with product browsing, cart management, checkout processing, user accounts, and order tracking. Perfect for building web, mobile, and headless commerce applications.",
    "contact": {
      "name": "Support",
      "email": "support@commercengine.io",
      "url": "https://www.commercengine.io/contact-us"
    },
    "license": {
      "url": "https://www.commercengine.io/contact-us",
      "name": "All Rights Reserved"
    }
  },
  "externalDocs": {
    "url": "https://llm-docs.commercengine.io",
    "description": "Commerce Engine API Reference Documentation"
  },
  "servers": [
    {
      "url": "https://staging.api.commercengine.io/api/v1/{store_id}/storefront",
      "description": "Staging Server",
      "variables": {
        "store_id": {
          "description": "Store ID",
          "default": "store_id"
        }
      },
      "x-speakeasy-server-id": "staging"
    },
    {
      "url": "https://prod.api.commercengine.io/api/v1/{store_id}/storefront",
      "description": "Prod Server",
      "variables": {
        "store_id": {
          "description": "Store ID",
          "default": "store_id"
        }
      },
      "x-speakeasy-server-id": "prod"
    }
  ],
  "tags": [
    {
      "name": "Analytics",
      "description": "Analytics"
    },
    {
      "name": "Auth",
      "description": "auth"
    },
    {
      "name": "Campaigns",
      "description": "Campaigns"
    },
    {
      "name": "Carts",
      "description": "Carts and wishlists"
    },
    {
      "name": "Catalog",
      "description": "Products, variants, categories, attributes, inventory"
    },
    {
      "name": "Common",
      "description": "Common"
    },
    {
      "name": "Customers",
      "description": "Customers, addresses, KYC, loyalty"
    },
    {
      "name": "Juspay",
      "description": "Juspay Payments"
    },
    {
      "name": "KYC",
      "description": "KYC"
    },
    {
      "name": "Marketplace",
      "description": "Marketplace ↔ seller store synchronisation"
    },
    {
      "name": "Orders",
      "description": "Order lifecycle"
    },
    {
      "name": "Payments",
      "description": "Payments and refunds"
    },
    {
      "name": "PayU",
      "description": "PayU Payments"
    },
    {
      "name": "Store",
      "description": "Store configuration"
    },
    {
      "name": "Subscriptions",
      "description": "Subscriptions"
    }
  ],
  "paths": {
    "/analytics/track": {
      "post": {
        "tags": [
          "Analytics"
        ],
        "operationId": "track-analytics-event",
        "summary": "Track event",
        "description": "Track event",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/track-analytics-event",
          "description": "API reference for the track-analytics-event operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyticsEvent"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "analytics",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "trackAnalyticsEvent"
      }
    },
    "/auth/anonymous": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "get-anonymous-token",
        "summary": "Create anonymous session",
        "description": "Creates an anonymous user session with a persistent `user_id` for analytics and cart tracking. Returns an `AnonymousUser` object with `access_token` and `refresh_token`. Call this before any other authenticated endpoint for guest users.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-anonymous-token",
          "description": "API reference for the get-anonymous-token operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A string containing a descriptive message related to the success or failure of the anonymous user creation or authentication.",
                      "type": "string"
                    },
                    "success": {
                      "description": "A boolean value indicates the success or failure of the anonymous user operation.`true` for success `false` for failure.",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "user": {
                          "description": "Information about the user, including their name, email, profile image, etc.",
                          "$ref": "#/components/schemas/AnonymousUser"
                        },
                        "access_token": {
                          "description": "It is a string-based token utilized for authentication and authorization.",
                          "type": "string"
                        },
                        "refresh_token": {
                          "description": "It is a string-based token designed for refreshing the user's access token. ",
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "access_token",
                        "refresh_token"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "GetUserCart": {
                "operationId": "get-user-cart",
                "parameters": {
                  "user_id": "$response.body#/content/user/user_id"
                },
                "description": "Retrieve the cart for this anonymous user."
              },
              "GetUserDetail": {
                "operationId": "get-user-detail",
                "parameters": {
                  "id": "$response.body#/content/user/user_id"
                },
                "description": "Retrieve the detail of this anonymous user."
              },
              "RefreshAnonymousToken": {
                "operationId": "refresh-token",
                "requestBody": {
                  "refresh_token": "$response.body#/content/refresh_token"
                },
                "description": "Refresh the access token using the refresh token."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getAnonymousToken"
      }
    },
    "/auth/change-password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "change-password",
        "summary": "Change password",
        "description": "Changes the authenticated user's password. Requires the current password and the new password.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/change-password",
          "description": "API reference for the change-password operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "old_password",
                  "new_password",
                  "confirm_password"
                ],
                "properties": {
                  "old_password": {
                    "description": "The old password associated with the user's account. This parameter is crucial for verifying the user's identity before allowing a password change.",
                    "type": "string"
                  },
                  "new_password": {
                    "description": "The new password that the user intends to set for their account. This parameter is necessary for updating the password to enhance account security.",
                    "type": "string"
                  },
                  "confirm_password": {
                    "description": "A confirmation of the new password.",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the change password operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "access_token": {
                          "description": "It is a string-based token utilized for authentication and authorization.",
                          "type": "string"
                        },
                        "refresh_token": {
                          "description": "It is a string-based token designed for refreshing the user's access token.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "access_token",
                        "refresh_token"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "changePassword"
      }
    },
    "/auth/customer-attributes": {
      "get": {
        "tags": [
          "Auth"
        ],
        "operationId": "list-customer-attributes",
        "summary": "List customer attributes",
        "description": "Retrieves active readonly attributes for account recovery flows such as `POST /auth/forgot-username`. Returns each attribute's `id`, `name`, and `attribute_type`. Requires an anonymous access token.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-customer-attributes",
          "description": "API reference for the list-customer-attributes operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Attributes retrieved successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "attributes": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/AuthCustomerAttribute"
                          }
                        }
                      },
                      "required": [
                        "attributes"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listCustomerAttributes"
      }
    },
    "/auth/forgot-password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "forgot-password",
        "summary": "Forgot password",
        "description": "Initiates password recovery by sending an OTP. Returns an `otp_token` to pass to the reset-password endpoint.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/forgot-password",
          "description": "API reference for the forgot-password operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DebugMode"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/SendOtpWithEmail"
                  },
                  {
                    "$ref": "#/components/schemas/SendOtpWithPhone"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "$ref": "#/components/schemas/OtpContent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "forgotPassword"
      }
    },
    "/auth/forgot-username": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "forgot-username",
        "summary": "Look up account by GSTIN or PAN",
        "description": "Finds a business by `gstin` or `pancard_number` in business `metadata` and returns the matched `Business` with linked users. Email and phone are masked. Requires an anonymous access token.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/forgot-username",
          "description": "API reference for the forgot-username operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "attribute_id",
                  "attribute_value"
                ],
                "properties": {
                  "attribute_id": {
                    "description": "The unique identifier of the customer attribute to match against.",
                    "type": "string"
                  },
                  "attribute_value": {
                    "description": "The attribute value to look up.",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Username retrieved successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "$ref": "#/components/schemas/ForgotUsernameContent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "forgotUsername"
      }
    },
    "/auth/generate-otp": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "generate-otp",
        "summary": "Generate OTP",
        "description": "Generates and sends an OTP for authentication or verification. Returns an `otp_token` to pass to the verify-otp endpoint.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/generate-otp",
          "description": "API reference for the generate-otp operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DebugMode"
          }
        ],
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/GenerateOtpWithPhone"
                  },
                  {
                    "$ref": "#/components/schemas/GenerateOtpWithEmail"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "otp_token": {
                          "description": "A string representing the OTP token.",
                          "type": "string"
                        },
                        "otp_action": {
                          "description": "This is used for verifying OTP or using subsequent APIs call.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "otp_token",
                        "otp_action"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "generateOtp"
      }
    },
    "/auth/login/email": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "login-with-email",
        "summary": "Login with email",
        "description": "Sends an OTP to the user's email address. Returns an `otp_token` to pass to the verify-otp endpoint. Set `register_if_not_exists` to `true` to auto-register new users on OTP verification.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/login-with-email",
          "description": "API reference for the login-with-email operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DebugMode"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "description": "User's email address.",
                    "type": "string",
                    "format": "email"
                  },
                  "register_if_not_exists": {
                    "description": "This is used to send OTP to unregistered phone. By default it sends OTP to registered phone only. \nTo send OTP to unregistered phone it should be pass with true value like this,\n\"register_if_not_exists\": true",
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the Login process.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "$ref": "#/components/schemas/OtpContent"
                    }
                  }
                }
              }
            },
            "links": {
              "VerifyEmailOtp": {
                "operationId": "verify-otp",
                "requestBody": {
                  "otp_action": "$response.body#/content/otp_action",
                  "otp_token": "$response.body#/content/otp_token"
                },
                "description": "Verify the OTP sent to the email address."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "loginWithEmail"
      }
    },
    "/auth/login/password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "login-with-password",
        "summary": "Login with password",
        "description": "Authenticates a user with email/phone and password. Returns a `User` object with `access_token` and `refresh_token`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/login-with-password",
          "description": "API reference for the login-with-password operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "oneOf": [
                  {
                    "required": [
                      "phone",
                      "password"
                    ],
                    "title": "phone",
                    "properties": {
                      "phone": {
                        "description": "User's phone number.",
                        "type": "string"
                      },
                      "country_code": {
                        "description": "Two-letter code begin with a plus sign prefix that identifies different countries. By default it will be +91 if not provided.\nUse this key along with phone. Not necessary for email.",
                        "type": "string",
                        "default": "+91"
                      },
                      "password": {
                        "description": "The password associated with the user's account.",
                        "type": "string"
                      }
                    }
                  },
                  {
                    "required": [
                      "email",
                      "password"
                    ],
                    "title": "email",
                    "properties": {
                      "email": {
                        "type": "string"
                      },
                      "password": {
                        "type": "string"
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the Login process.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "user": {
                          "description": "Information about the user, including their name, email, profile image, etc.",
                          "$ref": "#/components/schemas/User"
                        },
                        "access_token": {
                          "description": "It is a string-based token utilized for authentication and authorization.",
                          "type": "string"
                        },
                        "refresh_token": {
                          "description": "It is a string-based token designed for refreshing the user's access token.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "access_token",
                        "refresh_token"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "GetPasswordUserCart": {
                "operationId": "get-user-cart",
                "parameters": {
                  "user_id": "$response.body#/content/user/user_id"
                },
                "description": "Retrieve the cart for the logged-in user."
              },
              "RefreshPasswordToken": {
                "operationId": "refresh-token",
                "requestBody": {
                  "refresh_token": "$response.body#/content/refresh_token"
                },
                "description": "Refresh the access token using the refresh token."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "loginWithPassword"
      }
    },
    "/auth/login/phone": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "login-with-phone",
        "summary": "Login with phone",
        "description": "Sends an OTP to the user's phone number. Returns an `otp_token` to pass to the verify-otp endpoint. Set `register_if_not_exists` to `true` to auto-register new users on OTP verification.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/login-with-phone",
          "description": "API reference for the login-with-phone operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DebugMode"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "country_code": {
                    "description": "Two-letter code begin with a plus sign prefix that identifies different countries. By default it will be +91 if not provided.",
                    "type": "string",
                    "default": "+91",
                    "const": "+91"
                  },
                  "phone": {
                    "description": "10 digit phone number without country code.",
                    "type": "string",
                    "maxLength": 10,
                    "minLength": 10,
                    "pattern": "^[0-9]{10}$"
                  },
                  "register_if_not_exists": {
                    "description": "When `true`, auto-registers the user if the phone number is not found. Defaults to `false` (OTP sent only to registered users).",
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "$ref": "#/components/schemas/OtpContent"
                    }
                  }
                }
              }
            },
            "links": {
              "VerifyPhoneOtp": {
                "operationId": "verify-otp",
                "requestBody": {
                  "otp_action": "$response.body#/content/otp_action",
                  "otp_token": "$response.body#/content/otp_token"
                },
                "description": "Verify the OTP sent to the phone number."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "loginWithPhone"
      }
    },
    "/auth/login/whatsapp": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "login-with-whatsapp",
        "summary": "Login with WhatsApp",
        "description": "Sends an OTP to the user's WhatsApp number. Returns an `otp_token` to pass to the verify-otp endpoint. Set `register_if_not_exists` to `true` to auto-register new users on OTP verification.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/login-with-whatsapp",
          "description": "API reference for the login-with-whatsapp operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DebugMode"
          }
        ],
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "country_code": {
                    "description": "Two-letter code begin with a plus sign prefix that identifies different countries. By default it will be +91 if not provided.",
                    "const": "+91"
                  },
                  "phone": {
                    "description": "10 digit phone number without country code, linked with WhatsApp.",
                    "type": "string",
                    "maxLength": 10,
                    "minLength": 10,
                    "pattern": "^[0-9]{10}$"
                  },
                  "register_if_not_exists": {
                    "description": "When `true`, auto-registers the user if the phone number is not found. Defaults to `false` (OTP sent only to registered users).",
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the Login process.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "$ref": "#/components/schemas/OtpContent"
                    }
                  }
                }
              }
            },
            "links": {
              "VerifyWhatsappOtp": {
                "operationId": "verify-otp",
                "requestBody": {
                  "otp_action": "$response.body#/content/otp_action",
                  "otp_token": "$response.body#/content/otp_token"
                },
                "description": "Verify the OTP sent via WhatsApp."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "loginWithWhatsapp"
      }
    },
    "/auth/logout": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "logout",
        "summary": "Logout user",
        "description": "Invalidates the current session and logs the user out.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/logout",
          "description": "API reference for the logout operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "access_token": {
                          "description": "It is a string-based token utilized for authentication and authorization.",
                          "type": "string"
                        },
                        "refresh_token": {
                          "description": "It is a string-based token designed for refreshing the user's access token.",
                          "type": "string"
                        },
                        "user": {
                          "description": "An object representing user details.",
                          "$ref": "#/components/schemas/User"
                        }
                      },
                      "required": [
                        "access_token",
                        "refresh_token",
                        "user"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "logout"
      }
    },
    "/auth/refresh-token": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "refresh-token",
        "summary": "Refresh access token",
        "description": "Exchanges a `refresh_token` for a new `access_token` and `refresh_token` pair. Use this to extend user sessions without re-authentication.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/refresh-token",
          "description": "API reference for the refresh-token operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "refresh_token"
                ],
                "properties": {
                  "refresh_token": {
                    "description": "A string representing the refresh token.",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "access_token": {
                          "description": "It is a string-based token utilized for authentication and authorization.",
                          "type": "string"
                        },
                        "refresh_token": {
                          "description": "It is a string-based token designed for refreshing the user's access token.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "access_token",
                        "refresh_token"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "refreshToken"
      }
    },
    "/auth/register/email": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "register-with-email",
        "summary": "Register with email",
        "description": "Registers a new user with their email address. Returns a `User` object with `access_token` and `refresh_token`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/register-with-email",
          "description": "API reference for the register-with-email operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DebugMode"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email",
                  "first_name"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "first_name": {
                    "type": "string"
                  },
                  "last_name": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "phone": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "$ref": "#/components/schemas/OtpContent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "registerWithEmail"
      }
    },
    "/auth/register/password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "register-with-password",
        "summary": "Register with password",
        "description": "Registers a new user with email/phone and password. Returns a `User` object with `access_token` and `refresh_token`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/register-with-password",
          "description": "API reference for the register-with-password operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DebugMode"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/RegisterWithEmailPassword"
                  },
                  {
                    "$ref": "#/components/schemas/RegisterWithPhonePassword"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "$ref": "#/components/schemas/OtpContent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "registerWithPassword"
      }
    },
    "/auth/register/phone": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "register-with-phone",
        "summary": "Register with phone",
        "description": "Registers a new user with their phone number. Returns a `User` object with `access_token` and `refresh_token`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/register-with-phone",
          "description": "API reference for the register-with-phone operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DebugMode"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "phone",
                  "first_name"
                ],
                "properties": {
                  "country_code": {
                    "description": "Two-letter code begin with a plus sign prefix that identifies different countries. By default it will be +91 if not provided.",
                    "type": [
                      "string",
                      "null"
                    ],
                    "const": "+91"
                  },
                  "phone": {
                    "description": "10 digit phone number without country code.",
                    "type": "string",
                    "maxLength": 10,
                    "minLength": 10,
                    "pattern": "^[0-9]{10}$"
                  },
                  "first_name": {
                    "type": "string"
                  },
                  "last_name": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "email": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "format": "email"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "$ref": "#/components/schemas/OtpContent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "registerWithPhone"
      }
    },
    "/auth/register/whatsapp": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "register-with-whatsapp",
        "summary": "Register with WhatsApp",
        "description": "Registers a new user with their WhatsApp number. Returns a `User` object with `access_token` and `refresh_token`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/register-with-whatsapp",
          "description": "API reference for the register-with-whatsapp operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/DebugMode"
          }
        ],
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "phone",
                  "first_name"
                ],
                "properties": {
                  "country_code": {
                    "description": "Two-letter code begin with a plus sign prefix that identifies different countries. By default it will be +91 if not provided.",
                    "type": [
                      "string",
                      "null"
                    ],
                    "const": "+91"
                  },
                  "phone": {
                    "description": "10 digit WhatsApp number without country code.",
                    "type": "string",
                    "maxLength": 10,
                    "minLength": 10,
                    "pattern": "^[0-9]{10}$"
                  },
                  "first_name": {
                    "type": "string"
                  },
                  "last_name": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "email": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "format": "email"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "$ref": "#/components/schemas/OtpContent"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "registerWithWhatsapp"
      }
    },
    "/auth/reset-password": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "reset-password",
        "summary": "Reset password",
        "description": "Resets the user's password using the `otp_token` from the forgot-password endpoint. Returns new `access_token` and `refresh_token`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/reset-password",
          "description": "API reference for the reset-password operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "new_password",
                  "confirm_password",
                  "otp_token",
                  "otp"
                ],
                "properties": {
                  "new_password": {
                    "description": "The new password that the user wants to set for their account.",
                    "type": "string"
                  },
                  "confirm_password": {
                    "description": "A confirmation of the new password.",
                    "type": "string"
                  },
                  "otp_token": {
                    "description": "A string representing the OTP token which facilitas the resetting of user’s account password.",
                    "type": "string"
                  },
                  "otp": {
                    "description": "A string representing the one-time password.",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the reset password operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "access_token": {
                          "description": "It is a string-based token utilized for authentication and authorization.",
                          "type": "string"
                        },
                        "refresh_token": {
                          "description": "It is a string-based token designed for refreshing the user's access token.",
                          "type": "string"
                        },
                        "user": {
                          "description": "An object representing user details.",
                          "$ref": "#/components/schemas/User"
                        }
                      },
                      "required": [
                        "access_token",
                        "refresh_token",
                        "user"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "resetPassword"
      }
    },
    "/auth/user/{id}": {
      "get": {
        "tags": [
          "Auth"
        ],
        "operationId": "get-user-detail",
        "summary": "Retrieve a user",
        "description": "Retrieves the full `User` object for a given user ID.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-user-detail",
          "description": "API reference for the get-user-detail operation"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "user ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the Registration process.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "user": {
                          "description": "An object containing the response content.",
                          "$ref": "#/components/schemas/User"
                        }
                      },
                      "required": [
                        "user"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getUserDetail"
      },
      "put": {
        "tags": [
          "Auth"
        ],
        "operationId": "update-user",
        "summary": "Update a user",
        "description": "Updates user profile details. Returns the updated `User` object.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/update-user",
          "description": "API reference for the update-user operation"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "user ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/User"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the Registration process.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "user": {
                          "description": "An object containing the response content.",
                          "$ref": "#/components/schemas/User"
                        }
                      },
                      "required": [
                        "user"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "updateUser"
      },
      "delete": {
        "tags": [
          "Auth"
        ],
        "operationId": "delete-user",
        "summary": "Delete a user",
        "description": "Deletes a user account. If the user is a primary user, deletes the associated customer and all linked users. If the user is a normal user, deletes only that user without affecting the customer or other users.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/delete-user",
          "description": "API reference for the delete-user operation"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "user ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the delete account operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "deleteUser"
      }
    },
    "/auth/user/{id}/deactivate": {
      "put": {
        "tags": [
          "Auth"
        ],
        "operationId": "deactivate-user",
        "summary": "Deactivate account",
        "description": "Deactivates the user's account.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/deactivate-user",
          "description": "API reference for the deactivate-user operation"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "user ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the deactivate account operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "deactivateUser"
      }
    },
    "/auth/user/{id}/profile-image": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "add-profile-image",
        "summary": "Add profile image",
        "description": "Uploads a profile image for the user. Returns the `profile_image_url`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/add-profile-image",
          "description": "API reference for the add-profile-image operation"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "user ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "image"
                ],
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "contentMediaType": "application/octet-stream"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the add operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "profile_image_url": {
                          "description": "A string representing the URL to a profile image.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "profile_image_url"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "addProfileImage"
      },
      "put": {
        "tags": [
          "Auth"
        ],
        "operationId": "update-profile-image",
        "summary": "Update profile image",
        "description": "Replaces the existing profile image. Returns the updated `profile_image_url`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/update-profile-image",
          "description": "API reference for the update-profile-image operation"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "user ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "format": "binary",
                    "contentMediaType": "application/octet-stream"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the update operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "profile_image_url": {
                          "description": "A string representing the URL to a profile image.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "profile_image_url"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "updateProfileImage"
      },
      "delete": {
        "tags": [
          "Auth"
        ],
        "operationId": "remove-profile-image",
        "summary": "Delete profile image",
        "description": "Removes the profile image from the user account.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/remove-profile-image",
          "description": "API reference for the remove-profile-image operation"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "user ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the delete operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "removeProfileImage"
      },
      "get": {
        "tags": [
          "Auth"
        ],
        "operationId": "get-profile-image",
        "summary": "Retrieve a profile image",
        "description": "Retrieves the `profile_image_url` for the user.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-profile-image",
          "description": "API reference for the get-profile-image operation"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "user ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the retrieve operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "profile_image_url": {
                          "description": "A string representing the URL to a profile image.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "profile_image_url"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "getProfileImage"
      }
    },
    "/auth/verified-email-phone": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "check-verification-status",
        "summary": "Check email/phone verification status",
        "description": "Checks whether the user's email and phone number have been verified.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/check-verification-status",
          "description": "API reference for the check-verification-status operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "phone": {
                    "description": "A string representing the phone number.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "email": {
                    "description": "A string representing the email address.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A descriptive message confirming the success or failure of the operation.",
                      "type": "string"
                    },
                    "success": {
                      "description": "Indicates whether the request was successful or failure (true for success, false for failure).",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "verified_phone": {
                          "description": "An array containing verified phone numbers for the user",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "verified_email": {
                          "description": "An array containing verified email address for the user.",
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "verified_phone",
                        "verified_email"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "checkVerificationStatus"
      }
    },
    "/auth/verify-otp": {
      "post": {
        "tags": [
          "Auth"
        ],
        "operationId": "verify-otp",
        "summary": "Verify OTP",
        "description": "Verifies the OTP sent via phone, email, or WhatsApp. On success, returns a `User` object with `access_token` and `refresh_token`. Pass the `otp_token` and `otp_action` received from the login endpoint.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/verify-otp",
          "description": "API reference for the verify-otp operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "otp",
                  "otp_token",
                  "otp_action"
                ],
                "properties": {
                  "otp": {
                    "description": "A string representing the one-time password.",
                    "type": "string"
                  },
                  "otp_token": {
                    "description": "A string representing the OTP token.",
                    "type": "string"
                  },
                  "otp_action": {
                    "description": "A string indicating the action to be performed.",
                    "type": "string",
                    "enum": [
                      "login",
                      "register",
                      "reset-password",
                      "verify-phone",
                      "verify-email",
                      "update-phone",
                      "update-email"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "A string providing additional information about the response.",
                      "type": "string"
                    },
                    "success": {
                      "description": " A boolean indicating whether the operation was successful or not.",
                      "type": "boolean"
                    },
                    "content": {
                      "description": "An object containing the response content.",
                      "properties": {
                        "user": {
                          "description": "An object representing user details.",
                          "$ref": "#/components/schemas/User"
                        },
                        "access_token": {
                          "description": "A string representing the access token.",
                          "type": "string"
                        },
                        "refresh_token": {
                          "description": "A string representing the refresh token.",
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "access_token",
                        "refresh_token"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "GetVerifiedUserCart": {
                "operationId": "get-user-cart",
                "parameters": {
                  "user_id": "$response.body#/content/user/user_id"
                },
                "description": "Retrieve the cart for the verified user."
              },
              "GetVerifiedCustomer": {
                "operationId": "get-user-detail",
                "parameters": {
                  "id": "$response.body#/content/user/user_id"
                },
                "description": "Retrieve customer details for the verified user."
              },
              "CreateAddressForVerifiedUser": {
                "operationId": "create-address",
                "parameters": {
                  "user_id": "$response.body#/content/user/user_id"
                },
                "description": "Create a new address for the verified user."
              },
              "GetVerifiedUserLoyalty": {
                "operationId": "get-loyalty-details",
                "parameters": {
                  "user_id": "$response.body#/content/user/user_id"
                },
                "description": "Retrieve loyalty details for the verified user."
              },
              "GetVerifiedUserWishlist": {
                "operationId": "get-wishlist",
                "parameters": {
                  "user_id": "$response.body#/content/user/user_id"
                },
                "description": "Retrieve the wishlist for the verified user."
              },
              "ListSavedPaymentMethods": {
                "operationId": "list-saved-payment-methods",
                "parameters": {
                  "customer_id": "$response.body#/content/user/user_id"
                },
                "description": "List saved payment methods for the verified user."
              },
              "ListCustomerCards": {
                "operationId": "list-customer-cards",
                "parameters": {
                  "customer_id": "$response.body#/content/user/user_id"
                },
                "description": "List saved cards for the verified user."
              },
              "RefreshVerifiedToken": {
                "operationId": "refresh-token",
                "requestBody": {
                  "refresh_token": "$response.body#/content/refresh_token"
                },
                "description": "Refresh the access token using the refresh token."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "auth",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "verifyOtp"
      }
    },
    "/campaigns/newsletter-subscribe": {
      "post": {
        "tags": [
          "Campaigns"
        ],
        "operationId": "subscribe-newsletter",
        "summary": "Subscribe to newsletter",
        "description": "Subscribe to newsletter",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/subscribe-newsletter",
          "description": "API reference for the subscribe-newsletter operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "campaigns",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "subscribeNewsletter"
      }
    },
    "/carts": {
      "post": {
        "tags": [
          "Carts"
        ],
        "operationId": "create-cart",
        "summary": "Create cart",
        "description": "Creates a new cart with an initial set of items. Returns a `Cart` object. Attach optional `metadata` for custom key-value pairs.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-cart",
          "description": "API reference for the create-cart operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "items"
                ],
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/UpdateCartItem"
                    }
                  },
                  "metadata": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "cart": {
                          "$ref": "#/components/schemas/Cart"
                        }
                      },
                      "required": [
                        "cart"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "AddItemToCart": {
                "operationId": "update-cart",
                "parameters": {
                  "id": "$response.body#/content/cart/id"
                },
                "description": "Add items to the newly created cart."
              },
              "SetCartAddress": {
                "operationId": "create-cart-address",
                "parameters": {
                  "id": "$response.body#/content/cart/id"
                },
                "description": "Set billing and shipping address on this cart."
              },
              "SetCartFulfillment": {
                "operationId": "update-fulfillment-preference",
                "parameters": {
                  "id": "$response.body#/content/cart/id"
                },
                "description": "Set the fulfillment preference on this cart."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "createCart"
      }
    },
    "/carts/available-coupons": {
      "get": {
        "tags": [
          "Carts"
        ],
        "operationId": "list-coupons",
        "summary": "Retrieve all coupons",
        "description": "Retrieve active coupons",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-coupons",
          "description": "API reference for the list-coupons operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "coupons": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Coupon"
                          }
                        }
                      },
                      "required": [
                        "coupons"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listCoupons"
      },
      "parameters": []
    },
    "/carts/available-promotions": {
      "get": {
        "tags": [
          "Carts"
        ],
        "operationId": "list-promotions",
        "summary": "Retrieve all promotions",
        "description": "All active promotions",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-promotions",
          "description": "API reference for the list-promotions operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "promotions": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Promotion"
                          }
                        }
                      },
                      "required": [
                        "promotions"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listPromotions"
      },
      "parameters": []
    },
    "/carts/fulfillment-options": {
      "post": {
        "tags": [
          "Carts"
        ],
        "operationId": "get-fulfillment-options",
        "summary": "Retrieve fulfillment options",
        "description": "Returns available fulfillment options for a cart and delivery pincode. The `summary` object indicates `collect_available`, `deliver_available`, and `recommended_fulfillment_type`. Use the `collect` array for Click & Collect store locations and `deliver` for delivery details.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-fulfillment-options",
          "description": "API reference for the get-fulfillment-options operation"
        },
        "parameters": [],
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CartBasedFulfillmentOption"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "summary": {
                          "type": "object",
                          "properties": {
                            "collect_available": {
                              "type": "boolean"
                            },
                            "deliver_available": {
                              "type": "boolean"
                            },
                            "recommended_fulfillment_type": {
                              "enum": [
                                "collect-in-store",
                                "delivery"
                              ]
                            },
                            "recommended_store": {
                              "$ref": "#/components/schemas/CollectInStore"
                            }
                          },
                          "required": [
                            "collect_available",
                            "deliver_available",
                            "recommended_fulfillment_type"
                          ]
                        },
                        "collect": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CollectInStore"
                          }
                        },
                        "deliver": {
                          "$ref": "#/components/schemas/DeliveryOption"
                        }
                      },
                      "required": [
                        "summary"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "fulfillmentOptions"
      },
      "parameters": []
    },
    "/carts/users/{user_id}": {
      "get": {
        "tags": [
          "Carts"
        ],
        "operationId": "get-user-cart",
        "summary": "Retrieve cart by user ID",
        "description": "Retrieves the active `Cart` object for a given user. Use the `user_id` returned from auth endpoints.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-user-cart",
          "description": "API reference for the get-user-cart operation"
        },
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "description": "User ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "cart details"
                      ],
                      "readOnly": true
                    },
                    "success": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "content": {
                      "properties": {
                        "cart": {
                          "$ref": "#/components/schemas/Cart"
                        }
                      },
                      "required": [
                        "cart"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "AddItemToUserCart": {
                "operationId": "update-cart",
                "parameters": {
                  "id": "$response.body#/content/cart/id"
                },
                "description": "Add items to the user's cart."
              },
              "SetUserCartAddress": {
                "operationId": "create-cart-address",
                "parameters": {
                  "id": "$response.body#/content/cart/id"
                },
                "description": "Set billing and shipping address on the user's cart."
              },
              "SetUserCartFulfillment": {
                "operationId": "update-fulfillment-preference",
                "parameters": {
                  "id": "$response.body#/content/cart/id"
                },
                "description": "Set the fulfillment preference on the user's cart."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getUserCart"
      },
      "delete": {
        "tags": [
          "Carts"
        ],
        "operationId": "delete-user-cart",
        "summary": "Delete cart using user id",
        "description": "delete all items from the cart using user id.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/delete-user-cart",
          "description": "API reference for the delete-user-cart operation"
        },
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "description": "User ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "All cart items are removed."
                      ],
                      "readOnly": true
                    },
                    "success": {
                      "type": "boolean",
                      "readOnly": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "removeUserCart"
      },
      "parameters": [
        {
          "name": "user_id",
          "in": "path",
          "description": "User ID",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/carts/{id}": {
      "get": {
        "tags": [
          "Carts"
        ],
        "operationId": "get-cart",
        "summary": "Retrieve cart detail",
        "description": "Retrieves the full `Cart` object for the given cart ID.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-cart",
          "description": "API reference for the get-cart operation"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Cart ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "cart details"
                      ],
                      "readOnly": true
                    },
                    "success": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "content": {
                      "properties": {
                        "cart": {
                          "$ref": "#/components/schemas/Cart"
                        }
                      },
                      "required": [
                        "cart"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getCart"
      },
      "delete": {
        "tags": [
          "Carts"
        ],
        "operationId": "delete-cart",
        "summary": "Delete cart",
        "description": "delete all items from the cart.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/delete-cart",
          "description": "API reference for the delete-cart operation"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Cart ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "All cart items are removed."
                      ],
                      "readOnly": true
                    },
                    "success": {
                      "type": "boolean",
                      "readOnly": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "deleteCart"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "Cart ID",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/carts/{id}/address": {
      "post": {
        "tags": [
          "Carts"
        ],
        "operationId": "create-cart-address",
        "summary": "Set cart address",
        "description": "Sets billing and shipping addresses on a cart. Returns a fully updated `Cart` object. For registered users, pass `billing_address_id` and `shipping_address_id`. For guest checkout, pass inline `billing_address` and `shipping_address` objects.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-cart-address",
          "description": "API reference for the create-cart-address operation"
        },
        "requestBody": {
          "description": "Update billing and shipping address during checkout",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "oneOf": [
                  {
                    "title": "Registered User",
                    "description": "For registered users where address is previously added",
                    "required": [
                      "billing_address_id",
                      "shipping_address_id"
                    ],
                    "properties": {
                      "billing_address_id": {
                        "type": "string"
                      },
                      "shipping_address_id": {
                        "type": "string"
                      }
                    }
                  },
                  {
                    "title": "Guest User",
                    "description": "For guest checkout where address is not saved",
                    "required": [
                      "billing_address",
                      "shipping_address"
                    ],
                    "properties": {
                      "billing_address": {
                        "$ref": "#/components/schemas/CustomerAddress"
                      },
                      "shipping_address": {
                        "$ref": "#/components/schemas/CustomerAddress"
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Address updated successfully"
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "cart": {
                          "$ref": "#/components/schemas/Cart"
                        }
                      },
                      "required": [
                        "cart"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "GetFulfillmentOptions": {
                "operationId": "get-fulfillment-options",
                "requestBody": {
                  "cart_id": "$request.path.id"
                },
                "description": "Check available fulfillment options for this cart."
              },
              "SetFulfillmentPreference": {
                "operationId": "update-fulfillment-preference",
                "parameters": {
                  "id": "$request.path.id"
                },
                "description": "Set the fulfillment preference on this cart."
              },
              "CreateOrderFromCart": {
                "operationId": "create-order",
                "requestBody": {
                  "cart_id": "$request.path.id"
                },
                "description": "Create an order from this cart."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "createCartAddress"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "Cart ID",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/carts/{id}/coupon": {
      "post": {
        "tags": [
          "Carts"
        ],
        "operationId": "apply-coupon",
        "summary": "Apply coupon",
        "description": "Applies a coupon code to the cart. Returns a fully updated `Cart` object with recalculated totals.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/apply-coupon",
          "description": "API reference for the apply-coupon operation"
        },
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "coupon_code"
                ],
                "properties": {
                  "coupon_code": {
                    "type": "string",
                    "examples": [
                      "FLAT100OFF"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "cart": {
                          "$ref": "#/components/schemas/Cart"
                        }
                      },
                      "required": [
                        "cart"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "CreateOrderFromCart": {
                "operationId": "create-order",
                "requestBody": {
                  "cart_id": "$request.path.id"
                },
                "description": "Create an order from this cart after applying the coupon."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "applyCoupon"
      },
      "delete": {
        "tags": [
          "Carts"
        ],
        "operationId": "remove-coupon",
        "summary": "Remove coupon",
        "description": "Removes the applied coupon from the cart. Returns a fully updated `Cart` object with recalculated totals.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/remove-coupon",
          "description": "API reference for the remove-coupon operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "cart": {
                          "$ref": "#/components/schemas/Cart"
                        }
                      },
                      "required": [
                        "cart"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "removeCoupon"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "Cart ID",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/carts/{id}/credit-balance": {
      "post": {
        "tags": [
          "Carts"
        ],
        "operationId": "redeem-credit-balance",
        "summary": "Use credit balance",
        "description": "Applies credit balance to reduce the cart total. Returns a fully updated `Cart` object.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/redeem-credit-balance",
          "description": "API reference for the redeem-credit-balance operation"
        },
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "credit_balance_used"
                ],
                "properties": {
                  "credit_balance_used": {
                    "type": "number",
                    "format": "double",
                    "examples": [
                      200
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "cart": {
                          "$ref": "#/components/schemas/Cart"
                        }
                      },
                      "required": [
                        "cart"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "redeemCreditBalance"
      },
      "delete": {
        "tags": [
          "Carts"
        ],
        "operationId": "remove-credit-balance",
        "summary": "Remove credit balance",
        "description": "Removes applied credit balance from the cart. Returns a fully updated `Cart` object with recalculated totals.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/remove-credit-balance",
          "description": "API reference for the remove-credit-balance operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "cart": {
                          "$ref": "#/components/schemas/Cart"
                        }
                      },
                      "required": [
                        "cart"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "removeCreditBalance"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "Cart ID",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/carts/{id}/evaluate-coupons": {
      "get": {
        "tags": [
          "Carts"
        ],
        "operationId": "evaluate-coupons",
        "summary": "Evaluate coupons",
        "description": "Evaluates all coupons against the current cart contents. Returns separate `applicable_coupons` and `inapplicable_coupons` arrays with eligibility reasons.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/evaluate-coupons",
          "description": "API reference for the evaluate-coupons operation"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "applicable_coupons": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/ApplicableCoupon"
                          }
                        },
                        "inapplicable_coupons": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/InapplicableCoupon"
                          }
                        }
                      },
                      "required": [
                        "applicable_coupons",
                        "inapplicable_coupons"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "evaluateCoupons"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "Cart Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/carts/{id}/evaluate-promotions": {
      "get": {
        "tags": [
          "Carts"
        ],
        "operationId": "evaluate-promotions",
        "summary": "Evaluate promotions",
        "description": "Evaluates all promotions against the current cart contents. Returns separate `applicable_promotions` and `inapplicable_promotions` arrays with eligibility reasons.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/evaluate-promotions",
          "description": "API reference for the evaluate-promotions operation"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "applicable_promotions": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/ApplicablePromotion"
                          }
                        },
                        "inapplicable_promotions": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/InapplicablePromotion"
                          }
                        }
                      },
                      "required": [
                        "applicable_promotions",
                        "inapplicable_promotions"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "evaluatePromotions"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "Cart Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/carts/{id}/fulfillment-preference": {
      "post": {
        "tags": [
          "Carts"
        ],
        "operationId": "update-fulfillment-preference",
        "summary": "Update fulfillment preference",
        "description": "Sets the fulfillment preference on a cart. Returns a fully updated `Cart` object. Supported types: `delivery`, `collect-in-store`, or `partial-collect-and-delivery`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/update-fulfillment-preference",
          "description": "API reference for the update-fulfillment-preference operation"
        },
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FulfillmentPreference"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "cart": {
                          "$ref": "#/components/schemas/Cart"
                        }
                      },
                      "required": [
                        "cart"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "EvaluateCoupons": {
                "operationId": "evaluate-coupons",
                "parameters": {
                  "id": "$request.path.id"
                },
                "description": "Evaluate coupon eligibility for this cart."
              },
              "EvaluatePromotions": {
                "operationId": "evaluate-promotions",
                "parameters": {
                  "id": "$request.path.id"
                },
                "description": "Evaluate promotion eligibility for this cart."
              },
              "CreateOrderFromCart": {
                "operationId": "create-order",
                "requestBody": {
                  "cart_id": "$request.path.id"
                },
                "description": "Create an order from this cart."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "updateFulfillmentPreference"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "Cart ID",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/carts/{id}/items": {
      "post": {
        "tags": [
          "Carts"
        ],
        "operationId": "update-cart",
        "summary": "Add, update, or remove a cart item",
        "description": "Modifies the contents of an existing cart. Returns a fully updated `Cart` object. Set `quantity` to `0` to remove an item.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/update-cart",
          "description": "API reference for the update-cart operation"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "cart id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCartItem"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "cart": {
                          "$ref": "#/components/schemas/Cart"
                        }
                      },
                      "required": [
                        "cart"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "SetCartAddress": {
                "operationId": "create-cart-address",
                "parameters": {
                  "id": "$request.path.id"
                },
                "description": "Set billing and shipping address on this cart."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "updateCart"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "Cart ID",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/carts/{id}/loyalty-points": {
      "post": {
        "tags": [
          "Carts"
        ],
        "operationId": "redeem-loyalty-points",
        "summary": "Redeem loyalty points",
        "description": "Applies loyalty points to reduce the cart total. Returns a fully updated `Cart` object.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/redeem-loyalty-points",
          "description": "API reference for the redeem-loyalty-points operation"
        },
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "loyalty_point_redeemed"
                ],
                "properties": {
                  "loyalty_point_redeemed": {
                    "type": "integer",
                    "examples": [
                      1000
                    ],
                    "minimum": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "cart": {
                          "$ref": "#/components/schemas/Cart"
                        }
                      },
                      "required": [
                        "cart"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "redeemLoyaltyPoints"
      },
      "delete": {
        "tags": [
          "Carts"
        ],
        "operationId": "remove-loyalty-points",
        "summary": "Remove loyalty points",
        "description": "Removes redeemed loyalty points from the cart. Returns a fully updated `Cart` object with recalculated totals.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/remove-loyalty-points",
          "description": "API reference for the remove-loyalty-points operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "cart": {
                          "$ref": "#/components/schemas/Cart"
                        }
                      },
                      "required": [
                        "cart"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "removeLoyaltyPoints"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "Cart ID",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/catalog/categories": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "list-categories",
        "summary": "List all categories",
        "description": "Returns a list of your product categories. The categories are returned sorted by creation date, with the most recently created categories appearing first.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-categories",
          "description": "API reference for the list-categories operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/searchKeyword"
          },
          {
            "$ref": "#/components/parameters/sortingParam"
          },
          {
            "name": "nested_level",
            "in": "query",
            "description": "return child categories up to nesting level",
            "schema": {
              "type": "integer",
              "default": 0,
              "maximum": 4,
              "minimum": 0
            }
          },
          {
            "name": "parent_category_id",
            "in": "query",
            "description": "To return child categories using category id.",
            "schema": {
              "type": "string",
              "example": "01JWZW41Y3FBKTZSP399SKANY7",
              "examples": [
                "01JWZW41Y3FBKTZSP399SKANY7"
              ]
            }
          },
          {
            "name": "parent_category_slug",
            "in": "query",
            "description": "To return child categories using category slug",
            "schema": {
              "type": "string",
              "example": "vitals"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "all categories"
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "categories": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/ProductCategory"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "categories",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "ListProductsByCategory": {
                "operationId": "list-products",
                "description": "List products in a category. Use a category's `id` as the `category_id` query parameter."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          },
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "catalog",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listCategories"
      }
    },
    "/catalog/marketplace/categories": {
      "get": {
        "tags": [
          "Marketplace"
        ],
        "operationId": "list-marketplace-categories",
        "summary": "List all categories",
        "description": "Returns a list of your product categories. The categories are returned sorted by creation date, with the most recently created categories appearing first.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-marketplace-categories",
          "description": "API reference for the list-marketplace-categories operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/searchKeyword"
          },
          {
            "$ref": "#/components/parameters/sortingParam"
          },
          {
            "name": "nested_level",
            "in": "query",
            "description": "return child categories up to nesting level",
            "schema": {
              "type": "integer",
              "default": 0,
              "maximum": 4,
              "minimum": 0
            }
          },
          {
            "name": "parent_category_id",
            "in": "query",
            "description": "To return child categories using category id.",
            "schema": {
              "type": "string",
              "example": "01JWZW41Y3FBKTZSP399SKANY7",
              "examples": [
                "01JWZW41Y3FBKTZSP399SKANY7"
              ]
            }
          },
          {
            "name": "parent_category_slug",
            "in": "query",
            "description": "To return child categories using category slug",
            "schema": {
              "type": "string",
              "example": "vitals"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "all categories"
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "categories": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/ProductCategory"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "categories",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "marketplace",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listCategories"
      }
    },
    "/catalog/marketplace/products": {
      "get": {
        "tags": [
          "Marketplace"
        ],
        "operationId": "list-marketplace-products",
        "summary": "List all products",
        "description": "Returns a list of your products. The products are returned sorted by creation date, with the most recently created products appearing first.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-marketplace-products",
          "description": "API reference for the list-marketplace-products operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/pageParam"
          },
          {
            "$ref": "#/components/parameters/pageLimitParam"
          },
          {
            "$ref": "#/components/parameters/sortingParam"
          },
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "category_id",
            "in": "query",
            "description": "filter products by categories ids",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true,
            "style": "form"
          },
          {
            "name": "category_slug",
            "in": "query",
            "description": "filter products by categories slugs",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "inventory",
            "in": "query",
            "description": "Determines whether to include or exlude inventory details in response json",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "seller_id",
            "in": "query",
            "description": "filter products by seller id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Products retrieved successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "products": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/MarketplaceProduct"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "products",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "marketplace",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listProducts"
      }
    },
    "/catalog/marketplace/products/cross-sell": {
      "get": {
        "tags": [
          "Marketplace"
        ],
        "operationId": "list-marketplace-crosssell-products",
        "summary": "Retrieve cross-sell products",
        "description": "Retrieves a list of products specified for cross selling. The cross-sell products are returned based on product ids specified in request param.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-marketplace-crosssell-products",
          "description": "API reference for the list-marketplace-crosssell-products operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "no of rows per page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "page number in pagination",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "product_id",
            "in": "query",
            "description": "Product ids of cart items",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "json to sort records",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "products": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/MarketplaceItem"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "products",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "marketplace",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listCrosssellProducts"
      }
    },
    "/catalog/marketplace/products/search": {
      "post": {
        "tags": [
          "Marketplace"
        ],
        "operationId": "search-marketplace-products",
        "summary": "Search products",
        "description": "Search for products matching a specific words or characters given.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/search-marketplace-products",
          "description": "API reference for the search-marketplace-products operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchProduct"
              },
              "examples": {
                "in-operator": {
                  "summary": "IN operator (string)",
                  "value": {
                    "query": "shoes",
                    "filter": "product_type IN [physical,bundle]"
                  }
                },
                "and-string": {
                  "summary": "AND via string",
                  "value": {
                    "query": "shoes",
                    "filter": "rating > 4 AND product_type = physical"
                  }
                },
                "or-string": {
                  "summary": "OR via string",
                  "value": {
                    "query": "shoes",
                    "filter": "product_type = physical OR product_type = bundle"
                  }
                },
                "and-array": {
                  "summary": "AND via array",
                  "value": {
                    "query": "shoes",
                    "filter": [
                      "rating > 4",
                      "product_type = physical"
                    ]
                  }
                },
                "or-nested-array": {
                  "summary": "OR via nested array",
                  "value": {
                    "query": "shoes",
                    "filter": [
                      [
                        "product_type = physical",
                        "product_type = bundle"
                      ]
                    ]
                  }
                },
                "mixed-and-or": {
                  "summary": "AND + OR mixed",
                  "value": {
                    "query": "shoes",
                    "filter": [
                      "product_type = physical",
                      [
                        "product_type = bundle",
                        "rating > 4"
                      ]
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "skus": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/MarketplaceItem"
                          }
                        },
                        "facet_distribution": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "integer"
                            }
                          }
                        },
                        "facet_stats": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "object",
                            "properties": {
                              "min": {
                                "type": "number"
                              },
                              "max": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "min",
                              "max"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "skus",
                        "facet_distribution",
                        "facet_stats",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "marketplace",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "searchProducts"
      }
    },
    "/catalog/marketplace/products/similar": {
      "get": {
        "tags": [
          "Marketplace"
        ],
        "operationId": "list-marketplace-similar-products",
        "summary": "Retrieve similar products",
        "description": "Retrieves a list of products similar to a specified product based on their attributes and category. The similar products are returned sorted by relevance, with the most closely matching products appearing first. Useful for providing product recommendations to your customers.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-marketplace-similar-products",
          "description": "API reference for the list-marketplace-similar-products operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "no of rows per page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "page number in pagination",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "product_id",
            "in": "query",
            "description": "to retrieve similar products of specified products",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "json to sort records",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "products": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/MarketplaceItem"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "products",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "marketplace",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listSimilarProducts"
      }
    },
    "/catalog/marketplace/products/up-sell": {
      "get": {
        "tags": [
          "Marketplace"
        ],
        "operationId": "list-marketplace-upsell-products",
        "summary": "Retrieve up-sell products",
        "description": "Retrieves a list of products specified for upsell. The upsell products are returned based on product ids specified in request param.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-marketplace-upsell-products",
          "description": "API reference for the list-marketplace-upsell-products operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "no of rows per page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "page number in pagination",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "product_id",
            "in": "query",
            "description": "Product ids of cart items",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "json to sort records",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "Masssage",
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "products": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/MarketplaceItem"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "products",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "marketplace",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listUpsellProducts"
      }
    },
    "/catalog/marketplace/products/{product_id}": {
      "get": {
        "tags": [
          "Marketplace"
        ],
        "operationId": "get-marketplace-product-detail",
        "summary": "Retrieve a product detail",
        "description": "Retrieves the details of an existing marketplace product. Product slug is supported in place of product ID in the path. Commerce Engine returns the corresponding product information.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-marketplace-product-detail",
          "description": "API reference for the get-marketplace-product-detail operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "inventory",
            "in": "query",
            "description": "Determines whether to include or exlude inventory details in response json",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "product_id",
            "in": "path",
            "description": "Product ID or product slug. Either is accepted in the path.",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "01XGCYCT8CRHXW4BG91JXCMDCW",
                "detox-candy"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Products retrieved successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "product": {
                          "$ref": "#/components/schemas/MarketplaceProductDetail"
                        }
                      },
                      "required": [
                        "product"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "ListMarketplaceProductVariants": {
                "operationId": "list-marketplace-product-variants",
                "parameters": {
                  "product_id": "$response.body#/content/product/id"
                },
                "description": "List all variants for this marketplace product."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "marketplace",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getProductDetail"
      }
    },
    "/catalog/marketplace/products/{product_id}/reviews": {
      "get": {
        "tags": [
          "Marketplace"
        ],
        "operationId": "list-marketplace-product-reviews",
        "summary": "List all product reviews",
        "description": "List of reviews for a specified product. The reviews are returned sorted by submission date, with the most recent reviews appearing first. You can filter the reviews by rating, reviewer, or date for more detailed analysis.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-marketplace-product-reviews",
          "description": "API reference for the list-marketplace-product-reviews operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/pageParam"
          },
          {
            "$ref": "#/components/parameters/pageLimitParam"
          },
          {
            "$ref": "#/components/parameters/sortingParam"
          },
          {
            "$ref": "#/components/parameters/searchKeyword"
          },
          {
            "name": "product_id",
            "in": "path",
            "description": "id of a particular product",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "review_tag",
            "in": "query",
            "description": "filter review with review tag",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "reviews": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/ProductReview"
                          }
                        },
                        "review_tags": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "items": {
                            "type": "string"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "reviews"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "marketplace",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listProductReviews"
      },
      "post": {
        "tags": [
          "Marketplace"
        ],
        "operationId": "create-marketplace-product-review",
        "summary": "Create product review",
        "description": "Create a product review",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-marketplace-product-review",
          "description": "API reference for the create-marketplace-product-review operation"
        },
        "parameters": [
          {
            "name": "product_id",
            "in": "path",
            "description": "id of a particular product",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/CreateReview"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Review submitted successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "marketplace",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "createProductReview"
      }
    },
    "/catalog/marketplace/products/{product_id}/variants": {
      "get": {
        "tags": [
          "Marketplace"
        ],
        "operationId": "list-marketplace-product-variants",
        "summary": "Retrieve product variants",
        "description": "Retrieves the variants of an existing marketplace product. Product slug is supported in place of product ID in the path. Commerce Engine returns the corresponding product variants information.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-marketplace-product-variants",
          "description": "API reference for the list-marketplace-product-variants operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "inventory",
            "in": "query",
            "description": "Determines whether to include or exlude inventory details in response json",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "product_id",
            "in": "path",
            "description": "Product ID or product slug. Either is accepted in the path.",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "01H7YK0C86V9PGT0HXRJVEZXJQ",
                "detox-candy"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Products retrieved successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "variants": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Variant"
                          }
                        }
                      },
                      "required": [
                        "variants"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "marketplace",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listProductVariants"
      }
    },
    "/catalog/marketplace/products/{product_id}/variants/{variant_id}": {
      "get": {
        "tags": [
          "Marketplace"
        ],
        "operationId": "get-marketplace-variant-detail",
        "summary": "Retrieve variant detail",
        "description": "Retrieves the details of a particular marketplace variant. Product slug is supported in place of product ID, and variant slug in place of variant ID, in the path.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-marketplace-variant-detail",
          "description": "API reference for the get-marketplace-variant-detail operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "inventory",
            "in": "query",
            "description": "Determines whether to include or exlude inventory details in response json",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "product_id",
            "in": "path",
            "description": "Product ID or product slug. Either is accepted in the path.",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "01H7YK0C86V9PGT0HXRJVEZXJQ",
                "detox-candy"
              ]
            }
          },
          {
            "name": "variant_id",
            "in": "path",
            "description": "Variant ID or variant slug. Either is accepted in the path.",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "01H7YK0D12ABC123VARIANT456",
                "large-blue"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Products retrieved successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "variant": {
                          "$ref": "#/components/schemas/VariantDetail"
                        }
                      },
                      "required": [
                        "variant"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "marketplace",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getVariantDetail"
      }
    },
    "/catalog/marketplace/skus": {
      "get": {
        "tags": [
          "Marketplace"
        ],
        "operationId": "list-marketplace-skus",
        "summary": "List all SKUs",
        "description": "Returns a list of SKUs. The SKUs are returned sorted by creation date, with the most recently created SKUs appearing first.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-marketplace-skus",
          "description": "API reference for the list-marketplace-skus operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/pageParam"
          },
          {
            "$ref": "#/components/parameters/pageLimitParam"
          },
          {
            "$ref": "#/components/parameters/sortingParam"
          },
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "category_id",
            "in": "query",
            "description": "filter sku by categories",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true,
            "style": "form"
          },
          {
            "name": "inventory",
            "in": "query",
            "description": "Determines whether to include or exlude inventory details in response json",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "seller_id",
            "in": "query",
            "description": "filter sku by seller id",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sku",
            "in": "query",
            "description": "array of sku",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "SKUs retrieved successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "skus": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/MarketplaceItem"
                          },
                          "readOnly": true
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "skus",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "marketplace",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listSkus"
      }
    },
    "/catalog/products": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "list-products",
        "summary": "List all products",
        "description": "Returns a paginated list of `Product` objects sorted by creation date (newest first). Pass `x-customer-group-id` header to retrieve group-specific pricing.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-products",
          "description": "API reference for the list-products operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/pageParam"
          },
          {
            "$ref": "#/components/parameters/pageLimitParam"
          },
          {
            "$ref": "#/components/parameters/sortingParam"
          },
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "category_id",
            "in": "query",
            "description": "filter products by categories ids",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true,
            "style": "form"
          },
          {
            "name": "category_slug",
            "in": "query",
            "description": "filter products by categories slugs",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "inventory",
            "in": "query",
            "description": "Determines whether to include or exclude inventory details in response json",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "product_type",
            "in": "query",
            "description": "Filter sku by product type. multiple product types can be passed separated by comma. eg: product_type=physical,digital",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Products retrieved successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "products": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Product"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "products",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "GetProductDetail": {
                "operationId": "get-product-detail",
                "description": "Retrieve full details for a product. Use `id` or `slug` from a `Product` as the `product_id` path parameter (product slug is supported in place of product ID)."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          },
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "catalog",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listProducts"
      }
    },
    "/catalog/products/cross-sell": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "list-crosssell-products",
        "summary": "Retrieve cross-sell products",
        "description": "Retrieves a list of products specified for cross selling. The cross-sell products are returned based on product ids specified in request param.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-crosssell-products",
          "description": "API reference for the list-crosssell-products operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "no of rows per page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "page number in pagination",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "product_id",
            "in": "query",
            "description": "Product ids of cart items",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "json to sort records",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "products": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Item"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "products",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "AddItemToCart": {
                "operationId": "update-cart",
                "requestBody": {
                  "product_id": "$response.body#/content/products/0/product_id",
                  "variant_id": "$response.body#/content/products/0/variant_id"
                },
                "description": "Add a cross-sell product to a cart."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          },
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "catalog",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listCrosssellProducts"
      }
    },
    "/catalog/products/search": {
      "post": {
        "tags": [
          "Catalog"
        ],
        "operationId": "search-products",
        "summary": "Search products",
        "description": "Search for products matching a specific words or characters given.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/search-products",
          "description": "API reference for the search-products operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchProduct"
              },
              "examples": {
                "in-operator": {
                  "summary": "IN operator (string)",
                  "value": {
                    "query": "shoes",
                    "filter": "product_type IN [physical,bundle]"
                  }
                },
                "and-string": {
                  "summary": "AND via string",
                  "value": {
                    "query": "shoes",
                    "filter": "rating > 4 AND product_type = physical"
                  }
                },
                "or-string": {
                  "summary": "OR via string",
                  "value": {
                    "query": "shoes",
                    "filter": "product_type = physical OR product_type = bundle"
                  }
                },
                "and-array": {
                  "summary": "AND via array",
                  "value": {
                    "query": "shoes",
                    "filter": [
                      "rating > 4",
                      "product_type = physical"
                    ]
                  }
                },
                "or-nested-array": {
                  "summary": "OR via nested array",
                  "value": {
                    "query": "shoes",
                    "filter": [
                      [
                        "product_type = physical",
                        "product_type = bundle"
                      ]
                    ]
                  }
                },
                "mixed-and-or": {
                  "summary": "AND + OR mixed",
                  "value": {
                    "query": "shoes",
                    "filter": [
                      "product_type = physical",
                      [
                        "product_type = bundle",
                        "rating > 4"
                      ]
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "skus": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Item"
                          }
                        },
                        "facet_distribution": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "integer"
                            }
                          }
                        },
                        "facet_stats": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "object",
                            "properties": {
                              "min": {
                                "type": "number"
                              },
                              "max": {
                                "type": "number"
                              }
                            },
                            "required": [
                              "min",
                              "max"
                            ]
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "skus",
                        "facet_distribution",
                        "facet_stats",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "AddItemToCart": {
                "operationId": "update-cart",
                "requestBody": {
                  "product_id": "$response.body#/content/skus/0/product_id",
                  "variant_id": "$response.body#/content/skus/0/variant_id"
                },
                "description": "Add a search result to a cart."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          },
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "catalog",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "searchProducts"
      }
    },
    "/catalog/products/similar": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "list-similar-products",
        "summary": "Retrieve similar products",
        "description": "Retrieves a list of products similar to a specified product based on their attributes and category. The similar products are returned sorted by relevance, with the most closely matching products appearing first. Useful for providing product recommendations to your customers.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-similar-products",
          "description": "API reference for the list-similar-products operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "no of rows per page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "page number in pagination",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "product_id",
            "in": "query",
            "description": "to retrieve similar products of specified products",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "json to sort records",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "products": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Item"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "products",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "AddItemToCart": {
                "operationId": "update-cart",
                "requestBody": {
                  "product_id": "$response.body#/content/products/0/product_id",
                  "variant_id": "$response.body#/content/products/0/variant_id"
                },
                "description": "Add a similar product to a cart."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          },
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "catalog",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listSimilarProducts"
      }
    },
    "/catalog/products/up-sell": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "list-upsell-products",
        "summary": "Retrieve up-sell products",
        "description": "Retrieves a list of products specified for upsell. The upsell products are returned based on product ids specified in request param.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-upsell-products",
          "description": "API reference for the list-upsell-products operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "no of rows per page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "page number in pagination",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "product_id",
            "in": "query",
            "description": "Product ids of cart items",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "description": "json to sort records",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "description": "Message",
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "products": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Item"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "products",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "AddItemToCart": {
                "operationId": "update-cart",
                "requestBody": {
                  "product_id": "$response.body#/content/products/0/product_id",
                  "variant_id": "$response.body#/content/products/0/variant_id"
                },
                "description": "Add an up-sell product to a cart."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          },
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "catalog",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listUpsellProducts"
      }
    },
    "/catalog/products/{product_id}": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "get-product-detail",
        "summary": "Retrieve a product detail",
        "description": "Retrieves a single `ProductDetail` object by product ID or slug. Product slug is supported in place of product ID in the path. Includes full pricing, variants, images, attributes, and promotion data.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-product-detail",
          "description": "API reference for the get-product-detail operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "inventory",
            "in": "query",
            "description": "Determines whether to include or exclude inventory details in response json",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "product_id",
            "in": "path",
            "description": "Product ID or product slug. Either is accepted in the path.",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "01XGCYCT8CRHXW4BG91JXCMDCW",
                "detox-candy"
              ],
              "minLength": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Products retrieved successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "product": {
                          "$ref": "#/components/schemas/ProductDetail"
                        }
                      },
                      "required": [
                        "product"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "ListProductVariants": {
                "operationId": "list-product-variants",
                "parameters": {
                  "product_id": "$response.body#/content/product/id"
                },
                "description": "List all variants for this product."
              },
              "AddItemToCart": {
                "operationId": "update-cart",
                "requestBody": {
                  "product_id": "$response.body#/content/product/id"
                },
                "description": "Add this product to a cart. Use `product.id` as `product_id`, a variant `id` from `product.variants[]` as `variant_id` (or `null` if `has_variant` is `false`), and a `quantity`."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          },
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "catalog",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getProductDetail"
      }
    },
    "/catalog/products/{product_id}/reviews": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "list-product-reviews",
        "summary": "List all product reviews",
        "description": "List of reviews for a specified product. The reviews are returned sorted by submission date, with the most recent reviews appearing first. You can filter the reviews by rating, reviewer, or date for more detailed analysis.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-product-reviews",
          "description": "API reference for the list-product-reviews operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/pageParam"
          },
          {
            "$ref": "#/components/parameters/pageLimitParam"
          },
          {
            "$ref": "#/components/parameters/sortingParam"
          },
          {
            "$ref": "#/components/parameters/searchKeyword"
          },
          {
            "name": "product_id",
            "in": "path",
            "description": "id of a particular product",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "review_tag",
            "in": "query",
            "description": "filter review with review tag",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "reviews": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/ProductReview"
                          }
                        },
                        "review_tags": {
                          "type": [
                            "array",
                            "null"
                          ],
                          "items": {
                            "type": "string"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "reviews"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          },
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "catalog",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listProductReviews"
      },
      "post": {
        "tags": [
          "Catalog"
        ],
        "operationId": "create-product-review",
        "summary": "Create product review",
        "description": "Create a product review",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-product-review",
          "description": "API reference for the create-product-review operation"
        },
        "parameters": [
          {
            "name": "product_id",
            "in": "path",
            "description": "id of a particular product",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/CreateReview"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Review submitted successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "catalog",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "createProductReview"
      }
    },
    "/catalog/products/{product_id}/variants": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "list-product-variants",
        "summary": "Retrieve product variants",
        "description": "Retrieves the variants of an existing product. Returns the corresponding variant list. Product slug is supported in place of product ID in the path.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-product-variants",
          "description": "API reference for the list-product-variants operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "inventory",
            "in": "query",
            "description": "Determines whether to include or exclude inventory details in response json",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "product_id",
            "in": "path",
            "description": "Product ID or product slug. Either is accepted in the path.",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "01H7YK0C86V9PGT0HXRJVEZXJQ",
                "detox-candy"
              ],
              "minLength": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Products retrieved successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "variants": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Variant"
                          }
                        }
                      },
                      "required": [
                        "variants"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "AddVariantToCart": {
                "operationId": "update-cart",
                "requestBody": {
                  "product_id": "$request.path.product_id",
                  "variant_id": "$response.body#/content/variants/0/id"
                },
                "description": "Add a variant to a cart. Use the parent `product_id` and a variant's `id` as `variant_id`."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          },
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "catalog",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listProductVariants"
      }
    },
    "/catalog/products/{product_id}/variants/{variant_id}": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "get-variant-detail",
        "summary": "Retrieve variant detail",
        "description": "Retrieves the details of a particular variant. Product slug is supported in place of product ID, and variant slug in place of variant ID, in the path.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-variant-detail",
          "description": "API reference for the get-variant-detail operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "inventory",
            "in": "query",
            "description": "Determines whether to include or exclude inventory details in response json",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "product_id",
            "in": "path",
            "description": "Product ID or product slug. Either is accepted in the path.",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "01H7YK0C86V9PGT0HXRJVEZXJQ",
                "detox-candy"
              ],
              "minLength": 1
            }
          },
          {
            "name": "variant_id",
            "in": "path",
            "description": "Variant ID or variant slug. Either is accepted in the path.",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "01H7YK0D12ABC123VARIANT456",
                "large-blue"
              ],
              "minLength": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "Products retrieved successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "variant": {
                          "$ref": "#/components/schemas/VariantDetail"
                        }
                      },
                      "required": [
                        "variant"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "AddVariantToCart": {
                "operationId": "update-cart",
                "requestBody": {
                  "product_id": "$request.path.product_id",
                  "variant_id": "$request.path.variant_id"
                },
                "description": "Add this variant to a cart."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          },
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "catalog",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getVariantDetail"
      }
    },
    "/catalog/skus": {
      "get": {
        "tags": [
          "Catalog"
        ],
        "operationId": "list-skus",
        "summary": "List all SKUs",
        "description": "Returns a list of SKUs. The SKUs are returned sorted by creation date, with the most recently created SKUs appearing first.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-skus",
          "description": "API reference for the list-skus operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/pageParam"
          },
          {
            "$ref": "#/components/parameters/pageLimitParam"
          },
          {
            "$ref": "#/components/parameters/sortingParam"
          },
          {
            "$ref": "#/components/parameters/CustomerGroupId"
          },
          {
            "name": "category_id",
            "in": "query",
            "description": "filter sku by categories",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "explode": true,
            "style": "form"
          },
          {
            "name": "category_slug",
            "in": "query",
            "description": "filter products by categories slugs",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "inventory",
            "in": "query",
            "description": "Determines whether to include or exclude inventory details in response json",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "product_type",
            "in": "query",
            "description": "Filter sku by product type. multiple product types can be passed separated by comma. eg: product_type=physical,digital",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sku",
            "in": "query",
            "description": "array of sku",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "SKUs retrieved successfully."
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "skus": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Item"
                          },
                          "readOnly": true
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "skus",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "AddItemToCart": {
                "operationId": "update-cart",
                "requestBody": {
                  "product_id": "$response.body#/content/skus/0/product_id",
                  "variant_id": "$response.body#/content/skus/0/variant_id"
                },
                "description": "Add a SKU to a cart."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          },
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "catalog",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listSkus"
      }
    },
    "/common/countries": {
      "get": {
        "tags": [
          "Common"
        ],
        "operationId": "list-countries",
        "summary": "Retrieve all countries",
        "description": "Retrieve all countries",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-countries",
          "description": "API reference for the list-countries operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "countries": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Country"
                          }
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "common",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listCountries"
      }
    },
    "/common/countries/{country_iso_code}/pincodes": {
      "get": {
        "tags": [
          "Common"
        ],
        "operationId": "list-country-pincodes",
        "summary": "Retrieve pincodes",
        "description": "Retrieve pincodes",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-country-pincodes",
          "description": "API reference for the list-country-pincodes operation"
        },
        "parameters": [
          {
            "name": "country_iso_code",
            "in": "path",
            "description": "ISO 3166-1 alpha-2 country code (e.g., `IN` for India).",
            "required": true,
            "schema": {
              "type": "string",
              "maxLength": 2,
              "minLength": 2,
              "pattern": "^[A-Z]{2}$"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "no of rows per page",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "page number of pagination list",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pincode",
            "in": "query",
            "description": "pincode. atleast 3 initial chars require to use this param",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "pincodes": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Pincode"
                          }
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "common",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listCountryPincodes"
      }
    },
    "/common/countries/{country_iso_code}/states": {
      "get": {
        "tags": [
          "Common"
        ],
        "operationId": "list-country-states",
        "summary": "Retrieve country wise states",
        "description": "Retrieve country wise states",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-country-states",
          "description": "API reference for the list-country-states operation"
        },
        "parameters": [
          {
            "name": "country_iso_code",
            "in": "path",
            "description": "ISO 3166-1 alpha-2 country code (e.g., `IN` for India).",
            "required": true,
            "schema": {
              "type": "string",
              "maxLength": 2,
              "minLength": 2,
              "pattern": "^[A-Z]{2}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "states": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CountryState"
                          }
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "common",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listCountryStates"
      }
    },
    "/customers/loyalty-program": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "get-loyalty-program",
        "summary": "Get loyalty program detail",
        "description": "Retrieves the store's current loyalty program. Returns a single `LoyaltyProgram` that has started and has status `active` or `expired`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-loyalty-program",
          "description": "API reference for the get-loyalty-program operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "loyalty_program": {
                          "$ref": "#/components/schemas/LoyaltyProgram"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getLoyaltyProgram"
      }
    },
    "/customers/{customer_id}/addresses": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "list-addresses",
        "summary": "Retrieve all addresses",
        "description": "Retrieve billing and shipping address of particular customer",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-addresses",
          "description": "API reference for the list-addresses operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/pageParam"
          },
          {
            "$ref": "#/components/parameters/pageLimitParam"
          },
          {
            "name": "customer_id",
            "in": "path",
            "description": "Customer id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "addresses": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CustomerAddress"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listAddresses"
      },
      "post": {
        "tags": [
          "Customers"
        ],
        "operationId": "create-address",
        "summary": "Create address",
        "description": "Add new address",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-address",
          "description": "API reference for the create-address operation"
        },
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "description": "Customer id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "payload for new address",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerAddress"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "address": {
                          "$ref": "#/components/schemas/CustomerAddress"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "GetCreatedAddress": {
                "operationId": "get-address-detail",
                "parameters": {
                  "address_id": "$response.body#/content/address/id",
                  "customer_id": "$request.path.customer_id"
                },
                "description": "Retrieve the newly created address."
              },
              "SetCartAddress": {
                "operationId": "create-cart-address",
                "requestBody": {
                  "billing_address_id": "$response.body#/content/address/id",
                  "shipping_address_id": "$response.body#/content/address/id"
                },
                "description": "Link the newly created address to a cart as billing and shipping address."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "createAddress"
      }
    },
    "/customers/{customer_id}/addresses/{address_id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "get-address-detail",
        "summary": "Retrieve particular address",
        "description": "Retrieve address",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-address-detail",
          "description": "API reference for the get-address-detail operation"
        },
        "parameters": [
          {
            "name": "address_id",
            "in": "path",
            "description": "address id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customer_id",
            "in": "path",
            "description": "customer id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "address": {
                          "$ref": "#/components/schemas/CustomerAddress"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getAddressDetail"
      },
      "put": {
        "tags": [
          "Customers"
        ],
        "operationId": "update-address-detail",
        "summary": "Update particular address",
        "description": "Update address",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/update-address-detail",
          "description": "API reference for the update-address-detail operation"
        },
        "parameters": [
          {
            "name": "address_id",
            "in": "path",
            "description": "address id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customer_id",
            "in": "path",
            "description": "customer id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "payload for address update",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerAddress"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "address": {
                          "$ref": "#/components/schemas/CustomerAddress"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "updateAddressDetail"
      },
      "delete": {
        "tags": [
          "Customers"
        ],
        "operationId": "delete-address",
        "summary": "Remove particular address",
        "description": "Delete address",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/delete-address",
          "description": "API reference for the delete-address operation"
        },
        "parameters": [
          {
            "name": "address_id",
            "in": "path",
            "description": "address id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customer_id",
            "in": "path",
            "description": "customer id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "examples": [
                        "address removed successfully"
                      ]
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "deleteAddress"
      }
    },
    "/customers/{customer_id}/bank-accounts": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "list-bank-accounts",
        "summary": "List all bank accounts",
        "description": "Retrieve all bank accounts for a customer. Returns an array of `CustomerBankAccount` objects. Optionally filter by `account_type`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-bank-accounts",
          "description": "API reference for the list-bank-accounts operation"
        },
        "parameters": [
          {
            "name": "account_type",
            "in": "query",
            "description": "Filter bank accounts by type.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "inbound",
                "outbound"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "bank_accounts": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CustomerBankAccount"
                          }
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listBankAccounts"
      },
      "post": {
        "tags": [
          "Customers"
        ],
        "operationId": "create-bank-account",
        "summary": "Create a bank account",
        "description": "Add a new bank account for a customer. Returns the created `CustomerBankAccount` object.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-bank-account",
          "description": "API reference for the create-bank-account operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBankAccount"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "bank_account": {
                          "$ref": "#/components/schemas/CustomerBankAccount"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "createBankAccount"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/bank-accounts/{account_id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "get-bank-account-detail",
        "summary": "Retrieve a bank account",
        "description": "Retrieve a specific bank account for a customer. Returns a `CustomerBankAccount` object.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-bank-account-detail",
          "description": "API reference for the get-bank-account-detail operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "bank_account": {
                          "$ref": "#/components/schemas/CustomerBankAccount"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getBankAccountDetail"
      },
      "put": {
        "tags": [
          "Customers"
        ],
        "operationId": "update-bank-account",
        "summary": "Update a bank account",
        "description": "Update an existing bank account for a customer. Outbound accounts support full updates; inbound accounts can only update `is_default`. Returns the updated `CustomerBankAccount` object.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/update-bank-account",
          "description": "API reference for the update-bank-account operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBankAccount"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "bank_account": {
                          "$ref": "#/components/schemas/CustomerBankAccount"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "updateBankAccount"
      },
      "delete": {
        "tags": [
          "Customers"
        ],
        "operationId": "delete-bank-account",
        "summary": "Delete a bank account",
        "description": "Remove a bank account from a customer.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/delete-bank-account",
          "description": "API reference for the delete-bank-account operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "deleteBankAccount"
      },
      "parameters": [
        {
          "name": "account_id",
          "in": "path",
          "description": "Bank account id",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/bank-accounts/{account_id}/verify": {
      "post": {
        "tags": [
          "Customers"
        ],
        "operationId": "verify-bank-account",
        "summary": "Verify a bank account",
        "description": "Set the verification status of a bank account. Only the primary user of the customer account can perform this action. Returns the updated `CustomerBankAccount` object.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/verify-bank-account",
          "description": "API reference for the verify-bank-account operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "is_verified"
                ],
                "properties": {
                  "is_verified": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "bank_account": {
                          "$ref": "#/components/schemas/CustomerBankAccount"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "verifyBankAccount"
      },
      "parameters": [
        {
          "name": "account_id",
          "in": "path",
          "description": "Bank account id",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/cards": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "list-customer-cards",
        "summary": "List all saved cards",
        "description": "Retrieve a list of saved payment cards for a given customer.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-customer-cards",
          "description": "API reference for the list-customer-cards operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "cards": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/JuspayCardDetail"
                          }
                        }
                      },
                      "required": [
                        "cards"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "CreateOrderWithSavedCard": {
                "operationId": "create-order",
                "description": "Create an order using a saved card. Use `card_token` from a `JuspayCardDetail` as part of a `JusPaySavedCardToken` payment method payload."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listCustomerCards"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/credit-balance": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "get-customer-credit-balance",
        "summary": "Retrieve customer credit balance",
        "description": "Retrieves the customer's bank-transfer credit balance. Returns a `CustomerCreditBalance` with `received_amount`, `settled_amount`, and spendable `balance_amount`. Use this before applying credit at checkout.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-customer-credit-balance",
          "description": "API reference for the get-customer-credit-balance operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "$ref": "#/components/schemas/CustomerCreditBalance"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getCustomerCreditBalance"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/credit-line-balance": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "get-customer-credit-line-balance",
        "summary": "Get credit line balance",
        "description": "Retrieves the customer's credit-line eligibility, their latest `CustomerCreditLineBalance`, and all currently `active` `CustomerMandate` records usable for credit-line debits.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-customer-credit-line-balance",
          "description": "API reference for the get-customer-credit-line-balance operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "is_eligible": {
                          "description": "Whether the customer is currently approved to use the credit line. `false` blocks new mandate creation and credit-line checkouts.",
                          "type": "boolean"
                        },
                        "credit_line_balance": {
                          "description": "The customer's latest credit-line balance. `null` when no balance has been provisioned yet.",
                          "oneOf": [
                            {
                              "$ref": "#/components/schemas/CustomerCreditLineBalance"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "active_mandates": {
                          "description": "Customer mandates currently usable for credit-line debits. Only mandates whose `status` is `active` are returned.",
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CustomerMandate"
                          }
                        }
                      },
                      "required": [
                        "is_eligible",
                        "credit_line_balance",
                        "active_mandates"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getCustomerCreditLineBalance"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/documents": {
      "get": {
        "tags": [
          "KYC"
        ],
        "operationId": "list-documents",
        "summary": "List all documents",
        "description": "List all documents added by a particular customer.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-documents",
          "description": "API reference for the list-documents operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "documents": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Document"
                          }
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-speakeasy-group": "kyc",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listDocuments"
      },
      "post": {
        "tags": [
          "KYC"
        ],
        "operationId": "create-document",
        "summary": "Create document",
        "description": "Create document",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-document",
          "description": "API reference for the create-document operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "$ref": "#/components/schemas/Document"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "document": {
                          "$ref": "#/components/schemas/Document"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-speakeasy-group": "kyc",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "createDocument"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "customer id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/documents/verify": {
      "post": {
        "tags": [
          "KYC"
        ],
        "operationId": "verify-document",
        "summary": "Verify document",
        "description": "Verify document number before saving.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/verify-document",
          "description": "API reference for the verify-document operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "document_number",
                  "document_type_id"
                ],
                "properties": {
                  "document_number": {
                    "type": "string"
                  },
                  "document_type_id": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "document": {
                          "oneOf": [
                            {
                              "$ref": "#/components/schemas/GstinDetail"
                            },
                            {
                              "$ref": "#/components/schemas/PanDetail"
                            }
                          ]
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-speakeasy-group": "kyc",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "verifyDocument"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "customer id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/documents/{document_id}": {
      "get": {
        "tags": [
          "KYC"
        ],
        "operationId": "get-document",
        "summary": "Retrieve document detail",
        "description": "Retrieve document detail",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-document",
          "description": "API reference for the get-document operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "document": {
                          "$ref": "#/components/schemas/Document"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-speakeasy-group": "kyc",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "getDocument"
      },
      "put": {
        "tags": [
          "KYC"
        ],
        "operationId": "update-document",
        "summary": "Update document detail",
        "description": "Update document detail",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/update-document",
          "description": "API reference for the update-document operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "$ref": "#/components/schemas/UpdateDocument"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "document": {
                          "$ref": "#/components/schemas/Document"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-speakeasy-group": "kyc",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "updateDocument"
      },
      "delete": {
        "tags": [
          "KYC"
        ],
        "operationId": "delete-document",
        "summary": "Delete document",
        "description": "Delete document",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/delete-document",
          "description": "API reference for the delete-document operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-speakeasy-group": "kyc",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "deleteDocument"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "customer id",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "document_id",
          "in": "path",
          "description": "document id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/loyalty": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "get-loyalty-details",
        "summary": "Retrieve loyalty details",
        "description": "Retrieve loyalty details",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-loyalty-details",
          "description": "API reference for the get-loyalty-details operation"
        },
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "description": "customer id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "loyalty": {
                          "$ref": "#/components/schemas/CustomerLoyalty"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getLoyaltyDetails"
      }
    },
    "/customers/{customer_id}/loyalty-points-activity": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "list-loyalty-activities",
        "summary": "List all loyalty points activity",
        "description": "List all loyalty points activity",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-loyalty-activities",
          "description": "API reference for the list-loyalty-activities operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/pageLimitParam"
          },
          {
            "$ref": "#/components/parameters/pageParam"
          },
          {
            "$ref": "#/components/parameters/sortingParam"
          },
          {
            "name": "customer_id",
            "in": "path",
            "description": "customer id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "loyalty_points_activity": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/LoyaltyPointActivity"
                          }
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listLoyaltyActivities"
      }
    },
    "/customers/{customer_id}/mandate-debit-schedules": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "list-customer-mandate-debit-schedules",
        "summary": "List mandate debit schedules",
        "description": "Retrieves the paginated list of `MandateDebitSchedule` entries for a customer across all mandates. Each entry represents a queued, executed, retried, or cancelled mandate-based debit attempt.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-customer-mandate-debit-schedules",
          "description": "API reference for the list-customer-mandate-debit-schedules operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/pageParam"
          },
          {
            "$ref": "#/components/parameters/pageLimitParam"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "mandate_debit_schedules": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/MandateDebitSchedule"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "mandate_debit_schedules",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listCustomerMandateDebitSchedules"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/mandates": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "list-customer-mandates",
        "summary": "List all mandates",
        "description": "Retrieve a list of mandates for a given customer.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-customer-mandates",
          "description": "API reference for the list-customer-mandates operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "mandates": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CustomerMandate"
                          }
                        }
                      },
                      "required": [
                        "mandates"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listCustomerMandates"
      },
      "post": {
        "tags": [
          "Customers"
        ],
        "operationId": "create-customer-mandate",
        "summary": "Create mandate",
        "description": "Create a new mandate for a given customer.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-customer-mandate",
          "description": "API reference for the create-customer-mandate operation"
        },
        "requestBody": {
          "description": "payload for new mandate",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerMandate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "mandate": {
                          "$ref": "#/components/schemas/CustomerMandate"
                        }
                      },
                      "required": [
                        "mandate"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "createCustomerMandate"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/mandates/{mandate_id}": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "get-customer-mandate",
        "summary": "Get mandate",
        "description": "Retrieve a mandate for a given customer.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-customer-mandate",
          "description": "API reference for the get-customer-mandate operation"
        },
        "parameters": [
          {
            "name": "sync",
            "in": "query",
            "description": "If true, sync the mandate status from the external mandate provider before returning.",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "mandate": {
                          "$ref": "#/components/schemas/CustomerMandate"
                        }
                      },
                      "required": [
                        "mandate"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getCustomerMandate"
      },
      "put": {
        "tags": [
          "Customers"
        ],
        "operationId": "update-customer-mandate",
        "summary": "Update mandate",
        "description": "Updates the `max_amount` or `end_at` of an existing mandate. Only mandates with an `active` status can be updated. Returns the updated `CustomerMandate`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/update-customer-mandate",
          "description": "API reference for the update-customer-mandate operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "max_amount": {
                    "type": "number"
                  },
                  "end_at": {
                    "type": "string",
                    "format": "date-time"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "mandate": {
                          "$ref": "#/components/schemas/CustomerMandate"
                        }
                      },
                      "required": [
                        "mandate"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "updateCustomerMandate"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "mandate_id",
          "in": "path",
          "description": "Mandate Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/mandates/{mandate_id}/pause": {
      "post": {
        "tags": [
          "Customers"
        ],
        "operationId": "pause-customer-mandate",
        "summary": "Pause mandate",
        "description": "Pause a mandate for a given customer.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/pause-customer-mandate",
          "description": "API reference for the pause-customer-mandate operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "mandate": {
                          "$ref": "#/components/schemas/CustomerMandate"
                        }
                      },
                      "required": [
                        "mandate"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "pauseCustomerMandate"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "mandate_id",
          "in": "path",
          "description": "Mandate Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/mandates/{mandate_id}/resume": {
      "post": {
        "tags": [
          "Customers"
        ],
        "operationId": "resume-customer-mandate",
        "summary": "Resume mandate",
        "description": "Resume a paused mandate for a given customer.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/resume-customer-mandate",
          "description": "API reference for the resume-customer-mandate operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "mandate": {
                          "$ref": "#/components/schemas/CustomerMandate"
                        }
                      },
                      "required": [
                        "mandate"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "resumeCustomerMandate"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "mandate_id",
          "in": "path",
          "description": "Mandate Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/mandates/{mandate_id}/revoke": {
      "post": {
        "tags": [
          "Customers"
        ],
        "operationId": "revoke-customer-mandate",
        "summary": "Revoke mandate",
        "description": "Revoke a mandate for a given customer.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/revoke-customer-mandate",
          "description": "API reference for the revoke-customer-mandate operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "mandate": {
                          "$ref": "#/components/schemas/CustomerMandate"
                        }
                      },
                      "required": [
                        "mandate"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "revokeCustomerMandate"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "mandate_id",
          "in": "path",
          "description": "Mandate Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/payment-methods": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "list-saved-payment-methods",
        "summary": "List all saved payment methods",
        "description": "This endpoint acts as a proxy for JusPay's Fetch Saved Payment Methods API. It enables to securely retrieve a list of payment methods (such as saved cards, UPI handles, wallets) that have been previously stored for a given customer.\n\nThe operation helps streamline the checkout flow by allowing users to quickly select from existing payment methods, reducing input friction and improving conversion.\n\nYou can filter the results by payment method type using the payment_method query parameter. Multiple payment methods can be specified by separating them with commas (e.g., payment_method=upi_collect,card,wallet).\n\nAPI documentation of JusPay can be found at below link:\n\nhttps://juspay.io/in/docs/api-reference/docs/express-checkout/fetch-saved-payment-methods",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-saved-payment-methods",
          "description": "API reference for the list-saved-payment-methods operation"
        },
        "parameters": [
          {
            "name": "payment_methods",
            "in": "query",
            "description": "Filter payment methods by type. Accepts multiple payment method types separated by commas. Example: payment_method=upi_collect,card,wallet. Available payment method types include: upi_collect, card, wallet.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "saved_payment_methods": {
                          "$ref": "#/components/schemas/SavedPaymentMethod"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "CreateOrder": {
                "operationId": "create-order",
                "description": "Create an order using a saved payment method. Use the saved payment method details to construct a `JusPayExpressCheckout` payment method payload."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listSavedPaymentMethods"
      },
      "parameters": [
        {
          "name": "customer_id",
          "in": "path",
          "description": "Customer Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/customers/{customer_id}/reviews": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "list-customer-reviews",
        "summary": "Retrieve all reviews",
        "description": "Retrieve all reviews",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-customer-reviews",
          "description": "API reference for the list-customer-reviews operation"
        },
        "parameters": [
          {
            "name": "customer_id",
            "in": "path",
            "description": "customer id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "reviews": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CustomerReview"
                          }
                        },
                        "ready_for_review": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CustomerReadyForReview"
                          }
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listCustomerReviews"
      }
    },
    "/customers/{id}/authorized-sellers": {
      "get": {
        "tags": [
          "Customers"
        ],
        "operationId": "get-customer-authorized-sellers",
        "summary": "Get authorized sellers for customer",
        "description": "Get authorized sellers for customer",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-customer-authorized-sellers",
          "description": "API reference for the get-customer-authorized-sellers operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/pageParam"
          },
          {
            "$ref": "#/components/parameters/pageLimitParam"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "authorized_sellers": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/SellerInfo"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          }
        },
        "x-speakeasy-group": "customers",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getCustomerAuthorizedSellers"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "Customer Id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/fulfillment/serviceability": {
      "post": {
        "tags": [
          "Carts"
        ],
        "operationId": "check-fulfillment",
        "summary": "Check fulfillment",
        "description": "Checking if fulfillment is available to the entered pincode based on shipping zones and inventories.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/check-fulfillment",
          "description": "API reference for the check-fulfillment operation"
        },
        "parameters": [],
        "requestBody": {
          "description": "Fulfillment check request",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/CartBasedFulfillmentCheck"
                  },
                  {
                    "$ref": "#/components/schemas/ItemsBasedFulfillmentCheck"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "is_serviceable": {
                          "type": "boolean"
                        },
                        "unserviceable_items": {
                          "description": "List of unserviceable items if any. Empty array if all items are serviceable.",
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/UnserviceableItem"
                          }
                        }
                      },
                      "required": [
                        "is_serviceable"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "checkFulfillment"
      }
    },
    "/orders": {
      "post": {
        "tags": [
          "Orders"
        ],
        "operationId": "create-order",
        "summary": "Create order",
        "description": "Creates an order from a cart. Returns an `Order` object along with `payment_required` and `payment_info`. When `payment_required` is `true`, use `payment_info` to initiate the payment flow, then poll `/orders/{order_number}/payment-status` from your return URL.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-order",
          "description": "API reference for the create-order operation"
        },
        "requestBody": {
          "description": "Request body",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "cart_id"
                ],
                "properties": {
                  "cart_id": {
                    "type": "string"
                  },
                  "payment_method": {
                    "$ref": "#/components/schemas/PaymentMethodPayload"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "order": {
                          "$ref": "#/components/schemas/Order"
                        },
                        "payment_required": {
                          "type": "boolean"
                        },
                        "payment_info": {
                          "oneOf": [
                            {
                              "$ref": "#/components/schemas/JusPayHyperCheckoutResponse"
                            },
                            {
                              "$ref": "#/components/schemas/JusPayExpressCheckoutResponse"
                            },
                            {
                              "$ref": "#/components/schemas/PayuPaymentInfo"
                            }
                          ]
                        }
                      },
                      "required": [
                        "order",
                        "payment_required",
                        "payment_info"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "GetCreatedOrder": {
                "operationId": "get-order-detail",
                "parameters": {
                  "order_number": "$response.body#/content/order/order_number"
                },
                "description": "Retrieve the newly created order."
              },
              "PollPaymentStatus": {
                "operationId": "get-payment-status",
                "parameters": {
                  "order_number": "$response.body#/content/order/order_number"
                },
                "description": "Poll the payment status of the newly created order."
              },
              "AuthenticateDirectOtp": {
                "operationId": "authenticate-direct-otp",
                "requestBody": {
                  "challenge_id": "$response.body#/content/payment_info/payment/authentication/params/challenge_id",
                  "txn_id": "$response.body#/content/payment_info/payment/authentication/params/id"
                },
                "description": "Authenticate with direct OTP when express checkout returns `payment.authentication.params` with `submit_otp_allowed: true`."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "createOrder"
      },
      "get": {
        "tags": [
          "Orders"
        ],
        "operationId": "list-orders",
        "summary": "Retrieve all orders",
        "description": "Lists all orders for a user. Returns an array of `OrderList` objects with pagination.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-orders",
          "description": "API reference for the list-orders operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/pageParam"
          },
          {
            "$ref": "#/components/parameters/pageLimitParam"
          },
          {
            "$ref": "#/components/parameters/sortingParam"
          },
          {
            "name": "status",
            "in": "query",
            "description": "array of string",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "user_id",
            "in": "query",
            "description": "user id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "orders": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/OrderList"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listOrders"
      }
    },
    "/orders/buy-it-again": {
      "get": {
        "tags": [
          "Orders"
        ],
        "operationId": "list-buy-it-again-items",
        "summary": "Retrieve buy-it-again items",
        "description": "Lists items previously purchased by the authenticated user across paid orders (excludes orders with `payment_status` of `pending` or `failed`). Results are deduplicated by `product_id`, returning the most recent purchase for each product. Use this to power a \"Buy it again\" carousel on storefronts.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-buy-it-again-items",
          "description": "API reference for the list-buy-it-again-items operation"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/pageParam"
          },
          {
            "$ref": "#/components/parameters/pageLimitParam"
          },
          {
            "name": "seller_id",
            "in": "query",
            "description": "Filter items by one or more seller IDs. Accepts a comma-separated list (e.g. `seller_a,seller_b`). Relevant for marketplace stores.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/BuyOrderItemAgain"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "items",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listBuyItAgainItems"
      }
    },
    "/orders/{order_number}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "operationId": "get-order-detail",
        "summary": "Retrieve order detail",
        "description": "Retrieves the full `OrderDetail` object for a given order number.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-order-detail",
          "description": "API reference for the get-order-detail operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "order number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "default": "order details",
                      "readOnly": true
                    },
                    "success": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "content": {
                      "properties": {
                        "order": {
                          "$ref": "#/components/schemas/OrderDetail"
                        }
                      },
                      "required": [
                        "order"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getOrderDetail"
      }
    },
    "/orders/{order_number}/cancel": {
      "post": {
        "tags": [
          "Orders"
        ],
        "operationId": "cancel-order",
        "summary": "Cancel order",
        "description": "Cancels an order. Only available when `is_cancellation_allowed` is `true` on the order. Returns the updated `OrderDetail` object. Requires a `cancellation_reason` and `refund_mode`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/cancel-order",
          "description": "API reference for the cancel-order operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "order number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "cancellation_reason",
                  "refund_mode"
                ],
                "properties": {
                  "cancellation_reason": {
                    "type": "string"
                  },
                  "refund_mode": {
                    "type": "string",
                    "enum": [
                      "original-payment-mode",
                      "bank-transfer"
                    ]
                  },
                  "bank_account_id": {
                    "description": "verified bank account id if refund_mode = bank-transfer",
                    "type": "string"
                  },
                  "feedback": {
                    "description": "feedback text",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "default": "order details",
                      "readOnly": true
                    },
                    "success": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "content": {
                      "properties": {
                        "order": {
                          "$ref": "#/components/schemas/OrderDetail"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "cancelOrder"
      }
    },
    "/orders/{order_number}/cancel-payment-request": {
      "post": {
        "tags": [
          "Orders"
        ],
        "operationId": "cancel-payment-request",
        "summary": "Cancel payment request",
        "description": "Use when the express checkout payment flow is used and the user wants to switch payment methods (e.g. started with UPI, then chose another). Without this call, the user must wait until the payment-status API returns `status: failed` and `is_retry_available: true` (typically ~3 minutes). Calling this endpoint cancels the existing payment request so the user can retry payment immediately.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/cancel-payment-request",
          "description": "API reference for the cancel-payment-request operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "order number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                }
              }
            },
            "links": {
              "GetPaymentStatusAfterCancel": {
                "operationId": "get-payment-status",
                "parameters": {
                  "order_number": "$request.path.order_number"
                },
                "description": "Poll the payment status after canceling payment."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "cancelPaymentRequest"
      }
    },
    "/orders/{order_number}/payment-status": {
      "get": {
        "tags": [
          "Orders"
        ],
        "operationId": "get-payment-status",
        "summary": "Retrieve payment status",
        "description": "Retrieves the authoritative payment status of an order. After a payment attempt, poll this endpoint from your return URL every 2-3 seconds until `status` is `success` or `failed`. When `is_retry_available` is `true`, the payment can be retried.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-payment-status",
          "description": "API reference for the get-payment-status operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "order number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "default": "order details",
                      "readOnly": true
                    },
                    "success": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "content": {
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "pending",
                            "success",
                            "failed",
                            "partially_paid"
                          ]
                        },
                        "amount_paid": {
                          "type": "number",
                          "format": "double"
                        },
                        "amount_unpaid": {
                          "type": "number",
                          "format": "double"
                        },
                        "is_retry_available": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "status",
                        "amount_paid",
                        "amount_unpaid",
                        "is_retry_available"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "RetryPayment": {
                "operationId": "retry-order-payment",
                "parameters": {
                  "order_number": "$request.path.order_number"
                },
                "description": "Retry the payment when `is_retry_available` is `true` and `status` is `failed`."
              },
              "GetOrderDetail": {
                "operationId": "get-order-detail",
                "parameters": {
                  "order_number": "$request.path.order_number"
                },
                "description": "Retrieve the full order detail after payment completes."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getPaymentStatus"
      }
    },
    "/orders/{order_number}/payments": {
      "get": {
        "tags": [
          "Orders"
        ],
        "operationId": "list-order-payments",
        "summary": "Retrieve order payments",
        "description": "Retrieve order payments",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-order-payments",
          "description": "API reference for the list-order-payments operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "order number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "default": "order details",
                      "readOnly": true
                    },
                    "success": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "content": {
                      "properties": {
                        "payments": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/OrderPayment"
                          }
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listOrderPayments"
      },
      "post": {
        "operationId": "create-order-payment-request",
        "summary": "Create POS order payment",
        "description": "Creates a payment request for a POS order. Use this when the order was created without `payment_method` or when collecting the remaining `to_be_paid` amount with another method.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-order-payment-request",
          "description": "API reference for the create-order-payment-request operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "The unique identifier of the Order.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Request body",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "amount",
                  "payment_method"
                ],
                "properties": {
                  "amount": {
                    "description": "Amount to request for this payment method. The total requested amount cannot exceed the order's `to_be_paid`.",
                    "type": "number",
                    "format": "double",
                    "exclusiveMinimum": 0
                  },
                  "payment_method": {
                    "$ref": "#/components/schemas/PosPaymentMethodPayload"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "readOnly": true
                    },
                    "success": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "content": {
                      "properties": {
                        "payments": {
                          "description": "All payment records for the order after creating this request.",
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/OrderPayment"
                          }
                        },
                        "payment_required": {
                          "description": "`true` if the order has a payable amount.",
                          "type": "boolean"
                        },
                        "pending_amount": {
                          "description": "Remaining amount that can still be requested for this order.",
                          "type": "number",
                          "format": "double"
                        },
                        "payment_info": {
                          "description": "Gateway initiation details when an auto payment method is used; otherwise `null`.",
                          "oneOf": [
                            {
                              "$ref": "#/components/schemas/JusPayHyperCheckoutResponse"
                            },
                            {
                              "$ref": "#/components/schemas/JusPayExpressCheckoutResponse"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "payments",
                        "payment_required",
                        "pending_amount",
                        "payment_info"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "pos",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "createOrderPaymentRequest"
      }
    },
    "/orders/{order_number}/refunds": {
      "get": {
        "tags": [
          "Orders"
        ],
        "operationId": "list-order-refunds",
        "summary": "Retrieve order refunds",
        "description": "Retrieve order refunds",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-order-refunds",
          "description": "API reference for the list-order-refunds operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "order number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "default": "order details",
                      "readOnly": true
                    },
                    "success": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "content": {
                      "properties": {
                        "refunds": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/OrderRefund"
                          }
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listOrderRefunds"
      }
    },
    "/orders/{order_number}/retry-payment": {
      "post": {
        "tags": [
          "Orders"
        ],
        "operationId": "retry-order-payment",
        "summary": "Retry payment",
        "description": "To generate new payment request if first payment request is failed or expired. Retry payment request can be made after 15 mins of last request or immediately after last payment request is marked as failed.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/retry-order-payment",
          "description": "API reference for the retry-order-payment operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "order number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "payment_method": {
                    "$ref": "#/components/schemas/PaymentMethodPayload"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "payment_info": {
                          "oneOf": [
                            {
                              "$ref": "#/components/schemas/JusPayHyperCheckoutResponse"
                            },
                            {
                              "$ref": "#/components/schemas/JusPayExpressCheckoutResponse"
                            },
                            {
                              "$ref": "#/components/schemas/PayuPaymentInfo"
                            }
                          ]
                        }
                      },
                      "required": [
                        "payment_info"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "PollRetryPaymentStatus": {
                "operationId": "get-payment-status",
                "parameters": {
                  "order_number": "$request.path.order_number"
                },
                "description": "Poll the payment status after retrying payment."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "retryOrderPayment"
      }
    },
    "/orders/{order_number}/returns": {
      "get": {
        "tags": [
          "Orders"
        ],
        "operationId": "list-order-returns",
        "summary": "Retrieve order returns",
        "description": "Lists all return requests for a specific order. Returns an array of `OrderReturn` objects.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-order-returns",
          "description": "API reference for the list-order-returns operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "The unique identifier of the Order.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "returns": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/OrderReturn"
                          }
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listOrderReturns"
      },
      "post": {
        "tags": [
          "Orders"
        ],
        "operationId": "create-order-return",
        "summary": "Create order return",
        "description": "Initiates a return request for delivered items in an order. Specify `requested_settlement` and one or more `items` keyed by shipment and product. Returns an `OrderReturn` object.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-order-return",
          "description": "API reference for the create-order-return operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "The unique identifier of the Order.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderReturn"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "order_return": {
                          "$ref": "#/components/schemas/OrderReturn"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "GetCreatedReturn": {
                "operationId": "get-order-return-detail",
                "parameters": {
                  "order_number": "$request.path.order_number",
                  "return_number": "$response.body#/content/order_return/request_number"
                },
                "description": "Retrieve the newly created return request."
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "createOrderReturn"
      }
    },
    "/orders/{order_number}/returns/{return_number}": {
      "get": {
        "tags": [
          "Orders"
        ],
        "operationId": "get-order-return-detail",
        "summary": "Retrieve order return detail",
        "description": "Retrieves the full `OrderReturnDetail` object for a specific return request, including linked return, replacement, and refund data.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-order-return-detail",
          "description": "API reference for the get-order-return-detail operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "The unique identifier of the Order.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "return_number",
            "in": "path",
            "description": "The unique identifier of the return request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "order_return": {
                          "$ref": "#/components/schemas/OrderReturnDetail"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "getOrderReturnDetail"
      }
    },
    "/orders/{order_number}/returns/{return_number}/attachments": {
      "post": {
        "tags": [
          "Orders"
        ],
        "operationId": "upload-order-return-attachments",
        "summary": "Upload order return attachments",
        "description": "Uploads supporting images and videos for a return request. Use to provide evidence such as product condition or damage.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/upload-order-return-attachments",
          "description": "API reference for the upload-order-return-attachments operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "The unique identifier of the Order.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "return_number",
            "in": "path",
            "description": "The unique identifier of the return request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/UploadOrderReturnAttachments"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "uploadOrderReturnAttachments"
      }
    },
    "/orders/{order_number}/returns/{return_number}/cancel": {
      "post": {
        "tags": [
          "Orders"
        ],
        "operationId": "cancel-order-return",
        "summary": "Cancel order return",
        "description": "Cancels an existing return request. Use when the return should no longer be processed. Returns the updated `OrderReturn` object.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/cancel-order-return",
          "description": "API reference for the cancel-order-return operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "The unique identifier of the Order.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "return_number",
            "in": "path",
            "description": "The unique identifier of the return request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "reason"
                ],
                "properties": {
                  "reason": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "order_return": {
                          "$ref": "#/components/schemas/OrderReturn"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "cancelOrderReturn"
      }
    },
    "/orders/{order_number}/shipments": {
      "get": {
        "tags": [
          "Orders"
        ],
        "operationId": "list-order-shipments",
        "summary": "Retrieve order shipments",
        "description": "Retrieve order shipments",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-order-shipments",
          "description": "API reference for the list-order-shipments operation"
        },
        "parameters": [
          {
            "name": "order_number",
            "in": "path",
            "description": "order number",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "default": "order details",
                      "readOnly": true
                    },
                    "success": {
                      "type": "boolean",
                      "readOnly": true
                    },
                    "content": {
                      "properties": {
                        "shipments": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/OrderShipment"
                          }
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "orders",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listOrderShipments"
      }
    },
    "/payments/authenticate-direct-otp": {
      "post": {
        "tags": [
          "Payments"
        ],
        "operationId": "authenticate-direct-otp",
        "summary": "Authenticate direct OTP",
        "description": "Authenticate direct OTP",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/authenticate-direct-otp",
          "description": "API reference for the authenticate-direct-otp operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "txn_id",
                  "challenge_id",
                  "otp"
                ],
                "properties": {
                  "txn_id": {
                    "description": "You can get the txn_id from the response of create order API under the payment object inside the payment_info object. The key is 'id' under the params object inside the authentication object.",
                    "type": "string"
                  },
                  "challenge_id": {
                    "description": "You can get the challenge_id from the response of create order API under the payment object inside the payment_info object. The key is 'challenge_id' under the params object inside the authentication object.",
                    "type": "string"
                  },
                  "otp": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "payments",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "authenticateDirectOtp"
      }
    },
    "/payments/card-info": {
      "get": {
        "tags": [
          "Payments"
        ],
        "operationId": "get-card-info",
        "summary": "Get card information",
        "description": "Retrieve card information based on the initial 9 digits (card BIN) of the card number.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-card-info",
          "description": "API reference for the get-card-info operation"
        },
        "parameters": [
          {
            "name": "cardbin",
            "in": "query",
            "description": "Initial 9 digits of card number (card BIN)",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "card_info": {
                          "$ref": "#/components/schemas/CardbinInfo"
                        }
                      },
                      "required": [
                        "card_info"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "CreateOrderWithCard": {
                "operationId": "create-order",
                "description": "Create an order using card payment. Use `card_info.brand` to select the `payment_method` and match a `gateway_reference_id` from `list-payment-methods`."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "payments",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getCardInfo"
      }
    },
    "/payments/generate-hash": {
      "post": {
        "tags": [
          "PayU"
        ],
        "operationId": "generate-hash",
        "summary": "Generate hash",
        "description": "Generate PayU hash",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/generate-hash",
          "description": "API reference for the generate-hash operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "payment_gateway",
                  "plain_text"
                ],
                "properties": {
                  "payment_gateway": {
                    "const": "payu"
                  },
                  "plain_text": {
                    "description": "Format:\nFor UPI id validation,\ncommand|{upi id}\n\nFor saving, retrieving cards,\ncommand|{user id}",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "hash": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "payu",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "generateHash"
      }
    },
    "/payments/ifsc-lookup/{ifsc_code}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "operationId": "get-ifsc-lookup",
        "summary": "Lookup IFSC details",
        "description": "Returns bank branch details for an IFSC code. Proxies Razorpay IFSC lookup; `ifsc_code` must match `^[A-Z]{4}0[A-Z0-9]{6}$`.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-ifsc-lookup",
          "description": "API reference for the get-ifsc-lookup operation"
        },
        "parameters": [
          {
            "name": "ifsc_code",
            "in": "path",
            "description": "11-character Indian Financial System Code (IFSC).",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{4}0[A-Z0-9]{6}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "ifsc": {
                          "$ref": "#/components/schemas/IfscDetail"
                        }
                      },
                      "required": [
                        "ifsc"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "payments",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getIfscLookup"
      }
    },
    "/payments/juspay/create-order": {
      "post": {
        "tags": [
          "Juspay"
        ],
        "operationId": "create-juspay-order",
        "summary": "Create order in juspay",
        "description": "Creates an order in the Juspay system and fetches the corresponding client_auth_token.\nTo be used for Express Checkout integration.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-juspay-order",
          "description": "API reference for the create-juspay-order operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JuspayCreateOrderPayload"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/JuspayOrder"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "juspay",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "createJuspayOrder"
      }
    },
    "/payments/juspay/customers": {
      "post": {
        "tags": [
          "Juspay"
        ],
        "operationId": "create-juspay-customer",
        "summary": "Create customer in juspay",
        "description": "Create customer in juspay.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-juspay-customer",
          "description": "API reference for the create-juspay-customer operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JuspayCreateCustomerPayload"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/JuspayCustomer"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "juspay",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "createJuspayCustomer"
      }
    },
    "/payments/juspay/customers/{user_id}": {
      "get": {
        "tags": [
          "Juspay"
        ],
        "operationId": "get-juspay-customer",
        "summary": "Retrieve customer from juspay",
        "description": "Retrieve customer from juspay.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-juspay-customer",
          "description": "API reference for the get-juspay-customer operation"
        },
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "description": "Commercengine User Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "data": {
                          "$ref": "#/components/schemas/JuspayCustomer"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "juspay",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "getJuspayCustomer"
      }
    },
    "/payments/payment-methods": {
      "get": {
        "tags": [
          "Payments"
        ],
        "operationId": "list-payment-methods",
        "summary": "List all payment methods",
        "description": "List all payment methods",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-payment-methods",
          "description": "API reference for the list-payment-methods operation"
        },
        "parameters": [
          {
            "name": "emandate_payment_methods",
            "in": "query",
            "description": "Set to `true` to return only payment methods that support eMandates.",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "payment_method_type",
            "in": "query",
            "description": "Payment method type",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "card",
                "upi",
                "netbanking",
                "wallet",
                "manual"
              ]
            }
          },
          {
            "name": "payment_provider_slug",
            "in": "query",
            "description": "Payment provider slug",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "payment_methods": {
                          "type": "array",
                          "items": {
                            "oneOf": [
                              {
                                "$ref": "#/components/schemas/PayuPaymentMethod"
                              },
                              {
                                "$ref": "#/components/schemas/JuspayPaymentMethod"
                              },
                              {
                                "$ref": "#/components/schemas/ManualPaymentMethod"
                              }
                            ]
                          }
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "CreateOrder": {
                "operationId": "create-order",
                "description": "Create an order with a payment method. Use `payment_provider_slug` and a `gateway_reference_id` from `details[].supported_reference_ids[]` to construct the `payment_method` payload."
              },
              "GetCardInfo": {
                "operationId": "get-card-info",
                "description": "Look up card BIN info to validate card brand support before creating an order with a new card."
              },
              "VerifyVpa": {
                "operationId": "verify-vpa",
                "description": "Validate a UPI VPA before creating an order with UPI Collect."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "payments",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listPaymentMethods"
      }
    },
    "/payments/resend-direct-otp": {
      "post": {
        "tags": [
          "Payments"
        ],
        "operationId": "resend-direct-otp",
        "summary": "Resend direct OTP",
        "description": "Resend direct OTP",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/resend-direct-otp",
          "description": "API reference for the resend-direct-otp operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "txn_id",
                  "challenge_id"
                ],
                "properties": {
                  "txn_id": {
                    "description": "You can get the txn_id from the response of create order API under the payment object inside the payment_info object. The key is 'id' under the params object inside the authentication object.",
                    "type": "string"
                  },
                  "challenge_id": {
                    "description": "You can get the challenge_id from the response of create order API under the payment object inside the payment_info object. The key is 'challenge_id' under the params object inside the authentication object.",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "payment_info": {
                          "$ref": "#/components/schemas/JusPayExpressCheckoutResponse"
                        }
                      },
                      "required": [
                        "payment_info"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "payments",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "resendDirectOtp"
      }
    },
    "/payments/verify-vpa": {
      "get": {
        "tags": [
          "Payments"
        ],
        "operationId": "verify-vpa",
        "summary": "Verify VPA",
        "description": "The Virtual Payment Address or VPA is a unique ID given to an individual using the Unified Payment Interface (UPI) service to send or receive money. In the case of UPI collect VPA is the mandatory param and merchants are always advised to check if the VPA is valid or not.\nValidating the VPA will help in reducing the failure rate due to incorrect vpa. ",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/verify-vpa",
          "description": "API reference for the verify-vpa operation"
        },
        "parameters": [
          {
            "name": "vpa",
            "in": "query",
            "description": "The Virtual Payment Address or VPA is a unique ID given to an individual using the Unified Payment Interface (UPI) service.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "vpa": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "valid",
                            "invalid",
                            "unknown"
                          ]
                        },
                        "customer_name": {
                          "type": "string"
                        },
                        "mandate_details": {
                          "description": "Mandate details if available.",
                          "type": "object",
                          "properties": {
                            "is_handle_supported": {
                              "description": "Indicates whether the specific VPA handle is supported by the merchant's account.",
                              "type": "boolean"
                            }
                          }
                        }
                      },
                      "required": [
                        "vpa",
                        "status",
                        "customer_name",
                        "mandate_details"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            },
            "links": {
              "CreateOrderWithUpiCollect": {
                "operationId": "create-order",
                "description": "Create an order using UPI Collect. Use the validated `vpa` as `upi_vpa` in a `JuspayUpiCollect` payment method payload."
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "payments",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "verifyVpa"
      }
    },
    "/store/check": {
      "get": {
        "tags": [
          "Store"
        ],
        "operationId": "check-store",
        "summary": "Check store existence",
        "description": "Checks whether a store with the given ID exists. Returns `success: true` if the store exists, `false` otherwise.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/check-store",
          "description": "API reference for the check-store operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "store",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "checkStore"
      }
    },
    "/store/config": {
      "get": {
        "tags": [
          "Store"
        ],
        "operationId": "get-config",
        "summary": "Retrieve store config",
        "description": "Retrieve store config detail",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-config",
          "description": "API reference for the get-config operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "store_config": {
                          "$ref": "#/components/schemas/StoreConfig"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "config",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "getConfig"
      },
      "parameters": []
    },
    "/store/kyc-document": {
      "get": {
        "tags": [
          "Store"
        ],
        "operationId": "list-kyc-document",
        "summary": "List KYC documents",
        "description": "Retrieves the list of KYC document types required for the store. Returns an array of `Kyc Document` objects defining document types, mandatory flags, and verification settings.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-kyc-document",
          "description": "API reference for the list-kyc-document operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "kyc_documents": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/KycDocumentConfig"
                          }
                        },
                        "is_kyc_enabled": {
                          "type": "boolean",
                          "default": false,
                          "readOnly": true
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "store",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listKycDocuments"
      },
      "parameters": []
    },
    "/store/sellers/{id}": {
      "get": {
        "tags": [
          "Store"
        ],
        "operationId": "get-seller-detail",
        "summary": "Retrieve seller detail",
        "description": "Retrieve seller detail by ID",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-seller-detail",
          "description": "API reference for the get-seller-detail operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "seller_detail": {
                          "$ref": "#/components/schemas/SellerDetail"
                        },
                        "reviews_stats": {
                          "$ref": "#/components/schemas/SellerReviewStats"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "store",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "getSellerDetail"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "Seller ID",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/store/sellers/{id}/reviews": {
      "get": {
        "tags": [
          "Store"
        ],
        "operationId": "list-seller-reviews",
        "summary": "List seller reviews",
        "description": "List seller reviews by seller ID",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-seller-reviews",
          "description": "API reference for the list-seller-reviews operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "reviews": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/SellerReview"
                          }
                        },
                        "reviews_stats": {
                          "$ref": "#/components/schemas/SellerReviewStats"
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "X-Api-Key": []
          }
        ],
        "x-speakeasy-group": "store",
        "x-speakeasy-ignore": false,
        "x-speakeasy-name-override": "listSellerReviews"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "Seller ID",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/subscriptions": {
      "post": {
        "tags": [
          "Subscriptions"
        ],
        "operationId": "create-subscription",
        "summary": "Create subscription",
        "description": "Creates a new subscription for a customer. Returns the created `SubscriptionDetail` object.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/create-subscription",
          "description": "API reference for the create-subscription operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSubscription"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "subscription": {
                          "$ref": "#/components/schemas/SubscriptionDetail"
                        }
                      },
                      "required": [
                        "subscription"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          }
        },
        "x-speakeasy-group": "subscriptions",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "createSubscription"
      },
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "operationId": "list-subscriptions",
        "summary": "List all subscriptions",
        "description": "List all subscriptions",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/list-subscriptions",
          "description": "API reference for the list-subscriptions operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "subscriptions": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Subscription"
                          }
                        },
                        "pagination": {
                          "$ref": "#/components/schemas/Pagination"
                        }
                      },
                      "required": [
                        "subscriptions",
                        "pagination"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-speakeasy-group": "subscriptions",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "listSubscriptions"
      }
    },
    "/subscriptions/{id}": {
      "get": {
        "tags": [
          "Subscriptions"
        ],
        "operationId": "get-subscription",
        "summary": "Retrieve subscription details",
        "description": "Retrieve subscription details",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-subscription",
          "description": "API reference for the get-subscription operation"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "subscription": {
                          "$ref": "#/components/schemas/SubscriptionDetail"
                        }
                      },
                      "required": [
                        "subscription"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-speakeasy-group": "subscriptions",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "getSubscription"
      },
      "put": {
        "tags": [
          "Subscriptions"
        ],
        "operationId": "update-subscription",
        "summary": "Update a specific subscription",
        "description": "Update a specific subscription",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/update-subscription",
          "description": "API reference for the update-subscription operation"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/UpdatePhysicalProductSubscription"
                  },
                  {
                    "$ref": "#/components/schemas/UpdateDigitalProductSubscription"
                  },
                  {
                    "$ref": "#/components/schemas/PauseSubscription"
                  },
                  {
                    "$ref": "#/components/schemas/RevokeSubscription"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "subscription": {
                          "$ref": "#/components/schemas/SubscriptionDetail"
                        }
                      },
                      "required": [
                        "subscription"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "x-speakeasy-group": "subscriptions",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "updateSubscription"
      },
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "subscription id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ]
    },
    "/wishlist/{user_id}": {
      "get": {
        "tags": [
          "Carts"
        ],
        "operationId": "get-wishlist",
        "summary": "Retrieve wishlist",
        "description": "Retrieve products in wishlist",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/get-wishlist",
          "description": "API reference for the get-wishlist operation"
        },
        "parameters": [
          {
            "name": "seller_id",
            "in": "query",
            "description": "Seller ID. If not provided, all products will be returned. To be used for multi-seller marketplace stores only.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "user_id",
            "in": "path",
            "description": "user id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "products": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Item"
                          }
                        }
                      },
                      "required": [
                        "products"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "getWishlist"
      },
      "post": {
        "tags": [
          "Carts"
        ],
        "operationId": "add-to-wishlist",
        "summary": "Add product to wishlist",
        "description": "Adds a product to the user's wishlist. Returns the updated wishlist as an array of `Item` objects.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/add-to-wishlist",
          "description": "API reference for the add-to-wishlist operation"
        },
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "description": "user id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "product_id",
                  "variant_id"
                ],
                "properties": {
                  "product_id": {
                    "type": "string",
                    "examples": [
                      "01F3Z7KG06J4ACWH1C4926KJEC"
                    ]
                  },
                  "variant_id": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "products": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Item"
                          }
                        }
                      },
                      "required": [
                        "products"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "addToWishlist"
      },
      "delete": {
        "tags": [
          "Carts"
        ],
        "operationId": "delete-from-wishlist",
        "summary": "Delete product from wishlist",
        "description": "Remove product from wishlist",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/operations/delete-from-wishlist",
          "description": "API reference for the delete-from-wishlist operation"
        },
        "parameters": [
          {
            "name": "user_id",
            "in": "path",
            "description": "user id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "product_id",
                  "variant_id"
                ],
                "properties": {
                  "product_id": {
                    "type": "string",
                    "examples": [
                      "01F3Z7KG06J4ACWH1C4926KJEC"
                    ]
                  },
                  "variant_id": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "success",
                    "content"
                  ],
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "success": {
                      "type": "boolean"
                    },
                    "content": {
                      "properties": {
                        "products": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/Item"
                          }
                        }
                      },
                      "required": [
                        "products"
                      ],
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "x-speakeasy-group": "carts",
        "x-speakeasy-ignore": true,
        "x-speakeasy-name-override": "deleteFromWishlist"
      }
    }
  },
  "components": {
    "schemas": {
      "AcceleratedRewardCouponPromotion": {
        "title": "AcceleratedRewardCouponPromotion",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/AcceleratedRewardCouponPromotion",
          "description": "API reference for the AcceleratedRewardCouponPromotion schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/CouponPromotionCommonDetail"
          },
          {
            "type": "object",
            "required": [
              "details",
              "applies_to_product"
            ],
            "properties": {
              "details": {
                "$ref": "#/components/schemas/AcceleratedRewardRule"
              },
              "applies_to_product": {
                "enum": [
                  "product",
                  "category"
                ]
              }
            }
          }
        ]
      },
      "AcceleratedRewardRule": {
        "title": "AcceleratedRewardRule",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/AcceleratedRewardRule",
          "description": "API reference for the AcceleratedRewardRule schema"
        },
        "required": [
          "products",
          "category_id",
          "bonus_loyalty_point"
        ],
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "product_id",
                "variant_id",
                "minimum_quantity",
                "minimum_value"
              ],
              "properties": {
                "product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "minimum_quantity": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "minimum_value": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              }
            }
          },
          "category_id": {
            "description": "Array of category ids.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "bonus_loyalty_point": {
            "type": "integer"
          }
        }
      },
      "AdditionalProductDetails": {
        "title": "AdditionalProductDetails",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/AdditionalProductDetails",
          "description": "API reference for the AdditionalProductDetails schema"
        },
        "required": [
          "description",
          "hsn_code",
          "videos",
          "shipping",
          "upselling_product_ids",
          "crossselling_product_ids",
          "seo",
          "metadata"
        ],
        "properties": {
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "hsn_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "videos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductVideo"
            }
          },
          "shipping": {
            "$ref": "#/components/schemas/ProductShipping"
          },
          "upselling_product_ids": {
            "description": "An array of product IDs",
            "type": "array",
            "items": {
              "type": [
                "string",
                "null"
              ],
              "pattern": "^[a-zA-Z0-9]{26}$",
              "examples": [
                "01F3Z7KG06J4ACWH1C4926KJEB"
              ]
            }
          },
          "crossselling_product_ids": {
            "description": "An array of product IDs",
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z0-9]{26}$",
              "examples": [
                "01F3Z7KG06J4ACWH1C4926KJEB"
              ]
            }
          },
          "seo": {
            "$ref": "#/components/schemas/Seo"
          },
          "metadata": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "AnalyticsEvent": {
        "title": "AnalyticsEvent",
        "description": "Model for analytics event",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/AnalyticsEvent",
          "description": "API reference for the AnalyticsEvent schema"
        },
        "required": [
          "event",
          "type",
          "userId",
          "channel",
          "context",
          "properties",
          "messageId",
          "timestamp",
          "sentAt"
        ],
        "properties": {
          "event": {
            "description": "event name",
            "type": "string"
          },
          "type": {
            "const": "track"
          },
          "userId": {
            "description": "commercengine user id",
            "type": "string"
          },
          "channel": {
            "const": "website"
          },
          "context": {
            "type": "object",
            "properties": {
              "ip": {
                "type": "string"
              },
              "userAgent": {
                "type": "string"
              }
            },
            "required": [
              "ip",
              "userAgent"
            ]
          },
          "properties": {
            "description": "properties of the event",
            "type": "object"
          },
          "messageId": {
            "description": "unique hash string.",
            "type": "string"
          },
          "timestamp": {
            "description": "timestamp when event occured",
            "type": "string",
            "format": "date-time"
          },
          "sentAt": {
            "description": "time when event sent to server",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "AnalyticsProvider": {
        "title": "AnalyticsProvider",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/AnalyticsProvider",
          "description": "API reference for the AnalyticsProvider schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/ServiceProviderBasicDetail"
          },
          {
            "type": "object",
            "properties": {
              "analytics_provider_slug": {
                "type": "string"
              },
              "api_credentials": {
                "type": "object"
              }
            },
            "required": [
              "analytics_provider_slug",
              "api_credentials"
            ]
          }
        ]
      },
      "AnonymousUser": {
        "title": "AnonymousUser",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/AnonymousUser",
          "description": "API reference for the AnonymousUser schema"
        },
        "required": [
          "id",
          "is_anonymous",
          "is_logged_in",
          "first_name",
          "last_name",
          "phone",
          "email",
          "is_email_verified",
          "is_phone_verified",
          "profile_image_url"
        ],
        "properties": {
          "id": {
            "description": "The unique ID of the user.",
            "type": "string",
            "readOnly": true
          },
          "is_anonymous": {
            "description": "Indicates whether the user is anonymous.",
            "type": "boolean",
            "readOnly": true
          },
          "is_logged_in": {
            "description": "Indicates whether the user is currently logged in.",
            "type": "boolean",
            "readOnly": true
          },
          "first_name": {
            "description": "User’s first name.",
            "type": [
              "string",
              "null"
            ]
          },
          "last_name": {
            "description": "User’s last name.",
            "type": [
              "string",
              "null"
            ]
          },
          "phone": {
            "description": "10 digit phone number without country code.",
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "description": "User’s email I’d.",
            "type": [
              "string",
              "null"
            ]
          },
          "is_email_verified": {
            "description": "Boolean indicating whether the email is verified.",
            "type": "boolean",
            "default": false,
            "readOnly": true
          },
          "is_phone_verified": {
            "description": "Boolean indicating whether the phone is verified.",
            "type": "boolean",
            "default": false,
            "readOnly": true
          },
          "profile_image_url": {
            "description": "URL to the user's profile image.",
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "description": "Timestamps indicate when the user's account was created.",
            "type": "string",
            "format": "datetime",
            "readOnly": true
          },
          "modified_at": {
            "description": "Timestamps indicating when the user account was last modified.",
            "type": "string",
            "format": "datetime",
            "readOnly": true
          }
        }
      },
      "ApplicableCoupon": {
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ApplicableCoupon",
          "description": "API reference for the ApplicableCoupon schema"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "coupon_type": {
            "$ref": "#/components/schemas/CouponType"
          },
          "coupon_code": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "estimated_discount": {
            "type": "number"
          },
          "savings_message": {
            "type": "string"
          }
        }
      },
      "ApplicablePromotion": {
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ApplicablePromotion",
          "description": "API reference for the ApplicablePromotion schema"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "promotion_type": {
            "$ref": "#/components/schemas/PromotionType"
          },
          "estimated_discount": {
            "type": "number"
          },
          "savings_message": {
            "type": "string"
          }
        }
      },
      "AppliedCoupon": {
        "title": "AppliedPromotion",
        "description": "Details about an active coupon applied to a cart/order",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/AppliedCoupon",
          "description": "API reference for the AppliedCoupon schema"
        },
        "required": [
          "coupon_id",
          "coupon_type",
          "savings",
          "product_id",
          "variant_id",
          "product_name",
          "variant_name"
        ],
        "properties": {
          "coupon_id": {
            "type": "string"
          },
          "coupon_type": {
            "enum": [
              "discount",
              "free-goods",
              "fixed-price",
              "free-shipping",
              "buy-x-get-y",
              "volume-based",
              "accelerated-rewards"
            ]
          },
          "savings": {
            "type": "number"
          },
          "product_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "variant_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "product_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "variant_name": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "AppliedPromotion": {
        "title": "AppliedPromotion",
        "description": "Details about an active promotion applied to a cart/order",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/AppliedPromotion",
          "description": "API reference for the AppliedPromotion schema"
        },
        "required": [
          "promotion_id",
          "promotion_type",
          "savings",
          "product_id",
          "variant_id",
          "product_name",
          "variant_name",
          "applied_sequence",
          "scope"
        ],
        "properties": {
          "promotion_id": {
            "type": "string"
          },
          "promotion_type": {
            "enum": [
              "discount",
              "free-goods",
              "free-shipping",
              "buy-x-get-y",
              "volume-based"
            ]
          },
          "savings": {
            "type": "number"
          },
          "product_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "variant_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "product_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "variant_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "applied_sequence": {
            "type": "number"
          },
          "scope": {
            "type": "string"
          }
        }
      },
      "AssociatedOption": {
        "title": "AssociatedOption",
        "description": "An object where each key is an option name, and the value describes the option details.",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/AssociatedOption",
          "description": "API reference for the AssociatedOption schema"
        },
        "additionalProperties": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/ColorOption"
            },
            {
              "$ref": "#/components/schemas/SingleSelectOption"
            }
          ]
        },
        "examples": [
          {
            "background_color": {
              "name": "Background Color",
              "value": {
                "name": "Blue",
                "hexcode": "#0000FF"
              },
              "type": "color"
            },
            "size": {
              "name": "Size",
              "value": "Large",
              "type": "single-select"
            }
          }
        ]
      },
      "AuthCustomerAttribute": {
        "title": "AuthCustomerAttribute",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/AuthCustomerAttribute",
          "description": "API reference for the AuthCustomerAttribute schema"
        },
        "required": [
          "id",
          "name",
          "attribute_type"
        ],
        "properties": {
          "id": {
            "description": "The unique identifier of the customer attribute. Pass this as `attribute_id` in `POST /auth/forgot-username`.",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "attribute_type": {
            "type": "string",
            "enum": [
              "String",
              "Number"
            ]
          }
        }
      },
      "AutoScaleBasedOnAmount": {
        "title": "AutoScaleBasedOnAmount",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/AutoScaleBasedOnAmount",
          "description": "API reference for the AutoScaleBasedOnAmount schema"
        },
        "required": [
          "spending_criteria_type",
          "products"
        ],
        "properties": {
          "spending_criteria_type": {
            "type": "string",
            "const": "minimum-purchase-amount"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "product_id",
                "variant_id",
                "auto_scale",
                "slab"
              ],
              "properties": {
                "product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "auto_scale": {
                  "type": "boolean",
                  "const": true
                },
                "slab": {
                  "type": "object",
                  "properties": {
                    "minimum_purchase_amount": {
                      "type": "number"
                    },
                    "get_quantity": {
                      "type": "integer"
                    },
                    "condition": {
                      "enum": [
                        "greater-or-equal"
                      ]
                    }
                  },
                  "required": [
                    "minimum_purchase_amount",
                    "get_quantity",
                    "condition"
                  ]
                }
              }
            }
          }
        }
      },
      "AutoScaleBasedOnQuantity": {
        "title": "AutoScaleBasedOnQuantity",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/AutoScaleBasedOnQuantity",
          "description": "API reference for the AutoScaleBasedOnQuantity schema"
        },
        "required": [
          "spending_criteria_type",
          "products"
        ],
        "properties": {
          "spending_criteria_type": {
            "type": "string",
            "const": "minimum-quantity"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "product_id",
                "variant_id",
                "auto_scale",
                "slab"
              ],
              "properties": {
                "product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "auto_scale": {
                  "type": "boolean",
                  "const": true
                },
                "slab": {
                  "type": "object",
                  "properties": {
                    "buy_quantity": {
                      "type": "integer"
                    },
                    "get_quantity": {
                      "type": "integer"
                    },
                    "condition": {
                      "enum": [
                        "greater-or-equal"
                      ]
                    }
                  },
                  "required": [
                    "buy_quantity",
                    "get_quantity",
                    "condition"
                  ]
                }
              }
            }
          }
        }
      },
      "BankTransfer": {
        "title": "BankTransfer",
        "description": "Bank transfer payment - IMPS, NEFT, RTGS",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/BankTransfer",
          "description": "API reference for the BankTransfer schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentInfo"
          },
          {
            "type": "object",
            "properties": {
              "bank_account_number": {
                "description": "masked account number\r\ne.g. ************1234",
                "type": "string"
              },
              "bank_name": {
                "type": "string"
              }
            }
          }
        ]
      },
      "BankTransferCheckout": {
        "title": "BankTransferCheckout",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/BankTransferCheckout",
          "description": "API reference for the BankTransferCheckout schema"
        },
        "required": [
          "payment_provider_slug",
          "payment_method_type"
        ],
        "properties": {
          "payment_provider_slug": {
            "description": "The slug of the payment provider in Commerce Engine.",
            "type": "string",
            "const": "icici-ecollection"
          },
          "payment_method_type": {
            "type": "string",
            "const": "bank-transfer"
          }
        }
      },
      "BooleanAttribute": {
        "title": "BooleanAttribute",
        "description": "Attribute for boolean values",
        "type": "object",
        "readOnly": true,
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/BooleanAttribute",
          "description": "API reference for the BooleanAttribute schema"
        },
        "required": [
          "id",
          "name",
          "key",
          "type",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "key": {
            "description": "A lookup safe version of the name that is lowercased and spaces are replaced with underscores. For instance, if name is `Product Type`, key will be `product_type`",
            "type": "string"
          },
          "type": {
            "type": "string",
            "example": "boolean"
          },
          "value": {
            "description": "For boolean attributes",
            "type": "boolean"
          }
        }
      },
      "Brand": {
        "title": "Brand",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Brand",
          "description": "API reference for the Brand schema"
        },
        "required": [
          "name",
          "logo_url",
          "social_media_links"
        ],
        "properties": {
          "name": {
            "description": "brand name. it will be used in emails and other communications.",
            "type": "string"
          },
          "logo_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "social_media_links": {
            "description": "json object having key - value pair.\r\n\r\nexample - {\"facebook\": \"www.facebook.com/commecengine\"}",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "Business": {
        "title": "Business",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Business",
          "description": "API reference for the Business schema"
        },
        "required": [
          "type",
          "name"
        ],
        "properties": {
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "metadata": {
            "description": "Additional metadata about the business.",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "registered_address": {
            "description": "The registered address of the business.",
            "$ref": "#/components/schemas/CustomerAddress"
          }
        }
      },
      "BuyOrderItemAgain": {
        "title": "BuyOrderItemAgain",
        "description": "A previously purchased item suggested for re-purchase. Returned by the `buy-it-again` endpoint, deduplicated to one entry per `product_id` (most recent purchase) across the user's paid orders.",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/BuyOrderItemAgain",
          "description": "API reference for the BuyOrderItemAgain schema"
        },
        "required": [
          "product_id",
          "product_name",
          "product_image_url",
          "variant_id",
          "variant_name",
          "selling_price",
          "listing_price",
          "seller_id",
          "seller_detail"
        ],
        "properties": {
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "product_image_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "variant_id": {
            "description": "The unique identifier of the product variant. `null` if the product has no variants.",
            "type": [
              "string",
              "null"
            ]
          },
          "variant_name": {
            "description": "The display name of the variant. `null` if the product has no variants.",
            "type": [
              "string",
              "null"
            ]
          },
          "selling_price": {
            "description": "Selling price at the time of the original purchase.",
            "type": "number",
            "format": "double"
          },
          "listing_price": {
            "description": "Listing price at the time of the original purchase.",
            "type": "number",
            "format": "double"
          },
          "seller_id": {
            "description": "Seller ID. Relevant for marketplace stores only. `null` for b2b and b2c stores.",
            "type": [
              "string",
              "null"
            ]
          },
          "seller_detail": {
            "description": "Seller detail information. Relevant for marketplace stores only. `null` for b2b and b2c stores, or when `seller_id` is `null`.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/SellerInfo"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "BuyXGetYCouponPromotion": {
        "title": "BuyXGetYCouponPromotion",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/BuyXGetYCouponPromotion",
          "description": "API reference for the BuyXGetYCouponPromotion schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/CouponPromotionCommonDetail"
          },
          {
            "type": "object",
            "required": [
              "details",
              "applies_to_product"
            ],
            "properties": {
              "details": {
                "$ref": "#/components/schemas/BuyXGetYRule"
              },
              "applies_to_product": {
                "enum": [
                  "product"
                ]
              }
            }
          }
        ]
      },
      "BuyXGetYRule": {
        "title": "BuyXGetYRule",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/BuyXGetYRule",
          "description": "API reference for the BuyXGetYRule schema"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/BuyXGetYRuleBasedOnQuantity"
          },
          {
            "$ref": "#/components/schemas/BuyXGetYRuleBasedOnAmount"
          }
        ]
      },
      "BuyXGetYRuleBasedOnAmount": {
        "title": "BuyXGetYRuleBasedOnAmount",
        "description": "Additional fields required in addition to marked as required.\n1) buy_product_id or buy_variant_id or buy_from_category_id\n2) get_product_id or get_variant_id or get_from_category_id\n3) get_free_quantity or get_discount_percent",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/BuyXGetYRuleBasedOnAmount",
          "description": "API reference for the BuyXGetYRuleBasedOnAmount schema"
        },
        "required": [
          "spending_criteria_type",
          "products",
          "maximum_discount_amount"
        ],
        "properties": {
          "spending_criteria_type": {
            "type": "string",
            "const": "minimum-purchase-amount"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "minimum_purchase_amount",
                "buy_product_id",
                "buy_variant_id",
                "buy_from_category_id",
                "get_product_id",
                "get_variant_id",
                "get_from_category_id",
                "get_quantity",
                "get_offer_type",
                "get_discount_percent"
              ],
              "properties": {
                "minimum_purchase_amount": {
                  "type": "number",
                  "minimum": 1
                },
                "buy_product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "buy_variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "buy_from_category_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "get_product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "get_variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "get_from_category_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "get_quantity": {
                  "type": "integer",
                  "minimum": 1
                },
                "get_offer_type": {
                  "enum": [
                    "discount",
                    "free"
                  ]
                },
                "get_discount_percent": {
                  "description": "It can be null for get_offer_type = free",
                  "type": [
                    "number",
                    "null"
                  ]
                }
              }
            }
          },
          "maximum_discount_amount": {
            "description": "It can be null for get_offer_type = free",
            "type": [
              "number",
              "null"
            ]
          }
        }
      },
      "BuyXGetYRuleBasedOnQuantity": {
        "title": "BuyXGetYRuleBasedOnQuantity",
        "description": "Additional fields required in addition to marked as required.\n1) buy_product_id or buy_variant_id or buy_from_category_id\n2) get_product_id or get_variant_id or get_from_category_id\n3) get_free_quantity or get_discount_percent",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/BuyXGetYRuleBasedOnQuantity",
          "description": "API reference for the BuyXGetYRuleBasedOnQuantity schema"
        },
        "required": [
          "spending_criteria_type",
          "products",
          "maximum_discount_amount"
        ],
        "properties": {
          "spending_criteria_type": {
            "type": "string",
            "const": "minimum-quantity"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "minimum_quantity",
                "buy_product_id",
                "buy_variant_id",
                "buy_from_category_id",
                "get_product_id",
                "get_variant_id",
                "get_from_category_id",
                "get_quantity",
                "get_offer_type",
                "get_discount_percent"
              ],
              "properties": {
                "minimum_quantity": {
                  "type": "integer",
                  "minimum": 1
                },
                "buy_product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "buy_variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "buy_from_category_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "get_product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "get_variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "get_from_category_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "get_quantity": {
                  "type": "integer",
                  "minimum": 1
                },
                "get_offer_type": {
                  "enum": [
                    "discount",
                    "free"
                  ]
                },
                "get_discount_percent": {
                  "description": "It can be null for get_offer_type = free",
                  "type": [
                    "number",
                    "null"
                  ]
                }
              }
            }
          },
          "maximum_discount_amount": {
            "description": "It can be null for get_offer_type = free",
            "type": [
              "number",
              "null"
            ]
          }
        }
      },
      "CardbinInfo": {
        "title": "CardbinInfo",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CardbinInfo",
          "description": "API reference for the CardbinInfo schema"
        },
        "required": [
          "card_sub_type",
          "extended_card_type",
          "country",
          "cvv_less_support",
          "bank",
          "id",
          "mandate_support",
          "brand",
          "card_sub_type_category",
          "juspay_bank_code",
          "type",
          "country_code",
          "object",
          "direct_otp_support"
        ],
        "properties": {
          "card_sub_type": {
            "type": "string"
          },
          "extended_card_type": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "cvv_less_support": {
            "type": "boolean"
          },
          "bank": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "mandate_support": {
            "type": "boolean"
          },
          "brand": {
            "type": "string"
          },
          "card_sub_type_category": {
            "type": "string"
          },
          "juspay_bank_code": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "object": {
            "type": "string"
          },
          "direct_otp_support": {
            "type": "boolean"
          }
        },
        "examples": []
      },
      "CardPayment": {
        "title": "CardPayment",
        "description": "Payments using credit card, debit card",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CardPayment",
          "description": "API reference for the CardPayment schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentInfo"
          },
          {
            "type": "object",
            "properties": {
              "card_number": {
                "description": "masked card number\r\ne.g. ************1111",
                "type": "string"
              },
              "card_type": {
                "type": "string",
                "enum": [
                  "Visa",
                  "Master Card",
                  "Rupay",
                  "American Express"
                ]
              }
            }
          }
        ]
      },
      "Cart": {
        "title": "Cart",
        "description": "This cart model is structured to capture a wide range of details, facilitating accurate representation and management of user shopping carts in an e-commerce platform.",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Cart",
          "description": "API reference for the Cart schema"
        },
        "required": [
          "id",
          "user_id",
          "customer_id",
          "active",
          "customer_note",
          "is_promotion_applied",
          "is_coupon_applied",
          "coupon_code",
          "coupon_discount_amount",
          "coupon_discount_percent",
          "promotion_discount_amount",
          "subtotal",
          "items_tax_amount",
          "subtotal_including_tax",
          "shipping_estimated_cost",
          "shipping_discount_amount",
          "shipping_amount",
          "shipping_tax_rate",
          "shipping_tax_amount",
          "shipping_amount_including_tax",
          "estimated_delivery_days",
          "handling_charge_excluding_tax",
          "handling_charge_tax_amount",
          "handling_charge_including_tax",
          "total_tax",
          "grand_total",
          "credit_balance_used",
          "to_be_paid",
          "loyalty_points_redeemed",
          "loyalty_points_earned",
          "cart_items_count",
          "cart_items",
          "billing_address",
          "shipping_address",
          "currency",
          "metadata",
          "expires_at",
          "applied_promotions",
          "applied_coupons",
          "shipments",
          "promotion_savings",
          "coupon_savings",
          "other_savings",
          "total_savings",
          "free_shipping_threshold",
          "status",
          "status_error_message"
        ],
        "properties": {
          "id": {
            "description": "Unique identifier for the cart.",
            "type": "string",
            "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$"
          },
          "user_id": {
            "description": "The unique ID of the user who created the cart. For a logged-in storefront user this matches `customer_id`; for a POS cart it matches the operator's `pos_user_id` in `metadata`.",
            "type": "string"
          },
          "customer_id": {
            "description": "The unique ID of the customer the cart is for. `null` until a customer is linked. The cart never embeds customer details — fetch them from the customer endpoints so they are always current.",
            "type": [
              "string",
              "null"
            ]
          },
          "active": {
            "description": "Indicates whether the cart is currently active or inactive.",
            "type": "boolean"
          },
          "customer_note": {
            "description": "customer note for shipping or product customization.",
            "type": [
              "string",
              "null"
            ]
          },
          "is_promotion_applied": {
            "description": "Indicates if a promotion is applied or not.",
            "type": "boolean"
          },
          "is_coupon_applied": {
            "description": "Indicates if a coupon is applied or not.",
            "type": "boolean"
          },
          "coupon_code": {
            "description": "Code of the applied coupon.",
            "type": [
              "string",
              "null"
            ]
          },
          "coupon_discount_amount": {
            "description": "Discount amount due to the coupon.",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "coupon_discount_percent": {
            "description": "Discount amount due to the coupon.",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "promotion_discount_amount": {
            "description": "Discount amount due to promotions(If Applied).",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "promotion_discount_percent": {
            "description": "Discount amount due to promotions(If Applied).",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "subtotal": {
            "description": "Subtotal amount for items in the cart.",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "items_tax_amount": {
            "description": "Total tax amount for items.",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "subtotal_including_tax": {
            "description": "Subtotal including tax.",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "shipping_estimated_cost": {
            "description": "Estimated cost of shipping.",
            "type": [
              "number",
              "null"
            ]
          },
          "shipping_discount_amount": {
            "description": "Discount applied on estimated shipping cost.",
            "type": [
              "number",
              "null"
            ]
          },
          "shipping_amount": {
            "description": "Shipping amount chargable to customer.",
            "type": [
              "number",
              "null"
            ]
          },
          "shipping_tax_rate": {
            "description": "Shipping tax rate applied on shipping amount.",
            "type": [
              "number",
              "null"
            ]
          },
          "shipping_tax_amount": {
            "description": "Tax applied on shipping_amount.",
            "type": [
              "number",
              "null"
            ]
          },
          "shipping_amount_including_tax": {
            "description": "Shipping amount including shipping tax.",
            "type": [
              "number",
              "null"
            ]
          },
          "fulfillment_preference": {
            "$ref": "#/components/schemas/FulfillmentPreference"
          },
          "estimated_delivery_days": {
            "type": [
              "integer",
              "null"
            ]
          },
          "handling_charge_excluding_tax": {
            "description": "The additional charge applied to cover the costs associated with processing, packaging, and handling an order. This fee is separate from shipping charges and may include materials, or special handling requirements.",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "handling_charge_tax_amount": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "handling_charge_including_tax": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "total_tax": {
            "description": "Total tax amount for the entire cart.",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "grand_total": {
            "description": "Grand total amount for the cart.",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "credit_balance_used": {
            "description": "Amount of credit balance used.",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "to_be_paid": {
            "description": "Amount to be paid by the customer.",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "loyalty_points_redeemed": {
            "description": "Number of loyalty points redeemed.",
            "type": "integer",
            "minimum": 0
          },
          "loyalty_points_earned": {
            "description": "Number of loyalty points earned.",
            "type": "integer",
            "minimum": 0
          },
          "cart_items_count": {
            "description": "Number of items in the cart.",
            "type": "integer",
            "minimum": 0
          },
          "cart_items": {
            "description": "List containing detailed information about each item in the cart. ",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CartItem"
            }
          },
          "billing_address": {
            "description": "Details of the billing address.",
            "$ref": "#/components/schemas/CustomerAddress"
          },
          "shipping_address": {
            "description": "Details of the shipping address.",
            "$ref": "#/components/schemas/CustomerAddress"
          },
          "currency": {
            "description": "Details about the currency being used, including `name`, `code`, and `symbol`.",
            "$ref": "#/components/schemas/Currency"
          },
          "metadata": {
            "description": "Additional metadata associated with the cart.",
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            }
          },
          "expires_at": {
            "description": "ISO 8601 timestamp when this cart expires. After expiry, the cart is no longer valid and a new cart must be created.",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "applied_promotions": {
            "description": "Information about the promotional offers that have been applied to the cart.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppliedPromotion"
            }
          },
          "applied_coupons": {
            "description": "This key provides details about the savings in cart after coupon have been applied to the cart.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppliedCoupon"
            }
          },
          "shipments": {
            "description": "List containing detailed information about each shipment in the cart.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CartShipment"
            }
          },
          "promotion_savings": {
            "description": "Total savings from auto-applied promotions.",
            "type": "number",
            "minimum": 0
          },
          "coupon_savings": {
            "description": "Total savings from the applied coupon code.",
            "type": "number",
            "minimum": 0
          },
          "other_savings": {
            "description": "Total savings from loyalty points, credit balance, and other non-promotion/coupon discounts.",
            "type": "number",
            "minimum": 0
          },
          "total_savings": {
            "description": "Combined savings across promotions, coupons, and other discounts (`promotion_savings` + `coupon_savings` + `other_savings`).",
            "type": "number",
            "minimum": 0
          },
          "free_shipping_threshold": {
            "description": "Free shipping threshold of the cart",
            "type": [
              "number",
              "null"
            ]
          },
          "status": {
            "description": "Checkout readiness of the cart. A cart is `ready-for-payment` only when it has items, a valid address, and a fulfillment preference set. Use `status_error_message` for the specific reason when `not-ready-for-payment`.",
            "type": "string",
            "default": "not-ready-for-payment",
            "enum": [
              "not-ready-for-payment",
              "ready-for-payment"
            ]
          },
          "status_error_message": {
            "description": "Human-readable reason why the cart is not ready for payment. `null` when `status` is `ready-for-payment`.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "examples": []
      },
      "CartBasedFulfillmentCheck": {
        "title": "CartBasedFulfillmentCheck",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CartBasedFulfillmentCheck",
          "description": "API reference for the CartBasedFulfillmentCheck schema"
        },
        "required": [
          "delivery_pincode",
          "cart_id"
        ],
        "properties": {
          "delivery_pincode": {
            "description": "delivery pincode, if null, the fulfillment type will be collect-in-store",
            "type": [
              "string",
              "null"
            ]
          },
          "cart_id": {
            "type": "string"
          },
          "fulfillment_type": {
            "type": "string",
            "enum": [
              "delivery",
              "collect-in-store"
            ]
          }
        }
      },
      "CartBasedFulfillmentOption": {
        "title": "CartBasedFulfillmentOption",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CartBasedFulfillmentOption",
          "description": "API reference for the CartBasedFulfillmentOption schema"
        },
        "required": [
          "cart_id"
        ],
        "properties": {
          "cart_id": {
            "type": "string"
          },
          "fulfillment_type": {
            "type": "string",
            "enum": [
              "delivery",
              "collect-in-store"
            ]
          }
        }
      },
      "CartItem": {
        "title": "CartItem",
        "description": "This Cart Item model captures the attributes of a cart item, including product details, pricing information, subscription details, and other relevant information related to Cart Item.",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CartItem",
          "description": "API reference for the CartItem schema"
        },
        "required": [
          "product_id",
          "variant_id",
          "sku",
          "product_slug",
          "variant_slug",
          "product_name",
          "variant_name",
          "product_type",
          "product_image_url",
          "stock_available",
          "backorder",
          "on_subscription",
          "on_promotion",
          "quantity",
          "is_free_item",
          "free_quantity",
          "promotion_discount_amount",
          "coupon_discount_amount",
          "price_including_tax",
          "listing_price",
          "selling_price",
          "selling_price_excluding_tax",
          "min_order_quantity",
          "max_order_quantity",
          "incremental_quantity",
          "handling_charge_excluding_tax",
          "handling_charge_tax_rate",
          "handling_charge_including_tax",
          "tax_type",
          "tax_rate",
          "tax_amount",
          "associated_options",
          "attributes",
          "subscriptions"
        ],
        "properties": {
          "product_id": {
            "description": "Unique identifier for the product.",
            "type": "string",
            "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$"
          },
          "variant_id": {
            "description": "The product variant identifier. `null` if the product has no variants.",
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$"
          },
          "sku": {
            "description": "Stock Keeping Unit, a unique identifier for the product within inventory.",
            "type": [
              "string",
              "null"
            ],
            "examples": [
              "SKU1254"
            ]
          },
          "product_name": {
            "description": "Name of the product.",
            "type": "string"
          },
          "variant_name": {
            "description": "Name of the variant.",
            "type": [
              "string",
              "null"
            ]
          },
          "product_slug": {
            "type": "string"
          },
          "variant_slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "product_type": {
            "type": "string",
            "enum": [
              "physical",
              "digital",
              "bundle"
            ],
            "examples": [
              "physical"
            ]
          },
          "product_image_url": {
            "description": "URL pointing to the product image.",
            "type": "string"
          },
          "stock_available": {
            "description": "Indicates whether the product is currently in stock.",
            "type": "boolean"
          },
          "backorder": {
            "description": "Indicates whether the item is being fulfilled as a backorder. When true, the item is not currently in stock and will ship later once inventory is available. This may result in the order being split into multiple shipments, with delays for the backordered portion.",
            "type": "boolean"
          },
          "on_subscription": {
            "description": "Indicates whether the product is currently on a subscription.",
            "type": "boolean"
          },
          "on_promotion": {
            "description": "Indicates whether the product is part of a promotion.",
            "type": "boolean"
          },
          "quantity": {
            "description": "The quantity of the product in the cart.",
            "type": "integer"
          },
          "is_free_item": {
            "description": "Indicates if the product is offered for free.",
            "type": "boolean"
          },
          "free_quantity": {
            "description": "Quantity of the product that is free.",
            "type": "integer"
          },
          "promotion_discount_amount": {
            "description": "Discount amount due to promotions.",
            "type": "number",
            "format": "double"
          },
          "coupon_discount_amount": {
            "description": "Discount amount due to applied coupons.",
            "type": "number",
            "format": "double"
          },
          "price_including_tax": {
            "description": "Indicates whether the item price is inclusive of taxes.",
            "type": "boolean",
            "examples": [
              false
            ]
          },
          "listing_price": {
            "type": "number",
            "format": "double",
            "example": 200
          },
          "selling_price": {
            "type": "number",
            "format": "double",
            "example": 199
          },
          "selling_price_excluding_tax": {
            "type": "number",
            "format": "double"
          },
          "min_order_quantity": {
            "type": "integer",
            "default": 1
          },
          "max_order_quantity": {
            "type": [
              "integer",
              "null"
            ]
          },
          "incremental_quantity": {
            "type": "integer",
            "default": 1
          },
          "handling_charge_excluding_tax": {
            "description": "Additional cost for shipping associated with the product.",
            "type": "number",
            "minimum": 0,
            "readOnly": true
          },
          "handling_charge_tax_rate": {
            "description": "Additional cost for shipping associated with the product.",
            "type": "number",
            "minimum": 0,
            "readOnly": true
          },
          "handling_charge_including_tax": {
            "description": "Additional cost for shipping associated with the product.",
            "type": "number",
            "minimum": 0,
            "readOnly": true
          },
          "tax_type": {
            "description": "Type of tax applied (e.g., GST).",
            "type": "string",
            "default": "GST",
            "const": "GST"
          },
          "tax_rate": {
            "description": "The rate of tax applied to the product.",
            "type": "number",
            "format": "double"
          },
          "tax_amount": {
            "description": "The total tax amount for the product.",
            "type": "number",
            "format": "double"
          },
          "associated_options": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AssociatedOption",
                "description": "Used when `variant_id` is not null."
              },
              {
                "type": "null",
                "description": "Null when `variant_id` is null."
              }
            ]
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAttribute"
            }
          },
          "subscriptions": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/ProductSubscription"
            }
          },
          "seller_id": {
            "description": "Seller ID. This field is relevant for marketplace type stores only. Will return null for b2b and b2c type stores.",
            "type": [
              "string",
              "null"
            ]
          },
          "seller_detail": {
            "description": "Seller detail information. This field is relevant for marketplace type stores only. Will return null for b2b and b2c type stores.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/SellerInfo"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "examples": []
      },
      "CartShipment": {
        "title": "CartShipment",
        "description": "Cart shipment model",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CartShipment",
          "description": "API reference for the CartShipment schema"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "shipping_provider_id": {
            "type": "string"
          },
          "shipping_provider_name": {
            "type": "string"
          },
          "courier_company_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "courier_company_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "shipping_amount": {
            "type": "number",
            "format": "double"
          },
          "shipping_tax_amount": {
            "type": "number",
            "format": "double"
          },
          "shipping_amount_including_tax": {
            "type": "number",
            "format": "double"
          },
          "shipment_items_count": {
            "type": "integer"
          },
          "shipment_items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShipmentItem"
            }
          }
        }
      },
      "Category": {
        "title": "Category",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Category",
          "description": "API reference for the Category schema"
        },
        "required": [
          "id",
          "name",
          "slug",
          "description",
          "parent_category_id",
          "product_count",
          "active"
        ],
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "readOnly": true
          },
          "slug": {
            "type": "string",
            "readOnly": true
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "parent_category_id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "product_count": {
            "type": "integer"
          },
          "active": {
            "type": "boolean"
          }
        },
        "examples": []
      },
      "CollectInStore": {
        "title": "CollectInStore",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CollectInStore",
          "description": "API reference for the CollectInStore schema"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "distance_km": {
            "type": "number"
          },
          "collect_eta_minutes": {
            "type": "integer"
          },
          "is_recommended": {
            "type": "boolean"
          },
          "address": {
            "$ref": "#/components/schemas/CollectInStoreAddress"
          }
        }
      },
      "CollectInStoreAddress": {
        "title": "CollectInStoreAddress",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CollectInStoreAddress",
          "description": "API reference for the CollectInStoreAddress schema"
        },
        "required": [
          "name",
          "address_line1",
          "pincode",
          "city",
          "state",
          "country",
          "country_code"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "address_line1": {
            "type": "string"
          },
          "address_line2": {
            "type": [
              "string",
              "null"
            ]
          },
          "landmark": {
            "type": [
              "string",
              "null"
            ]
          },
          "pincode": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "country_code": {
            "type": "string",
            "default": "+91"
          }
        }
      },
      "CollectInStoreFulfillment": {
        "title": "CollectInStoreFulfillment",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CollectInStoreFulfillment",
          "description": "API reference for the CollectInStoreFulfillment schema"
        },
        "required": [
          "fulfillment_type",
          "pickup_location_id"
        ],
        "properties": {
          "fulfillment_type": {
            "type": "string",
            "const": "collect-in-store"
          },
          "preference_type": {
            "type": "string",
            "enum": [
              "user",
              "auto"
            ],
            "readOnly": true
          },
          "pickup_location_id": {
            "type": "string"
          },
          "pickup_location_name": {
            "type": "string",
            "readOnly": true
          }
        }
      },
      "ColorAttribute": {
        "title": "ColorAttribute",
        "description": "Attribute for colors",
        "type": "object",
        "readOnly": true,
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ColorAttribute",
          "description": "API reference for the ColorAttribute schema"
        },
        "required": [
          "id",
          "name",
          "key",
          "type",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "key": {
            "description": "A lookup safe version of the name that is lowercased and spaces are replaced with underscores. For instance, if name is `Product Type`, key will be `product_type`",
            "type": "string"
          },
          "type": {
            "type": "string",
            "example": "color"
          },
          "value": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "name",
                "hexcode"
              ],
              "properties": {
                "name": {
                  "type": "string"
                },
                "hexcode": {
                  "description": "The hex code of the color (e.g., #000000).",
                  "type": "string",
                  "format": "color-hex",
                  "pattern": "^#(?:[0-9a-fA-F]{3}){1,2}$"
                }
              }
            }
          }
        }
      },
      "ColorOption": {
        "title": "ColorOption",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ColorOption",
          "description": "API reference for the ColorOption schema"
        },
        "required": [
          "name",
          "type",
          "value"
        ],
        "properties": {
          "name": {
            "description": "The name of the associated option.",
            "type": "string"
          },
          "type": {
            "description": "The type of the associated option.",
            "const": "color"
          },
          "value": {
            "type": "object",
            "properties": {
              "hexcode": {
                "type": "string",
                "description": "The hex code of the color (e.g., #000000).",
                "format": "color-hex",
                "pattern": "^#(?:[0-9a-fA-F]{3}){1,2}$"
              },
              "name": {
                "type": "string",
                "description": "The name of the color."
              }
            },
            "required": [
              "name",
              "hexcode"
            ]
          }
        }
      },
      "Country": {
        "title": "Country",
        "description": "Country list model",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Country",
          "description": "API reference for the Country schema"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "country_name": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "country_iso_code": {
            "type": "string"
          },
          "currency_code": {
            "type": "string"
          },
          "currency_symbol": {
            "type": "string"
          },
          "currency_name": {
            "type": "string"
          },
          "flag_icon_url": {
            "type": "string"
          },
          "country_alias": {
            "type": "string"
          },
          "continent": {
            "type": "string"
          }
        }
      },
      "CountryState": {
        "title": "CountryState",
        "description": "Country wise states model",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CountryState",
          "description": "API reference for the CountryState schema"
        },
        "required": [
          "name",
          "iso_code"
        ],
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string"
          },
          "iso_code": {
            "type": "string"
          },
          "gst_code": {
            "type": "string"
          },
          "state_alias": {
            "type": "string",
            "readOnly": true
          }
        }
      },
      "Coupon": {
        "title": "Coupon",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Coupon",
          "description": "API reference for the Coupon schema"
        },
        "allOf": [
          {
            "oneOf": [
              {
                "$ref": "#/components/schemas/DiscountCouponPromotion"
              },
              {
                "$ref": "#/components/schemas/FreeGoodCouponPromotion"
              },
              {
                "$ref": "#/components/schemas/FixedPriceCouponPromotion"
              },
              {
                "$ref": "#/components/schemas/BuyXGetYCouponPromotion"
              },
              {
                "$ref": "#/components/schemas/VolumeBasedCouponPromotion"
              },
              {
                "$ref": "#/components/schemas/FreeShippingCouponPromotion"
              },
              {
                "$ref": "#/components/schemas/AcceleratedRewardCouponPromotion"
              }
            ]
          },
          {
            "type": "object",
            "required": [
              "coupon_type",
              "coupon_code",
              "application_rules",
              "can_be_used_with_promotion"
            ],
            "properties": {
              "coupon_type": {
                "enum": [
                  "discount",
                  "free-goods",
                  "fixed-price",
                  "free-shipping",
                  "buy-x-get-y",
                  "volume-based",
                  "accelerated-rewards"
                ]
              },
              "coupon_code": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "application_rules": {
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "max_applicable_items": {
                    "type": "integer"
                  },
                  "application_priority": {
                    "enum": [
                      "cheapest_first",
                      "most_expensive_first",
                      "first_added"
                    ]
                  }
                },
                "required": [
                  "max_applicable_items",
                  "application_priority"
                ]
              },
              "can_be_used_with_promotion": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "CouponPromotionCommonDetail": {
        "title": "CouponPromotionCommonDetail",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CouponPromotionCommonDetail",
          "description": "API reference for the CouponPromotionCommonDetail schema"
        },
        "required": [
          "id",
          "name",
          "description",
          "tags",
          "redemption_limits",
          "redemption_count",
          "minimum_order_total",
          "starts_at",
          "expires_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "tags": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          },
          "redemption_limits": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "total_redemptions": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "per_customer_redemptions": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "per_coupon_code_redemptions": {
                "type": [
                  "integer",
                  "null"
                ]
              }
            },
            "required": [
              "total_redemptions",
              "per_customer_redemptions",
              "per_coupon_code_redemptions"
            ]
          },
          "redemption_count": {
            "type": "integer",
            "readOnly": true
          },
          "minimum_order_total": {
            "type": [
              "integer",
              "null"
            ],
            "default": 0
          },
          "starts_at": {
            "type": "string",
            "format": "date-time"
          },
          "expires_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      },
      "CouponType": {
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CouponType",
          "description": "API reference for the CouponType schema"
        },
        "enum": [
          "discount",
          "free-goods",
          "fixed-price",
          "free-shipping",
          "buy-x-get-y",
          "volume-based",
          "accelerated-rewards"
        ]
      },
      "CreateBankAccount": {
        "title": "CreateBankAccount",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CreateBankAccount",
          "description": "API reference for the CreateBankAccount schema"
        },
        "discriminator": {
          "propertyName": "account_type",
          "mapping": {
            "outbound": "#/components/schemas/CreateOutboundBankAccount",
            "inbound": "#/components/schemas/CreateInboundBankAccount"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/CreateOutboundBankAccount"
          },
          {
            "$ref": "#/components/schemas/CreateInboundBankAccount"
          }
        ],
        "x-tags": [
          "Customers"
        ]
      },
      "CreateCustomerMandate": {
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CreateCustomerMandate",
          "description": "API reference for the CreateCustomerMandate schema"
        },
        "required": [
          "payment_method_type",
          "payment_method",
          "service_provider_slug",
          "gateway_reference_id",
          "bank_ifsc",
          "bank_account_number",
          "bank_beneficiary_name"
        ],
        "properties": {
          "payment_method_type": {
            "description": "Payment method type (e.g. NB).",
            "type": "string"
          },
          "payment_method": {
            "description": "Payment method code (e.g. JP_HDFC).",
            "type": "string"
          },
          "service_provider_slug": {
            "type": "string"
          },
          "gateway_reference_id": {
            "type": "string"
          },
          "bank_ifsc": {
            "type": "string"
          },
          "bank_account_number": {
            "type": "string"
          },
          "bank_beneficiary_name": {
            "type": "string"
          }
        }
      },
      "CreateCustomSubscription": {
        "title": "CreateCustomSubscription",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CreateCustomSubscription",
          "description": "API reference for the CreateCustomSubscription schema"
        },
        "required": [
          "plan_type",
          "billing_frequency",
          "billing_interval",
          "billing_limit"
        ],
        "properties": {
          "plan_type": {
            "type": "string",
            "const": "custom",
            "readOnly": true
          },
          "start_date": {
            "type": "string",
            "format": "date"
          },
          "end_date": {
            "description": "if specified, subscrition will be revoked on this date.",
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "billing_frequency": {
            "enum": [
              "monthly"
            ]
          },
          "billing_interval": {
            "description": "Frequency unit multiplier. For example, `1` with `monthly` means every month; `3` with `weekly` means in every 3 weeks.",
            "type": "integer",
            "default": 1
          },
          "billing_limit": {
            "type": [
              "integer",
              "null"
            ]
          },
          "shipping_frequency": {
            "enum": [
              "monthly"
            ]
          },
          "shipping_interval": {
            "description": "Frequency unit multiplier. For example, `1` with `monthly` means every month; `3` with `weekly` means in every 3 weeks.",
            "type": [
              "integer",
              "null"
            ],
            "default": 1
          },
          "shipping_limit": {
            "type": [
              "integer",
              "null"
            ]
          },
          "coupon_code": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "x-tags": [
          "Subscriptions"
        ]
      },
      "CreateInboundBankAccount": {
        "title": "CreateInboundBankAccount",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CreateInboundBankAccount",
          "description": "API reference for the CreateInboundBankAccount schema"
        },
        "required": [
          "account_type",
          "service_provider_slug"
        ],
        "properties": {
          "account_type": {
            "const": "inbound"
          },
          "service_provider_slug": {
            "type": "string"
          },
          "is_default": {
            "description": "default bank account for the customer.",
            "type": "boolean"
          }
        },
        "x-tags": [
          "Customers"
        ]
      },
      "CreateOrderReturn": {
        "title": "CreateOrderReturn",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CreateOrderReturn",
          "description": "API reference for the CreateOrderReturn schema"
        },
        "required": [
          "requested_settlement",
          "items"
        ],
        "properties": {
          "requested_settlement": {
            "description": "How the customer wants the return resolved.",
            "type": "string",
            "enum": [
              "refund",
              "replacement"
            ]
          },
          "items": {
            "description": "Delivered line items to include in the return request.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderReturnItem"
            },
            "minItems": 1
          }
        }
      },
      "CreateOutboundBankAccount": {
        "title": "CreateOutboundBankAccount",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CreateOutboundBankAccount",
          "description": "API reference for the CreateOutboundBankAccount schema"
        },
        "required": [
          "account_type",
          "account_name",
          "account_number",
          "ifsc_code",
          "bank_name"
        ],
        "properties": {
          "account_type": {
            "const": "outbound"
          },
          "account_name": {
            "type": "string"
          },
          "account_number": {
            "type": "string"
          },
          "ifsc_code": {
            "type": "string"
          },
          "bank_name": {
            "type": "string"
          },
          "is_default": {
            "description": "default bank account for the customer.",
            "type": "boolean"
          }
        },
        "x-tags": [
          "Customers"
        ]
      },
      "CreateReview": {
        "title": "CreateProductReview",
        "description": "Create Product Review model",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CreateReview",
          "description": "API reference for the CreateReview schema"
        },
        "required": [
          "user_id",
          "order_number",
          "rating"
        ],
        "properties": {
          "user_id": {
            "type": "string"
          },
          "order_number": {
            "type": "string",
            "writeOnly": true
          },
          "rating": {
            "type": "number"
          },
          "review_text": {
            "type": "string"
          },
          "images": {
            "type": "array",
            "items": {
              "type": "string",
              "contentMediaType": "application/octet-stream"
            }
          },
          "videos": {
            "type": "array",
            "items": {
              "type": "string",
              "contentMediaType": "application/octet-stream"
            }
          }
        }
      },
      "CreateStandardSubscription": {
        "title": "CreateStandardSubscription",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CreateStandardSubscription",
          "description": "API reference for the CreateStandardSubscription schema"
        },
        "required": [
          "plan_type",
          "plan_id"
        ],
        "properties": {
          "plan_type": {
            "type": "string",
            "const": "standard",
            "readOnly": true
          },
          "plan_id": {
            "type": "string",
            "const": "standard",
            "readOnly": true
          },
          "start_date": {
            "type": "string",
            "format": "date"
          },
          "end_date": {
            "description": "if specified, subscrition will be revoked on this date.",
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "coupon_code": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "x-tags": [
          "Subscriptions"
        ]
      },
      "CreateSubscription": {
        "title": "CreateSubscription",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CreateSubscription",
          "description": "API reference for the CreateSubscription schema"
        },
        "allOf": [
          {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CreateStandardSubscription"
              },
              {
                "$ref": "#/components/schemas/CreateCustomSubscription"
              }
            ]
          },
          {
            "$ref": "#/components/schemas/SubscriptionBehaviour"
          },
          {
            "type": "object",
            "required": [
              "invoice_items"
            ],
            "properties": {
              "invoice_items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SubscriptionInvoiceItem"
                }
              }
            }
          }
        ],
        "x-tags": [
          "Subscriptions"
        ]
      },
      "Currency": {
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Currency",
          "description": "API reference for the Currency schema"
        },
        "required": [
          "name",
          "code",
          "symbol"
        ],
        "properties": {
          "name": {
            "type": "string",
            "examples": [
              "Indian Rupee"
            ]
          },
          "code": {
            "type": "string",
            "examples": [
              "INR"
            ],
            "maxLength": 3,
            "minLength": 3
          },
          "symbol": {
            "type": "string",
            "examples": [
              "₹"
            ]
          }
        }
      },
      "CustomerAddress": {
        "title": "CustomerAddress",
        "type": [
          "object",
          "null"
        ],
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CustomerAddress",
          "description": "API reference for the CustomerAddress schema"
        },
        "required": [
          "first_name",
          "last_name",
          "country_code",
          "phone",
          "email",
          "address_line1",
          "address_line2",
          "landmark",
          "pincode",
          "city",
          "state",
          "country",
          "tax_identification_number",
          "business_name",
          "is_phone_verified",
          "is_email_verified"
        ],
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$",
            "readOnly": true
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "country_code": {
            "description": "Two-letter code begin with a plus sign prefix that identifies different countries. By default it will be +91 if not provided.\r\n",
            "type": "string"
          },
          "phone": {
            "description": "10 digit phone number without country code.",
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "address_line1": {
            "type": "string"
          },
          "address_line2": {
            "type": [
              "string",
              "null"
            ]
          },
          "landmark": {
            "type": [
              "string",
              "null"
            ]
          },
          "pincode": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": "string"
          },
          "country": {
            "type": "string",
            "const": "India"
          },
          "tax_identification_number": {
            "description": "Tax Identification Number specific to the country of operation.",
            "type": [
              "string",
              "null"
            ],
            "examples": []
          },
          "business_name": {
            "description": "Use in billing & shipping details only.",
            "type": [
              "string",
              "null"
            ]
          },
          "is_default_billing": {
            "description": "Indicates if the address is the default billing address for the customer.",
            "type": "boolean"
          },
          "is_default_shipping": {
            "description": "Indicates if the address is the default shipping address for the customer.",
            "type": "boolean"
          },
          "is_phone_verified": {
            "type": "boolean",
            "readOnly": true
          },
          "is_email_verified": {
            "type": "boolean",
            "readOnly": true
          },
          "nickname": {
            "description": "Nickname for the address.",
            "type": [
              "string",
              "null"
            ],
            "default": null
          }
        },
        "examples": []
      },
      "CustomerBankAccount": {
        "title": "CustomerBankAccount",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CustomerBankAccount",
          "description": "API reference for the CustomerBankAccount schema"
        },
        "required": [
          "account_type",
          "account_name",
          "account_number",
          "ifsc_code",
          "bank_name"
        ],
        "properties": {
          "account_type": {
            "enum": [
              "inbound",
              "outbound"
            ]
          },
          "account_name": {
            "type": "string"
          },
          "account_number": {
            "type": "string"
          },
          "ifsc_code": {
            "type": "string"
          },
          "bank_name": {
            "type": "string"
          },
          "is_default": {
            "description": "default bank account for the customer.",
            "type": "boolean"
          },
          "is_verified": {
            "type": "boolean",
            "readOnly": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          }
        },
        "x-tags": [
          "Customers"
        ]
      },
      "CustomerCreditBalance": {
        "title": "CustomerCreditBalance",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CustomerCreditBalance",
          "description": "API reference for the CustomerCreditBalance schema"
        },
        "required": [
          "received_amount",
          "settled_amount",
          "balance_amount"
        ],
        "properties": {
          "received_amount": {
            "description": "Total bank-transfer payments received from the customer.",
            "type": "number"
          },
          "settled_amount": {
            "description": "Portion of received bank-transfer payments already applied to orders.",
            "type": "number"
          },
          "balance_amount": {
            "description": "Remaining spendable bank-transfer credit. Redeem at checkout via `POST /carts/{id}/credit-balance`.",
            "type": "number"
          }
        }
      },
      "CustomerCreditLineBalance": {
        "title": "CustomerCreditLineBalance",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CustomerCreditLineBalance",
          "description": "API reference for the CustomerCreditLineBalance schema"
        },
        "required": [
          "mandate_per_order_limit",
          "total_credit_limit",
          "utilized_amount",
          "balance_amount",
          "store_id",
          "created_at",
          "modified_at"
        ],
        "properties": {
          "mandate_per_order_limit": {
            "description": "Upper cap on the mandate amount. Sourced into `CustomerMandate.mandate_per_order_limit` when the mandate is created.",
            "type": "number"
          },
          "total_credit_limit": {
            "description": "Total spending limit approved for the customer. Cannot exceed `mandate_per_order_limit`.",
            "type": "number"
          },
          "utilized_amount": {
            "description": "Approved limit currently committed to in-flight or completed orders.",
            "type": "number"
          },
          "balance_amount": {
            "description": "Remaining spendable balance (`total_credit_limit` minus `utilized_amount`).",
            "type": "number"
          },
          "store_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CustomerGroup": {
        "title": "CustomerGroup",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CustomerGroup",
          "description": "API reference for the CustomerGroup schema"
        },
        "required": [
          "id",
          "name",
          "slug",
          "description",
          "is_default",
          "active"
        ],
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "is_default": {
            "description": "first record will be treated as default if not changed.",
            "type": "boolean"
          },
          "active": {
            "type": "boolean",
            "default": true
          }
        }
      },
      "CustomerLoyalty": {
        "title": "CustomerLoyalty",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CustomerLoyalty",
          "description": "API reference for the CustomerLoyalty schema"
        },
        "properties": {
          "membership_number": {
            "description": "The unique membership number assigned to the customer.",
            "type": "string"
          },
          "date_of_join": {
            "description": "The date and time when the customer first enrolled in the loyalty program.",
            "type": "string",
            "format": "date-time"
          },
          "date_of_assign": {
            "description": "The date and time when the customer's current loyalty program instance was assigned. This may change when loyalty program is reassigned.",
            "type": "string",
            "format": "date-time"
          },
          "date_of_reset": {
            "description": "The date and time when the customer's loyalty program instance will be reset. Null if loyalty program renewal type is 'never'.",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "current_tier": {
            "description": "The customer's current loyalty tier. `null` when the customer has no tier assigned.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerLoyaltyTier"
              },
              {
                "type": "null"
              }
            ]
          },
          "next_tier": {
            "description": "The next loyalty tier above the customer's current tier. `null` when the customer has no tier or is already at the highest tier.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CustomerLoyaltyTier"
              },
              {
                "type": "null"
              }
            ]
          },
          "points_earned": {
            "type": "integer"
          },
          "points_redeemed": {
            "type": "integer"
          },
          "points_balance": {
            "type": "integer"
          },
          "total_orders": {
            "description": "The total number of completed orders counted in the current loyalty program.",
            "type": "integer"
          },
          "lifetime_orders": {
            "type": "integer"
          },
          "total_spent": {
            "description": "The total amount a customer has spent within the current loyalty program, excluding taxes, promotional discounts, and redeemed loyalty points. This value is used to determine tier eligibility and earning points calculation.",
            "type": "number"
          },
          "lifetime_spent": {
            "type": "number"
          },
          "lifetime_savings": {
            "type": "number"
          }
        }
      },
      "CustomerLoyaltyTier": {
        "title": "CustomerLoyaltyTier",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CustomerLoyaltyTier",
          "description": "API reference for the CustomerLoyaltyTier schema"
        },
        "required": [
          "id",
          "name",
          "total_spent_threshold",
          "total_orders_threshold",
          "points_earning_rate",
          "fixed_points"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "total_spent_threshold": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "total_orders_threshold": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "points_earning_rate": {
            "type": [
              "number",
              "null"
            ]
          },
          "fixed_points": {
            "type": [
              "integer",
              "null"
            ]
          }
        }
      },
      "CustomerMandate": {
        "title": "CustomerMandate",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CustomerMandate",
          "description": "API reference for the CustomerMandate schema"
        },
        "required": [
          "id",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "mandate_type": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/MandateStatus"
          },
          "max_amount": {
            "type": "integer"
          },
          "frequency": {
            "type": "string"
          },
          "start_date": {
            "type": "string",
            "format": "date-time"
          },
          "end_date": {
            "type": "string",
            "format": "date-time"
          },
          "gateway": {
            "type": "string"
          },
          "gateway_reference_id": {
            "type": "string"
          },
          "block_fund": {
            "type": "boolean"
          },
          "revokable_by_customer": {
            "type": "boolean"
          },
          "currency": {
            "type": "string"
          },
          "payment_info": {
            "type": "object",
            "properties": {
              "payment_method_type": {
                "type": "string"
              },
              "payment_method": {
                "type": "string"
              },
              "bank_details": {
                "type": "object",
                "properties": {
                  "account_number": {
                    "type": "string"
                  },
                  "ifsc": {
                    "type": "string"
                  },
                  "bank_account_type": {
                    "type": "string"
                  },
                  "beneficiary_name": {
                    "type": "string"
                  },
                  "bank_name": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time"
          },
          "activated_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_activated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CustomerReadyForReview": {
        "title": "CustomerReadyForReview",
        "description": "List of products and orders for which customer can write review.",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CustomerReadyForReview",
          "description": "API reference for the CustomerReadyForReview schema"
        },
        "properties": {
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string",
            "readOnly": true
          },
          "product_image_url": {
            "type": "string",
            "readOnly": true
          },
          "selling_price": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "listing_price": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "order_number": {
            "type": "string",
            "readOnly": true
          }
        }
      },
      "CustomerReview": {
        "title": "CustomerReview",
        "description": "List of reviews posted by the user.",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CustomerReview",
          "description": "API reference for the CustomerReview schema"
        },
        "required": [
          "product_id",
          "rating",
          "review_text",
          "order_number"
        ],
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true
          },
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string",
            "readOnly": true
          },
          "product_image_url": {
            "type": "string",
            "readOnly": true
          },
          "status": {
            "type": "string",
            "readOnly": true
          },
          "rating": {
            "type": "number"
          },
          "review_text": {
            "type": "string"
          },
          "review_date": {
            "type": "string",
            "format": "date-time"
          },
          "average_rating": {
            "type": "number",
            "readOnly": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "images": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "blur_url": {
                  "type": "string",
                  "readOnly": true
                },
                "thumbnail_url": {
                  "type": "string",
                  "readOnly": true
                },
                "standard_url": {
                  "type": "string",
                  "readOnly": true
                }
              }
            },
            "readOnly": true
          },
          "videos": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "cover_image_url": {
                  "type": "string",
                  "readOnly": true
                },
                "video_preview_url": {
                  "type": "string",
                  "readOnly": true
                },
                " playback": {
                  "type": "object",
                  "properties": {
                    "hls": {
                      "type": "string"
                    },
                    "dash": {
                      "type": "string"
                    }
                  }
                },
                "duration": {
                  "type": "string",
                  "readOnly": true
                },
                "size": {
                  "type": "string",
                  "readOnly": true
                }
              }
            },
            "readOnly": true
          },
          "listing_price": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "selling_price": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "order_number": {
            "type": "string",
            "readOnly": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          }
        }
      },
      "CustomSlabsBasedOnAmount": {
        "title": "CustomSlabsBasedOnAmount",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CustomSlabsBasedOnAmount",
          "description": "API reference for the CustomSlabsBasedOnAmount schema"
        },
        "required": [
          "spending_criteria_type",
          "products"
        ],
        "properties": {
          "spending_criteria_type": {
            "type": "string",
            "const": "minimum-purchase-amount"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "product_id",
                "variant_id",
                "slabs"
              ],
              "properties": {
                "product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "slabs": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "minimum_purchase_amount",
                      "get_quantity",
                      "condition"
                    ],
                    "properties": {
                      "minimum_purchase_amount": {
                        "type": "number"
                      },
                      "get_quantity": {
                        "type": "integer"
                      },
                      "condition": {
                        "enum": [
                          "greater-or-equal"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "CustomSlabsBasedOnQuantity": {
        "title": "CustomSlabsBasedOnQuantity",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/CustomSlabsBasedOnQuantity",
          "description": "API reference for the CustomSlabsBasedOnQuantity schema"
        },
        "required": [
          "spending_criteria_type",
          "products"
        ],
        "properties": {
          "spending_criteria_type": {
            "type": "string",
            "const": "minimum-quantity"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "product_id",
                "variant_id",
                "slabs"
              ],
              "properties": {
                "product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "slabs": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "buy_quantity",
                      "get_quantity",
                      "condition"
                    ],
                    "properties": {
                      "buy_quantity": {
                        "type": "integer"
                      },
                      "get_quantity": {
                        "type": "integer"
                      },
                      "condition": {
                        "enum": [
                          "greater-or-equal"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "DateAttribute": {
        "title": "DateAttribute",
        "description": "Attribute for date values",
        "type": "object",
        "readOnly": true,
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/DateAttribute",
          "description": "API reference for the DateAttribute schema"
        },
        "required": [
          "id",
          "name",
          "key",
          "type",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "key": {
            "description": "A lookup safe version of the name that is lowercased and spaces are replaced with underscores. For instance, if name is `Product Type`, key will be `product_type`",
            "type": "string"
          },
          "type": {
            "type": "string",
            "example": "date"
          },
          "value": {
            "description": "For date attributes",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "DeliveryFulfillment": {
        "title": "DeliveryFulfillment",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/DeliveryFulfillment",
          "description": "API reference for the DeliveryFulfillment schema"
        },
        "required": [
          "fulfillment_type",
          "shipments"
        ],
        "properties": {
          "fulfillment_type": {
            "type": "string",
            "const": "delivery"
          },
          "preference_type": {
            "type": "string",
            "enum": [
              "user",
              "auto"
            ],
            "readOnly": true
          },
          "shipments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "shipping_provider_id": {
                  "type": [
                    "string"
                  ]
                },
                "shipping_provider_name": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "readOnly": true
                },
                "courier_company_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "courier_company_name": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "shipping_provider_id"
              ]
            }
          }
        }
      },
      "DeliveryOption": {
        "title": "DeliveryOption",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/DeliveryOption",
          "description": "API reference for the DeliveryOption schema"
        },
        "required": [
          "is_serviceable",
          "free_shipping_threshold",
          "shipments"
        ],
        "properties": {
          "is_serviceable": {
            "type": "boolean"
          },
          "free_shipping_threshold": {
            "description": "free shipping threshold of delivery option",
            "type": [
              "number",
              "null"
            ]
          },
          "shipments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ShipmentItem"
                  }
                },
                "shipping_methods": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "shipping_type": {
                        "enum": [
                          "auto",
                          "manual"
                        ]
                      },
                      "shipping_amount": {
                        "description": "shipping amount of manual method or as per recommened courier or range of min-max shipping amount.",
                        "type": "string"
                      },
                      "estimated_delivery_days": {
                        "description": "estimated delivery days of manual method or as per recommened courier or range of min-max estimated delivery days.",
                        "type": "string"
                      },
                      "courier_companies": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": [
                                "string",
                                "number"
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "shipping_amount": {
                              "type": "number"
                            },
                            "estimated_delivery_days": {
                              "type": "string"
                            },
                            "is_recommended": {
                              "type": "boolean"
                            },
                            "is_hyperlocal": {
                              "type": "boolean"
                            },
                            "mode": {
                              "enum": [
                                "air",
                                "surface"
                              ]
                            },
                            "rating": {
                              "type": "number"
                            }
                          }
                        }
                      }
                    }
                  }
                }
              },
              "required": [
                "id",
                "items",
                "shipping_methods"
              ]
            }
          }
        }
      },
      "DiscountBasedPromotion": {
        "title": "DiscountBasedPromotion",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/DiscountBasedPromotion",
          "description": "API reference for the DiscountBasedPromotion schema"
        },
        "required": [
          "promotion_type",
          "discount_type"
        ],
        "properties": {
          "promotion_type": {
            "type": "string",
            "enum": [
              "discount",
              "volume-based",
              "fixed-price",
              "free-goods"
            ],
            "const": "discount"
          },
          "discount_type": {
            "type": "string",
            "enum": [
              "percentage",
              "fixed-amount"
            ]
          },
          "discount_percent": {
            "description": "'> 0' if discount_type = percentage, otherwise set 0.",
            "type": "number"
          },
          "discount_fixed_amount": {
            "description": "'> 0' if discount_type = fixed-amount, otherwise set 0.",
            "type": "integer"
          }
        }
      },
      "DiscountCouponPromotion": {
        "title": "DiscountCouponPromotion",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/DiscountCouponPromotion",
          "description": "API reference for the DiscountCouponPromotion schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/CouponPromotionCommonDetail"
          },
          {
            "type": "object",
            "required": [
              "details",
              "applies_to_product"
            ],
            "properties": {
              "details": {
                "$ref": "#/components/schemas/DiscountRule"
              },
              "applies_to_product": {
                "enum": [
                  "all",
                  "product",
                  "category"
                ]
              }
            }
          }
        ]
      },
      "DiscountRule": {
        "title": "DiscountRule",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/DiscountRule",
          "description": "API reference for the DiscountRule schema"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/PercentageDiscountRule"
          },
          {
            "$ref": "#/components/schemas/FixedAmountDiscountRule"
          }
        ]
      },
      "Document": {
        "title": "Document",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Document",
          "description": "API reference for the Document schema"
        },
        "required": [
          "document_number",
          "kyc_document_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true
          },
          "document_number": {
            "type": "string"
          },
          "kyc_document_id": {
            "type": "string",
            "writeOnly": true
          },
          "document_type_slug": {
            "description": "Document type slug from store KYC configuration. Populated for marketplace stores; `null` or omitted otherwise.",
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "note": {
            "type": "string"
          },
          "file": {
            "description": "file attachment will be required or optional as per store setting.",
            "type": "string",
            "format": "binary",
            "writeOnly": true
          },
          "status": {
            "enum": [
              "submitted",
              "approved",
              "rejected",
              "expired"
            ],
            "readOnly": true
          },
          "title": {
            "type": "string",
            "readOnly": true
          },
          "file_url": {
            "type": "string",
            "readOnly": true
          },
          "verification_type": {
            "enum": [
              "automatic",
              "manual"
            ],
            "readOnly": true
          },
          "is_verified": {
            "type": "boolean",
            "readOnly": true
          },
          "verified_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "created_by": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "modified_by": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "modified_reason": {
            "type": "string",
            "readOnly": true
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          }
        },
        "additionalProperties": true,
        "x-tags": [
          "KYC"
        ]
      },
      "FixedAmountDiscountRule": {
        "title": "FixedAmountDiscountRule",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FixedAmountDiscountRule",
          "description": "API reference for the FixedAmountDiscountRule schema"
        },
        "required": [
          "discount_type",
          "fixed_discount_amount",
          "products",
          "category_id"
        ],
        "properties": {
          "discount_type": {
            "type": "string",
            "const": "fixed-amount"
          },
          "fixed_discount_amount": {
            "type": "number"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "product_id",
                "variant_id",
                "minimum_quantity",
                "maximum_quantity",
                "minimum_value",
                "maximum_value"
              ],
              "properties": {
                "product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "minimum_quantity": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "maximum_quantity": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "minimum_value": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "maximum_value": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              }
            }
          },
          "category_id": {
            "description": "Array of category ids",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "FixedPriceCouponPromotion": {
        "title": "FixedPriceCouponPromotion",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FixedPriceCouponPromotion",
          "description": "API reference for the FixedPriceCouponPromotion schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/CouponPromotionCommonDetail"
          },
          {
            "type": "object",
            "required": [
              "details",
              "applies_to_product"
            ],
            "properties": {
              "details": {
                "$ref": "#/components/schemas/FixedPriceRule"
              },
              "applies_to_product": {
                "enum": [
                  "product"
                ]
              }
            }
          }
        ]
      },
      "FixedPricePromotion": {
        "title": "FixedPricePromotion",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FixedPricePromotion",
          "description": "API reference for the FixedPricePromotion schema"
        },
        "required": [
          "promotion_type",
          "offer_price"
        ],
        "properties": {
          "promotion_type": {
            "type": "string",
            "enum": [
              "discount",
              "volume-based",
              "fixed-price",
              "free-goods"
            ],
            "const": "fixed-price",
            "readOnly": true
          },
          "offer_price": {
            "type": "number"
          }
        }
      },
      "FixedPriceRule": {
        "title": "FixedPriceRule",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FixedPriceRule",
          "description": "API reference for the FixedPriceRule schema"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/FixedPriceRuleBasedQuantity"
          },
          {
            "$ref": "#/components/schemas/FixedPriceRuleBasedAmount"
          }
        ]
      },
      "FixedPriceRuleBasedAmount": {
        "title": "FixedPriceRuleBasedAmount",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FixedPriceRuleBasedAmount",
          "description": "API reference for the FixedPriceRuleBasedAmount schema"
        },
        "required": [
          "spending_criteria_type",
          "products"
        ],
        "properties": {
          "spending_criteria_type": {
            "type": "string",
            "const": "minimum-purchase-amount"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "product_id",
                "variant_id",
                "minimum_purchase_amount",
                "maximum_purchase_amount",
                "offer_price"
              ],
              "properties": {
                "product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "minimum_purchase_amount": {
                  "type": "number"
                },
                "maximum_purchase_amount": {
                  "description": "null means there is no limit.",
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "offer_price": {
                  "type": "number"
                }
              }
            }
          }
        }
      },
      "FixedPriceRuleBasedQuantity": {
        "title": "FixedPriceRuleBasedQuantity",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FixedPriceRuleBasedQuantity",
          "description": "API reference for the FixedPriceRuleBasedQuantity schema"
        },
        "required": [
          "spending_criteria_type",
          "products"
        ],
        "properties": {
          "spending_criteria_type": {
            "type": "string",
            "const": "minimum-quantity"
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "product_id",
                "variant_id",
                "minimum_quantity",
                "maximum_quantity",
                "offer_price"
              ],
              "properties": {
                "product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "minimum_quantity": {
                  "type": "integer",
                  "minimum": 1
                },
                "maximum_quantity": {
                  "description": "null means there is no limit.",
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "offer_price": {
                  "type": "number"
                }
              }
            }
          }
        }
      },
      "ForgotUsernameContent": {
        "title": "ForgotUsernameContent",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ForgotUsernameContent",
          "description": "API reference for the ForgotUsernameContent schema"
        },
        "required": [
          "business",
          "users"
        ],
        "properties": {
          "business": {
            "description": "Matched business from `customer_customer`.",
            "type": "object",
            "properties": {
              "type": {
                "type": "string"
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "metadata": {
                "description": "Business metadata containing `gstin` and/or `pancard_number`.",
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            },
            "required": [
              "type",
              "metadata"
            ]
          },
          "users": {
            "description": "Users linked to the matched business, with masked contact details.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "The unique ID of the user.",
                  "type": "string",
                  "readOnly": true
                },
                "first_name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "last_name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "email": {
                  "description": "Masked email address associated with the account.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "phone": {
                  "description": "Masked phone number associated with the account.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "created_at": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                },
                "modified_at": {
                  "type": "string",
                  "format": "date-time",
                  "readOnly": true
                }
              },
              "required": [
                "id",
                "created_at",
                "modified_at"
              ]
            }
          }
        }
      },
      "FreeGoodCouponPromotion": {
        "title": "FreeGoodCouponPromotion",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FreeGoodCouponPromotion",
          "description": "API reference for the FreeGoodCouponPromotion schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/CouponPromotionCommonDetail"
          },
          {
            "type": "object",
            "required": [
              "details",
              "applies_to_product"
            ],
            "properties": {
              "details": {
                "$ref": "#/components/schemas/FreeGoodsRule"
              },
              "applies_to_product": {
                "enum": [
                  "product"
                ]
              }
            }
          }
        ]
      },
      "FreeGoodsPromotion": {
        "title": "FreeGoodsPromotion",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FreeGoodsPromotion",
          "description": "API reference for the FreeGoodsPromotion schema"
        },
        "required": [
          "promotion_type",
          "buy_quantity",
          "get_quantity"
        ],
        "properties": {
          "promotion_type": {
            "type": "string",
            "enum": [
              "discount",
              "volume-based",
              "fixed-price",
              "free-goods"
            ],
            "const": "free-goods",
            "readOnly": true
          },
          "buy_quantity": {
            "description": "The quantity of items a customer must buy to receive free goods.",
            "type": "integer"
          },
          "get_quantity": {
            "description": "The quantity of free goods the customer receives.",
            "type": "integer"
          }
        }
      },
      "FreeGoodsRule": {
        "title": "FreeGoodsRule",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FreeGoodsRule",
          "description": "API reference for the FreeGoodsRule schema"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/AutoScaleBasedOnQuantity"
          },
          {
            "$ref": "#/components/schemas/AutoScaleBasedOnAmount"
          },
          {
            "$ref": "#/components/schemas/CustomSlabsBasedOnQuantity"
          },
          {
            "$ref": "#/components/schemas/CustomSlabsBasedOnAmount"
          }
        ]
      },
      "FreeShippingCouponPromotion": {
        "title": "FreeShippingCouponPromotion",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FreeShippingCouponPromotion",
          "description": "API reference for the FreeShippingCouponPromotion schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/CouponPromotionCommonDetail"
          },
          {
            "type": "object",
            "required": [
              "details",
              "applies_to_product"
            ],
            "properties": {
              "details": {
                "$ref": "#/components/schemas/FreeShippingDetails"
              },
              "applies_to_product": {
                "type": "string",
                "const": "all"
              }
            }
          }
        ]
      },
      "FreeShippingDetails": {
        "title": "FreeShippingDetails",
        "description": "Free shipping has no rule; always an empty array.",
        "type": "array",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FreeShippingDetails",
          "description": "API reference for the FreeShippingDetails schema"
        },
        "default": [],
        "maxItems": 0
      },
      "FulfillmentItem": {
        "title": "FulfillmentItem",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FulfillmentItem",
          "description": "API reference for the FulfillmentItem schema"
        },
        "required": [
          "product_id",
          "product_name",
          "variant_id",
          "variant_name",
          "quantity"
        ],
        "properties": {
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string",
            "readOnly": true
          },
          "variant_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "variant_name": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "quantity": {
            "type": "integer"
          }
        }
      },
      "FulfillmentPreference": {
        "title": "FulfillmentPreference",
        "description": "How the customer wants to receive their order. Discriminated by `fulfillment_type`: `delivery` for home delivery, `collect-in-store` for in-store pickup, or `partial-collect-and-delivery` for a mix of both.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/FulfillmentPreference",
          "description": "API reference for the FulfillmentPreference schema"
        },
        "discriminator": {
          "propertyName": "fulfillment_type",
          "mapping": {
            "collect-in-store": "#/components/schemas/CollectInStoreFulfillment",
            "delivery": "#/components/schemas/DeliveryFulfillment",
            "partial-collect-and-delivery": "#/components/schemas/PartialCollectAndDelivery"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/CollectInStoreFulfillment"
          },
          {
            "$ref": "#/components/schemas/DeliveryFulfillment"
          },
          {
            "$ref": "#/components/schemas/PartialCollectAndDelivery"
          }
        ],
        "x-tags": [
          "Carts"
        ]
      },
      "GenerateOtpWithEmail": {
        "title": "GenerateOtpWithEmail",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/GenerateOtpWithEmail",
          "description": "API reference for the GenerateOtpWithEmail schema"
        },
        "required": [
          "channel",
          "email",
          "otp_action"
        ],
        "properties": {
          "channel": {
            "type": "string",
            "const": "email"
          },
          "email": {
            "type": "string"
          },
          "otp_action": {
            "type": "string",
            "enum": [
              "register",
              "reset-password",
              "verify-email",
              "update-email"
            ]
          }
        }
      },
      "GenerateOtpWithPhone": {
        "title": "GenerateOtpWithPhone",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/GenerateOtpWithPhone",
          "description": "API reference for the GenerateOtpWithPhone schema"
        },
        "required": [
          "channel",
          "phone",
          "otp_action"
        ],
        "properties": {
          "channel": {
            "enum": [
              "sms",
              "whatsapp"
            ]
          },
          "country_code": {
            "description": "Two-letter code begin with a plus sign prefix that identifies different countries. By default it will be +91 if not provided.",
            "type": [
              "string",
              "null"
            ]
          },
          "phone": {
            "description": "10 digit phone number without country code.",
            "type": "string"
          },
          "otp_action": {
            "type": "string",
            "enum": [
              "register",
              "reset-password",
              "verify-phone",
              "update-phone"
            ]
          }
        }
      },
      "GstinDetail": {
        "title": "GstinDetail",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/GstinDetail",
          "description": "API reference for the GstinDetail schema"
        },
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "x-tags": [
          "KYC"
        ]
      },
      "IfscDetail": {
        "title": "IfscDetail",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/IfscDetail",
          "description": "API reference for the IfscDetail schema"
        },
        "required": [
          "address",
          "bank",
          "bankcode",
          "branch",
          "centre",
          "city",
          "contact",
          "district",
          "ifsc",
          "imps",
          "iso3166",
          "micr",
          "neft",
          "rtgs",
          "state",
          "swift",
          "upi"
        ],
        "properties": {
          "address": {
            "type": "string"
          },
          "bank": {
            "type": "string"
          },
          "bankcode": {
            "type": "string"
          },
          "branch": {
            "type": "string"
          },
          "centre": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "contact": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "ifsc": {
            "type": "string"
          },
          "imps": {
            "type": "boolean"
          },
          "iso3166": {
            "type": "string"
          },
          "micr": {
            "type": "string"
          },
          "neft": {
            "type": "boolean"
          },
          "rtgs": {
            "type": "boolean"
          },
          "state": {
            "type": "string"
          },
          "swift": {
            "type": [
              "string",
              "null"
            ]
          },
          "upi": {
            "type": "boolean"
          }
        },
        "examples": []
      },
      "InapplicableCoupon": {
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/InapplicableCoupon",
          "description": "API reference for the InapplicableCoupon schema"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "coupon_type": {
            "$ref": "#/components/schemas/CouponType"
          },
          "coupon_code": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "reason": {
            "type": "string"
          },
          "suggestion": {
            "type": "string"
          }
        }
      },
      "InapplicablePromotion": {
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/InapplicablePromotion",
          "description": "API reference for the InapplicablePromotion schema"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "promotion_type": {
            "$ref": "#/components/schemas/PromotionType"
          },
          "reason": {
            "type": "string"
          },
          "suggestion": {
            "type": "string"
          }
        }
      },
      "Item": {
        "title": "SKU",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Item",
          "description": "API reference for the Item schema"
        },
        "required": [
          "product_id",
          "variant_id",
          "sku",
          "product_slug",
          "variant_slug",
          "product_name",
          "variant_name",
          "product_type",
          "short_description",
          "active",
          "stock_available",
          "on_subscription",
          "on_promotion",
          "category_ids",
          "tags",
          "reviews_count",
          "reviews_rating_sum",
          "attributes",
          "images",
          "pricing",
          "promotion",
          "subscription",
          "associated_options"
        ],
        "properties": {
          "product_id": {
            "type": "string"
          },
          "variant_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "sku": {
            "type": "string"
          },
          "product_slug": {
            "type": "string"
          },
          "variant_slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "product_name": {
            "type": "string"
          },
          "variant_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "product_type": {
            "type": "string",
            "enum": [
              "physical",
              "digital",
              "bundle"
            ],
            "examples": [
              "physical"
            ]
          },
          "short_description": {
            "type": [
              "string",
              "null"
            ]
          },
          "active": {
            "type": "boolean"
          },
          "stock_available": {
            "type": "boolean"
          },
          "backorder": {
            "description": "Indicates whether the item is being fulfilled as a backorder. When true, the item is not currently in stock and will ship later once inventory is available. This may result in the order being split into multiple shipments, with delays for the backordered portion.",
            "type": "boolean"
          },
          "on_subscription": {
            "type": "boolean"
          },
          "on_promotion": {
            "type": "boolean"
          },
          "category_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "description": "Expanded category objects.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Category"
            }
          },
          "tags": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          },
          "reviews_count": {
            "type": "integer"
          },
          "reviews_rating_sum": {
            "type": [
              "number",
              "null"
            ]
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAttribute"
            }
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductImage"
            }
          },
          "pricing": {
            "$ref": "#/components/schemas/ProductPricing"
          },
          "promotion": {
            "$ref": "#/components/schemas/ProductPromotion"
          },
          "subscription": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductSubscription"
            }
          },
          "associated_options": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AssociatedOption",
                "description": "Used when `variant_id` is not null."
              },
              {
                "type": "null",
                "description": "Null when `variant_id` is null."
              }
            ]
          },
          "shipping": {
            "$ref": "#/components/schemas/ProductShipping"
          },
          "inventory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LotBatchDetail"
            }
          }
        },
        "examples": []
      },
      "ItemsBasedFulfillmentCheck": {
        "title": "ItemsBasedFulfillmentCheck",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ItemsBasedFulfillmentCheck",
          "description": "API reference for the ItemsBasedFulfillmentCheck schema"
        },
        "required": [
          "delivery_pincode",
          "items"
        ],
        "properties": {
          "delivery_pincode": {
            "description": "delivery pincode, if null, the fulfillment type will be collect-in-store",
            "type": [
              "string",
              "null"
            ]
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "product_id": {
                  "type": "string"
                },
                "variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "product_id",
                "variant_id"
              ]
            }
          },
          "fulfillment_type": {
            "type": "string",
            "enum": [
              "delivery",
              "collect-in-store"
            ]
          }
        }
      },
      "JuspayCardDetail": {
        "title": "JuspayCardDetail",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayCardDetail",
          "description": "API reference for the JuspayCardDetail schema"
        },
        "required": [
          "card_sub_type",
          "extended_card_type",
          "nickname",
          "provider_category",
          "vault_provider",
          "card_reference",
          "card_type",
          "metadata",
          "card_issuer",
          "card_token",
          "health",
          "card_exp_month",
          "mandate_support",
          "provider",
          "card_sub_type_category",
          "expired",
          "card_fingerprint",
          "tokenize_support",
          "juspay_bank_code",
          "card_exp_year",
          "name_on_card",
          "country_code",
          "card_number",
          "card_isin",
          "card_brand",
          "card_issuer_country"
        ],
        "properties": {
          "card_sub_type": {
            "type": "string"
          },
          "token": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "tokenization_status": {
                "type": "string"
              },
              "support_token_transaction": {
                "type": "boolean"
              },
              "last_four_digits": {
                "type": "string"
              },
              "cvv_less_support": {
                "type": "boolean"
              },
              "vault_provider": {
                "type": "string"
              },
              "par": {
                "type": "string"
              },
              "card_reference": {
                "type": "string"
              },
              "expiry_month": {
                "type": "string"
              },
              "token_supported_gateways": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "card_fingerprint": {
                "type": "string"
              },
              "cvv_less_details": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": true,
                  "properties": {
                    "gateway": {
                      "type": "string"
                    },
                    "gateway_reference_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "cvv_less_supported_gateways": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "provision_token_id": {
                "type": "string"
              },
              "card_isin": {
                "type": "string"
              },
              "expiry_year": {
                "type": "string"
              }
            }
          },
          "extended_card_type": {
            "type": "string"
          },
          "tokens": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "properties": {
                "tokenization_status": {
                  "type": "string"
                },
                "last_four_digits": {
                  "type": "string"
                },
                "provider_category": {
                  "type": "string"
                },
                "vault_provider": {
                  "type": "string"
                },
                "par": {
                  "type": "string"
                },
                "card_reference": {
                  "type": "string"
                },
                "card_token": {
                  "type": "string"
                },
                "expiry_month": {
                  "type": "string"
                },
                "card_fingerprint": {
                  "type": "string"
                },
                "provision_token_id": {
                  "type": "string"
                },
                "card_isin": {
                  "type": "string"
                },
                "expiry_year": {
                  "type": "string"
                }
              }
            }
          },
          "nickname": {
            "type": "string"
          },
          "provider_category": {
            "type": "string"
          },
          "vault_provider": {
            "type": "string"
          },
          "card_reference": {
            "type": "string"
          },
          "card_type": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "origin_customer_id": {
                "type": "string"
              },
              "origin_merchant_id": {
                "type": "string"
              }
            }
          },
          "card_issuer": {
            "type": "string"
          },
          "card_token": {
            "type": "string"
          },
          "health": {
            "type": "string"
          },
          "card_exp_month": {
            "type": "string"
          },
          "mandate_support": {
            "type": "boolean"
          },
          "provider": {
            "type": "string"
          },
          "card_sub_type_category": {
            "type": "string"
          },
          "expired": {
            "type": "boolean"
          },
          "card_fingerprint": {
            "type": "string"
          },
          "tokenize_support": {
            "type": "boolean"
          },
          "juspay_bank_code": {
            "type": "string"
          },
          "card_exp_year": {
            "type": "string"
          },
          "name_on_card": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "atm_pin_auth_support": {
            "type": "boolean"
          },
          "direct_otp_support": {
            "type": "boolean"
          },
          "card_number": {
            "type": "string"
          },
          "card_isin": {
            "type": "string"
          },
          "card_brand": {
            "type": "string"
          },
          "card_issuer_country": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "examples": []
      },
      "JuspayCardPaymentMethod": {
        "title": "JuspayCardPaymentMethod",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayCardPaymentMethod",
          "description": "API reference for the JuspayCardPaymentMethod schema"
        },
        "required": [
          "description",
          "payment_method",
          "payment_method_type",
          "pm_response_description",
          "supported_reference_ids",
          "validations"
        ],
        "properties": {
          "description": {
            "type": "string"
          },
          "payment_method": {
            "type": "string",
            "enum": [
              "VISA",
              "MASTER",
              "RUPAY"
            ]
          },
          "payment_method_type": {
            "type": "string",
            "const": "CARD"
          },
          "pm_response_description": {
            "type": "string"
          },
          "supported_reference_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "validations": {
            "type": "object",
            "properties": {
              "refund_support": {
                "type": "boolean"
              }
            },
            "required": [
              "refund_support"
            ]
          }
        }
      },
      "JuspayCreateCustomerPayload": {
        "title": "JuspayCreateCustomerPayload",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayCreateCustomerPayload",
          "description": "API reference for the JuspayCreateCustomerPayload schema"
        },
        "properties": {
          "user_id": {
            "description": "commercengine user id.",
            "type": "string"
          }
        }
      },
      "JuspayCreateOrderPayload": {
        "title": "JuspayCreateOrderResponse",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayCreateOrderPayload",
          "description": "API reference for the JuspayCreateOrderPayload schema"
        },
        "properties": {
          "order_number": {
            "type": "string"
          },
          "return_url": {
            "type": "string"
          }
        }
      },
      "JuspayCustomer": {
        "title": "JuspayCustomer",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayCustomer",
          "description": "API reference for the JuspayCustomer schema"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "object": {
            "const": "customer"
          },
          "object_reference_id": {
            "type": "string"
          },
          "mobile_number": {
            "type": "string"
          },
          "email_address": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "date_created": {
            "type": "string"
          },
          "last_updated": {
            "type": "string"
          },
          "mobile_country_code": {
            "type": "string"
          }
        }
      },
      "JusPayExpressCheckout": {
        "title": "JusPayExpressCheckout",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JusPayExpressCheckout",
          "description": "API reference for the JusPayExpressCheckout schema"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/JusPayNewCard"
          },
          {
            "$ref": "#/components/schemas/JusPaySavedCardToken"
          },
          {
            "$ref": "#/components/schemas/JuspayNetBanking"
          },
          {
            "$ref": "#/components/schemas/JuspayUpiCollect"
          },
          {
            "$ref": "#/components/schemas/JuspayUpiIntent"
          }
        ]
      },
      "JusPayExpressCheckoutCommonField": {
        "title": "JusPayExpressCheckoutCommonField",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JusPayExpressCheckoutCommonField",
          "description": "API reference for the JusPayExpressCheckoutCommonField schema"
        },
        "required": [
          "payment_provider_slug",
          "integration_type",
          "return_url"
        ],
        "properties": {
          "payment_provider_slug": {
            "description": "The slug of the payment provider in Commerce Engine.",
            "type": "string"
          },
          "integration_type": {
            "type": "string",
            "const": "express-checkout"
          },
          "gateway_reference_id": {
            "description": "The reference ID of the payment gateway. When provided, payments will always be routed through this gateway.",
            "type": "string"
          },
          "return_url": {
            "description": "The URL to which the customer will be redirected after the payment is complete.",
            "type": "string"
          }
        }
      },
      "JusPayExpressCheckoutResponse": {
        "title": "JusPayExpressCheckoutResponse",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JusPayExpressCheckoutResponse",
          "description": "API reference for the JusPayExpressCheckoutResponse schema"
        },
        "required": [
          "txn_id",
          "txn_uuid",
          "status",
          "order_id",
          "juspay",
          "offer_details",
          "payment"
        ],
        "properties": {
          "txn_id": {
            "description": "The transaction ID of the payment.",
            "type": "string"
          },
          "txn_uuid": {
            "description": "The transaction UUID of the payment.",
            "type": "string"
          },
          "status": {
            "description": "The status of the payment.",
            "type": "string"
          },
          "order_id": {
            "description": "The order ID of the payment.",
            "type": "string"
          },
          "juspay": {
            "type": "object",
            "properties": {
              "client_auth_token": {
                "type": "string"
              },
              "client_auth_token_expiry": {
                "type": "string"
              }
            }
          },
          "offer_details": {
            "type": "object",
            "properties": {
              "offers": {
                "type": "array",
                "items": {
                  "type": "object"
                }
              }
            },
            "required": [
              "offers"
            ]
          },
          "payment": {
            "type": "object",
            "properties": {
              "sdk_params": {
                "type": "object",
                "properties": {
                  "tr": {
                    "type": "string"
                  },
                  "merchant_vpa": {
                    "type": "string"
                  },
                  "customer_last_name": {
                    "type": "string"
                  },
                  "merchant_name": {
                    "type": "string"
                  },
                  "pg_intent_url": {
                    "description": "The UPI intent URL of the payment. This URL is used to redirect the customer to the UPI app for payment.",
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  },
                  "tid": {
                    "type": "string"
                  },
                  "customer_first_name": {
                    "type": "string"
                  }
                }
              },
              "authentication": {
                "type": "object",
                "properties": {
                  "method": {
                    "type": "string",
                    "const": "GET"
                  },
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "params": {
                    "description": "Available only when Direct OTP is enabled for the card; otherwise this object is absent.",
                    "type": "object",
                    "properties": {
                      "card_issuer_bank_name": {
                        "type": "string"
                      },
                      "id": {
                        "description": "This field is used as txn_id in Verify Direct OTP and Resend Direct OTP endpoints payload.",
                        "type": "string"
                      },
                      "fallback_url": {
                        "type": "string"
                      },
                      "challenge_id": {
                        "description": "This field is required in Verify Direct OTP and Resend Direct OTP endpoints.",
                        "type": "string"
                      },
                      "resend_otp_allowed": {
                        "description": "This field is used to decide whether API request can be sent to Resend OTP API or not.",
                        "type": "boolean"
                      },
                      "auth_type": {
                        "type": "string"
                      },
                      "submit_otp_allowed": {
                        "description": "This field is used to decide whether OTP can be verified using Authenticate Direct OTP API or not.",
                        "type": "boolean"
                      },
                      "card_isin": {
                        "type": "string"
                      }
                    }
                  }
                },
                "required": [
                  "method",
                  "url"
                ]
              }
            }
          }
        }
      },
      "JusPayHyperCheckout": {
        "title": "JusPayHyperCheckout",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JusPayHyperCheckout",
          "description": "API reference for the JusPayHyperCheckout schema"
        },
        "required": [
          "payment_provider_slug",
          "integration_type",
          "return_url",
          "action"
        ],
        "properties": {
          "payment_provider_slug": {
            "description": "The slug of the payment provider in Commerce Engine.",
            "type": "string"
          },
          "integration_type": {
            "type": "string",
            "const": "hyper-checkout"
          },
          "gateway_reference_id": {
            "description": "The reference ID of the payment gateway. When provided, payments will always be routed through this gateway.",
            "type": "string"
          },
          "return_url": {
            "description": "The URL to which the customer will be redirected after the payment is complete.",
            "type": "string"
          },
          "action": {
            "description": "The action to be performed. `paymentPage` is the default option that you should select when using hyper-checkout.",
            "type": "string",
            "enum": [
              "paymentPage"
            ]
          }
        }
      },
      "JusPayHyperCheckoutResponse": {
        "title": "JusPayHyperCheckoutResponse",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JusPayHyperCheckoutResponse",
          "description": "API reference for the JusPayHyperCheckoutResponse schema"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "order_id": {
            "type": "string"
          },
          "payment_links": {
            "type": "object",
            "properties": {
              "web": {
                "type": "string"
              },
              "expiry": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "sdk_payload": {
            "type": "object",
            "properties": {
              "requestId": {
                "type": "string"
              },
              "service": {
                "type": "string"
              },
              "payload": {
                "type": "object",
                "properties": {
                  "clientId": {
                    "type": "string"
                  },
                  "merchantId": {
                    "type": "string"
                  },
                  "clientAuthToken": {
                    "type": "string"
                  },
                  "clientAuthTokenExpiry": {
                    "type": "string"
                  },
                  "environment": {
                    "type": "string"
                  },
                  "orderId": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  },
                  "action": {
                    "type": "string"
                  },
                  "customerId": {
                    "type": "string"
                  },
                  "firstName": {
                    "type": "string"
                  },
                  "lastName": {
                    "type": "string"
                  },
                  "returnUrl": {
                    "type": "string"
                  },
                  "customerPhone": {
                    "type": "string"
                  },
                  "customerEmail": {
                    "type": "string"
                  },
                  "currency": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "options.createMandate": {
                    "description": "Use for taking consent of subscription payments. If this key is used it will ask user to give consent for subscription payment.\n",
                    "const": "REQUIRED"
                  },
                  "mandate.maxAmount": {
                    "description": "Maximum amount that can be charged in recurring payment.",
                    "type": "string"
                  },
                  "mandate.start_date ": {
                    "description": "subscription start time",
                    "type": "string"
                  },
                  "mandate.end_date ": {
                    "description": "subscription end time",
                    "type": "string"
                  },
                  "mandate.frequency": {
                    "description": "subscription frequency",
                    "const": "MONTHLY"
                  },
                  "mandate.rule_value ": {
                    "description": "When frequency is passed as WEEKLY, FORTNIGHTLY, MONTHLY, BIMONTHLY, QUARTERLY, HALFYEARLY, or YEARLY then is it required that the exact day of the period should be passed.\n\n1-7 when frequency is WEEKLY. In weekly, serial numbers start from Monday. Monday represents 1 and Sunday represents 7.\n\n1-16 when frequency is FORTNIGHTLY. This mandate is executed twice a month. First day of the month is represented by value '1' and ends with '15' on 15th day of the month. Then again starts with '1' for 16th of the month and ends with the last day of the month.\n\n1-31 when frequency is MONTHLY, BIMONTHLY, QUARTERLY, HALFYEARLY, or YEARLY.",
                    "type": "string",
                    "enum": [
                      "1-7",
                      "1-16",
                      "1-31"
                    ]
                  }
                }
              }
            }
          },
          "order_expiry": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "JuspayNetBanking": {
        "title": "JuspayNetBanking",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayNetBanking",
          "description": "API reference for the JuspayNetBanking schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/JusPayExpressCheckoutCommonField"
          },
          {
            "type": "object",
            "properties": {
              "payment_method_type": {
                "type": "string",
                "const": "NB"
              },
              "payment_method": {
                "type": "string"
              }
            },
            "required": [
              "payment_method_type",
              "payment_method"
            ]
          }
        ]
      },
      "JuspayNetbankingPaymentMethod": {
        "title": "JuspayNetbankingPaymentMethod",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayNetbankingPaymentMethod",
          "description": "API reference for the JuspayNetbankingPaymentMethod schema"
        },
        "required": [
          "description",
          "juspay_bank_code",
          "juspay_bank_code_id",
          "payment_method",
          "payment_method_type",
          "pm_response_description",
          "supported_reference_ids"
        ],
        "properties": {
          "description": {
            "type": "string"
          },
          "juspay_bank_code": {
            "type": "string"
          },
          "juspay_bank_code_id": {
            "type": "integer"
          },
          "payment_method": {
            "type": "string"
          },
          "payment_method_type": {
            "type": "string",
            "const": "NB"
          },
          "pm_response_description": {
            "type": "string"
          },
          "supported_reference_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "JusPayNewCard": {
        "title": "JusPayNewCard",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JusPayNewCard",
          "description": "API reference for the JusPayNewCard schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/JusPayExpressCheckoutCommonField"
          },
          {
            "type": "object",
            "properties": {
              "save_to_locker": {
                "description": "Whether to save the card to the locker. If true, the card will be saved to the locker and can be used for future payments as per RBI regulations.",
                "type": "boolean"
              },
              "payment_method_type": {
                "type": "string",
                "const": "CARD"
              },
              "card_number": {
                "type": "string"
              },
              "card_exp_month": {
                "type": "string"
              },
              "card_exp_year": {
                "type": "string"
              },
              "name_on_card": {
                "type": "string"
              },
              "card_security_code": {
                "type": "string"
              }
            },
            "required": [
              "save_to_locker",
              "payment_method_type",
              "card_number",
              "card_exp_month",
              "card_exp_year",
              "name_on_card",
              "card_security_code"
            ]
          }
        ]
      },
      "JuspayOrder": {
        "title": "JuspayOrder",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayOrder",
          "description": "API reference for the JuspayOrder schema"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "udf10": {
            "type": "string"
          },
          "udf9": {
            "type": "string"
          },
          "udf8": {
            "type": "string"
          },
          "udf7": {
            "type": "string"
          },
          "udf6": {
            "type": "string"
          },
          "udf5": {
            "type": "string"
          },
          "udf4": {
            "type": "string"
          },
          "udf3": {
            "type": "string"
          },
          "udf2": {
            "type": "string"
          },
          "udf1": {
            "type": "string"
          },
          "status_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "return_url": {
            "type": "string"
          },
          "refunded": {
            "type": "boolean",
            "default": false
          },
          "product_id": {
            "type": "string"
          },
          "payment_links": {
            "type": "object",
            "properties": {
              "web": {
                "type": "string"
              },
              "mobile": {
                "type": "string"
              },
              "iframe": {
                "type": "string"
              }
            }
          },
          "order_id": {
            "type": "string"
          },
          "merchant_id": {
            "type": "string"
          },
          "juspay": {
            "type": "object",
            "properties": {
              "client_auth_token": {
                "type": "string"
              },
              "client_auth_token_expiry": {
                "type": "string"
              }
            }
          },
          "date_created": {
            "type": "string"
          },
          "customer_phone": {
            "type": "string"
          },
          "customer_id": {
            "type": "string"
          },
          "customer_email": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "amount_refunded": {
            "type": "number",
            "format": "double"
          },
          "amount": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "JuspayPaymentMethod": {
        "title": "JuspayPaymentMethod",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayPaymentMethod",
          "description": "API reference for the JuspayPaymentMethod schema"
        },
        "required": [
          "id",
          "name",
          "type",
          "payment_provider_slug",
          "details"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "payment_instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": "string"
          },
          "payment_provider_slug": {
            "description": "The slug of the payment provider in Commerce Engine.",
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JuspayPaymentMethodDetail"
            }
          },
          "order_params": {
            "type": "object"
          }
        }
      },
      "JuspayPaymentMethodDetail": {
        "title": "JuspayPaymentMethodDetail",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayPaymentMethodDetail",
          "description": "API reference for the JuspayPaymentMethodDetail schema"
        },
        "discriminator": {
          "propertyName": "payment_method_type",
          "mapping": {
            "UPI": "#/components/schemas/JuspayUpiPaymentMethod",
            "CARD": "#/components/schemas/JuspayCardPaymentMethod",
            "NB": "#/components/schemas/JuspayNetbankingPaymentMethod",
            "WALLET": "#/components/schemas/JuspayWalletPaymentMethod"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/JuspayUpiPaymentMethod"
          },
          {
            "$ref": "#/components/schemas/JuspayCardPaymentMethod"
          },
          {
            "$ref": "#/components/schemas/JuspayNetbankingPaymentMethod"
          },
          {
            "$ref": "#/components/schemas/JuspayWalletPaymentMethod"
          }
        ]
      },
      "JusPaySavedCardToken": {
        "title": "JusPaySavedCardToken",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JusPaySavedCardToken",
          "description": "API reference for the JusPaySavedCardToken schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/JusPayExpressCheckoutCommonField"
          },
          {
            "type": "object",
            "properties": {
              "save_to_locker": {
                "description": "Whether to save the card to the locker. If true, the card will be saved to the locker and can be used for future payments as per RBI regulations.",
                "type": "boolean"
              },
              "payment_method_type": {
                "type": "string",
                "const": "CARD"
              },
              "payment_method": {
                "description": "Payment method of the card. Please check which payment method is supported by the gateway.",
                "type": "string",
                "enum": [
                  "VISA",
                  "MASTER",
                  "RUPAY",
                  "AMEX",
                  "DINERS",
                  "DISCOVER",
                  "JCB",
                  "MAESTRO"
                ]
              },
              "card_token": {
                "description": "Token of the card. This is the token that is used to identify the card in the gateway.",
                "type": "string"
              },
              "card_security_code": {
                "description": "Security code of the card. This is the security code that is used to identify the card in the gateway.",
                "type": "string"
              }
            },
            "required": [
              "save_to_locker",
              "payment_method_type",
              "payment_method",
              "card_token",
              "card_security_code"
            ]
          }
        ]
      },
      "JuspayUpiCollect": {
        "title": "JuspayUpiCollect",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayUpiCollect",
          "description": "API reference for the JuspayUpiCollect schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/JusPayExpressCheckoutCommonField"
          },
          {
            "type": "object",
            "properties": {
              "payment_method_type": {
                "type": "string",
                "const": "UPI"
              },
              "payment_method": {
                "type": "string",
                "const": "UPI_COLLECT"
              },
              "upi_vpa": {
                "type": "string"
              }
            },
            "required": [
              "payment_method_type",
              "payment_method",
              "upi_vpa"
            ]
          }
        ]
      },
      "JuspayUpiIntent": {
        "title": "JuspayUpiIntent",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayUpiIntent",
          "description": "API reference for the JuspayUpiIntent schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/JusPayExpressCheckoutCommonField"
          },
          {
            "type": "object",
            "properties": {
              "payment_method_type": {
                "type": "string",
                "const": "UPI"
              },
              "payment_method": {
                "type": "string",
                "const": "UPI_PAY"
              }
            },
            "required": [
              "payment_method_type",
              "payment_method"
            ]
          }
        ]
      },
      "JuspayUpiPaymentMethod": {
        "title": "JuspayUpiPaymentMethod",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayUpiPaymentMethod",
          "description": "API reference for the JuspayUpiPaymentMethod schema"
        },
        "required": [
          "description",
          "juspay_bank_code",
          "juspay_bank_code_id",
          "payment_method",
          "payment_method_type",
          "pm_response_description",
          "supported_reference_ids"
        ],
        "properties": {
          "description": {
            "type": "string"
          },
          "juspay_bank_code": {
            "type": "string",
            "enum": [
              "UPI_COLLECT",
              "UPI_PAY",
              "UPI_QR"
            ]
          },
          "juspay_bank_code_id": {
            "type": "integer"
          },
          "payment_method": {
            "type": "string",
            "enum": [
              "UPI_COLLECT",
              "UPI_PAY",
              "UPI_QR"
            ]
          },
          "payment_method_type": {
            "type": "string",
            "const": "UPI"
          },
          "pm_response_description": {
            "type": "string"
          },
          "supported_reference_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "JuspayWalletPaymentMethod": {
        "title": "JuspayWalletPaymentMethod",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/JuspayWalletPaymentMethod",
          "description": "API reference for the JuspayWalletPaymentMethod schema"
        },
        "required": [
          "description",
          "juspay_bank_code",
          "juspay_bank_code_id",
          "payment_method",
          "payment_method_sub_type",
          "payment_method_type",
          "pm_response_description",
          "supported_reference_ids"
        ],
        "properties": {
          "description": {
            "type": "string"
          },
          "juspay_bank_code": {
            "type": "string"
          },
          "juspay_bank_code_id": {
            "type": "integer"
          },
          "payment_method": {
            "type": "string"
          },
          "payment_method_sub_type": {
            "type": "string",
            "const": "WALLET"
          },
          "payment_method_type": {
            "type": "string",
            "const": "WALLET"
          },
          "pm_response_description": {
            "type": "string"
          },
          "supported_reference_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "wallet_direct_debit_support": {
            "type": "boolean"
          }
        }
      },
      "KycDocumentConfig": {
        "title": "KycDocumentConfig",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/KycDocumentConfig",
          "description": "API reference for the KycDocumentConfig schema"
        },
        "required": [
          "id",
          "document_type",
          "title",
          "description",
          "active",
          "is_mandatory",
          "is_attachment_required",
          "verification_type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true
          },
          "document_type": {
            "enum": [
              "gst",
              "pan",
              "other"
            ]
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "active": {
            "type": "boolean",
            "default": true
          },
          "is_mandatory": {
            "type": "boolean"
          },
          "is_attachment_required": {
            "type": "boolean"
          },
          "slug": {
            "type": "string",
            "readOnly": true
          },
          "verification_type": {
            "enum": [
              "auto",
              "manual"
            ]
          },
          "is_value_unique": {
            "description": "When `true`, the document number must be unique across customers in the store.",
            "type": "boolean",
            "readOnly": true
          }
        }
      },
      "LotBatchDetail": {
        "title": "LotBatchDetail",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/LotBatchDetail",
          "description": "API reference for the LotBatchDetail schema"
        },
        "required": [
          "lot_batch",
          "mfg_date",
          "exp_date",
          "manufacturer",
          "stock_quantity"
        ],
        "properties": {
          "lot_batch": {
            "type": "string"
          },
          "mfg_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "exp_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "manufacturer": {
            "type": [
              "string",
              "null"
            ]
          },
          "stock_quantity": {
            "type": "integer"
          }
        }
      },
      "LotusPayCheckout": {
        "title": "LotusPayCheckout",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/LotusPayCheckout",
          "description": "API reference for the LotusPayCheckout schema"
        },
        "required": [
          "payment_provider_slug",
          "payment_method_type",
          "mandate_id"
        ],
        "properties": {
          "payment_provider_slug": {
            "description": "The slug of the payment provider in Commerce Engine.",
            "type": "string",
            "const": "juspay"
          },
          "payment_method_type": {
            "type": "string",
            "const": "NACH"
          },
          "mandate_id": {
            "description": "The ID of the active mandate.",
            "type": "string"
          }
        }
      },
      "LoyaltyPointActivity": {
        "title": "LoyaltyPointActivity",
        "description": "Loyalty Point Activity",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/LoyaltyPointActivity",
          "description": "API reference for the LoyaltyPointActivity schema"
        },
        "properties": {
          "action": {
            "description": "The action that occurred.",
            "type": "string",
            "enum": [
              "add",
              "remove"
            ]
          },
          "activity": {
            "description": "The activity that occurred.",
            "type": "string",
            "enum": [
              "order-placed",
              "credit-note-issued",
              "tier-upgrade",
              "tier-downgrade",
              "points-expired",
              "points-carryforward",
              "signup",
              "bonus",
              "other"
            ]
          },
          "reference_number": {
            "type": [
              "string",
              "null"
            ]
          },
          "title": {
            "type": "string"
          },
          "loyalty_points": {
            "type": "integer"
          },
          "remarks": {
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "LoyaltyProgram": {
        "title": "LoyaltyProgram",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/LoyaltyProgram",
          "description": "API reference for the LoyaltyProgram schema"
        },
        "required": [
          "id",
          "name",
          "renewal_type",
          "points_earning_type",
          "tier_upgrade_criteria",
          "point_value",
          "redemption_inactivity_days",
          "redemption_expiry_type",
          "starts_at",
          "date_of_reset",
          "pause_starts_at",
          "pause_ends_at",
          "status",
          "tiers",
          "created_at",
          "modified_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string"
          },
          "renewal_type": {
            "enum": [
              "yearly",
              "never",
              "custom"
            ]
          },
          "points_earning_type": {
            "enum": [
              "dynamic",
              "fixed"
            ]
          },
          "tier_upgrade_criteria": {
            "enum": [
              "total-spent",
              "total-orders",
              "custom"
            ]
          },
          "point_value": {
            "type": "number"
          },
          "redemption_inactivity_days": {
            "type": [
              "integer",
              "null"
            ]
          },
          "redemption_expiry_type": {
            "enum": [
              "never",
              "inactivity",
              "reset_date"
            ]
          },
          "starts_at": {
            "type": "string",
            "format": "date-time"
          },
          "date_of_reset": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "pause_starts_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "pause_ends_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "status": {
            "$ref": "#/components/schemas/LoyaltyProgramStatus",
            "readOnly": true
          },
          "tiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoyaltyTier"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          }
        },
        "x-tags": [
          "Customers"
        ]
      },
      "LoyaltyProgramStatus": {
        "title": "LoyaltyProgramStatus",
        "description": "The operational status of the loyalty program.",
        "type": "string",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/LoyaltyProgramStatus",
          "description": "API reference for the LoyaltyProgramStatus schema"
        },
        "enum": [
          "active",
          "expired"
        ]
      },
      "LoyaltyTier": {
        "title": "LoyaltyTier",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/LoyaltyTier",
          "description": "API reference for the LoyaltyTier schema"
        },
        "required": [
          "id",
          "name",
          "total_spent_threshold",
          "total_orders_threshold",
          "points_earning_rate",
          "fixed_points",
          "is_initial",
          "next_tier_id"
        ],
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string"
          },
          "total_spent_threshold": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "total_orders_threshold": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "points_earning_rate": {
            "type": [
              "number",
              "null"
            ]
          },
          "fixed_points": {
            "type": [
              "integer",
              "null"
            ]
          },
          "is_initial": {
            "type": "boolean",
            "readOnly": true
          },
          "next_tier_id": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          }
        },
        "x-tags": [
          "Customers"
        ]
      },
      "MandateDebitSchedule": {
        "title": "MandateDebitSchedule",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/MandateDebitSchedule",
          "description": "API reference for the MandateDebitSchedule schema"
        },
        "required": [
          "id",
          "mandate_id",
          "order_id",
          "amount",
          "status",
          "scheduled_at",
          "retry_attempt",
          "max_retries",
          "store_id",
          "created_at",
          "modified_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "mandate_id": {
            "type": "string"
          },
          "order_id": {
            "type": "string"
          },
          "order_number": {
            "description": "Order number of the order that triggered this debit.",
            "type": [
              "string",
              "null"
            ]
          },
          "amount": {
            "type": "number"
          },
          "status": {
            "type": "string",
            "enum": [
              "scheduled",
              "debit-pending",
              "debit-success",
              "debit-failed",
              "cancelled",
              "awaiting-retry"
            ]
          },
          "scheduled_at": {
            "type": "string",
            "format": "date-time"
          },
          "picked_at": {
            "description": "Time at which the worker picked the schedule for execution.",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "executed_at": {
            "description": "Time at which the debit was executed against the mandate provider.",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "external_reference_id": {
            "description": "Mandate provider reference returned for this debit.",
            "type": [
              "string",
              "null"
            ]
          },
          "gateway_order_id": {
            "description": "Order ID submitted to the mandate provider for this debit.",
            "type": [
              "string",
              "null"
            ]
          },
          "retry_attempt": {
            "type": "integer"
          },
          "max_retries": {
            "type": "integer"
          },
          "next_retry_at": {
            "description": "Time at which the next retry will be attempted.",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "store_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "MandateStatus": {
        "type": "string",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/MandateStatus",
          "description": "API reference for the MandateStatus schema"
        },
        "enum": [
          "created",
          "active",
          "paused",
          "revoked",
          "error"
        ]
      },
      "ManualPaymentMethod": {
        "title": "ManualPaymentMethod",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ManualPaymentMethod",
          "description": "API reference for the ManualPaymentMethod schema"
        },
        "required": [
          "id",
          "name",
          "type",
          "payment_provider_slug",
          "details"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "payment_instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": "string"
          },
          "payment_provider_slug": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "order_params": {
            "type": "object"
          }
        }
      },
      "MarketplaceItem": {
        "title": "MarketplaceItem",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/MarketplaceItem",
          "description": "API reference for the MarketplaceItem schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/Item"
          },
          {
            "type": "object",
            "properties": {
              "seller_id": {
                "type": "string"
              },
              "seller_detail": {
                "$ref": "#/components/schemas/SellerInfo"
              }
            },
            "required": [
              "seller_id",
              "seller_detail"
            ]
          }
        ]
      },
      "MarketplaceProduct": {
        "title": "MarketplaceProduct",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/MarketplaceProduct",
          "description": "API reference for the MarketplaceProduct schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/Product"
          },
          {
            "type": "object",
            "properties": {
              "seller_id": {
                "type": "string"
              },
              "seller_detail": {
                "$ref": "#/components/schemas/SellerInfo"
              }
            },
            "required": [
              "seller_id",
              "seller_detail"
            ]
          }
        ]
      },
      "MarketplaceProductDetail": {
        "title": "MarketplaceProductDetail",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/MarketplaceProductDetail",
          "description": "API reference for the MarketplaceProductDetail schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/Product"
          },
          {
            "$ref": "#/components/schemas/AdditionalProductDetails"
          }
        ],
        "examples": []
      },
      "MultiSelectAttribute": {
        "title": "MultiSelectAttribute",
        "description": "Attribute for multi-select values",
        "type": "object",
        "readOnly": true,
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/MultiSelectAttribute",
          "description": "API reference for the MultiSelectAttribute schema"
        },
        "required": [
          "id",
          "name",
          "key",
          "type",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "key": {
            "description": "A lookup safe version of the name that is lowercased and spaces are replaced with underscores. For instance, if name is `Product Type`, key will be `product_type`",
            "type": "string"
          },
          "type": {
            "type": "string",
            "example": "multi-select"
          },
          "value": {
            "description": "For multi-select attributes",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "NachPayment": {
        "title": "NachPayment",
        "description": "NACH mandate payment via LotusPay.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/NachPayment",
          "description": "API reference for the NachPayment schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentInfo"
          }
        ]
      },
      "NetbankingPayment": {
        "title": "NetbankingPayment",
        "description": "Payments using payment gateway netbanking option.",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/NetbankingPayment",
          "description": "API reference for the NetbankingPayment schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentInfo"
          },
          {
            "type": "object",
            "properties": {
              "bank_name": {
                "type": "string"
              }
            }
          }
        ]
      },
      "NotificationChannelPreferences": {
        "title": "NotificationChannelPreferences",
        "description": "Set specific channel preferences",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/NotificationChannelPreferences",
          "description": "API reference for the NotificationChannelPreferences schema"
        },
        "required": [
          "email",
          "sms",
          "whatsapp"
        ],
        "properties": {
          "email": {
            "description": "Indicates whether the user has opted to receive notifications via email.",
            "type": "boolean"
          },
          "sms": {
            "description": "Indicates whether the user has opted to receive notifications via SMS.",
            "type": "boolean"
          },
          "whatsapp": {
            "description": "Indicates whether the user has opted to receive notifications via WhatsApp.",
            "type": "boolean"
          }
        }
      },
      "NotificationPreferences": {
        "title": "NotificationPreferences",
        "description": "Set channel preferences for each type of ",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/NotificationPreferences",
          "description": "API reference for the NotificationPreferences schema"
        },
        "required": [
          "transactional",
          "promotional",
          "newsletter"
        ],
        "properties": {
          "transactional": {
            "description": "These notifications are typically critical for user engagement, providing updates, confirmations, or alerts related to their account activities.",
            "$ref": "#/components/schemas/NotificationChannelPreferences"
          },
          "promotional": {
            "description": "These notifications aim to engage users with promotional content and enhance their overall experience with the platform.",
            "$ref": "#/components/schemas/NotificationChannelPreferences"
          },
          "newsletter": {
            "description": "These notifications are often sent periodically as part of a subscription service.\n",
            "$ref": "#/components/schemas/NotificationChannelPreferences"
          }
        }
      },
      "NumberAttribute": {
        "title": "NumberAttribute",
        "description": "Attribute for numeric values",
        "type": "object",
        "readOnly": true,
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/NumberAttribute",
          "description": "API reference for the NumberAttribute schema"
        },
        "required": [
          "id",
          "name",
          "key",
          "type",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "key": {
            "description": "A lookup safe version of the name that is lowercased and spaces are replaced with underscores. For instance, if name is `Product Type`, key will be `product_type`",
            "type": "string"
          },
          "type": {
            "type": "string",
            "example": "number"
          },
          "value": {
            "description": "For numeric attributes",
            "type": "number"
          }
        }
      },
      "Order": {
        "title": "Order",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Order",
          "description": "API reference for the Order schema"
        },
        "required": [
          "applied_promotions",
          "applied_coupons"
        ],
        "properties": {
          "order_number": {
            "description": "Unique, human-readable order identifier used across all order endpoints.",
            "type": "string"
          },
          "order_date": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "description": "Current fulfillment status of the order. Progresses from `confirmed` through shipping stages to `complete`.",
            "type": "string",
            "enum": [
              "draft",
              "awaiting_approval",
              "confirmed",
              "partially_scheduled",
              "awaiting_shipment",
              "shipped",
              "partially_shipped",
              "undelivered",
              "partially_undelivered",
              "return_to_origin",
              "partially_return_to_origin",
              "complete",
              "partially_delivered",
              "cancelled",
              "pending"
            ]
          },
          "payment_status": {
            "description": "Current payment status. Poll `/orders/{order_number}/payment-status` after a payment attempt until this is `success` or `failed`.",
            "type": "string",
            "enum": [
              "pending",
              "success",
              "failed",
              "partially_paid"
            ]
          },
          "payment_success_date": {
            "type": [
              "string",
              "null"
            ]
          },
          "customer_note": {
            "type": [
              "string",
              "null"
            ]
          },
          "is_promotion_applied": {
            "type": "boolean"
          },
          "promotion_discount_amount": {
            "type": "number",
            "format": "double"
          },
          "promotion_discount_percent": {
            "type": "number",
            "format": "double"
          },
          "is_coupon_applied": {
            "type": "boolean"
          },
          "coupon_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "coupon_discount_amount": {
            "type": "number",
            "format": "double"
          },
          "coupon_discount_percent": {
            "type": "number",
            "format": "double"
          },
          "applied_promotions": {
            "description": "Information about the promotional offers that have been applied to the cart.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppliedPromotion"
            }
          },
          "applied_coupons": {
            "description": "This key provides details about the savings in cart after coupon have been applied to the cart.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppliedCoupon"
            }
          },
          "promotion_savings": {
            "description": "Total savings from auto-applied promotions.",
            "type": "number",
            "format": "float",
            "minimum": 0
          },
          "coupon_savings": {
            "description": "Total savings from the applied coupon code.",
            "type": "number",
            "format": "float",
            "minimum": 0
          },
          "other_savings": {
            "description": "Total savings from loyalty points, credit balance, and other non-promotion/coupon discounts.",
            "type": "number",
            "format": "float",
            "minimum": 0
          },
          "total_savings": {
            "description": "Combined savings across promotions, coupons, and other discounts.",
            "type": "number",
            "format": "float",
            "minimum": 0
          },
          "on_subscription": {
            "type": "boolean"
          },
          "subtotal": {
            "type": "number",
            "format": "double"
          },
          "item_total_tax": {
            "type": "number",
            "format": "double"
          },
          "subtotal_including_tax": {
            "type": "number",
            "format": "double"
          },
          "shipping_estimated_cost": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "shipping_discount_amount": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "shipping_amount": {
            "type": "number",
            "format": "double"
          },
          "shipping_tax_rate": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "shipping_tax_amount": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "shipping_amount_including_tax": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "fulfillment_preference": {
            "$ref": "#/components/schemas/FulfillmentPreference"
          },
          "estimated_delivery_days": {
            "type": [
              "integer",
              "null"
            ]
          },
          "handling_charge_excluding_tax": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "handling_charge_tax_amount": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "handling_charge_including_tax": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "total_tax": {
            "type": "number",
            "format": "double"
          },
          "grand_total": {
            "type": "number",
            "format": "double"
          },
          "loyalty_points_earned": {
            "type": "integer",
            "minimum": 0
          },
          "loyalty_points_redeemed": {
            "type": "integer",
            "minimum": 0
          },
          "credit_balance_used": {
            "type": "integer"
          },
          "to_be_paid": {
            "type": "number",
            "format": "double"
          },
          "order_items_count": {
            "type": "integer"
          },
          "order_items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItem"
            }
          },
          "billing_address": {
            "$ref": "#/components/schemas/CustomerAddress"
          },
          "shipping_address": {
            "$ref": "#/components/schemas/CustomerAddress"
          },
          "currency": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "code": {
                "type": "string"
              },
              "symbol": {
                "type": "string"
              }
            }
          },
          "metadata": {
            "description": "Additional metadata associated with the order.",
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            }
          },
          "is_cancellation_allowed": {
            "description": "Whether the order is eligible for cancellation. Only show the cancel action in your UI when this is `true`.",
            "type": "boolean"
          },
          "cancellation_refund_details": {
            "description": "Breakdown of the refund the customer would receive upon cancellation. Only populated when `is_cancellation_allowed` is `true`.",
            "type": "object",
            "properties": {
              "loyalty_point": {
                "description": "loyalty point redeemed will be rollbacked and credited to user account.",
                "type": "integer"
              },
              "refundable_amount": {
                "description": "amount that will be refunded to customer.",
                "type": "number"
              },
              "cancellation_charges": {
                "description": "amount deducted from paid amount.",
                "type": "number"
              },
              "cancellation_charges_reason": {
                "description": "reason for cancellation charges.",
                "type": "string"
              },
              "payment_mode": {
                "description": "payment mode for refund.",
                "type": "string",
                "enum": [
                  "original-payment-mode",
                  "bank-transfer",
                  "nach-mandate"
                ]
              }
            }
          },
          "feedback": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "OrderDetail": {
        "title": "OrderDetail",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/OrderDetail",
          "description": "API reference for the OrderDetail schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/Order"
          },
          {
            "type": "object",
            "properties": {
              "payments": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/OrderPayment"
                }
              },
              "shipments": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/OrderShipment"
                }
              }
            }
          }
        ]
      },
      "OrderItem": {
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/OrderItem",
          "description": "API reference for the OrderItem schema"
        },
        "required": [
          "product_id",
          "product_name",
          "product_image_url",
          "product_type",
          "sku",
          "product_slug",
          "variant_slug",
          "variant_id",
          "variant_name",
          "backorder",
          "on_promotion",
          "on_subscription",
          "subscription_plan",
          "subscription_interval",
          "subscription_frequency",
          "quantity",
          "free_quantity",
          "is_free_item",
          "price_including_tax",
          "selling_price",
          "listing_price",
          "selling_price_excluding_tax",
          "promotion_discount_amount",
          "coupon_discount_amount",
          "tax_type",
          "tax_rate",
          "tax_amount",
          "handling_charge_excluding_tax",
          "handling_charge_tax_rate",
          "handling_charge_including_tax"
        ],
        "properties": {
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "product_image_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "product_type": {
            "enum": [
              "physical",
              "digital",
              "bundle"
            ]
          },
          "sku": {
            "type": "string"
          },
          "product_slug": {
            "type": "string"
          },
          "variant_slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "variant_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "variant_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "backorder": {
            "description": "backorder\n\nIndicates whether the item is being fulfilled as a backorder. When true, the item is not currently in stock and will ship later once inventory is available. This may result in the order being split into multiple shipments, with delays for the backordered portion.",
            "type": "boolean"
          },
          "on_promotion": {
            "type": "boolean"
          },
          "on_subscription": {
            "type": "boolean"
          },
          "subscription_plan": {
            "type": [
              "string",
              "null"
            ]
          },
          "subscription_interval": {
            "type": [
              "integer",
              "null"
            ]
          },
          "subscription_frequency": {
            "type": [
              "string",
              "null"
            ]
          },
          "quantity": {
            "type": "integer",
            "minimum": 0
          },
          "free_quantity": {
            "type": "integer",
            "minimum": 0
          },
          "is_free_item": {
            "type": "boolean"
          },
          "price_including_tax": {
            "type": "boolean"
          },
          "selling_price": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "listing_price": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "selling_price_excluding_tax": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "promotion_discount_amount": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "coupon_discount_amount": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "tax_type": {
            "type": "string",
            "default": "GST",
            "const": "GST",
            "examples": [
              "GST"
            ]
          },
          "tax_rate": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "tax_amount": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "handling_charge_excluding_tax": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "handling_charge_tax_rate": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "handling_charge_including_tax": {
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "associated_options": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AssociatedOption",
                "description": "Used when `variant_id` is not null."
              },
              {
                "type": "null",
                "description": "Null when `variant_id` is null."
              }
            ]
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAttribute"
            }
          },
          "seller_id": {
            "description": "Seller ID. This field is relevant for marketplace type stores only. Will return null for b2b and b2c type stores.",
            "type": [
              "string",
              "null"
            ]
          },
          "seller_detail": {
            "description": "Seller detail information. This field is relevant for marketplace type stores only. Will return null for b2b and b2c type stores.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/SellerInfo"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "OrderList": {
        "title": "OrderList",
        "description": "order list model",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/OrderList",
          "description": "API reference for the OrderList schema"
        },
        "properties": {
          "order_number": {
            "description": "Unique number associated with the order.",
            "type": "string"
          },
          "order_date": {
            "description": "Date and time when the order was placed.",
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "description": "Current status of the order (e.g., \"pending,\" \"processing,\" \"shipped,\" etc.).",
            "type": "string",
            "enum": [
              "draft",
              "awaiting_approval",
              "confirmed",
              "partially_scheduled",
              "awaiting_shipment",
              "shipped",
              "partially_shipped",
              "undelivered",
              "partially_undelivered",
              "return_to_origin",
              "partially_return_to_origin",
              "complete",
              "partially_delivered",
              "cancelled"
            ]
          },
          "payment_status": {
            "description": "Current payment status of the order (e.g., \"pending,\" \"success,\" \"failed\").",
            "type": "string",
            "enum": [
              "pending",
              "success",
              "failed",
              "partially_paid"
            ]
          },
          "payment_success_date": {
            "description": "Date and time when the payment for the order was successfully processed.",
            "type": "string",
            "format": "date-time"
          },
          "has_refund": {
            "description": "Indicates whether the order has a refund associated with it or not.",
            "type": "boolean"
          },
          "on_subscription": {
            "description": "Indicates whether the order includes subscription items.",
            "type": "boolean"
          },
          "grand_total": {
            "description": "Total amount for the order, including all items, taxes, and discounts.",
            "type": "number",
            "format": "double"
          },
          "loyalty_point_redeemed": {
            "description": "Number of loyalty points redeemed in the order.",
            "type": "integer"
          },
          "credit_balance_used": {
            "description": "Amount of credit balance used in the order.",
            "type": "integer"
          },
          "to_be_paid": {
            "description": "Amount remaining to be paid for the order.",
            "type": "number",
            "format": "double"
          },
          "order_items_count": {
            "description": "Total count of items included in the order.",
            "type": "integer"
          },
          "order_items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderItem"
            }
          },
          "customer_note": {
            "type": [
              "string",
              "null"
            ]
          },
          "loyalty_point_earned": {
            "type": "integer"
          },
          "currency": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "code": {
                "type": "string"
              },
              "symbol": {
                "type": "string"
              }
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "OrderPayment": {
        "title": "OrderPayment",
        "description": "Order Payment",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/OrderPayment",
          "description": "API reference for the OrderPayment schema"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/CardPayment"
          },
          {
            "$ref": "#/components/schemas/NetbankingPayment"
          },
          {
            "$ref": "#/components/schemas/UpiPayment"
          },
          {
            "$ref": "#/components/schemas/WalletPayment"
          },
          {
            "$ref": "#/components/schemas/BankTransfer"
          },
          {
            "$ref": "#/components/schemas/NachPayment"
          }
        ]
      },
      "OrderRefund": {
        "title": "OrderRefund",
        "description": "Order refund model",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/OrderRefund",
          "description": "API reference for the OrderRefund schema"
        },
        "properties": {
          "request_number": {
            "type": "string"
          },
          "refund_amount": {
            "type": "number",
            "format": "double"
          },
          "refund_date": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "approved",
              "success",
              "failed"
            ]
          },
          "payment_mode": {
            "type": "string",
            "enum": [
              "original-payment-mode",
              "loyalty-point",
              "bank-transfer",
              "nach-mandate"
            ]
          },
          "payment_method": {
            "type": "string"
          },
          "payment_reference_number": {
            "type": "string"
          },
          "bank_account_number": {
            "type": "string"
          },
          "bank_name": {
            "type": "string"
          },
          "refund_remarks": {
            "type": "string"
          }
        }
      },
      "OrderReturn": {
        "title": "OrderReturn",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/OrderReturn",
          "description": "API reference for the OrderReturn schema"
        },
        "properties": {
          "request_number": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "approved",
              "rejected",
              "complete",
              "cancelled"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time"
          },
          "approved_at": {
            "type": "string",
            "format": "date-time"
          },
          "rejected_at": {
            "type": "string",
            "format": "date-time"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrderReturnItem"
            }
          },
          "received_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "OrderReturnDetail": {
        "title": "OrderReturnDetail",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/OrderReturnDetail",
          "description": "API reference for the OrderReturnDetail schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/OrderReturn"
          },
          {
            "type": "object",
            "properties": {
              "return_order": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/OrderReturnOrder"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "replacement_order": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/OrderReturnReplacementOrder"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "refund": {
                "anyOf": [
                  {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/OrderRefund"
                    }
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "attachments": {
                "description": "Signed URLs for supporting images and videos uploaded with the return request.",
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "images": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uri"
                        }
                      },
                      "videos": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uri"
                        }
                      }
                    },
                    "required": [
                      "images",
                      "videos"
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          }
        ]
      },
      "OrderReturnItem": {
        "title": "OrderReturnItem",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/OrderReturnItem",
          "description": "API reference for the OrderReturnItem schema"
        },
        "required": [
          "shipment_number",
          "product_id",
          "variant_id",
          "quantity",
          "reason"
        ],
        "properties": {
          "shipment_number": {
            "type": "string"
          },
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string",
            "readOnly": true
          },
          "product_image_url": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "variant_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "variant_name": {
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "quantity": {
            "type": "integer"
          },
          "return_reason": {
            "type": "string"
          }
        }
      },
      "OrderReturnOrder": {
        "title": "OrderReturnOrder",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/OrderReturnOrder",
          "description": "API reference for the OrderReturnOrder schema"
        },
        "required": [
          "order_number",
          "order_date",
          "order_status"
        ],
        "properties": {
          "order_number": {
            "type": "string"
          },
          "order_date": {
            "type": "string",
            "format": "date-time"
          },
          "order_status": {
            "type": "string"
          }
        }
      },
      "OrderReturnReplacementOrder": {
        "title": "OrderReturnReplacementOrder",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/OrderReturnReplacementOrder",
          "description": "API reference for the OrderReturnReplacementOrder schema"
        },
        "required": [
          "order_number",
          "order_date",
          "order_status"
        ],
        "properties": {
          "order_number": {
            "type": "string"
          },
          "order_date": {
            "type": "string",
            "format": "date-time"
          },
          "order_status": {
            "type": "string"
          }
        }
      },
      "OrderShipment": {
        "title": "OrderShipment",
        "description": "Order shipment model",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/OrderShipment",
          "description": "API reference for the OrderShipment schema"
        },
        "properties": {
          "reference_number": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/ShipmentStatus"
          },
          "total_weight": {
            "type": "number"
          },
          "total_boxes": {
            "type": "integer"
          },
          "shipment_items_count": {
            "type": "integer"
          },
          "shipment_items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ShipmentItem"
            }
          },
          "shipping_amount": {
            "type": "number",
            "format": "double"
          },
          "shipping_tax_amount": {
            "type": "number",
            "format": "double"
          },
          "shipping_amount_including_tax": {
            "type": "number",
            "format": "double"
          },
          "courier_company_name": {
            "type": "string"
          },
          "shipping_label_url": {
            "type": "string"
          },
          "awb_no": {
            "type": "string"
          },
          "tracking_url": {
            "type": "string"
          },
          "eta_delivery": {
            "type": "string"
          },
          "shipped_date": {
            "type": "string",
            "format": "date-time"
          },
          "delivered_date": {
            "type": "string",
            "format": "date-time"
          },
          "is_return_allowed": {
            "type": "boolean",
            "default": false
          },
          "cancellation_reason": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time"
          },
          "seller_id": {
            "description": "Seller ID. This field is relevant for marketplace type stores only. Will return null for b2b and b2c type stores.",
            "type": [
              "string",
              "null"
            ]
          },
          "seller_detail": {
            "description": "Seller detail information. This field is relevant for marketplace type stores only. Will return null for b2b and b2c type stores.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/SellerInfo"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "OtpContent": {
        "title": "OtpContent",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/OtpContent",
          "description": "API reference for the OtpContent schema"
        },
        "required": [
          "otp_token",
          "otp_action"
        ],
        "properties": {
          "otp_token": {
            "description": "Token to pass to the verify-otp endpoint along with the OTP.",
            "type": "string"
          },
          "otp_action": {
            "description": "Action type to pass to the verify-otp endpoint.",
            "type": "string"
          }
        }
      },
      "Pagination": {
        "description": "pagination metadata structure",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Pagination",
          "description": "API reference for the Pagination schema"
        },
        "required": [
          "total_records",
          "total_pages",
          "limit",
          "next_page"
        ],
        "properties": {
          "total_records": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          },
          "previous_page": {
            "type": [
              "integer",
              "null"
            ]
          },
          "limit": {
            "type": "integer"
          },
          "next_page": {
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "examples": [
          {
            "total_records": 100,
            "total_pages": 4,
            "previous_page": null,
            "next_page": 2,
            "limit": 25
          }
        ]
      },
      "PanDetail": {
        "title": "PanDetail",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/PanDetail",
          "description": "API reference for the PanDetail schema"
        },
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "x-tags": [
          "KYC"
        ]
      },
      "PartialCollectAndDelivery": {
        "title": "PartialCollectAndDelivery",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/PartialCollectAndDelivery",
          "description": "API reference for the PartialCollectAndDelivery schema"
        },
        "required": [
          "fulfillment_type",
          "collect-in-store",
          "delivery"
        ],
        "properties": {
          "fulfillment_type": {
            "type": "string",
            "const": "partial-collect-and-delivery"
          },
          "preference_type": {
            "type": "string",
            "enum": [
              "user",
              "auto"
            ],
            "readOnly": true
          },
          "collect-in-store": {
            "type": "object",
            "properties": {
              "pickup_location_id": {
                "type": "string"
              },
              "pickup_location_name": {
                "type": "string",
                "readOnly": true
              },
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/FulfillmentItem"
                }
              }
            },
            "required": [
              "items",
              "pickup_location_id"
            ]
          },
          "delivery": {
            "type": "object",
            "properties": {
              "shipping_provider_id": {
                "type": "string"
              },
              "shipping_provider_name": {
                "type": [
                  "string",
                  "null"
                ],
                "readOnly": true
              },
              "courier_company_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "courier_company_name": {
                "type": [
                  "string",
                  "null"
                ],
                "readOnly": true
              },
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/FulfillmentItem"
                }
              }
            },
            "required": [
              "shipping_provider_id",
              "items"
            ]
          }
        }
      },
      "PauseSubscription": {
        "title": "PauseSubscription",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/PauseSubscription",
          "description": "API reference for the PauseSubscription schema"
        },
        "required": [
          "command"
        ],
        "properties": {
          "command": {
            "description": "To pause an active subscription.",
            "type": "string",
            "const": "pause"
          },
          "pause_start_date": {
            "description": "optional. if specified, subscription will be paused from this date & time. If not specified, subscription will be paused immediately. datetime value should be greater than current time.",
            "type": "string",
            "format": "date-time"
          },
          "pause_end_date": {
            "description": "optional. if specified, subscription will be activated automatically from this date & time. If not specified, subscription will remain paused. datetime value should be greater than current time.",
            "type": "string",
            "format": "date-time"
          }
        },
        "x-tags": [
          "Subscriptions"
        ]
      },
      "PaymentInfo": {
        "title": "PaymentInfo",
        "description": "Common fields in all types of payments.",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/PaymentInfo",
          "description": "API reference for the PaymentInfo schema"
        },
        "properties": {
          "transaction_type": {
            "type": "string",
            "enum": [
              "payment",
              "refund"
            ]
          },
          "request_number": {
            "type": "string"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "payment_status": {
            "type": "string",
            "enum": [
              "pending",
              "success",
              "failed",
              "partially_paid",
              "refund_initiated"
            ]
          },
          "payment_date": {
            "type": "string",
            "format": "date-time"
          },
          "payment_reference_number": {
            "type": [
              "string",
              "null"
            ]
          },
          "payment_method": {
            "type": [
              "string",
              "null"
            ]
          },
          "icon_url": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "PaymentMethodPayload": {
        "title": "PaymentMethodPayload",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/PaymentMethodPayload",
          "description": "API reference for the PaymentMethodPayload schema"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/JusPayHyperCheckout"
          },
          {
            "$ref": "#/components/schemas/JusPayExpressCheckout"
          },
          {
            "$ref": "#/components/schemas/BankTransferCheckout"
          },
          {
            "$ref": "#/components/schemas/LotusPayCheckout"
          }
        ]
      },
      "PaymentProvider": {
        "title": "PaymentProvider",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/PaymentProvider",
          "description": "API reference for the PaymentProvider schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/ServiceProviderBasicDetail"
          },
          {
            "type": "object",
            "properties": {
              "payment_provider_slug": {
                "type": "string"
              }
            },
            "required": [
              "payment_provider_slug"
            ]
          }
        ]
      },
      "PayuPaymentInfo": {
        "title": "PayuPaymentInfo",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/PayuPaymentInfo",
          "description": "API reference for the PayuPaymentInfo schema"
        },
        "properties": {
          "key": {
            "type": "string"
          },
          "txnid": {
            "type": "string"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "productinfo": {
            "type": "string"
          },
          "firstname": {
            "type": "string"
          },
          "lastname": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "si": {
            "description": "To be used in case we want to take consent for subscription payment.\nTo create consent for subscription, value of this parameter must be 1.",
            "type": "integer",
            "const": 1
          },
          "si_details": {
            "description": "Send this json object for creating subscription consent.",
            "type": "object",
            "properties": {
              "billingAmount": {
                "description": "Maximum amount that can be charged in recurring payment.",
                "type": "number",
                "format": "double"
              },
              "billingCurrency": {
                "type": "string",
                "const": "INR"
              },
              "billingCycle": {
                "description": "Subscription frequency.",
                "type": "string",
                "const": "MONTHLY"
              },
              "billingInterval": {
                "description": "Billing Interval is closely coupled with the billingCycle field and denotes at what frequency, the subscription plan needs to be executed. For monthly subscriptions, parameter values need to be sent in the request are:\nbillingCycle = MONTHLY\nbillingInterval = 1\nSimilarly, by keeping the following values, customer will be charged once in every 3 days:\nbillingCycle = DAILY\nbillingInterval = 3",
                "type": "integer"
              },
              "paymentStartDate": {
                "description": "subscription start date",
                "type": "string",
                "format": "date"
              },
              "paymentEndDate": {
                "description": "subscription end date",
                "type": "string",
                "format": "date"
              }
            }
          },
          "furl": {
            "description": "return url in case of payment failure.",
            "type": "string"
          },
          "surl": {
            "description": "return url in case of payment success.",
            "type": "string"
          },
          "hash": {
            "type": "string"
          }
        }
      },
      "PayuPaymentMethod": {
        "title": "PayuPaymentMethod",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/PayuPaymentMethod",
          "description": "API reference for the PayuPaymentMethod schema"
        },
        "required": [
          "id",
          "name",
          "type",
          "payment_provider_slug",
          "details"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "payment_instructions": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": "string"
          },
          "payment_provider_slug": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "code",
                "is_subscription_enabled",
                "options",
                "payment_method"
              ],
              "properties": {
                "code": {
                  "type": "string"
                },
                "is_subscription_enabled": {
                  "type": "boolean"
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "bankcode",
                      "icon_url",
                      "is_subscription_enabled",
                      "name",
                      "pg"
                    ],
                    "properties": {
                      "bankcode": {
                        "type": "string"
                      },
                      "icon_url": {
                        "type": "string"
                      },
                      "is_subscription_enabled": {
                        "type": "boolean"
                      },
                      "name": {
                        "type": "string"
                      },
                      "pg": {
                        "type": "string"
                      }
                    }
                  }
                },
                "payment_method": {
                  "type": "string"
                }
              }
            }
          },
          "order_params": {
            "type": "object"
          }
        }
      },
      "PercentageDiscountRule": {
        "title": "PercentageDiscountRule",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/PercentageDiscountRule",
          "description": "API reference for the PercentageDiscountRule schema"
        },
        "required": [
          "discount_type",
          "discount_percent",
          "maximum_discount_amount",
          "products",
          "category_id"
        ],
        "properties": {
          "discount_type": {
            "type": "string",
            "const": "percentage"
          },
          "discount_percent": {
            "type": "number"
          },
          "maximum_discount_amount": {
            "type": [
              "number",
              "null"
            ]
          },
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "product_id",
                "variant_id",
                "minimum_quantity",
                "maximum_quantity",
                "minimum_value",
                "maximum_value"
              ],
              "properties": {
                "product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "minimum_quantity": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "maximum_quantity": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "minimum_value": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "maximum_value": {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              }
            }
          },
          "category_id": {
            "description": "Array of category ids",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "Pincode": {
        "title": "Pincode",
        "description": "Pincode model",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Pincode",
          "description": "API reference for the Pincode schema"
        },
        "properties": {
          "pincode": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "state_name": {
            "type": "string"
          },
          "country_name": {
            "type": "string"
          },
          "country_iso_code": {
            "type": "string"
          }
        }
      },
      "PosManualPaymentMethodCheckout": {
        "title": "POSManualPaymentMethodCheckout",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/POSManualPaymentMethodCheckout",
          "description": "API reference for the POSManualPaymentMethodCheckout schema"
        },
        "required": [
          "payment_provider_slug"
        ],
        "properties": {
          "payment_provider_slug": {
            "description": "The slug of an active manual payment method configured for the store.",
            "type": "string"
          },
          "payment_method_type": {
            "description": "Optional label stored on the created payment request.",
            "type": "string"
          }
        }
      },
      "PosPaymentMethodPayload": {
        "title": "POSPaymentMethodPayload",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/POSPaymentMethodPayload",
          "description": "API reference for the POSPaymentMethodPayload schema"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/JusPayHyperCheckout"
          },
          {
            "$ref": "#/components/schemas/JusPayExpressCheckout"
          },
          {
            "$ref": "#/components/schemas/PosManualPaymentMethodCheckout"
          }
        ]
      },
      "Product": {
        "title": "Product",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Product",
          "description": "API reference for the Product schema"
        },
        "required": [
          "id",
          "sku",
          "name",
          "slug",
          "short_description",
          "product_type",
          "active",
          "stock_available",
          "on_subscription",
          "on_promotion",
          "has_variant",
          "tags",
          "category_ids",
          "categories",
          "reviews_rating_sum",
          "reviews_count",
          "attributes",
          "pricing",
          "variant_options",
          "promotion",
          "images",
          "videos",
          "subscription",
          "variants",
          "bundle_items"
        ],
        "properties": {
          "id": {
            "description": "The ID of the product",
            "type": "string"
          },
          "sku": {
            "description": "Stock Keeping Unit. `null` for products that only have variant-level SKUs.",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "short_description": {
            "type": [
              "string",
              "null"
            ]
          },
          "product_type": {
            "type": "string",
            "enum": [
              "physical",
              "digital",
              "bundle"
            ],
            "examples": [
              "physical"
            ]
          },
          "active": {
            "type": "boolean",
            "readOnly": true
          },
          "stock_available": {
            "description": "Indicates whether the product has stock available",
            "type": "boolean",
            "readOnly": true
          },
          "backorder": {
            "description": "Indicates whether the item is being fulfilled as a backorder. When true, the item is not currently in stock and will ship later once inventory is available. This may result in the order being split into multiple shipments, with delays for the backordered portion.",
            "type": "boolean"
          },
          "on_subscription": {
            "description": "Indicates whether the product has any subscription plans avaialble",
            "type": "boolean",
            "readOnly": true
          },
          "on_promotion": {
            "description": "Indicates whether the product is currently on promotion. When true, the `ProductPromotion` object will contain details of the promotion",
            "type": "boolean",
            "readOnly": true
          },
          "has_variant": {
            "description": "Indicates whether the product has variants",
            "type": "boolean",
            "readOnly": true
          },
          "tags": {
            "description": "Freeform tags for filtering and search. `null` if no tags are assigned.",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          },
          "category_ids": {
            "description": "IDs of categories this product belongs to.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "description": "Expanded category objects for this product.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Category"
            }
          },
          "reviews_rating_sum": {
            "description": "Sum of all review ratings. Divide by `reviews_count` to compute the average rating.",
            "type": "number",
            "format": "double"
          },
          "reviews_count": {
            "description": "Total number of customer reviews.",
            "type": "integer"
          },
          "attributes": {
            "description": "Custom product attributes (e.g., color, size, material) configured in the store.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAttribute"
            }
          },
          "pricing": {
            "$ref": "#/components/schemas/ProductPricing"
          },
          "variant_options": {
            "description": "Available variant option axes (e.g., Size, Color) with their possible values. Present only when `has_variant` is `true`.",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/VariantOption"
            }
          },
          "promotion": {
            "$ref": "#/components/schemas/ProductPromotion"
          },
          "images": {
            "description": "Product images ordered by display priority.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductImage"
            }
          },
          "videos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductVideo"
            }
          },
          "subscription": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductSubscription"
            }
          },
          "variants": {
            "description": "Product variants with individual pricing and inventory. Empty array when `has_variant` is `false`.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Variant"
            }
          },
          "bundle_items": {
            "description": "Component products included in this bundle. Only present when `product_type` is `bundle`.",
            "$ref": "#/components/schemas/ProductBundleItem"
          },
          "inventory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LotBatchDetail"
            }
          }
        },
        "examples": []
      },
      "ProductAttribute": {
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ProductAttribute",
          "description": "API reference for the ProductAttribute schema"
        },
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "color": "#/components/schemas/ColorAttribute",
            "single-select": "#/components/schemas/SingleSelectAttribute",
            "multi-select": "#/components/schemas/MultiSelectAttribute",
            "text": "#/components/schemas/TextAttribute",
            "date": "#/components/schemas/DateAttribute",
            "number": "#/components/schemas/NumberAttribute",
            "boolean": "#/components/schemas/BooleanAttribute"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/ColorAttribute",
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/SingleSelectAttribute",
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/MultiSelectAttribute",
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/TextAttribute",
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/DateAttribute",
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/NumberAttribute",
            "type": "object"
          },
          {
            "$ref": "#/components/schemas/BooleanAttribute",
            "type": "object"
          }
        ]
      },
      "ProductBundleItem": {
        "title": "ProductBundleItem",
        "type": "array",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ProductBundleItem",
          "description": "API reference for the ProductBundleItem schema"
        },
        "items": {
          "allOf": [
            {
              "type": "object",
              "properties": {
                "quantity": {
                  "type": "integer",
                  "format": "int32",
                  "readOnly": true
                },
                "seller_id": {
                  "description": "The ID of the seller that is selling the bundle item. Appears only in marketplace store..",
                  "type": "string"
                },
                "seller_detail": {
                  "description": "The details of the seller that is selling the bundle item. Appears only in marketplace store.",
                  "$ref": "#/components/schemas/SellerInfo"
                }
              },
              "required": [
                "quantity"
              ]
            },
            {
              "$ref": "#/components/schemas/Item"
            }
          ]
        }
      },
      "ProductCategory": {
        "title": "ProductCategory",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ProductCategory",
          "description": "API reference for the ProductCategory schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/Category"
          },
          {
            "type": "object",
            "properties": {
              "child_categories": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "$ref": "#/components/schemas/Category"
                }
              }
            },
            "required": [
              "child_categories"
            ]
          }
        ],
        "examples": []
      },
      "ProductDetail": {
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ProductDetail",
          "description": "API reference for the ProductDetail schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/Product"
          },
          {
            "$ref": "#/components/schemas/AdditionalProductDetails"
          }
        ],
        "examples": []
      },
      "ProductImage": {
        "title": "ProductImage",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ProductImage",
          "description": "API reference for the ProductImage schema"
        },
        "required": [
          "id",
          "title",
          "alternate_text",
          "sort_order",
          "url_tiny",
          "url_thumbnail",
          "url_standard",
          "url_zoom"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "alternate_text": {
            "type": [
              "string",
              "null"
            ]
          },
          "sort_order": {
            "type": "integer"
          },
          "url_tiny": {
            "type": "string"
          },
          "url_thumbnail": {
            "type": "string"
          },
          "url_standard": {
            "type": "string"
          },
          "url_zoom": {
            "type": "string"
          }
        },
        "examples": []
      },
      "ProductPricing": {
        "title": "ProductPricing",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ProductPricing",
          "description": "API reference for the ProductPricing schema"
        },
        "required": [
          "currency",
          "tax_type",
          "tax_rate",
          "price_including_tax",
          "listing_price",
          "selling_price",
          "min_order_quantity",
          "max_order_quantity",
          "incremental_quantity",
          "selling_price_excluding_tax"
        ],
        "properties": {
          "currency": {
            "type": "string"
          },
          "tax_type": {
            "type": "string",
            "default": "GST",
            "const": "GST",
            "examples": [
              "GST"
            ]
          },
          "tax_rate": {
            "type": "number",
            "format": "double"
          },
          "price_including_tax": {
            "type": "boolean",
            "format": "double",
            "examples": [
              false
            ]
          },
          "listing_price": {
            "type": "number",
            "format": "double"
          },
          "selling_price": {
            "type": "number",
            "format": "double"
          },
          "min_order_quantity": {
            "type": "integer",
            "default": 1
          },
          "max_order_quantity": {
            "type": [
              "integer",
              "null"
            ]
          },
          "incremental_quantity": {
            "type": "integer",
            "default": 1
          },
          "selling_price_excluding_tax": {
            "type": "number",
            "format": "double"
          }
        },
        "examples": []
      },
      "ProductPromotion": {
        "title": "ProductPromotion",
        "description": "Active promotion on a product. `null` when `on_promotion` is `false`. The `details` field uses `promotion_type` as discriminator to determine the promotion structure.",
        "type": [
          "object",
          "null"
        ],
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ProductPromotion",
          "description": "API reference for the ProductPromotion schema"
        },
        "required": [
          "id",
          "starts_at",
          "expires_at",
          "details"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "starts_at": {
            "type": "string",
            "format": "date-time"
          },
          "expires_at": {
            "description": "When the promotion ends. `null` for promotions with no expiry.",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "details": {
            "description": "Promotion rules and pricing. Use `promotion_type` to determine the structure: `discount` (percentage/flat off), `fixed-price` (override price), `volume-based` (buy X at Y price), or `free-goods` (buy X get Y free).",
            "discriminator": {
              "propertyName": "promotion_type",
              "mapping": {
                "discount": "#/components/schemas/DiscountBasedPromotion",
                "fixed-price": "#/components/schemas/FixedPricePromotion",
                "volume-based": "#/components/schemas/VolumeBasedPromotion",
                "free-goods": "#/components/schemas/FreeGoodsPromotion"
              }
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/DiscountBasedPromotion"
              },
              {
                "$ref": "#/components/schemas/FixedPricePromotion"
              },
              {
                "$ref": "#/components/schemas/VolumeBasedPromotion"
              },
              {
                "$ref": "#/components/schemas/FreeGoodsPromotion"
              }
            ]
          }
        }
      },
      "ProductReview": {
        "title": "ProductReview",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ProductReview",
          "description": "API reference for the ProductReview schema"
        },
        "properties": {
          "rating": {
            "description": "The rating of the product review. Must be in rang 1-5 (multiple of 0.5)",
            "type": "number",
            "format": "double",
            "maximum": 5,
            "minimum": 1,
            "multipleOf": 0.5,
            "readOnly": true
          },
          "review_text": {
            "description": "The text for the product review.",
            "type": "string",
            "readOnly": true
          },
          "name": {
            "description": "The name of the reviewer.",
            "type": "string",
            "readOnly": true
          },
          "email": {
            "description": "The email of the reviewer. Must be a valid email, or an empty string.",
            "type": "string",
            "format": "email",
            "examples": [
              "mr@bees.com"
            ],
            "readOnly": true
          },
          "status": {
            "description": "Reviews with approved status will be displayed.",
            "type": "string",
            "enum": [
              "approved"
            ],
            "readOnly": true
          },
          "is_featured": {
            "type": "boolean",
            "default": false
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "review_date": {
            "description": "The ISO 8601 date-time for when review was first submitted or last modified by the original submitter.",
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "images": {
            "description": "Product review images ordered by display priority.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductImage"
            }
          },
          "videos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductVideo"
            }
          },
          "created_at": {
            "description": "The ISO 8601 date-time for when review is created.",
            "type": "string",
            "format": "date-time",
            "examples": [
              "2023-05-25T14:15:22Z"
            ],
            "readOnly": true
          },
          "modified_at": {
            "description": "The ISO 8601 date-time for when review was last modified.",
            "type": "string",
            "format": "date-time",
            "examples": [
              "2023-05-25T14:15:22Z"
            ],
            "readOnly": true
          }
        },
        "examples": []
      },
      "ProductShipping": {
        "title": "ProductShipping",
        "type": [
          "object",
          "null"
        ],
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ProductShipping",
          "description": "API reference for the ProductShipping schema"
        },
        "required": [
          "handling_charges_including_tax",
          "handling_charges_excluding_tax",
          "tax_type",
          "tax_rate"
        ],
        "properties": {
          "handling_charges_including_tax": {
            "type": "number"
          },
          "handling_charges_excluding_tax": {
            "type": "number"
          },
          "tax_type": {
            "type": "string"
          },
          "tax_rate": {
            "type": "number"
          }
        }
      },
      "ProductSubscription": {
        "title": "ProductSubscription",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ProductSubscription",
          "description": "API reference for the ProductSubscription schema"
        },
        "required": [
          "id",
          "subscription_plan",
          "subscription_price",
          "billing_interval",
          "billing_frequency",
          "billing_limit",
          "fulfill_separately",
          "order_interval",
          "order_frequency",
          "order_limit",
          "minimum_quantity",
          "billing_trial_days"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "subscription_plan": {
            "type": "string"
          },
          "subscription_price": {
            "type": "number",
            "format": "double"
          },
          "billing_interval": {
            "description": "Billing interval determines the frequency for which the customer is charged for the subscription itself.",
            "type": "integer"
          },
          "billing_frequency": {
            "type": "string",
            "enum": [
              "weekly",
              "monthly",
              "annually"
            ],
            "examples": [
              "monthly"
            ]
          },
          "billing_limit": {
            "description": "Optionally limit the number of times this subscription will invoice the customer.",
            "type": "integer"
          },
          "fulfill_separately": {
            "type": "boolean",
            "default": false
          },
          "order_interval": {
            "description": "order interval defines the frequency of when the subscription sends customers the product",
            "type": "integer"
          },
          "order_frequency": {
            "type": "string",
            "enum": [
              "weekly",
              "monthly",
              "annully"
            ],
            "examples": [
              "monthly"
            ]
          },
          "order_limit": {
            "description": "By default this is set to unlimited, meaning the subscription will fulfill indefinitely. Changing the Limit to 10 would force the subscription to end after the tenth interval had been fulfilled.",
            "type": "integer"
          },
          "minimum_quantity": {
            "description": "The quantity of the plan to which the customer should be subscribed",
            "type": "integer"
          },
          "billing_trial_days": {
            "description": "Use in digital product only for trial period",
            "type": "integer"
          }
        },
        "examples": []
      },
      "ProductVideo": {
        "title": "ProductVideo",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ProductVideo",
          "description": "API reference for the ProductVideo schema"
        },
        "required": [
          "title",
          "alternate_text",
          "sort_order",
          "video_preview_url",
          "video_stream_hls_url",
          "video_stream_dash_url",
          "image_thumbnail_url",
          "video_duration"
        ],
        "properties": {
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "alternate_text": {
            "type": [
              "string",
              "null"
            ]
          },
          "sort_order": {
            "type": "integer"
          },
          "video_preview_url": {
            "type": "string"
          },
          "video_stream_hls_url": {
            "type": "string"
          },
          "video_stream_dash_url": {
            "type": "string"
          },
          "image_thumbnail_url": {
            "type": "string"
          },
          "video_duration": {
            "description": "in seconds",
            "type": "integer"
          }
        },
        "examples": []
      },
      "Promotion": {
        "title": "Promotion",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Promotion",
          "description": "API reference for the Promotion schema"
        },
        "allOf": [
          {
            "oneOf": [
              {
                "$ref": "#/components/schemas/DiscountCouponPromotion"
              },
              {
                "$ref": "#/components/schemas/FreeGoodCouponPromotion"
              },
              {
                "$ref": "#/components/schemas/BuyXGetYCouponPromotion"
              },
              {
                "$ref": "#/components/schemas/VolumeBasedCouponPromotion"
              },
              {
                "$ref": "#/components/schemas/FreeShippingCouponPromotion"
              }
            ]
          },
          {
            "type": "object",
            "required": [
              "promotion_type",
              "can_be_used_with_other_promotion"
            ],
            "properties": {
              "promotion_type": {
                "enum": [
                  "discount",
                  "free-goods",
                  "free-shipping",
                  "buy-x-get-y",
                  "volume-based"
                ]
              },
              "can_be_used_with_other_promotion": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "PromotionType": {
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/PromotionType",
          "description": "API reference for the PromotionType schema"
        },
        "enum": [
          "discount",
          "free-goods",
          "free-shipping",
          "buy-x-get-y",
          "volume-based"
        ]
      },
      "RegisterWithEmailPassword": {
        "title": "RegisterWithEmailPassword",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/RegisterWithEmailPassword",
          "description": "API reference for the RegisterWithEmailPassword schema"
        },
        "required": [
          "email",
          "password",
          "confirm_password"
        ],
        "properties": {
          "email": {
            "type": "string",
            "format": "email"
          },
          "password": {
            "type": "string"
          },
          "confirm_password": {
            "type": "string"
          },
          "phone": {
            "description": "10 digit phone number without country code.",
            "type": [
              "string",
              "null"
            ]
          },
          "country_code": {
            "description": "Two-letter code begin with a plus sign prefix that identifies different countries. By default it will be +91 if not provided.",
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "RegisterWithPhonePassword": {
        "title": "RegisterWithPhonePassword",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/RegisterWithPhonePassword",
          "description": "API reference for the RegisterWithPhonePassword schema"
        },
        "required": [
          "phone",
          "password",
          "confirm_password"
        ],
        "properties": {
          "country_code": {
            "description": "Two-letter code begin with a plus sign prefix that identifies different countries. By default it will be +91 if not provided.",
            "type": [
              "string",
              "null"
            ]
          },
          "phone": {
            "description": "10 digit phone number without country code.",
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "confirm_password": {
            "type": "string"
          },
          "email": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "RevokeSubscription": {
        "title": "RevokeSubscription",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/RevokeSubscription",
          "description": "API reference for the RevokeSubscription schema"
        },
        "required": [
          "command",
          "reason"
        ],
        "properties": {
          "command": {
            "description": "To revoke a subscription.",
            "type": "string",
            "const": "revoke"
          },
          "reason": {
            "description": "Provide reason for revoking subscription.",
            "type": "string"
          }
        },
        "x-tags": [
          "Subscriptions"
        ]
      },
      "SavedPaymentMethod": {
        "title": "SavedPaymentMethod",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SavedPaymentMethod",
          "description": "API reference for the SavedPaymentMethod schema"
        },
        "properties": {
          "upi_collect": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "count",
                "last_used",
                "vpa"
              ],
              "properties": {
                "count": {
                  "type": "integer"
                },
                "last_used": {
                  "type": "string"
                },
                "vpa": {
                  "type": "string"
                }
              }
            }
          },
          "wallet": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "wallet",
                "gateway_reference_id",
                "last_refreshed"
              ],
              "properties": {
                "linked": {
                  "type": "string"
                },
                "id": {
                  "type": "string"
                },
                "metadata": {
                  "type": "object",
                  "properties": {
                    "mobile_number": {
                      "type": "string"
                    },
                    "device_id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "mobile_number",
                    "device_id "
                  ]
                },
                "wallet": {
                  "type": "string"
                },
                "gateway_reference_id": {
                  "type": "string"
                },
                "last_refreshed": {
                  "type": "string"
                },
                "sub_details": {
                  "type": "object",
                  "properties": {
                    "last_used": {
                      "type": "string"
                    },
                    "current_balance": {
                      "type": "string"
                    },
                    "last_refreshed": {
                      "type": "string"
                    },
                    "payment_method": {
                      "type": "string"
                    },
                    "payment_method_type": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "last_used",
                    "current_balance",
                    "last_refreshed",
                    "payment_method",
                    "payment_method_type"
                  ]
                }
              }
            }
          },
          "card": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "card_sub_type",
                "extended_card_type",
                "provider_category",
                "vault_provider",
                "card_type",
                "card_token",
                "card_exp_month",
                "expired",
                "tokenize_support",
                "card_exp_year",
                "name_on_card",
                "country_code",
                "card_number"
              ],
              "properties": {
                "card_sub_type": {
                  "type": "string"
                },
                "extended_card_type": {
                  "type": "string"
                },
                "card_global_fingerprint": {
                  "type": "string"
                },
                "nickname": {
                  "type": "string"
                },
                "provider_category": {
                  "type": "string"
                },
                "vault_provider": {
                  "type": "string"
                },
                "card_reference": {
                  "type": "string"
                },
                "card_type": {
                  "type": "string"
                },
                "metadata": {
                  "type": "object",
                  "properties": {
                    "origin_merchant_id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "origin_merchant_id"
                  ]
                },
                "card_issuer": {
                  "type": "string"
                },
                "card_token": {
                  "type": "string"
                },
                "card_exp_month": {
                  "type": "string"
                },
                "provider": {
                  "type": "string"
                },
                "card_sub_type_category": {
                  "type": "string"
                },
                "expired": {
                  "type": "boolean"
                },
                "card_fingerprint": {
                  "type": "string"
                },
                "tokenize_support": {
                  "type": "boolean"
                },
                "juspay_bank_code": {
                  "type": "string"
                },
                "card_exp_year": {
                  "type": "string"
                },
                "name_on_card": {
                  "type": "string"
                },
                "country_code": {
                  "type": "string"
                },
                "card_number": {
                  "type": "string"
                },
                "card_isin": {
                  "type": "string"
                },
                "card_brand": {
                  "type": "string"
                },
                "card_issuer_country": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "SearchProduct": {
        "title": "SearchProduct",
        "description": "Payload for searching products.",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SearchProduct",
          "description": "API reference for the SearchProduct schema"
        },
        "required": [
          "query"
        ],
        "properties": {
          "query": {
            "description": "String for searching products, considers the first ten words of any given search query.",
            "type": "string"
          },
          "page": {
            "description": "To request a specific page of results.",
            "type": "integer",
            "default": 1
          },
          "limit": {
            "description": "Maximum number of records returned for a page.",
            "type": "integer",
            "default": 25
          },
          "facets": {
            "description": "provide list of attributes for specific facets or * for all facets. All attributes supported in the filter parameter are also supported here.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filter": {
            "description": "Filter expression(s) to narrow results. Omit for no filtering.\n\n**Syntax:** `attribute OPERATOR value`\n\n**Operators:**\n\n| Operator | Description | Example |\n|---|---|---|\n| `=` | Equal to | `product_type = physical` |\n| `!=` | Not equal to | `product_type != bundle` |\n| `>`, `>=`, `<`, `<=` | Comparison | `rating > 4` |\n| `TO` | Inclusive range (`>=` AND `<=`) | `pricing.selling_price 100 TO 500` |\n| `IN [...]` | Matches any value in the list | `product_type IN [physical,bundle]` |\n| `NOT IN [...]` | Excludes all values in the list | `product_type NOT IN [physical,bundle]` |\n| `EXISTS` | Attribute is present (even if `null` or empty) | `tags EXISTS` |\n| `NOT EXISTS` | Attribute is absent | `tags NOT EXISTS` |\n| `IS NULL` | Value is `null` | `variant_id IS NULL` |\n| `IS NOT NULL` | Value is not `null` | `variant_id IS NOT NULL` |\n| `IS EMPTY` | Value is `\"\"`, `[]`, or `{}` | `tags IS EMPTY` |\n| `IS NOT EMPTY` | Value is not empty | `tags IS NOT EMPTY` |\n| `AND` | Both conditions must match | `rating > 4 AND product_type = physical` |\n| `OR` | Either condition must match | `product_type = physical OR product_type = bundle` |\n| `NOT` | Negates a condition | `NOT product_type = bundle` |\n\n**Important rules:**\n- Operators are **case-sensitive** — must be uppercase (`AND`, not `and`).\n- String value comparison is **case-insensitive** — `product_type = Physical` matches `physical`.\n- Operator precedence: `NOT` > `AND` > `OR`. Use parentheses to override.\n- String values containing whitespace must be wrapped in single quotes.\n- `IN` takes comma-separated values in square brackets.\n- Maximum array nesting depth is **2 levels**.\n\n**Supported attributes:** `product_type`, `categories.name`, `attributes.key`, `pricing.listing_price`, `pricing.selling_price`, `pricing.tax_rate`, `product_id`, `variant_id`, `product_name`, `variant_name`, `tags`, `sku`, `stock_available`, `rating`\n\n**Combining conditions:**\n- **String:** Use `AND`/`OR` operators inline — `\"rating > 4 AND product_type = physical\"`\n- **Array of strings:** Conditions are combined with AND — `[\"rating > 4\", \"product_type = physical\"]`\n- **Nested arrays:** Inner arrays express OR, outer array expresses AND — `[\"product_type = physical\", [\"product_type = bundle\", \"rating > 4\"]]`",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ]
                }
              }
            ]
          },
          "sort": {
            "description": "Sort results by attributes. Use `asc` for ascending order and `desc` for descending order.",
            "type": "array",
            "items": {
              "type": "string"
            },
            "examples": [
              "product_type:desc",
              "product_name:asc"
            ]
          }
        }
      },
      "SellerDetail": {
        "title": "SellerDetail",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SellerDetail",
          "description": "API reference for the SellerDetail schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/SellerInfo"
          },
          {
            "type": "object",
            "properties": {
              "description": {
                "type": "string"
              }
            }
          }
        ]
      },
      "SellerInfo": {
        "title": "SellerInfo",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SellerInfo",
          "description": "API reference for the SellerInfo schema"
        },
        "required": [
          "id",
          "trade_name",
          "legal_name",
          "business_type",
          "tax_identification_number"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "trade_name": {
            "type": "string"
          },
          "legal_name": {
            "type": "string"
          },
          "business_type": {
            "type": "string"
          },
          "tax_identification_number": {
            "type": "string"
          }
        },
        "examples": []
      },
      "SellerReview": {
        "title": "SellerReview",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SellerReview",
          "description": "API reference for the SellerReview schema"
        },
        "properties": {
          "rating": {
            "type": "number"
          },
          "review_text": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "is_featured": {
            "type": "boolean"
          },
          "review_date": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "SellerReviewStats": {
        "title": "SellerReviewStats",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SellerReviewStats",
          "description": "API reference for the SellerReviewStats schema"
        },
        "properties": {
          "rating_sum": {
            "type": "number"
          },
          "count": {
            "type": "integer"
          }
        }
      },
      "SendOtpWithEmail": {
        "title": "SendOtpWithEmail",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SendOtpWithEmail",
          "description": "API reference for the SendOtpWithEmail schema"
        },
        "required": [
          "email"
        ],
        "properties": {
          "email": {
            "type": "string"
          }
        }
      },
      "SendOtpWithPhone": {
        "title": "SendOtpWithPhone",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SendOtpWithPhone",
          "description": "API reference for the SendOtpWithPhone schema"
        },
        "required": [
          "phone"
        ],
        "properties": {
          "phone": {
            "description": "10 digit phone number without country code.",
            "type": "string"
          },
          "country_code": {
            "description": "Two-letter code with plus sign prefix (e.g. +91). Defaults to +91 if omitted. Use with `phone` only.",
            "type": "string"
          }
        }
      },
      "Seo": {
        "title": "Seo",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Seo",
          "description": "API reference for the Seo schema"
        },
        "required": [
          "title",
          "description",
          "keywords"
        ],
        "properties": {
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "keywords": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ServiceProviderBasicDetail": {
        "title": "ServiceProviderBasicDetail",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ServiceProviderBasicDetail",
          "description": "API reference for the ServiceProviderBasicDetail schema"
        },
        "required": [
          "id",
          "name",
          "short_description",
          "features",
          "logo_dark",
          "logo_light"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "short_description": {
            "type": "string"
          },
          "features": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "logo_dark": {
            "description": "The logo url of the service provider in dark mode.",
            "type": [
              "string",
              "null"
            ]
          },
          "logo_light": {
            "description": "The logo url of the service provider in light mode.",
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "ShipmentItem": {
        "title": "ShipmentItem",
        "description": "Shipment item model",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ShipmentItem",
          "description": "API reference for the ShipmentItem schema"
        },
        "properties": {
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "product_image_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "variant_id": {
            "type": "string"
          },
          "variant_name": {
            "type": "string"
          },
          "sku": {
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "free_quantity": {
            "type": "integer"
          },
          "is_free_item": {
            "type": "boolean"
          }
        }
      },
      "ShipmentStatus": {
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/ShipmentStatus",
          "description": "API reference for the ShipmentStatus schema"
        },
        "enum": [
          "unscheduled",
          "schedule_requested",
          "scheduled",
          "packed",
          "shipped",
          "in_transit",
          "out_for_delivery",
          "delivery_attempted",
          "undelivered",
          "return_to_origin",
          "delivered",
          "cancelled",
          "lost"
        ]
      },
      "SingleSelectAttribute": {
        "title": "SingleSelectAttribute",
        "description": "Attribute for single-select values",
        "type": "object",
        "readOnly": true,
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SingleSelectAttribute",
          "description": "API reference for the SingleSelectAttribute schema"
        },
        "required": [
          "id",
          "name",
          "key",
          "type",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "key": {
            "description": "A lookup safe version of the name that is lowercased and spaces are replaced with underscores. For instance, if name is `Product Type`, key will be `product_type`",
            "type": "string"
          },
          "type": {
            "type": "string",
            "example": "single-select"
          },
          "value": {
            "description": "For single-select attributes",
            "type": "string"
          }
        }
      },
      "SingleSelectOption": {
        "title": "SingleSelectOption",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SingleSelectOption",
          "description": "API reference for the SingleSelectOption schema"
        },
        "required": [
          "name",
          "type",
          "value"
        ],
        "properties": {
          "name": {
            "description": "The name of the associated option.",
            "type": "string"
          },
          "type": {
            "description": "The type of the associated option.",
            "const": "single-select"
          },
          "value": {
            "description": "The value of the associated option",
            "type": "string"
          }
        }
      },
      "StoreConfig": {
        "title": "StoreConfig",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/StoreConfig",
          "description": "API reference for the StoreConfig schema"
        },
        "required": [
          "is_kyc_enabled",
          "is_customer_group_enabled",
          "brand",
          "currency",
          "customer_groups",
          "kyc_documents",
          "analytics_providers",
          "payment_providers",
          "terms_of_service",
          "refund_policy"
        ],
        "properties": {
          "is_kyc_enabled": {
            "type": "boolean",
            "default": false
          },
          "is_customer_group_enabled": {
            "type": "boolean",
            "default": false
          },
          "brand": {
            "$ref": "#/components/schemas/Brand"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "customer_groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerGroup"
            },
            "readOnly": true
          },
          "kyc_documents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KycDocumentConfig"
            },
            "readOnly": true
          },
          "analytics_providers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnalyticsProvider"
            },
            "readOnly": true
          },
          "payment_providers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentProvider"
            },
            "readOnly": true
          },
          "terms_of_service": {
            "$ref": "#/components/schemas/StoreTemplate"
          },
          "refund_policy": {
            "$ref": "#/components/schemas/StoreTemplate"
          }
        }
      },
      "StoreTemplate": {
        "title": "StoreTemplate",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/StoreTemplate",
          "description": "API reference for the StoreTemplate schema"
        },
        "required": [
          "id",
          "name",
          "content_title",
          "content_type",
          "content"
        ],
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true
          },
          "name": {
            "type": "string"
          },
          "content_title": {
            "description": "to be used in email subject or notification heading if provided.",
            "type": [
              "string",
              "null"
            ]
          },
          "content_type": {
            "enum": [
              "html",
              "markdown",
              "plaintext"
            ]
          },
          "content": {
            "type": "string"
          }
        },
        "x-tags": [
          "Store"
        ]
      },
      "Subscription": {
        "title": "Subscription",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Subscription",
          "description": "API reference for the Subscription schema"
        },
        "required": [
          "id",
          "plan_id",
          "plan_name",
          "price",
          "status",
          "start_date",
          "end_date",
          "trial_days",
          "trial_start_date",
          "trial_end_date",
          "next_billing_date",
          "last_payment_date",
          "pause_start_date",
          "pause_end_date",
          "billing_frequency",
          "billing_interval",
          "billing_limit",
          "shipping_frequency",
          "shipping_interval",
          "shipping_limit",
          "coupon_id",
          "coupon_code",
          "coupon_discount_percent",
          "coupon_discount_amount",
          "coupon_redemption_limit",
          "is_prepaid",
          "usage_based_billing",
          "usage_based_tiers",
          "grace_period_days",
          "is_cancellation_allowed",
          "days_until_cancellation_allowed",
          "currency",
          "metadata",
          "created_at",
          "modified_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "readOnly": true
          },
          "plan_id": {
            "type": "string",
            "readOnly": true
          },
          "plan_name": {
            "type": "string",
            "readOnly": true
          },
          "price": {
            "description": "The subscription price is the amount a customer is required to pay over a specified period (e.g., monthly, annually). This price may vary based on the plan selected or based on usage of services.",
            "type": "number",
            "format": "double"
          },
          "status": {
            "enum": [
              "created",
              "active",
              "paused",
              "revoked"
            ],
            "readOnly": true
          },
          "start_date": {
            "type": "string",
            "format": "date"
          },
          "end_date": {
            "description": "if specified, subscrition will be revoked on this date.",
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "trial_days": {
            "description": "If specified, payment will be charged after trial days completed.",
            "type": "integer",
            "default": 0
          },
          "trial_start_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date",
            "readOnly": true
          },
          "trial_end_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date",
            "readOnly": true
          },
          "next_billing_date": {
            "type": "string",
            "format": "date",
            "readOnly": true
          },
          "last_payment_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "readOnly": true
          },
          "pause_start_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "pause_end_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "billing_frequency": {
            "enum": [
              "monthly"
            ]
          },
          "billing_interval": {
            "description": "Frequency unit multiplier. For example, `1` with `monthly` means every month; `3` with `weekly` means in every 3 weeks.",
            "type": "integer",
            "default": 1
          },
          "billing_limit": {
            "type": [
              "integer",
              "null"
            ]
          },
          "shipping_frequency": {
            "enum": [
              "monthly"
            ]
          },
          "shipping_interval": {
            "description": "Frequency unit multiplier. For example, `1` with `monthly` means every month; `3` with `weekly` means in every 3 weeks.",
            "type": "integer",
            "default": 1
          },
          "shipping_limit": {
            "type": [
              "integer",
              "null"
            ]
          },
          "coupon_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "coupon_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "coupon_discount_percent": {
            "type": "number",
            "default": 0
          },
          "coupon_discount_amount": {
            "type": "number",
            "default": 0
          },
          "coupon_redemption_limit": {
            "description": "Indicates how many times a coupon can be redeemed within the subscription.",
            "type": [
              "integer",
              "null"
            ],
            "default": 0
          },
          "is_prepaid": {
            "description": "Indicates whether the subscription is paid in advance. When set to true, the subscription requires the customer to pay for the entire billing period upfront. When set to false, the subscription may operate on a pay-as-you-go or post-paid model, where charges are billed after the service is provided.",
            "type": "boolean",
            "default": false
          },
          "usage_based_billing": {
            "description": "Refers to a pricing model where customers are charged based on their actual usage of a service. Usage based billing works for digital products.",
            "type": "boolean"
          },
          "usage_based_tiers": {
            "description": "Refers to a pricing structure where customers are charged based on their usage, but the cost per unit of usage decreases or changes as they move into higher usage levels.",
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "up_to",
                "price_per_unit"
              ],
              "properties": {
                "up_to": {
                  "type": "integer"
                },
                "price_per_unit": {
                  "type": "number",
                  "format": "double"
                }
              }
            }
          },
          "grace_period_days": {
            "description": "The number of days after a failed payment to retry before canceling.",
            "type": "integer",
            "default": 0
          },
          "is_cancellation_allowed": {
            "description": "Indcates whether the next billing cancellation is allowed or not.",
            "type": "boolean",
            "default": true
          },
          "days_until_cancellation_allowed": {
            "description": "Specifies the number of days the customer has to cancel before the next billing.",
            "type": "integer",
            "default": 3
          },
          "currency": {
            "description": "Details about the currency being used, including `name`, `code`, and `symbol`.",
            "$ref": "#/components/schemas/Currency"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "x-tags": [
          "Subscriptions"
        ]
      },
      "SubscriptionBehaviour": {
        "title": "SubscriptionBehaviour",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SubscriptionBehaviour",
          "description": "API reference for the SubscriptionBehaviour schema"
        },
        "properties": {
          "is_prepaid": {
            "description": "Refers to a pricing model where customers are charged based on their actual usage of a service. Usage based billing works for digital products.",
            "type": "boolean",
            "default": false
          },
          "usage_based_billing": {
            "description": "Refers to a pricing model where customers are charged based on their actual usage of a service. Usage based billing works for digital products.",
            "type": "boolean",
            "default": false
          },
          "usage_based_tiers": {
            "description": "Refers to a pricing structure where customers are charged based on their usage, but the cost per unit of usage decreases or changes as they move into higher usage levels.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "up_to": {
                  "type": "integer"
                },
                "price_per_unit": {
                  "type": "number",
                  "format": "double"
                }
              }
            }
          },
          "grace_period_days": {
            "description": "The number of days after a failed payment to retry before canceling.",
            "type": "integer",
            "default": 0
          },
          "is_cancellation_allowed": {
            "description": "Indcates whether the next billing cancellation is allowed or not.",
            "type": "boolean",
            "default": true
          },
          "days_until_cancellation_allowed": {
            "description": "Specifies the number of days the customer has to cancel before the next billing.",
            "type": "integer",
            "default": 3
          }
        },
        "x-tags": [
          "Subscriptions"
        ]
      },
      "SubscriptionDetail": {
        "title": "SubscriptionDetail",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SubscriptionDetail",
          "description": "API reference for the SubscriptionDetail schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/Subscription"
          },
          {
            "type": "object",
            "properties": {
              "invoice_items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SubscriptionInvoiceItem"
                }
              },
              "billing_address": {
                "$ref": "#/components/schemas/CustomerAddress"
              },
              "shipping_address": {
                "$ref": "#/components/schemas/CustomerAddress"
              }
            }
          }
        ],
        "x-tags": [
          "Subscriptions"
        ]
      },
      "SubscriptionInvoiceItem": {
        "title": "SubscriptionInvoiceItem",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/SubscriptionInvoiceItem",
          "description": "API reference for the SubscriptionInvoiceItem schema"
        },
        "required": [
          "product_id",
          "variant_id",
          "product_name",
          "variant_name",
          "product_image_url",
          "sku",
          "quantity",
          "listing_price",
          "selling_price",
          "tax_type",
          "tax_rate",
          "price_including_tax",
          "selling_price_excluding_tax"
        ],
        "properties": {
          "product_id": {
            "type": "string"
          },
          "variant_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "product_name": {
            "type": "string",
            "readOnly": true
          },
          "variant_name": {
            "type": "string",
            "readOnly": true
          },
          "product_image_url": {
            "type": "string",
            "readOnly": true
          },
          "sku": {
            "type": "string",
            "readOnly": true
          },
          "quantity": {
            "type": "integer"
          },
          "listing_price": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "selling_price": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "tax_type": {
            "type": "string",
            "const": "GST",
            "readOnly": true
          },
          "tax_rate": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "price_including_tax": {
            "type": "boolean",
            "readOnly": true
          },
          "selling_price_excluding_tax": {
            "type": "number",
            "format": "double",
            "readOnly": true
          }
        },
        "x-tags": [
          "Subscriptions"
        ]
      },
      "TextAttribute": {
        "title": "TextAttribute",
        "description": "Attribute for text values",
        "type": "object",
        "readOnly": true,
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/TextAttribute",
          "description": "API reference for the TextAttribute schema"
        },
        "required": [
          "id",
          "name",
          "key",
          "type",
          "value"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "key": {
            "description": "A lookup safe version of the name that is lowercased and spaces are replaced with underscores. For instance, if name is `Product Type`, key will be `product_type`",
            "type": "string"
          },
          "type": {
            "type": "string",
            "example": "text"
          },
          "value": {
            "description": "For text attributes",
            "type": "string"
          }
        }
      },
      "UnserviceableItem": {
        "title": "UnserviceableItem",
        "description": "Unserviceable item model",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/UnserviceableItem",
          "description": "API reference for the UnserviceableItem schema"
        },
        "properties": {
          "product_id": {
            "type": "string"
          },
          "product_name": {
            "type": "string"
          },
          "product_image_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "variant_id": {
            "type": "string"
          },
          "variant_name": {
            "type": "string"
          },
          "unserviceable_quantity": {
            "type": "integer"
          },
          "max_available_quantity": {
            "type": "integer"
          }
        }
      },
      "UpdateBankAccount": {
        "title": "UpdateBankAccount",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/UpdateBankAccount",
          "description": "API reference for the UpdateBankAccount schema"
        },
        "discriminator": {
          "propertyName": "account_type",
          "mapping": {
            "outbound": "#/components/schemas/UpdateOutboundBankAccount",
            "inbound": "#/components/schemas/UpdateInboundBankAccount"
          }
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/UpdateOutboundBankAccount"
          },
          {
            "$ref": "#/components/schemas/UpdateInboundBankAccount"
          }
        ],
        "x-tags": [
          "Customers"
        ]
      },
      "UpdateCartItem": {
        "title": "UpdateCartItem",
        "description": "Schema for updating a cart item, including adding, removing, or adjusting the quantity of a product or variant.",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/UpdateCartItem",
          "description": "API reference for the UpdateCartItem schema"
        },
        "required": [
          "product_id",
          "variant_id",
          "quantity"
        ],
        "properties": {
          "product_id": {
            "description": "The ID of the product to update in the cart.",
            "type": "string",
            "examples": [
              "01H9XYZ12345ABCDE"
            ]
          },
          "variant_id": {
            "description": "The ID of the product variant, or null if the product has no variants.",
            "type": [
              "string",
              "null"
            ],
            "examples": [
              null
            ]
          },
          "quantity": {
            "description": "The quantity of the product to add to or update in the cart. Use `0` to remove the item from the cart.",
            "type": "integer",
            "examples": [
              1
            ],
            "minimum": 0
          }
        }
      },
      "UpdateDigitalProductSubscription": {
        "title": "UpdateDigitalProductSubscription",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/UpdateDigitalProductSubscription",
          "description": "API reference for the UpdateDigitalProductSubscription schema"
        },
        "allOf": [
          {
            "type": "object",
            "required": [
              "command"
            ],
            "properties": {
              "command": {
                "type": "string",
                "const": "update"
              },
              "billing_frequency": {
                "enum": [
                  "monthly"
                ]
              },
              "billing_interval": {
                "type": "integer",
                "default": 1
              },
              "billing_limit": {
                "description": "null means there is no limit on number of invoices generated. If specified, then subscription will be revoked automatically after billing limit is reached.",
                "type": [
                  "integer",
                  "null"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/SubscriptionBehaviour"
          },
          {
            "type": "object",
            "properties": {
              "invoice_items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SubscriptionInvoiceItem"
                }
              }
            }
          }
        ],
        "x-tags": [
          "Subscriptions"
        ]
      },
      "UpdateDocument": {
        "title": "UpdateDocument",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/UpdateDocument",
          "description": "API reference for the UpdateDocument schema"
        },
        "required": [
          "document_number",
          "kyc_document_id",
          "modified_reason"
        ],
        "properties": {
          "document_number": {
            "type": "string"
          },
          "kyc_document_id": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "file": {
            "description": "file attachment will be required or optional as per store setting.",
            "type": "string",
            "format": "binary"
          },
          "modified_reason": {
            "type": "string"
          }
        },
        "x-tags": [
          "KYC"
        ]
      },
      "UpdateInboundBankAccount": {
        "title": "UpdateInboundBankAccount",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/UpdateInboundBankAccount",
          "description": "API reference for the UpdateInboundBankAccount schema"
        },
        "properties": {
          "account_type": {
            "const": "inbound"
          },
          "is_default": {
            "description": "default account for inbound bank accounts.",
            "type": "boolean"
          }
        },
        "x-tags": [
          "Customers"
        ]
      },
      "UpdateOutboundBankAccount": {
        "title": "UpdateOutboundBankAccount",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/UpdateOutboundBankAccount",
          "description": "API reference for the UpdateOutboundBankAccount schema"
        },
        "properties": {
          "account_type": {
            "const": "outbound"
          },
          "account_name": {
            "type": "string"
          },
          "account_number": {
            "type": "string"
          },
          "ifsc_code": {
            "type": "string"
          },
          "bank_name": {
            "type": "string"
          },
          "is_default": {
            "description": "default account for outbound bank accounts.",
            "type": "boolean"
          }
        },
        "x-tags": [
          "Customers"
        ]
      },
      "UpdatePhysicalProductSubscription": {
        "title": "UpdatePhysicalProductSubscription",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/UpdatePhysicalProductSubscription",
          "description": "API reference for the UpdatePhysicalProductSubscription schema"
        },
        "allOf": [
          {
            "type": "object",
            "required": [
              "command"
            ],
            "properties": {
              "command": {
                "type": "string",
                "const": "update"
              },
              "billing_frequency": {
                "enum": [
                  "monthly"
                ]
              },
              "billing_interval": {
                "type": "integer",
                "default": 1
              },
              "billing_limit": {
                "description": "null means there is no limit on number of invoices generated. If specified, then subscription will be revoked automatically after billing limit is reached.",
                "type": [
                  "integer",
                  "null"
                ]
              },
              "shipping_frequency": {
                "enum": [
                  "monthly"
                ]
              },
              "shipping_interval": {
                "type": "integer",
                "default": 1
              },
              "shipping_limit": {
                "description": "null means there is no limit on number of deliveries completed. If specified, then subscription will be revoked automatically after shipping limit is reached.",
                "type": [
                  "integer",
                  "null"
                ]
              }
            }
          },
          {
            "$ref": "#/components/schemas/SubscriptionBehaviour"
          },
          {
            "type": "object",
            "properties": {
              "invoice_items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SubscriptionInvoiceItem"
                }
              }
            }
          }
        ],
        "x-tags": [
          "Subscriptions"
        ]
      },
      "UpiPayment": {
        "title": "UpiPayment",
        "description": "UPI Payment",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/UpiPayment",
          "description": "API reference for the UpiPayment schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentInfo"
          },
          {
            "type": "object",
            "properties": {
              "upi_id": {
                "type": "string"
              }
            }
          }
        ]
      },
      "UploadOrderReturnAttachments": {
        "title": "UploadOrderReturnAttachments",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/UploadOrderReturnAttachments",
          "description": "API reference for the UploadOrderReturnAttachments schema"
        },
        "properties": {
          "images": {
            "type": "array",
            "items": {
              "type": "string",
              "contentMediaType": "application/octet-stream"
            }
          },
          "videos": {
            "type": "array",
            "items": {
              "type": "string",
              "contentMediaType": "application/octet-stream"
            }
          }
        }
      },
      "User": {
        "title": "User",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/User",
          "description": "API reference for the User schema"
        },
        "required": [
          "id",
          "first_name",
          "last_name",
          "email",
          "is_email_verified",
          "phone",
          "country_code",
          "is_phone_verified",
          "profile_image_url",
          "is_anonymous",
          "is_logged_in",
          "login_methods",
          "notification_preferences",
          "customer_group",
          "customer_id",
          "business"
        ],
        "properties": {
          "id": {
            "description": "The unique ID of the user.",
            "type": "string",
            "readOnly": true
          },
          "first_name": {
            "description": "User’s first name.",
            "type": [
              "string",
              "null"
            ]
          },
          "last_name": {
            "description": "User’s last name.",
            "type": [
              "string",
              "null"
            ]
          },
          "email": {
            "description": "User’s email I’d.",
            "type": [
              "string",
              "null"
            ],
            "format": "email"
          },
          "is_email_verified": {
            "description": "Boolean indicating whether the email is verified.",
            "type": "boolean",
            "readOnly": true
          },
          "phone": {
            "description": "10 digit phone number without country code.",
            "type": [
              "string",
              "null"
            ]
          },
          "country_code": {
            "description": "Two-letter code begin with a plus sign prefix that identifies different countries. By default it will be +91 if not provided.\nUse this key along with phone. Not necessary for email.",
            "type": [
              "string",
              "null"
            ]
          },
          "is_phone_verified": {
            "description": "Boolean indicating whether the phone is verified.",
            "type": "boolean",
            "readOnly": true
          },
          "profile_image_url": {
            "description": "URL to the user's profile image.",
            "type": [
              "string",
              "null"
            ],
            "readOnly": true
          },
          "is_anonymous": {
            "description": "Indicates whether the user is anonymous.",
            "type": "boolean",
            "readOnly": true
          },
          "is_logged_in": {
            "description": "Indicates whether the user is currently logged in.",
            "type": "boolean",
            "readOnly": true
          },
          "login_methods": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "email",
                "phone",
                "whatsapp",
                "password"
              ]
            }
          },
          "notification_preferences": {
            "description": "User's notification preferences are categorized by transactional, promotional, and newsletter types.",
            "$ref": "#/components/schemas/NotificationPreferences"
          },
          "customer_group_id": {
            "description": "User's customer group ID.",
            "type": [
              "string",
              "null"
            ],
            "writeOnly": true
          },
          "customer_id": {
            "description": "The unique ID of the customer. Can be used to identify the customer in the system. It can be different from the user ID if there are multiple users created for the same customer.",
            "type": "string",
            "readOnly": true
          },
          "customer_group": {
            "description": "User's customer group.",
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CustomerGroup"
              }
            ],
            "readOnly": true
          },
          "business": {
            "description": "User's business information.",
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Business"
              }
            ]
          },
          "created_at": {
            "description": "Timestamps indicate when the user's account was created.",
            "type": "string",
            "format": "datetime",
            "readOnly": true
          },
          "modified_at": {
            "description": "Timestamps indicating when the user account was last modified.",
            "type": "string",
            "format": "datetime",
            "readOnly": true
          }
        }
      },
      "Variant": {
        "title": "ProductVariant",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/Variant",
          "description": "API reference for the Variant schema"
        },
        "required": [
          "id",
          "product_id",
          "sku",
          "slug",
          "name",
          "product_name",
          "short_description",
          "active",
          "stock_available",
          "on_promotion",
          "on_subscription",
          "is_default",
          "associated_options",
          "images",
          "videos",
          "pricing",
          "subscription",
          "promotion"
        ],
        "properties": {
          "id": {
            "description": "variant id",
            "type": "string"
          },
          "product_id": {
            "description": "product id",
            "type": "string"
          },
          "sku": {
            "description": "variant sku",
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "description": "variant name",
            "type": "string"
          },
          "product_name": {
            "description": "variant name",
            "type": "string"
          },
          "short_description": {
            "type": [
              "string",
              "null"
            ]
          },
          "active": {
            "type": "boolean",
            "readOnly": true
          },
          "stock_available": {
            "type": "boolean",
            "readOnly": true
          },
          "backorder": {
            "description": "Indicates whether the item is being fulfilled as a backorder. When true, the item is not currently in stock and will ship later once inventory is available. This may result in the order being split into multiple shipments, with delays for the backordered portion.",
            "type": "boolean"
          },
          "on_promotion": {
            "type": "boolean",
            "readOnly": true
          },
          "on_subscription": {
            "type": "boolean",
            "readOnly": true
          },
          "is_default": {
            "description": "Indicates whether a variant is marked as the default variant for a product",
            "type": "boolean",
            "readOnly": true
          },
          "associated_options": {
            "description": "This object contains multiple dynamic keys. Each key is a string derived from the attribute key, and the value is an object of the type `AssociatedOption`.",
            "$ref": "#/components/schemas/AssociatedOption"
          },
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductImage"
            }
          },
          "videos": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductVideo"
            }
          },
          "pricing": {
            "$ref": "#/components/schemas/ProductPricing"
          },
          "subscription": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductSubscription"
            }
          },
          "promotion": {
            "$ref": "#/components/schemas/ProductPromotion"
          },
          "inventory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LotBatchDetail"
            }
          }
        },
        "examples": []
      },
      "VariantDetail": {
        "title": "VariantDetail",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/VariantDetail",
          "description": "API reference for the VariantDetail schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/Variant"
          },
          {
            "type": "object",
            "required": [
              "product_type",
              "description",
              "category_ids",
              "tags",
              "reviews_rating_sum",
              "reviews_count",
              "hsn_code",
              "variant_options",
              "product_attributes",
              "variant_attributes",
              "shipping",
              "seo",
              "metadata"
            ],
            "properties": {
              "product_type": {
                "type": "string",
                "enum": [
                  "physical",
                  "digital",
                  "bundle"
                ],
                "examples": [
                  "physical"
                ]
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "category_ids": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "readOnly": true
              },
              "tags": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string"
                },
                "readOnly": true
              },
              "reviews_rating_sum": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "reviews_count": {
                "type": "integer"
              },
              "hsn_code": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "variant_options": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VariantOption"
                }
              },
              "product_attributes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductAttribute"
                }
              },
              "variant_attributes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProductAttribute"
                }
              },
              "shipping": {
                "$ref": "#/components/schemas/ProductShipping"
              },
              "seo": {
                "$ref": "#/components/schemas/Seo"
              },
              "metadata": {
                "type": [
                  "object",
                  "null"
                ],
                "additionalProperties": {
                  "type": "string"
                }
              }
            }
          }
        ],
        "examples": []
      },
      "VariantOption": {
        "title": "VariantOption",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/VariantOption",
          "description": "API reference for the VariantOption schema"
        },
        "required": [
          "name",
          "key",
          "type",
          "value"
        ],
        "properties": {
          "name": {
            "description": "The name of the associated option.",
            "type": "string"
          },
          "key": {
            "description": "A lookup safe version of the name that is lowercased and spaces are replaced with underscores. For instance, if name is `Product Type`, key will be `product_type`",
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "single-select",
              "color"
            ]
          },
          "value": {
            "description": "When option_type is color, value will contain an array of objects like:\n```json\n[\n    {\n    \"name\": \"first_color\",\n    \"hexcode\": \"#000000\"\n    },\n    {\n    \"name\": \"second_color\",\n    \"hexcode\": \"#FFFFFF\"\n    }\n]\n```",
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object"
                }
              ]
            }
          }
        }
      },
      "VolumeBasedCouponPromotion": {
        "title": "VolumeBasedCouponPromotion",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/VolumeBasedCouponPromotion",
          "description": "API reference for the VolumeBasedCouponPromotion schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/CouponPromotionCommonDetail"
          },
          {
            "type": "object",
            "required": [
              "details",
              "applies_to_product"
            ],
            "properties": {
              "details": {
                "$ref": "#/components/schemas/VolumeBasedRule"
              },
              "applies_to_product": {
                "enum": [
                  "product"
                ]
              }
            }
          }
        ]
      },
      "VolumeBasedPromotion": {
        "title": "VolumeBasedPromotion",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/VolumeBasedPromotion",
          "description": "API reference for the VolumeBasedPromotion schema"
        },
        "required": [
          "promotion_type",
          "slabs"
        ],
        "properties": {
          "promotion_type": {
            "type": "string",
            "enum": [
              "discount",
              "volume-based",
              "fixed-price",
              "free-goods"
            ],
            "const": "volume-based",
            "readOnly": true
          },
          "slabs": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "quantity",
                "quantity_condition",
                "discount_percent"
              ],
              "properties": {
                "quantity": {
                  "type": "integer"
                },
                "quantity_condition": {
                  "description": "This key defines how the system will evaluate the quantity to determine if the promotion should be applied, based on the specified slab.",
                  "enum": [
                    "less",
                    "less-or-equal",
                    "greater",
                    "greater-or-equal"
                  ]
                },
                "discount_percent": {
                  "type": "number"
                }
              }
            }
          }
        }
      },
      "VolumeBasedRule": {
        "title": "VolumeBasedRule",
        "type": "object",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/VolumeBasedRule",
          "description": "API reference for the VolumeBasedRule schema"
        },
        "required": [
          "products",
          "maximum_discount_amount"
        ],
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "product_id",
                "variant_id",
                "slabs"
              ],
              "properties": {
                "product_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "variant_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "slabs": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "quantity",
                      "condition",
                      "discount_percent"
                    ],
                    "properties": {
                      "quantity": {
                        "type": "integer"
                      },
                      "condition": {
                        "enum": [
                          "less-or-equal",
                          "greater"
                        ]
                      },
                      "discount_percent": {
                        "type": "number"
                      }
                    }
                  }
                }
              }
            }
          },
          "maximum_discount_amount": {
            "type": [
              "number",
              "null"
            ]
          }
        }
      },
      "WalletPayment": {
        "title": "WalletPayment",
        "externalDocs": {
          "url": "https://llm-docs.commercengine.io/storefront/schemas/WalletPayment",
          "description": "API reference for the WalletPayment schema"
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/PaymentInfo"
          },
          {
            "type": "object",
            "properties": {
              "wallet_name": {
                "type": "string"
              }
            }
          }
        ]
      }
    },
    "parameters": {
      "CustomerGroupId": {
        "name": "x-customer-group-id",
        "in": "header",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "This param is used to determine product pricing, promotions, and subscription rates.  If a valid customer group id is provided, pricing details will be retrieved accordingly.  If no matching data is found for the specified customer group id, the system will fall back to the default customer group id.  If no data is found for the default group either, the highest applicable price will be returned."
      },
      "DebugMode": {
        "name": "x-debug-mode",
        "in": "header",
        "required": false,
        "schema": {
          "type": "boolean"
        },
        "description": "This param is used to enable debug mode. If debug mode is enabled, the API will return OTP as well. This is only for development and testing purposes."
      },
      "pageLimitParam": {
        "name": "limit",
        "in": "query",
        "description": "Number of results per page.",
        "required": false,
        "schema": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1
        }
      },
      "pageParam": {
        "name": "page",
        "in": "query",
        "description": "page number of pagination list",
        "required": false,
        "schema": {
          "type": "number",
          "minimum": 1
        }
      },
      "searchKeyword": {
        "name": "search",
        "in": "query",
        "description": "search keyword",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "sortingParam": {
        "name": "sort_by",
        "in": "query",
        "description": "JSON string format: {\"field1\":\"asc\", \"field2\":\"desc\"}",
        "required": false,
        "schema": {
          "description": "json string in format {'field_name':'asc', 'other_field_name':'desc', ...}",
          "type": "string",
          "examples": [
            "{\"country\":\"asc\",\"city\":\"asc\",\"population\":\"desc\"}"
          ]
        }
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Bad request",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "message",
                "success",
                "code"
              ],
              "properties": {
                "message": {
                  "type": "string",
                  "x-speakeasy-error-message": true
                },
                "success": {
                  "type": "boolean"
                },
                "code": {
                  "type": "string"
                },
                "errors": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "NotFound": {
        "description": "Requested resource not found",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "message",
                "success",
                "code"
              ],
              "properties": {
                "message": {
                  "type": "string",
                  "x-speakeasy-error-message": true
                },
                "success": {
                  "type": "boolean"
                },
                "code": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Not authorized for given operation on the Resource",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "message",
                "success",
                "code"
              ],
              "properties": {
                "message": {
                  "type": "string",
                  "examples": [
                    "Not authorized for given operation on the Resource."
                  ],
                  "x-speakeasy-error-message": true
                },
                "success": {
                  "type": "boolean",
                  "default": false
                },
                "code": {
                  "type": "string",
                  "examples": [
                    "unauthorized"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "securitySchemes": {
      "Authorization": {
        "type": "http",
        "description": "Access token",
        "scheme": "bearer"
      },
      "X-Api-Key": {
        "type": "apiKey",
        "description": "API key for your store",
        "name": "X-Api-Key",
        "in": "header"
      }
    }
  }
}