Skip to content

Conversation

@michelle0927
Copy link
Collaborator

@michelle0927 michelle0927 commented Jul 24, 2025

Resolves #17437

Summary by CodeRabbit

  • New Features

    • Added actions to create fulfillments, refund orders, and update fulfillment tracking info.
    • Introduced action to search for fulfillment orders.
    • Added new event sources: Cart Updated, New Cart Created, Inventory Level Updated, and Shop Updated.
  • Enhancements

    • Expanded app capabilities with new fulfillment-related properties and methods.
    • Added new GraphQL queries and mutations for fulfillment and refund operations.
  • Bug Fixes / Maintenance

    • Updated version numbers across multiple actions and event sources for consistency.
  • Chores

    • Bumped package version to 0.9.0.

@vercel
Copy link

vercel bot commented Jul 24, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

3 Skipped Deployments
Name Status Preview Comments Updated (UTC)
docs-v2 ⬜️ Ignored (Inspect) Visit Preview Jul 24, 2025 8:12pm
pipedream-docs ⬜️ Ignored (Inspect) Jul 24, 2025 8:12pm
pipedream-docs-redirect-do-not-edit ⬜️ Ignored (Inspect) Jul 24, 2025 8:12pm

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 24, 2025

Walkthrough

This update introduces new fulfillment and refund actions, additional fulfillment-related queries and mutations, and new event sources for cart, inventory, and shop updates in the Shopify Developer App. It also includes version bumps for many existing actions and sources, and enhancements to the app's prop definitions and methods to support new fulfillment workflows.

Changes

