Evolution ERP Documentation

Shopify — Orders

Turn Shopify orders into Evolution projects and invoices, and send each dispatch back to Shopify as a shipment.

When a customer places an order in Shopify, it flows into Evolution as a project. Depending on your settings, Evolution can also raise the invoice and record the payment automatically. As you pick and dispatch the project, fulfilment status is pushed back to Shopify so the shopper sees their order progress.

The order lifecycle

  1. A customer places an order in Shopify.
  2. Shopify notifies Evolution and the order is stored as a pending order.
  3. Evolution immediately tries to process it: it matches the customer to an account, creates a project, and (if enabled) raises the invoice and payment.
  4. If everything resolves, the project is created and the order is marked processed.
  5. If the customer can't be matched (or something needs attention), the order stays in the Unprocessed Orders list on the plugin page for you to handle.
  6. You pick and dispatch the project in Evolution.
  7. Each dispatch you commit becomes a shipment on the Shopify order, with its tracking and, later, its delivery.

Order Processing settings

These settings on the plugin page tell Evolution how to build the project for an incoming order. Set them before you go live.

SettingWhat it does
Project Category for Incoming OrdersCategory used for the created project
Project Estimator for Incoming OrdersStaff member set as estimator
Project Manager for Incoming OrdersStaff member set as project manager
Branch for Incoming OrdersBranch the project is created against
Status for Incoming OrdersActive or On-hold
Inventory Category for Incoming Orders Items not in Evolution ERP Category used to auto-create any ordered item not found in Evolution
Order Metafields to Project Notes Copies chosen order metafields onto the project as notes (see below)

Each setting falls back to a sensible default if left unset, but configuring them keeps orders landing where you expect.

The Order Processing settings on the plugin page: project category, estimator, project manager, branch, status and the fallback inventory category for unmatched items.
The Order Processing settings on the plugin page: project category, estimator, project manager, branch, status and the fallback inventory category for unmatched items.

Order metafields as project notes

If your store collects extra details on an order — delivery instructions, a gate code, a site contact — and stores them in order metafields, Evolution can copy them onto the project as notes, so the team sees them without opening Shopify.

Setting up a mapping
  1. In the Shopify plugin settings, find Order Metafields to Project Notes under Order Processing.
  2. Click Add Mapping.
  3. Choose the Shopify Order Metafield. The list shows every order metafield defined in your store.
  4. Choose the Note Category the value should be filed under: Accounts, Delivery, General, Manufacturing or Service.

Each change saves straight away. Add as many mappings as you need; the same metafield can be mapped to more than one category. Click the bin icon to remove a mapping.

What happens when an order comes in
  • When the project is created from the order, each mapped metafield becomes a note on the project, in the chosen category, headed with the metafield's name.
  • Metafields that are empty on the order are skipped, so no blank notes are added.
  • The note is recorded against the project's estimator (the Project Estimator for Incoming Orders setting).
  • This applies to orders that arrive after the mapping is set up. Existing projects are not updated.
Only metafields that have a definition in Shopify appear in the list. To add one, go to Settings > Custom data > Orders in your Shopify admin. If a mapped metafield's definition is later deleted in Shopify, the mapping stays and is marked not found in Shopify.

Invoicing, Payment & Shipping settings

