Is there any way to access the advanced pricing data in QuickBooks (R14)? I have got products with quantity discounts, and I need to pull the data into Excel, either through the SQK (preferred) or at bare minimum an (excel) report. Seems that data access wasn't considered by Intuit for this add-on, unless it's undocumented...
Nope, it is not accessible. No surprise, either.
Related
I built an in-house app for selling tickets and checking-in students to our High School dances. At the moment the app can scan a QR code with the student's information and add their name to either a "Sales" list or "Check In" list. Then the app can export these lists to a CSV file and we compile all the data.
App works perfectly as expected. NOW I want to be able to sync data between multiple devices so that every device will see an up to date Sales and Check in list. The check in list is most important because then our faculty chaperones can all see who has arrived to the dance in real time. I figured I would need to build a server to hold all the data as opposed to on the individual devices like I am doing now (CoreData). Can anyone please give me guidance or advice as to where to go from here? I am using Swift and developing for iOS 10.
I would just answer the general approach to tackle this problem since the implementations would largely be depending on many factors (what database technology is available, the platform of the server, etc.)
You are absolutely right, you need a server to hold the data. Technically speaking, it is a database that holding the data. Thus, you need a database running on your server (there are tons of selections here: Maria DB, SQL Server, Mongo DB, etc.).
Next, you need to build a web service on top of the database so that the iOS app can interact with the database (add/delete/update/read rows). Web service is a very common layer in full-stack application since you normally don't access the database directly.
Finally, you need to guard your web service with some sort of authentication. I.e. you don't want any random person out there to be able to access your web service without permission. There are many implementations out there to secure your web service and you should be able to google that easily.
Firebase might be the easiest solution. Its pretty simple to setup, and its pretty simple to set up data persistence when you go off line. I'm big on trying to stick with the built in Apple services, but Firebase is hard to beat for simple apps.
Take a look at CloudKit, or perhaps Firebase or Azure, as services that will provide a back end server for you, and give you a tested SDK to build against.
I need to look at the "audit" log for quickbooks using the SDK. I am basically looking to sync quickbooks transactions to a 3rd party platform (for reference purposes)
I cant find a reference to the audit log in the OSR, but I do see "TransactionsQuery". What is not clear to me is if this will be "all" transactions, or if you need to specify a specific customer?
Any ideas?
As William indicated in his answer, the audit log is accessible via a GeneralDetailReport.
As far as actual transactions goes, TransactionQuery will get you all transactions. You do not need to specify a customer.
However, it will only get you summary details of all transactions (e.g. no line items on the invoices, etc.) so if you need detailed information for each transaction, it won't work for you.
If you need details for each transaction, you have to do individual queries for each transaction type (e.g. InvoiceQuery, ReceivePaymentQuery, BillQuery, etc. etc. etc.) so that you get back the details/lines for each.
Look at the GeneralDetailReport, with the GeneralDetailReportType set to AuditTrail.
I have a drilled down report as shown in the below image:
When I try to download the report normally, I get only the 5 items shown in a category. I want to be able to download all the subcategories within all the categories, along with the category names and not just the 5 subcategories in a category.
How can I achieve this? Any ideas/suggestions?
If you have access to data warehouse, you can obtain this information easily. Most contracts include it by default; if you have access to the request interface, you have it.
Click on Adobe Marketing Cloud in the upper left | Reports & Analytics | Data Warehouse
Select the date range you'd like to request data from
In the breakdowns section, select series name following by video name
In the metrics section, select the appropriate metric you'd like to include
Ensure the other settings in the request are as desired, and click 'request report'.
If you don't have access to data warehouse, you could try your luck at a data extract report:
Open the report you'd like to download, and under more options there should be 'extract data'
In the data extract wizard, click each 'top 1-50' and set them to 'all' or 'top 1-50000'
Ensure the other settings in the request are as desired, and click 'request report'.
Data extracts are subject to processing limitations, meaning if there's too much data to process, the request will fail. Data warehouse on the other hand is not subject to this limitation, it just takes a really long time for the report to arrive.
Yet another option would be to write your own script to pull the data using Adobe's Analytics Reporting API
Also a note about Data Warehouse.. it's "free" for anybody on a newer Adobe Digital Marketing contract. I say "free" because it's now included in the "package" with most all of the other adobe digital marking tools, instead of being charged separately.
If you have an older contract that hasn't been renewed yet, you may not actually have it, since part of it now being included also involves them jacking up the prices! Contact your rep to find out. But if you do have access to Data Warehouse, that's certainly the easier route.
I have now played with the QBO and QBD APIs and feel I have a fair understanding of how it thinks and how to interact with it. So now it is time to design the actual integration solution.
Inside my application you can create new customers, quote services, perform services, and soon, pass invoices to QuickBooks, sounds easy.
But what if the customer is not in QB yet? No problem - for each invoice I will look up the customer (need the id anyway) and if it doesn’t exist, add it. But if I have to look up the customer for each invoice it seems like it might be slow. I will likely have 30,000 customers and have 500-3000 invoices per day.
So my question is this; what are others doing?
a) Are you storing the QB id for each customer in your data?
b) How do you detect address changes (changed in your app and changed in QB)?
c) Is the batch submission interface so much faster I should use that?
Thanks for your help!
We often times do store the QB id in our database for use. If we post an invoice into QB, we'll then store the QB id for future use if we need to modify it.
As far as detecting changes on the customer record and other info, there's a couple ways to handle the conflict resolution. One is to keep a timestamp on your side as to when changes are made. You can then compare this with the timestamp of the last change on the QB record and then make your decision as to which one gets updated.
FreddyMac,
To detect changes on the Intuit side you can construct a query with a CDCasOf Filter, which will return only the data that has changed since a date you provide. (ChangeDataCapture as of)
https://ipp.developer.intuit.com/0010_Intuit_Partner_Platform/0050_Data_Services/0500_QuickBooks_Windows/0100_Calling_Data_Services/0015_Retrieving_Objects
You need to keep track of data changes on your side.
The batch submission is not faster, its just easier for you to write the code.
The IPP SDK can queue the API calls for your and aggregate the responses.
regards,
Jarred
I have a strage requirement from a client, he needs to display a ramdom selection (100 - 200 items from mixed categories) of products for sale on & shipped by Amazon but ordered by price. The idea is to allow people find gift ideas based a user input price point.
I have been looking through the API docs but cannot see an obvious way to find search by price, I am thinking of writing a script to "copy" large parts of the amazon product catalogue into a local database & have it update every few weeks, then use this for user searches, but this does not feel right / their must be a better way.
Has anyone any experience with this type of problem? Thanks!
You would want to use the Amazon Product Advertising API. Using this API you would want to perform a SearchIndex-ItemSearch query. Possible parameters to ItemSearch are available on the API Docs here
You can see in the docs that you cannot query by MinimumPrice and MaximumPrice on SearchIndex: All. However, if you search specific indexes, it allows you to do a price related search.
I would guess that you can agree with your client which categories should the items be from. Then you can just query them one by one.
Amazon's database changes very often. Hence, caching data for a week without updating may not be desirable.