with Swell and Odoo?
Update an existing account with the corresponding ID. See the documentation
The Swell API is like a Swiss Army knife for e-commerce platforms, giving you the power to twist, shape, and scale your online store. Within Pipedream's serverless environment, you can automate actions like syncing new orders to your CRM, updating inventory in real-time, or even crafting personalized marketing campaigns based on customer behavior. With triggers, actions, and the ability to combine Swell with a myriad of other apps, Pipedream turns the Swell API into a potent tool for e-commerce automation.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
swell: {
type: "app",
app: "swell",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://${this.swell.$auth.store_id}:${this.swell.$auth.secret_key}@api.swell.store/products`,
})
},
})
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();
},
})