[UI] Bootstrap 5 Migration – Phase 7: SKU Alias (Create, Convert, Detail, Linked SKUs) #85
Open
opened 2026-06-29 08:36:20 +00:00 by rob
·
0 comments
Labels
Clear labels
Amazon SP-API
bug
Doing
eBay API
FBA Restock
FBA Restock
FBA Restock
fulfillment
Planning
Planning
Planning
Planning
Planning
prod
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
QA
shipstation
shipstation
No Label
QA
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: rob/estack-laminas#85
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Migrate the SKU Alias pages to Bootstrap 5. This covers four distinct pages/views:
Stack: PHP / Laminas MVC. Templates are
.phtmlfiles.Attached Files
SKU_Alias_-_UI_Phase_7.zip
sku-alias-preview.htmlsku-alias-create.phtmlsku-alias-convert.phtmlsku-alias-shell.phtmlsku-alias-info.phtmlsku-alias-linked-skus.phtmlproduct-sku-alias-tab.phtmlpackage.jsonGruntfile.jsscss/main.scssscss/_tokens.scssscss/_base.scssscss/_components.scssjs/main.jsFile Placement
Page 1 — Create SKU Alias (
/sku-alias/create)Two-column layout. Left: form. Right: two separate cards.
Left form fields:
Right — Card 1: Linked SKUs table (SKU / Description / Qty / Action)
btn-es-slate(outlined slate, not red) with confirm dialogRight — Card 2: Add Component SKUs
SKU — Product name [available qty]Controller endpoint:
GET /sku-alias/search?q=— returns JSON[{'sku','name','product_id','available'}, ...]Page 2 — Convert SKU to Alias (
/sku-alias/convert/{id})Same layout as Create with two differences:
/products) alongside Save buttonPage 3 — SKU Alias detail (
/sku-alias/{id})Own product detail shell with tabs. Tabs: Info · Linked SKUs · Sales · Images · Attributes.
No Inventory, Locations, Suppliers, or Listings tabs — these do not apply to alias SKUs.
Info tab — editable form: SKU Alias, Title, UPC, EAN, Discontinued checkbox, Save button.
Linked SKUs tab — same two-card layout as Create page (Linked SKUs table + Add Component SKUs). Qty editable inline. Remove is slate outlined. Available to sell footer calculates from component stock.
Sales tab — identical to Phase 5
product-sales.phtml. Reuse as-is with alias product_id.Images tab — identical to Phase 6
product-images.phtml. Reuse as-is with alias product_id.Attributes tab — identical to Phase 6
product-attributes.phtml. Reuse as-is with alias product_id.Page 4 — SKU Alias tab on normal product (
/products/{id}/sku-alias)Read-only table: SKU Alias / Title. Each alias SKU links to its own detail page (
/sku-alias/{id}).Add to the normal product detail shell tab list (after Suppliers):
Helper text below table:
Linked SKUs search — AJAX endpoint
Required for both Create and Linked SKUs tab:
Returns JSON:
Searches product SKU and name. Results display as
SKU — Name [available qty]in the dropdown.New CSS classes needed in
_components.scssListings tab — remove from existing alias pages
The old SKU Alias detail had a Listings tab. Remove it — it is not part of the new design.
Build
After replacing all files run:
Definition of Done
grunt buildruns with zero errors/productssku-alias-preview.htmlbefore merge