Purchase Orders

Purchase Orders

5. Purchase Orders

Purchase order Workflow

There are 2 dfferent ways to create a new Purchase Order :

At the beginning, a Purchase Order is created with status “Draft”, meaning that it’s NOT considered yet by ERP.

You can then edit the PO details, product details (quantity, prices) and add new products.

Once the Purchase Order is “ready” for you, you can notify your supplier using the “Notify” button : it sends an email to the supplier with the PDF details.

You can use the different statuses to manage the communication between you and the supplier and check the progress, but there is one very important status to consider : “Expected” : this is the ONLY status for which the extension will consider your purchase order, and update the quantity expected for the products. If you do NOT switch to this status, Supply needs are not updated and you may re-order the same products several times

You can track products to be received from the “Products in transit” menu.

When you receive the goods, you must create a reception for the Purchase Order : go within the PO and click on the “Receive” button : you can then enter the quantities received (using a barcode scanner or simply filling the quantities). Then, it will increase the product stock level according to the quantities enters and update received quantity for the PO.

Available actions

Supplier notification

You can notify the supplier using the “Notify” button : it sends an email to the supplier email address.

To modify the template for the email sent :

  • Go in Marketing > Communications > Email template, and create a new template loading the default template “Purchase Order” and save this template
  • Configure this new template in stores > configuration > boostmyshop > procurement > Purchase Order > Email template for supplier notification

Update product costs

This action will manually update the cost of all products already received in the purchase order, with the new cost being the average value between the old value and the one of the current purchase order.


The value will be stored in the product cost attribute, this action will not update the cost at product/supplier association level.

Available tabs


Supplier associated to the PO
PO status. You can manage the PO progress using every statuses before the “Expected” one, as they will not be considered by the module. Only products associated to a PO with an “Expected” status will be considered as products “to receive”. Once the PO is closed (no products are expected anymore) its status becomes “Complete”
PO type. Use “Purchase order” there, others types are assigned automatically
Backend user managing the PO. Automatically set to the user creating the PO, can then be changed manually
PO reference. Automatically filled with “PO - CURRENT_DATE - INCREMENT_ID” when POs are created, can then be changed manually
Supplier reference
PO reference for your supplier. Will be displayed in the PO PDF headers
Estimated time of arrival
Date estimated for the PO reception. Will be used to calculate the availability message of all PO products if they are out of stock. A date can also be defined at the product level from the “Products” tab if the associated option is enabled from Stores > Configuration > BoostMyShop > Procurement > Purchase Order Product
Store associated to the PO. Usefull if you have defined messages at store view level in Stores > Configuration > BoostMyShop > Procurement > PDF to get the correct message displayed on the PO PDF
Website associated to the PO, not used anymore
Warehouse for receiving
Warehouse where stock levels will be increased when the PO is received
Private Comments
Private comments about the PO, only visible from the PO edition screen
Public Comments
Public comments about the PO, visible by the supplier in the PO PDF



Manual option that can be used to add a verification step on POs, displayed in top figures in purchase orders edition screen. Might be set to “Yes” once all PO data have been checked and validated by the POs manager
Currency assigned to the PO. Initialized with the currency of the supplier associated to the PO
Change rate
Change rate between the PO currency and your base currency (used when updating the product cost, converting its currency)
Shipping cost & Additional cost
Used to calculate landing fees, they are then distributed at the product level to calculate their net cost
Tax rate %
Default tax rate applied to PO products when they're added. Initialized with the tax rate setting of the supplier associated to the PO.
Global discount %
Discount applied to PO, on subtotal before taxes
2 different tax rates can be configured in a purchase order : 
  1. Global tax rate : This is the one configured in the Miscellaneous tab, it applies to shipping cost and additional cost.
  2. Product tax rate : This is the one configured in the "Products" tab,  it applies only to the product it's configured on.


This section will be used to generate a shipping label for the PO, that will then be available for download in the email sent to the supplier when the “Notify” action is used.

Your supplier will then be able to print it and use it to send you the purchase order products.

Add shipping label
Button allowing you to manually upload a shipping label file if it is already generated
Shipping method
Shipping method associated to the shipping label.
Tracking #
Tracking number associated to the shipping label


You can add products in the PO using the “Add products” tab : check the products you want to add, fill the quantity (or keep empty for 1) and click on the save button.

When you add a product to the PO, the supplier SKU and the buying price are automatically filled from the product / supplier association tab (depending of the setting used in Stores > Configuration > BoostMyShop > Procurement > Purchase order product > Default buying price)


