In this video, we will learn how to store and display product attributes with orders.
First, let's add a column to the order_items table to store the product attributes details. Switch to the command prompt and run the command:
php artisan make:migration add_options_to_order_items_table –table=order_items
Next, open the migration file and add a column:
public function up()
{
Schema::table('order_items', function (Blueprint $table) {
$table->longText('options')->nullable();
});
}
public function down()
{
Schema::table('order_items', function (Blueprint $table) {
$table->dropColumn('options');
});
}
Save the changes and migrate the migration. Switch to the command prompt and run the command:
php artisan migrate
Now, run the application:
php artisan serve
Open the CheckoutComponent.php class file and store the product attributes inside the placeOrder function:
if($item->options)
{
$orderItem->options = serialize($item->options);
}
That's it! Let's test the functionality. Add a product to the cart, checkout, and place an order. You should see the message `Order placed successfully`.
Now, let's check the database. Open phpMyAdmin, browse the order_items table, and you should see the ordered items with attributes values.
Next, let's display the order attributes on the user's order details page. Open the user-order-details-component.blade.php view file and add the following code:
@if($item->options)
<div class=`product-name`>
@foreach(unserialize($item->options) as $key => $value)
<p><b>{{$key}}:{{$value}}</b></p>
@endforeach
</div>
@endif
Save the changes and refresh the page. Go to `My Orders` and view the details of the order. You should see the product attributes.
Now, let's display the product attributes on the admin's order details page. Open the admin-order-details-component.blade.php view file and add the following code:
@if($item->options)
<div class=`product-name`>
@foreach(unserialize($item->options) as $key => $value)
<p><b>{{$key}}:{{$value}}</b></p>
@endforeach
</div>
@endif
Save the changes and refresh the page. Logout from the user account, login with admin credentials, and go to the `All Orders` page. Open the order details page, and you should see the product attributes.
By following these steps, you can store and display product attributes with orders.






