0

I need to overwrite

Magento_Sales::order/create/items/grid.phtml

in

sales_order_create_load_block_items.xml

created

My_Module/view/adminhtml/sales_order_create_load_block_items.xml

    <?xml version="1.0"?>
        <referenceBlock name="items_grid" template="My_Module::order/create/items/grid.phtml">

        </referenceBlock>
    </body>
</page>

then copied grid.phtml to

My_Module/view/adminhtml/templates/order/create/items/grid.phtml

but for some reasons my changes doesn't apply.

i think sales_order_create_load_block_items.xml is a block that being called via the addHandle() function in some controller. is the normal overwriting function doesn't apply to these kinds of blocks?

or am i doing something wrong here?

0

Please follow below steps to override Magento_Sales::order/create/items/grid.phtml

Step 1: Please create file sales_order_create_index.xml under path PackageName/Vendor/view/adminhtml/layout/

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance dc" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <referenceBlock name="items_grid">
        <action method="setTemplate">
            <argument name="template" xsi:type="string">PackageName_Vendor::order/create/items/grid.phtml</argument>
        </action>
    </referenceBlock>
</page>

Step 2: Please create file grid.phtml file under path PackageName/Vendor/view/adminhtml/templates/order/create/items/

Please copy code of grid.phtml file according to your magento version below is the code from magento 2.3.6

<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */

// phpcs:disable Magento2.Templates.ThisInTemplate
?>
<?php
/**
 * @var $block \Magento\Sales\Block\Adminhtml\Order\Create\Items\Grid
 */
?>

<?php $_items = $block->getItems() ?>
<?php if (empty($_items)) : ?>
    <div id="order-items_grid">
        <div class="admin__table-wrapper">
            <table class="data-table admin__table-primary order-tables">
                <thead>
                    <tr class="headings">
                        <th class="col-product"><span><?= $block->escapeHtml(__('Product')) ?></span></th>
                        <th class="col-price"><span><?= $block->escapeHtml(__('Price')) ?></span></th>
                        <th class="col-qty"><span><?= $block->escapeHtml(__('Qty')) ?></span></th>
                        <th class="col-subtotal"><span><?= $block->escapeHtml(__('Subtotal')) ?></span></th>
                        <th class="col-discount"><span><?= $block->escapeHtml(__('Discount')) ?></span></th>
                        <th class="col-row-total"><span><?= $block->escapeHtml(__('Row Subtotal')) ?></span></th>
                        <th class="col-action"><span><?= $block->escapeHtml(__('Action')) ?></span></th>
                    </tr>
                </thead>
                <tbody>
                    <tr class="even">
                        <td class="empty-text" colspan="100"><?= $block->escapeHtml(__('No ordered items')) ?></td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
