-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New Components - shopify #17797
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New Components - shopify #17797
Conversation
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 3 Skipped Deployments
|
WalkthroughThis 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
Sequence Diagram(s)New Fulfillment Creation FlowsequenceDiagram
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
Order Refund FlowsequenceDiagram
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
Fulfillment Tracking UpdatesequenceDiagram
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
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20–25 minutes Suggested labels
Poem
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
components/shopify_developer_app/actions/update-fulfillment-tracking-info/update-fulfillment-tracking-info.mjsOops! Something went wrong! :( ESLint: 8.57.1 Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs components/shopify_developer_app/actions/refund-order/refund-order.mjsOops! Something went wrong! :( ESLint: 8.57.1 Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs components/shopify_developer_app/shopify_developer_app.app.mjsOops! Something went wrong! :( ESLint: 8.57.1 Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'jsonc-eslint-parser' imported from /eslint.config.mjs Note ⚡️ Unit Test Generation is now available in beta!Learn more here, or try it out under "Finishing Touches" below. 📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (2)
🧰 Additional context used🧠 Learnings (1)components/shopify_developer_app/actions/refund-order/refund-order.mjs (1)Learnt from: GTFalcao 🧬 Code Graph Analysis (1)components/shopify_developer_app/actions/refund-order/refund-order.mjs (1)
⏰ 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)
🔇 Additional comments (4)
✨ Finishing Touches
🧪 Generate unit tests
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed 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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this 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 themIn
getOwnerIdProp, you’re buildingresourcesby directly referencingshopify.propDefinitions.*and then doing:Object.values(resources).forEach((resource) => { delete resource.options; });Because most entries in
resourcespoint at the sharedshopify.propDefinitionsobjects, removingoptionshere 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 itsoptions:• File: components/shopify_developer_app/actions/update-metafield/update-metafield.mjs
• Location: insidegetOwnerIdProp, around theconst resources = { … }blockSuggested 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.optionscalls only affect the clones you return, preserving the originalpropDefinitionsfor 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 why0.0.13was cut.components/shopify_developer_app/sources/new-updated-order/new-updated-order.mjs (1)
16-23: Ensureidis collision-proof for high-frequency updates
generateMetacurrently setsid: tsIf multiple order updates share the same
updated_attimestamp (e.g., batch updates down to the second), duplicates may slip pastdedupe: "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.customerUpdatemay benull/undefinedon 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:phoneprop is mandatory – restricts partial updates
phoneis required here, but Shopify’scustomerUpdatemutation 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 noteOnly 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 acknowledgedLooks 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 docsNo 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 notedVersion 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 loggedAll 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 toproduct-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
generateMetabuildsidas${resource.id}-${ts}. In busy stores, consecutive updates can share the sameupdated_attimestamp down to the second, leading to identical IDs and dropped events underdedupe: "unique".
Appending the webhooktopicor 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
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis 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 goodVersion increment from
0.0.12→0.0.13follows 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 to0.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
versionis 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 to0.0.13is 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 goodNo issues spotted with incrementing the
versionfield to0.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 to0.0.9cleanly 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.10is 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_ORDERSquery 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.11correctly 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 goodPatch increment only – no functional impact detected.
components/shopify_developer_app/actions/search-customers/search-customers.mjs (1)
7-7: Consistent patch incrementChange 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 confirmedNothing beyond the version bump—implementation unchanged.
components/shopify_developer_app/actions/delete-blog/delete-blog.mjs (1)
14-14: Version field updated correctlyPatch-level increment aligns with other components in this release.
components/shopify_developer_app/actions/create-page/create-page.mjs (1)
14-14: Minor update acceptedVersion 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 to0.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.11keeps 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 to0.0.11is purely declarative; implementation remains unchanged.components/shopify_developer_app/actions/delete-article/delete-article.mjs (1)
14-14: Semantic version aligned
Increment to0.0.11mirrors 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 to0.0.11maintains version parity across page actions—no concerns.components/shopify_developer_app/actions/create-product/create-product.mjs (1)
14-14: Version bump looks correctPatch 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.10matches 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 updatePatch 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 onlyNo 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.9keeps 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 goodPatch update is consistent with prior scheme.
components/shopify_developer_app/actions/update-page/update-page.mjs (1)
14-14: Version bump looks goodNo further action required.
components/shopify_developer_app/sources/new-refund-created/new-refund-created.mjs (1)
8-8: Version updated OKIncrement aligns with surrounding sources.
components/shopify_developer_app/actions/update-metaobject/update-metaobject.mjs (1)
14-14: Version bump acknowledgedEnsure 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 goodChange 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 releasePatch-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 confirmedThe new
0.0.11aligns 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.10keeps 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 verifiedThe
create-product-variantaction now tracks at0.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.9is in line with sibling components; no issues spotted.components/shopify_developer_app/actions/get-articles/get-articles.mjs (1)
14-14: Version bump looks correctNo 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 acknowledgedConsistent with other source updates in this PR.
components/shopify_developer_app/actions/update-product-variant/update-product-variant.mjs (1)
14-14: Version bump acknowledgedNo additional changes—LGTM.
components/shopify_developer_app/actions/add-product-to-custom-collection/add-product-to-custom-collection.mjs (1)
14-14: Version bump acknowledgedChange 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
additionalPropsmethod 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 (
getTopicandgenerateMeta), 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_atfor new cart events (vsupdated_atfor 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_ORDERmutation properly includes all necessary fields for refund operations, including detailed line item information and proper error handling throughuserErrors.
167-185: Clean fulfillment tracking update mutation.The
UPDATE_FULFILLMENT_TRACKING_INFOmutation is well-structured with appropriate input parameters and return fields for tracking information updates.
187-202: Simple and effective fulfillment creation mutation.The
CREATE_FULFILLMENTmutation 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_LIMITconstant 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
lineItemIdsprop 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
fulfillmentOrderIdprop follows the established pattern usinggetPropOptionswith 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
getFulfillmentOrdermethod follows the established pattern for GraphQL requests.
196-198: Consistent fulfillment orders listing method.The
listFulfillmentOrdersmethod maintains consistency with other list methods in the app.
205-207: Proper fulfillment creation method.The
createFulfillmentmethod correctly uses the corresponding GraphQL mutation.
211-213: Well-implemented refund order method.The
refundOrdermethod properly connects to the refund mutation for order refund operations.
214-216: Clean fulfillment tracking update method.The
updateFulfillmentTrackingInfomethod correctly implements the tracking information update functionality.components/shopify_developer_app/actions/update-metafield/update-metafield.mjs (1)
12-12: Version bump looks goodThe patch-level version increment keeps semantic-versioning hygiene in line with the other actions bumped to 0.0.10.
..._developer_app/actions/update-fulfillment-tracking-info/update-fulfillment-tracking-info.mjs
Outdated
Show resolved
Hide resolved
..._developer_app/actions/update-fulfillment-tracking-info/update-fulfillment-tracking-info.mjs
Show resolved
Hide resolved
There was a problem hiding this 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!
Resolves #17437
Summary by CodeRabbit
New Features
Enhancements
Bug Fixes / Maintenance
Chores