with Etsy and Odoo?
Emit new event when a new shop receipt is created. See the Documentation
Emit new event when a new transaction is created. See the Documentation
Creates a physical draft listing product in a shop on the Etsy channel. See the Documentation
Open API V3 endpoint to delete a ShopListing. A ShopListing can be deleted only if the state is one of the following: SOLD_OUT
, DRAFT
, EXPIRED
, INACTIVE
, ACTIVE
and is_available
or ACTIVE
and has seller flags: SUPRESSED
(frozen), VACATION
, CUSTOM_SHOPS
(pattern), SELL_ON_FACEBOOK
. See the Documentation
Retrieves the inventory record for a listing by listing ID. See the Documentation
Updates the inventory for a listing identified by a listing ID. See the Documentation
Etsy is a global e-commerce platform specializing in handmade, vintage, and craft items. It offers a marketplace where artisans can connect directly with buyers. The term 'Etsy' is a trademark of Etsy, Inc. This application uses the Etsy API but is not endorsed or certified by Etsy.
The Etsy API provides a rich interface to interact with the popular e-commerce platform known for its unique, handmade, and vintage items. Using the Etsy API via Pipedream, you can automate various aspects of your Etsy shop, including inventory management, order processing, and customer engagement. It opens up possibilities for streamlining mundane tasks, reacting to shop events in real-time, and syncing data across different platforms, enhancing the efficiency and responsiveness of your online business operations.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
etsy: {
type: "app",
app: "etsy",
}
},
async run({steps, $}) {
return await axios($, {
url: `https://openapi.etsy.com/v3/application/users/me`,
headers: {
Authorization: `Bearer ${this.etsy.$auth.oauth_access_token}`,
"x-api-key": `${this.etsy.$auth.oauth_client_id}`,
},
})
},
})
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();
},
})