The instructions here contain steps to complete in NetSuite first, and then complete in MarginEdge. At the very end of the article is some troubleshooting help.
In NetSuite:
- Navigate to Setup > Company > Company Information and take note of your ACCOUNT ID. You will need it later.
- NetSuite Setup > Company > Enable Features > Suite Cloud > Manage Authentication Enable Token-Based Authentication
-
Set up a new integration under Setup > Integrations > Manage Integrations - > New
-
Set the name to "MarginEdge". Please make sure to tick the Token-Based Authentication option, uncheck the "TBA: AUTHORIZATION FLOW" and "AUTHORIZATION CODE GRANT" option, and check the "TBA: ISSUETOKEN ENDPOINT" option.
Note: At this point, once you hit "Save", there will be a "Consumer Key" and "Consumer Secret" generated for this integration under the Client Credentials section. Copy them somewhere safe, as you will need them to enable the integration inside MarginEdge. - Create a new role to access the newly created integration by going to Setup > Users/Roles > Manage Roles > New
The role should have the following permissions (table showing the settings is below images):
Permission
Level
Section
Bill Purchase Orders
View
Transactions
Bills
Full
Transactions
Enter Vendor Credits
Full
Transactions
Find Transactions Full
Transactions
Make Journal Entry
Full
Transactions
Pay Bills
Full
Transactions
Purchase Order
Full
Transactions
Accounts
View
Lists
Departments
View
Lists
Classes (also sometimes called Product Categories)
View
Lists
Customers
View
Lists
Documents and Files
Full
Lists
Employees
View
Lists
Guests
View
Lists
Locations
View
Lists
Resource
View
Lists
Subsidiaries
View
Lists
Vendors
View
Lists
Log in using Access Tokens
Full
Setup
SOAP Web Services
Full
Setup
The role should also have "ALL" ticked on under the Accessible Subsidiaries section and the "WEB SERVICES ONLY ROLE" ticked on under the Authentication section. - Assign your user (or the user you intend to use) the role you've created. You can do so under Lists > Employees > (Select the user) > edit user > Access > Roles.
- Create a new Access Token: Setup > Users/Roles > Access Tokens > New
When creating, make sure that you the token is assigned to the role you've created above.
Note: as in the step above, please make sure to take note of the Token ID and Token Secret when creating the token. You will need those. -
Navigate to Setup - > Company - > Locations to take note of the location number you will be connecting. Navigate to Setup - > Company - > Subsidiaries to take note of the subsidiary number you will be connecting.
Note: if you do not see internal ID's, you can temporarily enable them under Home –> Set Preferences –> General Tab –> Set Defaults –> Show Internal IDs.
In MarginEdge:
Once you have all of the information above, you can turn the integration on in MarginEdge by going to Setup > Integrations and choose NetSuite from the dropdown menu. You will see the following screen:
- Your NetSuite wsURL is in the URL you see when you are logged in to NetSuite. For example, when logged in to NetSuite, if the website you are on is https://my-awesome-restaurant.app.netsuite.com/, then your NetSuite wsURL is https://my-awesome-restaurant.suitetalk.api.netsuite.com
- Your NetSuite Account Name ID is the Account ID field in NetSuite you found earlier in Step 1 of the In NetSuite steps above.
- The Customer Key and Customer Secret fields are what you noted down in Step 4 above.
- Token ID and Token secret are fields you found in Step 6 above.
- Your location ID and subsidiary are from your Step 7 above.
If you want to send invoice images when you export from MarginEdge, you'll need this next set of options. If you don't, then just head straight to that Save button!
- NetSuite Attachment Folder Id: Within NetSuite, you'll need to go to Documents and Create a new folder. Be sure you have internal id turned on for your view, so you can see the id and enter it here.
- Click the box to "attach photos to items sent to NetSuite"
- If you want the images to come independently or merged as one, use the "Send photos as one combined PDF" box to make your selection.
For example, the screenshots below show what it looks like in NetSuite and what the settings are in MarginEdge:
After you have filled in all the fields, save the page. To allow us to complete the integration: If you're in onboarding then please email us at onboarding@marginedge.com. If you're not switching your POS (or are no longer in onboarding) then please email help@marginedge.com. We’ll confirm the categories and vendors are populating in MarginEdge and then you be ready to move forward.
TROUBLESHOOTING
If you see this expense.location error when you are trying to export your data:
You do not have permissions to set a value for element expense.location due to one of the following reasons: 1) The field is read-only; 2) An associated feature is disabled; 3) The field is available either when a record is created or updated, but not in both cases.
This will occur when someone tries to export an invoice to NetSuite and we don’t have permission to send over locations at the expense line level. This is due to a setting in your NetSuite account which translates to not having Locations enabled for your Expense lines on Vendor Bills.
There are two ways to solve this, one is adjust your NetSuite settings and the other is to adjust your MarginEdge settings.
[1] Adjusting in NetSuite: Step by step instructions are below, and here is an article from NetSuite to help too:FAQ: NetSuite: You Do Not Have Permissions to Set a Value for Element...
- In NetSuite, go to Customization > Forms > Transaction Forms
- Find your form of type “Bill” and click Edit (or Customize) on the left side.
- Go to the Screen Fields tab
- Go to the Expenses tab
- Scroll down until they see Locations and then click check the box for “Show”
- Save
[2] Adjusting in MarginEdge: Alternatively, we can send the location on the Bill object instead of on the Expense Lines (Bills contain Expense lines). To do this, go to Setup > Integrations and click on NetSuite "Edit Configuration".
Scroll down and check the box to send the location on the Bill object instead of sending it on the Expense lines. Click "Save".
If you see this line.location error when you are trying to export your data:
You do not have permissions to set a value for element line.location due to one of the following reasons: 1) The field is read-only; 2) An associated feature is disabled; 3) The field is available either when a record is created or updated, but not in both cases.
This will occur when someone tries to export a Daily Sales Journal to NetSuite and we don’t have permission to send over locations at the line level. This issue is because someone has a Journal template that does not allow us to add “Location” as a detail when we are creating lines on a journal.
Step by step instructions are below, and here is an article from NetSuite to help too: FAQ: NetSuite: You Do Not Have Permissions to Set a Value for Element...
-
In NetSuite, go to Customization > Forms > Transaction Forms
-
Find your form of type “Journal” and click Edit (or Customize) on the left side.
-
Go to the Screen Fields tab
-
Go to the Line tab
-
Scroll down until they see Locations and then click check the box for “Show”
-
Save
If you have any more trouble with this integration, email help@marginedge.com and our team will be happy to assist you.