programmatically access car dealers inventory - database

Not sure whether this question makes sense on SO, but I'm working on a website that would provide a list of new cars of interest to the user, a bit like autotrader.com. Do you guys know how this type of websites operate? On autotrader.com I was thinking that maybe the dealers have to upload and update their inventory themselves. Does anyone know whether it is the case? Also I felt that when you go to a dealer in the US, they can search for a specific car through all the dealerships.
Bottom line: The inventory seems to be accessible by third parties - who knows more?

AutoTrader gets its data by
Dealer manually adding the vehicles
Dealers third party services pushing the data to AutoTrader nightly (FTP or Emailed) from services like.
website providers / inventory management tools such as AutoJini.com, VinSolutions (now owned by ATC)
Lot management companies such as Dealer Specialties, KBB CDMData (these companies come to the dealers lot and take the pictures and then send the data out to website providers, classifieds sites etc.
feed processing company like Digital Motor Works.
or AutoTrader is pulling the data from the Dealer Management System like (Reynolds & Reynolds, ADP, Arkona, etc) pull method is mostly used for new cars.
Inventory is normally not accessible by other third parties... however one can always get the data for most dealers in the US via API from Oddle or Vast and Edmunds.
I should also add that you can get a custom crawl of all the data on ATC & cars.com from 80legs.com. This kind of service is used by companies that do pricing analytic for dealers.
You can also try contacting the website providers or the lot management companies and get the data feed from them.

There are an ISO 3779 (Europe) and FMVSS 115 (US & Canada) standards for all the cars on the market.
Each and everycar is identified by a VIN (Vehicule Identification Number).
I think that is what you are looking for.
You can get the official well-updated VIN data here
If you want to find it another way, google as usual will be your friend.

You can pull dealers inventory (active and historical) using Marketcheck Cars API
You can use Marketcheck Dealer ID or the source website domain for the dealer you are looking to pull the inventory.
Pull active inventory by dealer ID -
http://api.marketcheck.com/v1/search?api_key={your_api_key}&dealer_id={dealer_id}
Pull active inventory by dealer source website -
http://api.marketcheck.com/v1/search?api_key={your_api_key}&source=www.sanleandrohonda.com
More cases documented at the official API documentation
You can sign up at the developer portal hosted here and obtain the API key to start evaluating the API.

Related

Sync google contacts by group to a limited number of users

I am trying to build an open-source python code hosted at GAE to sync contacts by group to a limited number of users. In a web interface users will be able to pick their group and whom it will be synced with.
I understand there is a lot of applications on market place withe the same functionality, but my organization is concerned about those provides selling contacts to 3rd parties. We are a non-profit organization, so the code could be hosted at google project or github for community contribution.
(sorry for the long intro)
How is the best way to start? is there tutorial available with similar functionality that I can expand?
What is the best way to compare two Contact kind elements? To see if they need to be sync.
Is there a last update on the Contact kind elements? In case I want to implement a last update wins?
thanks!
I don't know of any tutorials for syncing and comparing contacts specifically, but there is a getting started guide for the Google Contacts API at https://developers.google.com/google-apps/contacts/v3/.
The contacts are sent as XML blobs, so you could compare two contacts by parsing them and looking at the individual elements within them. I don't think there's a better way to do this but there are libraries to handle it for you.
There is a last updated field sent as part of the contacts when retrieving them with the API. It is an XML element labeled <updated>.
how are you getting different user's contacts feeds?
i tried to save the tokens in the datastore when the
users grant the access, but when i get the token back
from datastore for 2 users at a time, after an hour
when the token expires,
all tokens start working like the current users token
and i can only get current users contacts.
token = Get_Shared_User_Token(user_email)
contact_client = gdata.contacts.client.ContactsClient(source=USER_AGENT)
authorized_client = token.authorize(contact_client)
contacts_feed = authorized_client.GetContacts(q = query)
can you please tell how one can get any user's contacts?

Amazon MWS sandbox

I intend to develop a client for Amazon's Marketplace webservices (MWS). My requirements would be to update the order, synchronize the order status, get the order details using the APIs they have.
However, I could not find a Sandbox environment to test these scenarios. Amazon has a payment Sandbox I understand, but is there a sandbox available to test these web-services? If not, are there any pointers on how to go about testing the above mentioned scenarios with Amazon MWS?
UPDATE
As seen in the comments to this post, Amazon no longer provides a staging / test environment.
I just had a conversation via sellercentral ticket with an amazon employee.
They said:
We can provide you with a free Seller Central test account to be used in ungated categories only, which are the Amazon categories that do not require approval to sell in. For a list of ungated categories, please scroll down to the middle of the page here: http://www.amazonservices.com/content/sell-on-amazon.htm.
For orders:
After you’ve logged into the staging site, you then need to log into a real Amazon buyer account (not your staging account) to buy items. Then, navigate to the offers you’ve created. If you want to buy anything from your staging account (in order to test MWS order functionality) you will be using real credit card data, so make sure your offers are priced at only one cent, and your shipping is also set to one cent. These offers will not be visible on Amazon .com. Do not buy from any other sellers on the staging site.
So (conclusion): Just file a ticket** and tell them you want a seller central test account like this!
First register** for an account that you can access seller central with (please note, that some kind of accounts have a monthly fee, so choose a "per sale" plan. This fee won't be charged with your test account), then you can file the ticket (click the link above).
All resources about the MWS API are here.
** Replace ".com" with your local Domain for the Amazon Site you want a test (staging) account for.
You can use the scratchpad of Amazon:
scratchpad
good luck

How do I get product information via Amazon's MWS API?

I'm trying to automate the addition to and management of our products on Amazon. Looking at the API documentation for the MWS API it doesn't look like there's a way to determine if a product has already been added to Amazon by another seller and if so what its attributes are.
We are building a new product database for all the products we sell and have a table specifically for Amazon attribute data fields (ASIN, etc.). If Product information is already on Amazon, we'd like to pull that data via API and store it to our own database as well.
If you attempt to add a product via CSV and that product already exists on Amazon (and your attributes are in any way different ("m" != "medium") you'll receive and error. In that case you can just piggy back that existing product information and just upload a CSV with your price and quantity for a particular ASIN/SKU/UPC. We'd like to do away with uploading CSV files and again, have our own product table for Amazon attributes.
Will I need to also leverage Amazon's Product Advertising API to determine this or can it be done via MWS?
The documentation for Amazon's APIs aren't exactly fantastic and it's been slow going trying to sort through it all.
We're working with Ruby.
Amazon's Merchant Web Services API is limited to your Merchant account. So the answer to your question is that yes you will need to use Amazon's Product Advertising API to get information about products that aren't already listed.
That being said you should be aware that there are new restrictions being placed on the Product Advertising API that will limit the number of calls that you can make on a daily basis to 2,000. In addition to this you will have to get an Associate ID that will be tied to your account and needs to be sent with any request.
Also, I find that the information collected using the Product Advertising API is sometimes out of sync with the site and have resorted to scraping the info from the site itself. This has more overhead but you can be assured that the data is current. Of course this is only useful if you already have an ASIN or are dealing strictly with books (which use the ISBN as an ASIN) or Music CDs (which I believe use the UPC as an ASIN).
The MWS Products API is where you will find this functionality. Specifically the GetMatchingProductForId operation.
http://docs.developer.amazonservices.com/en_US/products/Products_GetMatchingProductForId.html
(This API probably wasn't available at the time of the original question)

Implement a paid subscription service on a website

I have a website and I would like to implement a paid subscription service. Its a simple service with only 2 types of plans. For now, ill just use Paypal. But im a little lost before start, mainly with the data model.
My main question for now is, what information do I need to keep for each subscription? Do I need to implement a shopping cart for this (dont think so)? Im not asking for a detailed explanation, just a few lights or resources to find a way to start. Thanks.
Depends on what technology you're using. Basic payments work a bit like this
-> You send them to paypal with a plan (you define the plan on paypal)
they know which amount to charge
you can pass custom parameters which they will pass back
Customer fills in application
<- paypal tells you that your predefined plan got purchased
in this same request, they send a lot of info about the payment including a GUID and your params
-> you ask paypal "hey, some one just told me this plan GUID got purchased, can you confirm"
<- paypal service returns 'yes'
-> you take the customer's ID from the params that you attached when you sent them to the paypal service and update them to "paid" in the database, or whatever
That's it in a nutshell...
Look at any subscription card mailer from any magazine and you can get an idea of what kind of data you will have to record. Start and end date for the subscription would be a good thing to keep, and what kind of plan the user is subscribed to. Once you have the end date, you just need to run a query to get the records of the users that have access. Something like
Select * from users where subscription_end_date is >= today
I'm sure there will be a lot of other columns that will go into your final product, but that will be up to you to decide what data you want to keep. What are the different states that a subscription can be in? Can someone be subscribed to both services at the same time?
PayPal does a decent job if you want to charge the same amount every month. However, if you anticipate your users making changes to their subscription plans (upgrades/downgrades) or needing to provide credits to their account for customer support purposes, PayPal would require that you cancel the subscription...and then have the customer re-subscribe.
[Full disclosure - I am a co-founder of Recurly.com]
Recurly handles the upgrades and downgrades, and provides automated customer emails to be sent out to your customers (on your behalf) for every event confirmation, and invoice that occurs. You also have a full account management dashboard and reporting so that you don't need to build this yourself.
Best of all, if you ever decide to leave PayPal, and move your business to a standalone payment gateway, Recurly stores all of your credit cards in a PCI compliant vault so you don't need to ask you customers to come back and re-subscribe. (PayPal will not return your customer credit card information). You simply configure your new gateway in Recurly, and payments will be processed without any interruption to your business.
Here is a blog post we wrote on the topic:
http://blog.recurly.com/2010/08/top-ten-reasons-to-use-recurly-vs-paypal-for-recurring-billing/
-Best of luck.
-Dan

commission junction and other affiliate network do they have sandbox? how to test drive? i am using popshops

i am developing an affiliate site.
it uses linkshare and commission junction.
it is for our client. so i do not have any account with any network or agent. either with popshops or the networks.
the client has registered with popshops to display merchants.
when users click links we need to know which user had purchased which product by sending some information to affiliate networks using the sid option.
every thing fine except a sandbox.
how do we do a test drive with link share and commission junction?
else we have to wait till an user purchases a product.
any suggestion and comments would be helpful.
They don't offer a sandbox, you will need to just know what the API results will be.
It is pretty well documented, but that's all they offer.
If you want, I recommend buying something from one of your affiliates and use that piece of info for testing. Most affiliates don't mind, and I have never found anything in a contract that mentions the affiliate using their own link.

Resources