0

I'm working on a customized success page and I would like to get that same table from cart to display on success page, I mean, it should contain product thumb, product name with configurable options (in my case, size and color), quantity ordered and price for each item, and on the foot, shipping price, coupon description and value and grand total.

Additionally, I need to show the customer's shipping address.

That will be a default success page for current and future projects, so I preferred to work without modules and make customisation directly on success page phtml file.

Please note that I'm just the front-end guy, so I have no knowledge in advanced development/backend development.

Thanks in advance for helping!

  • Are you okay with rebuilding the HTML? You can't repurpose the shopping cart table because it contains things that let it modify the quantity/other actions. You can, however just rebuild the HTML and get the list of products on the success.phtml file. To do it in a cleaner way, you can add an XML block with your own template (does not require a module). I'll put an example if you're good with that. – heraldo Apr 17 '17 at 3:30
  • I think I'm okay, no problem. Just post an example and I will try to follow. – joaogdesigner Apr 17 '17 at 20:15
0

I'd recommend adding a block via XML with its own template. It'll make it a little cleaner since it won't fill up the success.phtml file.

Step 1:

In your app/design/frontend/YOUR_PACKAGE/YOUR_THEME/layout/local.xml (This file is optional, so if you don't have one, create one)

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <!-- success page view -->
    <checkout_onepage_success>
        <!-- references the main body of the page -->
        <reference name="content">
            <block type="checkout/onepage_success" name="whatever.you.want" as="order_items" template="checkout/success/items.phtml" />
        </reference>
    </checkout_onepage_success>
</layout>

Step 2:

In your app/design/frontend/YOUR_PACKAGE/YOUR_THEME/template/checkout/success.phtml file, add the following call to request the block we just created. You can place it anywhere you'd like it to show up.

<?php echo $this->getChildHtml('order_items') ?>

The order_items references the as="order_items" attribute in my example local.xml file, so you can change it to whatever you'd like. Just make sure to change both of them.

Step 3:

As you can see, we're referencing a phtml that doesn't exist in the template="checkout/success/items.phtml" attribute. You need to create this file at that location. (You can change this location to whatever you'd like) So for this example, it should be at app/design/frontend/YOUR_PACKAGE/YOUR_THEME/template/checkout/success/items.phtml

In this file we can get the items and various data from the items with something like:

<?php
/*
 * joaogdesigner
 * custom items for the success page
 *
 * @category design
 * @package your_package
 * @block Mage_Checkout_Onepage_Success
 *
*/
    $order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
    $items = $order->getAllVisibleItems();
    $total = $order->getGrandTotal(); // grand total
?>

<?php foreach( $items as $item ): ?>

    Product ID: <?php echo $item->getProductId(); ?>
    Name: <?php echo $item->getName(); ?>
    Qty: <?php echo $item->getQtyOrdered(); ?>
    Price: <?php echo $item->getPrice(); ?>

<?php endforeach; ?>

Hope this helps! Let me know if you need anything clarified.

  • Many thanks man, I will try and I go back here to tell you if it worked. Just a question: when I have to add a new code here in stackoverflow, I need to add a new answer since I can't use bbcode on comments? – joaogdesigner Apr 18 '17 at 1:17
  • You can highlight code in the comments using the backtick ` before and after the code. like this. But if it's a lot of code, it's better to edit your question instead. – heraldo Apr 18 '17 at 2:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.