Feeds-module & Übercart

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Dit artikel komt oorspronkelijk uit maart 2014. Op veel plekken is het achterhaald.

In Drupal 7 is de Feeds-module de standaardmodule voor importeren en bijwerken van nodes en vocabulaires. Deze module bestaat ook voor Drupal 6. In sommige situaties is Feeds de aangewezen oplossing, soms Taxonomy CSV import/export, en soms misschien zelfs Node Import. Desalniettemin: De convergentie gaat richting Feeds. Dus houd deze module in de gaten.

Dit artikel richt zich voornamelijk op de volgende situatie: Is het mogelijk om Übercartproducten, inclusief meerdere taxonomieën en afbeeldingen, bij te werken mbv. Feeds? Zoals je aan het eind van dit artikel kunt zien: Nee.

Feeds & Übercart

Gebruik de Ubercart Feed Mappers-module (aka. uc_feeds) voor toegang tot Übercart-velden. Dat lijkt prima te werken. Alleen kun je niet zondermeer SKU instellen als unieke veld [1]. Daar lijkt een patch voor te bestaan, maar die kreeg ik zo snel niet aan de praat: Ik kan prima uit de voeten met Title als primaire sleutel.

Feeds, afbeeldingen & Übercart

Afbeeldingen kunnen gemakkelijk mee-geïmporteerd worden met Übercart-producten:

Importbestand. Veld Image bevat pad+bestandsnaam
En de bijbehorende mapping
  • De velden Image Title en Image Alt Text zijn in Übercart 3 standaard niet beschikbaar. Ik vermoed een bug [2] of een module die ik niet heb aangezet. Hoe dan ook: Dat heeft nu geen prioriteit
  • Afbeeldingen worden tot op zekere hoogte automatisch geschaald. Alleen niet in productdetailweergave. Voorlopige oplossing: Afbeeldingen vantevoren schalen.

Nodes met platte taxonomieën met één taxon per node

Om nodes te importeren die platte taxonomische gegevens bevatten, gebruik:

Importbestand: Er is maar één term per vocabulaire. Deze vocabulaire bestaat al, en het is cruciaal dat deze records (Basic Page) gekoppeld worden met de bestaande taxons
Mapping. Omdat het maar één term betreft, komt er geen Tamper-plugin aan te pas. Daarom gaat de referentie per Term name. Auto create heb ik uitgezet. Jammer alleen dat er geen foutmelding optreedt als een term niet overeenkomt

Nodes met platte taxonomieën, meerdere taxons per node, eenvoudig scheidingsteken

Werkt, maar soms gaan er dingen mis:

Importbestand: Eén record met twee taxons, gescheiden door een dubbele streep, zonder spaties
Importbestand: Mapping: Referentie middels Term name. De Explode-plugin retourneert een array
Explode-plugin: Scheidingsteken

Nodes met platte taxonomieën, meerdere taxons per node, complex scheidingsteken

Werkt, maar soms gaan er dingen mis:

Importbestand: Eén record met twee taxons, gescheiden door een dubbele streep met spaties
Importbestand: Scheidingsteken is zó complex, dat ik het hier niet kan herhalen

Nodes met hierarchische taxonomieën

In tegenstelling tot de Node Import-module, kun je met Feeds niet zomaar velden impoteren die hierarchische taxonomische gegevens bevatten. Dit kan wel met de Custom Feeds Tamper Term Hierarchy-module. Dit is een plugin voor Feeds Tamper. Een paar details:

  • Scheidingsteken: Dat mag complex zijn, maar een spatie moet gewoon als spatie worden ingevoerd. %s||%s snapt-ie niet
  • Eerst explode, daarna dit custom-ding
  • Mapper-referentie: Term ID
  • Helaas worden niet-bestaande termen altijd automatisch aangemaakt. Daardoor heb je minder controle op fouten.

Voor veel meer: Custom Feeds Tamper Term Hierarchy-module.

Bestaande gegevens bijwerken

Feeds kun je gebruiken om bestaande nodes of taxonomieën bij te werken. Velden die niet van een nieuwe waarde worden voorzien bij zo'n update, blijven onaangeroerd. Bij Node Import was dit een probleem, waar Node Import Update geen afdoende oplossing voor was. Dit is een sterk argument om te standaardiseren op Feeds.

Bijwerken van een Simple Page-node met taxonomie en afbeelding. Ging prima
Bijwerken van een Übercart-product. Alle overige velden bleven onaangeroerd, inclusief taxonomie, SKU en afbeelding

Platte vocabulaires importeren

Feeds kan zonder probleem platte (niet-hiërarchische) vocabulaires importeren of bijwerken. Belangrijk: URL's moeten corresponderen met het veld Path Alias!

Hiërarchische vocabulaires importeren

En hier zijn we aangeland bij de cutting edge. Hier houdt mijn kennis op, althans voor dit moment. Ik heb een test gedaan met een explode plugin en een custom-dinges-plugin, maar dat was 'm niet, en terecht: Het hiërarschische karakter van een compleet pad, ging verloren.

Op dit moment (maart 2014) heb ik Taxonomy CSV import/export (Drupalmodule) gebruikt. Eén van de bestverzorgde modules die ik ken.

Übercart-producten met bestaande platte taxons

Met bestaande platte taxons bedoel ik, dat de taxonomie al op de site staat, en dat die gebruikt moet worden. Er mogen dus geen termen on the fly worden aangemaakt.

Importbestand, inclusief twee taxons met complex scheidingsteken
Mapping inclusief term name referentie, want zo werkt de explode plugin
Gelukt!

Übercart-producten met verschillende taxonomieën

En gelukkig werkt ook dat:

Importbestand met twee hierarchische paden (Cat) en twee platte taxons (Tags)
Mapping
Tamper-plugins

Storing bij initialisatie

Ik wil 660 producten importeren, met twee joekels van catalogi daarachter, met ik geloof, zo'n 50.000 verschillende paden. Het import-proces lijkt te hangen bij het begingscherm: Initializing. Ook als ik slechts 10 producten importeer.

  • Drush schijnt erg geschikt te zijn voor dit soort werk
  • Feeds Tamper schijnt een vertragende factor te zijn, net als Pathauto in het verleden
  • Het is mogelijk om het in batches te doen: Eerst de productgegevens, daarna de eerste taxonomie, daarna de tweede taxonomie
  • Bijwerken van een aantal zaken, zoals URL's, kan ook via VBO.

Zie ook

Bronnen

Modules

Hierarchische taxonomieën

Feeds-module