Skip to content

Shopify

This Shopify component allows you to interact with your Shopify store directly within Nappai. It acts as a bridge between your automation workflows and your store’s data, allowing you to read, create, update, or delete information such as products, orders, and customer details.

By using this component, you can automate routine tasks like updating inventory levels, syncing customer information, or retrieving specific order details without manually logging into the Shopify dashboard.

How it Works

This component connects to the Shopify Admin REST API. When you configure it, it sends secure requests to your store’s servers to retrieve or modify data.

Internally, the component handles the complex communication details for you:

  1. Authentication: It uses your secure credentials to verify your identity and ensure only authorized changes are made.
  2. Data Handling: It translates your simple inputs (like a product title or order ID) into the specific language Shopify’s API understands.
  3. Response: It receives the data back from Shopify and presents it in a format you can use in the next steps of your workflow.

You don’t need to worry about the underlying code or API endpoints; simply select the operation you need and fill in the relevant details.

Connection & Credentials

This component requires a Shopify API credential to function securely. You must set this up before you can use the component in your workflows.

  1. Go to the Credentials section in your Nappai panel.
  2. Create a new credential of the type Shopify API.
    • Note: You will need to generate these keys from your Shopify Admin: Settings > Apps > Develop apps.
  3. Fill in the required fields (Shop URL, API Client ID, API Secret Key, and API Version).
  4. In your workflow, select the saved credential in the Credential input field of this node.

Operations

This component offers several operations that you can select based on what you need to do. You can only use one operation at a time:

  • [Get]: Retrieve data from your store, such as a list of products or a specific customer.
  • [Create]: Add new items to your store, such as a new product or order.
  • [Update]: Modify existing items in your store, such as changing a product’s price or stock.
  • [Delete]: Remove items from your store, such as deleting a specific product or order.

To use the component, first select the operation you need in the Operation field.

Inputs

