commercengine
v0.2.0
Published
<div align="left"> <a href="https://speakeasyapi.dev/"><img src="https://custom-icon-badges.demolab.com/badge/-Built%20By%20Speakeasy-212015?style=for-the-badge&logoColor=FBE331&logo=speakeasy&labelColor=545454" /></a> <a href="https://opensource.
Downloads
2
Readme
openapi
🏗 Welcome to your new SDK! 🏗
It has been generated successfully based on your OpenAPI spec. However, it is not yet ready for production use. Here are some next steps:
- [ ] 🛠 Make your SDK feel handcrafted by customizing it
- [ ] ♻️ Refine your SDK quickly by iterating locally with the Speakeasy CLI
- [ ] 🎁 Publish your SDK to package managers by configuring automatic publishing
- [ ] ✨ When ready to productionize, delete this section from the README
SDK Installation
NPM
npm add commercengine
Yarn
yarn add commercengine
SDK Example Usage
Example
import { SDK } from "commercengine";
import { Channel, TypeT } from "commercengine/dist/sdk/models/shared";
async function run() {
const sdk = new SDK({
authorization: "<YOUR_BEARER_TOKEN_HERE>",
});
const res = await sdk.analytics.getAnalyticsTrack({
channel: Channel.Website,
context: {
ip: "120.241.208.40",
userAgent: "string",
},
event: "string",
messageId: "string",
properties: {},
sentAt: new Date("2023-04-12T14:54:43.161Z"),
timestamp: new Date("2022-10-04T02:51:38.958Z"),
type: TypeT.Track,
userId: "string",
});
if (res.statusCode == 200) {
// handle response
}
}
run();
Available Resources and Operations
analytics
- getAnalyticsTrack - Track event
auth
- deleteAuthUserIdProfileImage - Delete profile image
- getAuthAnonymous - Anonymous user
- getAuthUserId - Retrieve a user
- getAuthUserIdNotificationPreferences - Retrieve user notification preferences
- getAuthUserIdProfileImage - Retrieve a profile image
- postAuthChangePassword - Change password
- postAuthForgotPassword - Forgot password
- postAuthGenerateOtp - Generate OTP
- postAuthLoginEmail - Login with email
- postAuthLoginPassword - Login with password
- postAuthLoginPhone - Login with phone
- postAuthLoginWhatsapp - Login with whatsapp
- postAuthLogout - Logout user
- postAuthRefreshToken - Refresh access token
- postAuthRegisterEmail - Register with email
- postAuthRegisterPassword - Register with password
- postAuthRegisterPhone - Register with phone
- postAuthRegisterWhatsapp - Register with whatsapp
- postAuthResetPassword - Reset password
- postAuthUserIdNotificationPreferences - Create user notification preferences
- postAuthUserIdProfileImage - Add profile image
- postAuthVerifiedEmailPhone - Check verified email phone
- postAuthVerifyOtp - Verify OTP
- putAuthUserId - Update a user
- putAuthUserIdDeactivate - Deactivate account
- putAuthUserIdNotificationPreferences - Update user notification preferences
- putAuthUserIdProfileImage - Update profile image
campaignsAPI
- postCustomersNewsletterSubscription - Subscribe to newsletter
cartsAPI
- deleteCartId - Delete cart
- deleteWishlist - Delete product from wishlist
- getCart - Retrieve cart details
- getWishtlist - Retrieve wishlist
- postCartItemId - Add/delete cart item
- postCartsId - Create cart
- postWishtlist - Add product to wishlist
catalogAPI
- getCrossSell - Retrieve cross-sell products
- getProductDetails - Retrieve a product
- getProductVariantDetail - Retrieve variant detail
- getProductVariants - Retrieve product variants
- getProducts - List all products
- getProductsCategories - List all categories
- getProductsIdReviews - Retrieve product reviews
- getRecommended - Retrieve recommended products
- getSimilar - Retrieve similar products
- getSkus - List all SKUs
- getUpSell - Retrieve up-sell products
- postCatalogWebhookDatocms - Datocms webhook
- postProductsIdReviews - Create product review
checkoutAPI
- deleteCreditBalance - Remove credit balance
- deleteLoyaltyPoints - Remove loyalty points
- deleteRemoveCoupons - Remove coupon
- postApplyCoupons - Apply coupon
- postCartAddress - Update cart address
- postCheckoutRedeemGiftCard - Redeem gift card
- postCreditBalance - Use credit balance
- postLoyaltyPoints - Redeem loyalty points
commonAPI
- getCommonCountries - Retrieve all countries
- getCommonCountriesCountryIsoCodePincodes - Retrieve pincodes
- getCommonCountriesIsoCodeStates - Retrieve country wise states
customersAPI
- deleteCustomerAddressId - Remove particular address
- getAddress - Retrieve all addresses
- getCustomerAddressId - Retrieve particular address
- getCustomersUserIdReviews - Retrieve all reviews
- getLoyaltyPoint - Retrieve loyalty details
- getLoyaltyPointActivity - List all loyalty points activity
- postAddress - Add address
- putCustomerAddressId - Update particular address
couponsAndPromotionsAPI
- getCoupons - Retrieve all coupons
- getPromotions - Retrieve all promotions
ordersAPI
- getOrders - Retrieve all orders
- getOrdersId - Retrieve order detail
- getOrdersIdPayments - Retrieve order payments
- getOrdersIdRefunds - Retrieve order refunds
- getOrdersIdShipments - Retrieve order shipments
- getOrdersOrderNumberReturn - List all order returns
- getOrdersOrderNumberReturnReturnId - Retrieve order return detail
- getOrdersReturns - Retrieve all order returns
- postOrder - Create order
- postOrdersOrderNumber - Cancel order
- postOrdersOrderNumberReturn - Create order return
- postRetryPaymentOrderId - Retry payment
paymentsAPI
- getPaymentsPaymentMethods - Retrieve available payment methods
- postPaymentsGenerateHash - Generate hash
shippingAPI
- getShipmentPincodeServiceability - Check pincode serviceability
Error Handling
Handling errors in this SDK should largely match your expectations. All operations return a response object or throw an error. If Error objects are specified in your OpenAPI Spec, the SDK will throw the appropriate Error type.
| Error Object | Status Code | Content Type | | --------------- | --------------- | --------------- | | errors.SDKError | 4xx-5xx | / |
Example
import { SDK } from "commercengine";
import { Channel, TypeT } from "commercengine/dist/sdk/models/shared";
async function run() {
const sdk = new SDK({
authorization: "<YOUR_BEARER_TOKEN_HERE>",
});
let res;
try {
res = await sdk.analytics.getAnalyticsTrack({
channel: Channel.Website,
context: {
ip: "120.241.208.40",
userAgent: "string",
},
event: "string",
messageId: "string",
properties: {},
sentAt: new Date("2023-04-12T14:54:43.161Z"),
timestamp: new Date("2022-10-04T02:51:38.958Z"),
type: TypeT.Track,
userId: "string",
});
} catch (err) {
if (err instanceof errors.SDKError) {
console.error(err); // handle exception
throw err;
}
}
if (res.statusCode == 200) {
// handle response
}
}
run();
Server Selection
Select Server by Index
You can override the default server globally by passing a server index to the serverIdx: number
optional parameter when initializing the SDK client instance. The selected server will then be used as the default on the operations that use it. This table lists the indexes associated with the available servers:
| # | Server | Variables |
| - | ------ | --------- |
| 0 | https://{subdomain}.commercengine.dev/api/v1/{store_id}/storefront
| store_id
(default is x2yh61zw4k
), subdomain
(default is reset
) |
| 1 | https://api.commercengine.app/api/v1/{store_id}/admin
| store_id
(default is x2yh61zw4k
) |
| 2 | https://stoplight.io/mocks/tarkaikaman/ce-apis/217963442
| None |
Example
import { SDK } from "commercengine";
import { Channel, TypeT } from "commercengine/dist/sdk/models/shared";
async function run() {
const sdk = new SDK({
serverIdx: 2,
authorization: "<YOUR_BEARER_TOKEN_HERE>",
});
const res = await sdk.analytics.getAnalyticsTrack({
channel: Channel.Website,
context: {
ip: "120.241.208.40",
userAgent: "string",
},
event: "string",
messageId: "string",
properties: {},
sentAt: new Date("2023-04-12T14:54:43.161Z"),
timestamp: new Date("2022-10-04T02:51:38.958Z"),
type: TypeT.Track,
userId: "string",
});
if (res.statusCode == 200) {
// handle response
}
}
run();
Variables
Some of the server options above contain variables. If you want to set the values of those variables, the following optional parameters are available when initializing the SDK client instance:
storeId: string
subdomain: string
Override Server URL Per-Client
The default server can also be overridden globally by passing a URL to the serverURL: str
optional parameter when initializing the SDK client instance. For example:
import { SDK } from "commercengine";
import { Channel, TypeT } from "commercengine/dist/sdk/models/shared";
async function run() {
const sdk = new SDK({
serverURL: "https://{subdomain}.commercengine.dev/api/v1/{store_id}/storefront",
authorization: "<YOUR_BEARER_TOKEN_HERE>",
});
const res = await sdk.analytics.getAnalyticsTrack({
channel: Channel.Website,
context: {
ip: "120.241.208.40",
userAgent: "string",
},
event: "string",
messageId: "string",
properties: {},
sentAt: new Date("2023-04-12T14:54:43.161Z"),
timestamp: new Date("2022-10-04T02:51:38.958Z"),
type: TypeT.Track,
userId: "string",
});
if (res.statusCode == 200) {
// handle response
}
}
run();
Custom HTTP Client
The Typescript SDK makes API calls using the axios HTTP library. In order to provide a convenient way to configure timeouts, cookies, proxies, custom headers, and other low-level configuration, you can initialize the SDK client with a custom AxiosInstance
object.
For example, you could specify a header for every request that your sdk makes as follows:
import { commercengine } from "SDK";
import axios from "axios";
const httpClient = axios.create({
headers: {'x-custom-header': 'someValue'}
})
const sdk = new SDK({defaultClient: httpClient});
Authentication
Per-Client Security Schemes
This SDK supports the following security scheme globally:
| Name | Type | Scheme |
| --------------- | --------------- | --------------- |
| authorization
| http | HTTP Bearer |
To authenticate with the API the authorization
parameter must be set when initializing the SDK client instance. For example:
import { SDK } from "commercengine";
import { Channel, TypeT } from "commercengine/dist/sdk/models/shared";
async function run() {
const sdk = new SDK({
authorization: "<YOUR_BEARER_TOKEN_HERE>",
});
const res = await sdk.analytics.getAnalyticsTrack({
channel: Channel.Website,
context: {
ip: "120.241.208.40",
userAgent: "string",
},
event: "string",
messageId: "string",
properties: {},
sentAt: new Date("2023-04-12T14:54:43.161Z"),
timestamp: new Date("2022-10-04T02:51:38.958Z"),
type: TypeT.Track,
userId: "string",
});
if (res.statusCode == 200) {
// handle response
}
}
run();
Per-Operation Security Schemes
Some operations in this SDK require the security scheme to be specified at the request level. For example:
import { SDK } from "commercengine";
import { GetAuthAnonymousSecurity } from "commercengine/dist/sdk/models/operations";
async function run() {
const sdk = new SDK();
const operationSecurity: GetAuthAnonymousSecurity = "<YOUR_API_KEY_HERE>";
const res = await sdk.auth.getAuthAnonymous(operationSecurity);
if (res.statusCode == 200) {
// handle response
}
}
run();
Development
Maturity
This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally looking for the latest version.
Contributions
While we value open-source contributions to this SDK, this library is generated programmatically. Feel free to open a PR or a Github issue as a proof of concept and we'll do our best to include it in a future release!