How to connect

At the bottom of the settings page in the back office click ‘Connect with Xero’.

After clicking the ‘Connect Xero’ button you will be redirected to the Xero Connecting app page. You should be logged in at https://go.xero.com/Dashboard/ and set up his organization already:

Status Flow

Triggers

In this case a request will be sent to Xero when the DF Order gets one of the processing statuses.

By default they are:

– Manufacturing status: Placed

NOTE: A set of statuses can be configured.

Records mapping

By default we create in Xero: Contact, Invoice.

Default fields

Contact

By default we sent – Name.

  1. Name – DF Order company name

  2. (contact_name is derived from the DF Order address or from the first and last names, depending on whether the billing or delivery addresses exists)

  3. FirstName – DF Order first name

  4. LastName – DF Order last name

  5. EmailAddress – DF Order email

  6. ContactPersons – array with next fields: DF Order first name, DF Order last name, DF Order email

The Contact and ContactPersons name and mail may be different, for example, if the order data has been changed and a request has been sent to Xero to update the data there. In this case, the changed user data in the order will go to ContactPersons.

NOTE: A set of fields can be configured.

Invoice

By default we sent – Type, Contact, SentToContact, LineItems, Reference, Total

1. Type – Xero internal invoice type

  • By default we sent “ACCREC”

2. Contact – Xero Contact ID which was created in a previous step

3. SentToContact – Xero internal field

  • By default we sent “true”

4. LineItems – DF Order purchases (description, quantity, rate, discount)

4.1. description – string with next data

Order #<df_order_id>, Model <df_model_title>, Material <df_material_title>: <df_material_description>, Notes: <df_order_notes>

4.2. quantity – DF Purchase amount

example: “10”

4.3. rate – DF Purchase unit price

example “1000.01”

4.4.discount – DF Order full discount

example: “85”

formula: (1 - (1 - purchase.discount_rate) * (1 - order.discount_rate)) * 100

5. Reference DF Order ID

6. Total – DF Order full price including delivery price

NOTE: A set of fields can be configured

We sent the DF Order startup cost and delivery price to Xero as one of the line items.

Create or Update logic

After first creating Invoice we store InvoiceID in DF, which is used to update already existing entities in Xero.

The Name field is used to update the Contact, so we don’t store ContactID.

We send an entity update request to Xero every time we change an order in DF, as long as its status matches the trigger conditions (see Status Flow)

Updating occurs with the same set of fields that are relevant for each entity (Contact, Invoice)

After successfully creating entities in Xero, inside DF it will be displayed like this:

Webhooks

We provide a webhook to update order data (https://digifabster.com/webhooks/xero_invoice_webhook/)

Logic: when an invoice in Xero gets PAID status, the webhook allows you to set the order status to Free for Manufacturing in DF.

Did this answer your question?