I have a requirement where users will visit my site and based on some logic able to earn points. The user will then be able to use this point to checkout any item of equivalent amount that is listed in my website.
The items that are to be listed is actually coming from amazon and I am an amazon affiliate so when they make the purchase i end up earning commission.
The challenges that I am facing is amazon always takes the user to their own website for the checkout, and so I am not able to put any restriction on the cost of the item that the user is checking out. The user can very well choose some other item while doing the checkout from within amazon's website.
As per my research amazon doesn't allow checkout from 3rd party websites like mine and will always bring the user to their own website. While I can create a bot using casper.js to emulate an user i dont want to go with this.
Is there any known API or solution to achieve what I am trying ?
I don't think it's possible to have user checkout products on your website. (Why would Amazon ever allow that?)
However, I also don't think that should be important to you. You should redirect customers to Amazon with proper associate tags (www.amazon.com/dp/...?tag=...) in the URL. After that, any purchases that they make, irrespective of whether it was the one you showed on your website, become candidates for payouts to you. So, if you redirected a customer to product A on Amazon and she bought product B, you might be paid out for it, obviously if the purchase satisfied the affiliate policies.
Related
I want to create a store website using amazon's product advertising api, and as I understand, what you actually get from amazon is the products with a shop now button that is taking you to the amazon website to purchase it, something like this:
but I really wanted to create a full experience in my website, and wanted to know if its possible somehow to mask the purchase and keep the user in my website, does someone know something that can help?
I'm building a nutrition skill and I want to include some calculators. I could have Alexa ask for the parameters each time something is calculated, but I'd prefer to have users set up a basic profile for themselves to store age, height, and weight values.
I found a small section of Amazon's documentation that talks about how the userId element could be used to store attributes across sessions. Will that work for what I'm talking about though? Or will I have to add OAuth?
There are two way to do this:
1) You can use sessions.
In this method, your data will be vanish when session is end (user stop talking with your skill)
more details https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interface-reference#session-object
2) You should implement an oauth 2.0 server to store user data. It is not that easy but you can find some oauth server example in here https://oauth.net/code/
For connecting your skill to your oauth server, you can follow here
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/linking-an-alexa-user-with-a-user-in-your-system
bonus: If you do not want to implement an oauth server, you can use Login with Amazon (or login with google) services. But you will still need a database server to store data
The userId that you get on your requests uniquely identifies an Amazon account, not a person. Despite the option to switch between different accounts on a single device (see: https://www.amazon.com/gp/help/customer/display.html?nodeId=201628040), the feature to identify people has been discussed (http://time.com/4683981/amazon-echo-voice-id-feature-2017/) but it's not available yet.
As already mentioned in the comments, you will need to persist the session information between sessions and you could use the userId to identify each account.
But in any case, you don't need account linking or using Oauth to simply identify a person.
Additionally, I'd recommend you to stay within the Amazon ecosystem and run your stuff in Lambda (with free tier and with development credits for developers publishing Alexa skills).
If you need help getting started, I have a single-file template for Alexa skills using Python and several examples:
https://github.com/josepvalls/ask.py
we have developed an app for customer. This app contains subscriptions and we tested them in real world. Then we stop tests and refund all money back. Now, we are unable to transfer app because of active subscriptions (Google told us - after transfer initiaded - that it's not possible, we do not know this... unfortunately). Read so many stories about fact, that this is not possible to change anything if some subscriptions was paid. But Google test payment system didn't work how we expected, so we need to test it in real way... now we are stuck in circle.
Because we have only one app under our account, we agreed with customer to give him logon & other infos in order to get app for him. Unfortunately, we are unable to change country for merchant account. Is it possible to solve this? Or we do need to make new package under customer developer account and then unpublish current app and create a new one with same name?
If unpublish/publish is only way, how can we do this in order to do not hurt any current customer? App is not paid for now. but customer want to start app in new country and want to activate payment system. Unfortunately we are eu residents, and customer seat in Singapore... so we are unable to put his bank account either.
Do we have any options? Or, can we contact Google e.g. by phone? I try to call to Google in CA and have no success.. no live operator, only phone robots there..
I made a Django online-store site and I need to include paypal checkout system for the cart, but solutions I found online either just for one item only(Buy Now buttons) or something like django-paypal-cart, which is not well-documented and I can't figure out how to make it to the checkout.
Please, give me some hint, maybe good article about how to make your cart items go to the checkout, anything will be highly appreciated, I don't know what else to google now
There are numerous options for tying PayPal into your website or app. Depending on exactly what you're doing or how good you are with web service API's you may choose one or another.
If you want to keep things simple, you can stick with Payments Standard. This is basically what you're referring to about the one item only buy now button, but you can use the cart upload command method to build a form that includes multiple items and pass it all over to PayPal at once.
If you prefer web service API's I'd recommend using Express Checkout. This consists of SetExpressCheckout, GetExpressCheckoutDetails, and DoExpressCheckoutPayment. Read through that general EC documentation to get familiar with the calls and how it all flows.
Another thing I would highly recommend utilizing is Instant Payment Notification (IPN). This is a feature where PayPal will POST transaction data to a listener script that you have sitting on your server any time a transaction occurs on your PayPal account. This includes payments, refunds, disputes, cleared payments that were pending, etc. This allows you to automate tasks like updating your database, sending out custom email notifications, hitting 3rd party web services, etc. and it happens in real-time, so it's very powerful.
We are using Sitecore 6.5, and the Email Campaign Manager 1.3.3 rev.130212 is installed.
Currently, when i add a Sitecore user, for example 'UserA' to multiple target audiences, lets say 'TargetAudience_A' and 'TargeAudience_B', after I send out these two target audiences, 'UserA' clicks the link in the email which comes from 'TargetAudience_A', then the link will bring user to the site, user visits several pages, Sitecore Analytics will be able to track 'UserA' VisitPageCount and Value, and creates the corresponding campaign of 'TargetAudience_A' with that data.
When the user opens the email sent from 'TargetAudience_B' and clicks the link, visits the site, NO campaign is created for 'TargetAudience_B' in the database, I can see all the data should use to create a new campaign for 'TargeAudience_B' is used to update campaign of 'TargetAudience_A'.
The whole link in the sent email has been modified by Sitecore, the corresponding campaign id is added, which makes the link looks like this:'httP:xx.domain.com/?ec_camp=xxxx&ec_as=xxxx'.
It seems that Sitecore just adds an Id to the url, but does not create a campaign for the 'TargeAudience_B' with that Id.
I use this sql query to check the visits data:
Select * From Visits join Automations on Visits.CampaignId = Automations.CampaignId
Where Automations.data = '{EmailTemplateId}'
the data column on Automations table is the email template id of the target audience.
Does any one know, how to track one user's activities for multiple campaigns? Is this possible to do? Or is this something which needs to be fixed by Sitecore?
Any help will be much much appreciated.
Thanks
EDIT: Sitecore does create Campaign for each target audience, but does not create Visits record for every one of them; Sitecore associates Campaign with the Visits, Sitecore cannot find\create Visits of 'TargeAudience_B', it finds the Visits of 'TargeAudience_A', for some reason it just updates the Visits record of 'TargetAudience_A'.
This does look right, does Sitecore create just one visit for a visitor a day no matter how many target audience this visitor in?
Neither target audience, the Visitor.ExternalUser or anything other than a fresh Visitor cookie will make DMS re-consider your visitor. So to answer your question, I do believe you are correct in your observation, and that this behavior is by design.
Also keep in mind; if your users click the email you send out from say their iPhone and come visit the site, they will be granted a Visitor ID. Later, when they're back home at their PC and click the same email again, they will get a fresh Visitor ID and will not be recognized by DMS as one and the same Visitor. This too, is by design.
If you want to achieve what I believe you're aiming to achieve, you're going to have to "tag" your Visitors with a key you recognize - like the email address - and then hook into the APIs and "grab" all Visitors that match your tagged email address. Not sure how well this will work with all areas of the DMS.
In my example above; if a user was triggered to enter an Engagement Plan or a State in an Engagement Plan - the "iPhone Visitor" would get attached to it - and any actions undertaken by the same person on his personal PC visitor profile on his desktop PC would not be affecting anything in this state.
Yes, it is a bit confusing - I may even have some slight details of this wrong - the DMS API changes a lot. But as far as I can determine, the above is correct and all by design.