email issue in opencart - opencart

An order confirmation email is sent for canceled/failed payments
User reach to the payment gateway, when reached to the cart after selecting final and reach to the payment page and user cancel the order but a successful email sent to the user did somebody face this issue before my open cart version 3.0
didn`t check the code yet, please tell me,
2) My website home page icons change into some encrypted boxes whenever some body visit my website first time later on user go in and visit some other pages and revisit the website home page, icons looks fine ,i refer so many links, even try to make changes in .htaccess file as well but nothing works,is there any way that i can fix it,i am providing my website site link,if you want because this issue never comes on local server,enter image description here,enter image description here

First thing that comes to mind is the order states options (system -> settings -> options). What state do the orders get when a payment is cancelled? Is the state unchecked for the 'order ready' states in the options?

This mainly depends on payment extension. Payment extension is responsible of setting correct order_status_id depending from 'error', 'failed', 'not completed' methods.
Sometimes, payment module has incorrect return callback links.
Again, check payment module methods.

Related

Google OAuth consent screen stays on "Needs verification" after submission

My application needs to interact with the Google API's using some specific scopes, so I need to submit it for verification. When doing so, I use the Prepare for verification button in the screenshot below.
After completing the form, the toast message “Your app has been submitted for verification” appears and I am redirected to the same screen. However, the status "Needs verification" remains and no change is visible to indicate that my app is in the process of being verified. I am able to repeat the process without any visible change.
I submitted the application for the first time 2 weeks ago, but still no change. Is this a bug in Google's platform? How should we proceed (without having to buy a 100$/month support subscription)?
Thanks a lot
You can check your app verification status via email;
Your project's last submitted OAuth consent screen is under review. Additional information about your app, if required, may be requested via email at the email addresses you provided in the Developer contact information section of the Prepare for verification process. Expect the first email within 3-5 days.
You can find more information about this process in the Oauth Verification documentation.
If so happens that your app is a "restricted scope app" verification may take a few weeks instead of a 3-5 days.
You should have get an email with the confirmation that your app is being verified. If not try again and check your spam folder. If you aren't getting any emails then go to IssueTracker and report a bug.

Sitecore ECM Newsletter: links to site doesn't work from mail Inbox

I've created ECM NewsLetter with some links to site (another Items). In online version of NewsLetter links works fine, but when I've sent this NewsLetter to my email and tried to click on links from my mail Inbox it's displays 404 not found error. Base URL - The default address for all links configured properly. What am I missing? Maybe some configuration? I appreciate any help you can provide.
Several things to check here:
Most likely source is that the campaign item that gets created when the email is sent is not published.
If the campaign is published then check the goal that gets installed as part of the ECM module is published: /sitecore/system/Marketing Center/Goals/Click Email Link
The way to test the source of the problem is to search for the guids in the link querystring - the ec_camp part of the querystringis the guid of the campaign. Search for this in your content delivery web databse - if this exists then check the goal mentioned above. The ec_as value is the value used to identify the user in the analytics db. This wont exist in your sitecore tree.
finally if both of the above work then follow this set up guide and ensure all the relevant ECM pages are installed properly on your CD servers - including the connection string to the ECM service that handles all tracking and link processing: http://www.sitecore.net/learn/blogs/technical-blogs/sitecore-magnified/posts/2013/09/ecm-on-cd.aspx
If you view source are they absolute links? If not one thing we did was create a newsletter device and detect we were coming from ecm. Then we could specify an alternative layout/sublayouts/data sources based on device.
The sublayouts could check if they were coming from a newsletter device and ensure they return all links absolute.
Within the ECM you need to make sure that you are saving and publishing as you move throughout the process of setting up and deploying a message. Once the message is edited, save and publish the message. Before dispatching, you should smart publish the target audience which in turn will re-publish the message. Then, when you dispatch you should see all the images.
This seems to be an issue with the configuration of Email Campaign Manager. Follow these steps
Go to Email Campaign Manager.
Select Content tab.
Check the value of Base URL- default address for all links field.
If it is set to some website URL other than your website URL change it to your website URL.

Possible to log form submission?

Here is the situation. My company has an e-commerce store, but we don't gather or process credit card information ourselves. When a user selects "Pay with credit card", they are immediately taken to the payment site, and then that site processes their credit card and sends the status back to us so that the order can be marked paid. Our site runs on ColdFusion, and it receives the data from the site as form data, processes the form variables, and creates an order for the customer, marked as paid. The credit card site only sends the information once, and there is no "handshake".
In the last month and a half we have been having an issue where occasionally we are not getting the information from the credit card processing site, although they say they have sent it. Hence orders are not being created, and products are sitting in customers' carts, even though the credit card has been charged. This problem is intermittent. We can't tie it to any server changes on our side, and the credit card site denies changes on their side.
So among the things we are trying to do is to log when the customers are actually trying to pay by credit card (so we can catch the missed ones more easily). So I want to somehow log the event when someone clicks "Pay with credit card." Issue is that form action submits the data to the credit card site. The only way I can think of to do this, is to change the form action to a page on our site, log the payment attempt, and then submit the form again to the credit card company. I know I can submit a form automatically with JavaScript, but that seems like a bad solution (what if JS is turned off?), but don't know how it would be possible to do server-side.
Please try to avoid solutions that involve AJAX if possible, as I know very little about it (I am a very rookie web developer in general, and just inherited this whole set-up).
Better solutions for how to log this event, or suggestions in general for this mess, will be greatly appreciated!
Responses to comments:
To Sam Dufel:
Would love to change to another provider like Paypal. Unfortunately my company is actually part of a university and we all have to use the same payment gateway.
To flup:
Would using a 301 or 302 status code preserve the form data? I tried looking this up, and it looks like it works with "get", but I need it to be sent with "post", since that is what the payment gateway is expecting.
To imthepitts:
We receive it as form data.
To Revent:
The issue is that orders aren't getting created at all (so customer and order information is just sitting in the temporary basket/customer/order tables). It seems like the page that is supposed to process the form data from the payment gateway isn't being accessed. I have added some logging to that page, but my company is so freaked out that they have disabled credit card payments and so I am not getting any data. If I can convince them that I have implemented a good logging solution to identify bugged orders quickly, they will turn it back on.
To Laksma:
We are using a unique identifier that is sent back. What I meant by handshake is some way of the payment gateway verifying that they have made a connection with our server. Maybe I was using the word incorrectly. Thank you for the suggestion of the log on the receiving page- I have added that.
To Nenotlep:
I know I said no AJAX, but I would like to hear more about your idea. Would the call to the logging page interfere with the form submission at all? I'm assuming it would be set up so that the function would trigger on the "onclick" event for the form button, and then form submission would proceed as normal? If it is easy to set up, then maybe that would be a good way of doing it.
I'm thinking of trying Sanjeev's solution, since that is similar to what I was planning to do anyway, but I actually would like to hear more about the AJAX idea if it is really that simple, mainly because it won't change the customer experience at all (unlike seeing the redirecting screen).
Additional response to steve:
I appreciate your input, and normally I love teaching myself new things, but I am just way too overwhelmed right now to even think about tackling a new technology.
I work on a payment gateway and had the same problem as yours. This was my solution -
Post the values to a intermediate page called as 'requestHandler.cfm'.
requestHandler.cfm saves the values into database table.
Continue to creates a <form> with all the required values as <input hidden>. Place a submit button and also JavaScript to fire 'submit' in say 2 seconds. Also put a note that, "If the page does not refresh in some time, click the submit button". As you are not going to do any validation on the form, a 'submit' button will just submit the form with or without JavaScript being active.
The Creditcard company will process the information and reply back with the values to a 'responseHandler.cfm' page.
I shall update my data based on the 'primarykeyvalue' sent to them. (Or just any reference that can identify the user)
Database table sample
The TransactionID will be '0' by default and will change to the number given by the credit card company
The paid flag which is default 'N' shall change to 'Y'
The Actual amount is what I have sent to be charged on the user credit card.
The Paid Amount should match the actual amount. This is to help me find if the details are tampered in any case by the user or middle man.
Handshake:
When a user is taken to the payment site, you should include a unique identifier to distingush the order, such as OrderID. Your payment provider must have some custom fields for your own use. Then, when the user is taken back to your site, the payment site response data should include the OrderID. That way you can match them. In other words, "handshake" is occured.
Intermittent successful payment:
On the listener, the page where the payment provider returns form data, you should implement a log to record from where the page is called and what data is sent.
"... is to change the form action to a page on our site, log the payment attempt, and then submit the form again to the credit card company." This is a doable solution.

How to track client payment information of a visitor redirected from my website

I want to implement a system similar to affilite tracking systems like Skimlinks, Viglink, etc. I searched their customer tracking systems. Found some information about tracking systems. I have also searched Analytics systems like Google Analytics, Piwik, OWA. There is a point I need to be guided.
When a user visits my website, clicks a product link of a shopping website like ebay, amazon, etc. I need to track the payment information of my user at the shopping website.
I achieved tracking user activity, clicks, etc on my web site with using Analytics's tracking methods (JS tracking). But I cannot find a way how Skimlinks or Viglink tracks user activity(succesful payment of users) in the shopping website which user redirected.
(Tracking user activity in the shopping website without using a service from shopping website, without Instant Payment Notification service of PayPay or something else)
I noticed Viglink and Skimlinks redirects user to their server before shopping and adds some additional information (like cookies, URL parameters etc)
Here is an example link to affiliate link of Skimlinks
website : http://www.capoeira-izmir.com/capoeira-kiyafetleri/
link : Street Abada
http://go.redirectingat.com/?id=25227X845172&site=capoeira-izmir.com&xs=1&url=http%3A%2F%2Fwww.ebay.com%2Fitm%2FHELANCA-POLYAMID-CAPOEIRA-PANTS-ABADA-YOGA-FREE-BONFIM-%2F280678232152%3Fpt%3DUS_CSA_MC_Pants%26hash%3Ditem4159b9f058%23ht_2891wt_1163&xguid=94275a6f74c7ce02bf4739e364d8831c&xcreo=0&sref=http%3A%2F%2Fwww.capoeira-izmir.com%2Fcapoeira-kiyafetleri%2F
It redirects user to go.redirectingat.com first, then a redirection is done to ebay.com/...
I also noticed that it adds an attribute to the url of ebay product link : afsrc=1
I guess it is "affiliate source = 1 " or something like that.
Any guidance or documents about this will be great for me.
Thanks in advance!!
I think your question is more about how online advertising works rather than technical.
This is a two parts answer.
1. How a conversion tracking works:
In any advertising platform that tracks conversions (any user action that happens in the advertiser property like, in example, a sale) you need to make a request to the advertising platform to notify this.
This is usually done by placing a "Tracking pixel" in the confirmation page the users see after performing the action, commonly known as the "Thank you page".
So the process goes like:
User goes to a website and sees an ad
User clicks the ad
The user's browser goes to the advertising platform (Adwords, Rightmedia, Appnexus, etc) and a cookie is placed in her browser. In this cookie there's a click ID, containing all the relevant information (website that originated the click, time, IP, campaign, etc) and it is redirected to the advertiser's website
The user lands in the advertiser website and "converts" (buys)
The user is redirected to the Thank you page where a "Tracking pixel" is placed, this makes a request to the advertising platform, which reads the cookies in the user's browser and if there's a match, logs the conversion.
Note: The previous example is a Client Side conversion. The same logic could be done in a Server Side request by the advertiser saving the "click id" in step 4 and sending it to the advertising platform in step 5. This is useful when the conversion occurs offline.
For more information: Adwords Conversion tracking: https://support.google.com/adwords/answer/1722054?hl=en
2. How I assume VigLink works
I noticed that many of the products VigLink tracks are from ClickBank, since this is the one I'm more used to, I will write the answer using this example.
You first need to be aware that VigLink is an "affiliate" of Clickbank. As such, it has a report of every sale made by users they referred. They, as affiliates, also have the chance to pass extra information in each click as a TID parameter. This TID sent as a URL parameter in the click will be shown in the sales report.
When a user clicks on a link to a clickbank product using VigLink. VigLink attaches their affiliate link to this same product and a unique TID. I assume this TID matches an ID in their database containing the information of the VigLink website who referred the click.
If the user buys the product, VigLink will see in their ClickBank report (I assume via the ClickBank API) the product bought and the TID, and so on they will know in which website the sale was originated.
Short answer: VigLink is not tracking user actions in the advertiser's website. They are just matching click IDs between their click tracker and the advertiser's reports.

How can you remove cookies from a specific domain, NOT your own

we have a unique issue.. it seems one of our payment processors offers additional options to users the first time they visit our payment page with the processor - being sent to it from our website. However, the subsequent times our users go to that payment page, those additional options are gone... we believe it has to do with cookie settings from the site.
Is there a way, with the users interaction/approval, to delete cookies from that other domain BEFORE we direct them to that payment page??
So, the process might look something like this:
1) User clicks payment link
2) Confirm box displays notice stating to enable 'these' features, they need to clear their cookies from the site they are being sent to..
3) User clicks yes and all cookies from the other domain are deleted
4) User is then directed to the payment page to complete payment with the additional features.
Thanks!
cookies do not work cross domain, so when your clients go to the payment site, the payment site can not read the cookies that are not set by them
It is a problem of you payment provider and he should solve it! Cookies cannot be read or modified from other domains for security and privacy reasons.