<?php else : ?>
    <div class="admin__table-wrapper" id="order-items_grid">
    <?php if (count($_items) > 10) : ?>
        <div class="actions update actions-update">
            <?= $block->getButtonHtml(__('Update Items and Quantities'), 'order.itemsUpdate()', 'action-secondary') ?>
        </div>
    <?php endif; ?>
        <table class="data-table admin__table-primary order-tables">
            <thead>
                <tr class="headings">
                    <th class="col-product"><span><?= $block->escapeHtml(__('Product')) ?></span></th>
                    <th class="col-price"><span><?= $block->escapeHtml(__('Price')) ?></span></th>
                    <th class="col-qty"><span><?= $block->escapeHtml(__('Qty')) ?></span></th>
                    <th class="col-subtotal"><span><?= $block->escapeHtml(__('Subtotal')) ?></span></th>
                    <th class="col-discount"><span><?= $block->escapeHtml(__('Discount')) ?></span></th>
                    <th class="col-row-total"><span><?= $block->escapeHtml(__('Row Subtotal')) ?></span></th>
                    <th class="col-action"><span><?= $block->escapeHtml(__('Action')) ?></span></th>
                </tr>
            </thead>
            <tfoot>
                <tr>
                    <td class="col-total"><?= $block->escapeHtml(__('Total %1 product(s)', count($_items))) ?></td>
                    <td colspan="2" class="col-subtotal"><?= $block->escapeHtml(__('Subtotal:')) ?></td>
                    <td class="col-price"><strong><?= /* @noEscape */ $block->formatPrice($block->getSubtotal()) ?></strong></td>
                    <td class="col-price"><strong><?= /* @noEscape */ $block->formatPrice($block->getDiscountAmount()) ?></strong></td>
                    <td class="col-price"><strong><?= /* @noEscape */ $block->formatPrice($block->getSubtotalWithDiscount()); ?></strong></td>
                    <td colspan="2">&nbsp;</td>
                </tr>
            </tfoot>
                <?php $i = 0 ?>
                <?php foreach ($_items as $_item) : $i++ ?>
                <tbody class="<?= /* @noEscape */ ($i%2) ? 'even' : 'odd' ?>">
                    <tr>
                        <td class="col-product">
                            <span id="order_item_<?= (int) $_item->getId() ?>_title"><?= $block->escapeHtml($_item->getName()) ?></span>
                            <div class="product-sku-block">
                                <span><?= $block->escapeHtml(__('SKU')) ?>:</span>
                                <?= /* @noEscape */ implode('<br />', $this->helper(\Magento\Catalog\Helper\Data::class)->splitSku($block->escapeHtml($_item->getSku()))) ?>
                            </div>
                            <div class="product-configure-block">
                                <?= $block->getConfigureButtonHtml($_item) ?>
                            </div>
                        </td>
                        <td class="col-price">

                            <?= $block->getItemUnitPriceHtml($_item) ?>

                            <?php $_isCustomPrice = $block->usedCustomPriceForItem($_item) ?>
                            <?php if ($_tier = $block->getTierHtml($_item)) : ?>
                            <div id="item_tier_block_<?= (int) $_item->getId() ?>"<?php if ($_isCustomPrice) : ?> style="display:none"<?php endif; ?>>
                                <a href="#" onclick="$('item_tier_<?= (int) $_item->getId() ?>').toggle();return false;"><?= $block->escapeHtml(__('Tier Pricing')) ?></a>
                                <div style="display:none" id="item_tier_<?= (int) $_item->getId() ?>"><?= /* @noEscape */ $_tier ?></div>
                            </div>
                            <?php endif; ?>
                            <?php if ($block->canApplyCustomPrice($_item)) : ?>
                                <div class="custom-price-block">
                                    <input type="checkbox"
                                           class="admin__control-checkbox"
                                           id="item_use_custom_price_<?= (int) $_item->getId() ?>"
                                           <?php if ($_isCustomPrice) : ?> checked="checked"<?php endif; ?>
                                           onclick="order.toggleCustomPrice(this, 'item_custom_price_<?= (int) $_item->getId() ?>', 'item_tier_block_<?= (int) $_item->getId() ?>');"/>
                                    <label
                                        class="normal admin__field-label"
                                        for="item_use_custom_price_<?= (int) $_item->getId() ?>">
                                        <span><?= $block->escapeHtml(__('Custom Price')) ?>*</span></label>
                                </div>
                            <?php endif; ?>
                            <input id="item_custom_price_<?= (int) $_item->getId() ?>"
                                name="item[<?= (int) $_item->getId() ?>][custom_price]"
                                value="<?= /* @noEscape */ sprintf("%.2f", $block->getOriginalEditablePrice($_item)) ?>"
                                <?php if (!$_isCustomPrice) : ?>
                                style="display:none"
                                disabled="disabled"
                                <?php endif; ?>
                                class="input-text item-price admin__control-text"/>
                        </td>
                        <td class="col-qty">
                            <input name="item[<?= (int) $_item->getId() ?>][qty]"
                                   class="input-text item-qty admin__control-text"
                                   value="<?= (float) $_item->getQty() ?>"
                                   maxlength="12" />
                        </td>
                        <td class="col-subtotal col-price">
                            <?= $block->getItemRowTotalHtml($_item) ?>
                        </td>
                        <td class="col-discount col-price">
                            <?= /* @noEscape */ $block->formatPrice(-$_item->getTotalDiscountAmount()) ?>
                            <div class="discount-price-block">
                                <input id="item_use_discount_<?= (int) $_item->getId() ?>"
                                       class="admin__control-checkbox"
                                       name="item[<?= (int) $_item->getId() ?>][use_discount]"
                                       <?php if (!$_item->getNoDiscount()) : ?>checked="checked"<?php endif; ?>
                                       value="1"
                                       type="checkbox" />
                                <label
                                    for="item_use_discount_<?= (int) $_item->getId() ?>"
                                    class="normal admin__field-label">
                                    <span><?= $block->escapeHtml(__('Apply')) ?></span></label>
                            </div>

                        </td>
                        <td class="col-price col-row-subtotal">
                            <?= $block->getItemRowTotalWithDiscountHtml($_item) ?>
                        </td>
                        <td class="col-actions last">
                            <select class="admin__control-select" name="item[<?= (int) $_item->getId() ?>][action]">
                                <option value=""><?= $block->escapeHtml(__('Please select')) ?></option>
                                <option value="remove"><?= $block->escapeHtml(__('Remove')) ?></option>
                                <?php if ($block->getCustomerId() && $block->getMoveToCustomerStorage()) : ?>
                                    <option value="cart"><?= $block->escapeHtml(__('Move to Shopping Cart')) ?></option>
                                    <?php if ($block->isMoveToWishlistAllowed($_item)) : ?>
                                        <?php $wishlists = $block->getCustomerWishlists();?>
                                        <?php if (count($wishlists) <= 1) : ?>
                                            <option value="wishlist"><?= $block->escapeHtml(__('Move to Wish List')) ?></option>
                                        <?php else : ?>
                                            <optgroup label="<?= $block->escapeHtmlAttr(__('Move to Wish List')) ?>">
                                                <?php foreach ($wishlists as $wishlist) :?>
                                                    <option value="wishlist_<?= (int) $wishlist->getId() ?>"><?= $block->escapeHtml($wishlist->getName()) ?></option>
                                                <?php endforeach;?>
                                            </optgroup>
                                        <?php endif; ?>
                                    <?php endif; ?>
                                <?php endif; ?>
                            </select>
                        </td>
                    </tr>

                    <?php $hasMessageError = false; ?>
                    <?php foreach ($_item->getMessage(false) as $messageError) : ?>
                        <?php if (!empty($messageError)) :
                            $hasMessageError = true;
                        endif; ?>
                    <?php endforeach; ?>

                    <?php if ($hasMessageError) : ?>
                        <tr class="row-messages-error">
                            <td colspan="100"> <!-- ToDo UI: remove the 100 -->
                                <?php foreach ($_item->getMessage(false) as $message) :
                                    if (empty($message)) {
                                        continue;
                                    }
                                    ?>
                                    <div class="message <?php if ($_item->getHasError()) : ?>message-error<?php else : ?>message-notice<?php endif; ?>">
                                        <?= $block->escapeHtml($message) ?>
                                    </div>
                                <?php endforeach; ?>
                            </td>
                        </tr>
                    <?php endif;?>

                    <?= $block->getItemExtraInfo($_item)->toHtml() ?>
                </tbody>
                <?php endforeach; ?>
        </table>
        <p><small><?= $block->escapeHtml($block->getInclExclTaxMessage()) ?></small></p>
    </div>

    <div class="order-discounts">
        <?= $block->getButtonHtml(__('Update Items and Quantities'), 'order.itemsUpdate()', 'action-secondary') ?>
        <div id="order-coupons" class="order-coupons"><?= $block->getChildHtml() ?></div>
    </div>

    <script>
        require([
            'Magento_Sales/order/create/form'
        ], function(){
            order.itemsOnchangeBind()
        });
    </script>
    <?php if ($block->isGiftMessagesAvailable()) : ?>
        <script>
        require([
            "prototype",
            "Magento_Sales/order/giftoptions_tooltip"
        ], function(){

        //<![CDATA[
            /**
             * Retrieve gift options tooltip content
             */
            function getGiftOptionsTooltipContent(itemId) {
                var contentLines = [];
                var headerLine = null;
                var contentLine = null;

                $$('#gift_options_data_' + itemId + ' .gift-options-tooltip-content').each(function (element) {
                    if (element.down(0)) {
                        headerLine = element.down(0).innerHTML;
                        contentLine = element.down(0).next().innerHTML;
                        if (contentLine.length > 30) {
                            contentLine = contentLine.slice(0,30) + '...';
                        }
                        contentLines.push(headerLine + ' ' + contentLine);
                    }
                });
                return contentLines.join('<br/>');
            }

            giftOptionsTooltip.setTooltipContentLoaderFunction(getGiftOptionsTooltipContent);

            window.getGiftOptionsTooltipContent = getGiftOptionsTooltipContent;

        //]]>

        });
        </script>
    <?php endif; ?>
<?php endif; ?>

Please check and let me know if you have any query.

1
  • Have you checked answer? – ZealousWeb Mar 10 at 5:52

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.