with Odoo and Zoho Inventory?
Emit new event each time a new contact is created in Zoho Inventory
Emit new event each time a new invoice is created in Zoho Inventory
Emit new event each time a new item is created in Zoho Inventory
Emit new event each time a new sales order is created in Zoho Inventory
import xmlrpc from 'xmlrpc';
export default defineComponent({
props: {
odoo: {
type: "app",
app: "odoo",
}
},
async run({ steps, $ }) {
const url = this.odoo.$auth.server_url;
const db = this.odoo.$auth.db;
const username = this.odoo.$auth.username;
const password = this.odoo.$auth.password;
// Create clients for common and object endpoints
const common = xmlrpc.createSecureClient(`${url}/xmlrpc/2/common`);
const models = xmlrpc.createSecureClient(`${url}/xmlrpc/2/object`);
// Using async/await with promises
async function getFields() {
try {
// Authenticate and get uid
const uid = await new Promise((resolve, reject) => {
common.methodCall('authenticate', [db, username, password, {}], (error, value) => {
if (error) reject(error);
resolve(value);
});
});
// Get fields
const results = await new Promise((resolve, reject) => {
models.methodCall('execute_kw', [
db,
uid,
password,
'res.partner',
'fields_get',
[],
{ 'attributes': ['string', 'help', 'type'] }
], (error, value) => {
if (error) reject(error);
resolve(value);
});
});
return results;
} catch (error) {
throw new Error(error);
}
}
return await getFields();
},
})
Zoho Inventory API on Pipedream opens the door to smart inventory management by allowing you to integrate with a plethora of apps, automate inventory tracking, and streamline order processing. You can sync your inventory levels across multiple sales channels, automatically update stock quantities, process sales orders, manage returns, and generate detailed reports, all in real-time. With Pipedream's serverless platform, crafting workflows becomes a breeze, letting you focus on scaling your business while reducing manual overhead.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
zoho_inventory: {
type: "app",
app: "zoho_inventory",
}
},
async run({steps, $}) {
return await axios($, {
url: `${this.zoho_inventory.$auth.api_domain}/inventory/v1/users/me`,
headers: {
"Authorization": `Zoho-oauthtoken ${this.zoho_inventory.$auth.oauth_access_token}`,
},
})
},
})