When the supplier send you the PO products, you will have to create a new PO reception to increase their stock in the receiving warehouse.

To create a new reception, here it the process to follow :

  • Go in menu Suppliers management > Purchase order
  • Click on the PO you want to receive. To find the PO, you can for example filter the “Status” column on “Expected” to restrict the list to POs not yet received.
  • Once in the PO edition screen, click on Receive in the top right corner to display the reception screen.

To fill the received products, you have 2 options :

  • Use a barcode scanner to scan the products (it will increase by one the product at each scan). Note : to use the barcode scanner feature, you must configure the barcode attribute in stores > configuration > procurement > general).
  • Manually fill the quantity received for each products (you can also use the “Fill all quantities” button to fill the text boxes with the quantity expected, you can then update quantities manually if required)


Note : you can fill quantities received greater than the quantity ordered, or lower (partial reception)

Once the quantities are filled, click on the “Save” button to save the reception.

Saving a reception has several impacts :

  • Creates a new reception for the PO (receptions history is visible in the “Receptions” tab for a PO)
  • Creates the product/supplier association if the received products are not already associated with the PO’s supplier
  • Updates the PO delivery progress (can be higher than 100 if you received more than ordered)
  • Updates products inventory (if you use Embedded ERP, it will also create stock movements)
  • Updates supply needs (most of the time, it removes supply needs with status “Waiting for reception”)
  • Updates product cost in the product view (if option “Stores > Configuration > Procurement > Purchase Order Product > Update Product Cost” is enabled)

If the delivery progress reaches 100, the Purchase Order status is automatically toggled to “Complete”.

In case of partial reception for which the missing products will NOT be delivered, you must change the PO status to “Complete” manually : this is important because if you miss this part, the extension will still expect the products and will not warn you about new supply needs.

Buying price / Cost Management

The extension handles 2 different costs for a product in a purchase order:

  • Buying price : this is the gross buying price which is filled into the “products” tab in a purchase order.
  • Buying price with landing costs : this cost is calculated using the product buying price plus the landing costs. Landing costs are calculated at the PO level, using the shipping cost and the additional cost fields available in the “Miscellaneous tab”. To distribute these costs at the product level, you can choose between 2 distribution modes, by quantity or by price (the mode can be configured in Stores > Configuration > Procurement > Purchase order product > Landing cost distribution. Using the right method, the extension is able to calculate the total cost for a product (buying price + landing costs).

There are also 2 other places where the extension stores cost information :

  • In the product / supplier association : available in menu “Product / Supplier association”, the buying price fields contains the gross cost, without the landing fees. This buying price is update with the PO information when a purchase order status goes to complete.
  • Cost attribute in the product view   :   depending of the configuration, this field can contain :
    • The gross buying price (useful if you have only ONE supplier per product). In this case, apply the following settings :
      • Stores > Configuration > Procurement > Purchase order product > Default buying price : Use product cost attribute
      • Stores > Configuration > Procurement > Purchase order product > Update product cost : No
    • The average cost  :   the cost attribute will contain the average of the buying prices + landing costs from the purchase orders that lead to the current stock level. in this case, apply the following settings :
      • Stores > Configuration > Procurement > Purchase order product > Default buying price : Leave empty OR Use product / supplier association
      • Stores > Configuration > Procurement > Purchase order product > Update product cost : yes

    • Related Articles

    • Overview

      1. Overview Procurement for Magento2 provides every tools to manage suppliers and purchase orders : Manage suppliers Manage supplier products, with buying prices, supplier sku… (supports multiple supplier for one single sku) Supply needs support : ...
    • Base Configuration

      3. Initialization - Base configuration Here is a quick guide on things to check/understand once ERP has been installed, and base configuration to do: 1. Stock initialization & correction Inventory Management command lines Stock discrepancies 2. ...
    • Products in transit

      7. Products in transit You can track every products expected from suppliers in menu “Products in transit”. From this screen, you have every details about expected delivery(ies) per product and a quick link to the purchase orders. This list summarizes ...
    • Organizer

      8. Organizer The Organizer is a task / note manager. The main screen is available at Embedded ERP > Organizer From this screen, you can add a new “organizer” using the “Add New” button, and you can also edit an existing one by clicking on the “pen” ...
    • Supplier Payments

      6. Supplier Payments Supplier Invoices The grid is available at Embedded ERP - Suppliers Management - Supplier Invoices and list all supplier invoices. Create an invoice When you are on the “Supplier Invoices” grid, click on the “Add New Invoice” ...