diff --git a/modules/order/src/OrderServiceProvider.php b/modules/order/src/OrderServiceProvider.php
new file mode 100644
index 0000000..ea9b5ff
--- /dev/null
+++ b/modules/order/src/OrderServiceProvider.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Drupal\commerce_order;
+
+use Drupal\Core\DependencyInjection\ContainerBuilder;
+use Drupal\Core\DependencyInjection\ServiceProviderBase;
+use Symfony\Component\DependencyInjection\Reference;
+
+/**
+ * Registers service for order entity renderer.
+ */
+class OrderServiceProvider extends ServiceProviderBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function register(ContainerBuilder $container) {
+    // We cannot use the module handler as the container is not yet compiled.
+    // @see \Drupal\Core\DrupalKernel::compileContainer()
+    $modules = $container->getParameter('container.modules');
+
+    if (isset($modules['entity_print'])) {
+      $container->register('entity_print.renderer.commerce_order', 'Drupal\commerce_order\Renderer\OrderEntityRenderer')
+        ->addArgument(new Reference('renderer'), new Reference('entity_print.asset_renderer'), new Reference('event_dispatcher'), new Reference('entity_type.manager'), new Reference('commerce_order.order_total_summary'));
+    }
+  }
+
+}
diff --git a/modules/order/src/Renderer/OrderEntityRenderer.php b/modules/order/src/Renderer/OrderEntityRenderer.php
new file mode 100644
index 0000000..6f75b9f
--- /dev/null
+++ b/modules/order/src/Renderer/OrderEntityRenderer.php
@@ -0,0 +1,91 @@
+<?php
+
+namespace Drupal\commerce_order\Renderer;
+
+use Drupal\commerce_order\Entity\OrderInterface;
+use Drupal\commerce_order\OrderTotalSummaryInterface;
+use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Render\RendererInterface as CoreRendererInterface;
+use Drupal\entity_print\Asset\AssetRendererInterface;
+use Drupal\entity_print\Renderer\ContentEntityRenderer;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+
+/**
+ * Provides custom rendering for order entities using the entity_print module.
+ */
+class OrderEntityRenderer extends ContentEntityRenderer {
+
+  /**
+   * The order total summary.
+   *
+   * @var \Drupal\commerce_order\OrderTotalSummaryInterface
+   */
+  protected $orderTotalSummary;
+
+  /**
+   * The entity view builder for profiles.
+   *
+   * @var \Drupal\profile\ProfileViewBuilder
+   */
+  protected $profileViewBuilder;
+
+  /**
+   * OrderEntityRenderer constructor.
+   *
+   * @param \Drupal\Core\Render\RendererInterface $renderer
+   *   The core render service.
+   * @param \Drupal\entity_print\Asset\AssetRendererInterface $asset_renderer
+   *   The entity print asset renderer.
+   * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher
+   *   The event dispatcher.
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
+   *   The entity type manager.
+   * @param \Drupal\commerce_order\OrderTotalSummaryInterface $order_total_summary
+   *   The order total summary service.
+   */
+  public function __construct(CoreRendererInterface $renderer, AssetRendererInterface $asset_renderer, EventDispatcherInterface $event_dispatcher, EntityTypeManagerInterface $entity_type_manager, OrderTotalSummaryInterface $order_total_summary) {
+    parent::__construct($renderer, $asset_renderer, $event_dispatcher, $entity_type_manager);
+    $this->orderTotalSummary = $order_total_summary;
+    $this->profileViewBuilder = $entity_type_manager->getViewBuilder('profile');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function render(array $orders) {
+    return array_map([$this, 'renderSingle'], $orders);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function getLabel(EntityInterface $entity) {
+    return t('Order @id receipt', ['@id' => $entity->label()]);
+  }
+
+  /**
+   * Builds a print ready render array for a single order.
+   *
+   * @param \Drupal\commerce_order\Entity\OrderInterface $order
+   *   The order entity.
+   *
+   * @return array
+   *   The render array.
+   */
+  protected function renderSingle(OrderInterface $order) {
+    // Use the order receipt template for Entity Print render.
+    $build = [
+      '#theme' => 'commerce_order_receipt',
+      '#order_entity' => $order,
+      '#totals' => $this->orderTotalSummary->buildTotals($order),
+    ];
+
+    if ($billing_profile = $order->getBillingProfile()) {
+      $build['#billing_information'] = $this->profileViewBuilder->view($billing_profile);
+    }
+
+    return $build;
+  }
+
+}
diff --git a/modules/order/templates/commerce-order--admin.html.twig b/modules/order/templates/commerce-order--admin.html.twig
index f1b1c4a..927cf01 100644
--- a/modules/order/templates/commerce-order--admin.html.twig
+++ b/modules/order/templates/commerce-order--admin.html.twig
@@ -79,6 +79,18 @@
           </div>
         </details>
       {% endif %}
+
+      {% if order.entity_print_view_pdf %}
+        <details open>
+          <summary role="button">
+            {{ 'Order actions'|t }}
+          </summary>
+          <div class="details-wrapper">
+            {{ order.entity_print_view_pdf }}
+          </div>
+        </details>
+      {% endif %}
+
       {# If the order has possible transitions, render the field for transition buttons. #}
       {% if order_entity.getState.getTransitions is not empty %}
         <div class="entity-meta__header">
