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
npm add commercengine
yarn add commercengine
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();
- getAnalyticsTrack - Track event
- 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
- postCustomersNewsletterSubscription - Subscribe to newsletter
- 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
- 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
- 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
- getCommonCountries - Retrieve all countries
- getCommonCountriesCountryIsoCodePincodes - Retrieve pincodes
- getCommonCountriesIsoCodeStates - Retrieve country wise states
- 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
- getCoupons - Retrieve all coupons
- getPromotions - Retrieve all promotions
- 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
- getPaymentsPaymentMethods - Retrieve available payment methods
- postPaymentsGenerateHash - Generate hash
- getShipmentPincodeServiceability - Check pincode serviceability
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();
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 |
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();
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
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();
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});
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();
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();
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.
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!