name: create-position-column description: > Documents how to add drag-and-drop row reordering to a PrestaShop grid. Requires a PositionColumn in the definition, a dedicated update-position route, and position handling in the repository. needs: [create-grid-definition, create-admin-routing] produces: "PositionColumn configuration and position-update route wiring" conditional: "only for entities with position/sort support"
create-position-column
Instructions
- Add
PositionColumnas the second column (after BulkActionColumn) in the Grid Definition. - Configure the position update route:
->setOption('update_method', 'POST')->setOption('update_route', 'admin_{domain}s_update_position'). - Create the
admin_{domain}s_update_positionPOST route in the routing YAML (seecreate-admin-routingskill). - In the controller, handle the AJAX position update: receive
positions[]array, dispatchUpdatePosition{Domain}Command(or use QueryBuilder directly). - In the repository, update the
positioncolumn for the moved entities.
Rules
Column ordering conventions (PositionColumn as second column) are in Grid/CONTEXT.md. Skill-specific reminders:
- Position updates are always AJAX — return JSON response, not redirect
- Position values start at 0 or 1 — be consistent with existing PS convention