Adobe Document Generation API

Create business-critical documents like invoices, contracts, sales proposals, and work orders automatically.

Integrate the Adobe Document Generation API API with the Shopify API

Setup the Adobe Document Generation API API trigger to run a workflow which integrates with the Shopify API. Pipedream's integration platform allows you to integrate Adobe Document Generation API and Shopify remarkably fast. Free for developers.

Trusted by 1,000,000+ developers from startups to Fortune 500 companies

Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
New Abandoned Cart from the Shopify API

Emit new event each time a user abandons their cart.

 
Try it
New Article from the Shopify API

Emit new event for each new article in a blog.

 
Try it
New Cancelled Order (Instant) from the Shopify API

Emit new event each time a new order is cancelled.

 
Try it
New Customer Created (Instant) from the Shopify API

Emit new event for each new customer added to a store.

 
Try it
New Draft Order (Instant) from the Shopify API

Emit new event for each new draft order submitted to a store.

 
Try it
Add Products to Custom Collections with the Shopify API

Adds a product or products to a custom collection or collections. See the docs

 
Try it
Add Tags with the Shopify API
 
Try it
Create Article with the Shopify API

Create a new blog article. See The Documentation

 
Try it
Create Blog with the Shopify API

Create a new blog. See The Documentation

 
Try it
Create Custom Collection with the Shopify API

Create a new custom collection. See the documentation

 
Try it

Connect Adobe Document Generation API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import fs from "fs";
import axios from "axios";
import {
	ServicePrincipalCredentials,
	PDFServices,
	MimeType,
	DocumentMergeParams,
	OutputFormat,
	DocumentMergeJob,
	DocumentMergeResult
} from "@adobe/pdfservices-node-sdk";

export default defineComponent({
  props: {
    adobe_document_generation_api: {
      type: "app",
      app: "adobe_document_generation_api",
    }
  },
  async run({steps, $}) {
		// Configuration constants
		const PDF_SERVICES_CLIENT_ID = this.adobe_document_generation_api.$auth.client_id;
		const PDF_SERVICES_CLIENT_SECRET = this.adobe_document_generation_api.$auth.client_secret;

			try {
				// Initial setup, create credentials instance
				const credentials = new ServicePrincipalCredentials({
					clientId: PDF_SERVICES_CLIENT_ID,
					clientSecret: PDF_SERVICES_CLIENT_SECRET
				});

				// Creates a PDF Services instance
				const pdfServices = new PDFServices({ credentials });

				// Creates an asset(s) from source file(s) and upload
        const response = await axios.get("https://developer.adobe.com/document-services/docs/receiptTemplate.docx", { responseType: 'stream' });
        const readStream = response.data;
				const inputAsset = await pdfServices.upload({
					readStream,
					mimeType: MimeType.DOCX
				});

				// Setup input data for the document merge process
      const jsonDataForMerge = {
        "author": "Gary Lee",
        "Company": {
          "Name": "Projected",
          "Address": "19718 Mandrake Way",
          "PhoneNumber": "+1-100000098"
        },
        "Invoice": {
          "Date": "January 15, 2021",
          "Number": 123,
          "Items": [
            {
              "item": "Gloves",
              "description": "Microwave gloves",
              "UnitPrice": 5,
              "Quantity": 2,
              "Total": 10
            },
            {
              "item": "Bowls",
              "description": "Microwave bowls",
              "UnitPrice": 10,
              "Quantity": 2,
              "Total": 20
            }
          ]
        },
        "Customer": {
          "Name": "Collins Candy",
          "Address": "315 Dunning Way",
          "PhoneNumber": "+1-200000046",
          "Email": "cc@abcdef.co.dw"
        },
        "Tax": 5,
        "Shipping": 5,
        "clause": {
          "overseas": "The shipment might take 5-10 more than informed."
        },
        "paymentMethod": "Cash"
      };

				// Create parameters for the job
				const params = new DocumentMergeParams({
					jsonDataForMerge,
					outputFormat: OutputFormat.PDF
				});

				// Creates a new job instance
				const job = new DocumentMergeJob({ inputAsset, params });

				// Submit the job and get the job result
				const pollingURL = await pdfServices.submit({ job });
				const pdfServicesResponse = await pdfServices.getJobResult({
					pollingURL,
					resultType: DocumentMergeResult
				});

				// Get content from the resulting asset(s)
				const resultAsset = pdfServicesResponse.result.asset;
				const streamAsset = await pdfServices.getContent({ asset: resultAsset });

				// Creates a write stream and copy stream asset's content to it
				const outputFilePath = "/tmp/generatePDFOutput.pdf";
				console.log(`Saving asset at ${outputFilePath}`);

				return new Promise((resolve, reject) => {
					const writeStream = fs.createWriteStream(outputFilePath);
					streamAsset.readStream.pipe(writeStream);
					writeStream.on('finish', () => resolve(outputFilePath));
					writeStream.on('error', reject);
				});
			} catch(err) {
				console.error('Error generating PDF:', err);
				throw err;
			}
  },
})

Overview of Shopify

The Shopify Admin REST & GraphQL API unleashes a myriad of possibilities to automate and enhance online store operations. It provides programmatic access to Shopify functionalities, allowing users to manage products, customers, orders, and more. Leveraging the Shopify Admin API within Pipedream, developers can create custom workflows that automate repetitive tasks, sync data across platforms, and respond dynamically to events in Shopify.

This integration can be used as a custom app on your store, or for automating actions on behalf of merchants through your Shopify app.

Looking for integrating into the Shopify Partner API for your apps, themes or referrals? Check out our Shopify Partner API integration.

Connect Shopify

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { axios } from "@pipedream/platform"
export default defineComponent({
  props: {
    shopify_developer_app: {
      type: "app",
      app: "shopify_developer_app",
    }
  },
  async run({steps, $}) {
    const data = {
      "query": `{  
        shop { 
          id 
          name
          email 
        } 
      }`,
    }
    return await axios($, {
      method: "post",
      url: `https://${this.shopify_developer_app.$auth.shop_id}.myshopify.com/admin/api/2024-04/graphql.json`,
      headers: {
        "X-Shopify-Access-Token": `${this.shopify_developer_app.$auth.access_token}`,
        "Content-Type": `application/json`,
      },
      data,
    })
  },
})

Trusted by 1,000,000+ developers from startups to Fortune 500 companies

Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo