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.


Improved credit card payments

We updated the credit card payment module to a new major version.

For customers:

it should be much faster now and
„will issue invoices, receipts, and other customer facing emails to that customer with an appropriately translated email, payment page, or PDF. 15 languages are currently supported.“

For us:

„No more pending orders for card payments and other synchronous payment methods. When a payment fails, there won’t be a Pending/Canceled order in the admin area.“
and
„95% reduction in incomplete payments in the Stripe dashboard. When customers arrive at the checkout page, no payments are created in „Incomplete“ status.“

DHL updates in shop

We updated to a new major version of the DHL integration.
(After fiddling with dependencies for a while.)
For customers, the following changes should be visible:

  • On the pickup location finder map in checkout, if available, show description of the building/facility etc. a service point is located within.
  • Select „Named Person Only“ service with DHL Paket National shipments.
  • Select „No Neighbor Delivery“ service with DHL Paket National shipments.

New search criteria „lifecast“

We offer a range of canine and equine toys life cast or 3D scanned from real animals.
(Obviously they simply don’t mind and are never hurt in any way.)
To make it easier to find them, we added a new attribute and a filter criteria for them.

shop update

We just performed a major update of our shop software including the move to a new major PHP version.
Everything seems to be in order.
However if you notice anything not working as it should, please tell us, so we can have a look and fix it!