File(s) Change Summary
.../actions/create-fulfillment/create-fulfillment.mjs New action: Create fulfillment for fulfillment orders, including dynamic prop handling and API interaction.
.../actions/refund-order/refund-order.mjs New action: Refund an order, with dynamic props for line items, quantities, restock types, and location.
.../actions/search-fulfillment-orders/search-fulfillment-orders.mjs New action: Search for fulfillment orders with optional query and pagination.
.../actions/update-fulfillment-tracking-info/update-fulfillment-tracking-info.mjs New action: Update fulfillment tracking information for a specific fulfillment.
.../common/mutations.mjs New mutations: Added GraphQL mutations for refund order, update fulfillment tracking info, and create fulfillment.
.../common/queries.mjs New queries: Added GraphQL queries for fulfillment orders and their line items.
.../shopify_developer_app.app.mjs Enhancements: Added prop definitions and methods for fulfillment data, refunds, and tracking updates.
.../sources/cart-updated/cart-updated.mjs New source: Emits event when a cart is updated.
.../sources/new-cart-created/new-cart-created.mjs New source: Emits event when a new cart is created.
.../sources/inventory-level-updated/inventory-level-updated.mjs New source: Emits event when an inventory level is updated.
.../sources/shop-update/shop-update.mjs New source: Emits event when shop details are updated.
.../actions/* (multiple files) Version bump: Incremented version numbers for numerous action modules.
.../sources/* (multiple files) Version bump: Incremented version numbers for numerous source modules.
.../package.json Version bump: Updated package version from 0.8.1 to 0.9.0.

Sequence Diagram(s)

New Fulfillment Creation Flow

sequenceDiagram
    participant User
    participant ActionModule as Create Fulfillment Action
    participant ShopifyApp
    participant ShopifyAPI

    User->>ActionModule: Provide fulfillment order and line item details
    ActionModule->>ShopifyApp: Call createFulfillment with details
    ShopifyApp->>ShopifyAPI: Send GraphQL mutation (CREATE_FULFILLMENT)
    ShopifyAPI-->>ShopifyApp: Return fulfillment result
    ShopifyApp-->>ActionModule: Return fulfillment data
    ActionModule-->>User: Return summary and fulfillment info
Loading

Order Refund Flow

sequenceDiagram
    participant User
    participant RefundAction
    participant ShopifyApp
    participant ShopifyAPI

    User->>RefundAction: Select order and line items to refund
    RefundAction->>ShopifyApp: Call refundOrder with refund input
    ShopifyApp->>ShopifyAPI: Send GraphQL mutation (REFUND_ORDER)
    ShopifyAPI-->>ShopifyApp: Return refund result
    ShopifyApp-->>RefundAction: Return refund data
    RefundAction-->>User: Return summary and refund info
Loading

Fulfillment Tracking Update

sequenceDiagram
    participant User
    participant TrackingUpdateAction
    participant ShopifyApp
    participant ShopifyAPI

    User->>TrackingUpdateAction: Provide fulfillment ID and tracking info
    TrackingUpdateAction->>ShopifyApp: Call updateFulfillmentTrackingInfo
    ShopifyApp->>ShopifyAPI: Send GraphQL mutation (UPDATE_FULFILLMENT_TRACKING_INFO)
    ShopifyAPI-->>ShopifyApp: Return update result
    ShopifyApp-->>TrackingUpdateAction: Return update data
    TrackingUpdateAction-->>User: Return summary and update info
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20–25 minutes

Suggested labels

User submitted

Poem

A hop, a leap, a Shopify sweep—
New actions and sources, oh what a heap!
Fulfillments and refunds, carts that appear,
Inventory updates, all drawing near.
With every version, this warren grows bright—
Rabbits coding swiftly, deep into the night!
🐇✨

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

components/shopify_developer_app/actions/update-fulfillment-tracking-info/update-fulfillment-tracking-info.mjs

Oops! Something went wrong! :(

ESLint: 8.57.1

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs
at Object.getPackageJSONURL (node:internal/modules/package_json_reader:255:9)
at packageResolve (node:internal/modules/esm/resolve:767:81)
at moduleResolve (node:internal/modules/esm/resolve:853:18)
at defaultResolve (node:internal/modules/esm/resolve:983:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:801:12)
at #cachedDefaultResolve (node:internal/modules/esm/loader:725:25)
at ModuleLoader.resolve (node:internal/modules/esm/loader:708:38)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:309:38)
at #link (node:internal/modules/esm/module_job:202:49)

components/shopify_developer_app/actions/refund-order/refund-order.mjs

Oops! Something went wrong! :(

ESLint: 8.57.1

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs
at Object.getPackageJSONURL (node:internal/modules/package_json_reader:255:9)
at packageResolve (node:internal/modules/esm/resolve:767:81)
at moduleResolve (node:internal/modules/esm/resolve:853:18)
at defaultResolve (node:internal/modules/esm/resolve:983:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:801:12)
at #cachedDefaultResolve (node:internal/modules/esm/loader:725:25)
at ModuleLoader.resolve (node:internal/modules/esm/loader:708:38)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:309:38)
at #link (node:internal/modules/esm/module_job:202:49)

components/shopify_developer_app/shopify_developer_app.app.mjs

Oops! Something went wrong! :(

ESLint: 8.57.1

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs
at Object.getPackageJSONURL (node:internal/modules/package_json_reader:255:9)
at packageResolve (node:internal/modules/esm/resolve:767:81)
at moduleResolve (node:internal/modules/esm/resolve:853:18)
at defaultResolve (node:internal/modules/esm/resolve:983:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:801:12)
at #cachedDefaultResolve (node:internal/modules/esm/loader:725:25)
at ModuleLoader.resolve (node:internal/modules/esm/loader:708:38)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:309:38)
at #link (node:internal/modules/esm/module_job:202:49)

Note

⚡️ Unit Test Generation is now available in beta!

Learn more here, or try it out under "Finishing Touches" below.


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 90ca79f and f0d77fc.

📒 Files selected for processing (3)
  • components/shopify_developer_app/actions/refund-order/refund-order.mjs (1 hunks)
  • components/shopify_developer_app/actions/update-fulfillment-tracking-info/update-fulfillment-tracking-info.mjs (1 hunks)
  • components/shopify_developer_app/shopify_developer_app.app.mjs (4 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • components/shopify_developer_app/actions/update-fulfillment-tracking-info/update-fulfillment-tracking-info.mjs
  • components/shopify_developer_app/shopify_developer_app.app.mjs
🧰 Additional context used
🧠 Learnings (1)
components/shopify_developer_app/actions/refund-order/refund-order.mjs (1)

Learnt from: GTFalcao
PR: #14229
File: components/americommerce/actions/update-customer/update-customer.mjs:89-94
Timestamp: 2024-10-08T16:42:59.225Z
Learning: When defining boolean properties in AmeriCommerce components (e.g., in update-customer.mjs), ensure that the label and description are consistent and clearly indicate the intent, especially when using negations like "No Account", to avoid confusion.

🧬 Code Graph Analysis (1)
components/shopify_developer_app/actions/refund-order/refund-order.mjs (1)
components/shopify_developer_app/shopify_developer_app.app.mjs (2)
  • order (50-53)
  • order (65-68)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Publish TypeScript components
  • GitHub Check: Verify TypeScript components
  • GitHub Check: Lint Code Base
🔇 Additional comments (4)
components/shopify_developer_app/actions/refund-order/refund-order.mjs (4)

1-9: LGTM: Proper imports and action metadata.

The imports are correctly structured and the action metadata follows Pipedream conventions with appropriate documentation reference.


10-34: LGTM: Props are well-defined and previous issue resolved.

The props are correctly structured. The note property has been properly added since the previous review, addressing the missing property issue. The lineItemIds prop correctly uses dynamic context to filter items by order.


35-79: LGTM: Well-implemented dynamic props generation.

The additionalProps method efficiently generates dynamic properties for each selected line item. The early return optimization, line item lookup logic, and async options for location selection are all well-implemented. The restock type options with a sensible default value of "RETURN" follow good UX practices.


80-100: LGTM: Robust run method implementation.

The run method is well-structured with proper input mapping, appropriate error handling for GraphQL user errors, and informative response handling. The dynamic property access pattern matches the additionalProps generation correctly.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch issue-17437

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@michelle0927 michelle0927 marked this pull request as ready for review July 24, 2025 19:57
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🔭 Outside diff range comments (1)
components/shopify_developer_app/actions/update-metafield/update-metafield.mjs (1)

39-72: Clone prop-definition objects before mutating them

In getOwnerIdProp, you’re building resources by directly referencing shopify.propDefinitions.* and then doing:

Object.values(resources).forEach((resource) => {
  delete resource.options;
});

Because most entries in resources point at the shared shopify.propDefinitions objects, removing options here permanently strips the dropdown behavior from those definitions in all actions that use them. To avoid leaking side-effects, shallow-clone each entry before you delete its options:

• File: components/shopify_developer_app/actions/update-metafield/update-metafield.mjs
• Location: inside getOwnerIdProp, around the const resources = { … } block

Suggested diff:

 const resources = {
-  product: shopify.propDefinitions.productId,
+  product: { ...shopify.propDefinitions.productId },
-  variants: shopify.propDefinitions.productVariantId,
+  variants: { ...shopify.propDefinitions.productVariantId },
-  customer: shopify.propDefinitions.customerId,
+  customer: { ...shopify.propDefinitions.customerId },
   collection: {
     ...shopify.propDefinitions.collectionId,
     optional: false,
   },
-  blog: shopify.propDefinitions.blogId,
+  blog: { ...shopify.propDefinitions.blogId },
-  article: shopify.propDefinitions.articleId,
+  article: { ...shopify.propDefinitions.articleId },
-  page: shopify.propDefinitions.pageId,
+  page: { ...shopify.propDefinitions.pageId },
-  order: shopify.propDefinitions.orderId,
+  order: { ...shopify.propDefinitions.orderId },
   draftOrder: {
     type: "string",
     label: "Draft Order ID",
     description: "The identifier of a draft order",
   },
 };

With this change, your delete resource.options calls only affect the clones you return, preserving the original propDefinitions for all other actions.

🧹 Nitpick comments (12)
components/shopify_developer_app/sources/new-customer-created/new-customer-created.mjs (1)

9-9: Consider updating CHANGELOG / release notes
Although only the version string changed, adding a brief entry to your component-level or repo-level CHANGELOG helps future maintainers trace why 0.0.13 was cut.

components/shopify_developer_app/sources/new-updated-order/new-updated-order.mjs (1)

16-23: Ensure id is collision-proof for high-frequency updates

generateMeta currently sets

id: ts

If multiple order updates share the same updated_at timestamp (e.g., batch updates down to the second), duplicates may slip past dedupe: "unique". Consider incorporating the order’s own ID to guarantee uniqueness per event:

-        id: ts,
+        id: `${resource.id}-${ts}`,

This still keeps the timestamp component for chronological ordering while eliminating any chance of ID collisions.

components/shopify_developer_app/actions/update-customer/update-customer.mjs (3)

8-8: Grammar nit – “a existing” → “an existing”

The public-facing description contains a minor grammatical error.

-  description: "Update a existing customer. [See the documentation](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerupdate)",
+  description: "Update an existing customer. [See the documentation](https://shopify.dev/docs/api/admin-graphql/latest/mutations/customerupdate)",

110-112: Harden error handling to avoid null-dereference & aggregate messages

response.customerUpdate may be null/undefined on transport or auth failures, leading to an unhandled exception. Consider defensive checks and surfacing all error messages:

-    if (response.customerUpdate.userErrors.length > 0) {
-      throw new Error(response.customerUpdate.userErrors[0].message);
-    }
+    const errors = response?.customerUpdate?.userErrors ?? [];
+    if (errors.length) {
+      throw new Error(errors.map((e) => e.message).join("; "));
+    }

38-43: phone prop is mandatory – restricts partial updates

phone is required here, but Shopify’s customerUpdate mutation accepts it as optional. Making it optional would let users update a subset of fields without supplying a phone number every time.

     phone: {
       propDefinition: [
         shopify,
         "phone",
       ],
-    },
+      optional: true,
+    },
components/shopify_developer_app/actions/get-order/get-order.mjs (1)

8-8: Consistent version bump – add a changelog note

Only the version string changed. 👍
Consider adding a brief entry to the component’s changelog/release notes so consumers know nothing else changed besides metadata.

components/shopify_developer_app/sources/new-draft-order/new-draft-order.mjs (1)

9-9: Patch-level bump acknowledged

Looks good. Same suggestion as elsewhere: document the bump in release notes for traceability.

components/shopify_developer_app/actions/create-customer/create-customer.mjs (1)

7-7: Version updated – remember release docs

No functional change detected. Please add a line to the changelog to keep consumers informed.

components/shopify_developer_app/actions/add-tags/add-tags.mjs (1)

14-14: Minor metadata change noted

Version bump is fine; ensure it’s reflected in the overall package changelog for completeness.

components/shopify_developer_app/sources/new-updated-customer/new-updated-customer.mjs (1)

9-9: Version bump logged

All good. Add a brief changelog entry for transparency.

components/shopify_developer_app/sources/new-product-updated/new-product-updated.mjs (1)

5-7: Consider dropping the “New” prefix in name/key
Per component-naming guidance (see Monday.com precedent), sources that emit updates don’t need the “New” prefix.
Renaming to product-updated / “Product Updated (Instant)” would improve clarity and consistency.

components/shopify_developer_app/sources/shop-update/shop-update.mjs (1)

1-25: Consider enhancing uniqueness of emitted event IDs

generateMeta builds id as ${resource.id}-${ts}. In busy stores, consecutive updates can share the same updated_at timestamp down to the second, leading to identical IDs and dropped events under dedupe: "unique".
Appending the webhook topic or an incrementing hash of the payload helps avoid this edge-case.

-        id: `${resource.id}-${ts}`,
+        id: `${resource.id}-${ts}-${this.getTopic()}`,
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cd0d7f7 and 90ca79f.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (64)
  • components/shopify_developer_app/actions/add-product-to-custom-collection/add-product-to-custom-collection.mjs (1 hunks)
  • components/shopify_developer_app/actions/add-tags/add-tags.mjs (1 hunks)
  • components/shopify_developer_app/actions/create-article/create-article.mjs (1 hunks)
  • components/shopify_developer_app/actions/create-blog/create-blog.mjs (1 hunks)
  • components/shopify_developer_app/actions/create-custom-collection/create-custom-collection.mjs (1 hunks)
  • components/shopify_developer_app/actions/create-customer/create-customer.mjs (1 hunks)
  • components/shopify_developer_app/actions/create-fulfillment/create-fulfillment.mjs (1 hunks)
  • components/shopify_developer_app/actions/create-metafield/create-metafield.mjs (1 hunks)
  • components/shopify_developer_app/actions/create-metaobject/create-metaobject.mjs (1 hunks)
  • components/shopify_developer_app/actions/create-order/create-order.mjs (1 hunks)
  • components/shopify_developer_app/actions/create-page/create-page.mjs (1 hunks)
  • components/shopify_developer_app/actions/create-product-variant/create-product-variant.mjs (1 hunks)
  • components/shopify_developer_app/actions/create-product/create-product.mjs (1 hunks)
  • components/shopify_developer_app/actions/create-smart-collection/create-smart-collection.mjs (1 hunks)
  • components/shopify_developer_app/actions/delete-article/delete-article.mjs (1 hunks)
  • components/shopify_developer_app/actions/delete-blog/delete-blog.mjs (1 hunks)
  • components/shopify_developer_app/actions/delete-metafield/delete-metafield.mjs (1 hunks)
  • components/shopify_developer_app/actions/delete-page/delete-page.mjs (1 hunks)
  • components/shopify_developer_app/actions/get-articles/get-articles.mjs (1 hunks)
  • components/shopify_developer_app/actions/get-metafields/get-metafields.mjs (1 hunks)
  • components/shopify_developer_app/actions/get-metaobjects/get-metaobjects.mjs (1 hunks)
  • components/shopify_developer_app/actions/get-order/get-order.mjs (1 hunks)
  • components/shopify_developer_app/actions/get-pages/get-pages.mjs (1 hunks)
  • components/shopify_developer_app/actions/refund-order/refund-order.mjs (1 hunks)
  • components/shopify_developer_app/actions/search-custom-collection-by-name/search-custom-collection-by-name.mjs (1 hunks)
  • components/shopify_developer_app/actions/search-customers/search-customers.mjs (1 hunks)
  • components/shopify_developer_app/actions/search-fulfillment-orders/search-fulfillment-orders.mjs (1 hunks)
  • components/shopify_developer_app/actions/search-orders/search-orders.mjs (1 hunks)
  • components/shopify_developer_app/actions/search-product-variant/search-product-variant.mjs (1 hunks)
  • components/shopify_developer_app/actions/search-products/search-products.mjs (1 hunks)
  • components/shopify_developer_app/actions/update-article/update-article.mjs (1 hunks)
  • components/shopify_developer_app/actions/update-customer/update-customer.mjs (1 hunks)
  • components/shopify_developer_app/actions/update-fulfillment-tracking-info/update-fulfillment-tracking-info.mjs (1 hunks)
  • components/shopify_developer_app/actions/update-inventory-level/update-inventory-level.mjs (1 hunks)
  • components/shopify_developer_app/actions/update-metafield/update-metafield.mjs (1 hunks)
  • components/shopify_developer_app/actions/update-metaobject/update-metaobject.mjs (1 hunks)
  • components/shopify_developer_app/actions/update-page/update-page.mjs (1 hunks)
  • components/shopify_developer_app/actions/update-product-variant/update-product-variant.mjs (1 hunks)
  • components/shopify_developer_app/actions/update-product/update-product.mjs (1 hunks)
  • components/shopify_developer_app/common/mutations.mjs (1 hunks)
  • components/shopify_developer_app/common/queries.mjs (2 hunks)
  • components/shopify_developer_app/package.json (1 hunks)
  • components/shopify_developer_app/shopify_developer_app.app.mjs (4 hunks)
  • components/shopify_developer_app/sources/cart-updated/cart-updated.mjs (1 hunks)
  • components/shopify_developer_app/sources/inventory-level-updated/inventory-level-updated.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-abandoned-cart/new-abandoned-cart.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-article/new-article.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-cancelled-order/new-cancelled-order.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-cart-created/new-cart-created.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-customer-created/new-customer-created.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-draft-order/new-draft-order.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-event-emitted/new-event-emitted.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-fulfillment-event/new-fulfillment-event.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-order-created/new-order-created.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-order-fulfilled/new-order-fulfilled.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-page/new-page.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-paid-order/new-paid-order.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-product-created/new-product-created.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-product-updated/new-product-updated.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-refund-created/new-refund-created.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-updated-customer/new-updated-customer.mjs (1 hunks)
  • components/shopify_developer_app/sources/new-updated-order/new-updated-order.mjs (1 hunks)
  • components/shopify_developer_app/sources/product-added-to-custom-collection/product-added-to-custom-collection.mjs (1 hunks)
  • components/shopify_developer_app/sources/shop-update/shop-update.mjs (1 hunks)
🧰 Additional context used
🧠 Learnings (24)
components/shopify_developer_app/sources/new-updated-order/new-updated-order.mjs (4)

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

Learnt from: GTFalcao
PR: #15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-10-08T15:33:38.240Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-07-24T02:06:47.016Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

components/shopify_developer_app/sources/new-product-created/new-product-created.mjs (4)

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

Learnt from: GTFalcao
PR: #15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-07-24T02:06:47.016Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-10-08T15:33:38.240Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

components/shopify_developer_app/sources/new-updated-customer/new-updated-customer.mjs (4)

Learnt from: GTFalcao
PR: #15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-10-08T15:33:38.240Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-07-24T02:06:47.016Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

components/shopify_developer_app/sources/new-customer-created/new-customer-created.mjs (2)

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

Learnt from: GTFalcao
PR: #15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

components/shopify_developer_app/sources/new-order-created/new-order-created.mjs (2)

Learnt from: GTFalcao
PR: #15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

components/shopify_developer_app/sources/new-cancelled-order/new-cancelled-order.mjs (1)

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

components/shopify_developer_app/sources/new-fulfillment-event/new-fulfillment-event.mjs (1)

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

components/shopify_developer_app/sources/new-product-updated/new-product-updated.mjs (1)

Learnt from: GTFalcao
PR: #15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

components/shopify_developer_app/actions/create-page/create-page.mjs (1)

Learnt from: jcortes
PR: #14467
File: components/gainsight_px/actions/create-account/create-account.mjs:4-6
Timestamp: 2024-10-30T15:24:39.294Z
Learning: In components/gainsight_px/actions/create-account/create-account.mjs, the action name should be "Create Account" instead of "Create Memory".

components/shopify_developer_app/sources/new-draft-order/new-draft-order.mjs (1)

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

components/shopify_developer_app/sources/new-order-fulfilled/new-order-fulfilled.mjs (1)

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

components/shopify_developer_app/actions/create-order/create-order.mjs (1)

Learnt from: jcortes
PR: #14467
File: components/gainsight_px/actions/create-account/create-account.mjs:4-6
Timestamp: 2024-10-30T15:24:39.294Z
Learning: In components/gainsight_px/actions/create-account/create-account.mjs, the action name should be "Create Account" instead of "Create Memory".

components/shopify_developer_app/actions/create-customer/create-customer.mjs (1)

Learnt from: jcortes
PR: #14467
File: components/gainsight_px/actions/create-account/create-account.mjs:4-6
Timestamp: 2024-10-30T15:24:39.294Z
Learning: In components/gainsight_px/actions/create-account/create-account.mjs, the action name should be "Create Account" instead of "Create Memory".

components/shopify_developer_app/sources/shop-update/shop-update.mjs (4)

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-10-08T15:33:38.240Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-07-24T02:06:47.016Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

Learnt from: GTFalcao
PR: #15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

components/shopify_developer_app/actions/update-fulfillment-tracking-info/update-fulfillment-tracking-info.mjs (2)

Learnt from: GTFalcao
PR: #12731
File: components/hackerone/actions/get-members/get-members.mjs:3-28
Timestamp: 2024-07-04T18:11:59.822Z
Learning: When exporting a summary message in the run method of an action, ensure the message is correctly formatted. For example, in the hackerone-get-members action, the correct format is Successfully retrieved ${response.data.length} members.

Learnt from: GTFalcao
PR: #12731
File: components/hackerone/actions/get-members/get-members.mjs:3-28
Timestamp: 2024-10-08T15:33:38.240Z
Learning: When exporting a summary message in the run method of an action, ensure the message is correctly formatted. For example, in the hackerone-get-members action, the correct format is Successfully retrieved ${response.data.length} members.

components/shopify_developer_app/package.json (1)

Learnt from: jcortes
PR: #14935
File: components/sailpoint/package.json:15-18
Timestamp: 2024-12-12T19:23:09.039Z
Learning: When developing Pipedream components, do not add built-in Node.js modules like fs to package.json dependencies, as they are native modules provided by the Node.js runtime.

components/shopify_developer_app/sources/new-event-emitted/new-event-emitted.mjs (2)

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

Learnt from: GTFalcao
PR: #15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

components/shopify_developer_app/sources/inventory-level-updated/inventory-level-updated.mjs (5)

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-10-08T15:33:38.240Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-07-24T02:06:47.016Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

Learnt from: GTFalcao
PR: #15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common.mjs:97-98
Timestamp: 2024-07-24T02:05:59.531Z
Learning: The processTimerEvent method in the components/salesforce_rest_api/sources/common.mjs file is intentionally left unimplemented to enforce that subclasses must implement this method, similar to an abstract class in object-oriented programming.

components/shopify_developer_app/actions/search-fulfillment-orders/search-fulfillment-orders.mjs (2)

Learnt from: GTFalcao
PR: #12731
File: components/hackerone/actions/get-members/get-members.mjs:3-28
Timestamp: 2024-07-04T18:11:59.822Z
Learning: When exporting a summary message in the run method of an action, ensure the message is correctly formatted. For example, in the hackerone-get-members action, the correct format is Successfully retrieved ${response.data.length} members.

Learnt from: GTFalcao
PR: #12731
File: components/hackerone/actions/get-members/get-members.mjs:3-28
Timestamp: 2024-10-08T15:33:38.240Z
Learning: When exporting a summary message in the run method of an action, ensure the message is correctly formatted. For example, in the hackerone-get-members action, the correct format is Successfully retrieved ${response.data.length} members.

components/shopify_developer_app/sources/cart-updated/cart-updated.mjs (4)

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-07-24T02:06:47.016Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-10-08T15:33:38.240Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

Learnt from: GTFalcao
PR: #15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

components/shopify_developer_app/common/queries.mjs (1)

Learnt from: GTFalcao
PR: #16954
File: components/salesloft/salesloft.app.mjs:14-23
Timestamp: 2025-06-04T17:52:05.780Z
Learning: In the Salesloft API integration (components/salesloft/salesloft.app.mjs), the _makeRequest method returns response.data which directly contains arrays for list endpoints like listPeople, listCadences, listUsers, and listAccounts. The propDefinitions correctly call .map() directly on these responses without needing to destructure a nested data property.

components/shopify_developer_app/sources/new-cart-created/new-cart-created.mjs (4)

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-07-24T02:06:47.016Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

Learnt from: GTFalcao
PR: #12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-10-08T15:33:38.240Z
Learning: The common-webhook-methods.mjs object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like generateWebhookMeta and getEventType to enforce implementation in subclasses.

Learnt from: GTFalcao
PR: #15376
File: components/monday/sources/name-updated/name-updated.mjs:6-6
Timestamp: 2025-01-23T03:55:15.166Z
Learning: Source names in Monday.com components don't need to start with "New" if they emit events for updated items (e.g., "Name Updated", "Column Value Updated") rather than new items. This follows the component guidelines exception where the "New" prefix is only required when emits are limited to new items.

Learnt from: GTFalcao
PR: #14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In components/the_magic_drip/sources/common.mjs, when processing items in getAndProcessData, savedIds is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.

components/shopify_developer_app/actions/create-fulfillment/create-fulfillment.mjs (3)

Learnt from: GTFalcao
PR: #12731
File: components/hackerone/actions/get-members/get-members.mjs:3-28
Timestamp: 2024-07-04T18:11:59.822Z
Learning: When exporting a summary message in the run method of an action, ensure the message is correctly formatted. For example, in the hackerone-get-members action, the correct format is Successfully retrieved ${response.data.length} members.

Learnt from: GTFalcao
PR: #12731
File: components/hackerone/actions/get-members/get-members.mjs:3-28
Timestamp: 2024-10-08T15:33:38.240Z
Learning: When exporting a summary message in the run method of an action, ensure the message is correctly formatted. For example, in the hackerone-get-members action, the correct format is Successfully retrieved ${response.data.length} members.

Learnt from: jcortes
PR: #14467
File: components/gainsight_px/actions/create-account/create-account.mjs:4-6
Timestamp: 2024-10-30T15:24:39.294Z
Learning: In components/gainsight_px/actions/create-account/create-account.mjs, the action name should be "Create Account" instead of "Create Memory".

components/shopify_developer_app/shopify_developer_app.app.mjs (1)

Learnt from: GTFalcao
PR: #16954
File: components/salesloft/salesloft.app.mjs:14-23
Timestamp: 2025-06-04T17:52:05.780Z
Learning: In the Salesloft API integration (components/salesloft/salesloft.app.mjs), the _makeRequest method returns response.data which directly contains arrays for list endpoints like listPeople, listCadences, listUsers, and listAccounts. The propDefinitions correctly call .map() directly on these responses without needing to destructure a nested data property.

🧬 Code Graph Analysis (2)
components/shopify_developer_app/actions/refund-order/refund-order.mjs (3)
components/shopify_developer_app/actions/create-fulfillment/create-fulfillment.mjs (1)
  • props (41-41)
components/shopify_developer_app/shopify_developer_app.app.mjs (2)
  • order (50-53)
  • order (65-68)
components/shopify_developer_app/actions/update-fulfillment-tracking-info/update-fulfillment-tracking-info.mjs (1)
  • response (52-60)
components/shopify_developer_app/shopify_developer_app.app.mjs (1)
components/shopify_developer_app/actions/refund-order/refund-order.mjs (1)
  • order (34-37)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Lint Code Base
  • GitHub Check: Verify TypeScript components
  • GitHub Check: Publish TypeScript components
🔇 Additional comments (69)
components/shopify_developer_app/sources/new-cancelled-order/new-cancelled-order.mjs (1)

9-9: Patch version bump looks good

Version increment from 0.0.120.0.13 follows the existing patch-level scheme for these sources. No other changes detected.

components/shopify_developer_app/sources/new-customer-created/new-customer-created.mjs (1)

9-9: Version bump is correct and consistent
No functional changes introduced; the minor version increment aligns with the coordinated bumps across other Shopify Developer App sources.

components/shopify_developer_app/actions/update-inventory-level/update-inventory-level.mjs (1)

14-14: Version bump looks correct and consistent with related components
The change cleanly increments the action’s version to 0.0.9, matching the coordinated update across the Shopify Developer App. No further action needed.

components/shopify_developer_app/sources/product-added-to-custom-collection/product-added-to-custom-collection.mjs (1)

14-14: Version bump to 0.0.9 looks correct and consistent with the coordinated release.
No additional issues detected.

components/shopify_developer_app/actions/create-metafield/create-metafield.mjs (1)

11-15: Version bump correctly overrides inherited value – LGTM

version is declared after spreading ...others, so the new "0.0.10" properly overwrites the value coming from the base action. No further changes required.

components/shopify_developer_app/sources/new-paid-order/new-paid-order.mjs (1)

9-9: Version bump acknowledged – no additional changes detected.
The increment to 0.0.13 is consistent with the broader set of minor updates across the Shopify Developer App components. Looks good.

components/shopify_developer_app/sources/new-updated-order/new-updated-order.mjs (1)

9-9: Version bump looks good

No issues spotted with incrementing the version field to 0.0.13; aligns with the broader component versioning strategy.

components/shopify_developer_app/sources/new-page/new-page.mjs (1)

14-14: Patch‐level version bump looks correct
Incrementing to 0.0.9 cleanly overrides any prior version in the spread and keeps the module in sync with the coordinated release. No further issues spotted.

components/shopify_developer_app/actions/update-customer/update-customer.mjs (1)

9-9: Version bump acknowledged – no functional impact detected

0.0.9 → 0.0.10 is consistent with the other coordinated bumps in this PR and requires no further action.

components/shopify_developer_app/actions/get-metaobjects/get-metaobjects.mjs (1)

14-14: Version bump looks good.

The version increment from "0.0.9" to "0.0.10" is consistent with the coordinated version updates across the Shopify Developer App components.

components/shopify_developer_app/actions/create-custom-collection/create-custom-collection.mjs (1)

14-14: Version bump is consistent.

The version increment from "0.0.8" to "0.0.9" aligns with the coordinated version updates across the Shopify Developer App actions.

components/shopify_developer_app/sources/new-event-emitted/new-event-emitted.mjs (1)

10-10: Version increment is appropriate.

The version bump from "0.0.13" to "0.0.14" maintains consistency with the broader component version updates.

components/shopify_developer_app/common/queries.mjs (2)

774-805: Well-structured fulfillment orders listing query.

The LIST_FULFILLMENT_ORDERS query follows consistent patterns with other listing queries in the file and includes appropriate fields for fulfillment order management operations.


811-815: Exports are properly updated.

The new queries are correctly added to the default export object, maintaining consistency with the existing export structure.

components/shopify_developer_app/sources/new-fulfillment-event/new-fulfillment-event.mjs (1)

9-9: Version update aligns with fulfillment feature enhancements.

The version increment from "0.0.10" to "0.0.11" is consistent with the broader component updates and particularly relevant given this PR's focus on fulfillment functionality.

components/shopify_developer_app/sources/new-product-updated/new-product-updated.mjs (1)

8-8: Version increment acknowledged
0.0.11 correctly follows semantic-style patch progression with no functional impact.

components/shopify_developer_app/actions/update-product/update-product.mjs (1)

9-9: Patch-level version bump looks good
No other code touched – safe to merge.

components/shopify_developer_app/sources/new-article/new-article.mjs (1)

14-14: Version bump only – approved
Nothing else changed; LGTM.

components/shopify_developer_app/sources/new-product-created/new-product-created.mjs (1)

9-9: Version bump only – approved
Consistent with broader release.

components/shopify_developer_app/package.json (1)

3-3: Component version updated to 0.9.0 – OK
Matches the per-module increments. No dependency changes detected.

components/shopify_developer_app/sources/new-order-created/new-order-created.mjs (1)

9-9: Version bump looks good

Patch increment only – no functional impact detected.

components/shopify_developer_app/actions/search-customers/search-customers.mjs (1)

7-7: Consistent patch increment

Change is limited to the version string; everything else remains intact.

components/shopify_developer_app/actions/search-orders/search-orders.mjs (1)

7-7: Patch version update confirmed

Nothing beyond the version bump—implementation unchanged.

components/shopify_developer_app/actions/delete-blog/delete-blog.mjs (1)

14-14: Version field updated correctly

Patch-level increment aligns with other components in this release.

components/shopify_developer_app/actions/create-page/create-page.mjs (1)

14-14: Minor update accepted

Version bump only; no further review needed.

components/shopify_developer_app/actions/create-order/create-order.mjs (1)

8-8: Version bump acknowledged and consistent with release scope
No functional code changes are introduced here—only a patch-level version increment to 0.0.9, which aligns with the coordinated version bumps across sibling actions in this PR.

components/shopify_developer_app/actions/get-pages/get-pages.mjs (1)

14-14: Patch version increment looks good
0.0.11 keeps this action in sync with related modules; no further action required.

components/shopify_developer_app/actions/update-article/update-article.mjs (1)

14-14: Version bump only – LGTM
The move to 0.0.11 is purely declarative; implementation remains unchanged.

components/shopify_developer_app/actions/delete-article/delete-article.mjs (1)

14-14: Semantic version aligned
Increment to 0.0.11 mirrors the rest of the article-related actions; nothing else to flag.

components/shopify_developer_app/actions/delete-page/delete-page.mjs (1)

14-14: Consistent patch update
Bumping to 0.0.11 maintains version parity across page actions—no concerns.

components/shopify_developer_app/actions/create-product/create-product.mjs (1)

14-14: Version bump looks correct

Patch release increment keeps semantic-version alignment with the other actions; no further action needed.

components/shopify_developer_app/actions/delete-metafield/delete-metafield.mjs (1)

12-12: Consistent patch increment

0.0.10 matches the coordinated bump across the metafield actions – good to go.

components/shopify_developer_app/actions/get-metafields/get-metafields.mjs (1)

11-11: LGTM on version update

Patch version aligns with other metafield utilities; implementation unchanged.

components/shopify_developer_app/actions/search-products/search-products.mjs (1)

14-14: OK – patch version increment only

No functional changes detected; version bump is consistent with related search actions.

components/shopify_developer_app/actions/search-custom-collection-by-name/search-custom-collection-by-name.mjs (1)

14-14: Patch bump verified

0.0.9 keeps this action in sync with the rest of the collection/search suite.

components/shopify_developer_app/actions/create-blog/create-blog.mjs (1)

14-14: Version bump looks good

Patch update is consistent with prior scheme.

components/shopify_developer_app/actions/update-page/update-page.mjs (1)

14-14: Version bump looks good

No further action required.

components/shopify_developer_app/sources/new-refund-created/new-refund-created.mjs (1)

8-8: Version updated OK

Increment aligns with surrounding sources.

components/shopify_developer_app/actions/update-metaobject/update-metaobject.mjs (1)

14-14: Version bump acknowledged

Ensure companion actions (create-metaobject, etc.) reflect compatible versions to avoid confusion in release notes.

components/shopify_developer_app/actions/search-product-variant/search-product-variant.mjs (1)

14-14: Version bump looks good

Change is isolated; no issues observed.

components/shopify_developer_app/actions/create-article/create-article.mjs (1)

14-14: Version bump is consistent with the coordinated release

Patch-level increment matches the pattern across sibling modules. No further action required.

components/shopify_developer_app/actions/create-metaobject/create-metaobject.mjs (1)

14-14: Patch version increment confirmed

The new 0.0.11 aligns with the batch update for this release. Looks good.

components/shopify_developer_app/sources/new-abandoned-cart/new-abandoned-cart.mjs (1)

14-14: Source version updated correctly

0.0.10 keeps the source in sync with the overall package version strategy.

components/shopify_developer_app/actions/create-product-variant/create-product-variant.mjs (1)

14-14: Version bump verified

The create-product-variant action now tracks at 0.0.10, mirroring other action modules.

components/shopify_developer_app/actions/create-smart-collection/create-smart-collection.mjs (1)

14-14: Consistent version increment

0.0.9 is in line with sibling components; no issues spotted.

components/shopify_developer_app/actions/get-articles/get-articles.mjs (1)

14-14: Version bump looks correct

No functional changes; the version increment keeps semver alignment with the wider release.

components/shopify_developer_app/sources/new-order-fulfilled/new-order-fulfilled.mjs (1)

9-9: Version bump acknowledged

Consistent with other source updates in this PR.

components/shopify_developer_app/actions/update-product-variant/update-product-variant.mjs (1)

14-14: Version bump acknowledged

No additional changes—LGTM.

components/shopify_developer_app/actions/add-product-to-custom-collection/add-product-to-custom-collection.mjs (1)

14-14: Version bump acknowledged

Change is isolated to the version field; all good.

components/shopify_developer_app/actions/search-fulfillment-orders/search-fulfillment-orders.mjs (1)

1-40: LGTM! Well-implemented search action.

The implementation follows proper Shopify API patterns with correct pagination handling, proper error handling through the underlying methods, and good summary message formatting with pluralization.

components/shopify_developer_app/sources/inventory-level-updated/inventory-level-updated.mjs (1)

1-25: LGTM! Properly implemented webhook source.

The implementation correctly follows the established webhook pattern, with proper topic definition and metadata generation using inventory item ID and timestamp for uniqueness.

components/shopify_developer_app/actions/refund-order/refund-order.mjs (1)

29-73: LGTM! Well-implemented dynamic props generation.

The additionalProps method correctly generates dynamic properties for each line item with appropriate types, labels, and options. The location ID async options implementation follows proper pagination patterns.

components/shopify_developer_app/actions/create-fulfillment/create-fulfillment.mjs (1)

1-77: LGTM! Well-structured fulfillment creation action.

The implementation correctly handles dynamic prop generation for line item quantities, properly constructs the fulfillment request object, and includes appropriate error handling and summary messaging.

components/shopify_developer_app/sources/cart-updated/cart-updated.mjs (1)

1-25: LGTM! Clean implementation following established patterns.

The webhook source correctly extends the common base, implements the required methods (getTopic and generateMeta), and follows the consistent pattern used across other Shopify webhook sources in the codebase.

components/shopify_developer_app/sources/new-cart-created/new-cart-created.mjs (1)

1-25: LGTM! Correct implementation for cart creation events.

The webhook source properly uses created_at for new cart events (vs updated_at for updates) and follows the established pattern. The "New" prefix in the name correctly indicates this source emits events for new items.

components/shopify_developer_app/common/mutations.mjs (4)

119-165: Well-structured refund mutation with comprehensive data handling.

The REFUND_ORDER mutation properly includes all necessary fields for refund operations, including detailed line item information and proper error handling through userErrors.


167-185: Clean fulfillment tracking update mutation.

The UPDATE_FULFILLMENT_TRACKING_INFO mutation is well-structured with appropriate input parameters and return fields for tracking information updates.


187-202: Simple and effective fulfillment creation mutation.

The CREATE_FULFILLMENT mutation follows GraphQL best practices with proper error handling and includes an optional message parameter for flexibility.


204-212: Proper export of new mutations.

The new mutations are correctly added to the default export object, maintaining consistency with the existing structure.

components/shopify_developer_app/shopify_developer_app.app.mjs (9)

5-7: Proper import of MAX_LIMIT constant.

The MAX_LIMIT constant is correctly imported and used consistently throughout the new prop definitions for pagination limits.


45-59: Well-implemented line item IDs prop with proper async options.

The lineItemIds prop correctly fetches line items from the specified order and maps them to appropriate label/value pairs for the UI.


72-86: Consistent fulfillment order ID prop implementation.

The fulfillmentOrderId prop follows the established pattern using getPropOptions with proper resource function and pagination support.


87-98: Proper fulfillment order line items prop with direct data access.

The prop correctly fetches fulfillment order line items and maps the IDs directly from the GraphQL response structure.


181-183: Clean fulfillment order retrieval method.

The getFulfillmentOrder method follows the established pattern for GraphQL requests.


196-198: Consistent fulfillment orders listing method.

The listFulfillmentOrders method maintains consistency with other list methods in the app.


205-207: Proper fulfillment creation method.

The createFulfillment method correctly uses the corresponding GraphQL mutation.


211-213: Well-implemented refund order method.

The refundOrder method properly connects to the refund mutation for order refund operations.


214-216: Clean fulfillment tracking update method.

The updateFulfillmentTrackingInfo method correctly implements the tracking information update functionality.

components/shopify_developer_app/actions/update-metafield/update-metafield.mjs (1)

12-12: Version bump looks good

The patch-level version increment keeps semantic-versioning hygiene in line with the other actions bumped to 0.0.10.

Copy link
Collaborator

@jcortes jcortes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @michelle0927 lgtm! Ready for QA!

@vunguyenhung vunguyenhung merged commit 77c2091 into master Jul 25, 2025
11 checks passed
@vunguyenhung vunguyenhung deleted the issue-17437 branch July 25, 2025 05:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Shopify

3 participants