For hen-pecked lovers everywhere

So I was looking at the Mythical MERMAID and LOVER Romantic Bronze Sculpture Anniversary Gift on Amazon and thinking what an awesome present it would make, for an anniversary or frankly any time at all. Here it is:

Mermaid, Lover and Chicken

Isn’t it sweet? He looks so comfortable. And it delivers all the promised elements: I see the Mermaid and I see the Lover, though I also see a chicken.

Not entirely sure why there’d be a chicken, unless it’s the setup to a great joke by the big bronze dude.

LOVER: How do you like your eggs in the morning?
Mythical MERMAID: I know this one – it’s ‘unfertilised’. Thing is, dear, I don’t know where you think this situation is going, but let me explain something to you…
LOVER: I only meant that I brought my chicken. Why, what do you mean?

I’m just not sure the relationship is going to work out, chicken or no. From my male perspective, this unfortunate symbolism renders it unsuitable as an anniversary present. I’ll tell Amazon.

(this and other spectacular gifts for the man in your life via Catie Wilkins.)


Since we started selling books on Amazon, we’ve had three complaints. Two were from people unhappy with the condition of their book, and both times the books were marked as ‘acceptable’, which is Amazon’s lowest quality rank. This doesn’t mean the rank contains anything that should be ‘bad’, but it does mean the book isn’t ‘good’. But, most people aren’t aware of this, and there’s no reason we should expect them to be. To make sure it’s clear, we always put an appropriate description in the individual item details. I genuinely think the first two complainants had unreasonable expectations, and it’s annoying when one ‘neutral’ feedback heavily affects our visible-to-everyone positive-feedback percentage score.

Today, though, the lady had a point. She’d bought the hardback and we sent a paperback. Fair enough. I haven’t yet figured out whether Amazon’s data is flawed or we messed it up, but whichever, the customer was justified in being annoyed. I refunded her as soon as I confirmed the problem, and braced for the probably ‘negative’ feedback, which would be a first.

She gave us a positive rating, with 4 marks out of 5. There was a problem, she said, but it had been sorted quickly and she’d happily buy from us again.

I am, frankly, astonished. Sometimes people are delightful.

Amazon Prime in the UK

I’ve just seen that Amazon have launched their Prime service in the UK. With this system you pay £49 for a year’s (first-class) postage, so every subsequent order is just the item cost. Clever.

Minimum delivery on books, for example, is £2.75, so in twelve months you’d have to be making eighteen orders for it to be economical, assuming you didn’t use the free ‘super saver’ delivery. It does save the hassle of grouping orders for cheapest postage, though, and when combined with the one-click system it’d be great for busy people. Is it worth it for me personally? Probably not – Gmail reckons I’ve only ordered seven times from them since last November. But it wouldn’t take much more, and I can see the average family hitting eighteen without too much difficulty.

It must be great for Amazon, though: who’s going to use any other store if you’ve paid nearly fifty quid for a year’s deliveries? Amazon’s usually the cheapest anyway, excluding delivery, and given the speed and simplicity of their website it’d be incredibly easy to end up using them for everything.

Can’t think independent bookshops are too impressed, mind.

First non-positive feedback on Amazon

We lost our 100% positive rating on Amazon today, after getting ‘neutral’ feedback from somebody unhappy with the condition of a book. The comment said something along the lines of ‘I was hoping for a better condition, but maybe given its age this was too optimistic’. It’s tricky as the book was a (used) 20-year-old hardcover in good condition for its age, but obviously less so compared to anything you’d find in Waterstones. Amazon aren’t entirely clear on whether age should be taken into account in grading, so it’s a little ambiguous.

Unfortunately our 30-day rating is now 93%, as we’ve only sold 14 books in the last month, and our overall rating is 98%. Hmph. I refunded her 50% in the hope she might change the feedback, but no such luck – she replied saying the money didn’t matter, and she was mainly annoyed because she thought she’d got a bargain. Grrrrr.

A basic setup to link Google Spreadsheets with Amazon ECS

