GPSR-related images upload in bulk (Amazon)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

This article is about a specific case for a customer: Include GPSR-related images in product upload files - Nov. & Dec. 2024

Context

  • This needs to be done for 8 EU Amazon marketplaces: Amz.be, Amz.de, Amz.es, Amz.fr, Amz.it, Amz.nl, Amz.pl, Amz.se
  • With about 10.000 to 40.000 products per marketplace → 200.000 products in total
  • In 7 specific languages for the various marketplaces: Dutch, French, German, Italian, Polish, Spanish, Swedish → About 29.000 products per language
  • This company makes use of pan-European FBA with a French warehouse: For FBA products, French is the primary language
  • Building International Listings is active: There is an overlap in the impact of various templates.

What I learned from the various actions discussed below in this article:

Template

As of December 2024, these seem the best template for me for updating existing product information:

  • It works for all Amazon market places - Independent of language
  • This probably works for updating any static field. So far, I've only used it for updating field other_image_url_ps01 (product package photos, related to GPSR)
  • The template contains two template ID fields, which is really the minimum number: When the second field is ommitted, the file is initially accepted, but afterwards, nothing will be updated
  • When adding the subsequent ID field, nothing extra is gained. When adding one more field, you get a nice preview after uploading, but that code isn't portable amongst market places, hence not worthwhile
  • The template ID field in cell A1 indicates that this file is of the type Inventory Files for Specific Categories
  • The template ID field in cell B1 is just a timestamp
  • Use as a text file with tab as field delimiter, ISO 8859-01 for character encoding and without the need to envelop values within characters like ' or "
  • Field item_sku is used to identify the product
  • Field update_delete is usually needed, but when updating only one field, it might actually be omitted
  • In the example below, only one field is updated: other_image_url_ps01
  • Note that the second and third row are identical: Originally, the second row contains field names (or descriptions) in a local language and the third row, the field labels in English as done here. The second row can be English, but it cannot be deleted. Hence these strange 'double row'

With 3 columns

Just the header:

TemplateType=fptcustom	Version=2024.1206
item_sku	update_delete	other_image_url_ps01
item_sku	update_delete	other_image_url_ps01

Including a sample product row:

TemplateType=fptcustom	Version=2024.1206
item_sku	update_delete	other_image_url_ps01
item_sku	update_delete	other_image_url_ps01
my_sku_007	PartialUpdate	https://media.example.nl/gpsr/it/my_sku_007.jpg

With 2 columns

This seems to work, but I may need to check a bit more to make really sure that nothing gets removed - I used this for the last two uploads on Amz.nl on 2024.12.09:

TemplateType=fptcustom	Version=2024.1206
item_sku	other_image_url_ps01
item_sku	other_image_url_ps01

Unblock Amazon

Make sure that Amazon isn't blocked from fetching these images. Changes are, that Amazon doesn't fetch images from always the same IP address. So, when a remarkable low number of images get fetched, maybe check these:

  • Apache VHDF files (/etc/apache2/sites-available/)
  • Firewall rules, including those from Fail2Ban: sudo iptables -L -v -n
  • Check Apache access log: sudo cat /var/log/apache2/access.log | grep amazon

Other

When inserting SKUs in the template file (opened in Calc), make sure that the SKU column is of the type text. Otherwise, SKUs like 01234 get changed to 1234 which will render it useless

Procedure

Here's an impression of how I do the whlole procedure. All files are in just one directory (and usually a subdirectory for the generated images).

Get a list of SKUs

We first need a list of all SKUs that need to be updated:

  • Go to Reports » Inventory reports » Download a report to download a report that contains all SKUs (field item_sku). While writing this article, I use the Category Listings Report that was requested a couple of days ago. After copying the SKUs, we don't need this file (or files, when there are more than 10,000 products) anymore
  • Copy all SKUs to a separate text file. I call these usually skus-xx-all.txt with xx the country code of the Amazon marketplace.

I usually also need a test file with just five SKUs. I usually call this file skus-xx-test.txt

Create images

  • Use script amz_gpsr_create_package_photos.sh for creating images
  • Copy the image template to the working directory
  • For testing: Use the test-sku-file mentioned above + check the results and maybe adjust placing of sku on the template
  • Everything configured? Start the script with sku-all-xx.txt and come back in about 15 minutes (for 30,000 images on my not-so-new laptop).

Create upload files

  • See the upload files mentioned elsewhere at the beginning of this article - Open in Calc
  • Copy SKUs into these files (max 10,000 rows per file, including header rows)
  • Include

