Amazon Order History Page Gone?

I’ve been considering adding tooling to allow anyone to build & share rules configurations for the Line Item Import workflow. The idea would be to create and host a JSON file that remaps whatever CSV format you have, then link it into your Tiller Money Labs add-on configuration as a new CSV type. This could be a good companion to your scraping workflow. Unfortunately, I’m probably a month out from completing this.

The speed-to-data improvement is a big advantage of your workflow. Presumably you can configure the filter period to match up with just the most recent transactions.

Thanks for the quick response, @al1.

Well the filtering from amazon order page is a minimum of 6 months… so there would have to be some logic to remove duplicates… this can easily be done in the query against the imported data… I was doing this with my business amazon orders as the business order reporting is different from that of amazon personal order history…

I have other more pressing projects at the moment so it will be a bit before I can get to this project…

@randy
@al1
This approach of scraping Order History has a real advantage in time over the Privacy Central workflow. I look forward to seeing how it develops as I’d like to try it.

That chrome extension works great. The downloaded CSV wasn’t very good, it left out a few columns, but the in-line table was good. Thanks for the tip.

1 Like

jeff@amazon.com is a monitored email address. Whether Jeff reads it personally or its a team, I don’t know. I encourage customers here to send a well formed email to Jeff Bezos explaining the situation and how this has impacted your experience as a customer. At the very least, the team that owned the prior feature should have looked at the logs and emailed users of this feature to let them know the alternative options if this feature was indeed a planned deprecation. I’m equally as frustrated.

The one down side of all web scraping techniques is that if Amazon decides to change the UI as well as the underlying data architecture powering that page, the scraper will need to be updated so hopefully they don’t change the page much (can’t imagine why they would) or the page is written in a way where the data powering the page is completely separated from the HTML tags which will reduce the change of things changing.

It’s unfortunate Amazon decided to move this use case to Privacy Central and now adding a new manual process for them. They’ve now invited a slew of customers to use this heavy handed approach for non-privacy related use cases which creates a bad customer experience as well as more operational overhead for Amazon.

2 Likes

@randy, thanks for making this tool! I wrote a whole python script to parse this new format into the old one and then was confused as to why my upload wasn’t working. Then I realized you’d already updated the importer. Oops!

Anyway, one issue I’m running into is that I bought an item partially using points to offset the cost. That doesn’t seem to be showing up. I know this new format is severely limited, it kind of sucks. Is there any way to incorporate this information or should I just manually edit the item price and the overall Amazon purchase amount?

Sorry to preempt your python script, @ecarl65. I hope that someday we can open source the whole importer-rules format so that everyone has more control.

I’m open to changing the importer to account for points, but I don’t have an example of what the raw data looks like. Can you tell if the points are captured in a visible way within the raw data from the privacy report? What is the field math on how you think they should be applied.

I have found a Chrome extension available (no links allowed here for some reason) that “scrapes” your history for a selected year. Quite primitive but it more or less does the job. It’s called Amazon Order History Reporter. You can also request that Amazon replace the history download page, via the personal capital page; But I have my doubts about how effective that will be.
I think it’s a bit scary using this extension, but I’m desperate. It creates the following header: order id items to date total postage gift tax refund payments Hope that helps! - Vicky

Al,
When I copy the JSON webscraper doesn’t like the syntax. Can you copy into a code snippet and re-post? Some of the regex is unhappy and the “” have turned into “”