It took a while to surface, but over the weekend I finally spotted the obvious possibilities raised by Google Spreadsheet’s new xml-linking features. Abi and I currently enter isbn, title and author data into our bookselling spreadsheet by hand, and this gets old quickly. More so for Abi, who has to check the individual Amazon pages to gauge current prices. I knew of Amazon’s API, and was planning to create something to help speed this up, but the only programming language I was ever any good at was Visual Basic, which isn’t around much any more, and I’m seriously rusty at the little .NET I once knew. So I wasn’t quite sure of the best way to approach things, and GS’ new hotness seemed like an ideal solution, if I could get it to work. Happily it did, and I can now enter an ISBN and have GS download the author, title, amazon URL, amazon price and lowest used price data automatically. Here’s a basic way to set it up:

  1. If you haven’t got one, sign up for an Amazon Web Services account and find your Access Key. This’ll let you make 1 request per second, although in practice this is fairly flexible.
  2. Take a look at the Amazon ECS API, and determine the appropriate request. It’s a web service, so supplies data after a standard browser request. Here’s the query I’m using, with an example book: &SubscriptionId=[your_ID] &ResponseGroup=Medium &SearchIndex=Books &Operation=ItemLookup &IdType=ISBN &ItemId=0593055489

    The most important part of this is the ResponseGroup, which determines how much data Amazon supplies. Medium is a good all-rounder, but there are plenty of more specific request types. Specifying ISBN as the IdType allows the use of 13-digit ISBNs, which a standard ItemLookup doesn’t – Amazon’s documentation claims it doesn’t work on the UK site, but it does.

  3. Test out the request in your browser window, and make sure it’s supplying all the necessary data.
  4. Now it’s time to figure out the XPath statements you’ll need to extract the relevant info. If, like me, you haven’t the foggiest idea what XPath means, don’t worry. It’s pretty easy, and the W3Schools tutorial takes 10minutes to explain everything you’ll need.
  5. In this case, I want to extract the Amazon price, the lowest used price, the URL of the detail page, the (first) author and the title:
    • The price I want is in the FormattedPrice element, underneath the ListPrice node. There’s more than one ‘FormattedPrice’ element in the results, so I need to specify its parent node. The appropriate XPath statement is “//ListPrice/FormattedPrice”
    • The lowest used price is the same element, but under LowestUsedPrice, so: “//LowestUsedPrice/FormattedPrice”
    • The URL is in the “DetailPageURL” element, and there’s just the one of these, so: “//DetailPageURL”
    • Similarly with title: “//Title”
    • There may be multiple authors, and grabbing all of them would mess up the spreadsheet formatting we’ll come to in a minute. So I’ll just grab the first one: “//Author[1]”. The number should, I think, be a zero to adhere to the standards. But, it isn’t – zero doesn’t actually work. Go figure.

    These can all be combined into one XPath statement with | operators, so the final result is:

    “//ListPrice/FormattedPrice | //LowestUsedPrice/FormattedPrice | //DetailPageURL | //Author[1] | //Title”

  6. Ok, fire up a spreadsheet. Create a column for ISBN, price, lowest price, url, author, title and finally another for processing.
  7. GS uses the ‘importXML’ function to import data. This takes two arguments – the URL and the XPath statement. Enter an example ISBN, then, in the ‘processing’ column:

    =importXML(“[your_ID]&ResponseGroup=Medium&SearchIndex=Books&Operation=ItemLookup&IdType=ISBN&ItemId=”&B2,”//ListPrice/FormattedPrice | //LowestUsedPrice/FormattedPrice | //DetailPageURL | //Author[1] | //Title”))

    The &B2 at the end of the URL appends the ISBN number, so be sure to change this to the appropriate cell.

  8. Google should now go fetch the XML file, process it according to your XPath statement and…dump all the data into the ‘processing’ column. If you click on the cells containing the data you’ll see they have ‘Continue’ formulae. This (currently undocumented) formula simply takes data from the array stored in the first cell. So “=CONTINUE(H2, 5, 1)” shows the data from the 1st child (if it exists) of the 5th item of the results of the XPath processing – the book Title. Copy and past these statements to the appropriate cells on the correct row.
  9. We need to stop Google filling the subsequent rows, so enter a random text string in the second row of the processing column, then enter a different ISBN into the first row to refresh the query. Google will again fetch the data, then ask if you want to overwrite existing data. Say no, and it’ll only populate the Continue formulae we just set up on the correct row.
  10. CTRL-D the formulae down a few rows, and voila, you’ve got an easy-to-use ISBN query spreadsheet that uses one query per row. If you want to tidy it up, wrap it in an if statement like:


    isblank() doesn’t seem to work properly with cells that have had content deleted.

Problems with this method:

  • Queries are currently limited to 50. And that’s 50 queries present, rather than active – hiding them behind an if statement based on the contents of another cell doesn’t work. This is easy to get around via copy-and-pasting, but could be annoying in some circumstances.
  • Queries update every two hours. This is unnecessary for this purpose, and I’d personally like to see unlimited one-time only queries that don’t update every 2 hours; hopefully that’ll come.
  • Amazon theoretically have a 1 query-per-second limit. I’ve actually dumped 25 ISBNs at once and had results appear instantly, so I think they must have a flexible policy, but it’s a little risky and I don’t want my account suspended. This is another reason I’d like a one-time-only query option. It’s probably wise to play it safe by cutting-and-pasting the data into another table before closing the sheet.
  • If Amazon doesn’t have a particular datum, the XPath query will be in the wrong order. For example, some annuals and readers digest books have no author listed, so the ‘Continue’ statement that should refer to the 4th field (in this case, the author) instead refers to the title. I can’t think of a way around this without multiple queries.

Hopefully I’ll be able to refine this in the future, but it’s not a bad start, and I’m very impressed that the functionality exists at all.

I made my first bookselling mistake at the weekend

Or, at least, I found out about it this weekend.
Whenever we sell a book on Amazon I receive a ‘sold, dispatch now’ email, or if there’s any problem with payment I get a ‘sale pending’ email telling me to reserve the book until payment goes through / three days pass. Three weeks ago I received a dispatch1 email, quickly followed by a sale pending message. So I reserved the book, but didn’t hear anything so forgot about it. I hadn’t realised quite how it works: ‘sold’ emails are definitive, and only arrive once payment has actually gone through. I’d probably have figured it out if the Amazon emails hadn’t arrived in the wrong order – for whatever reason there was a delay on the initial ‘pending’ email. Not their fault, just unfortunate timing.

So on Saturday I had an email asking why the book hadn’t arrived, which confused me for a couple of minutes. Once I realised what had happened I quickly posted the book and, after double-checking with Abi, completely refunded the guy. I’m nervous every time I check our feedback, now. Obviously it’d be reasonable to leave negative feedback, but we’re currently at 100% positive and one problem would drop us to ~97%, or over 1 in every 50 orders. Not good, when you’re selling online.

I knew the spreadsheet was out by a few pounds, so would probably have picked it up once I properly balanced the tables. Shame I didn’t spot it sooner, but at least I won’t make that mistake again.

  1. despatch? []

100 books sold on Amazon

On July 1st Abi and I started selling second-hand books via Amazon Marketplace. Is fun. Abi handles the grading and classification, while I deal with the distribution.

Today we sold our 100th book! Yays!

I used to work in a record label’s distribution office, and figured setting up my own system would be entertaining. The initial setup and teething problems were hard work for a few weeks, as was finding room for all the books in my small flat, but it now only takes half an hour to process the day’s sales and head down to the local postbox. Abi has all the really hard work, which I feel a little guilty about.

It started because Abi had a large collection of old books she wanted to clear out. We picked up other stock from various friends, house clearances and local wholesalers. Our aim is to reach 1000 books online, both because it’s an arbitrarily good number and it’s about the limit of space in my flat. We’re at ~400 atm, and hoping to top 1000 before Christmas.

There are hundreds, if not thousands, of booksellers on Amazon, and as with any online store reputation is key. Approx. 30% of people leave feedback, and I think our numbers are just now getting high enough to look trustworthy. I’ve tried a couple of methods to make us more visible. Most sellers post second-class in 3-4 days, but my theory is that people are always impatient to receive goods – I usually am – so we’ve advertised each book as aiming to be posted within 24h in the week, and always first-class. We’d make more money posting second-class, but hopefully this gives us a slight edge.

There are, incidentally, no temporal sales patterns. A few weeks ago we sold eight on the Monday, and nothing else until Thursday. The only trend I’d suggest is that we sell more in the evening, but I wouldn’t swear to it. Genre-wise, the 3-for-2 style paperbacks are without doubt the first to sell, but otherwise it’s fairly random.

We use Google Docs and Spreadsheets so we can both work on the data simultaneously, and I’ve been very impressed with the depth of the software. For example, I was quickly able to set up a system where Abi enters the weight of a book and it automatically calculates the likely postage cost1 so she can set an appropriate total price (Amazon pay you a fixed amount of postage per book, regardless of weight). I’m not much of an Excel guru and am sure this is very easy offline, but I was still chuffed to find it’s possible with GS. It’s much less daunting than Excel, too. Once I learnt the tricks – e.g., always right-click and ‘copy’ rather than CTRL-C, as the former uses clever coding that preserves cell formatting – it’s handled almost everything I’ve needed. Given that Gmail controls our email too, I feel genuinely bad that Google are getting nothing out of it. I’d happily pay a monthly subscription.

Initial expenses were enough that we haven’t quite recouped them yet. We have a big red number that’s slowly increasing towards profit…That’ll be a good day too 🙂

  1. via a lookup table rather than any clever Royal Mail web services []

Seduction Story

BoingBoing today mentioned Neil Strauss’ book ‘The Game‘. It’s the story of the author’s attempts to attract women by learning from so-called seduction societies and following a strict set of rules and techniques. I was intrigued by the story, and added the book to my wish list. Now Amazon is recommending I buy ‘The System: How to get Laid TODAY’ and ‘The LayGuide: Rules of the game’. This isn’t really surprising when you read The Game’s reviews, which contains many testimonies from people who apparently bought the book to find out the techniques. I really was just interested in the story. Now I’m worried that anybody glancing at my wishlist will get the wrong impression 🙂

Of course, my current method pretty much involves hoping I’ll heroically rescue somebody from the path of a speeding train and lifelong romance will ensue, so it’s not like there’s no room for improvement. But the idea of seduction techniques, even if they work, just seems wrong.

Wishlist Updates

Amazon recently updated their wish-list system, and I now find it much more user-friendly. There’s a rating system to distinguish between must have1, love to have2, like to have3, thinking about it4 and don’t buy this for me5. You can also finally make multiple changes at once before saving.

An annoyance at Amazon is the absence of the wishlist button on some pages. If you can’t buy the product new, you can’t add it to your wishlist. Sports Night, for example.

I spotted Sports Night on obscure cable channel ABC1 a few weeks back. I’d heard of the show but never actually seen it. I knew it was written by Aaron Sorkin, creator and writer of The West Wing6, as well as movies A Few Good Men and The American President, so caught a few episodes and quite enjoyed them. If you’re a West Wing fan who’s seen The American President, you’ll know what I mean if I say Sports Night feels very familiar. The dialogue is fast, intelligent, witty and laced with thoughtful asides, plus the show moves along very quickly. The actors are also recognisable! Aside from the laughter track, which feels like it was added on top by worried executives, it seems like a decent show.

Reading around this morning, it seems Sports Night was cancelled back in 2000, but the DVD box-set has all 45 episodes! I quite fancy that 🙂 It’s not available in the UK, but Amazon list it as an NTSC import, yet you can’t add it to the wishlist. I’ll just have to nag people about it, I guess 🙂

Since I’m mentioning it anyway, I might as well add a link to my wishlist. Hope springs eternal…

  1. West Wing Series 6 []
  2. The Complete Calvin and Hobbes – oh, wow []
  3. Eye to the Telescope by KT Tunstall []
  4. Dom Joly’s made-up autobiography []
  5. for things I know I should want, but actually don’t – Sebastian Faulks books, for example []
  6. Series 1-4, anyway []

The wish list, maybe

You’ll need to view the larger image to see it properly, but this is what just appeared on my Amazon account:

An Interesting Amazon Recommendation

The top recommendation, based on my clicks, is “100 Naked Girls”. Believe it or not, I haven’t been searching for naked women on Amazon recently. Or ever, as far as I can remember. My most recent clicks were various toasters and saucepan sets, which aren’t terribly kinky. Hmmm, maybe the engine’s just really insightful 🙂

5 minutes later and the book has vanished, to be replaced with “Swan 16Pce Sainless Steel Cutlery Set”. Go figure.

Update: Turns out that somebody who bought one of the cutlery sets also bought this book. My new recommended item is ‘Shaven Angels 2’. Do you think somebody ordered porn with their cutlery, or cutlery with their porn?