Feeds-module (Drupal): verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
(Jeroen Strompf heeft pagina Feeds-module (Drupal) hernoemd naar Feeds & Drupal Commerce)
 
Regel 1: Regel 1:
#DOORVERWIJZING [[Feeds & Drupal Commerce]]
+
In Drupal 7 lijkt de ''[https://drupal.org/project/feeds Feeds-module]'' de standaardmodule te zijn 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 (Drupalmodule) | Taxonomy CSV import/export]]'', en soms misschien zelfs ''[[Node Import (Drupalmodule) | 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 ''[https://drupal.org/project/uc_feeds 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 [https://drupal.org/node/1039616]. 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:
 +
 
 +
{|
 +
|[[file:20140329-1044.png|thumb|Importbestand. Veld ''Image'' bevat pad+bestandsnaam]]
 +
|[[file:20140329-1046.png|thumb|En de bijbehorende ''mapping'']]
 +
|}
 +
 
 +
* De velden ''Image Title'' en ''Image Alt Text'' zijn in Übercart 3 standaard niet beschikbaar. Ik vermoed een bug [http://xenthex.com/node/15] 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:
 +
 
 +
* Feeds
 +
* [https://drupal.org/project/feeds_tamper Feeds Tamper-module]
 +
* Explode-plugin.
 +
 
 +
{|
 +
|[[file:20140329-1322.png|thumb|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]]
 +
|[[file:20140329-1323.png|thumb|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:
 +
 
 +
{|
 +
|[[file:20140329-1330.png|thumb|Importbestand: Eén record met twee taxons, gescheiden door een dubbele streep, zonder spaties]]
 +
|[[file:20140329-1342.png|thumb|Importbestand: Mapping: Referentie middels ''Term name''. De ''Explode-plugin'' retourneert een array]]
 +
|[[file:20140329-1346.png|thumb|Explode-plugin: Scheidingsteken ||]]
 +
|}
 +
 
 +
== Nodes met platte taxonomieën, meerdere taxons per node, complex scheidingsteken ==
 +
 
 +
Werkt, maar soms gaan er dingen mis:
 +
 
 +
{|
 +
|[[file:20140329-1354.png|thumb|Importbestand: Eén record met twee taxons, gescheiden door een dubbele streep met spaties]]
 +
|[[file:20140329-1355.png|thumb|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.
 +
 
 +
{|
 +
|[[file:20140321-1027.png|thumb|Bijwerken van een Simple Page-node met taxonomie en afbeelding. Ging prima]]
 +
|[[file:Screenshot-2014.03.21-001.png|thumb|Bijwerken van een Übercart-product. Alle overige velden bleven onaangeroerd, inclusief taxonomie, SKU en afbeelding]]
 +
|}
 +
 
 +
== Platte vocabulaires importeren ==
 +
 
 +
{|
 +
|[[file:20140328-2001.png|thumb|''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.
 +
 
 +
{|
 +
|[[file:20140329-1403b.png|thumb|Importbestand, inclusief twee taxons met complex scheidingsteken]]
 +
|[[file:20140329-1404.png|thumb|Mapping inclusief ''term name'' referentie, want zo werkt de ''explode plugin'']]
 +
|[[file:20140329-1406.png|thumb|Gelukt!]]
 +
|}
 +
 
 +
== Übercart-producten met verschillende taxonomieën ==
 +
 
 +
En gelukkig werkt ook dat:
 +
 
 +
{|
 +
|[[file:20140329-1437.png|thumb|Importbestand met twee hierarchische paden (''Cat'') en twee platte taxons (''Tags'')]]
 +
|[[file:20140329-1442.png|thumb|Mapping]]
 +
|[[file:20140329-1443.png|thumb|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.
 +
 
 +
* https://drupal.org/node/1289918 - Bulk update stuck on initializing - is there a command line I could use?
 +
* https://drupal.org/node/867578 - Add drush commands for bulk alias updating/deleting
 +
* https://drupal.org/node/608408 - Drush integration for Feeds
 +
* https://drupal.org/node/1219296 - Partial import then ajax message - 500 error
 +
 
 +
== Conclusie: Storingen & problemen ==
 +
 
 +
Uiteindelijk werkt het niet:
 +
 
 +
* Taxonomische termen die niet bestaan, worden door Feeds automatisch toegevoegd zonder foutmelding. Dat is heel vervelend, want daardoor raakt de taxonomie vervuild
 +
* Tijdens importeren van productgegevens, bleef Feeds zich verslikken in het Catalog-veld.
 +
 
 +
== Zie ook ==
 +
 
 +
* [[Productgegevens & hierarchische taxonomieën]] - Het algemene Übercart-importprobleem, los van een specifieke oplossing
 +
* [[Custom Feeds Tamper Term Hierarchy-module]] - Inclusief voorbeelden gebruik Feeds
 +
* [[Taxonomy CSV import/export (Drupalmodule) | Taxonomy CSV import/export]]
 +
* [[Node Import (Drupalmodule) | Node Import]].
 +
 
 +
== Bronnen ==
 +
 
 +
''' Modules '''
 +
 
 +
* https://drupal.org/project/feeds
 +
* https://drupal.org/project/feeds_tamper
 +
* https://drupal.org/project/uc_feeds
 +
* https://drupal.org/node/1039616 - uc_feeds: Make Model/SKU a unique target
 +
 
 +
''' Hierarchische taxonomieën '''
 +
 
 +
* https://www.google.com/search?q=drupal+feeds+import+hierarchical+taxonomy
 +
* https://drupal.org/node/1159628 - How do you import a hierarchical taxonomy with feeds? (Drupal 6, 2011): in 2012 me nogal verdiept in deze posting, zonder resultaten
 +
* https://drupal.org/node/2194457 - Import Nodes with hierarchical taxonomy terms: Helpt weinig. Legt uit dat alleen ''Feeds Tamper'' onvoldoende is.
 +
* https://drupal.org/node/1152940 - Feeds term import with hierarchy and weight: Mogelijk een oplossing
 +
* https://www.google.com/search?q=drupal+feeds+node+import+including+hierarchical+taxonomy
 +
* https://drupal.org/node/1319278 - Support automatic importing of the term hierarchy for nested taxonomy terms: Wie weet: Thread is flink gegroeid in afgelopen anderhalve jaar
 +
 
 +
''' Feeds-module '''
 +
 
 +
* http://drupal.org/project/feeds - Project home page
 +
* http://drupal.org/node/622696 - Community Documentation for Feeds
 +
* http://drupal.org/node/622698 - The site builder's guide to Feeds
 +
* http://drupal.org/node/856780 - List of implemented mappers - Inclusief veldtype ''taxonomy''
 +
* http://drupal.org/node/1307732 - 7.x-2.x Feeds: Common Tasks
 +
* http://ring.ciard.net/consuming-agrifeeds-drupal-feeds - Consuming Agrifeeds with Drupal Feeds

Versie van 9 aug 2016 08:01

In Drupal 7 lijkt de Feeds-module de standaardmodule te zijn 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.

Conclusie: Storingen & problemen

Uiteindelijk werkt het niet:

  • Taxonomische termen die niet bestaan, worden door Feeds automatisch toegevoegd zonder foutmelding. Dat is heel vervelend, want daardoor raakt de taxonomie vervuild
  • Tijdens importeren van productgegevens, bleef Feeds zich verslikken in het Catalog-veld.

Zie ook

Bronnen

Modules

Hierarchische taxonomieën

Feeds-module