Magento Extensions:Simplify Bulk Order Processing

From XTENTO Support Wiki
Jump to: navigation, search
This is a guide for Magento 1. For Magento 2 extensions and guides, please refer to Magento 2 Guides.

Extension Logo

Contents

Overview

Simplify Bulk Order Processing today! By adding more than 10 helpful new mass actions to the actions dropdown on the Sales > Order page, this module can save you hours every day when processing orders. Using this extension you don't have to open each order anymore and process it individually, but now you can process all your orders from the order grid in bulk.

Interested in this Magento Extension?

Head over to our store to purchase this extension: Simplify Bulk Order Processing

Got questions? Feel free to contact us! Contact Form

Setting up the extension

Installation

Please refer to our general Extension Installation and Setup Guide for installation instructions.

Configuration section

Configuration

The configuration section of this extension is located at System > Configuration > XTENTO Extensions > Simplify Bulk Order Processing.

Please make sure the go through the configuration carefully - otherwise the extension might not work as expected.

Following is an explanation of the configuration section of the extension:

General Configuration

License Key
This field is required. Please enter the license key you received in the license key email sent to you directly after your purchase. Looking for more information? Read further
Module Enabled
Set to Yes if you want to use the extension. If set to No, no additional actions will show up on the Sales > Orders grid.

Extension Configuration

Enabled Grid Actions
This field defines which new actions get added to the Sales > Orders grid action drop-down. You don't have to enable all actions - you can disable/enable specific actions by holding down the Ctrl (Control) key on your keyboard and then clicking on one of the entries. To select multiple actions, hold down Shift and select the actions you want to enable.
Capture payment for invoice
If you set this to Yes, upon invoicing an order Magento will try to capture/charge pre-authorized credit cards at the payment gateway so you actually receive the funds. You should leave this turned on - unless you really don't want to charge credit cards at all.
Set invoice status to paid
It is recommended to set this to Yes. This will mark the invoice as paid.

Order Status Configuration

Set custom order status after invoicing order
Out of the box, Magento assigns invoiced orders the status Processing. If you want to override this status with a custom status, select the custom status here. Please note that order status will only change to the custom order status when invoicing orders from the Sales > Orders grid. This does not affect out of the box invoicing functions as used by payment gateway or when invoicing from the "View Order" screen.
Set custom order status after shipping order
Out of the box, Magento doesn't change the order status for shipped orders if they haven't been invoiced yet - otherwise the order status gets changed to Complete. If you want to override this behavior with a custom status, select the custom status here. Please note that order status will only change to the custom order status when shipping orders from the Sales > Orders grid. This does not affect out of the box shipping functions when shipping from the "View Order" screen.
Set custom order status after completing order
Using this option you can override the Complete status Magento would usually assign when an order has been invoiced and shipped, OR which would be assigned by this extension when running the "Complete" action on orders. If you want to override this behavior with a custom status, select the custom status here. Please note that order status will only change to the custom order status when modifying orders from the Sales > Orders grid.

Grid Configuration

Add tracking numbers from grid
When enabled, two new input fields will show up on the Sales > Orders grid. When shipping orders in bulk (i.e. using any of the Ship actions of this extension), the tracking number and carrier entered will get added to the shipment, allowing your customer to directly track the order from the shipment email sent.
Default tracking carrier
Out of the box the 'Custom' carrier will be pre-selected on the Sales > Orders grid for adding tracking numbers to orders. Select a default carrier here that is pre-selected instead.

New mass actions

Grid Actions

Following is an explanation for all the actions which can be added to the Sales > Orders grid using this extension.

Using the extension

Using this extension is as easy as going to Sales > Orders after having configured the extension. It's really self-explanatory - use the checkboxes to the left to select the orders to process and then run one of the newly added actions which can be selected from the "Actions" dropdown at the top right.

Adding multiple tracking numbers to one shipment