FBA

FBA was relatively easy to do, somehow. Maybe because of BIL and/or pan-European warehousing.

Amz.de - Downloaded Category Listing Report

Using a downloaded Category Listings Report - Tried this a couple of times, but never succesfully (Dec. 2024)

Download

  • Of the various reports at Reports » Inventory reports, the Category Listings Report (All) is the only report that contains image-related fields + current product data
  • The download is a zip file containing files file0.xlsm... file3.xlsm
  • TemplateType (value A1): fptcustom.

Edit

  • Kept the first five rows
  • Added a value for field other_image_url_ps01.

Upload

  • File was recognised as Multi-Marketplace Listing Template
  • 0 out of 0 recognised lines, were succesfully processed
  • I tried this several times, but none were succesfull.

Amz.de - Using upload spreasheet

Choose the right template!

Choosing the correct template at Catalogue » Add products via Upload » Download spreadshet » Choose a template to get started, seemed to be the bottleneck:

Choose Update product details
Choose the link product template in the middle line
Just type something at the search bar - So far, the results have always been irrelevant. Subsequently, click on Browse via product category - this works much better
The only thing we need, is the correct product type, which is TOOLS in this case. As soon as it appears, click Select
This is all we need here. Somehow, I though I need to click on Select somewhere, and get stuff to move to the empty pane below Electric Motor - Nope: We're done here
I have the impression that I prefer the non-beta version, but that's a detail → Click Generate spreedsheet

Edit

  • In the beta-version of this file, for the first 5 products, I added links to the GPSR-product-package-photo
  • In the non-beta version of this file, for the next 5 products, I added similar links.

Results

Beta-version of this file: It got processed, and at least 1/5 products got accepted + a decent report available for troubleshooting
Non-Beta-version of this file: 100% score! Also: Directly after uploading, the sites gives a quite nice initial evaluation, including displaying information from the file

Errors beta-file

  • The French GPSR-related product package photos were not found - That's mentioned here, confusingly
  • In one case, the German GPSR-relate product package photo wasn't found

Ideas about addressing these issues:

  • In a browser, these links just worked. Maybe I need to escape stuff, like spaces with %20 - I think I read that somewhere
  • Maybe do this also for the French 'original' uploads. Also: Maybe not everything was uploaded in time

Conclusions & recommendations

  • Only use the non-beta file: Instant feedback + less issues + might work with plain text (see next chapter)
  • When using the non-beta template, spaces probably don't need to be escaped
  • Use the 'non-beta template discussed here
  • Along the way, figure out what can be deleted. Maybe: Check if a .tsv works
  • Paste SKUs always as text: There are skus like 010102 and when pasted as number, the leading 0 gets lost.

Columns that seem always needed:

  • feed_product_type
  • item_sku - This is the only field used as SKU
  • brandname - Maybe can be ommitted?
  • update_delete - Surely needed

Amz.de - Text file

File creation

  • I used the non-beta template file mentioned before
  • Included the next five SKUs
  • Copy pasted all contents to a new empty Calc file
  • Exported as text file with these settings:
    • tab as separator
    • Latin 1 (ISO 8859-1 or -11?)

Upload

  • Again: the non-beta version of this file, has a nice preview at uploading, which the beta version of the file, doesn't
  • File was identified as Inventory Files for Specific Categories - Good!

Results

Amz.de - All products

  • Enough testing - Let's get to business
  • Done.

Amz.de - Without last id field

Uploading - So far so good: The file gets accepted, but this warning emerged + no preview
Juhu! No problem to remove this last field!

There is always more to hack...

Changes

These were the four 'id fields', in cells A1 do D1:

  • A1: TemplateType=fptcustom
  • B1: Version=2024.1206
  • C1: TemplateSignature=VE9PTFM=
  • D1: (with added linebreaks):
settings=attributeRow=3&
contentLanguageTag=de_DE&
dataRow=4&
feedType=113&
headerLanguageTag=de_DE&
isEdit=false&
isProcessingSummary=false&
labelRow=2&
metadataVersion=MatprodVkxBUHJvZC0xMTQ0&
primaryMarketplaceId=amzn1.mp.o.A1PA6795UKMFR9&
ptds=VE9PTFM%3D&
reportProvenance=false&
templateIdentifier=cc890ed3-67bf-46d2-b6c9-2f9624001963&
timestamp=2024-12-06T13%3A01%3A07.383Z

Would be nice if I can remove that last cell + replace the second (German) row with English, as it would make the template usable for all sites...

Uploading

See also