{"_id":"amazon_orders","startUrl":["https://www.amazon.com/gp/your-account/order-history/ref=ppx_yo_dt_b_pagination_1_2?ie=UTF8&orderFilter=months-6&search=&startIndex=[0-350:10]"],"selectors":[{"id":"element","type":"SelectorElement","parentSelectors":["invoice"],"selector":"[width='90%'] > tbody > tr > td","multiple":false,"delay":0},{"id":"order","type":"SelectorText","parentSelectors":["element"],"selector":"tr:nth-of-type(2) td","multiple":false,"regex":"(.{19})\\s*$","delay":0},{"id":"date","type":"SelectorText","parentSelectors":["element"],"selector":"tr:nth-of-type(1) td","multiple":false,"regex":"\\b(?!Subscribe|and|Save|Order|Placed|:)\\b\\S+.*","delay":0},{"id":"pay_method","type":"SelectorText","parentSelectors":["element"],"selector":"nobr","multiple":false,"regex":"(?<=^..)(.*)","delay":0},{"id":"sub_total","type":"SelectorText","parentSelectors":["element"],"selector":"td tr:contains('Total before tax:') td:nth-of-type(2)","multiple":false,"regex":"","delay":0},{"id":"tax","type":"SelectorText","parentSelectors":["element"],"selector":"td td td td tr:contains('Estimated tax to be collected:') td:nth-of-type(2)","multiple":false,"regex":"","delay":0},{"id":"giftcard","type":"SelectorText","parentSelectors":["element"],"selector":"td tr:contains('Gift Card Amount:') td:nth-of-type(2)","multiple":false,"regex":"","delay":0},{"id":"item","type":"SelectorText","parentSelectors":["item_element"],"selector":"td[colspan='1']","multiple":true,"regex":"","delay":0},{"id":"price","type":"SelectorText","parentSelectors":["item_element"],"selector":"td[align][colspan]","multiple":false,"regex":"","delay":0},{"id":"item_element","type":"SelectorElement","parentSelectors":["element"],"selector":"table[cellspacing='3']","multiple":true,"delay":0},{"id":"grand_total","type":"SelectorText","parentSelectors":["element"],"selector":"tr:contains('Grand Total:') td:nth-of-type(2) b","multiple":false,"regex":"","delay":0},{"id":"order_element","type":"SelectorElement","parentSelectors":["element"],"selector":"table[width][align][cellspacing='0']:nth-of-type(1)","multiple":false,"delay":0},{"id":"order_detail_element","type":"SelectorElement","parentSelectors":["element"],"selector":"table:nth-of-type(4) table[cellspacing='3']","multiple":false,"delay":0},{"id":"status","type":"SelectorText","parentSelectors":["item_element"],"selector":"center","multiple":false,"regex":"","delay":0},{"id":"invoice","type":"SelectorLink","parentSelectors":["_root"],"selector":".a-unordered-list a:nth-of-type(2)","multiple":true,"delay":0}]}

Had the same issue
I created a javascript that you can get the data from console
go to

github/Yair-Tendler/Amazon-Order-History/blob/master/readme.txt

@sadplayer89298

got your script to work with a slight fix.

at least from my end, getting this error:

VM15:1 Mixed Content: The page at 'https://www.amazon.com/gp/css/order-history?ref_=nav_orders_first' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://www.amazon.com/progress-tracker/return?_encoding=UTF8&contractId=e7c5e6d6-c4e3-4b2c-9fbb-11a64dd37830&ref=ppx_yo_dt_b_track_return&rmaIds=DBLXbypJRRMA'. This request has been blocked; the content must be served over HTTPS.

so i added a function to turn any http: to https:

function httpToHttps(url) {
    return url.toLowerCase().indexOf('http://') > -1 ? url.replace('http://', 'https://') : url;
}

then anytime a url is used, just call that function.

not sure if you want me to pull request this change?

1 Like

What a find! Thanks so much to the dev(s) who created the scraper chrome extension. I used it today and its GREAT! With only some manipulation I was able to recreate all of the most essential order report fields from the original Amazon Order History report (which I needed to manipulate anyway for my needs)! Sooo much faster than going through the Order History page(s) order by order or waiting for the new way to order reports from Amazon! Phew!!!

Well done :slight_smile: !

BTW, I used the extension from the Chrome store. Is that the most current version? If not, where can I find the latest build?

Hello,

I’m looking to extract data from my orders from amazon, but haven’t been able to scrape data with @al1 method. Can’t find the option to import the scrape detail.

Any help would be greatly appreciated.

Thx!

OMG - LOOK WHAT’S BACK!!!

https://smile.amazon.com/gp/b2b/reports/ref=b2b_aht_bao_dbor_ohr1

Yes, it’s the original Order History Report!! Just like in days of old. It’s a Christmas miracle.

5 Likes

Wow! I can’t believe it! Thanks for sharing this awesome news!

1 Like

THANKSSSS! it WORKS!