It is possible to add multiple tracking numbers to one order, all at the same time. Just enter the tracking numbers separated by a semi-colon (;) into the tracking number field. Example:

1Z1111111111111111;1Z1111111111112334;1Z1111111111114689

This would add three tracking numbers to one shipment.

Troubleshooting

General

SimpleOrderExport

This is actually an incompatibility in the SimpleOrderExport extension. Please open the file app/code/community/Slandsbek/SimpleOrderExport/Model/Observer.php and look for this line: if(get_class($block) =='Mage_Adminhtml_Block_Widget_Grid_Massaction' && $block->getRequest()->getControllerName() == 'sales_order') Replace it with: if($block instanceof Mage_Adminhtml_Block_Widget_Grid_Massaction && $block->getRequest()->getControllerName() == 'sales_order') Save the file, refresh the Magento cache/compiler. Done.

DPD_Delisprintexport

This is actually an incompatibility in the DPD_Delisprintexport extension. Please open the file app/code/community/DPD/Delisprintexport/Model/Observer.php and look for this line: if(get_class($block) =='Mage_Adminhtml_Block_Widget_Grid_Massaction' Replace it with: if($block instanceof Mage_Adminhtml_Block_Widget_Grid_Massaction Save the file, refresh the Magento cache/compiler. Done.

Blue Jalappeno Order Export

This is actually an incompatibility in the Bluejalappeno_Orderexport extension. Please open the file app/code/local/Bluejalappeno/Orderexport/Model/Observer.php and look for this line: if(get_class($block) =='Mage_Adminhtml_Block_Widget_Grid_Massaction' Replace this with: if($block instanceof Mage_Adminhtml_Block_Widget_Grid_Massaction Save the file, refresh the Magento cache/compiler. Done.

Wyomind Orders Eraser

This is actually an incompatibility in the Wyomind_Orderseraser extension. Please open the file app\code\community\Wyomind\Orderseraser\Model\Observer.php and look for this line: if(get_class($block) =='Mage_Adminhtml_Block_Widget_Grid_Massaction' Replace this with: if($block instanceof Mage_Adminhtml_Block_Widget_Grid_Massaction Save the file, refresh the Magento cache/compiler. Done.

PH_Interlink

This is actually an incompatibility in the PH_Interlink extension. Please open the file app\code\local\PH\Interlink\Model\Observer\Adminhtml\Sales\Order.php and look for this line: if ( get_class($block) =='Mage_Adminhtml_Block_Widget_Grid_Massaction' Replace this with: if($block instanceof Mage_Adminhtml_Block_Widget_Grid_Massaction Save the file, refresh the Magento cache/compiler. Done.

TRIC Pacsoft

This is actually an incompatibility in the TRIC_Pacsoft extension. Please open the file app\code\local\TRIC\Pacsoft\Model\Observer.php and look for this line: if(preg_match('/_Widget_Grid_Massaction$/',get_class($block)) && strpos($block->getRequest()->getControllerName(),'sales_order') !== false) Replace this with: if($block instanceof Mage_Adminhtml_Block_Widget_Grid_Massaction && strpos($block->getRequest()->getControllerName(),'sales_order') !== false) Save the file, refresh the Magento cache/compiler. Done.

Market Ready Germany PDF

If you are using "Market Ready Germany" and if you get the wrong invoice layout for PDF prints please follow these steps:

if (!isset($pdf)) {
$pdf = Mage::getModel('sales/order_pdf_invoice')->getPdf($invoices);
} else {
$pages = Mage::getModel('sales/order_pdf_invoice')->getPdf($invoices);
$pdf->pages = array_merge($pdf->pages, $pages->pages);
}

if (!isset($pdf)) {
$pdf = Mage::getModel('invoicepdf/pdf_invoice')->getPdf($invoices);
} else {
$pages = Mage::getModel('invoicepdf/pdf_invoice')->getPdf($invoices);
$pdf->pages = array_merge($pdf->pages, $pages->pages);
}

Interactiv4 PackedShipment

As this is a custom shipping extension, you need to tell the "PackedShipment" module that "our" module is a module which creates shipments in bulk. To do so, please open the file /app/code/local/Xtento/GridActions/Model/Processor.php and look for this line: if (!strstr($actionsToRun, '_setstatus')) { BEFORE this line add: Mage::register('i4packedshipment_bulk_send', true); Save the file, refresh the Magento cache/compiler. Done.

Easy PDF

In order to print your invoices/packing slips in the format set up using the Easy PDF extension, customizations are required.

Easy PDF Invoices

Please open the file app/code/local/Xtento/GridActions/controllers/Adminhtml/Gridactions/PrintController.php and look for: $invoices = Mage::getResourceModel('sales/order_invoice_collection') Replace with: $invoices = Mage::getResourceModel('sales/order_invoice_collection')->addAttributeToSelect('*')

Look for: if ($invoices->getSize() > 0) { BEFORE it add: foreach($invoices as $invoice){
$invoiceDatas[] = Mage::getModel('pdfpro/order_invoice')->initInvoiceData($invoice);
}

Look for: if (!isset($pdf)) {
$pdf = Mage::getModel('sales/order_pdf_invoice')->getPdf($invoices);
} else {
$pages = Mage::getModel('sales/order_pdf_invoice')->getPdf($invoices);
$pdf->pages = array_merge($pdf->pages, $pages->pages);
}
REPLACE with: $result = Mage::helper('pdfpro')->initPdf($invoiceDatas);
if($result['success']){
return $this->_prepareDownloadResponse(Mage::helper('pdfpro')->getFileName('invoices').'.pdf', $result['content']);
}else{
throw new Mage_Core_Exception($result['msg']);
}

Save the file. Done.

Easy PDF Packing Slips

Please open the file app/code/local/Xtento/GridActions/controllers/Adminhtml/Gridactions/PrintController.php and look for: $shipments = Mage::getResourceModel('sales/order_shipment_collection') Replace with: $shipments = Mage::getResourceModel('sales/order_shipment_collection')->addAttributeToSelect('*')

Look for: if ($shipments->getSize() > 0) { BEFORE it add: foreach($shipments as $shipment){
$shipmentDatas[] = Mage::getModel('pdfpro/order_shipment')->initShipmentData($shipment);
}

Look for: if (!isset($pdf)) {
$pdf = Mage::getModel('sales/order_pdf_shipment')->getPdf($shipments);
} else {
$pages = Mage::getModel('sales/order_pdf_shipment')->getPdf($shipments);
$pdf->pages = array_merge($pdf->pages, $pages->pages);
}
REPLACE with: $result = Mage::helper('pdfpro')->initPdf($shipmentDatas);
if($result['success']){
return $this->_prepareDownloadResponse(Mage::helper('pdfpro')->getFileName('shipments').'.pdf', $result['content']);
}else{
throw new Mage_Core_Exception($result['msg']);
}

Save the file. Done.

Aromicon Invoice PDF Pro

If you are using the "Aromicon Invoice PDF Pro" extension and if you get the wrong invoice/packingslip layout for PDF prints please replace the file app/code/local/Xtento/GridActions/controllers/PrintController.php with this version (unzip the file, then replace): http://support.xtento.com/media/Aromicon_PrintController.zip

Twenty4_eParcel

This is actually an incompatibility in the Twenty4_eParcel extension. Please open the file app/code/community/Twenty4/Eparcel/Model/Observer.php and look for this line: if(get_class($block) =='Mage_Adminhtml_Block_Widget_Grid_Massaction' Replace this with: if($block instanceof Mage_Adminhtml_Block_Widget_Grid_Massaction Save the file, refresh the Magento cache/compiler. Done.

Balticode_DPD (LT)

This is actually an incompatibility in the Balticode_DPD extension. Please open the file app/code/community/Balticode/Livehandler/Model/Observer.php and look for this line: if(get_class($block) =='Mage_Adminhtml_Block_Widget_Grid_Massaction' Replace this with: if($block instanceof Mage_Adminhtml_Block_Widget_Grid_Massaction Save the file, refresh the Magento cache/compiler. Done.

TIG PostNL

This is actually a rewrite conflict in our and their module. Please open the file /app/design/adminhtml/default/default/template/TIG/PostNL/sales/order/js.phtml and look for this line: apply: function() { AFTER it add: var carriers = [];
$('sales_order_grid_table').getElementsBySelector('.carrier-selector').each(function (carrier) {
if (carrier.value !== 'custom') carriers.push(carrier.readAttribute('rel') + '[|]' + carrier.value);
});
new Insertion.Bottom(this.formAdditional, this.fieldTemplate.evaluate({name:'carriers', value:carriers}));
var trackingnumbers = [];
$('sales_order_grid_table').getElementsBySelector('.tracking-input').each(function (trackingnumber) {
if (trackingnumber.value !== '') trackingnumbers.push(trackingnumber.readAttribute('rel') + '[|]' + trackingnumber.value);
});
new Insertion.Bottom(this.formAdditional, this.fieldTemplate.evaluate({name:'trackingnumbers', value:trackingnumbers}));
Save the file, refresh grid. Done.

TIG MyParcel2014

This is actually a rewrite conflict in our and their module. Please open the file /app/design/adminhtml/default/default/template/TIG/MyParcel2014/sales/order/mass_actions.phtml and look for this line: apply : function (skipMyParcelCheck) { AFTER it add: var carriers = [];
$('sales_order_grid_table').getElementsBySelector('.carrier-selector').each(function (carrier) {
if (carrier.value !== 'custom') carriers.push(carrier.readAttribute('rel') + '[|]' + carrier.value);
});
new Insertion.Bottom(this.formAdditional, this.fieldTemplate.evaluate({name:'carriers', value:carriers}));
var trackingnumbers = [];
$('sales_order_grid_table').getElementsBySelector('.tracking-input').each(function (trackingnumber) {
if (trackingnumber.value !== '') trackingnumbers.push(trackingnumber.readAttribute('rel') + '[|]' + trackingnumber.value);
});
new Insertion.Bottom(this.formAdditional, this.fieldTemplate.evaluate({name:'trackingnumbers', value:trackingnumbers}));
Save the file, refresh grid. Done.

Mass actions at Sales > Orders take you back to the dashboard

This is a bug in Magento 1.4.1. Please refer to this link: http://magebase.com/magento-tutorials/sales-orders-mass-action-takes-you-back-to-dashboard/

SUPEE-6285 Patch

A patch released by Magento ("SUPEE-6285") causes problems for admins (with limited admin roles, i.e. not "full" admins) who try to bulk process orders. This has been fixed in module version 1.8.2 released on June 8, 2015.

A patch can be found here: http://support.xtento.com/media/xtento_gridactions_6285.patch

Manual fix
1) Open the file app/code/local/Xtento/GridActions/controllers/Adminhtml/Gridactions/GridController.php and look for: $this->_redirect('adminhtml/sales_order');
}
After this add:
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('sales/order/gridactions/actions');
}

2) Open the file app/code/local/Xtento/GridActions/controllers/Adminhtml/Gridactions/PrintController.php and look for: unlink($tmpFileName);
return $page;
}
After this add:
protected function _isAllowed()
{
return Mage::getSingleton('admin/session')->isAllowed('sales/order/gridactions/actions');
}

That's it!

Personal tools
Namespaces
Variants
Actions
General Information
Magento 1 Guides
Magento 1 Extensions
Magento 2 Guides
Magento 2 Extensions
Magento Integration Suite
Toolbox