Invoicing
  • Create Invoice on Project Creation — raise an invoice automatically.
  • Invoice Type — the quote/invoice type to use.
  • Invoice Account Type — the account the invoice posts to (if left as none, each item's own income account is used).
  • Create Payment Record — keep payments in step between Shopify and Evolution: money paid in Shopify is recorded on the invoice, and money received in Evolution is sent back to the Shopify order. See Payments in both directions.
Payment
  • Default Payment Type — Cash, Cheque, Credit Card, Money Order, Direct Deposit or Direct Debit.
  • Default Payment To — the account the payment is banked to.
Shipping
  • Create Shipping Line Item on Project — add the Shopify shipping charge as a line on the project.
  • Shipping Inventory Item — the inventory item used for that shipping line.
The invoice is only committed automatically when every line has a valid account. If an item can't be accounted for, the invoice is created but left uncommitted with a note, so nothing posts incorrectly. Items auto-created from an order now take their accounts from their category (see How order lines map to items), so this should be rare — when it does happen, the cause is almost always a category with no GL accounts set.

Payments in both directions

Not every order is paid at checkout. A customer may pay by bank deposit, an account customer may pay on terms, or a deposit may be taken now and the rest later. With Create Payment Record on, Evolution keeps the amount paid the same on both sides, whichever side the money arrives on. It compares how much has been paid, not the payment method.

Paid in Shopify
  • When an order is paid at checkout, or marked paid or part paid in Shopify later, the difference is recorded as a payment on the project’s invoice. It uses your Default Payment Type and Default Payment To account, and is sent to Xero like any other payment.
  • When the order is paid in full, the invoice balance is settled, so a few cents of rounding between the two totals doesn’t leave the invoice open. A bigger difference, such as freight added in Evolution, stays on the invoice.
  • If the payment arrives before the project or invoice has been created, it is recorded once they exist.
Paid in Evolution
  • Payments entered on the invoice, payments brought in from Xero (automatically or with Sync from Xero) and credit notes applied to the invoice are all sent to the Shopify order.
  • When the invoice is fully paid, the order is marked Paid in Shopify.
  • A paid order never closes the project. Close it the usual way when your own close-out steps are done.
  • Part payments are only accepted by Shopify from Shopify Plus stores. On a Plus store each part payment is added to the order as a manual payment named Evolution – <payment type>. On other plans a note is added to the project and the order is marked paid once the invoice is fully paid.
  • Payments made on the invoice screen and credit notes applied there are sent straight away. Payments imported by the scheduled Xero sync are sent within about 15 minutes.
Refunds and cancellations need a person

Evolution never takes money off either side by itself. If an order is refunded or cancelled in Shopify, no payment is added, reversed or sent. Instead the project is flagged for invoicing review (Shopify Payment Check) with a note saying what Shopify shows and what Evolution has recorded. Adjust the invoice or the Shopify order yourself.

If Shopify can’t be updated (for example, the store is offline or the connection has expired), the project notes the problem and Evolution keeps trying. After repeated failures the project is flagged for review.

Every payment recorded or sent is written to the project’s history, so you can see where each amount came from. Payments made before this was switched on are not changed.

How the customer is matched

Evolution matches the Shopify customer to an account using the customer mapping strategy (Shopify Customer ID → email → name → phone numbers → create a new account). The strategy is described in full on the Customers page. The order records which method matched, shown as Customer Mapping Used on the order information screen.

Unprocessed Orders & manual override

Orders that couldn't be processed automatically appear in the Unprocessed Orders table on the plugin page, showing the order date, number, Shopify ID, confirmation number, customer, email and phone, with a link to view the order in Shopify.

The Unprocessed Orders table: order date, number, Shopify ID, confirmation number, customer, email and phone, with the Override Evo Customer search and Create Project action per row.
The Unprocessed Orders table: order date, number, Shopify ID, confirmation number, customer, email and phone, with the Override Evo Customer search and Create Project action per row.

To process one manually:

  1. Use the Override Evo Customer search on the row to pick the correct Evolution account.
  2. Choose Create Project.

The project (and, if enabled, invoice and payment) is then created against the account you chose, and the mapping method is recorded as Override.

How order lines map to items

Each line on the Shopify order is matched to an Evolution inventory item by, in order:

  1. the Shopify variant / product it was published from,
  2. the item SKU, then
  3. the item code.

If a line still can't be matched, a new inventory item is created under the Inventory Category for Incoming Orders Items not in Evolution ERP so the order can still be fulfilled. Shopify's shipping charge is added as its own line when the shipping setting is enabled.

What an auto-created item looks like

An item created this way is not a bare placeholder. It inherits the same defaults from that category as an item added by hand — the Income/Sales, Purchase/Expense and Inventory Asset accounts, the sell and buy tax codes, the stocked flag, sub-category, costing method, on-cost and on-cost type, minimum markup and maximum discount — and it brings across Shopify's cost price for that variant where the store holds one. That is what lets the resulting invoice post and commit on its own.

Set that category up properly. Because auto-created items inherit from it, the Inventory Category for Incoming Orders Items not in Evolution ERP should have its three GL accounts and its tax codes filled in before orders start arriving. Anything it is missing, the items created under it will be missing too.

The item is checked as it is created. If everything needed is there it is created clean and can be used immediately. If something is missing the item is still created — an order is never refused because a product record was incomplete — but it is flagged for review, and its Item Notes list exactly what could not be filled in. Fix those and clear the review flag. The Inventory Import Validation report lists everything still flagged, and the item's history records whether it passed or what it failed on.

GST on order lines

The tax code on each invoice line is resolved in a defined order, and whichever step supplied it is recorded against the invoice — so a missing tax code shows up instead of quietly costing you the GST:

  1. an order Shopify flagged as tax free stays tax free;
  2. a company not registered for GST is never charged tax — and if Shopify charged some anyway, that discrepancy is recorded against the invoice;
  3. otherwise the item's own sell tax code;
  4. then a tax code matching the rate Shopify actually charged;
  5. then your company's default sell tax code.

Whether your company charges GST at all comes from Company Setup. Where your store quotes GST-inclusive prices, the price stored on an auto-created item has the GST divided back out, because Evolution holds sell prices excluding tax.

Fulfilment back to Shopify

Each dispatch you commit in Evolution becomes one shipment (a fulfilment) on the Shopify order. It carries exactly the items and quantities on that dispatch, plus its tracking. If an order goes out in three dispatches, the customer sees three shipments, each with its own tracking number and delivery date.

In EvolutionWhat happens in Shopify
Dispatch saved as a draft or Delivery PendingNothing yet. Shipping orders only change when the dispatch is committed.
Dispatch committedA shipment is created with the dispatch's items, quantities and tracking (con note, carrier and tracking link). Shopify emails the customer.
Con note added or changed after commitThe tracking on that dispatch's shipment is updated, and the customer is emailed.
Goods in transit (Shipping hub stage, or the con note's ship date has arrived)The shipment shows In transit.
Proof of delivery: the dispatch is signed, or marked delivered in the Shipping hubThe shipment shows Delivered, dated when it was delivered.
Dispatch un-committedIts shipment is cancelled, so Shopify can fulfil those items again.

Pick-up orders

For a pick-up order, saving a dispatch (even as a draft) marks its items Ready for Pickup in Shopify, and the customer is told they can collect. If the dispatch covers only some of the order, Shopify splits the order first, so only those items show as ready. Committing the dispatch records the items as picked up. Shopify has no "not ready" step, so deleting a draft after its items were marked ready leaves them marked ready in Shopify.

The order's status in Evolution

  • Shipping orders show Shipped once a dispatch has been sent to Shopify, and Delivered once every item has proof of delivery.
  • Pick-up orders show Ready for Collection while a dispatch's items are marked ready, and Collected once every item is on a committed dispatch.

Good to know

  • Only the order's own lines are sent. Freight, labour and anything else added to the project in Evolution stays in Evolution.
  • Shopify counts whole units, so a part quantity (for example 2.5) is sent as the whole units (2).
  • If an item was already fulfilled in Shopify by hand, there is nothing left to send. The dispatch's history says so and the dispatch is left alone.
  • If Shopify refuses a shipment, the reason is written to the dispatch's history and it is tried again in about 10 minutes, or as soon as you change the dispatch.
  • Commits made in the customer portal and changes made in the Shipping hub reach Shopify within 15 minutes, through the Shopify scheduled sync.
  • Every shipment, tracking update, delivery and cancellation is logged on the dispatch, with the Shopify order number.
Orders imported before this change keep the old behaviour: each order line was split into its own fulfilment when the order arrived, and lines were marked out for delivery, in transit and delivered one by one. Their Order Information screen still shows the line-by-line workflow table.

Payment status is reflected too: an order paid at checkout shows as Prepaid/Paid. Payments themselves are covered in Payments in both directions.

The  Order Information summary: Progress and status pushed back to shopify.
The Order Information summary: Progress and status pushed back to shopify.

The Order Information screen

Each project created from a Shopify order has an Order Information view. It is read-only and shows the order number, confirmation number, status, the customer mapping used, links to the order in Shopify, payment information (subtotal, discounts, total due, amount paid, balance), the ordered items, and shipping details. The Shipments table lists each Shopify shipment with the dispatch it was sent for (linked), its items, tracking, Shopify status, and the dates it was fulfilled and delivered. A shipment made directly in Shopify shows with no dispatch. A reference table for the order pipeline is also included. Administrators can open the raw order data for troubleshooting.

The read-only Order Information screen: order and confirmation numbers, status, customer mapping used, payment breakdown, ordered items and shipping details.
The read-only Order Information screen: order and confirmation numbers, status, customer mapping used, payment breakdown, ordered items and shipping details.