Skip to content

Rename the collection fulfilment method to pickup (spec 0077) - #2717

Open
glennjacobs wants to merge 1 commit into
spec/0076-rename-collection-to-pickupfrom
feat/0076-rename-collection-to-pickup
Open

Rename the collection fulfilment method to pickup (spec 0077)#2717
glennjacobs wants to merge 1 commit into
spec/0076-rename-collection-to-pickupfrom
feat/0076-rename-collection-to-pickup

Conversation

@glennjacobs

@glennjacobs glennjacobs commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Implements spec 0077 (#2716) — renames the in-store handover vocabulary end to end from "collection"/"collected" to "pickup"/"picked up", matching Shopify's state vocabulary (WooCommerce "Local pickup", Magento "In-Store Pickup").

Note: stacked on #2716 (base: spec/0076-rename-collection-to-pickup), so this diff shows only the implementation. Merge #2716 first; GitHub retargets this PR to 2.x when the spec branch is deleted.

Slice 1 — the rename

  • core: Drivers\FulfilmentMethods\Pickup (key pickup); states ReadyForPickup (ready-for-pickup) and PickedUp (picked-up); ShippingOption::$pickup replaces $collect and is stamped as meta['pickup'] by CreateShippingLine; orderCollects()orderPicksUp(); factory states pickup() / pickedUp(); Cart::getEstimatedShipping() and ValidateCartForOrderCreation read the new flag.
  • table-rate-shipping: ShippingMethods\Pickup driver (key pickup), ShippingManager::createPickupDriver(), driver select option.
  • lang: key renames in core states.php / fulfilment.php, panel orders.php, admin order.php (16 locales each) and shipping shippingmethod.php (14 locales). Most locales already translated the concept as pickup, so values move with their keys; English values become "Pickup" / "Ready for Pickup" / "Picked Up" / "Mark picked up" / "Picked up at". Fixed literal mistranslations in the shipping driver labels: mn ЦуглуулгаОчиж авах, bg КолекцияПолучаване на място, fr CollecteRetrait, pt_BR ColetaRetirada.
  • demo data: the pickup scenario seeds method => 'pickup'.
  • tests/docblocks: core/panel/admin/shipping/demo-data suites, the panel vitest fixture, and every docblock mention follow the new vocabulary.

Slice 2 — upgrade path

  • New data migration 2026_06_01_000017_rename_collection_shipping_driver rewrites persisted shipping_methods.driver 'collection''pickup' (guarded, one-way, no-op without the table).
  • LunarSetList: class rename Lunar\Shipping\Drivers\ShippingMethods\Collection...\Pickup; property rename ShippingOption::$collect$pickup (v1 + v2 class strings).
  • New RenameShippingOptionCollectArgRector rewrites the collect: named argument on ShippingOption construction (the parameter kept its position, so positional calls are unaffected).
  • Spec open question resolved: v1's CreateShippingLine writes 'meta' => $shippingOption->meta verbatim and never persists the flag (verified against 1.x), so no order-line meta rewrite is needed.

Verification

  • vendor/bin/pest --testsuite <s> --parallel for core (1288✓), admin (264✓), panel (936✓), filament (75✓), shipping (103✓), stripe (48✓), search (28✓), upgrade (103✓), demo-data (31✓)
  • panel npm test (340✓), npm run type-check, add-on example build
  • vendor/bin/phpstan analyse — no errors; vendor/bin/pint --dirty — pass
  • translations completeness script — 0 missing, 0 stale across all locales

Existing v2 alpha databases hold stale values per the alpha policy — re-seed (demo data regenerates).

🤖 Generated with Claude Code

Renames the in-store handover vocabulary end to end to match
Shopify/WooCommerce/Magento:

- core: FulfilmentMethods\Pickup (key 'pickup'), states ReadyForPickup
  ('ready-for-pickup') and PickedUp ('picked-up'), ShippingOption::$pickup
  stamped as meta['pickup'] by CreateShippingLine, factory states
  pickup()/pickedUp()
- table-rate-shipping: ShippingMethods\Pickup driver (key 'pickup'),
  createPickupDriver(), driver select option
- lang: key renames in core states/fulfilment, panel orders, admin order,
  shipping shippingmethod across every locale; mistranslations fixed
  (mn/bg/fr/pt_BR driver labels)
- demo data, tests and docblocks follow the new vocabulary
- upgrade: shipping_methods.driver data migration, LunarSetList class and
  property renames, RenameShippingOptionCollectArgRector for the collect:
  named argument

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-project-automation github-project-automation Bot moved this to Todo in Roadmap Sep 7, 2026
@glennjacobs
glennjacobs changed the base branch from 2.x to spec/0076-rename-collection-to-pickup September 7, 2026 13:51
@github-actions github-actions Bot added needs-triage Base branch is not a recognised release line and removed 2.x labels Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

high needs-triage Base branch is not a recognised release line

Projects

Status: Todo

Development

Successfully merging this pull request may close these issues.

1 participant