Fix: product attributes with the same sort order value were overwriting each other in getProductAttributes(), causing only one attribute to display on the frontend. Now uses usort() with sequential keys. New: Preview button in product edit form opens product page in new tab. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>