Lots of new photos

Since we made new photos of the new Serpente Toy anyway,
we replaced photos of some older toys and made a ton of new size comparison photos.

We have new photos of:

and new size comparisons with

Cleaned up manufacturer logos

We cleaned up the manufacturer logos to have more similar sizes and changed the ordering for a visually pleasing view.
This is something we wanted to improve for a long time now.

More sort options

We updates the shop software to offer more option on how to sort the list of products.
So you have an easier time to find what you are looking for.
At the moment only „New Arrivals“ is added but after a while „Best Selling“ and „Most Viewed“ will also be offered.
These take a while to gather enough data.

Improved navigation, filtering and translations

We noticed that visiting the large categories in the shop with a mobile browser can be overwhelming.
So we added headers to the „species/canines“ category to aid in narrowing down the selection if you choose to. In mobile browsers these will be shown below each other instead of a horizontal row.
We have specifically chosen example products that highlight the large variety of different products that can be found.
We also added a number of additional yes/no product attributes to be used in filtering and advanced search.

Another thing we did was to update the general German translation of the shop as many words updated or added in recent updated where missing a translation yet.
Some German and English wording surrounding the use of filters and sorting have been modified to be easier to understand.

fixing 404

In the HTTP log we noticed a number of „404 not found“ errors and fixed them.

Technical background

Turns out that if you visit a link (you don’t have a session yet) to an english category
and the shop automatically switches you to German (because your web browser says that you prefer German to English),
it will look for the English category name on the German server.

We added a number of redirects to fix this for all cases we could find.
there can still be some left over and we will keep our eyes open.

Fixed a strange bug that existed for many, many years

The shop software is really complex.
We don’t write it outself.
It does contain some bugs and that will always be the case to some extend.

The issue

Given that products with their many properties to support filtering, searching, categories, multiple languages, … are complex, we often copy an existing product to create a new one.
Many years ago we noticed an issue with URL redirects of copied products conflicting with the product that was originally copied. Even as both are supposed to have different URLs.

The cause

That visible issue exists for many people and can have dozens of possible reasons.
So finally, after all these years, we stumbled across the reason it existed for us.
Every product has a url_key. That is unique and gets changed automatically by appending „-1“ when copying a product.
It turns out, that a second, invisible property „url_path“ existed. It was not shown or mentioned anywhere at all.
For a limited time in the past, there was a bug.
When copying a product, this invisible property was not changed.
The resulting duplicates created the error messages.
So finally we knew what to look for and could find all affected products with a complex database query. To not risk breaking anything, we fixed every broken product manually in the database instead of deleting the entire table and have it be reindexed automatically.

New Species selection screens

We have completely replaced the aging species selection in English and German.
The new layout works better on mobile devices (e.g. smaller images just for mobile)
and has a lot more categories.
So you can find exactly what you are looking for fast.

We also noticed a number of toys that where in the wrong category and assigned them correctly.

iDEAL and Stripe Link

We have activated Link (by Stripe) as a wallet to pay from and have requested iDEAL for the Netherlands to be activated as a payment method in the shop.

(Not much else to say about that)

Improved statistics in preparation for Eurofurence

This was quite a lot of programming work today.
This is one of the many tasks that don’t come to mind when you hear „operating a webshop“.

Last year

We can not bring all toys to Eurofurence. There’s just too many of them.
So we have to choose.
In storage, our toys are organised on boxes of up to 6 different models.
Only models of the same manufacturer end up in a box.
In preparation for Last year’s Dealers Den we wrote 2 new statistics:

  • How popular are the products in all boxes of a manufacturer.
    • So we can make boxes with only popular and only unpopular toys
  • What are the N best boxes in terms of the popularity of their toys
    • So we can pack the most popular ones
  • Export this list of boxes in a format our custom „price list“ printing program understand
    • So the printed catalogues in the Dealers Den queue only contain products we actually have at Eurofurence.

We already made a switch to ignore products that are currently out of stock, so they won’t skew the popularity of a box.

This year

What we still had to do manually is to make sure all products that are new
(where not in the shop at the last Eurofurence) are in boxes we bring to the Dealers Den.
Especially since they may be so new, that there was no chance of them becoming popular yet.
So we added the ability to import this information into the statistics database,
store it, display it as additional details next to products and boxes, took care of all the special cases, debugged everything and finally added a second switch to ignore or use this information when sorting the popularity of products and boxes.