5. Purchase Order

Purchase order Workflow

There are 2 ways to create a new Purchase Order :

  • From scratch from the “Purchase order” menu, using the button “Create a new Purchase Order”
  • From the supply needs screen (see the previous section in this help)

At the very first stage, a Purchase Order is in status “Draft”, it means that it is NOT considered by Magento.

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.

Purchase order Details

General Tab

  • Status : You can manage the PO progress using every statuses before the Expected one, for all these statuses, the PO is not considered by the module. Once the status become “Expected”, the extension assumes that you will receive the products and update the quantity expected for the product. Once the PO is closed (no products are expected anymore) its status becomes “Complete”
  • Reference : the reference is created automatically, however you can manually edit it
  • Estimated time of arrival : this is the date expected for the reception, this field is required but you can update it later. (you can also assign custom dates at the product level).
  • Warehouse for receiving : this is the warehouse to use to update stock during receptions

Miscellaneous Tab

  • Currency : the currency for the current PO (initialized using the supplier currency)
  • Change rate : change rate between the PO currency and your base currency (used to update the product cost and convert currency)
  • Shipping cost / additional cost : used to calculate landing fees, they are then distributed at the product level to calculate the net cost for the products


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 procurement > purchase order product > default buying price)

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

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 every products matching to these conditions :

  • Belong to a purchase order with status “Expected”
  • Has a quantity received below the quantity ordered

Products Reception

When you receive the products in the warehouse, you must create the reception to update the inventory.

To create a new reception :

  • Go in menu “Purchase order”
  • Click on the purchase order (you can apply a filter by status = expected to restrict the list)
  • In the purchase order view, click on button “Receive” in the top right corner

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
  • 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