openapi: 3.0.3 info: title: 'Garchi CMS API documentation' description: 'The API resources allows you to use most of the features of Garchi E-Commerce SaaS to create your own Headless CMS app. The APIs are currently in beta' version: 1.0.0 servers: - url: 'https://garchi.co.uk' paths: /api/v1/customer/address: post: summary: 'Add new address' description: 'Creates a new address record for the customer. The last added address is set as default which can be changed by setting default to false' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: address_id: 7 address_line_1: 'Street 1' address_line_2: null postcode: 'ABC 123' city: London default: true properties: data: type: object example: address_id: 7 address_line_1: 'Street 1' address_line_2: null postcode: 'ABC 123' city: London default: true tags: - Address requestBody: required: true content: application/json: schema: type: object properties: address_line_1: type: string description: 'First line of the address.' example: 'Street 1' address_line_2: type: string description: 'Second line of the address.' example: 'XYZ road' city: type: string description: '' example: London postcode: type: string description: '' example: 'ABC 123' default: type: boolean description: '' example: false uid: type: string description: 'UID of the customer.' example: 73110a91-385c-453a-96b4-a482ff7e1e3b2b2a3289-47be-438a-a102-b07314d619516927b77d-e70a-40d9-8df8-2230621c53d5a5ca4a10-8917-430d-a required: - address_line_1 - city - postcode - uid security: [] /api/v1/customer/address/update: post: summary: 'Update an address' description: 'Updates the given address fields. Only given fields will be updated.' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: address_id: 7 address_line_1: 'Street 2' address_line_2: null postcode: 'ABC 123' city: London default: true properties: data: type: object example: address_id: 7 address_line_1: 'Street 2' address_line_2: null postcode: 'ABC 123' city: London default: true tags: - Address requestBody: required: true content: application/json: schema: type: object properties: uid: type: string description: 'UID of the customer.' example: 73110a91-385c-453a-96b4-a482ff7e1e3b2b2a3289-47be-438a-a102-b07314d619516927b77d-e70a-40d9-8df8-2230621c53d5a5ca4a10-8917-430d-a address_id: type: integer description: 'id of the address.' example: 2 address_line_1: type: string description: 'First line of the address.' example: 'Street 2' address_line_2: type: string description: 'Second line of the address.' example: 'XYZ road' city: type: string description: '' example: London postcode: type: string description: '' example: 'ABC 123' default: type: boolean description: '' example: false required: - uid - address_id security: [] '/api/v1/customer/{uid}/addresses': get: summary: 'List all addresses' description: 'Returns a list of all addresses' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: - address_line_1: 'Street 1' address_line_2: null postcode: 'ABC 123' city: London default: 1 properties: data: type: array example: - address_line_1: 'Street 1' address_line_2: null postcode: 'ABC 123' city: London default: 1 items: type: object tags: - Address security: [] parameters: - in: path name: uid description: 'UID of the customer.' example: 73110a91-385c-453a-96b4-a482ff7e1e3b2b2a3289-47be-438a-a102-b07314d619516927b77d-e70a-40d9-8df8-2230621c53d5a5ca4a10-8917-430d-a required: true schema: type: string /api/v1/register: post: summary: 'Register a customer' description: '' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: firstname: Aditya lastname: Kadam email: aditya@example.com contact: '0123092312312' uid: 'uid string' email_verified: null properties: data: type: object example: firstname: Aditya lastname: Kadam email: aditya@example.com contact: '0123092312312' uid: 'uid string' email_verified: null tags: - Customer requestBody: required: true content: application/json: schema: type: object properties: firstname: type: string description: '' example: Aditya lastname: type: string description: '' example: Kadam email: type: string description: '' example: aditya@example.com password: type: string description: '' example: Str0ngPa$$word password_confirmation: type: string description: 'Confirmed Password of the user.' example: Str0ngPa$$word contact: type: string description: '' example: '0123092312312' cannotify: type: boolean. description: 'Whether the user has given permission for notification to you.' example: 'true' required: - firstname - lastname - email - password - password_confirmation security: [] /api/v1/login: post: summary: 'Login a customer' description: 'Takes in email and password. On success returns the user details.' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: firstname: Aditya lastname: Kadam email: aditya@example.com contact: '0123092312312' uid: 'uid string' email_verified: null properties: data: type: object example: firstname: Aditya lastname: Kadam email: aditya@example.com contact: '0123092312312' uid: 'uid string' email_verified: null tags: - Customer requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: '' example: aditya@example.com password: type: string description: '' example: Str0ngPa$$word required: - email - password security: [] /api/v1/markemailverified: post: summary: 'Mark Email as Verified' description: "Need to pass the uid of the person after the email is verified. Make sure that the email verification complete process has to be carried out by you.\nAfter making the request this api will simply set the timestamp of the request in the email_verified field" parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: firstname: Aditya lastname: Kadam email: aditya@example.com contact: '0123092312312' uid: 'uid string' email_verified: null properties: data: type: object example: firstname: Aditya lastname: Kadam email: aditya@example.com contact: '0123092312312' uid: 'uid string' email_verified: null tags: - Customer requestBody: required: true content: application/json: schema: type: object properties: uid: type: string description: 'uid of the user whose email is already verified by you.' example: 73110a91-385c-453a-96b4-a482ff7e1e3b2b2a3289-47be-438a-a102-b07314d619516927b77d-e70a-40d9-8df8-2230621c53d5a5ca4a10-8917-430d-a required: - uid security: [] /api/v1/customer/changepassword: post: summary: 'Password Reset' description: "Need to pass in the uid of the user, and the new_password with confirmation.\nThis API assumes that you have validated the password reset request of the user either by sending password reset link to their email or via some other secure method.\n\nPassword should be a plain text. It will be hashed before storing." parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: firstname: Aditya lastname: Kadam email: aditya@example.com contact: '1310003912322' uid: 'uid string' email_verified: null properties: data: type: object example: firstname: Aditya lastname: Kadam email: aditya@example.com contact: '1310003912322' uid: 'uid string' email_verified: null tags: - Customer requestBody: required: true content: application/json: schema: type: object properties: uid: type: string description: 'uid of the user.' example: 73110a91-385c-453a-96b4-a482ff7e1e3b2b2a3289-47be-438a-a102-b07314d619516927b77d-e70a-40d9-8df8-2230621c53d5a5ca4a10-8917-430d-a new_password: type: string description: '' example: NewStr0ngestPa$$word new_password_confirmation: type: string description: '' example: NewStr0ngestPa$$word required: - uid - new_password - new_password_confirmation security: [] /api/v1/customer/update: post: summary: 'Update customer details' description: 'Updates details of the customers. Only provided fields will be updated rest will be kept as it is.' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: firstname: Aditya lastname: Kadam email: aditya@example.com contact: '1310003912322' uid: 'uid string' email_verified: null properties: data: type: object example: firstname: Aditya lastname: Kadam email: aditya@example.com contact: '1310003912322' uid: 'uid string' email_verified: null tags: - Customer requestBody: required: true content: application/json: schema: type: object properties: firstname: type: string description: '' example: Aditya lastname: type: string description: '' example: Kadam email: type: string description: '' example: aditya@example.com uid: type: string description: 'uid of the user.' example: 73110a91-385c-453a-96b4-a482ff7e1e3b2b2a3289-47be-438a-a102-b07314d619516927b77d-e70a-40d9-8df8-2230621c53d5a5ca4a10-8917-430d-a contact: type: string description: '' example: '1310003912322' notifyme: type: boolean description: 'required. Whether the user has given permission for notification to you.' example: true required: - firstname - lastname - email - uid security: [] '/api/v1/customer/{uid}': get: summary: 'Return a single customer details' description: '' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: firstname: Aditya lastname: Kadam email: aditya@example.com contact: '0123092312312' uid: 'uid string' email_verified: null properties: data: type: object example: firstname: Aditya lastname: Kadam email: aditya@example.com contact: '0123092312312' uid: 'uid string' email_verified: null tags: - Customer security: [] parameters: - in: path name: uid description: 'Optional parameter.' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' present: summary: 'When the value is present' value: 73110a91-385c-453a-96b4-a482ff7e1e3b2b2a3289-47be-438a-a102-b07314d619516927b77d-e70a-40d9-8df8-2230621c53d5a5ca4a10-8917-430d-a /api/v1/customers: get: summary: 'List Customers' description: 'Returns the list of registered customers. You can pass the filter like email to get the single customer details.' parameters: - in: query name: email description: 'email of the user.' example: aditya@example.com required: false schema: type: string description: 'email of the user.' example: aditya@example.com - in: query name: size description: 'results per page. Default is 50' example: 50 required: false schema: type: integer description: 'results per page. Default is 50' example: 50 - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n\n\"data\": [\n {\n \"firstname\": \"Aditya\",\n \"lastname\": \"Kadam\",\n \"email\": \"aditya@example.com\",\n \"contact\": \"07948048596\",\n \"uid\": \"de3523f0-9661-4d94-b0d7-04b4a31c06663cb128d0-296d-430b-adfa-badeee6a51935971fc62-2425-4e40-a425-c46008d4f16f3d494fca-46d9-4be6-8\",\n \"email_verified\": \"2021-04-18 20:27:35\"\n },\n],\n\"links\": {\n \"first\": \"https://garchitest.co.uk/api/v1/customers?page=1\",\n \"last\": \"https://garchitest.co.uk/api/v1/customers?page=1\",\n \"prev\": null,\n \"next\": null\n},\n\"meta\": {\n \"current_page\": 1,\n \"from\": 1,\n \"last_page\": 1,\n \"links\": [\n {\n \"url\": null,\n \"label\": \"« Previous\",\n \"active\": false\n },\n {\n \"url\": \"https://garchitest.co.uk/api/v1/customers?page=1\",\n \"label\": \"1\",\n \"active\": true\n },\n {\n \"url\": null,\n \"label\": \"Next »\",\n \"active\": false\n }\n ],\n \"path\": \"https://garchitest.co.uk/api/v1/customers\",\n \"per_page\": 50,\n \"to\": 1,\n \"total\": 1\n}\n\n}" tags: - Customer security: [] /api/v1/validate-coupon: post: summary: 'Validate Coupon and Calculate Discount' description: 'This api takes in the coupon code and cart items in specific format along with cart total. It validates the coupon and returns the calculated discount value' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: amount: 12 code: Test15 coupon_id: 27 type: percent-user-specific whitelist_type: user-specific max_discount: 20 amount_after_discount: 68 properties: data: type: object example: amount: 12 code: Test15 coupon_id: 27 type: percent-user-specific whitelist_type: user-specific max_discount: 20 amount_after_discount: 68 tags: - Discount requestBody: required: true content: application/json: schema: type: object properties: coupon: type: string description: 'Coupon Code.' example: AK123 cart_items: type: array description: 'Cart items array.' example: - [] items: type: object properties: product_id: type: integer description: 'Id of the product.' example: 2 quantity: type: integer description: 'Quantity of product added.' example: 2 required: - product_id - quantity cart_total: type: number description: 'Cart total amount. This is the total amount on which discount will be calculated.' example: 80.0 customer_uid: type: string description: 'uid of the customer if the coupon is customer specific.' example: 73110a91-385c-453a-96b4-a482ff7e1e3b2b2a3289-47be-438a-a102-b07314d619516927b77d-e70a-40d9-8df8-2230621c53d5a5ca4a10-8917-430d-a required: - coupon - cart_items - cart_total security: [] /api/v1/order/create: post: summary: 'Create an Order' description: "Creates new order for a customer. Make sure to call this api after successful payment transaction.You need to handle payment from your side. You can pass the\npayment_id and the payment_method (eg: stripe) as a part of request body for transaction records." parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: { } tags: - Orders requestBody: required: true content: application/json: schema: type: object properties: cart_items: type: array description: 'Cart items array.' example: - [] items: type: object properties: product_id: type: integer description: 'Id of the product.' example: 2 product_name: type: string description: 'Name of the product.' example: 'Web Dev Book' quantity: type: integer description: 'Quantity of product added.' example: 2 delivery_date: type: date description: 'Delivery date for the product.' example: '2022-12-12' attributes: type: array description: 'Attributes selected for a product. This needs to be in specific format. The correct format is [{attribute_name: ''main_attribute_name'', selected_options: [{subattr:"selected option", price: "option price", subattr_id:''option_id''}]''].' example: - [] items: type: object properties: attribute_name: type: string description: 'Name of the attribute.' example: Date selected_options: type: array description: 'Array of selected options for a attribute' example: - [] items: type: object properties: subattr: type: string description: 'Name of selected option.' example: '21st March' price: type: number description: 'price of the selected option.' example: 1.0 subattr_id: type: integer description: 'id of selected option.' example: 3 required: - product_id - product_name - quantity shipping_amount: type: number description: 'shipping cost.' example: 5.0 sub_total_amount: type: number description: 'Cart sub total excluding the discount price. This is the on which discount will be calculated.' example: 80.0 tax_amount: type: number description: 'tax amount.' example: 10.0 customer_uid: type: string description: 'uid of the customer if you are using login api. Keep blank if you are using other authentication method (like firebase) or guest checkout.' example: 73110a91-385c-453a-96b4-a482ff7e1e3b2b2a3289-47be-438a-a102-b07314d619516927b77d-e70a-40d9-8df8-2230621c53d5a5ca4a10-8917-430d-a coupon_code: type: string description: 'Coupon code if the coupon was used. Make sure to validate the coupon before creating order.' example: AK123 coupon_id: type: integer description: 'id of the coupon recieved in the response of validate-coupon api.' example: 2 discount_value: type: number description: 'discount amount for the coupon recieved in the response of validate-coupon api.' example: 12.0 notify_seller: type: string description: 'Takes value of yes or no. If yes a web push notification will be sent to the respective seller.' example: 'no' guest_name: type: string description: 'If you choose to use other authentication method (firebase or guest checkout) then full name of the user.' example: keep_blank_if_using_login_api_else_provide_user_full_name guest_email: type: string description: 'If you choose to use other authentication method (firebase or guest checkout) then email name of the user.' example: keep_blank_if_using_login_api_else_provide_user_email guest_contact: type: string description: 'If you choose to use other authentication method (firebase or guest checkout) then contact number of the user.' example: keep_blank_if_using_login_api_else_provide_user_contact delivery_address: type: string description: 'Delivery address provided by the user.' example: 'Street 1, XYZ Road, London, LLL 111' payment_id: type: string description: 'Payment id after successful payment that will help you to keep track of payments.' example: pi_1IglpAJBBrYOr00bW4tJ312 payment_provider: type: string description: 'Payment provider used. Accepted values stripe, paypal, razorpay, other.' example: stripe required: - cart_items - sub_total_amount - delivery_address security: [] /api/v1/order/markasrefunded: post: summary: 'Mark as refunded for an item ordered' description: 'Changes an ordered item status to refunded.' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: message: 'Item order was marked as refunded' properties: message: type: string example: 'Item order was marked as refunded' tags: - Orders requestBody: required: true content: application/json: schema: type: object properties: line_item_id: type: integer description: 'ordered item id which is different from product id.' example: 30 invoice_number: type: string description: 'Invoice number.' example: bd402d30-9810-43b3-8c98-3f1c0208c098 required: - line_item_id - invoice_number security: [] /api/v1/order/markascancel: post: summary: 'Mark as cancel for an item ordered' description: 'Changes an ordered item status to cancelled.' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: message: 'Item order cancelled' properties: message: type: string example: 'Item order cancelled' tags: - Orders requestBody: required: true content: application/json: schema: type: object properties: line_item_id: type: integer description: 'ordered item id which is different from product id.' example: 30 invoice_number: type: string description: 'Invoice number.' example: bd402d30-9810-43b3-8c98-3f1c0208c098 required: - line_item_id - invoice_number security: [] /api/v1/orders/markascancel: post: summary: 'Mark the entire order as cancelled' description: 'Marks the entire order status and the line items order status as cancelled.' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n message: The order with bd402d30-9810-43b3-8c98-3f1c0208c098 was cancelled successfully\n}" tags: - Orders requestBody: required: true content: application/json: schema: type: object properties: invoice_number: type: string description: 'Invoice number.' example: bd402d30-9810-43b3-8c98-3f1c0208c098 required: - invoice_number security: [] /api/v1/orders/markasrefund: post: summary: 'Mark entire order as refunded' description: 'This is api is used to change status of the entire order/all the ordered items status to refunded' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n message: The complete order with bd402d30-9810-43b3-8c98-3f1c0208c098 was marked as refunded successfully\n}" tags: - Orders requestBody: required: true content: application/json: schema: type: object properties: invoice_number: type: string description: 'Invoice number.' example: bd402d30-9810-43b3-8c98-3f1c0208c098 required: - invoice_number security: [] /api/v1/orders/guest: post: summary: 'List all orders for guest customer' description: "This api lists all the orders for a customer that you registered/created using third party resources like Firebase Auth, etc.\nIf you are using register api then see this section" parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n\"data\": [\n{\n \"invoice\": \"64ba7caf-e18d-40f8-b7bd-3ea291501618\",\n \"sub_total_amount\": 80,\n \"tax_amount\": null,\n \"shipping_amount\": 5,\n \"payment_transaction\": {\n \"payment_id\": \"pi_1IglpAJBBrYOr00bW4tJ312\",\n \"refunded\": false,\n \"payment_provider\": \"stripe\",\n \"created_at\": \"2022-04-16T11:19:25.000000Z\",\n \"last_updated\": \"2022-04-16T11:19:25.000000Z\"\n },\n \"line_items\": [\n {\n \"line_item_id\": 38,\n \"delivery_address\": \"Street 1, XYZ Road, London, LLL 111\",\n \"quantity\": 2,\n \"options\": null,\n \"price\": 0,\n \"delivery_dt\": \"2022-12-12\",\n \"status\": \"placed\",\n \"placed_at\": \"2022-04-16T11:19:25.000000Z\",\n \"products\": {\n \"product_id\": 15,\n \"sku\": \"SKU123123123\",\n \"name\": \"Web app with Vue 3 and Tailwind CSS\",\n \"price\": 40,\n \"seller\": {\n \"name\": \"Aditya\"\n }\n }\n },\n ]\n }\n]\n}" tags: - Orders requestBody: required: true content: application/json: schema: type: object properties: guest_email: type: string description: 'Email address of the registered user.' example: id required: - guest_email security: [] '/api/v1/orders/{uid}': get: summary: 'List all orders for registered customer' description: 'List order details for a registered customer. This API works for customers registered using Register API.' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: - invoice: 64ba7caf-e18d-40f8-b7bd-3ea291501618 sub_total_amount: 80 tax_amount: null shipping_amount: 5 payment_transaction: payment_id: pi_1IglpAJBBrYOr00bW4tJ312 refunded: false payment_provider: stripe created_at: '2022-04-16T11:19:25.000000Z' last_updated: '2022-04-16T11:19:25.000000Z' line_items: - line_item_id: 38 delivery_address: 'Street 1, XYZ Road, London, LLL 111' quantity: 2 options: null price: 0 delivery_dt: '2022-12-12' status: placed placed_at: '2022-04-16T11:19:25.000000Z' products: product_id: 15 sku: SKU123123123 name: 'Web app with Vue 3 and Tailwind CSS' price: 40 seller: name: Aditya - line_item_id: 39 delivery_address: 'Street 1, XYZ Road, London, LLL 111' quantity: 2 options: null price: 0 delivery_dt: '2022-12-12' status: placed placed_at: '2022-04-16T11:19:25.000000Z' products: product_id: 16 sku: null name: 'Designing with Canva ' price: 15.99 seller: name: Maharani properties: data: type: array example: - invoice: 64ba7caf-e18d-40f8-b7bd-3ea291501618 sub_total_amount: 80 tax_amount: null shipping_amount: 5 payment_transaction: payment_id: pi_1IglpAJBBrYOr00bW4tJ312 refunded: false payment_provider: stripe created_at: '2022-04-16T11:19:25.000000Z' last_updated: '2022-04-16T11:19:25.000000Z' line_items: - line_item_id: 38 delivery_address: 'Street 1, XYZ Road, London, LLL 111' quantity: 2 options: null price: 0 delivery_dt: '2022-12-12' status: placed placed_at: '2022-04-16T11:19:25.000000Z' products: product_id: 15 sku: SKU123123123 name: 'Web app with Vue 3 and Tailwind CSS' price: 40 seller: name: Aditya - line_item_id: 39 delivery_address: 'Street 1, XYZ Road, London, LLL 111' quantity: 2 options: null price: 0 delivery_dt: '2022-12-12' status: placed placed_at: '2022-04-16T11:19:25.000000Z' products: product_id: 16 sku: null name: 'Designing with Canva ' price: 15.99 seller: name: Maharani items: type: object tags: - Orders security: [] parameters: - in: path name: uid description: 'UID of the customer.' example: de3523f0-9661-4d94-b0d7-04b4a31c06663cb128d0-296d-430b-adfa-badeee6a51935971fc62-2425-4e40-a425-c46008d4f16f3d494fca-46d9-4be6-8 required: true schema: type: string '/api/v1/order/{invoice_number}': get: summary: 'Get Invoice/Order details' description: 'Provides the details of the invoice including the information of the line items ordered' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: - invoice: bd402d30-9810-43b3-8c98-3f1c0208c098 total_amount: 80 payment_transaction: payment_id: pi_1IglpAJBBrYOr00bW4tJ312 refunded: entire payment_provider: stripe created_at: '2022-02-18T01:30:26.000000Z' last_updated: '2022-02-22T18:28:38.000000Z' line_items: - line_item_id: 30 quantity: 2 options: null price: 80 delivery_dt: '2022-12-12' status: refunded placed_at: '2022-02-18T01:30:26.000000Z' products: product_id: 15 name: 'Web app with Vue 3 and Tailwind CSS' seller: name: Aditya properties: data: type: array example: - invoice: bd402d30-9810-43b3-8c98-3f1c0208c098 total_amount: 80 payment_transaction: payment_id: pi_1IglpAJBBrYOr00bW4tJ312 refunded: entire payment_provider: stripe created_at: '2022-02-18T01:30:26.000000Z' last_updated: '2022-02-22T18:28:38.000000Z' line_items: - line_item_id: 30 quantity: 2 options: null price: 80 delivery_dt: '2022-12-12' status: refunded placed_at: '2022-02-18T01:30:26.000000Z' products: product_id: 15 name: 'Web app with Vue 3 and Tailwind CSS' seller: name: Aditya items: type: object tags: - Orders security: [] parameters: - in: path name: invoice_number description: 'Invoice number.' example: bd402d30-9810-43b3-8c98-3f1c0208c098 required: true schema: type: string /api/v1/orders/guest/update: post: summary: 'Change guest user details' description: "If you are not using login api for authenticating the user or\nif you are using third party authentication like Firebase or if you are handling the authentication by yourself\nthen this api might be handy to keep the user record updated." parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: message: 'Details updated successfully' properties: message: type: string example: 'Details updated successfully' tags: - Orders requestBody: required: true content: application/json: schema: type: object properties: guest_email: type: string description: 'Email of the user' example: aditya@example.com guest_contact: type: string description: 'Phone number of the user' example: '111111111' required: - guest_email security: [] '/api/v1/seller/{uid}/categories': get: summary: 'Get all Categories for a seller' description: 'Returns all the categories of the specified seller.' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n\"data\": [\n {\n \"id\": 22,\n \"name\": \"Web Development Bootcamp\"\n},\n{\n \"id\": 23,\n \"name\": \"Programming\"\n},\n{\n \"id\": 36,\n \"name\": \"Mobile App Development\"\n}\n]" tags: - 'Product and Category' security: [] parameters: - in: path name: uid description: 'Uid of the seller.' example: b5f0d08a-7600-4b9e-81e9-1ffaf5ddb8d2cf268eeb-000a-4bfd-bba6-09ab required: true schema: type: string '/api/v1/seller/{uid}/products': get: summary: 'List all products for a seller' description: 'Returns list of all the products with pagination links for a particular seller' parameters: - in: query name: size description: 'int. Max number of entries on one page or size of chunk per page. By default it is set to 10.' example: 14 required: false schema: type: integer description: 'int. Max number of entries on one page or size of chunk per page. By default it is set to 10.' example: 14 - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: - product_id: 15 sku: '' name: 'Web app with Vue 3 and Tailwind CSS' price: 40 scratched_price: 0 one_liner: 'A complete Vue.js course with front end web app development' delivery_type: online main_image: 'https://garchi.s3.eu-west-2.amazonaws.com/whitelabel_assets/Products/ProductImg15png' other_images: [] attributes: [] seller: uid: 3d5f84d6-8914-4061-b9be-cbdd8bcd806fb6138bbf-296e-44b4-9cf1-03b1 name: Aditya avg_rating: null - product_id: 29 sku: '' name: 'React native expo boot camp' stock: 0 price: 75 scratched_price: 0 one_liner: 'Learn react native expo from beginner to pro' delivery_type: online main_image: 'https://garchi.s3.eu-west-2.amazonaws.com/whitelabel_assets/Products/ProductImgMain29png' other_images: [] attributes: [] seller: uid: 3d5f84d6-8914-4061-b9be-cbdd8bcd806fb6138bbf-296e-44b4-9cf1-03b1 name: Aditya avg_rating: null links: first: 'https://garchi.co.uk/api/products?page=1' last: 'https://garchi.co.uk/api/products?page=1' prev: null next: null meta: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: 'https://garchi.co.uk/api/products?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: 'https://garchi.co.uk/api/products' per_page: 10 to: 3 total: 3 properties: data: type: array example: - product_id: 15 sku: '' name: 'Web app with Vue 3 and Tailwind CSS' price: 40 scratched_price: 0 one_liner: 'A complete Vue.js course with front end web app development' delivery_type: online main_image: 'https://garchi.s3.eu-west-2.amazonaws.com/whitelabel_assets/Products/ProductImg15png' other_images: [] attributes: [] seller: uid: 3d5f84d6-8914-4061-b9be-cbdd8bcd806fb6138bbf-296e-44b4-9cf1-03b1 name: Aditya avg_rating: null - product_id: 29 sku: '' name: 'React native expo boot camp' stock: 0 price: 75 scratched_price: 0 one_liner: 'Learn react native expo from beginner to pro' delivery_type: online main_image: 'https://garchi.s3.eu-west-2.amazonaws.com/whitelabel_assets/Products/ProductImgMain29png' other_images: [] attributes: [] seller: uid: 3d5f84d6-8914-4061-b9be-cbdd8bcd806fb6138bbf-296e-44b4-9cf1-03b1 name: Aditya avg_rating: null items: type: object links: type: object example: first: 'https://garchi.co.uk/api/products?page=1' last: 'https://garchi.co.uk/api/products?page=1' prev: null next: null meta: type: object example: current_page: 1 from: 1 last_page: 1 links: - url: null label: '« Previous' active: false - url: 'https://garchi.co.uk/api/products?page=1' label: '1' active: true - url: null label: 'Next »' active: false path: 'https://garchi.co.uk/api/products' per_page: 10 to: 3 total: 3 tags: - 'Product and Category' security: [] parameters: - in: path name: uid description: '' example: exercitationem required: true schema: type: string /api/v1/categories: get: summary: 'Get all Categories' description: 'Returns all the categories for all the sellers.' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: text/plain: schema: type: string example: "{\n\"data\": [\n {\n \"id\": 22,\n \"name\": \"Web Development Bootcamp\"\n},\n{\n \"id\": 23,\n \"name\": \"Programming\"\n},\n{\n \"id\": 36,\n \"name\": \"Mobile App Development\"\n}\n]" tags: - 'Product and Category' security: [] '/api/v1/product/{product}': get: summary: 'Get Product Details' description: 'Returns details of a single product based on the product_id passed.' parameters: - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json schema: type: string - in: header name: Authorization description: '' example: 'Bearer {Your_API_Key}' schema: type: string responses: 200: description: '' content: application/json: schema: type: object example: data: - product_id: 26 sku: '' name: 'Webdev courses in depth' stock: 100 price: 40 scratched_price: null one_liner: 'Best book for begineer' description: "
This book is fantastic
\nThis book is fantastic
\nHowdy friends, I am Aditya. I am an entrepreneur, developer, and IT consultant.
\n\n
Along with managing and developing Garchi's platform and SaaS service, I have been working as a freelance developer and consultant for various SMEs in India and the UK.
\n\n
Being a tech enthusiast I love to code in all the possible languages I can. But, I will be honest here, PHP, Python, and JavaScript are my favourite languages to code in.
\n\n
One thing I like the most is to share my tech knowledge and experience. Being a developer myself I can totally understand it is difficult to assimilate those heavy technical words and concepts. When it comes to programming, it becomes more difficult and frustrating to understand the working/logic of the code.
\nWhen I was new to the programming world (sometimes in 2010, nice old school days), the first language I learned was C++. I thought \"Cool, that's it, C++ and Java. That's the way forward\". However, that wasn't the case.
\nThese days, there are several programming languages that you can learn. The fun fact: almost every language from that pool seems interesting but also scary at the same time. The reason can be anything but the result is mostly one of these things: you either quit programming or you find it boring or you continue using it because, well that's your job.
\n\n
But what if the learning curve becomes interesting and you are able to utilise your knowledge to turn your big idea into reality? If you are working in a 9-5 job, what if the job becomes less frustrating and more exciting? I was almost going to quit coding, even though I studied computer science for my undergrad. But how did I end up being a tech entrepreneur? Well, it's very simple, with just one golden statement, \"Understand the concept rather than mugging upon them\". And that's where I will be helping you guys to break all those complicated concepts into simple, layman's terms. I believe that this will help you all to enjoy the learning curve of programming. Our interactive Boot camp will cover the most key and important concepts.
\n\n
The boot camp aims to make sure that the knowledge and experience I got is transferred effectively to you.
\n\n
Check out my LinkedIn profile. Feel free to connect with me on LinkedIn and don't forget to send a note :)
" properties: data: type: object example: uid: 3d5f84d6-8914-4061-b9be-cbdd8bcd806fb6138bbf-296e-44b4-9cf1-03b1 name: null business_name: Aditya logo_url: 'https://garchi.s3.eu-west-2.amazonaws.com/whitelabel_assets/SellersLogo/SellerLogo97T-1633021175.jpg' email: aditya@adiranids.com phone: '1234567890' number_of_products: 3 average_rating: null number_of_reviews_for_seller: 0 number_of_reviews_for_products: 0 bio: "Howdy friends, I am Aditya. I am an entrepreneur, developer, and IT consultant.
\n\n
Along with managing and developing Garchi's platform and SaaS service, I have been working as a freelance developer and consultant for various SMEs in India and the UK.
\n\n
Being a tech enthusiast I love to code in all the possible languages I can. But, I will be honest here, PHP, Python, and JavaScript are my favourite languages to code in.
\n\n
One thing I like the most is to share my tech knowledge and experience. Being a developer myself I can totally understand it is difficult to assimilate those heavy technical words and concepts. When it comes to programming, it becomes more difficult and frustrating to understand the working/logic of the code.
\nWhen I was new to the programming world (sometimes in 2010, nice old school days), the first language I learned was C++. I thought \"Cool, that's it, C++ and Java. That's the way forward\". However, that wasn't the case.
\nThese days, there are several programming languages that you can learn. The fun fact: almost every language from that pool seems interesting but also scary at the same time. The reason can be anything but the result is mostly one of these things: you either quit programming or you find it boring or you continue using it because, well that's your job.
\n\n
But what if the learning curve becomes interesting and you are able to utilise your knowledge to turn your big idea into reality? If you are working in a 9-5 job, what if the job becomes less frustrating and more exciting? I was almost going to quit coding, even though I studied computer science for my undergrad. But how did I end up being a tech entrepreneur? Well, it's very simple, with just one golden statement, \"Understand the concept rather than mugging upon them\". And that's where I will be helping you guys to break all those complicated concepts into simple, layman's terms. I believe that this will help you all to enjoy the learning curve of programming. Our interactive Boot camp will cover the most key and important concepts.
\n\n
The boot camp aims to make sure that the knowledge and experience I got is transferred effectively to you.
\n\n
Check out my LinkedIn profile. Feel free to connect with me on LinkedIn and don't forget to send a note :)
" tags: - Sellers security: [] parameters: - in: path name: uid description: 'Seller uid' example: 3d5f84d6-8914-4061-b9be-cbdd8bcd806fb6138bbf-296e-44b4-9cf1-03b1 required: true schema: type: string tags: - name: Address description: '' - name: Customer description: '' - name: Discount description: '' - name: Orders description: '' - name: 'Product and Category' description: '' - name: Reviews description: '' - name: Sellers description: '' components: securitySchemes: default: type: http scheme: bearer description: '' security: - default: []