Unique customer identifier in Amazon Marketplace Web Services - amazon-mws

I am importing customers from Amazon to do an integration with our ordering system and want to avoid having duplicate customers as we do a high volume of sales on Amazon.
Is there any report, or API that will allow me to get a unique customer identifier that will never change for that customer no matter how many orders are placed?
I have thought of the anonymous email that Amazon makes available, however I am unsure if this changes, or if it is a static value as it is not referenced within the API documentation.
Has anyone else found a solution for this, or have any suggestion?

the key is buyer-email and is available from order reports or from amazon fulfilled shipments data report.
The amazon fulfilled shipments data report will not contain buyer email information in certain circumstances, however the order reports will always contain the buyer email.
Amazon's FAQ documentation states:
Are there separate e-mail addresses per thread? No. The anonymised e-mail alias remains the same for all contacts that you have with each individual buyer. Use the buyer's anonymised e-mail address as a unique identifier to follow conversations across multiple orders.

Related

What field should I use when collecting external system user info in SF Marketing Cloud?

I've been wondering which field should I use when collecting user purchases, views, etc. There are a couple of different resources in Salesforce about this and both of them tell differently.
First one is under Email Recommendations -> Implementation, inside marketing cloud itself:
And it says that Subscriber Key should be used.
The other one is from Salesforce Docs (https://help.salesforce.com/s/articleView?id=sf.mc_ctc_set_user_info.htm&type=5):
This one says that Subscriber ID should be used.
As far as I understand it, these two are completely different. I use Contact Id from Salesforce as my SubscriberKey and I think Subscriber Id is generated inside marketing cloud itself.
The JSON itself has a field that's named "email" - the name suggests that email should be used.

Salesforce Objects available in Social Tables

My question has to do with the Salesforce integration in Social Tables and is two-fold: 1. Am I correct that only objects belonging to Contacts can be imported to Social Tables? 2. Is further integration under development?
To clarify, at present it appears that Social Tables pulls contacts from Campaigns, but does not pull other campaign data - only data stored in Contact records.
To really make use of the Salesforce integration, we'd like to import event data to Social Tables fields (e.g. Table #, Seat # etc). (Our use case is a seated fundraising breakfast.) Intuitively, that would mean Campaign Member in Salesforce would need to be imported to Social Tables along with Contacts (event-specific data can't be stored that in Contact records, since the guest data and data types would vary for different events).
Similarly, it would be great to have the option to import only the contacts in a campaign that have a specific status or "Attending?" value. I know it's possible to map Salesforce fields to event-specific fields in Social Tables, so maybe I'm missing something...thanks in advance!
Let me try to answer those for you.
Am I correct that only objects belonging to Contacts can be imported to Social Tables?
This is almost correct, for a given CampaignMember of a Campaign we are currently pulling all Lead or Contact fields (depending on the type of the CampaignMember). This does not include CampaignMember fields.
Is further integration under development?
My team is responsible for Check-In and although our focus is currently not on adding SF Integration features, we weigh customer feedback very heavily when revisiting our roadmap. You make a very valid point with including CampaignMember fields with the import and I will communicate this to our product team so they can handle accordingly.
Importing a subset of members is another great feature request that we will note. Once we have CampaignMember fields included you could accomplish this by importing all members then selecting users with unwanted statuses and deleting. Not the best but will work.
Thanks for reaching out with the fantastic feedback and hope this helps answer your questions!

How to find Uniqueness in Azure Usage Records from Billing APIs

I am building an Azure Chargeback solution and for that I am pulling the Azure Usage data from Azure Billing REST APIs for multiple subscriptions and different dates. I need to store this into custom MS SQL database as per customer’s requirements. I get various usage records from Azure.
Problem: From these Usage records, I am not able to find any combination of the columns in the data I receive which will give me a
Unique Key to identify a Usage record for a particular subscription
and for a specific date. Only column I see as different is Quantity
but even that can be duplicated. E.g. If there are 2 VMs of type A1
with no data or applications on them, in the same cloud service, then
they will have exact quantity of usage. I do not get the exact name
of the VM or any other resource via the Usage APIs.
One Custom Solution (Ineffective): I can append a counter or unique ID to the usage records but if I fetch the data next time the
order may shuffle or new data may be introduced thereby affecting the
logic for uniqueness. Any logic I build to checking if any data is
missing in DB will result in bugs if there is any alteration in the
order the usage records are returned (for a specific subscription for
a specific date).
I am sure that Microsoft stores this data in some database. I can’t find the unique id to identify a usage record from many records returned by the Billing API. Maybe I am missing something here.
I will appreciate any help or any pointers on this.
When you call the Usage API set the ShowDetails parameter to true: &showDetails=true
MSDN Doc
This will populate the instance data in the returned JSON with the unique URI for the resource which includes the name for example:
Website:
"instanceData": "{\"Microsoft.Resources\":{\"resourceUri\":\"/subscriptions/xxx-xxxx/resourceGroups/mygoup/providers/Microsoft.Web/sites/WebsiteName\",\"...
Virtual Machine:
"instanceData": "{\"Microsoft.Resources\":{\"resourceUri\":\"/subscriptions/xxx-xxxx/resourceGroups/TESTINGBillGroup/providers/Microsoft.Compute/virtualMachines/TestingBillVM\",\...
If ShowDetails is false all your resources will be aggregated on the server side based on the resource type, all your websites will show as one entry.
The resource URI, date range and meterid will form a unique key as far as I know.
NOTE: If you are using the legacy API your VMs will be aggregated under the cloud service hosting them.

Can I include a custom payload or value with amazon affiliate links?

I'd like to be able to tag affiliate links with some extra information so that I can map successes to information inside of my system.
Is there any way I can include a custom identifier or payload of data with the affiliate link that Amazon will allow me to inspect when I receive a report of successful sales?
The only thing I found is the tracking ids from
Manage Your Tracking IDs page.
However this ids are limited to 100 values by default (you need to contact amazon for more). This is what they answered me:
I understand you'd like to view reporting within Products Advertising
API.
All reports are housed on your Associates account for you to view the
activity of your links.
We do offer multiple tracking IDs so that Associates can track the
activity of individual links easily and accurately.
You can create up to 100 tracking IDs in your account by visiting the
Account Settings section of Associates Central. You'll find a link in
the Account Information section labeled Manage your tracking IDs:
https://affiliate-program.amazon.com/gp/associates/network/your-account/manage-t...
Once you've created your additional tracking IDs, to view these IDs,
please log into Associates Central (http://associates.amazon.com).
Once logged in, click on the drop down box under Tracking ID to change
which ID you are working with.
If you are interested in receiving more than 100 tracking IDs, please
first create this amount via your associate account in Associate
Central. If you have already created 100 tracking IDs in your account
and are needing additional tracking IDs, please use the link below to
write back to us with a detailed description of how you'll be using
these additional ID:

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)

Resources