Skip to content

Support digital items and fulfillment - #1427

Open
pbennett1-godaddy wants to merge 3 commits into
mainfrom
support-digital-items-and-fulfillment
Open

Support digital items and fulfillment#1427
pbennett1-godaddy wants to merge 3 commits into
mainfrom
support-digital-items-and-fulfillment

Conversation

@pbennett1-godaddy

Copy link
Copy Markdown
Contributor

Summary

Adds digital-fulfillment support to the React checkout flow.

Previously, digital-only and mixed digital carts could be treated like physical fulfillment carts, which could surface delivery/shipping/pickup UI, trigger fulfillment sync for digital line items,
require missing shipping information, or collect the wrong billing/tax fields. This PR makes checkout fulfillment-aware so digital-only orders skip physical delivery flows while still collecting the
billing information needed for tax and payment.

Key updates include:

  • Detect digital, non-digital, pickup, purchase, and digital-only line item fulfillment.
  • Derive DIGITAL as the checkout delivery method for digital-only orders.
  • Hide delivery, shipping, pickup, and express checkout sections for digital-only orders.
  • Prevent custom layouts from forcing unavailable delivery or express sections.
  • Gate express checkout to supported physical shipping flows.
  • Ignore digital line items when syncing missing shipping or pickup fulfillment.
  • Avoid blocking digital checkouts on missing shipping information.
  • Collect the correct billing information for paid, free, taxable, and offline digital orders.
  • Use billing address for tax recalculation on digital and purchase flows.
  • Improve line item image rendering by falling back to a placeholder for invalid asset IDs.
  • Add auto-resizing behavior for checkout notes textareas.

Changeset

  • Changeset added (docs)

Test Plan

Ran the React package test suite focused on the changed checkout areas:

pnpm --filter @godaddy/react test -- src/components/checkout/__tests__/checkout-digital-fulfillment.test.tsx src/components/checkout/__tests__/checkout-validation.test.tsx                             
src/components/checkout/line-items/line-items.test.tsx src/components/checkout/pickup/local-pickup.test.ts src/components/checkout/shipping/utils/should-apply-shipping-method.test.ts                    
src/components/checkout/utils/checkout-transformers.test.ts                                                                                                                                               

Result:

  Test Files  50 passed (50)                                                                                                                                                                              
  Tests       476 passed (476)                                                                                                                                                                            

Added/updated coverage for:

  • Digital-only checkout UI hiding delivery/shipping/pickup/express sections.
  • Custom layouts not forcing unsupported digital-only sections.
  • Paid and free digital checkout confirmation payloads.
  • Digital taxable orders collecting billing tax address.
  • Offline/free digital orders collecting billing names and phone when tax is disabled.
  • Digital billing address triggering tax recalculation.
  • Express checkout visibility for physical shipping and mixed digital/physical shipping carts.
  • Express checkout hidden for mixed digital/pickup carts.
  • Shipping and pickup fulfillment sync ignoring digital line items.
  • Delivery method derivation for digital-only and mixed fulfillment orders.
  • Billing validation names/phone behavior.
  • Line item image placeholder behavior for invalid asset IDs.

@pbennett1-godaddy
pbennett1-godaddy requested a review from a team as a code owner August 4, 2026 14:48
@changeset-bot

changeset-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 724510c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

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.

1 participant