/home/optimumoperation/smritielectronics.com/public/docs/openapi.yaml
openapi: 3.0.3
info:
title: 'Your App API Documentation'
description: ''
version: 1.0.0
servers:
-
url: 'http://shofy.test'
tags:
-
name: Address
description: ''
-
name: Ads
description: ''
-
name: Authentication
description: ''
-
name: Blog
description: ''
-
name: Brands
description: ''
-
name: Cart
description: ''
-
name: Checkout
description: ''
-
name: Compare
description: ''
-
name: Coupons
description: ''
-
name: Currencies
description: ''
-
name: 'Device Tokens'
description: ''
-
name: Downloads
description: ''
-
name: Endpoints
description: ''
-
name: Filters
description: ''
-
name: 'Flash Sale'
description: ''
-
name: Languages
description: ''
-
name: Notifications
description: ''
-
name: 'Order Returns'
description: ''
-
name: Orders
description: "\nAPIs for order tracking"
-
name: Page
description: ''
-
name: 'Product Categories'
description: ''
-
name: Products
description: ''
-
name: Profile
description: ''
-
name: Reviews
description: ''
-
name: 'Simple Slider'
description: ''
-
name: Wishlist
description: ''
paths:
/api/v1/ecommerce/addresses:
get:
summary: 'Get list of address by customer'
operationId: getListOfAddressByCustomer
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- Address
security: []
post:
summary: 'Create new address for customer'
operationId: createNewAddressForCustomer
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data:
id: 1
name: 'John Doe'
phone: '0123456789'
email: john.doe@example.com
country: 'United States'
state: California
city: 'Los Angeles'
address: '123 Main St'
zip_code: '90001'
is_default: true
message: null
properties:
error:
type: boolean
example: false
data:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'John Doe'
phone:
type: string
example: '0123456789'
email:
type: string
example: john.doe@example.com
country:
type: string
example: 'United States'
state:
type: string
example: California
city:
type: string
example: 'Los Angeles'
address:
type: string
example: '123 Main St'
zip_code:
type: string
example: '90001'
is_default:
type: boolean
example: true
message:
type: string
example: null
tags:
- Address
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the address owner.'
example: 'John Doe'
nullable: false
email:
type: string
description: 'The email address.'
example: john.doe@example.com
nullable: true
phone:
type: string
description: 'The phone number.'
example: '0123456789'
nullable: false
country:
type: string
description: 'The country name or country code.'
example: 'United States or US'
nullable: true
state:
type: string
description: 'The state/province name.'
example: California
nullable: true
city:
type: string
description: 'The city name.'
example: 'Los Angeles'
nullable: true
address:
type: string
description: 'The street address.'
example: '123 Main St'
nullable: true
is_default:
type: boolean
description: 'Set as default address.'
example: true
nullable: true
zip_code:
type: string
description: 'The postal/zip code.'
example: '90001'
nullable: true
required:
- name
- email
- phone
'/api/v1/ecommerce/addresses/{id}':
put:
summary: 'Update an address'
operationId: updateAnAddress
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data:
id: 1
name: 'John Doe'
phone: '0123456789'
email: john.doe@example.com
country: 'United States'
state: California
city: 'Los Angeles'
address: '123 Main St'
zip_code: '90001'
is_default: true
message: null
properties:
error:
type: boolean
example: false
data:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'John Doe'
phone:
type: string
example: '0123456789'
email:
type: string
example: john.doe@example.com
country:
type: string
example: 'United States'
state:
type: string
example: California
city:
type: string
example: 'Los Angeles'
address:
type: string
example: '123 Main St'
zip_code:
type: string
example: '90001'
is_default:
type: boolean
example: true
message:
type: string
example: null
tags:
- Address
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: 'The name of the address owner.'
example: 'John Doe'
nullable: false
email:
type: string
description: 'The email address.'
example: john.doe@example.com
nullable: false
phone:
type: string
description: 'The phone number.'
example: '0123456789'
nullable: false
country:
type: string
description: 'The country name or country code.'
example: 'United States or US'
nullable: false
state:
type: string
description: 'The state/province name.'
example: California
nullable: false
city:
type: string
description: 'The city name.'
example: 'Los Angeles'
nullable: false
address:
type: string
description: 'The street address.'
example: '123 Main St'
nullable: false
is_default:
type: boolean
description: 'Set as default address.'
example: true
nullable: false
zip_code:
type: string
description: 'The postal/zip code.'
example: '90001'
nullable: true
required:
- name
- email
- phone
- state
- city
- address
delete:
summary: 'Delete an address'
operationId: deleteAnAddress
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data: null
message: 'Address deleted successfully'
properties:
error:
type: boolean
example: false
data:
type: string
example: null
message:
type: string
example: 'Address deleted successfully'
tags:
- Address
parameters:
-
in: path
name: id
description: 'The ID of the address.'
example: 1
required: true
schema:
type: integer
/api/v1/ecommerce/countries:
get:
summary: 'Get list of available countries'
operationId: getListOfAvailableCountries
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data:
-
name: Vietnam
code: VN
message: null
properties:
error:
type: boolean
example: false
data:
type: array
example:
-
name: Vietnam
code: VN
items:
type: object
properties:
name:
type: string
example: Vietnam
code:
type: string
example: VN
message:
type: string
example: null
tags:
- Address
security: []
/api/v1/ads:
get:
summary: 'Get ads'
operationId: getAds
description: ''
parameters:
-
in: query
name: keys
description: 'Array of ad keys to filter by.'
example:
- homepage-banner
- sidebar-banner
required: false
schema:
type: array
description: 'Array of ad keys to filter by.'
example:
- homepage-banner
- sidebar-banner
items:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data: []
message: null
properties:
error:
type: boolean
example: false
data:
type: array
example: []
message:
type: string
example: null
tags:
- Ads
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
keys:
type: array
description: 'Array of ad keys to filter by.'
example:
- homepage-banner
- sidebar-banner
items:
type: string
security: []
/api/v1/register:
post:
summary: Register
operationId: register
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data: null
message: 'Registered successfully! We emailed you to verify your account!'
properties:
error:
type: boolean
example: false
data:
type: string
example: null
message:
type: string
example: 'Registered successfully! We emailed you to verify your account!'
422:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'The given data was invalid.'
errors:
name:
- 'The name field is required.'
email:
- 'The email field is required.'
password:
- 'The password field is required.'
properties:
message:
type: string
example: 'The given data was invalid.'
errors:
type: object
properties:
name:
type: array
example:
- 'The name field is required.'
items:
type: string
email:
type: array
example:
- 'The email field is required.'
items:
type: string
password:
type: array
example:
- 'The password field is required.'
items:
type: string
tags:
- Authentication
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
first_name:
type: string
description: 'The first name of the user. This field is required when <code>name</code> is not present. Must not be greater than 120 characters. Must be at least 2 characters.'
example: John
nullable: true
last_name:
type: string
description: 'The last name of the user. This field is required when <code>name</code> is not present. Must not be greater than 120 characters. Must be at least 2 characters.'
example: Smith
nullable: true
name:
type: string
description: 'The name of the user.'
example: consequatur
nullable: true
email:
type: string
description: 'The email of the user.'
example: qkunze@example.com
nullable: false
password:
type: string
description: 'The password of user to create.'
example: 'O[2UZ5ij-e/dl4m{o,'
nullable: false
phone:
type: string
description: 'The phone of the user.'
example: consequatur
nullable: true
password_confirmation:
type: string
description: 'The password confirmation.'
example: consequatur
nullable: false
required:
- name
- email
- password
- phone
- password_confirmation
security: []
/api/v1/login:
post:
summary: Login
operationId: login
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data:
token: 1|aF5s7p3xxx1lVL8hkSrPN72m4wPVpTvTs...
message: null
properties:
error:
type: boolean
example: false
data:
type: object
properties:
token:
type: string
example: 1|aF5s7p3xxx1lVL8hkSrPN72m4wPVpTvTs...
message:
type: string
example: null
tags:
- Authentication
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: 'The email of the user.'
example: qkunze@example.com
nullable: false
password:
type: string
description: 'The password of user to create.'
example: 'O[2UZ5ij-e/dl4m{o,'
nullable: false
required:
- email
- password
security: []
/api/v1/email/check:
post:
summary: 'Check email existing or not'
operationId: checkEmailExistingOrNot
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data:
exists: true
message: null
properties:
error:
type: boolean
example: false
data:
type: object
properties:
exists:
type: boolean
example: true
message:
type: string
example: null
tags:
- Authentication
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: 'The email of the user.'
example: qkunze@example.com
nullable: false
required:
- email
security: []
/api/v1/password/forgot:
post:
summary: 'Forgot password'
operationId: forgotPassword
description: 'Send a reset link to the given user.'
parameters: []
responses: { }
tags:
- Authentication
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: 'The email of the user.'
example: qkunze@example.com
nullable: false
required:
- email
security: []
/api/v1/resend-verify-account-email:
post:
summary: 'Resend email verification'
operationId: resendEmailVerification
description: 'Resend the email verification notification.'
parameters: []
responses: { }
tags:
- Authentication
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
description: 'The email of the user.'
example: qkunze@example.com
nullable: false
required:
- email
security: []
/api/v1/logout:
get:
summary: Logout
operationId: logout
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- Authentication
/api/v1/search:
get:
summary: 'Search post'
operationId: searchPost
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: 'No results found, please try with different keywords.'
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: 'No results found, please try with different keywords.'
tags:
- Blog
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
q:
type: string
description: 'The search keyword.'
example: consequatur
nullable: false
required:
- q
security: []
/api/v1/posts:
get:
summary: 'List posts'
operationId: listPosts
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 1
name: '4 Expert Tips On How To Choose The Right Men’s Wallet'
slug: 4-expert-tips-on-how-to-choose-the-right-mens-wallet
description: "Alice's, and they sat down at her as hard as it can talk: at any rate I'll never go THERE again!' said Alice to herself, 'to be going messages for a minute or two, which gave the Pigeon in a."
image: 'http://shofy.test/storage/main/blog/post-6.jpg'
categories:
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
url: 'http://shofy.test/blog/organic-fruits'
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
tags:
-
id: 5
name: Modern
slug: modern
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 2
name: 'Sexy Clutches: How to Buy & Wear a Designer Clutch Bag'
slug: sexy-clutches-how-to-buy-wear-a-designer-clutch-bag
description: "Mock Turtle said: 'advance twice, set to work nibbling at the proposal. 'Then the Dormouse into the garden with one eye, How the Owl and the two creatures, who had got to go from here?' 'That."
image: 'http://shofy.test/storage/main/blog/post-3.jpg'
categories:
-
id: 2
name: Fashion
slug: fashion
url: 'http://shofy.test/blog/fashion'
description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
-
id: 6
name: Ecological
slug: ecological
url: 'http://shofy.test/blog/ecological'
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
tags:
-
id: 2
name: Design
slug: design
description: null
-
id: 6
name: Nature
slug: nature
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 3
name: 'The Top 2020 Handbag Trends to Know'
slug: the-top-2020-handbag-trends-to-know
description: "White Rabbit, 'and that's why. Pig!' She said it to be Involved in this way! Stop this moment, and fetch me a pair of gloves and the baby violently up and saying, 'Thank you, sir, for your."
image: 'http://shofy.test/storage/main/blog/post-2.jpg'
categories:
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
url: 'http://shofy.test/blog/organic-fruits'
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
tags:
-
id: 2
name: Design
slug: design
description: null
-
id: 4
name: Branding
slug: branding
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 4
name: 'How to Match the Color of Your Handbag With an Outfit'
slug: how-to-match-the-color-of-your-handbag-with-an-outfit
description: "Alice could speak again. In a little girl she'll think me for asking! No, it'll never do to ask: perhaps I shall have to ask his neighbour to tell him. 'A nice muddle their slates'll be in a hurry."
image: 'http://shofy.test/storage/main/blog/post-2.jpg'
categories:
-
id: 2
name: Fashion
slug: fashion
url: 'http://shofy.test/blog/fashion'
description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
-
id: 6
name: Ecological
slug: ecological
url: 'http://shofy.test/blog/ecological'
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
tags:
-
id: 1
name: General
slug: general
description: null
-
id: 3
name: Fashion
slug: fashion
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 5
name: 'How to Care for Leather Bags'
slug: how-to-care-for-leather-bags
description: "She had not got into it), and handed them round as prizes. There was no label this time she heard a little of her sharp little chin. 'I've a right to grow larger again, and Alice called out as loud."
image: 'http://shofy.test/storage/main/blog/post-5.jpg'
categories:
-
id: 1
name: 'Crisp Bread & Cake'
slug: crisp-bread-cake
url: 'http://shofy.test/blog/crisp-bread-cake'
description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
-
id: 6
name: Ecological
slug: ecological
url: 'http://shofy.test/blog/ecological'
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
tags:
-
id: 4
name: Branding
slug: branding
description: null
-
id: 5
name: Modern
slug: modern
description: null
-
id: 8
name: Sunglasses
slug: sunglasses
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 6
name: "We're Crushing Hard on Summer's 10 Biggest Bag Trends"
slug: were-crushing-hard-on-summers-10-biggest-bag-trends
description: 'Duchess began in a very respectful tone, but frowning and making faces at him as he could go. Alice took up the fan she was now only ten inches high, and her eyes to see that queer little toss of.'
image: 'http://shofy.test/storage/main/blog/post-10.jpg'
categories:
-
id: 4
name: Commercial
slug: commercial
url: 'http://shofy.test/blog/commercial'
description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
-
id: 6
name: Ecological
slug: ecological
url: 'http://shofy.test/blog/ecological'
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
tags:
-
id: 6
name: Nature
slug: nature
description: null
-
id: 8
name: Sunglasses
slug: sunglasses
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 7
name: 'Essential Qualities of Highly Successful Music'
slug: essential-qualities-of-highly-successful-music
description: "He looked at Two. Two began in a very short time the Mouse was speaking, so that her flamingo was gone across to the rose-tree, she went on for some time with great curiosity. 'Soles and eels, of."
image: 'http://shofy.test/storage/main/blog/post-12.jpg'
categories:
-
id: 6
name: Ecological
slug: ecological
url: 'http://shofy.test/blog/ecological'
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
tags:
-
id: 1
name: General
slug: general
description: null
-
id: 2
name: Design
slug: design
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 8
name: '9 Things I Love About Shaving My Head'
slug: 9-things-i-love-about-shaving-my-head
description: "White Rabbit; 'in fact, there's nothing written on the trumpet, and called out, 'First witness!' The first thing I've got to grow to my right size: the next moment she quite forgot you didn't like."
image: 'http://shofy.test/storage/main/blog/post-6.jpg'
categories:
-
id: 2
name: Fashion
slug: fashion
url: 'http://shofy.test/blog/fashion'
description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
-
id: 3
name: Electronic
slug: electronic
url: 'http://shofy.test/blog/electronic'
description: 'Culpa quia voluptas sint aut maiores minus debitis. Et dolor occaecati ullam qui. Perspiciatis natus rerum officia veniam cum odio molestias. Omnis laudantium ipsam ut voluptatum.'
tags:
-
id: 5
name: Modern
slug: modern
description: null
-
id: 8
name: Sunglasses
slug: sunglasses
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 9
name: 'Why Teamwork Really Makes The Dream Work'
slug: why-teamwork-really-makes-the-dream-work
description: "I've kept her eyes immediately met those of a well--' 'What did they live at the cook, and a scroll of parchment in the world! Oh, my dear paws! Oh my dear paws! Oh my fur and whiskers! She'll get."
image: 'http://shofy.test/storage/main/blog/post-1.jpg'
categories:
-
id: 1
name: 'Crisp Bread & Cake'
slug: crisp-bread-cake
url: 'http://shofy.test/blog/crisp-bread-cake'
description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
url: 'http://shofy.test/blog/organic-fruits'
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
tags:
-
id: 3
name: Fashion
slug: fashion
description: null
-
id: 4
name: Branding
slug: branding
description: null
-
id: 5
name: Modern
slug: modern
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 10
name: 'The World Caters to Average People'
slug: the-world-caters-to-average-people
description: 'Jack-in-the-box, and up I goes like a stalk out of its mouth open, gazing up into the air off all its feet at once, in a voice sometimes choked with sobs, to sing "Twinkle, twinkle, little bat! How.'
image: 'http://shofy.test/storage/main/blog/post-8.jpg'
categories:
-
id: 4
name: Commercial
slug: commercial
url: 'http://shofy.test/blog/commercial'
description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
url: 'http://shofy.test/blog/organic-fruits'
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
tags:
-
id: 2
name: Design
slug: design
description: null
-
id: 6
name: Nature
slug: nature
description: null
-
id: 8
name: Sunglasses
slug: sunglasses
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
links:
first: 'http://shofy.test/api/v1/posts?page=1'
last: 'http://shofy.test/api/v1/posts?page=2'
prev: null
next: 'http://shofy.test/api/v1/posts?page=2'
meta:
current_page: 1
from: 1
last_page: 2
links:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/posts?page=1'
label: '1'
active: true
-
url: 'http://shofy.test/api/v1/posts?page=2'
label: '2'
active: false
-
url: 'http://shofy.test/api/v1/posts?page=2'
label: 'Next »'
active: false
path: 'http://shofy.test/api/v1/posts'
per_page: 10
to: 10
total: 18
error: false
message: null
properties:
data:
type: array
example:
-
id: 1
name: '4 Expert Tips On How To Choose The Right Men’s Wallet'
slug: 4-expert-tips-on-how-to-choose-the-right-mens-wallet
description: "Alice's, and they sat down at her as hard as it can talk: at any rate I'll never go THERE again!' said Alice to herself, 'to be going messages for a minute or two, which gave the Pigeon in a."
image: 'http://shofy.test/storage/main/blog/post-6.jpg'
categories:
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
url: 'http://shofy.test/blog/organic-fruits'
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
tags:
-
id: 5
name: Modern
slug: modern
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 2
name: 'Sexy Clutches: How to Buy & Wear a Designer Clutch Bag'
slug: sexy-clutches-how-to-buy-wear-a-designer-clutch-bag
description: "Mock Turtle said: 'advance twice, set to work nibbling at the proposal. 'Then the Dormouse into the garden with one eye, How the Owl and the two creatures, who had got to go from here?' 'That."
image: 'http://shofy.test/storage/main/blog/post-3.jpg'
categories:
-
id: 2
name: Fashion
slug: fashion
url: 'http://shofy.test/blog/fashion'
description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
-
id: 6
name: Ecological
slug: ecological
url: 'http://shofy.test/blog/ecological'
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
tags:
-
id: 2
name: Design
slug: design
description: null
-
id: 6
name: Nature
slug: nature
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 3
name: 'The Top 2020 Handbag Trends to Know'
slug: the-top-2020-handbag-trends-to-know
description: "White Rabbit, 'and that's why. Pig!' She said it to be Involved in this way! Stop this moment, and fetch me a pair of gloves and the baby violently up and saying, 'Thank you, sir, for your."
image: 'http://shofy.test/storage/main/blog/post-2.jpg'
categories:
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
url: 'http://shofy.test/blog/organic-fruits'
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
tags:
-
id: 2
name: Design
slug: design
description: null
-
id: 4
name: Branding
slug: branding
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 4
name: 'How to Match the Color of Your Handbag With an Outfit'
slug: how-to-match-the-color-of-your-handbag-with-an-outfit
description: "Alice could speak again. In a little girl she'll think me for asking! No, it'll never do to ask: perhaps I shall have to ask his neighbour to tell him. 'A nice muddle their slates'll be in a hurry."
image: 'http://shofy.test/storage/main/blog/post-2.jpg'
categories:
-
id: 2
name: Fashion
slug: fashion
url: 'http://shofy.test/blog/fashion'
description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
-
id: 6
name: Ecological
slug: ecological
url: 'http://shofy.test/blog/ecological'
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
tags:
-
id: 1
name: General
slug: general
description: null
-
id: 3
name: Fashion
slug: fashion
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 5
name: 'How to Care for Leather Bags'
slug: how-to-care-for-leather-bags
description: "She had not got into it), and handed them round as prizes. There was no label this time she heard a little of her sharp little chin. 'I've a right to grow larger again, and Alice called out as loud."
image: 'http://shofy.test/storage/main/blog/post-5.jpg'
categories:
-
id: 1
name: 'Crisp Bread & Cake'
slug: crisp-bread-cake
url: 'http://shofy.test/blog/crisp-bread-cake'
description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
-
id: 6
name: Ecological
slug: ecological
url: 'http://shofy.test/blog/ecological'
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
tags:
-
id: 4
name: Branding
slug: branding
description: null
-
id: 5
name: Modern
slug: modern
description: null
-
id: 8
name: Sunglasses
slug: sunglasses
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 6
name: "We're Crushing Hard on Summer's 10 Biggest Bag Trends"
slug: were-crushing-hard-on-summers-10-biggest-bag-trends
description: 'Duchess began in a very respectful tone, but frowning and making faces at him as he could go. Alice took up the fan she was now only ten inches high, and her eyes to see that queer little toss of.'
image: 'http://shofy.test/storage/main/blog/post-10.jpg'
categories:
-
id: 4
name: Commercial
slug: commercial
url: 'http://shofy.test/blog/commercial'
description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
-
id: 6
name: Ecological
slug: ecological
url: 'http://shofy.test/blog/ecological'
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
tags:
-
id: 6
name: Nature
slug: nature
description: null
-
id: 8
name: Sunglasses
slug: sunglasses
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 7
name: 'Essential Qualities of Highly Successful Music'
slug: essential-qualities-of-highly-successful-music
description: "He looked at Two. Two began in a very short time the Mouse was speaking, so that her flamingo was gone across to the rose-tree, she went on for some time with great curiosity. 'Soles and eels, of."
image: 'http://shofy.test/storage/main/blog/post-12.jpg'
categories:
-
id: 6
name: Ecological
slug: ecological
url: 'http://shofy.test/blog/ecological'
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
tags:
-
id: 1
name: General
slug: general
description: null
-
id: 2
name: Design
slug: design
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 8
name: '9 Things I Love About Shaving My Head'
slug: 9-things-i-love-about-shaving-my-head
description: "White Rabbit; 'in fact, there's nothing written on the trumpet, and called out, 'First witness!' The first thing I've got to grow to my right size: the next moment she quite forgot you didn't like."
image: 'http://shofy.test/storage/main/blog/post-6.jpg'
categories:
-
id: 2
name: Fashion
slug: fashion
url: 'http://shofy.test/blog/fashion'
description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
-
id: 3
name: Electronic
slug: electronic
url: 'http://shofy.test/blog/electronic'
description: 'Culpa quia voluptas sint aut maiores minus debitis. Et dolor occaecati ullam qui. Perspiciatis natus rerum officia veniam cum odio molestias. Omnis laudantium ipsam ut voluptatum.'
tags:
-
id: 5
name: Modern
slug: modern
description: null
-
id: 8
name: Sunglasses
slug: sunglasses
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 9
name: 'Why Teamwork Really Makes The Dream Work'
slug: why-teamwork-really-makes-the-dream-work
description: "I've kept her eyes immediately met those of a well--' 'What did they live at the cook, and a scroll of parchment in the world! Oh, my dear paws! Oh my dear paws! Oh my fur and whiskers! She'll get."
image: 'http://shofy.test/storage/main/blog/post-1.jpg'
categories:
-
id: 1
name: 'Crisp Bread & Cake'
slug: crisp-bread-cake
url: 'http://shofy.test/blog/crisp-bread-cake'
description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
url: 'http://shofy.test/blog/organic-fruits'
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
tags:
-
id: 3
name: Fashion
slug: fashion
description: null
-
id: 4
name: Branding
slug: branding
description: null
-
id: 5
name: Modern
slug: modern
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
-
id: 10
name: 'The World Caters to Average People'
slug: the-world-caters-to-average-people
description: 'Jack-in-the-box, and up I goes like a stalk out of its mouth open, gazing up into the air off all its feet at once, in a voice sometimes choked with sobs, to sing "Twinkle, twinkle, little bat! How.'
image: 'http://shofy.test/storage/main/blog/post-8.jpg'
categories:
-
id: 4
name: Commercial
slug: commercial
url: 'http://shofy.test/blog/commercial'
description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
url: 'http://shofy.test/blog/organic-fruits'
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
tags:
-
id: 2
name: Design
slug: design
description: null
-
id: 6
name: Nature
slug: nature
description: null
-
id: 8
name: Sunglasses
slug: sunglasses
description: null
created_at: '2025-06-25T01:43:37.000000Z'
updated_at: '2025-06-25T01:43:37.000000Z'
items:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: '4 Expert Tips On How To Choose The Right Men’s Wallet'
slug:
type: string
example: 4-expert-tips-on-how-to-choose-the-right-mens-wallet
description:
type: string
example: "Alice's, and they sat down at her as hard as it can talk: at any rate I'll never go THERE again!' said Alice to herself, 'to be going messages for a minute or two, which gave the Pigeon in a."
image:
type: string
example: 'http://shofy.test/storage/main/blog/post-6.jpg'
categories:
type: array
example:
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
url: 'http://shofy.test/blog/organic-fruits'
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
items:
type: object
properties:
id:
type: integer
example: 5
name:
type: string
example: 'Organic Fruits'
slug:
type: string
example: organic-fruits
url:
type: string
example: 'http://shofy.test/blog/organic-fruits'
description:
type: string
example: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
tags:
type: array
example:
-
id: 5
name: Modern
slug: modern
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
items:
type: object
properties:
id:
type: integer
example: 5
name:
type: string
example: Modern
slug:
type: string
example: modern
description:
type: string
example: null
created_at:
type: string
example: '2025-06-25T01:43:37.000000Z'
updated_at:
type: string
example: '2025-06-25T01:43:37.000000Z'
links:
type: object
properties:
first:
type: string
example: 'http://shofy.test/api/v1/posts?page=1'
last:
type: string
example: 'http://shofy.test/api/v1/posts?page=2'
prev:
type: string
example: null
next:
type: string
example: 'http://shofy.test/api/v1/posts?page=2'
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 2
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/posts?page=1'
label: '1'
active: true
-
url: 'http://shofy.test/api/v1/posts?page=2'
label: '2'
active: false
-
url: 'http://shofy.test/api/v1/posts?page=2'
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: 'http://shofy.test/api/v1/posts'
per_page:
type: integer
example: 10
to:
type: integer
example: 10
total:
type: integer
example: 18
error:
type: boolean
example: false
message:
type: string
example: null
tags:
- Blog
security: []
/api/v1/categories:
get:
summary: 'List categories'
operationId: listCategories
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 6
name: Ecological
slug: ecological
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
children: []
parent:
id: null
name: null
slug: ''
url: 'http://shofy.test'
description: null
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
children: []
parent:
id: null
name: null
slug: ''
url: 'http://shofy.test'
description: null
-
id: 4
name: Commercial
slug: commercial
description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
children: []
parent:
id: null
name: null
slug: ''
url: 'http://shofy.test'
description: null
-
id: 3
name: Electronic
slug: electronic
description: 'Culpa quia voluptas sint aut maiores minus debitis. Et dolor occaecati ullam qui. Perspiciatis natus rerum officia veniam cum odio molestias. Omnis laudantium ipsam ut voluptatum.'
children: []
parent:
id: null
name: null
slug: ''
url: 'http://shofy.test'
description: null
-
id: 2
name: Fashion
slug: fashion
description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
children: []
parent:
id: null
name: null
slug: ''
url: 'http://shofy.test'
description: null
-
id: 1
name: 'Crisp Bread & Cake'
slug: crisp-bread-cake
description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
children: []
parent:
id: null
name: null
slug: ''
url: 'http://shofy.test'
description: null
links:
first: 'http://shofy.test/api/v1/categories?page=1'
last: 'http://shofy.test/api/v1/categories?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/categories?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: 'http://shofy.test/api/v1/categories'
per_page: 10
to: 6
total: 6
error: false
message: null
properties:
data:
type: array
example:
-
id: 6
name: Ecological
slug: ecological
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
children: []
parent:
id: null
name: null
slug: ''
url: 'http://shofy.test'
description: null
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
children: []
parent:
id: null
name: null
slug: ''
url: 'http://shofy.test'
description: null
-
id: 4
name: Commercial
slug: commercial
description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
children: []
parent:
id: null
name: null
slug: ''
url: 'http://shofy.test'
description: null
-
id: 3
name: Electronic
slug: electronic
description: 'Culpa quia voluptas sint aut maiores minus debitis. Et dolor occaecati ullam qui. Perspiciatis natus rerum officia veniam cum odio molestias. Omnis laudantium ipsam ut voluptatum.'
children: []
parent:
id: null
name: null
slug: ''
url: 'http://shofy.test'
description: null
-
id: 2
name: Fashion
slug: fashion
description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
children: []
parent:
id: null
name: null
slug: ''
url: 'http://shofy.test'
description: null
-
id: 1
name: 'Crisp Bread & Cake'
slug: crisp-bread-cake
description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
children: []
parent:
id: null
name: null
slug: ''
url: 'http://shofy.test'
description: null
items:
type: object
properties:
id:
type: integer
example: 6
name:
type: string
example: Ecological
slug:
type: string
example: ecological
description:
type: string
example: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
children:
type: array
example: []
parent:
type: object
properties:
id:
type: string
example: null
name:
type: string
example: null
slug:
type: string
example: ''
url:
type: string
example: 'http://shofy.test'
description:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: 'http://shofy.test/api/v1/categories?page=1'
last:
type: string
example: 'http://shofy.test/api/v1/categories?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/categories?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: 'http://shofy.test/api/v1/categories'
per_page:
type: integer
example: 10
to:
type: integer
example: 6
total:
type: integer
example: 6
error:
type: boolean
example: false
message:
type: string
example: null
tags:
- Blog
security: []
/api/v1/tags:
get:
summary: 'List tags'
operationId: listTags
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 1
name: General
slug: general
description: null
-
id: 2
name: Design
slug: design
description: null
-
id: 3
name: Fashion
slug: fashion
description: null
-
id: 4
name: Branding
slug: branding
description: null
-
id: 5
name: Modern
slug: modern
description: null
-
id: 6
name: Nature
slug: nature
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
-
id: 8
name: Sunglasses
slug: sunglasses
description: null
links:
first: 'http://shofy.test/api/v1/tags?page=1'
last: 'http://shofy.test/api/v1/tags?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/tags?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: 'http://shofy.test/api/v1/tags'
per_page: 10
to: 8
total: 8
error: false
message: null
properties:
data:
type: array
example:
-
id: 1
name: General
slug: general
description: null
-
id: 2
name: Design
slug: design
description: null
-
id: 3
name: Fashion
slug: fashion
description: null
-
id: 4
name: Branding
slug: branding
description: null
-
id: 5
name: Modern
slug: modern
description: null
-
id: 6
name: Nature
slug: nature
description: null
-
id: 7
name: Vintage
slug: vintage
description: null
-
id: 8
name: Sunglasses
slug: sunglasses
description: null
items:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: General
slug:
type: string
example: general
description:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: 'http://shofy.test/api/v1/tags?page=1'
last:
type: string
example: 'http://shofy.test/api/v1/tags?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/tags?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: 'http://shofy.test/api/v1/tags'
per_page:
type: integer
example: 10
to:
type: integer
example: 8
total:
type: integer
example: 8
error:
type: boolean
example: false
message:
type: string
example: null
tags:
- Blog
security: []
/api/v1/posts/filters:
get:
summary: 'Filters posts'
operationId: filtersPosts
description: ''
parameters:
-
in: query
name: page
description: 'Current page of the collection. Default: 1'
example: 17
required: false
schema:
type: integer
description: 'Current page of the collection. Default: 1'
example: 17
nullable: false
-
in: query
name: per_page
description: 'Maximum number of items to be returned in result set.Default: 10'
example: 17
required: false
schema:
type: integer
description: 'Maximum number of items to be returned in result set.Default: 10'
example: 17
nullable: false
-
in: query
name: search
description: 'Limit results to those matching a string.'
example: consequatur
required: false
schema:
type: string
description: 'Limit results to those matching a string.'
example: consequatur
nullable: false
-
in: query
name: after
description: 'Limit response to posts published after a given ISO8601 compliant date.'
example: consequatur
required: false
schema:
type: string
description: 'Limit response to posts published after a given ISO8601 compliant date.'
example: consequatur
nullable: false
-
in: query
name: author
description: 'Limit result set to posts assigned to specific authors.'
example: consequatur
required: false
schema:
type: string
description: 'Limit result set to posts assigned to specific authors.'
example: consequatur
nullable: false
-
in: query
name: author_exclude
description: 'Ensure result set excludes posts assigned to specific authors.'
example: consequatur
required: false
schema:
type: string
description: 'Ensure result set excludes posts assigned to specific authors.'
example: consequatur
nullable: false
-
in: query
name: before
description: 'Limit response to posts published before a given ISO8601 compliant date.'
example: consequatur
required: false
schema:
type: string
description: 'Limit response to posts published before a given ISO8601 compliant date.'
example: consequatur
nullable: false
-
in: query
name: exclude
description: 'Ensure result set excludes specific IDs.'
example: consequatur
required: false
schema:
type: string
description: 'Ensure result set excludes specific IDs.'
example: consequatur
nullable: false
-
in: query
name: include
description: 'Limit result set to specific IDs.'
example: consequatur
required: false
schema:
type: string
description: 'Limit result set to specific IDs.'
example: consequatur
nullable: false
-
in: query
name: order
description: 'Order sort attribute ascending or descending. Default: desc .One of: asc, desc'
example: consequatur
required: false
schema:
type: string
description: 'Order sort attribute ascending or descending. Default: desc .One of: asc, desc'
example: consequatur
nullable: false
-
in: query
name: order_by
description: 'Sort collection by object attribute. Default: updated_at. One of: author, created_at, updated_at, id, slug, title'
example: consequatur
required: false
schema:
type: string
description: 'Sort collection by object attribute. Default: updated_at. One of: author, created_at, updated_at, id, slug, title'
example: consequatur
nullable: false
-
in: query
name: categories
description: 'Limit result set to all items that have the specified term assigned in the categories taxonomy.'
example: consequatur
required: false
schema:
type: string
description: 'Limit result set to all items that have the specified term assigned in the categories taxonomy.'
example: consequatur
nullable: false
-
in: query
name: categories_exclude
description: 'Limit result set to all items except those that have the specified term assigned in the categories taxonomy.'
example: consequatur
required: false
schema:
type: string
description: 'Limit result set to all items except those that have the specified term assigned in the categories taxonomy.'
example: consequatur
nullable: false
-
in: query
name: tags
description: 'Limit result set to all items that have the specified term assigned in the tags taxonomy.'
example: consequatur
required: false
schema:
type: string
description: 'Limit result set to all items that have the specified term assigned in the tags taxonomy.'
example: consequatur
nullable: false
-
in: query
name: tags_exclude
description: 'Limit result set to all items except those that have the specified term assigned in the tags taxonomy.'
example: consequatur
required: false
schema:
type: string
description: 'Limit result set to all items except those that have the specified term assigned in the tags taxonomy.'
example: consequatur
nullable: false
-
in: query
name: featured
description: 'Limit result set to items that are sticky.'
example: consequatur
required: false
schema:
type: string
description: 'Limit result set to items that are sticky.'
example: consequatur
nullable: false
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data: []
links:
first: 'http://shofy.test/api/v1/posts/filters?page=1'
last: 'http://shofy.test/api/v1/posts/filters?page=1'
prev: 'http://shofy.test/api/v1/posts/filters?page=16'
next: null
meta:
current_page: 17
from: null
last_page: 1
links:
-
url: 'http://shofy.test/api/v1/posts/filters?page=16'
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/posts/filters?page=1'
label: '1'
active: false
-
url: null
label: 'Next »'
active: false
path: 'http://shofy.test/api/v1/posts/filters'
per_page: 17
to: null
total: 0
error: false
message: null
properties:
data:
type: array
example: []
links:
type: object
properties:
first:
type: string
example: 'http://shofy.test/api/v1/posts/filters?page=1'
last:
type: string
example: 'http://shofy.test/api/v1/posts/filters?page=1'
prev:
type: string
example: 'http://shofy.test/api/v1/posts/filters?page=16'
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 17
from:
type: string
example: null
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: 'http://shofy.test/api/v1/posts/filters?page=16'
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/posts/filters?page=1'
label: '1'
active: false
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: 'http://shofy.test/api/v1/posts/filters?page=16'
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: 'http://shofy.test/api/v1/posts/filters'
per_page:
type: integer
example: 17
to:
type: string
example: null
total:
type: integer
example: 0
error:
type: boolean
example: false
message:
type: string
example: null
tags:
- Blog
security: []
'/api/v1/posts/{slug}':
get:
summary: 'Get post by slug'
operationId: getPostBySlug
description: ''
parameters:
-
in: query
name: slug
description: 'Find by slug of post.'
example: consequatur
required: false
schema:
type: string
description: 'Find by slug of post.'
example: consequatur
nullable: false
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: 'Not found'
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: 'Not found'
tags:
- Blog
security: []
parameters:
-
in: path
name: slug
description: 'The slug of the post.'
example: consequatur
required: true
schema:
type: string
/api/v1/categories/filters:
get:
summary: 'Filters categories'
operationId: filtersCategories
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
url: 'http://shofy.test/blog/organic-fruits'
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
-
id: 2
name: Fashion
slug: fashion
url: 'http://shofy.test/blog/fashion'
description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
-
id: 3
name: Electronic
slug: electronic
url: 'http://shofy.test/blog/electronic'
description: 'Culpa quia voluptas sint aut maiores minus debitis. Et dolor occaecati ullam qui. Perspiciatis natus rerum officia veniam cum odio molestias. Omnis laudantium ipsam ut voluptatum.'
-
id: 6
name: Ecological
slug: ecological
url: 'http://shofy.test/blog/ecological'
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
-
id: 1
name: 'Crisp Bread & Cake'
slug: crisp-bread-cake
url: 'http://shofy.test/blog/crisp-bread-cake'
description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
-
id: 4
name: Commercial
slug: commercial
url: 'http://shofy.test/blog/commercial'
description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
links:
first: 'http://shofy.test/api/v1/categories/filters?page=1'
last: 'http://shofy.test/api/v1/categories/filters?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/categories/filters?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: 'http://shofy.test/api/v1/categories/filters'
per_page: 10
to: 6
total: 6
error: false
message: null
properties:
data:
type: array
example:
-
id: 5
name: 'Organic Fruits'
slug: organic-fruits
url: 'http://shofy.test/blog/organic-fruits'
description: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
-
id: 2
name: Fashion
slug: fashion
url: 'http://shofy.test/blog/fashion'
description: 'Consequatur magni suscipit veniam labore optio modi minus. Cum neque rerum id natus non placeat rerum. Iure vel recusandae quia voluptatem omnis ratione tempora quia.'
-
id: 3
name: Electronic
slug: electronic
url: 'http://shofy.test/blog/electronic'
description: 'Culpa quia voluptas sint aut maiores minus debitis. Et dolor occaecati ullam qui. Perspiciatis natus rerum officia veniam cum odio molestias. Omnis laudantium ipsam ut voluptatum.'
-
id: 6
name: Ecological
slug: ecological
url: 'http://shofy.test/blog/ecological'
description: 'Reprehenderit voluptas excepturi qui sunt. Consequatur quia consequatur consequuntur consequatur. Et adipisci error voluptatem vitae amet repellendus sit. Possimus omnis fugiat recusandae quod.'
-
id: 1
name: 'Crisp Bread & Cake'
slug: crisp-bread-cake
url: 'http://shofy.test/blog/crisp-bread-cake'
description: 'Et magni blanditiis quos optio delectus animi possimus. Repudiandae expedita alias ipsam. Magnam quas ipsam autem ipsam.'
-
id: 4
name: Commercial
slug: commercial
url: 'http://shofy.test/blog/commercial'
description: 'Optio incidunt delectus ut adipisci ea neque et aliquid. Alias iure ratione omnis consequatur. Dolor sequi natus sit iste aut.'
items:
type: object
properties:
id:
type: integer
example: 5
name:
type: string
example: 'Organic Fruits'
slug:
type: string
example: organic-fruits
url:
type: string
example: 'http://shofy.test/blog/organic-fruits'
description:
type: string
example: 'Quae in praesentium quae dignissimos ratione et aliquid. Architecto maiores nisi quisquam consequuntur veniam sapiente. Voluptatum voluptates fugiat ut molestiae.'
links:
type: object
properties:
first:
type: string
example: 'http://shofy.test/api/v1/categories/filters?page=1'
last:
type: string
example: 'http://shofy.test/api/v1/categories/filters?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/categories/filters?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: 'http://shofy.test/api/v1/categories/filters'
per_page:
type: integer
example: 10
to:
type: integer
example: 6
total:
type: integer
example: 6
error:
type: boolean
example: false
message:
type: string
example: null
tags:
- Blog
security: []
'/api/v1/categories/{slug}':
get:
summary: 'Get category by slug'
operationId: getCategoryBySlug
description: ''
parameters:
-
in: query
name: slug
description: 'Find by slug of category.'
example: consequatur
required: false
schema:
type: string
description: 'Find by slug of category.'
example: consequatur
nullable: false
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: 'Not found'
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: 'Not found'
tags:
- Blog
security: []
parameters:
-
in: path
name: slug
description: 'The slug of the category.'
example: consequatur
required: true
schema:
type: string
/api/v1/ecommerce/brands:
get:
summary: 'Get list of brands'
operationId: getListOfBrands
description: ''
parameters:
-
in: query
name: brands
description: 'List of brand IDs if you need filter by brands.'
example: null
required: false
schema:
type: array
description: 'List of brand IDs if you need filter by brands.'
example: null
items:
type: string
-
in: query
name: page
description: 'Page number. Default: 1.'
example: null
required: false
schema:
type: integer
description: 'Page number. Default: 1.'
example: null
nullable: false
-
in: query
name: per_page
description: 'Number of items per page. Default: 16.'
example: null
required: false
schema:
type: integer
description: 'Number of items per page. Default: 16.'
example: null
nullable: false
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data: []
links:
first: 'http://shofy.test/api/v1/ecommerce/brands?page=1'
last: 'http://shofy.test/api/v1/ecommerce/brands?page=1'
prev: null
next: null
meta:
current_page: 1
from: null
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/ecommerce/brands?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: 'http://shofy.test/api/v1/ecommerce/brands'
per_page: 16
to: null
total: 0
error: false
message: null
properties:
data:
type: array
example: []
links:
type: object
properties:
first:
type: string
example: 'http://shofy.test/api/v1/ecommerce/brands?page=1'
last:
type: string
example: 'http://shofy.test/api/v1/ecommerce/brands?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: string
example: null
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/ecommerce/brands?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: 'http://shofy.test/api/v1/ecommerce/brands'
per_page:
type: integer
example: 16
to:
type: string
example: null
total:
type: integer
example: 0
error:
type: boolean
example: false
message:
type: string
example: null
tags:
- Brands
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
brands:
type: array
description: 'The <code>id</code> of an existing record in the ec_product_brands table.'
example: null
items:
type: string
nullable: true
is_featured:
type: boolean
description: 'Filter by featured status.'
example: false
nullable: true
security: []
'/api/v1/ecommerce/brands/{slug}':
get:
summary: 'Get brand details by slug'
operationId: getBrandDetailsBySlug
description: ''
parameters: []
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: ''
properties:
message:
type: string
example: ''
tags:
- Brands
security: []
parameters:
-
in: path
name: slug
description: 'The slug of the brand.'
example: consequatur
required: true
schema:
type: string
'/api/v1/ecommerce/brands/{id}/products':
get:
summary: 'Get products by brand'
operationId: getProductsByBrand
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 126
slug: testing
url: 'http://shofy.test/products/testing'
name: Testing
sku: SF-2443-GZIR
description: ''
content: ''
quantity: 0
is_out_of_stock: false
stock_status_label: 'In stock'
stock_status_html: '<span class="text-success">In stock</span>'
price: 0
price_formatted: $0.00
original_price: 0
original_price_formatted: $0.00
reviews_avg: null
reviews_count: 0
images: []
images_thumb: []
image_with_sizes: null
weight: 0
height: 0
wide: 0
length: 0
image_url: 'http://shofy.test/vendor/core/core/base/images/placeholder.png'
product_options: []
store:
id: null
slug: null
name: null
links:
first: 'http://shofy.test/api/v1/ecommerce/brands/1/products?page=1'
last: 'http://shofy.test/api/v1/ecommerce/brands/1/products?page=1'
prev: null
next: null
meta:
current_page: 1
from: 1
last_page: 1
links:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/ecommerce/brands/1/products?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
path: 'http://shofy.test/api/v1/ecommerce/brands/1/products'
per_page: 24
to: 1
total: 1
error: false
message: null
properties:
data:
type: array
example:
-
id: 126
slug: testing
url: 'http://shofy.test/products/testing'
name: Testing
sku: SF-2443-GZIR
description: ''
content: ''
quantity: 0
is_out_of_stock: false
stock_status_label: 'In stock'
stock_status_html: '<span class="text-success">In stock</span>'
price: 0
price_formatted: $0.00
original_price: 0
original_price_formatted: $0.00
reviews_avg: null
reviews_count: 0
images: []
images_thumb: []
image_with_sizes: null
weight: 0
height: 0
wide: 0
length: 0
image_url: 'http://shofy.test/vendor/core/core/base/images/placeholder.png'
product_options: []
store:
id: null
slug: null
name: null
items:
type: object
properties:
id:
type: integer
example: 126
slug:
type: string
example: testing
url:
type: string
example: 'http://shofy.test/products/testing'
name:
type: string
example: Testing
sku:
type: string
example: SF-2443-GZIR
description:
type: string
example: ''
content:
type: string
example: ''
quantity:
type: integer
example: 0
is_out_of_stock:
type: boolean
example: false
stock_status_label:
type: string
example: 'In stock'
stock_status_html:
type: string
example: '<span class="text-success">In stock</span>'
price:
type: integer
example: 0
price_formatted:
type: string
example: $0.00
original_price:
type: integer
example: 0
original_price_formatted:
type: string
example: $0.00
reviews_avg:
type: string
example: null
reviews_count:
type: integer
example: 0
images:
type: array
example: []
images_thumb:
type: array
example: []
image_with_sizes:
type: string
example: null
weight:
type: integer
example: 0
height:
type: integer
example: 0
wide:
type: integer
example: 0
length:
type: integer
example: 0
image_url:
type: string
example: 'http://shofy.test/vendor/core/core/base/images/placeholder.png'
product_options:
type: array
example: []
store:
type: object
properties:
id:
type: string
example: null
slug:
type: string
example: null
name:
type: string
example: null
links:
type: object
properties:
first:
type: string
example: 'http://shofy.test/api/v1/ecommerce/brands/1/products?page=1'
last:
type: string
example: 'http://shofy.test/api/v1/ecommerce/brands/1/products?page=1'
prev:
type: string
example: null
next:
type: string
example: null
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 1
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/ecommerce/brands/1/products?page=1'
label: '1'
active: true
-
url: null
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: 'http://shofy.test/api/v1/ecommerce/brands/1/products'
per_page:
type: integer
example: 24
to:
type: integer
example: 1
total:
type: integer
example: 1
error:
type: boolean
example: false
message:
type: string
example: null
tags:
- Brands
security: []
parameters:
-
in: path
name: id
description: 'The ID of the brand.'
example: 1
required: true
schema:
type: integer
/api/v1/ecommerce/cart:
post:
summary: 'Add product to cart'
operationId: addProductToCart
description: ''
parameters: []
responses: { }
tags:
- Cart
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: integer
description: 'ID of the product.'
example: 1
nullable: false
qty:
type: integer
description: 'Quantity of the product. Default: 1.'
example: 1
nullable: false
required:
- product_id
- qty
security: []
'/api/v1/ecommerce/cart/{id}':
post:
summary: 'Add product to cart'
operationId: addProductToCart
description: ''
parameters: []
responses: { }
tags:
- Cart
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: integer
description: 'ID of the product.'
example: 1
nullable: false
qty:
type: integer
description: 'Quantity of the product. Default: 1.'
example: 1
nullable: false
required:
- product_id
- qty
security: []
put:
summary: 'Update quantity of a product in cart'
operationId: updateQuantityOfAProductInCart
description: ''
parameters: []
responses: { }
tags:
- Cart
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: integer
description: 'ID of the product.'
example: 1
nullable: false
qty:
type: integer
description: 'Quantity of the product.'
example: 1
nullable: false
required:
- product_id
- qty
security: []
delete:
summary: 'Remove a cart item by its ID.'
operationId: removeACartItemByItsID
description: ''
parameters: []
responses: { }
tags:
- Cart
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: string
description: 'The ID of the product to remove from the cart. The <code>id</code> of an existing record in the ec_products table.'
example: 1
nullable: false
required:
- product_id
security: []
get:
summary: 'Get a cart item by id.'
operationId: getACartItemById
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: consequatur
cart_items: []
count: 0
raw_total: 0
raw_total_formatted: $0.00
sub_total: 0
sub_total_formatted: $0.00
tax_amount: 0
tax_amount_formatted: $0.00
promotion_discount_amount: 0
promotion_discount_amount_formatted: $0.00
coupon_discount_amount: 0
coupon_discount_amount_formatted: $0.00
applied_coupon_code: null
order_total: 0
order_total_formatted: $0.00
properties:
id:
type: string
example: consequatur
cart_items:
type: array
example: []
count:
type: integer
example: 0
raw_total:
type: integer
example: 0
raw_total_formatted:
type: string
example: $0.00
sub_total:
type: integer
example: 0
sub_total_formatted:
type: string
example: $0.00
tax_amount:
type: integer
example: 0
tax_amount_formatted:
type: string
example: $0.00
promotion_discount_amount:
type: integer
example: 0
promotion_discount_amount_formatted:
type: string
example: $0.00
coupon_discount_amount:
type: integer
example: 0
coupon_discount_amount_formatted:
type: string
example: $0.00
applied_coupon_code:
type: string
example: null
order_total:
type: integer
example: 0
order_total_formatted:
type: string
example: $0.00
tags:
- Cart
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
customer_id:
type: integer
description: 'is ID of the customer.'
example: 1
nullable: false
id:
type: string
description: 'ID of the cart item.'
example: e70c6c88dae8344b03e39bb147eba66a
nullable: false
required:
- id
security: []
parameters:
-
in: path
name: id
description: 'The ID of the cart.'
example: consequatur
required: true
schema:
type: string
/api/v1/ecommerce/cart/refresh:
post:
summary: 'Refresh cart items'
operationId: refreshCartItems
description: ''
parameters: []
responses: { }
tags:
- Cart
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
products:
type: array
description: 'List of products with product_id and quantity.'
example:
- consequatur
items:
type: string
required:
- products
security: []
/api/v1/ecommerce/checkout/taxes/calculate:
post:
summary: 'Calculate tax for products in cart'
operationId: calculateTaxForProductsInCart
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
items:
-
product_id: 1
price: 100
price_formatted: $100.00
quantity: 2
tax_rate: 10
tax_amount: 20
tax_amount_formatted: $20.00
subtotal: 200
subtotal_formatted: $200.00
total: 220
total_formatted: $220.00
totals:
sub_total: 200
sub_total_formatted: $200.00
tax_amount: 20
tax_amount_formatted: $20.00
total: 220
total_formatted: $220.00
properties:
items:
type: array
example:
-
product_id: 1
price: 100
price_formatted: $100.00
quantity: 2
tax_rate: 10
tax_amount: 20
tax_amount_formatted: $20.00
subtotal: 200
subtotal_formatted: $200.00
total: 220
total_formatted: $220.00
items:
type: object
properties:
product_id:
type: integer
example: 1
price:
type: integer
example: 100
price_formatted:
type: string
example: $100.00
quantity:
type: integer
example: 2
tax_rate:
type: integer
example: 10
tax_amount:
type: integer
example: 20
tax_amount_formatted:
type: string
example: $20.00
subtotal:
type: integer
example: 200
subtotal_formatted:
type: string
example: $200.00
total:
type: integer
example: 220
total_formatted:
type: string
example: $220.00
totals:
type: object
properties:
sub_total:
type: integer
example: 200
sub_total_formatted:
type: string
example: $200.00
tax_amount:
type: integer
example: 20
tax_amount_formatted:
type: string
example: $20.00
total:
type: integer
example: 220
total_formatted:
type: string
example: $220.00
tags:
- Cart
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
products:
type: array
description: 'List of products with id and quantity.'
example:
- consequatur
items:
type: string
country:
type: string
description: 'Country code.'
example: US
nullable: true
state:
type: string
description: 'State code.'
example: CA
nullable: true
city:
type: string
description: 'City name.'
example: 'Los Angeles'
nullable: true
zip_code:
type: string
description: 'ZIP code.'
example: '90001'
nullable: true
required:
- products
security: []
'/api/v1/ecommerce/checkout/cart/{id}':
get:
summary: "Process Checkout\n\nProcess the checkout for a specific cart ID. This endpoint restores the cart, generates an order token,\nand redirects the user to the checkout page."
operationId: processCheckoutProcessTheCheckoutForASpecificCartIDThisEndpointRestoresTheCartGeneratesAnOrderTokenandRedirectsTheUserToTheCheckoutPage
description: ''
parameters: []
responses:
302:
description: ''
content:
application/json:
schema:
type: object
example: { }
properties: { }
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Cart not found.'
properties:
message:
type: string
example: 'Cart not found.'
tags:
- Checkout
parameters:
-
in: path
name: id
description: 'The ID of the cart to process.'
example: '12345'
required: true
schema:
type: string
/api/v1/ecommerce/compare:
post:
summary: 'Add product to compare'
operationId: addProductToCompare
description: ''
parameters: []
responses: { }
tags:
- Compare
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: integer
description: 'ID of the product.'
example: 1
nullable: false
required:
- product_id
security: []
'/api/v1/ecommerce/compare/{id}':
post:
summary: 'Add product to compare'
operationId: addProductToCompare
description: ''
parameters: []
responses: { }
tags:
- Compare
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: integer
description: 'ID of the product.'
example: 1
nullable: false
required:
- product_id
security: []
delete:
summary: 'Remove a product from compare list'
operationId: removeAProductFromCompareList
description: ''
parameters: []
responses: { }
tags:
- Compare
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: string
description: 'The ID of the product to remove from the compare list. The <code>id</code> of an existing record in the ec_products table.'
example: 1
nullable: false
required:
- product_id
security: []
get:
summary: 'Get compare items'
operationId: getCompareItems
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: consequatur
data:
count: 0
items: []
properties:
id:
type: string
example: consequatur
data:
type: object
properties:
count:
type: integer
example: 0
items:
type: array
example: []
tags:
- Compare
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: 'ID of the compare list.'
example: e70c6c88dae8344b03e39bb147eba66a
nullable: false
required:
- id
security: []
parameters:
-
in: path
name: id
description: 'The ID of the compare.'
example: consequatur
required: true
schema:
type: string
/api/v1/ecommerce/coupon/apply:
post:
summary: 'Apply coupon code'
operationId: applyCouponCode
description: ''
parameters: []
responses: { }
tags:
- Coupons
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
coupon_code:
type: string
description: 'The coupon code.'
example: DISCOUNT20
nullable: false
cart_id:
type: string
description: 'ID of the cart to apply coupon to.'
example: e70c6c88dae8344b03e39bb147eba66a
nullable: false
required:
- coupon_code
- cart_id
security: []
/api/v1/ecommerce/coupon/remove:
post:
summary: 'Remove coupon code'
operationId: removeCouponCode
description: ''
parameters: []
responses: { }
tags:
- Coupons
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
cart_id:
type: string
description: 'ID of the cart to remove coupon from.'
example: e70c6c88dae8344b03e39bb147eba66a
nullable: false
security: []
/api/v1/ecommerce/currencies:
get:
summary: 'Get list of available currencies'
operationId: getListOfAvailableCurrencies
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data:
-
id: 1
title: USD
symbol: $
is_prefix_symbol: true
decimals: 2
order: 0
is_default: true
exchange_rate: 1
-
id: 2
title: EUR
symbol: €
is_prefix_symbol: false
decimals: 2
order: 1
is_default: false
exchange_rate: 0.91
message: null
properties:
error:
type: boolean
example: false
data:
type: array
example:
-
id: 1
title: USD
symbol: $
is_prefix_symbol: true
decimals: 2
order: 0
is_default: true
exchange_rate: 1
-
id: 2
title: EUR
symbol: €
is_prefix_symbol: false
decimals: 2
order: 1
is_default: false
exchange_rate: 0.91
items:
type: object
properties:
id:
type: integer
example: 1
title:
type: string
example: USD
symbol:
type: string
example: $
is_prefix_symbol:
type: boolean
example: true
decimals:
type: integer
example: 2
order:
type: integer
example: 0
is_default:
type: boolean
example: true
exchange_rate:
type: integer
example: 1
message:
type: string
example: null
tags:
- Currencies
security: []
/api/v1/ecommerce/currencies/current:
get:
summary: 'Get current currency'
operationId: getCurrentCurrency
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data:
id: 1
title: USD
symbol: $
is_prefix_symbol: true
decimals: 2
order: 0
is_default: true
exchange_rate: 1
message: null
properties:
error:
type: boolean
example: false
data:
type: object
properties:
id:
type: integer
example: 1
title:
type: string
example: USD
symbol:
type: string
example: $
is_prefix_symbol:
type: boolean
example: true
decimals:
type: integer
example: 2
order:
type: integer
example: 0
is_default:
type: boolean
example: true
exchange_rate:
type: integer
example: 1
message:
type: string
example: null
tags:
- Currencies
security: []
/api/v1/device-tokens:
post:
summary: 'Register or update device token'
operationId: registerOrUpdateDeviceToken
description: 'Register a new device token or update an existing one for push notifications.'
parameters: []
responses: { }
tags:
- 'Device Tokens'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
token:
type: string
description: 'The FCM device token.'
example: consequatur
nullable: false
platform:
type: string
description: 'The device platform (android, ios).'
example: consequatur
nullable: true
app_version:
type: string
description: 'The app version.'
example: consequatur
nullable: true
device_id:
type: string
description: 'The unique device identifier.'
example: consequatur
nullable: true
user_type:
type: string
description: 'The user type (customer, admin).'
example: consequatur
nullable: true
user_id:
type: integer
description: 'The user ID.'
example: 17
nullable: true
required:
- token
security: []
get:
summary: "Get user's device tokens"
operationId: getUsersDeviceTokens
description: 'Retrieve all device tokens for the authenticated user.'
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- 'Device Tokens'
security: []
'/api/v1/device-tokens/{id}':
put:
summary: 'Update device token'
operationId: updateDeviceToken
description: 'Update an existing device token.'
parameters: []
responses: { }
tags:
- 'Device Tokens'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
platform:
type: string
description: 'The device platform (android, ios).'
example: consequatur
nullable: false
app_version:
type: string
description: 'The app version.'
example: consequatur
nullable: false
device_id:
type: string
description: 'The unique device identifier.'
example: consequatur
nullable: false
security: []
delete:
summary: 'Delete device token'
operationId: deleteDeviceToken
description: 'Delete a device token to stop receiving push notifications.'
parameters: []
responses: { }
tags:
- 'Device Tokens'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the device token.'
example: consequatur
required: true
schema:
type: string
/api/v1/device-tokens/by-token:
delete:
summary: 'Delete device token by token value'
operationId: deleteDeviceTokenByTokenValue
description: 'Delete a device token using the token value.'
parameters: []
responses: { }
tags:
- 'Device Tokens'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
token:
type: string
description: 'The FCM device token to delete.'
example: consequatur
nullable: false
required:
- token
security: []
'/api/v1/device-tokens/{id}/deactivate':
post:
summary: 'Deactivate device token'
operationId: deactivateDeviceToken
description: 'Deactivate a device token without deleting it.'
parameters: []
responses: { }
tags:
- 'Device Tokens'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the device token.'
example: consequatur
required: true
schema:
type: string
/api/v1/ecommerce/downloads:
get:
summary: 'Get list of digital products available for download'
operationId: getListOfDigitalProductsAvailableForDownload
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- Downloads
'/api/v1/ecommerce/downloads/{id}':
get:
summary: 'Download a digital product'
operationId: downloadADigitalProduct
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- Downloads
parameters:
-
in: path
name: id
description: 'The ID of the download.'
example: '1562'
required: true
schema:
type: string
'/api/v1/ecommerce/download/{token}/{filename}':
get:
summary: 'Download a file using a token'
operationId: downloadAFileUsingAToken
description: ''
parameters: []
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: ''
properties:
message:
type: string
example: ''
tags:
- Endpoints
security: []
parameters:
-
in: path
name: token
description: ''
example: consequatur
required: true
schema:
type: string
-
in: path
name: filename
description: ''
example: consequatur
required: true
schema:
type: string
'/api/v1/ecommerce/orders/download-proof/{token}/{filename}':
get:
summary: 'Download a proof file using a token'
operationId: downloadAProofFileUsingAToken
description: ''
parameters: []
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: ''
properties:
message:
type: string
example: ''
tags:
- Endpoints
security: []
parameters:
-
in: path
name: token
description: ''
example: consequatur
required: true
schema:
type: string
-
in: path
name: filename
description: ''
example: consequatur
required: true
schema:
type: string
/api/v1/auth/apple:
post:
summary: ''
operationId: postApiV1AuthApple
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/v1/auth/google:
post:
summary: ''
operationId: postApiV1AuthGoogle
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/v1/auth/facebook:
post:
summary: ''
operationId: postApiV1AuthFacebook
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/v1/auth/x:
post:
summary: ''
operationId: postApiV1AuthX
description: ''
parameters: []
responses: { }
tags:
- Endpoints
security: []
/api/v1/ecommerce/filters:
get:
summary: 'Get filter data for products'
operationId: getFilterDataForProducts
description: ''
parameters:
-
in: query
name: category
description: 'Category ID to get filter data for a specific category.'
example: null
required: false
schema:
type: integer
description: 'Category ID to get filter data for a specific category.'
example: null
nullable: false
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
categories:
-
id: 1
name: 'New Arrivals'
slug: new-arrivals
url: product-categories/new-arrivals
parent_id: 0
-
id: 2
name: Electronics
slug: electronics
url: product-categories/electronics
parent_id: 0
-
id: 19
name: Gifts
slug: gifts
url: product-categories/gifts
parent_id: 0
-
id: 20
name: Computers
slug: computers
url: product-categories/computers
parent_id: 0
-
id: 25
name: 'Smartphones & Tablets'
slug: smartphones-tablets
url: product-categories/smartphones-tablets
parent_id: 0
-
id: 26
name: "TV,\n Video & Music"
slug: tv-video-music
url: product-categories/tv-video-music
parent_id: 0
-
id: 27
name: Cameras
slug: cameras
url: product-categories/cameras
parent_id: 0
-
id: 28
name: Cooking
slug: cooking
url: product-categories/cooking
parent_id: 0
-
id: 29
name: Accessories
slug: accessories
url: product-categories/accessories
parent_id: 0
-
id: 31
name: Sports
slug: sports
url: product-categories/sports
parent_id: 0
-
id: 32
name: 'Electronics Gadgets'
slug: electronics-gadgets
url: product-categories/electronics-gadgets
parent_id: 0
-
id: 3
name: Featured
slug: featured
url: product-categories/featured
parent_id: 2
-
id: 7
name: 'Computers & Laptops'
slug: computers-laptops
url: product-categories/computers-laptops
parent_id: 2
-
id: 12
name: Accessories
slug: accessories
url: product-categories/accessories
parent_id: 2
-
id: 17
name: 'Gaming Console'
slug: gaming-console
url: product-categories/gaming-console
parent_id: 2
-
id: 18
name: Playstation
slug: playstation
url: product-categories/playstation
parent_id: 2
-
id: 4
name: 'New Arrivals'
slug: new-arrivals
url: product-categories/new-arrivals
parent_id: 3
-
id: 5
name: 'Best Sellers'
slug: best-sellers
url: product-categories/best-sellers
parent_id: 3
-
id: 6
name: 'Mobile Phone'
slug: mobile-phone
url: product-categories/mobile-phone
parent_id: 3
-
id: 8
name: 'Top Brands'
slug: top-brands
url: product-categories/top-brands
parent_id: 7
-
id: 9
name: 'Weekly Best Selling'
slug: weekly-best-selling
url: product-categories/weekly-best-selling
parent_id: 7
-
id: 10
name: 'CPU Heat Pipes'
slug: cpu-heat-pipes
url: product-categories/cpu-heat-pipes
parent_id: 7
-
id: 11
name: 'CPU Coolers'
slug: cpu-coolers
url: product-categories/cpu-coolers
parent_id: 7
-
id: 13
name: Headphones
slug: headphones
url: product-categories/headphones
parent_id: 12
-
id: 14
name: 'Wireless Headphones'
slug: wireless-headphones
url: product-categories/wireless-headphones
parent_id: 12
-
id: 15
name: 'TWS Earphones'
slug: tws-earphones
url: product-categories/tws-earphones
parent_id: 12
-
id: 16
name: 'Smart Watch'
slug: smart-watch
url: product-categories/smart-watch
parent_id: 12
-
id: 21
name: Desktop
slug: desktop
url: product-categories/desktop
parent_id: 20
-
id: 22
name: Laptop
slug: laptop
url: product-categories/laptop
parent_id: 20
-
id: 23
name: Tablet
slug: tablet
url: product-categories/tablet
parent_id: 20
-
id: 24
name: Accessories
slug: accessories
url: product-categories/accessories
parent_id: 20
-
id: 30
name: 'With Bluetooth'
slug: with-bluetooth
url: product-categories/with-bluetooth
parent_id: 29
-
id: 33
name: Micrscope
slug: micrscope
url: product-categories/micrscope
parent_id: 32
-
id: 34
name: 'Remote Control'
slug: remote-control
url: product-categories/remote-control
parent_id: 32
-
id: 35
name: Monitor
slug: monitor
url: product-categories/monitor
parent_id: 32
-
id: 36
name: Thermometer
slug: thermometer
url: product-categories/thermometer
parent_id: 32
-
id: 37
name: Backpack
slug: backpack
url: product-categories/backpack
parent_id: 32
-
id: 38
name: Headphones
slug: headphones
url: product-categories/headphones
parent_id: 32
brands: []
tags: []
price_ranges: []
max_price: 0
current_category_id: 0
current_filter_categories: []
attributes:
-
id: 1
title: Color
slug: color
display_layout: visual
attributes: []
-
id: 3
title: Weight
slug: weight
display_layout: text
attributes: []
-
id: 2
title: Size
slug: size
display_layout: text
attributes: []
-
id: 4
title: Boxes
slug: boxes
display_layout: text
attributes: []
error: false
message: null
properties:
data:
type: object
properties:
categories:
type: array
example:
-
id: 1
name: 'New Arrivals'
slug: new-arrivals
url: product-categories/new-arrivals
parent_id: 0
-
id: 2
name: Electronics
slug: electronics
url: product-categories/electronics
parent_id: 0
-
id: 19
name: Gifts
slug: gifts
url: product-categories/gifts
parent_id: 0
-
id: 20
name: Computers
slug: computers
url: product-categories/computers
parent_id: 0
-
id: 25
name: 'Smartphones & Tablets'
slug: smartphones-tablets
url: product-categories/smartphones-tablets
parent_id: 0
-
id: 26
name: "TV,\n Video & Music"
slug: tv-video-music
url: product-categories/tv-video-music
parent_id: 0
-
id: 27
name: Cameras
slug: cameras
url: product-categories/cameras
parent_id: 0
-
id: 28
name: Cooking
slug: cooking
url: product-categories/cooking
parent_id: 0
-
id: 29
name: Accessories
slug: accessories
url: product-categories/accessories
parent_id: 0
-
id: 31
name: Sports
slug: sports
url: product-categories/sports
parent_id: 0
-
id: 32
name: 'Electronics Gadgets'
slug: electronics-gadgets
url: product-categories/electronics-gadgets
parent_id: 0
-
id: 3
name: Featured
slug: featured
url: product-categories/featured
parent_id: 2
-
id: 7
name: 'Computers & Laptops'
slug: computers-laptops
url: product-categories/computers-laptops
parent_id: 2
-
id: 12
name: Accessories
slug: accessories
url: product-categories/accessories
parent_id: 2
-
id: 17
name: 'Gaming Console'
slug: gaming-console
url: product-categories/gaming-console
parent_id: 2
-
id: 18
name: Playstation
slug: playstation
url: product-categories/playstation
parent_id: 2
-
id: 4
name: 'New Arrivals'
slug: new-arrivals
url: product-categories/new-arrivals
parent_id: 3
-
id: 5
name: 'Best Sellers'
slug: best-sellers
url: product-categories/best-sellers
parent_id: 3
-
id: 6
name: 'Mobile Phone'
slug: mobile-phone
url: product-categories/mobile-phone
parent_id: 3
-
id: 8
name: 'Top Brands'
slug: top-brands
url: product-categories/top-brands
parent_id: 7
-
id: 9
name: 'Weekly Best Selling'
slug: weekly-best-selling
url: product-categories/weekly-best-selling
parent_id: 7
-
id: 10
name: 'CPU Heat Pipes'
slug: cpu-heat-pipes
url: product-categories/cpu-heat-pipes
parent_id: 7
-
id: 11
name: 'CPU Coolers'
slug: cpu-coolers
url: product-categories/cpu-coolers
parent_id: 7
-
id: 13
name: Headphones
slug: headphones
url: product-categories/headphones
parent_id: 12
-
id: 14
name: 'Wireless Headphones'
slug: wireless-headphones
url: product-categories/wireless-headphones
parent_id: 12
-
id: 15
name: 'TWS Earphones'
slug: tws-earphones
url: product-categories/tws-earphones
parent_id: 12
-
id: 16
name: 'Smart Watch'
slug: smart-watch
url: product-categories/smart-watch
parent_id: 12
-
id: 21
name: Desktop
slug: desktop
url: product-categories/desktop
parent_id: 20
-
id: 22
name: Laptop
slug: laptop
url: product-categories/laptop
parent_id: 20
-
id: 23
name: Tablet
slug: tablet
url: product-categories/tablet
parent_id: 20
-
id: 24
name: Accessories
slug: accessories
url: product-categories/accessories
parent_id: 20
-
id: 30
name: 'With Bluetooth'
slug: with-bluetooth
url: product-categories/with-bluetooth
parent_id: 29
-
id: 33
name: Micrscope
slug: micrscope
url: product-categories/micrscope
parent_id: 32
-
id: 34
name: 'Remote Control'
slug: remote-control
url: product-categories/remote-control
parent_id: 32
-
id: 35
name: Monitor
slug: monitor
url: product-categories/monitor
parent_id: 32
-
id: 36
name: Thermometer
slug: thermometer
url: product-categories/thermometer
parent_id: 32
-
id: 37
name: Backpack
slug: backpack
url: product-categories/backpack
parent_id: 32
-
id: 38
name: Headphones
slug: headphones
url: product-categories/headphones
parent_id: 32
items:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'New Arrivals'
slug:
type: string
example: new-arrivals
url:
type: string
example: product-categories/new-arrivals
parent_id:
type: integer
example: 0
brands:
type: array
example: []
tags:
type: array
example: []
price_ranges:
type: array
example: []
max_price:
type: integer
example: 0
current_category_id:
type: integer
example: 0
current_filter_categories:
type: array
example: []
attributes:
type: array
example:
-
id: 1
title: Color
slug: color
display_layout: visual
attributes: []
-
id: 3
title: Weight
slug: weight
display_layout: text
attributes: []
-
id: 2
title: Size
slug: size
display_layout: text
attributes: []
-
id: 4
title: Boxes
slug: boxes
display_layout: text
attributes: []
items:
type: object
properties:
id:
type: integer
example: 1
title:
type: string
example: Color
slug:
type: string
example: color
display_layout:
type: string
example: visual
attributes:
type: array
example: []
error:
type: boolean
example: false
message:
type: string
example: null
tags:
- Filters
security: []
/api/v1/ecommerce/flash-sales:
get:
summary: 'Get flash sales'
operationId: getFlashSales
description: ''
parameters:
-
in: query
name: keys
description: 'Array of flash sale keys to filter by.'
example: null
required: false
schema:
type: array
description: 'Array of flash sale keys to filter by.'
example: null
items:
type: string
responses:
422:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: 'The keys field is required.'
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: 'The keys field is required.'
tags:
- 'Flash Sale'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
keys:
type: array
description: 'Array of flash sale keys to filter by.'
example: null
items:
type: string
security: []
/api/v1/languages:
get:
summary: 'Get list of available languages'
operationId: getListOfAvailableLanguages
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data:
-
lang_id: 1
lang_name: English
lang_locale: en
lang_code: en_US
lang_flag: '<svg ...>'
lang_is_default: true
lang_is_rtl: false
lang_order: 0
-
lang_id: 2
lang_name: Vietnamese
lang_locale: vi
lang_code: vi
lang_flag: '<svg ...>'
lang_is_default: false
lang_is_rtl: false
lang_order: 1
message: null
properties:
error:
type: boolean
example: false
data:
type: array
example:
-
lang_id: 1
lang_name: English
lang_locale: en
lang_code: en_US
lang_flag: '<svg ...>'
lang_is_default: true
lang_is_rtl: false
lang_order: 0
-
lang_id: 2
lang_name: Vietnamese
lang_locale: vi
lang_code: vi
lang_flag: '<svg ...>'
lang_is_default: false
lang_is_rtl: false
lang_order: 1
items:
type: object
properties:
lang_id:
type: integer
example: 1
lang_name:
type: string
example: English
lang_locale:
type: string
example: en
lang_code:
type: string
example: en_US
lang_flag:
type: string
example: '<svg ...>'
lang_is_default:
type: boolean
example: true
lang_is_rtl:
type: boolean
example: false
lang_order:
type: integer
example: 0
message:
type: string
example: null
tags:
- Languages
security: []
/api/v1/languages/current:
get:
summary: 'Get current language'
operationId: getCurrentLanguage
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data:
lang_id: 1
lang_name: English
lang_locale: en
lang_code: en_US
lang_flag: us
lang_is_default: true
lang_is_rtl: false
lang_order: 0
message: null
properties:
error:
type: boolean
example: false
data:
type: object
properties:
lang_id:
type: integer
example: 1
lang_name:
type: string
example: English
lang_locale:
type: string
example: en
lang_code:
type: string
example: en_US
lang_flag:
type: string
example: us
lang_is_default:
type: boolean
example: true
lang_is_rtl:
type: boolean
example: false
lang_order:
type: integer
example: 0
message:
type: string
example: null
tags:
- Languages
security: []
/api/v1/notifications:
get:
summary: 'Get user notifications'
operationId: getUserNotifications
description: 'Retrieve notifications for the authenticated user.'
parameters:
-
in: query
name: page
description: 'Page number for pagination.'
example: 1
required: false
schema:
type: integer
description: 'Page number for pagination.'
example: 1
nullable: false
-
in: query
name: per_page
description: 'Number of notifications per page (max 50).'
example: 20
required: false
schema:
type: integer
description: 'Number of notifications per page (max 50).'
example: 20
nullable: false
-
in: query
name: unread_only
description: 'Filter to show only unread notifications.'
example: false
required: false
schema:
type: boolean
description: 'Filter to show only unread notifications.'
example: false
nullable: false
-
in: query
name: type
description: 'Filter by notification type.'
example: general
required: false
schema:
type: string
description: 'Filter by notification type.'
example: general
nullable: false
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- Notifications
security: []
/api/v1/notifications/stats:
get:
summary: 'Get notification statistics'
operationId: getNotificationStatistics
description: 'Get notification statistics for the authenticated user.'
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- Notifications
security: []
/api/v1/notifications/mark-all-read:
post:
summary: 'Mark all notifications as read'
operationId: markAllNotificationsAsRead
description: 'Mark all notifications as read for the authenticated user.'
parameters: []
responses: { }
tags:
- Notifications
security: []
'/api/v1/notifications/{id}/read':
post:
summary: 'Mark notification as read'
operationId: markNotificationAsRead
description: 'Mark a specific notification as read for the authenticated user.'
parameters: []
responses: { }
tags:
- Notifications
security: []
parameters:
-
in: path
name: id
description: 'The ID of the notification.'
example: consequatur
required: true
schema:
type: string
'/api/v1/notifications/{id}/clicked':
post:
summary: 'Mark notification as clicked'
operationId: markNotificationAsClicked
description: 'Mark a notification as clicked when user taps on it.'
parameters: []
responses: { }
tags:
- Notifications
security: []
parameters:
-
in: path
name: id
description: 'The ID of the notification.'
example: consequatur
required: true
schema:
type: string
'/api/v1/notifications/{id}':
delete:
summary: 'Delete notification'
operationId: deleteNotification
description: "Delete a notification from user's list."
parameters: []
responses: { }
tags:
- Notifications
security: []
parameters:
-
in: path
name: id
description: 'The ID of the notification.'
example: consequatur
required: true
schema:
type: string
/api/v1/ecommerce/order-returns:
get:
summary: 'Get list of order return requests for the current user'
operationId: getListOfOrderReturnRequestsForTheCurrentUser
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- 'Order Returns'
post:
summary: 'Submit a new order return request'
operationId: submitANewOrderReturnRequest
description: ''
parameters: []
responses: { }
tags:
- 'Order Returns'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
order_id:
type: integer
description: 'The ID of the order to return.'
example: 1
nullable: false
return_items:
type: array
description: 'The items to return with order_item_id, is_return, and qty.'
example:
- consequatur
items:
type: string
reason:
type: string
description: 'The reason for the return.'
example: DAMAGED_PRODUCT
nullable: false
required:
- order_id
- return_items
- reason
'/api/v1/ecommerce/order-returns/{id}':
get:
summary: 'Get detail of an order return request'
operationId: getDetailOfAnOrderReturnRequest
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- 'Order Returns'
parameters:
-
in: path
name: id
description: 'The ID of the order return.'
example: '1562'
required: true
schema:
type: string
'/api/v1/ecommerce/orders/{order_id}/returns':
get:
summary: 'Get order information for return request'
operationId: getOrderInformationForReturnRequest
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- 'Order Returns'
parameters:
-
in: path
name: order_id
description: 'The ID of the order.'
example: '1562'
required: true
schema:
type: string
/api/v1/ecommerce/orders:
get:
summary: 'Get list of orders by customer'
operationId: getListOfOrdersByCustomer
description: ''
parameters:
-
in: query
name: status
description: 'Filter orders by status (pending, processing, completed, canceled).'
example: completed
required: false
schema:
type: string
description: 'Filter orders by status (pending, processing, completed, canceled).'
example: completed
nullable: false
-
in: query
name: shipping_status
description: 'Filter orders by shipping status (not_shipped, delivering, delivered, canceled).'
example: delivered
required: false
schema:
type: string
description: 'Filter orders by shipping status (not_shipped, delivering, delivered, canceled).'
example: delivered
nullable: false
-
in: query
name: payment_status
description: 'Filter orders by payment status (pending, completed, refunding, refunded, canceled).'
example: completed
required: false
schema:
type: string
description: 'Filter orders by payment status (pending, completed, refunding, refunded, canceled).'
example: completed
nullable: false
-
in: query
name: per_page
description: 'Number of orders per page.'
example: 10
required: false
schema:
type: integer
description: 'Number of orders per page.'
example: 10
nullable: false
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- Orders
'/api/v1/ecommerce/orders/{id}':
get:
summary: 'Get order detail'
operationId: getOrderDetail
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- Orders
parameters:
-
in: path
name: id
description: 'The ID of the order.'
example: consequatur
required: true
schema:
type: string
'/api/v1/ecommerce/orders/{id}/cancel':
post:
summary: 'Cancel an order'
operationId: cancelAnOrder
description: ''
parameters: []
responses: { }
tags:
- Orders
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
cancellation_reason:
type: string
description: 'The reason for cancellation.'
example: OTHER
nullable: false
cancellation_reason_description:
type: string
description: 'The description of the cancellation reason (required if cancellation_reason is OTHER).'
example: 'I found a better deal elsewhere'
nullable: true
required:
- cancellation_reason
parameters:
-
in: path
name: id
description: 'The ID of the order.'
example: consequatur
required: true
schema:
type: string
'/api/v1/ecommerce/orders/{id}/invoice':
get:
summary: 'Print an order invoice'
operationId: printAnOrderInvoice
description: ''
parameters:
-
in: query
name: type
description: 'Type of response (print or download).'
example: download
required: false
schema:
type: string
description: 'Type of response (print or download).'
example: download
nullable: false
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- Orders
parameters:
-
in: path
name: id
description: 'The ID of the order.'
example: consequatur
required: true
schema:
type: string
'/api/v1/ecommerce/orders/{id}/upload-proof':
post:
summary: 'Upload payment proof for an order'
operationId: uploadPaymentProofForAnOrder
description: ''
parameters: []
responses: { }
tags:
- Orders
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: 'The payment proof file (jpeg, jpg, png, pdf, max 2MB).'
nullable: false
required:
- file
parameters:
-
in: path
name: id
description: 'The ID of the order.'
example: consequatur
required: true
schema:
type: string
'/api/v1/ecommerce/orders/{id}/download-proof':
get:
summary: 'Download payment proof for an order'
operationId: downloadPaymentProofForAnOrder
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- Orders
parameters:
-
in: path
name: id
description: 'The ID of the order.'
example: consequatur
required: true
schema:
type: string
'/api/v1/ecommerce/orders/{id}/confirm-delivery':
post:
summary: 'Confirm delivery of an order'
operationId: confirmDeliveryOfAnOrder
description: ''
parameters: []
responses: { }
tags:
- Orders
parameters:
-
in: path
name: id
description: 'The ID of the order.'
example: consequatur
required: true
schema:
type: string
/api/v1/ecommerce/orders/tracking:
post:
summary: 'Track an order'
operationId: trackAnOrder
description: 'Track an order by order code and email/phone'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
message: 'Order found successfully'
data:
order:
id: 1
code: ORD-12345
status: completed
amount: 100.0
shipping_amount: 10.0
payment_fee: 5.0
tax_amount: 5.0
sub_total: 90.0
discount_amount: 0.0
payment_id: 1
user_id: 1
created_at: '2023-08-10T12:34:56.000000Z'
updated_at: '2023-08-10T12:34:56.000000Z'
address:
id: 1
name: 'John Doe'
email: customer@example.com
phone: '+1234567890'
address: '123 Main St'
city: 'New York'
state: NY
country: US
zip_code: '10001'
products:
-
id: 1
name: 'Product 1'
price: 90.0
qty: 1
histories:
-
id: 1
action: create_order
description: 'Order was created'
created_at: '2023-08-10T12:34:56.000000Z'
shipment:
id: 1
status: delivered
tracking_id: SHIP-12345
tracking_link: 'https://example.com/tracking/SHIP-12345'
payment:
id: 1
status: completed
payment_channel: stripe
amount: 100.0
properties:
error:
type: boolean
example: false
message:
type: string
example: 'Order found successfully'
data:
type: object
properties:
order:
type: object
properties:
id:
type: integer
example: 1
code:
type: string
example: ORD-12345
status:
type: string
example: completed
amount:
type: number
example: 100.0
shipping_amount:
type: number
example: 10.0
payment_fee:
type: number
example: 5.0
tax_amount:
type: number
example: 5.0
sub_total:
type: number
example: 90.0
discount_amount:
type: number
example: 0.0
payment_id:
type: integer
example: 1
user_id:
type: integer
example: 1
created_at:
type: string
example: '2023-08-10T12:34:56.000000Z'
updated_at:
type: string
example: '2023-08-10T12:34:56.000000Z'
address:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'John Doe'
email:
type: string
example: customer@example.com
phone:
type: string
example: '+1234567890'
address:
type: string
example: '123 Main St'
city:
type: string
example: 'New York'
state:
type: string
example: NY
country:
type: string
example: US
zip_code:
type: string
example: '10001'
products:
type: array
example:
-
id: 1
name: 'Product 1'
price: 90
qty: 1
items:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'Product 1'
price:
type: number
example: 90.0
qty:
type: integer
example: 1
histories:
type: array
example:
-
id: 1
action: create_order
description: 'Order was created'
created_at: '2023-08-10T12:34:56.000000Z'
items:
type: object
properties:
id:
type: integer
example: 1
action:
type: string
example: create_order
description:
type: string
example: 'Order was created'
created_at:
type: string
example: '2023-08-10T12:34:56.000000Z'
shipment:
type: object
properties:
id:
type: integer
example: 1
status:
type: string
example: delivered
tracking_id:
type: string
example: SHIP-12345
tracking_link:
type: string
example: 'https://example.com/tracking/SHIP-12345'
payment:
type: object
properties:
id:
type: integer
example: 1
status:
type: string
example: completed
payment_channel:
type: string
example: stripe
amount:
type: number
example: 100.0
404:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
message: 'Order not found'
code: 404
properties:
error:
type: boolean
example: true
message:
type: string
example: 'Order not found'
code:
type: integer
example: 404
tags:
- Orders
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
code:
type: string
description: 'The order code.'
example: ORD-12345
nullable: false
email:
type: string
description: 'if phone not provided The email associated with the order.'
example: customer@example.com
nullable: false
phone:
type: string
description: 'if email not provided The phone number associated with the order.'
example: '+1234567890'
nullable: false
required:
- code
- email
- phone
security: []
/api/v1/pages:
get:
summary: 'List pages'
operationId: listPages
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 1
name: Home
slug: home
description: null
image: null
template: full-width
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 2
name: Categories
slug: categories
description: null
image: null
template: full-width
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 3
name: Brands
slug: brands
description: null
image: null
template: null
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 4
name: Coupons
slug: coupons
description: null
image: null
template: full-width
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 5
name: Blog
slug: blog
description: null
image: null
template: full-width
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 6
name: Contact
slug: contact
description: null
image: null
template: full-width
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 7
name: FAQs
slug: faqs
description: null
image: null
template: null
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 8
name: 'Cookie Policy'
slug: cookie-policy
description: null
image: null
template: null
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 9
name: 'Our Story'
slug: our-story
description: null
image: null
template: null
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 10
name: Careers
slug: careers
description: null
image: null
template: null
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
links:
first: 'http://shofy.test/api/v1/pages?page=1'
last: 'http://shofy.test/api/v1/pages?page=2'
prev: null
next: 'http://shofy.test/api/v1/pages?page=2'
meta:
current_page: 1
from: 1
last_page: 2
links:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/pages?page=1'
label: '1'
active: true
-
url: 'http://shofy.test/api/v1/pages?page=2'
label: '2'
active: false
-
url: 'http://shofy.test/api/v1/pages?page=2'
label: 'Next »'
active: false
path: 'http://shofy.test/api/v1/pages'
per_page: 10
to: 10
total: 13
error: false
message: null
properties:
data:
type: array
example:
-
id: 1
name: Home
slug: home
description: null
image: null
template: full-width
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 2
name: Categories
slug: categories
description: null
image: null
template: full-width
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 3
name: Brands
slug: brands
description: null
image: null
template: null
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 4
name: Coupons
slug: coupons
description: null
image: null
template: full-width
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 5
name: Blog
slug: blog
description: null
image: null
template: full-width
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 6
name: Contact
slug: contact
description: null
image: null
template: full-width
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 7
name: FAQs
slug: faqs
description: null
image: null
template: null
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 8
name: 'Cookie Policy'
slug: cookie-policy
description: null
image: null
template: null
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 9
name: 'Our Story'
slug: our-story
description: null
image: null
template: null
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
-
id: 10
name: Careers
slug: careers
description: null
image: null
template: null
status:
value: published
label: Published
created_at: '2025-06-25T01:43:45.000000Z'
updated_at: '2025-06-25T01:43:45.000000Z'
items:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: Home
slug:
type: string
example: home
description:
type: string
example: null
image:
type: string
example: null
template:
type: string
example: full-width
status:
type: object
properties:
value:
type: string
example: published
label:
type: string
example: Published
created_at:
type: string
example: '2025-06-25T01:43:45.000000Z'
updated_at:
type: string
example: '2025-06-25T01:43:45.000000Z'
links:
type: object
properties:
first:
type: string
example: 'http://shofy.test/api/v1/pages?page=1'
last:
type: string
example: 'http://shofy.test/api/v1/pages?page=2'
prev:
type: string
example: null
next:
type: string
example: 'http://shofy.test/api/v1/pages?page=2'
meta:
type: object
properties:
current_page:
type: integer
example: 1
from:
type: integer
example: 1
last_page:
type: integer
example: 2
links:
type: array
example:
-
url: null
label: '« Previous'
active: false
-
url: 'http://shofy.test/api/v1/pages?page=1'
label: '1'
active: true
-
url: 'http://shofy.test/api/v1/pages?page=2'
label: '2'
active: false
-
url: 'http://shofy.test/api/v1/pages?page=2'
label: 'Next »'
active: false
items:
type: object
properties:
url:
type: string
example: null
label:
type: string
example: '« Previous'
active:
type: boolean
example: false
path:
type: string
example: 'http://shofy.test/api/v1/pages'
per_page:
type: integer
example: 10
to:
type: integer
example: 10
total:
type: integer
example: 13
error:
type: boolean
example: false
message:
type: string
example: null
tags:
- Page
security: []
'/api/v1/pages/{id}':
get:
summary: 'Get page by ID'
operationId: getPageByID
description: ''
parameters:
-
in: query
name: id
description: 'Find by ID of page.'
example: 17
required: false
schema:
type: integer
description: 'Find by ID of page.'
example: 17
nullable: false
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: 'Not found'
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: 'Not found'
tags:
- Page
security: []
parameters:
-
in: path
name: id
description: 'The ID of the page.'
example: consequatur
required: true
schema:
type: string
/api/v1/ecommerce/product-categories:
get:
summary: 'Get list of product categories'
operationId: getListOfProductCategories
description: ''
parameters:
-
in: query
name: categories
description: 'nullable array List of category IDs if you need filter by categories, (e.g. [1,2,3]).'
example: null
required: false
schema:
type: string
description: 'nullable array List of category IDs if you need filter by categories, (e.g. [1,2,3]).'
example: null
nullable: false
-
in: query
name: page
description: 'Page number. Default: 1.'
example: null
required: false
schema:
type: integer
description: 'Page number. Default: 1.'
example: null
nullable: false
-
in: query
name: per_page
description: 'Number of items per page. Default: 16.'
example: null
required: false
schema:
type: integer
description: 'Number of items per page. Default: 16.'
example: null
nullable: false
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
data:
-
id: 21
name: Desktop
icon: 'ti ti-device-desktop'
icon_image: null
is_featured: 0
parent_id: 20
slug: desktop
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-5-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-5-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-5-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-5-420x270.jpg'
-
id: 33
name: Micrscope
icon: null
icon_image: null
is_featured: 0
parent_id: 32
slug: micrscope
image_with_sizes: null
-
id: 3
name: Featured
icon: null
icon_image: null
is_featured: 0
parent_id: 2
slug: featured
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/menu-1-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/menu-1-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/menu-1-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/menu-1-420x270.jpg'
-
id: 4
name: 'New Arrivals'
icon: null
icon_image: null
is_featured: 0
parent_id: 3
slug: new-arrivals
image_with_sizes: null
-
id: 1
name: 'New Arrivals'
icon: 'ti ti-home'
icon_image: null
is_featured: 0
parent_id: 0
slug: new-arrivals
image_with_sizes: null
-
id: 8
name: 'Top Brands'
icon: null
icon_image: null
is_featured: 0
parent_id: 7
slug: top-brands
image_with_sizes: null
-
id: 22
name: Laptop
icon: 'ti ti-device-laptop'
icon_image: null
is_featured: 0
parent_id: 20
slug: laptop
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-3-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-3-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-3-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-3-420x270.jpg'
-
id: 2
name: Electronics
icon: 'ti ti-device-tv'
icon_image: null
is_featured: 0
parent_id: 0
slug: electronics
image_with_sizes: null
-
id: 14
name: 'Wireless Headphones'
icon: null
icon_image: null
is_featured: 0
parent_id: 12
slug: wireless-headphones
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-1-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-1-420x270.jpg'
-
id: 9
name: 'Weekly Best Selling'
icon: null
icon_image: null
is_featured: 0
parent_id: 7
slug: weekly-best-selling
image_with_sizes: null
-
id: 5
name: 'Best Sellers'
icon: null
icon_image: null
is_featured: 0
parent_id: 3
slug: best-sellers
image_with_sizes: null
-
id: 34
name: 'Remote Control'
icon: null
icon_image: null
is_featured: 0
parent_id: 32
slug: remote-control
image_with_sizes: null
-
id: 12
name: Accessories
icon: null
icon_image: null
is_featured: 0
parent_id: 2
slug: accessories
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/menu-3-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/menu-3-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/menu-3-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/menu-3-420x270.jpg'
-
id: 15
name: 'TWS Earphones'
icon: null
icon_image: null
is_featured: 0
parent_id: 12
slug: tws-earphones
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-6-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-6-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-6-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-6-420x270.jpg'
-
id: 19
name: Gifts
icon: 'ti ti-gift'
icon_image: null
is_featured: 0
parent_id: 0
slug: gifts
image_with_sizes: null
-
id: 23
name: Tablet
icon: 'ti ti-device-tablet'
icon_image: null
is_featured: 0
parent_id: 20
slug: tablet
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-4-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-4-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-4-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-4-420x270.jpg'
-
id: 35
name: Monitor
icon: null
icon_image: null
is_featured: 0
parent_id: 32
slug: monitor
image_with_sizes: null
-
id: 17
name: 'Gaming Console'
icon: null
icon_image: null
is_featured: 0
parent_id: 2
slug: gaming-console
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-8-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-8-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-8-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-8-420x270.jpg'
-
id: 36
name: Thermometer
icon: null
icon_image: null
is_featured: 0
parent_id: 32
slug: thermometer
image_with_sizes: null
-
id: 20
name: Computers
icon: 'ti ti-device-laptop'
icon_image: null
is_featured: 0
parent_id: 0
slug: computers
image_with_sizes: null
-
id: 24
name: Accessories
icon: 'ti ti-keyboard'
icon_image: null
is_featured: 0
parent_id: 20
slug: accessories
image_with_sizes: null
-
id: 11
name: 'CPU Coolers'
icon: null
icon_image: null
is_featured: 0
parent_id: 7
slug: cpu-coolers
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-9-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-9-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-9-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-9-420x270.jpg'
-
id: 25
name: 'Smartphones & Tablets'
icon: 'ti ti-device-mobile'
icon_image: null
is_featured: 0
parent_id: 0
slug: smartphones-tablets
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-10-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-10-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-10-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-10-420x270.jpg'
-
id: 18
name: Playstation
icon: null
icon_image: null
is_featured: 0
parent_id: 2
slug: playstation
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-12-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-12-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-12-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-12-420x270.jpg'
-
id: 37
name: Backpack
icon: null
icon_image: null
is_featured: 0
parent_id: 32
slug: backpack
image_with_sizes: null
-
id: 26
name: "TV,\n Video & Music"
icon: 'ti ti-device-tv'
icon_image: null
is_featured: 0
parent_id: 0
slug: tv-video-music
image_with_sizes: null
-
id: 38
name: Headphones
icon: null
icon_image: null
is_featured: 0
parent_id: 32
slug: headphones
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-1-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-1-420x270.jpg'
-
id: 27
name: Cameras
icon: 'ti ti-camera'
icon_image: null
is_featured: 0
parent_id: 0
slug: cameras
image_with_sizes: null
-
id: 28
name: Cooking
icon: 'ti ti-grill-spatula'
icon_image: null
is_featured: 0
parent_id: 0
slug: cooking
image_with_sizes: null
-
id: 29
name: Accessories
icon: 'ti ti-building-store'
icon_image: null
is_featured: 0
parent_id: 0
slug: accessories
image_with_sizes: null
-
id: 31
name: Sports
icon: 'ti ti-ball-football'
icon_image: null
is_featured: 0
parent_id: 0
slug: sports
image_with_sizes: null
-
id: 32
name: 'Electronics Gadgets'
icon: 'ti ti-cpu-2'
icon_image: null
is_featured: 0
parent_id: 0
slug: electronics-gadgets
image_with_sizes: null
error: false
message: null
properties:
data:
type: array
example:
-
id: 21
name: Desktop
icon: 'ti ti-device-desktop'
icon_image: null
is_featured: 0
parent_id: 20
slug: desktop
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-5-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-5-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-5-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-5-420x270.jpg'
-
id: 33
name: Micrscope
icon: null
icon_image: null
is_featured: 0
parent_id: 32
slug: micrscope
image_with_sizes: null
-
id: 3
name: Featured
icon: null
icon_image: null
is_featured: 0
parent_id: 2
slug: featured
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/menu-1-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/menu-1-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/menu-1-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/menu-1-420x270.jpg'
-
id: 4
name: 'New Arrivals'
icon: null
icon_image: null
is_featured: 0
parent_id: 3
slug: new-arrivals
image_with_sizes: null
-
id: 1
name: 'New Arrivals'
icon: 'ti ti-home'
icon_image: null
is_featured: 0
parent_id: 0
slug: new-arrivals
image_with_sizes: null
-
id: 8
name: 'Top Brands'
icon: null
icon_image: null
is_featured: 0
parent_id: 7
slug: top-brands
image_with_sizes: null
-
id: 22
name: Laptop
icon: 'ti ti-device-laptop'
icon_image: null
is_featured: 0
parent_id: 20
slug: laptop
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-3-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-3-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-3-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-3-420x270.jpg'
-
id: 2
name: Electronics
icon: 'ti ti-device-tv'
icon_image: null
is_featured: 0
parent_id: 0
slug: electronics
image_with_sizes: null
-
id: 14
name: 'Wireless Headphones'
icon: null
icon_image: null
is_featured: 0
parent_id: 12
slug: wireless-headphones
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-1-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-1-420x270.jpg'
-
id: 9
name: 'Weekly Best Selling'
icon: null
icon_image: null
is_featured: 0
parent_id: 7
slug: weekly-best-selling
image_with_sizes: null
-
id: 5
name: 'Best Sellers'
icon: null
icon_image: null
is_featured: 0
parent_id: 3
slug: best-sellers
image_with_sizes: null
-
id: 34
name: 'Remote Control'
icon: null
icon_image: null
is_featured: 0
parent_id: 32
slug: remote-control
image_with_sizes: null
-
id: 12
name: Accessories
icon: null
icon_image: null
is_featured: 0
parent_id: 2
slug: accessories
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/menu-3-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/menu-3-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/menu-3-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/menu-3-420x270.jpg'
-
id: 15
name: 'TWS Earphones'
icon: null
icon_image: null
is_featured: 0
parent_id: 12
slug: tws-earphones
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-6-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-6-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-6-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-6-420x270.jpg'
-
id: 19
name: Gifts
icon: 'ti ti-gift'
icon_image: null
is_featured: 0
parent_id: 0
slug: gifts
image_with_sizes: null
-
id: 23
name: Tablet
icon: 'ti ti-device-tablet'
icon_image: null
is_featured: 0
parent_id: 20
slug: tablet
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-4-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-4-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-4-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-4-420x270.jpg'
-
id: 35
name: Monitor
icon: null
icon_image: null
is_featured: 0
parent_id: 32
slug: monitor
image_with_sizes: null
-
id: 17
name: 'Gaming Console'
icon: null
icon_image: null
is_featured: 0
parent_id: 2
slug: gaming-console
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-8-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-8-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-8-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-8-420x270.jpg'
-
id: 36
name: Thermometer
icon: null
icon_image: null
is_featured: 0
parent_id: 32
slug: thermometer
image_with_sizes: null
-
id: 20
name: Computers
icon: 'ti ti-device-laptop'
icon_image: null
is_featured: 0
parent_id: 0
slug: computers
image_with_sizes: null
-
id: 24
name: Accessories
icon: 'ti ti-keyboard'
icon_image: null
is_featured: 0
parent_id: 20
slug: accessories
image_with_sizes: null
-
id: 11
name: 'CPU Coolers'
icon: null
icon_image: null
is_featured: 0
parent_id: 7
slug: cpu-coolers
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-9-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-9-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-9-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-9-420x270.jpg'
-
id: 25
name: 'Smartphones & Tablets'
icon: 'ti ti-device-mobile'
icon_image: null
is_featured: 0
parent_id: 0
slug: smartphones-tablets
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-10-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-10-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-10-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-10-420x270.jpg'
-
id: 18
name: Playstation
icon: null
icon_image: null
is_featured: 0
parent_id: 2
slug: playstation
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-12-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-12-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-12-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-12-420x270.jpg'
-
id: 37
name: Backpack
icon: null
icon_image: null
is_featured: 0
parent_id: 32
slug: backpack
image_with_sizes: null
-
id: 26
name: "TV,\n Video & Music"
icon: 'ti ti-device-tv'
icon_image: null
is_featured: 0
parent_id: 0
slug: tv-video-music
image_with_sizes: null
-
id: 38
name: Headphones
icon: null
icon_image: null
is_featured: 0
parent_id: 32
slug: headphones
image_with_sizes:
origin: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
thumb: 'http://shofy.test/storage/main/product-categories/category-thumb-1-150x150.jpg'
medium: 'http://shofy.test/storage/main/product-categories/category-thumb-1-600x600.jpg'
rectangle: 'http://shofy.test/storage/main/product-categories/category-thumb-1-420x270.jpg'
-
id: 27
name: Cameras
icon: 'ti ti-camera'
icon_image: null
is_featured: 0
parent_id: 0
slug: cameras
image_with_sizes: null
-
id: 28
name: Cooking
icon: 'ti ti-grill-spatula'
icon_image: null
is_featured: 0
parent_id: 0
slug: cooking
image_with_sizes: null
-
id: 29
name: Accessories
icon: 'ti ti-building-store'
icon_image: null
is_featured: 0
parent_id: 0
slug: accessories
image_with_sizes: null
-
id: 31
name: Sports
icon: 'ti ti-ball-football'
icon_image: null
is_featured: 0
parent_id: 0
slug: sports
image_with_sizes: null
-
id: 32
name: 'Electronics Gadgets'
icon: 'ti ti-cpu-2'
icon_image: null
is_featured: 0
parent_id: 0
slug: electronics-gadgets
image_with_sizes: null
items:
type: object
properties:
id:
type: integer
example: 21
name:
type: string
example: Desktop
icon:
type: string
example: 'ti ti-device-desktop'
icon_image:
type: string
example: null
is_featured:
type: integer
example: 0
parent_id:
type: integer
example: 20
slug:
type: string
example: desktop
image_with_sizes:
type: object
properties:
origin:
type: string
example: 'http://shofy.test/storage/main/product-categories/category-thumb-5-600x600.jpg'
thumb:
type: string
example: 'http://shofy.test/storage/main/product-categories/category-thumb-5-150x150.jpg'
medium:
type: string
example: 'http://shofy.test/storage/main/product-categories/category-thumb-5-600x600.jpg'
rectangle:
type: string
example: 'http://shofy.test/storage/main/product-categories/category-thumb-5-420x270.jpg'
error:
type: boolean
example: false
message:
type: string
example: null
tags:
- 'Product Categories'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
categories:
type: array
description: 'The <code>id</code> of an existing record in the ec_product_categories table.'
example: null
items:
type: string
nullable: true
is_featured:
type: boolean
description: 'Filter by featured status.'
example: false
nullable: true
security: []
'/api/v1/ecommerce/product-categories/{slug}':
get:
summary: 'Get product category details by slug'
operationId: getProductCategoryDetailsBySlug
description: ''
parameters: []
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: ''
properties:
message:
type: string
example: ''
tags:
- 'Product Categories'
security: []
parameters:
-
in: path
name: slug
description: 'The slug of the product category.'
example: consequatur
required: true
schema:
type: string
'/api/v1/ecommerce/product-categories/{id}/products':
get:
summary: 'Get products by category'
operationId: getProductsByCategory
description: ''
parameters: []
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'No query results for model [Botble\Ecommerce\Models\ProductCategory] consequatur'
properties:
message:
type: string
example: 'No query results for model [Botble\Ecommerce\Models\ProductCategory] consequatur'
tags:
- 'Product Categories'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the product category.'
example: consequatur
required: true
schema:
type: string
/api/v1/ecommerce/products:
get:
summary: 'Get list of products'
operationId: getListOfProducts
description: ''
parameters:
-
in: query
name: categories
description: 'Filter by category IDs.'
example: null
required: false
schema:
type: array
description: 'Filter by category IDs.'
example: null
items:
type: string
-
in: query
name: brands
description: 'Filter by brand IDs.'
example: null
required: false
schema:
type: array
description: 'Filter by brand IDs.'
example: null
items:
type: string
-
in: query
name: collections
description: 'Filter by collection IDs.'
example: null
required: false
schema:
type: array
description: 'Filter by collection IDs.'
example: null
items:
type: string
-
in: query
name: q
description: 'Search term.'
example: null
required: false
schema:
type: string
description: 'Search term.'
example: null
nullable: false
-
in: query
name: sort_by
description: 'Sort field. Value: default_sorting, date_asc, date_desc, price_asc, price_desc, name_asc, name_desc, rating_asc, rating_desc'
example: consequatur
required: false
schema:
type: string
description: 'Sort field. Value: default_sorting, date_asc, date_desc, price_asc, price_desc, name_asc, name_desc, rating_asc, rating_desc'
example: consequatur
nullable: false
-
in: query
name: page
description: 'The current page.'
example: null
required: false
schema:
type: integer
description: 'The current page.'
example: null
nullable: false
-
in: query
name: per_page
description: 'Number of items per page.'
example: null
required: false
schema:
type: integer
description: 'Number of items per page.'
example: null
nullable: false
-
in: query
name: discounted_only
description: 'Filter by discounted only.'
example: null
required: false
schema:
type: boolean
description: 'Filter by discounted only.'
example: null
nullable: false
-
in: query
name: min_price
description: 'Minimum price.'
example: null
required: false
schema:
type: integer
description: 'Minimum price.'
example: null
nullable: false
-
in: query
name: max_price
description: 'Maximum price.'
example: null
required: false
schema:
type: integer
description: 'Maximum price.'
example: null
nullable: false
-
in: query
name: price_ranges
description: 'Price ranges as JSON string.'
example: '[{"from":10,"to":20},{"from":30,"to":40}]'
required: false
schema:
type: string
description: 'Price ranges as JSON string.'
example: '[{"from":10,"to":20},{"from":30,"to":40}]'
nullable: false
-
in: query
name: attributes
description: 'Attributes as JSON string.'
example: '[{"id":1,"value":1},{"id":2,"value":2}]'
required: false
schema:
type: string
description: 'Attributes as JSON string.'
example: '[{"id":1,"value":1},{"id":2,"value":2}]'
nullable: false
responses:
500:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Server Error'
properties:
message:
type: string
example: 'Server Error'
tags:
- Products
security: []
'/api/v1/ecommerce/products/{slug}':
get:
summary: 'Get product details by slug'
operationId: getProductDetailsBySlug
description: ''
parameters: []
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: ''
properties:
message:
type: string
example: ''
tags:
- Products
security: []
parameters:
-
in: path
name: slug
description: 'The slug of the product.'
example: consequatur
required: true
schema:
type: string
'/api/v1/ecommerce/products/{slug}/related':
get:
summary: 'Get related products'
operationId: getRelatedProducts
description: ''
parameters: []
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: ''
properties:
message:
type: string
example: ''
tags:
- Products
security: []
parameters:
-
in: path
name: slug
description: 'The slug of the product.'
example: consequatur
required: true
schema:
type: string
'/api/v1/ecommerce/products/{slug}/cross-sale':
get:
summary: 'Get cross-sale products for a product'
operationId: getCrossSaleProductsForAProduct
description: ''
parameters: []
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: ''
properties:
message:
type: string
example: ''
tags:
- Products
security: []
parameters:
-
in: path
name: slug
description: 'The slug of the product.'
example: consequatur
required: true
schema:
type: string
'/api/v1/ecommerce/products/{slug}/reviews':
get:
summary: "Get product's reviews"
operationId: getProductsReviews
description: ''
parameters: []
responses:
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: ''
properties:
message:
type: string
example: ''
tags:
- Products
security: []
parameters:
-
in: path
name: slug
description: 'The slug of the product.'
example: consequatur
required: true
schema:
type: string
'/api/v1/ecommerce/product-variation/{id}':
get:
summary: 'Get product variation by attributes'
operationId: getProductVariationByAttributes
description: ''
parameters:
-
in: query
name: attributes
description: 'Array of attribute IDs.'
example: null
required: false
schema:
type: array
description: 'Array of attribute IDs.'
example: null
items:
type: string
-
in: query
name: reference_product
description: 'Reference product slug.'
example: null
required: false
schema:
type: string
description: 'Reference product slug.'
example: null
nullable: false
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: 'Not available'
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: 'Not available'
tags:
- Products
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
reference_product:
type: string
description: ''
example: consequatur
nullable: false
attributes:
type: array
description: ''
example:
- consequatur
items:
type: string
required:
- reference_product
- attributes
security: []
parameters:
-
in: path
name: id
description: 'The ID of the product variation.'
example: '1562'
required: true
schema:
type: string
/api/v1/me:
get:
summary: 'Get the user profile information.'
operationId: getTheUserProfileInformation
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- Profile
put:
summary: 'Update profile'
operationId: updateProfile
description: ''
parameters: []
responses: { }
tags:
- Profile
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
first_name:
type: string
description: 'This field is required when <code>name</code> is not present. Must not be greater than 120 characters. Must be at least 2 characters.'
example: vmqeopfuudtdsufvyvddqamniihfqcoynlazghdtqtqxbajwbpilpmufinllwloauydlsmsjur
nullable: true
last_name:
type: string
description: 'This field is required when <code>name</code> is not present. Must not be greater than 120 characters. Must be at least 2 characters.'
example: yvojcybzvrbyickznkygloigmkwxphlvazjrcnfbaqywuxhgjjmzuxjubqouzswiwxtrkimfca
nullable: true
name:
type: string
description: Name.
example: consequatur
nullable: true
phone:
type: string
description: Phone.
example: consequatur
nullable: true
dob:
type: date
description: 'nullable Date of birth (format: Y-m-d).'
example: consequatur
nullable: true
gender:
type: string
description: 'Gender (male, female, other).'
example: consequatur
nullable: true
description:
type: string
description: Description
example: 'Dolores dolorum amet iste laborum eius est dolor.'
nullable: true
email:
type: string
description: Email.
example: qkunze@example.com
nullable: true
required:
- name
- phone
/api/v1/update/avatar:
post:
summary: 'Update Avatar'
operationId: updateAvatar
description: ''
parameters: []
responses: { }
tags:
- Profile
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
avatar:
type: string
format: binary
description: 'Avatar file.'
nullable: false
required:
- avatar
/api/v1/update/password:
put:
summary: 'Update password'
operationId: updatePassword
description: ''
parameters: []
responses: { }
tags:
- Profile
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
password:
type: string
description: 'The new password of user.'
example: 'O[2UZ5ij-e/dl4m{o,'
nullable: false
old_password:
type: string
description: 'The current password of user.'
example: consequatur
nullable: false
required:
- password
- old_password
/api/v1/ecommerce/reviews:
get:
summary: 'Get list of reviews for the current user'
operationId: getListOfReviewsForTheCurrentUser
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
error: true
data: null
message: Unauthenticated.
properties:
error:
type: boolean
example: true
data:
type: string
example: null
message:
type: string
example: Unauthenticated.
tags:
- Reviews
post:
summary: 'Create a new review'
operationId: createANewReview
description: ''
parameters: []
responses: { }
tags:
- Reviews
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: integer
description: 'The ID of the product to review.'
example: 1
nullable: false
star:
type: integer
description: 'The rating from 1 to 5 stars.'
example: 5
nullable: false
comment:
type: string
description: 'The review comment.'
example: 'This is a great product! I highly recommend it.'
nullable: false
images:
type: array
description: 'Array of images for the review (optional).'
example: null
items:
type: string
required:
- product_id
- star
- comment
'/api/v1/ecommerce/reviews/{id}':
delete:
summary: 'Delete a review'
operationId: deleteAReview
description: ''
parameters: []
responses: { }
tags:
- Reviews
parameters:
-
in: path
name: id
description: 'The ID of the review.'
example: '1562'
required: true
schema:
type: string
/api/v1/simple-sliders:
get:
summary: 'Get sliders'
operationId: getSliders
description: ''
parameters:
-
in: query
name: keys
description: 'Array of slider keys to filter by.'
example:
- home-slider
- product-slider
required: false
schema:
type: array
description: 'Array of slider keys to filter by.'
example:
- home-slider
- product-slider
items:
type: string
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
error: false
data:
-
id: 1
name: 'Home slider'
key: home-slider
description: 'The main slider on homepage'
items:
-
id: 1
title: 'The best tablet Collection 2023'
description: 'Exclusive offer <span>-35%</span> off this week'
image: 'http://shofy.test/storage/main/sliders/slider-1.png'
link: /products
order: 0
background_color: '#115061'
is_light: 0
subtitle: 'Starting at <b>$274.00</b>'
button_label: 'Shop Now'
-
id: 2
title: 'The best note book collection 2023'
description: 'Exclusive offer <span>-10%</span> off this week'
image: 'http://shofy.test/storage/main/sliders/slider-3.png'
link: /products
order: 1
background_color: '#115061'
is_light: 0
subtitle: 'Starting at <b>$999.00</b>'
button_label: 'Shop Now'
-
id: 3
title: 'The best phone collection 2023'
description: 'Exclusive offer <span>-10%</span> off this week'
image: 'http://shofy.test/storage/main/sliders/slider-2.png'
link: /products
order: 2
background_color: '#E3EDF6'
is_light: 1
subtitle: 'Starting at <b>$999.00</b>'
button_label: 'Shop Now'
message: null
properties:
error:
type: boolean
example: false
data:
type: array
example:
-
id: 1
name: 'Home slider'
key: home-slider
description: 'The main slider on homepage'
items:
-
id: 1
title: 'The best tablet Collection 2023'
description: 'Exclusive offer <span>-35%</span> off this week'
image: 'http://shofy.test/storage/main/sliders/slider-1.png'
link: /products
order: 0
background_color: '#115061'
is_light: 0
subtitle: 'Starting at <b>$274.00</b>'
button_label: 'Shop Now'
-
id: 2
title: 'The best note book collection 2023'
description: 'Exclusive offer <span>-10%</span> off this week'
image: 'http://shofy.test/storage/main/sliders/slider-3.png'
link: /products
order: 1
background_color: '#115061'
is_light: 0
subtitle: 'Starting at <b>$999.00</b>'
button_label: 'Shop Now'
-
id: 3
title: 'The best phone collection 2023'
description: 'Exclusive offer <span>-10%</span> off this week'
image: 'http://shofy.test/storage/main/sliders/slider-2.png'
link: /products
order: 2
background_color: '#E3EDF6'
is_light: 1
subtitle: 'Starting at <b>$999.00</b>'
button_label: 'Shop Now'
items:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
example: 'Home slider'
key:
type: string
example: home-slider
description:
type: string
example: 'The main slider on homepage'
items:
type: array
example:
-
id: 1
title: 'The best tablet Collection 2023'
description: 'Exclusive offer <span>-35%</span> off this week'
image: 'http://shofy.test/storage/main/sliders/slider-1.png'
link: /products
order: 0
background_color: '#115061'
is_light: 0
subtitle: 'Starting at <b>$274.00</b>'
button_label: 'Shop Now'
-
id: 2
title: 'The best note book collection 2023'
description: 'Exclusive offer <span>-10%</span> off this week'
image: 'http://shofy.test/storage/main/sliders/slider-3.png'
link: /products
order: 1
background_color: '#115061'
is_light: 0
subtitle: 'Starting at <b>$999.00</b>'
button_label: 'Shop Now'
-
id: 3
title: 'The best phone collection 2023'
description: 'Exclusive offer <span>-10%</span> off this week'
image: 'http://shofy.test/storage/main/sliders/slider-2.png'
link: /products
order: 2
background_color: '#E3EDF6'
is_light: 1
subtitle: 'Starting at <b>$999.00</b>'
button_label: 'Shop Now'
items:
type: object
properties:
id:
type: integer
example: 1
title:
type: string
example: 'The best tablet Collection 2023'
description:
type: string
example: 'Exclusive offer <span>-35%</span> off this week'
image:
type: string
example: 'http://shofy.test/storage/main/sliders/slider-1.png'
link:
type: string
example: /products
order:
type: integer
example: 0
background_color:
type: string
example: '#115061'
is_light:
type: integer
example: 0
subtitle:
type: string
example: 'Starting at <b>$274.00</b>'
button_label:
type: string
example: 'Shop Now'
message:
type: string
example: null
tags:
- 'Simple Slider'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
keys:
type: array
description: 'Array of slider keys to filter by.'
example:
- home-slider
- product-slider
items:
type: string
security: []
/api/v1/ecommerce/wishlist:
post:
summary: 'Add product to wishlist'
operationId: addProductToWishlist
description: ''
parameters: []
responses: { }
tags:
- Wishlist
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: integer
description: 'ID of the product.'
example: 1
nullable: false
required:
- product_id
security: []
'/api/v1/ecommerce/wishlist/{id}':
post:
summary: 'Add product to wishlist'
operationId: addProductToWishlist
description: ''
parameters: []
responses: { }
tags:
- Wishlist
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: integer
description: 'ID of the product.'
example: 1
nullable: false
required:
- product_id
security: []
delete:
summary: 'Remove a product from wishlist'
operationId: removeAProductFromWishlist
description: ''
parameters: []
responses: { }
tags:
- Wishlist
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
product_id:
type: string
description: 'The ID of the product to remove from the wishlist. The <code>id</code> of an existing record in the ec_products table.'
example: 1
nullable: false
required:
- product_id
security: []
get:
summary: 'Get wishlist items'
operationId: getWishlistItems
description: ''
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: consequatur
data:
count: 0
items: []
properties:
id:
type: string
example: consequatur
data:
type: object
properties:
count:
type: integer
example: 0
items:
type: array
example: []
tags:
- Wishlist
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: 'ID of the wishlist.'
example: e70c6c88dae8344b03e39bb147eba66a
nullable: false
required:
- id
security: []
parameters:
-
in: path
name: id
description: 'The ID of the wishlist.'
example: consequatur
required: true
schema:
type: string