0
Answers
Vote up!
0
Vote down!

Accelerate your Drupal Commerce and save space

Who does not know it?
It creates a product with 100 product variations and the same picture.
As an example: A locking cylinder in length 30/30 of 3 to 20 keys.
More in lengths 30/35, 30/40, 30/45, ..., 50/60.
So you have, even if you look at only the Nodes, quickly huge amounts of data from "a" picture on the server and the DB inflates also infinity.

Modules are intended to prevent the are there, but do not seem to be working with feeds together.

This problem can be solved quite unspectacular.

Here we go step by step.

After we have imported our product portfolio, we are in the DB table "file_managed".
It happens that the top "fid" refers to "image-name_0.jpg".
We need the "fid" image-name.jpg ".

Next, we invite us from the DB table "field_data_field_image" or "field_data_field_your-fieldname" down as "CSV file" and open it.

In the column "fid" we will copy the "fid" of "image-name.jpg" into all these fields, which have the same image. Import and save in the DB.
Now import the same file to "field_revision_field_your-fieldname".

Clear cache, run cron.

Now grab all the products in the same image file and all other image derivatives can be deleted.

Next, we export the table "file_managed", these open and delete here unneeded rows, which are aimed at the image derivatives.
Upload, Clear cache, run Cron.

Who has very many products, I advise:
For each product its own image directory path.
For each product its own field.
(Image-field-1, image-field-2, etc.)

I hope this helps you a little bit.
Best regards
Frank Wiedenfeld, https://tecmawi.eu

Translated with Google

----------------------------------------------------

Wer kennt es nicht?
Man legt ein Produkt an mit 100 Produktvariationen und dem selben Bild.
Als Beispiel: Ein Schließzylinder in Länge 30/30 mit 3 bis 20 Schlüsseln.
Weitere in Längen 30/35, 30/40, 30/45, ..., 50/60.
So hat man, selbst wenn man es auf die Nodes beschränkt, ganz schnell riesige Datenmengen von "einem" Bild auf dem Server und die DB bläht sich auch unendlich auf.

Module die das verhindern sollen gibt es zwar, doch scheinen die nicht mit feeds zusammen zu funktionieren.

Dieses Problem kann man recht unspektakulär lösen.

Hier gehen wir Schritt für Schritt vor.

Nachdem wir unser Produktportfolio importiert haben, sehen wir uns in der DB die Tabelle "file_managed".
Es kommt vor, dass die oberste "fid" auf "image-name_0.jpg" verweist.
Wir benötigen die "fid" image-name.jpg".

Als nächstes laden wir uns aus der DB die Tabelle "field_data_field_image" beziehungsweise "field_data_field_your-feldname" als "CSV-file" runter und öffnen dieses.

In der Spalte "fid" kopieren wir nun die "fid" von "image-name.jpg" in alle nachfolgenden Felder, welche das selbe Bild haben. Speichern und in der DB importieren.
Nun improtieren wir die selbe Datei nach "field_revision_field_your-fieldname"

Cache löschen, Cron ausführen.

Jetzt greifen alle Produkte auf die selbe Bilddatei zu und alle anderen Bildderivate können gelöscht werden.

Als nächstes exportieren wir die Tabelle "file_managed", öffnen diese und löschen hier die nicht mehr benötigten Zeilen, welche auf die Bildderivate zielen.
Hochladen, Cache löschen, Cron ausführen.

Wer sehr viele Produkte hat, dem rate ich:
Für jedes Produkt einen eigenen Bildverzeichnispfad.
Für jedes Produkt ein eigenes Bildfeld.
(image-field-1, image-field-2, etc.)

Ich hoffe das hilft euch ein wenig.
Beste Grüße
Frank Wiedenfeld, https://tecmawi.eu

Übersetzt mit Google

Frank W. HH-Germany
on September 11, 2016