Built-in Modules > Idropship Class
Idropship Class
Important: This plugin relies on third-party resources. The resources might change or be discontinued without notice. Ensure you test the plugin extensively before production use, implement error handling with a try-catch block, have a backup shipping rate ready, and reach out to our support with detailed descriptions of any unexpected issues.
Overview
The Idropship
class is specifically designed to retrieve real-time shipping rates for "Idropship" products.
Class Definition
class Idropship {
constructor(destination) {
// Class constructor
}
async getRates(idropshipProducts) {
// Method to fetch rates
}
}
Arguments
destination
(Object): This is the "destination" component of the DATA JSON object passed to thecalculateShippingRates
function.
Usage Example
const idropship = new Idropship(DATA.destination);
const idropshipProducts = [
{ idropship_shipping_class: "SC2", quantity: 1 },
{ idropship_shipping_class: "SC5", quantity: 1 },
// ... other products
];
const rates = await idropship.getRates(idropshipProducts);
In the provided example, the Idropship
class is instantiated with the shipping destination from your data. Then, the getRates
method computes the shipping rates for an assortment of Idropship products, each with their idropship_shipping_class
and quantity
. The format for the returned rates
will be the same as that used by Shopify for shipping rates.
Sample AI Prompt
I'd like a shipping rate calculator for items from Idropship.
Enrich the data with metafield namespace "market" with size 10.
The Idropship product shipping class for each items is saved in the items metafield "market" with key "idropship_shipping_class".
Sample AI Output
import { enrichItemDetails } from "./modules.js";
import { Idropship } from "./modules.js";
export async function calculateShippingRates(DATA, env) {
try {
// Enrich the data with metafield namespace "market" with size 10.
DATA = await enrichItemDetails(DATA, [{ namespace: "market", size: 10 }]);
// Get the Idropship product shipping class for each item.
const idropshipProducts = DATA.items.map((item) => {
const idropshipShippingClass = item.metafields.market.idropship_shipping_class;
return { idropship_shipping_class: idropshipShippingClass, quantity: item.quantity };
});
// Create an instance of the Idropship class.
const idropship = new Idropship(DATA.destination);
// Get the shipping rates.
const rates = await idropship.getRates(idropshipProducts);
// Return the shipping rates.
return { rates };
} catch (error) {
// Return a rate with price equals to null, and other rate fields set to empty string.
return {
rates: [
{
service_name: "",
service_code: "",
total_price: null,
description: "",
currency: "",
min_delivery_date: "",
max_delivery_date: "",
},
],
};
}
}