The following fields are available to configure this component. Each field may be visible in different operations:

  • Entity: Choose the type of data you want to work with (e.g., Products, Orders, Customers).
    • Visible in: Get, Create, Update, Delete
  • Operation: Select the action you want to perform (Get, Create, Update, or Delete).
    • Visible in: Get, Create, Update, Delete
  • Data: Provide the data for creating or updating entities.
    • Visible in: Create, Update, Delete
  • Entity ID: The unique ID of the entity to get, update, or delete.
    • Visible in: Get, Update, Delete
  • Limit: The number of entities to return when fetching data.
    • Visible in: Get
  • Order By: Field to order results by (prepend with ’-’ for descending order, e.g. ‘-created_at’).
    • Visible in: Get
  • Search: Looking for something specific? Enter your search word or phrase here. When fetching data, only items containing this text will be shown. Leave empty to not filter by search.
    • Visible in: Get
  • Product Title: Title of the product to create.
    • Visible in: Get, Create, Update, Delete
  • Product Price: The price of the product. If using Options, separate prices by comma for each variant combination (e.g., ‘19.99, 24.99, 29.99’). The number of prices must match the total variant combinations or use a single price for all.
    • Visible in: Get, Create, Update, Delete
  • Include Additional Fields: Include additional fields to create or update.
    • Visible in: Get, Create, Update, Delete
  • Additional Fields: Additional fields to create or update.
    • Visible in: Get, Create, Update, Delete
  • Product Body HTML: A description of the product. Supports HTML formatting.
    • Visible in: Get, Create, Update, Delete
  • Product Type: A categorization for the product used for filtering and searching products.
    • Visible in: Get, Create, Update, Delete
  • Vendor: The name of the product’s vendor.
    • Visible in: Get, Create, Update, Delete
  • Tags: A string of comma-separated tags that are used for filtering and search. A product can have up to 250 tags. Each tag can have up to 255 characters.
    • Visible in: Get, Create, Update, Delete
  • Image Created At: The date and time when the image was created.
    • Visible in: Get, Create, Update, Delete
  • Image ID: The ID of the image.
    • Visible in: Get, Create, Update, Delete
  • Image Position: The position of the image.
    • Visible in: Get, Create, Update, Delete
  • Image Src: Image source. Accepts URL or JSON array. URL: http://example.com/image.jpg. JSON: [{“src”:“http://example.com/1.jpg”,“position”:1}].
    • Visible in: Get, Create, Update, Delete
  • Image Width: The width of the image.
    • Visible in: Get, Create, Update, Delete
  • Image Height: The height of the image.
    • Visible in: Get, Create, Update, Delete
  • Handle: Handle of the product to create.
    • Visible in: Get, Create, Update, Delete
  • Options: Product options. Accepts JSON array or string format. JSON: [{“name”:“Color”,“values”:[“Pink”,“Red”]}] String: name:Color,values:Pink|Red|Green.
    • Visible in: Get, Create, Update, Delete
  • Published At: The date and time when the product was published.
    • Visible in: Get, Create, Update, Delete
  • Published Scope: Published scope of the product to create.
    • Visible in: Get, Create, Update, Delete
  • Template Suffix: Template suffix of the product to create.
    • Visible in: Get, Create, Update, Delete
  • Customer ID: Customer ID to associate with the order.
    • Visible in: Get, Create, Update, Delete
  • Number of Line Items: Number of line items to add to the order.
    • Visible in: Get, Create, Update, Delete
  • Include Additional Fields: Include additional fields to create or update order.
    • Visible in: Get, Create, Update, Delete
  • Select Additional Fields: Select which additional fields to include.
    • Visible in: Get, Create, Update, Delete
  • Billing Address First Name: Billing Address First Name.
    • Visible in: Get, Create, Update, Delete
  • Billing Address Last Name: Billing Address Last Name.
    • Visible in: Get, Create, Update, Delete
  • Address Line 1: Billing Address Line 1.
    • Visible in: Get, Create, Update, Delete
  • Address Line 2: Billing Address Line 2.
    • Visible in: Get, Create, Update, Delete
  • Billing Address City: Billing Address City.
    • Visible in: Get, Create, Update, Delete
  • Billing Address Zip: Billing Address Zip.
    • Visible in: Get, Create, Update, Delete
  • Billing Address State: Billing Address State.
    • Visible in: Get, Create, Update, Delete
  • Billing Address Country: Billing Address Country.
    • Visible in: Get, Create, Update, Delete
  • Billing Address Company: Billing Address Company.
    • Visible in: Get, Create, Update, Delete
  • Billing Address Phone: Billing Address Phone.
    • Visible in: Get, Create, Update, Delete
  • Number of Discount Codes: Number of discount codes to apply to the order.
    • Visible in: Get, Create, Update, Delete
  • Order Email: Order Email.
    • Visible in: Get, Create, Update, Delete
  • Fulfillment Status: Fulfillment Status.
    • Visible in: Get, Create, Update, Delete
  • Order Inventory Management: Order Inventory Management.
    • Visible in: Get, Create, Update, Delete
  • Order Note: Order Note.
    • Visible in: Get, Create, Update, Delete
  • Order Send Fulfillment Receipt: Order Send Fulfillment Receipt.
    • Visible in: Get, Create, Update, Delete
  • Order Send Receipt: Order Send Receipt.
    • Visible in: Get, Create, Update, Delete
  • Order Shipping Address First Name: Order Shipping Address First Name.
    • Visible in: Get, Create, Update, Delete
  • Order Shipping Address Last Name: Order Shipping Address Last Name.
    • Visible in: Get, Create, Update, Delete
  • Order Shipping Address Address1: Order Shipping Address Address1.
    • Visible in: Get, Create, Update, Delete
  • Order Shipping Address Address2: Order Shipping Address Address2.
    • Visible in: Get, Create, Update, Delete
  • Order Shipping Address City: Order Shipping Address City.
    • Visible in: Get, Create, Update, Delete
  • Order Shipping Address Company: Order Shipping Address Company.
    • Visible in: Get, Create, Update, Delete
  • Order Shipping Address Country: Order Shipping Address Country.
    • Visible in: Get, Create, Update, Delete
  • Order Shipping Address Phone: Order Shipping Address Phone.
    • Visible in: Get, Create, Update, Delete
  • Order Shipping Address Province: Order Shipping Address Province.
    • Visible in: Get, Create, Update, Delete
  • Order Shipping Address Zip: Order Shipping Address Zip.
    • Visible in: Get, Create, Update, Delete
  • Order Source Name: The name of the source of the order.
    • Visible in: Get, Create, Update, Delete
  • Order Tags: The tags of the order separated by commas.
    • Visible in: Get, Create, Update, Delete
  • Order Test: Whether the order is a test order.
    • Visible in: Get, Create, Update, Delete
  • First Name: Customer first name.
    • Visible in: Get, Create, Update, Delete
  • Last Name: Customer last name.
    • Visible in: Get, Create, Update, Delete
  • Customer Email: Customer email address.
    • Visible in: Get, Create, Update, Delete
  • Customer Phone: Customer phone number.
    • Visible in: Get, Create, Update, Delete
  • Customer Tags: Comma-separated tags for the customer.
    • Visible in: Get, Create, Update, Delete
  • Customer Note: Note about the customer.
    • Visible in: Get, Create, Update, Delete
  • Tracking Number: Tracking number for the shipment (e.g. Tipsa tracking code).
    • Visible in: Get, Create, Update, Delete
  • Tracking Company: Shipping carrier name (e.g. Tipsa, SEUR, DHL).
    • Visible in: Get, Create, Update, Delete
  • Notify Customer: Send shipment notification email to customer.
    • Visible in: Get, Create, Update, Delete

