# Create Product — Shopify 

> Create a new product. See the documentation

- Key: `shopify-create-product`
- Type: Action (Write)
- Version: 0.0.24
- App: Shopify  (`shopify`) — https://pipedream.com/apps/shopify.md
- This page (HTML): https://pipedream.com/apps/shopify/actions/create-product
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/shopify/actions/create-product/create-product.mjs

## Description

Create a new product. [See the documentation](https://shopify.dev/docs/api/admin-graphql/latest/mutations/productCreate)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `title` | `string` | Yes | Title of the new product |
| `productDescription` | `string` | No | A description of the product. Supports HTML formatting. Example: <strong>Good snowboard!</strong> |
| `vendor` | `string` | No | The name of the product's vendor |
| `productType` | `string` | No | A categorization for the product used for filtering and searching products |
| `status` | `string` | No | The status of the product. active: The product is ready to sell and is available to customers on the online store, sales channels, and apps. By default, existing products are set to active. archived: The product is no longer being sold and isn't available to customers on sales channels and apps. draft: The product isn't ready to sell and is unavailable to customers on sales channels and apps. By default, duplicated and unarchived products are set to draft |
| `images` | `string[]` | No | A list of URLs of images to associate with the new product |
| `options` | `string[]` | No | The custom product properties. For example, Size, Color, and Material. Each product can have up to 3 options and each option value can be up to 255 characters. Product variants are made of up combinations of option values. Options cannot be created without values. To create new options, a variant with an associated option value also needs to be created. Example: [{"name":"Color","values":[{"name": "Blue"},{"name": "Black"}]},{"name":"Size","values":[{"name": "155"},{"name": "159"}]}] |
| `tags` | `string[]` | No | An array of tags to add |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "shopify",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "shopify-create-product",
  arguments: {
    title: "Title",
    productDescription: "Product Description",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "shopify-create-product",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    shopify: { authProvisionId: "apn_xxxxxxx" },
    title: "Title",
    productDescription: "Product Description",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "shopify-create-product",
    "configured_props": {
      "shopify": { "authProvisionId": "apn_xxxxxxx" },
      "title": "Title",
      "productDescription": "Product Description"
    }
  }'
```

---

- App: https://pipedream.com/apps/shopify.md · All apps: https://pipedream.com/apps
