@stylusapparel/shipstation-api-node
Version:
Unofficial Shipstation API Wrapper for Node.js
184 lines (181 loc) • 4.79 kB
JavaScript
const shipStationWrapper = require("../client.js");
// Create the client
const shipStationClient = shipStationWrapper.createClient(
process.env.SHIPSTATION_API_KEY,
process.env.YOUR_SHIPSTATION_API_SECRET
);
// Error handler //
function handleError(err) {
// Handle error //
console.log(err);
console.error(`Error!\n(${err})`);
}
// List orders... //
async function createOrder() {
return shipStationClient.orders.create({
orderNumber: "TEST-ORDER-API-DOCS",
orderKey: "0f6bec18-3e89-4881-83aa-f392d84f4c74",
orderDate: "2015-06-29T08:46:27.0000000",
paymentDate: "2015-06-29T08:46:27.0000000",
shipByDate: "2015-07-05T00:00:00.0000000",
orderStatus: "awaiting_shipment",
customerId: 37701499,
customerUsername: "headhoncho@whitehouse.gov",
customerEmail: "headhoncho@whitehouse.gov",
billTo: {
name: "The President",
company: null,
street1: null,
street2: null,
street3: null,
city: null,
state: null,
postalCode: null,
country: null,
phone: null,
residential: null,
},
shipTo: {
name: "The President",
company: "US Govt",
street1: "1600 Pennsylvania Ave",
street2: "Oval Office",
street3: null,
city: "Washington",
state: "DC",
postalCode: "20500",
country: "US",
phone: "555-555-5555",
residential: true,
},
items: [
{
lineItemKey: "vd08-MSLbtx",
sku: "ABC123",
name: "Test item #1",
imageUrl: null,
weight: {
value: 24,
units: "ounces",
},
quantity: 2,
unitPrice: 99.99,
taxAmount: 2.5,
shippingAmount: 5,
warehouseLocation: "Aisle 1, Bin 7",
options: [
{
name: "Size",
value: "Large",
},
],
productId: 123456,
fulfillmentSku: null,
adjustment: false,
upc: "32-65-98",
},
{
lineItemKey: null,
sku: "DISCOUNT CODE",
name: "10% OFF",
imageUrl: null,
weight: {
value: 0,
units: "ounces",
},
quantity: 1,
unitPrice: -20.55,
taxAmount: null,
shippingAmount: null,
warehouseLocation: null,
options: [],
productId: 123456,
fulfillmentSku: "SKU-Discount",
adjustment: true,
upc: null,
},
],
amountPaid: 218.73,
taxAmount: 5,
shippingAmount: 10,
customerNotes: "Please ship as soon as possible!",
internalNotes: "Customer called and would like to upgrade shipping",
gift: true,
giftMessage: "Thank you!",
paymentMethod: "Credit Card",
requestedShippingService: "Priority Mail",
carrierCode: "fedex",
serviceCode: "fedex_2day",
packageCode: "package",
confirmation: "delivery",
shipDate: "2015-07-02",
weight: {
value: 25,
units: "ounces",
},
dimensions: {
units: "inches",
length: 7,
width: 5,
height: 6,
},
insuranceOptions: {
provider: "carrier",
insureShipment: true,
insuredValue: 200,
},
internationalOptions: {
contents: null,
customsItems: null,
},
advancedOptions: {
warehouseId: 98765,
nonMachinable: false,
saturdayDelivery: false,
containsAlcohol: false,
mergedOrSplit: false,
mergedIds: [],
parentId: null,
storeId: 12345,
customField1:
"Custom data that you can add to an order. See Custom Field #2 & #3 for more info!",
customField2:
"Per UI settings, this information can appear on some carrier's shipping labels. See link below",
customField3: "https://help.shipstation.com/hc/en-us/articles/206639957",
source: "Webstore",
billToParty: null,
billToAccount: null,
billToPostalCode: null,
billToCountryCode: null,
},
tagIds: [53974],
});
}
async function getAllOrders() {
return shipStationClient.orders.getAll({
pageSize: 2,
page: 1,
});
}
async function getAllCarriers() {
return shipStationClient.carriers.getAll();
}
async function getAllShipments() {
return shipStationClient.shipments.getAll();
}
Promise.allSettled([
createOrder(),
getAllOrders(),
getAllCarriers(),
getAllShipments(),
])
.then((results) => {
const [createOrder, orders, carriers, shipments] = results;
console.log("Results: ", {
createOrder,
orders,
carriers,
shipments,
});
})
.catch(handleError);