Outputs

After the component runs, it produces a Result output containing the data fetched from Shopify or confirmation of the action taken. You can connect this output to other components in your workflow to process the data further (e.g., saving it to a database or sending an email).

Output Data Example (JSON)

json { “id”: 6325903104, “email”: “george.roy@example.com”, “created_at”: “2021-01-01T00:00:00-05:00”, “updated_at”: “2021-01-01T00:00:00-05:00”, “number”: 1, “note”: “Note about the order”, “total_price”: “100.00”, “status”: “pending”, “line_items”: [ { “id”: 8520657399, “title”: “IPod Nano - 8GB”, “quantity”: 1, “price”: “199.00” } ] }

Connectivity

This component typically connects to:

  • Data Retrieval Nodes: Outputs from this component are often fed into components that filter, format, or store the retrieved data (e.g., a “Filter” or “Database Save” node).
  • Action Triggers: Outputs from other components (like a new order from an e-commerce platform) can be connected to this component’s “Create” operation to sync data into Shopify.

Usage Example

Scenario: Syncing New Products to Shopify

  1. Trigger: A workflow starts when a new product is added to your internal inventory system.
  2. Shopify Component:
    • Set Operation to Create.
    • Set Entity to Products.
    • Map the Product Title from the incoming data to the Product Title input.
    • Map the Product Price to the Product Price input.
    • Provide your Shopify API Credential.
  3. Result: The component creates the product in Shopify and returns the new Product ID, which you can then use to update inventory elsewhere.

Important Notes

🔒 Securely Store API Credentials Never commit your API key or password to version control. Store them in encrypted secrets or environment variables to protect against unauthorized access.

⚠️ Development Status May Cause Instability This component is marked as a development version, which means it may contain bugs or change behavior without warning. Users should test thoroughly in a staging environment before using it in production.

⚠️ Shopify API Rate Limits Apply Shopify enforces a limit of 2,000 requests per hour per store. Exceeding this limit will result in temporary blocks, so monitor usage when performing bulk operations.

📋 Provide Valid Shopify Credentials You must supply a Shopify store domain, API key, and API password. Without these, the component cannot authenticate and will fail to retrieve data.

💡 Use Specific API Endpoints to Reduce Load Target only the resources you need (e.g., orders, products) instead of fetching all data. This minimizes API calls, speeds up processing, and reduces the chance of hitting rate limits.

⚙️ Set Credentials via Environment Variables A recommended approach is to set SHOPIFY_API_KEY, SHOPIFY_PASSWORD, and SHOPIFY_DOMAIN in your environment. This keeps credentials out of code and simplifies deployment across environments.

ℹ️ Component Requires Internet Connectivity All operations involve HTTP requests to Shopify’s REST API, so the component must run on a machine with internet access. Offline usage will result in failed requests.

Tips and Best Practices

  • Always specify the Entity type explicitly to avoid errors; leaving it blank may result in default behavior that you might not expect.
  • When using Get, consider using the Limit and Search fields to reduce the amount of data retrieved, which speeds up your workflow and saves API calls.
  • For bulk operations, be mindful of the rate limits mentioned in the Important Notes section to prevent temporary blocks on your store.
  • Use the Order By field to organize your retrieved data in a predictable way (e.g., newest orders first).

Security Considerations

  • Ensure your Shopify API credentials are stored securely within Nappai’s credential manager.
  • Do not share your API Secret Key with anyone who does not need access to your store’s admin data.
  • Regularly review the permissions granted to your API app in the Shopify Admin to ensure they align with what your automation needs (Principle of Least Privilege).