Order Management¶
Introduction¶
Order processing is one of the critical aspects in e-Сommerce business. Such activities as order creation/editing/archiving, as well as order shipping and processing refunds (if necessary), should always be organized smoothly and logically.
When it comes to the above-mentioned aspects, Magento 2 is quite a good solution, because it supports the full order processing workflow, just with several limitations.
Order Workflow in Magento 2¶
Basically, the order process consists of the following steps:
Once an order has been placed (but not paid and shipped) - its status is automatically set to Pending. Then, you create an invoice from the Admin Panel, and the status is changed to Processing. Finally, when you confirm shipment to finalize the order, it gets the status Complete.
With the default functionality, to modify an order, you have to cancel it, which is quite inconvenient. Say, if you make any changes to customer’s address, you would have to choose a shipping method again. If a customer used a credit card payment method, you would have to re-enter all the data. By default, you can’t edit orders that have been invoiced. Magento doesn’t allow you to delete orders by default. You can only set the order status to 'Cancelled'.
Magento 2 Order Management extension not only has the above-mentioned functionality but also significantly expands it:
-
Fully adjust the view of the standard Sales-Orders Grid. Display all important orders attributes without the necessity to go to the ‘View details’ page and hide any column.
-
Modify orders without canceling them: edit order & product details, set a custom price, modify product discount, preview the order’s Grand Total.
-
Invoice and/or ship orders, print invoices and credit memos, send invoices and shipments in bulk
Requirements and Installation¶
Order Management supports Open source (Community), Commerce (Enterprise) editions and Commerce cloud. The current version of the Magento installed on your website can be found in the lower right corner of any backend page.
Order Management has 3 separate ways of installation:
1) Copy the code (ready-to-paste package);
2) Use MageWorx Repository;
3) Use local Composer.
Note
The extension uses the free 3rd party libraries if you want to enable certain features:
- Device Detector and Spyc to detect a device type of the customers and display this information in the order view.
You should install it via the composer:
composer require matomo/device-detector
The free compatibility module should be also installed from https://github.com/mageworx/module-order-device-detector
Extension Configuration¶
Log into the Magento Admin panel and go to STORES ⟶ Configuration ⟶ MAGEWORX ⟶ Order Management. The configuration itself consists of 3 tabs.
Orders Grid¶
These settings define how the orders grid should be synced and updated. It might be useful if you import the orders or add them from 3rd party systems like ERP etc.
-
Sync order grid by opening - if enabled, the orders will be synced automatically when you open the orders grid in the back-end.
-
Sync order grid by cron - if enabled, the orders will be synchronized every 5 minutes using Magento 2 cron.
-
Order capture notification comment - if enabled, the orders will be synchronized every 5 minutes using Magento 2 cron.
-
Disabled mass actions in orders grid - this setting defines the mass-actions, which will be hidden in the "Mass-actions" drop-down in the orders grid.
-
Sync Orders Additional data – synchronization may be needed when you installed the extension for the first time or reenabled it. It can also be useful if you observe some incorrect information.
Orders Base¶
Edit the Checkout Path setting if you are using some third-party checkout with the custom URL. This setting provides the correct detection of the area field.
Order Editor¶
Invoices / Shipments / Credit Memos¶
Update Invoices/Credit Memos - specify how invoices and credit memos are updated after modifying an order. Can be either Create new invoice (if possible) or Delete invoices and credit memos, create new invoice instead. The former option can be useful if orders modification history is needed, while the latter merely erases the old data.
If the store owner selects Delete invoices and credit memos, create new invoice instead, then all the old stuff will be removed, and the new order will be created.
Update Shipments has several options: Do not touch doesn't modify the shipping costs, Add new shipment is used if shipment modification history is needed, Delete shipment(s) and create new erases the old data.
Order Items¶
Return Item To Stock specifies the default value of the back in stock option on the products grid when the product needs to be removed
This will be described later in this document
Logger¶
-
Enable - Yes/No. This setting enables the functionality to log all the order edit changes and display them as the order’s comments in the back-end.
-
Add Admin Name to Comment - this setting enables the functionality to log all the order edit changes and display them as the order’s comments in the back-end.
Payment Method¶
The extension adds a custom offline payment method, which can be selected when editing the orders in the back-end. This payment method is not available for your customers during the checkout on the front-end. It is done so you will be able to set a custom payment method when editing the orders.
Extended Sales-Orders Grid¶
Log into the Magento Admin panel and go to Sales ⟶ Operations ⟶ Orders.
The Columns tab has 28 extra columns to view on the grid. The columns are divided into separate groups:
- Order
We add these columns here:
-
Coupon Code
-
Weight
-
Subtotal (Purchased)
-
Modified
-
Product Name
-
SKU
-
Product Thumbnail
- Shipping
We add these columns here:
-
Shipments
-
Tracking Numbers
-
Shipping Fax
-
Shipping Region
-
Shipping Postcode
-
Shipping City
-
Shipping Telephone
-
Shipping Country
- Billing
We add these columns here:
-
Tax Code
-
Tax Percent
-
Tax Amount
-
Tax Amount (Base)
-
Tax Real Amount (Base)
-
Invoices
-
Billing Fax
-
Billing Region
-
Billing Postcode
-
Billing City
-
Billing Telephone
-
Billing Country
- Customer
We add the Customer Id column here.
Orders Marks & Icons¶
The extensions allows you to color & add the icons to the orders based on:
- order status
- payment method
- shipping method
To add a new order's marks go to SALES ⟶ Grid Colors & Icons.
To add a new mark click on "Add new mark" button:
Note
If you need to apply the new marks to the existing orders, you should run the sync process after adding the new marks. Go to STORES ⟶ Configuration ⟶ MAGEWORX ⟶ Order Management ⟶ Orders Grid and run the "Sync orders additional data" process.
Mass Order Actions¶
Magento 2 out of the box provides several actions for the sales-orders grid. Magento 2 Order Management extension significantly extends the number of these actions.
-
Complete action provides the ability to directly complete any order without any intermediate step.
-
Delete Completely action physically removes orders from the database.
-
Synchronize action synchronizes the orders manually.
Other actions are divided into 2 groups: the store owner can either notify or not the client of the changes in the order. These actions are as follows:
Do not notify
-
Capture to capture the payment;
-
Invoice to create an invoice for an order;
-
Invoice + Print to create an invoice and print the invoice pdf
-
Ship to initiate the shipping
-
Ship + Print to initiate the shipping and print packing slip with shipping label
-
Invoice + Capture to create an invoice and capture a payment
-
Invoice + Capture + Ship to create an invoice & a shipment and capture a payment
-
Invoice + Capture + Ship + Print to create an invoice & a shipment, capture a payment and print order documents
The Notify Customer group has some additional email-oriented actions:
-
Re-send Order Email
-
Re-send Invoice Email
-
Re-send Shipment Email
They allow resending the order, invoice and shipment emails accordingly.
Order Modification¶
The order information is gathered into several groups.
General Order Modifications¶
Click the Edit link near the order number to modify the date of the order. The store administrator can edit the order status here as well.
Account Information (Device & Area Detection)¶
Here, the store administrator can observe the extra fields: Device shows the client's device and the Area provides the information whether the order was created from frontend, backend or API (REST or SOAP). If you are using the third-party checkout, the Area field can show the incorrect API detection. To avoid this, edit the Checkout Path setting in the Orders Base configuration.
Account Information Modification¶
Click the Edit link near the Account Information to edit the personal information. Click the Select a Customer link to change the customer.
Editing Billing Address¶
Click the Edit link near the Billing Address to modify its details. Bear in mind that changing address information will not recalculate tax. Once you are ready, click the Submit button.
Editing Shipping Address¶
Click the Edit link near the Shipping Address to modify its details. Bear in mind that changing address information will not recalculate tax and shipping methods. Once you are ready, click the Submit button.
Editing Shipping & Handling Information¶
When editing a shipping information you can:
- change a shipping method
- set a custom shipping cost (excluding / including taxes)
- set a shipping discount
- select / change a tax rate
Editing Payment Methods¶
Currently the extension allows you to select the offline payment methods only. The online methods will be added soon along with the re-authorization functionality.
You can also set a custom payment method and specify a custom title for certain order only.
Editing Items¶
Click the Edit link near the Items Ordered to modify its details. You can change price, quantity, tax, and discounts.
Once the store owner performs the changes, the popup with the new payment information appears below the products grid.
Any product can be deleted with the possibility to increase the quantity of this product in the inventory or not.
If more products need to be added, the store owner can click the Add Products button.
In the grid, you can add any product and specify the ordered quantity. When you are ready, click the Add Selected Product(s) to Order button.
For the configurable products, the Configure button appears near the product name.
When clicked, the pop-up appears with the possibility to add any simple option and specify its' quantity.
Editing Comments¶
The extension allows you to add the order comments using the WYSIWYG and edit the existing comments:
The module also logs a staff's name, who made the changes and outputs it in the appropriate comment with the made changes.
Logger¶
The extension has the functionality to log all the order edit changes and display them as the order’s comments in the back-end.
Example of the logger in action:
REST API¶
Check more details about editing the orders via REST API here
Webhooks¶
The extension allows you to enable the webhooks to get the notifications about all order changes. For this you need to specify the URL and authentification data if required. The full order object will be sent to the specified URL with the data after editing. The example:
Body: Array
(
[entity_id] => 500
[state] => processing
[status] => processing
[coupon_code] =>
[shipping_description] => Free Shipping - Free
[is_virtual] => 0
[store_id] => 1
[customer_id] => 3
[base_discount_amount] => -0
[base_discount_canceled] =>
[base_discount_invoiced] => 0
[base_discount_refunded] =>
[base_grand_total] => 1800
[base_shipping_amount] => 0.0000
[base_shipping_canceled] =>
[base_shipping_invoiced] => 0
[base_shipping_refunded] =>
[base_shipping_tax_amount] => 0.0000
[base_shipping_tax_refunded] =>
[base_subtotal] => 1500
[base_subtotal_canceled] =>
[base_subtotal_invoiced] => 1500
[base_subtotal_refunded] =>
[base_tax_amount] => 300
[base_tax_canceled] =>
[base_tax_invoiced] => 300
[base_tax_refunded] =>
[base_to_global_rate] => 1.0000
[base_to_order_rate] => 1.0000
[base_total_canceled] =>
[base_total_invoiced] => 1803.5
[base_total_invoiced_cost] => 0
[base_total_offline_refunded] =>
[base_total_online_refunded] =>
[base_total_paid] => 1800
[base_total_qty_ordered] =>
[base_total_refunded] =>
[discount_amount] => -0
[discount_canceled] =>
[discount_invoiced] => 0
[discount_refunded] =>
[grand_total] => 1800
[shipping_amount] => 0.0000
[shipping_canceled] =>
[shipping_invoiced] => 0
[shipping_refunded] =>
[shipping_tax_amount] => 0.0000
[shipping_tax_refunded] =>
[store_to_base_rate] => 0.0000
[store_to_order_rate] => 0.0000
[subtotal] => 1500
[subtotal_canceled] =>
[subtotal_invoiced] => 1500
[subtotal_refunded] =>
[tax_amount] => 300
[tax_canceled] =>
[tax_invoiced] => 300
[tax_refunded] =>
[total_canceled] =>
[total_invoiced] => 1803.5
[total_offline_refunded] =>
[total_online_refunded] =>
[total_paid] => 1800
[total_qty_ordered] => 15
[total_refunded] =>
[can_ship_partially] =>
[can_ship_partially_item] =>
[customer_is_guest] => 0
[customer_note_notify] => 1
[billing_address_id] => 783
[customer_group_id] => 3
[edit_increment] =>
[email_sent] => 1
[send_email] => 1
[forced_shipment_with_invoice] =>
[payment_auth_expiration] =>
[quote_address_id] =>
[quote_id] => 680
[shipping_address_id] => 782
[adjustment_negative] =>
[adjustment_positive] =>
[base_adjustment_negative] =>
[base_adjustment_positive] =>
[base_shipping_discount_amount] => 0.0000
[base_subtotal_incl_tax] => 1800
[base_total_due] => 0.0000
[payment_authorization_amount] =>
[shipping_discount_amount] => 0.0000
[subtotal_incl_tax] => 1800
[total_due] => 0.0000
[weight] => 15
[customer_dob] =>
[increment_id] => 000000495
[applied_rule_ids] =>
[base_currency_code] => USD
[customer_email] => [email protected]
[customer_firstname] => John
[customer_lastname] => Doe
[customer_middlename] =>
[customer_prefix] =>
[customer_suffix] =>
[customer_taxvat] =>
[discount_description] =>
[ext_customer_id] =>
[ext_order_id] =>
[global_currency_code] => USD
[hold_before_state] =>
[hold_before_status] =>
[order_currency_code] => USD
[original_increment_id] =>
[relation_child_id] =>
[relation_child_real_id] =>
[relation_parent_id] =>
[relation_parent_real_id] =>
[remote_ip] => 12.34.56.78
[shipping_method] => freeshipping_freeshipping
[store_currency_code] => USD
[store_name] => Main Website
Main Website Store
Default Store View
[x_forwarded_for] =>
[customer_note] =>
[created_at] => 2021-09-14 12:44:58
[updated_at] => 2021-09-16 20:54:42
[total_item_count] => 1
[customer_gender] => 0
[discount_tax_compensation_amount] => 0
[base_discount_tax_compensation_amount] => 0
[shipping_discount_tax_compensation_amount] => 0.0000
[base_shipping_discount_tax_compensation_amnt] => 0.0000
[discount_tax_compensation_invoiced] => 0
[base_discount_tax_compensation_invoiced] => 0
[discount_tax_compensation_refunded] =>
[base_discount_tax_compensation_refunded] =>
[shipping_incl_tax] => 0.0000
[base_shipping_incl_tax] => 0.0000
[coupon_rule_name] =>
[base_customer_balance_amount] =>
[customer_balance_amount] =>
[base_customer_balance_invoiced] =>
[customer_balance_invoiced] =>
[base_customer_balance_refunded] =>
[customer_balance_refunded] =>
[bs_customer_bal_total_refunded] =>
[customer_bal_total_refunded] =>
[gift_cards] => []
[base_gift_cards_amount] => 0.0000
[gift_cards_amount] => 0.0000
[base_gift_cards_invoiced] =>
[gift_cards_invoiced] =>
[base_gift_cards_refunded] =>
[gift_cards_refunded] =>
[gift_message_id] =>
[gw_id] =>
[gw_allow_gift_receipt] =>
[gw_add_card] =>
[gw_base_price] => 0.0000
[gw_price] => 0.0000
[gw_items_base_price] => 0.0000
[gw_items_price] => 0.0000
[gw_card_base_price] => 0.0000
[gw_card_price] => 0.0000
[gw_base_tax_amount] =>
[gw_tax_amount] =>
[gw_items_base_tax_amount] =>
[gw_items_tax_amount] =>
[gw_card_base_tax_amount] =>
[gw_card_tax_amount] =>
[gw_base_price_incl_tax] =>
[gw_price_incl_tax] =>
[gw_items_base_price_incl_tax] =>
[gw_items_price_incl_tax] =>
[gw_card_base_price_incl_tax] =>
[gw_card_price_incl_tax] =>
[gw_base_price_invoiced] =>
[gw_price_invoiced] =>
[gw_items_base_price_invoiced] =>
[gw_items_price_invoiced] =>
[gw_card_base_price_invoiced] =>
[gw_card_price_invoiced] =>
[gw_base_tax_amount_invoiced] =>
[gw_tax_amount_invoiced] =>
[gw_items_base_tax_invoiced] =>
[gw_items_tax_invoiced] =>
[gw_card_base_tax_invoiced] =>
[gw_card_tax_invoiced] =>
[gw_base_price_refunded] =>
[gw_price_refunded] =>
[gw_items_base_price_refunded] =>
[gw_items_price_refunded] =>
[gw_card_base_price_refunded] =>
[gw_card_price_refunded] =>
[gw_base_tax_amount_refunded] =>
[gw_tax_amount_refunded] =>
[gw_items_base_tax_refunded] =>
[gw_items_tax_refunded] =>
[gw_card_base_tax_refunded] =>
[gw_card_tax_refunded] =>
[paypal_ipn_customer_notified] => 0
[reward_points_balance] =>
[base_reward_currency_amount] =>
[reward_currency_amount] =>
[base_rwrd_crrncy_amt_invoiced] =>
[rwrd_currency_amount_invoiced] =>
[base_rwrd_crrncy_amnt_refnded] =>
[rwrd_crrncy_amnt_refunded] =>
[reward_points_balance_refund] =>
[mageworx_donation_invoiced] =>
[base_mageworx_donation_invoiced] =>
[mageworx_donation_refunded] =>
[base_mageworx_donation_refunded] =>
[mageworx_donation_cancelled] =>
[base_mageworx_donation_cancelled] =>
[mageworx_donation_amount] => 0.0000
[base_mageworx_donation_amount] => 0.0000
[mageworx_donation_tax_amount] => 0.0000
[base_mageworx_donation_tax_amount] => 0.0000
[mageworx_donation_details] =>
[gift_aid] => 0
[uk_address_for_gift_aid] =>
[mageworx_pickup_location_id] =>
[tj_salestax_sync_date] =>
[mageworx_fee_amount] => 0.0000
[base_mageworx_fee_amount] => 0.0000
[mageworx_fee_tax_amount] => 0.0000
[base_mageworx_fee_tax_amount] => 0.0000
[mageworx_fee_details] =>
[mageworx_fee_invoiced] =>
[base_mageworx_fee_invoiced] =>
[mageworx_fee_refunded] =>
[base_mageworx_fee_refunded] =>
[mageworx_fee_cancelled] =>
[base_mageworx_fee_cancelled] =>
[mageworx_product_fee_amount] => 0.0000
[base_mageworx_product_fee_amount] => 0.0000
[mageworx_product_fee_tax_amount] => 0.0000
[base_mageworx_product_fee_tax_amount] => 0.0000
[mageworx_product_fee_details] =>
[mageworx_product_fee_invoiced] =>
[base_mageworx_product_fee_invoiced] =>
[mageworx_product_fee_refunded] =>
[base_mageworx_product_fee_refunded] =>
[mageworx_product_fee_cancelled] =>
[base_mageworx_product_fee_cancelled] =>
[mageworx_giftcards_description] =>
[mageworx_giftcards_amount] =>
[base_mageworx_giftcards_amount] =>
[mw_earn_points_data] => {"1":10}
[mw_rwrdpoints_amnt] =>
[base_mw_rwrdpoints_cur_amnt] =>
[mw_rwrdpoints_cur_amnt] =>
[base_mw_rwrdpoints_cur_amnt_invoice] =>
[mw_rwrdpoints_cur_amnt_invoice] =>
[base_mw_rwrdpoints_cur_amnt_refund] =>
[mw_rwrdpoints_cur_amnt_refund] =>
[mw_rwrdpoints_amnt_refund] =>
[extension_attributes] => Array
(
)
[shipping_tax_invoiced] => 0
[base_shipping_tax_invoiced] => 0
[items] => Array
(
[0] => Array
(
[item_id] => 866
[order_id] => 500
[parent_item_id] =>
[quote_item_id] => 1164
[store_id] => 1
[created_at] => 2021-09-14 12:45:00
[updated_at] => 2021-09-16 20:54:42
[product_id] => 2054
[product_type] => simple
[product_options] => Array
(
[info_buyRequest] => Array
(
[uenc] => aHR0cHM6Ly9tMjQwLjEwMDEwMDEwMTAuY29tL2dlYXIvYmFncy5odG1s
[product] => 2054
[qty] => 1
)
[giftcard_lifetime] =>
[giftcard_is_redeemable] => 0
[giftcard_email_template] =>
[giftcard_type] =>
)
[weight] => 1.0000
[is_virtual] => 0
[sku] => C
[name] => C
[description] =>
[applied_rule_ids] =>
[additional_data] =>
[is_qty_decimal] => 0
[no_discount] => 0
[qty_backordered] =>
[qty_canceled] => 0.0000
[qty_invoiced] => 15.0000
[qty_ordered] => 15.0000
[qty_refunded] => 0.0000
[qty_shipped] => 0.0000
[base_cost] =>
[price] => 100.0000
[base_price] => 100.0000
[original_price] => 3.0000
[base_original_price] => 3.0000
[tax_percent] => 20.0000
[tax_amount] => 300.0000
[base_tax_amount] => 300.0000
[tax_invoiced] => 300.0000
[base_tax_invoiced] => 300.0000
[discount_percent] => 0.0000
[discount_amount] => 0.0000
[base_discount_amount] => 0.0000
[discount_invoiced] => 0.0000
[base_discount_invoiced] => 0.0000
[amount_refunded] => 0.0000
[base_amount_refunded] => 0.0000
[row_total] => 1500.0000
[base_row_total] => 1500.0000
[row_invoiced] => 1500.0000
[base_row_invoiced] => 1500.0000
[row_weight] => 15.0000
[base_tax_before_discount] =>
[tax_before_discount] =>
[ext_order_item_id] =>
[locked_do_invoice] =>
[locked_do_ship] =>
[price_incl_tax] => 120.0000
[base_price_incl_tax] => 120.0000
[row_total_incl_tax] => 1800.0000
[base_row_total_incl_tax] => 1800.0000
[discount_tax_compensation_amount] => 0.0000
[base_discount_tax_compensation_amount] => 0.0000
[discount_tax_compensation_invoiced] => 0.0000
[base_discount_tax_compensation_invoiced] => 0.0000
[discount_tax_compensation_refunded] =>
[base_discount_tax_compensation_refunded] =>
[tax_canceled] =>
[discount_tax_compensation_canceled] =>
[tax_refunded] =>
[base_tax_refunded] =>
[discount_refunded] =>
[base_discount_refunded] =>
[event_id] =>
[weee_tax_applied] => []
[weee_tax_applied_amount] =>
[weee_tax_applied_row_amount] =>
[weee_tax_disposition] =>
[weee_tax_row_disposition] =>
[base_weee_tax_applied_amount] =>
[base_weee_tax_applied_row_amnt] =>
[base_weee_tax_disposition] =>
[base_weee_tax_row_disposition] =>
[giftregistry_item_id] =>
[gift_message_id] =>
[gift_message_available] =>
[gw_id] =>
[gw_base_price] =>
[gw_price] =>
[gw_base_tax_amount] =>
[gw_tax_amount] =>
[gw_base_price_invoiced] =>
[gw_price_invoiced] =>
[gw_base_tax_amount_invoiced] =>
[gw_tax_amount_invoiced] =>
[gw_base_price_refunded] =>
[gw_price_refunded] =>
[gw_base_tax_amount_refunded] =>
[gw_tax_amount_refunded] =>
[free_shipping] => 0
[qty_returned] => 0.0000
)
)
[addresses] => Array
(
[782] => Array
(
[entity_id] => 782
[parent_id] => 500
[customer_address_id] => 4
[quote_address_id] => 2116
[region_id] =>
[customer_id] =>
[fax] =>
[region] => California
[postcode] => 90210
[lastname] => Doe
[street] => Rodeo Dr.
[city] => Los Angeles
[email] => [email protected]
[telephone] => +1123123123
[country_id] => US
[firstname] => John
[address_type] => shipping
[prefix] =>
[middlename] =>
[suffix] =>
[company] => Company
[vat_id] =>
[vat_is_valid] =>
[vat_request_id] =>
[vat_request_date] =>
[vat_request_success] =>
[giftregistry_item_id] =>
[customer_level] => 0
)
[783] => Array
(
[entity_id] => 783
[parent_id] => 500
[customer_address_id] => 118
[quote_address_id] => 2117
[region_id] => 23
[customer_id] =>
[fax] =>
[region] => Illinois
[postcode] => 60089
[lastname] => Doe
[street] => Main str.
30 112
[city] => Chicago
[email] => [email protected]
[telephone] => +1234234234
[country_id] => US
[firstname] => Jane
[address_type] => billing
[prefix] =>
[middlename] =>
[suffix] =>
[company] => Company1
[vat_id] => 123123123123
[vat_is_valid] =>
[vat_request_id] =>
[vat_request_date] =>
[vat_request_success] =>
[giftregistry_item_id] =>
[customer_level] => 0
)
)
)
External Integrations¶
Salesigniter, the Magento 2 Booking extension, offers full integration with the Order Editor extensions for its Pro version and higher users.
Got Questions?¶
Need help with the extensions? Feel free submit a ticket from https://www.mageworx.com/support/
Mageworx offers outstanding services developing custom-tailored solutions for Magento platform to attain your eCommerce objectives. Our professional impassioned team provides profound and custom oriented development of your project in a short timeframe.