Importeren van groot aantal producten in Virtuemart 2.0 via export vanuit Virtuemart 1.1

English: VirtueMart Logo with slogan
English: VirtueMart Logo with slogan (Photo credit: Wikipedia)

Het is gelukt: een groot aantal producten plaatsen binnen een nieuwe Virtuemart webwinkel via het importeren van een enkele database bestand. Even kort: Virtuemart is het meest bekende webwinkel systeem (ecommerce solution) van Joomla. En we zijn er inmiddels aan gewend dat Joomla van het ene systeem op het andere overstapt (van 1.5, 1.7 naar 2.5 en direct door naar 3.0) en zo heeft Virtuemart dat ook eenmaal gedaan: de stap van 1.1 naar 2.0 Dus mocht een uitgebreide webwinkel hebben in Virtuemart en u wilt upgraden naar versie 2.0 dan is deze blogpost mogelijk interessant.

Mijn wens was niet om te upgraden. Ik was gewoon bezig een nieuwe Joomla / Virtuemart website te maken en ben ook daarover een blogpost begonnen. Kijk hier. Het uitgangspunt is een template van icetheme: store4. Na de installatie ziet de website er wel mooi uit maar de inhoud komt dan natuurlijk totaal niet overeen met de gewenste inhoud. Omdat het een nieuwe website betreft, gaat het in dit geval om een Joomla 2.5.9 website met Virtuemart 2.0.18. Mijn oude website daarentegen is dan wel een Joomla 1.5 website met Virtuemart 1.1.9, maar die zit wel vol met designs en producten die ik ook werkelijk te beiden heb. De nieuwe website is te vinden via: http://www.detemplatewinkel.nl (het actuele resultaat) en de oude via http://www.cheap-web.nl/ (ook een resultaat).

Wat heb ik geprobeerd wat niet werkte?

Niet onbelangrijk: opschrijven wat niet lukte zodat ik in de toekomst geen zaken onnodig dubbel ga uittesten.

  • De component “Import images as products” waar ik eerst nog zo enthousiast over was. Kijk daarvoor hier. Maar nee, de component blijkt veel bugs te hebben en gewoon niet te werken zoals ik wil. Kijk hier voor mijn forum berichten hierover: http://joomdonation.com/79-virtuemart-import-images-as-products/25066-more-bugs-joomla-1.5-and-joomla-2.5.html. Toch zal ik een mogelijkheid moeten vinden om snel een aantal producten toe te voegen aan mijn nieuwe webwinkel. Handmatig werken is veel te tijdrovend en dat zal voor velen van ons gelden. Na drie dagen proberen en testen zie ik af van het gebruik van deze component.
  • De component CSVi die door velen wordt aangeraden. Ja, als je gaat zoeken op Google naar “importeren van producten in Virtuemart” dan kom je zeker ook deze component tegen. Geen goede component? Vast wel maar veel te ingewikkeld in mijn situatie. Want: ik wil dus producten vanuit een Virtuemart 1.1 exporteren en importeren in Virtruemart 2.0
  • Dat leidt me tot het idee (ja, ik weet het is “de idee” maar 90% van Nederland is het met mij eens dat dit niet klinkt en dus moet het “het idee”worden” volgens mij), het idee, om te werken met phpmyadmin. Wat NIET werkt is direct exporteren en vervolgens importeren. Ja, dit werkt prima, maar er komen zo alleen geen nieuwe producten in de nieuwe webwinkel. Want: de tabellen van Virtuemart 1.1 zijn anders dan de tabellen van Virtuemart 2.0

Wat werkt wel

  • Wat mogelijk blijkt te zijn (en dat was nieuw voor mij) is om Virtuemart 1.1 te upgraden naar 2.0. Gewoon via een patch. Maar belangrijk is om eerst: 1) alle Virtuemart plugins en modules te deinstalleren en 2) de oude Virtuemart mappen in administrator/components en components/ te hernoemen of te verwijderen. Vervolgens installeer ik de patch evenals de aio upgrade patch.
  • Daarna ga ik naar het nieuwe Virtuemart control panel via componenten (fouten negeren, gewoon doorgaan) en daar ben ik al in Virtuemart 2.0 aangekomen. De oude website heeft inmiddels zijn layout wel verloren. maar daarvoor later aandacht. Via Configuration en Shop vink ik “Enable database Update tools” aan en ga vervolgens naar Tools en Tools&Migration en klik op Migration. Ik pas niets aan en klik direct op Start migration en zo worden er automatische nieuwe database tabellen aangemaakt die een Virtuemart 2.0 structuur hebben maar de oude inhoud van de Virtuemart 1.5 website.
  • En nu ga ik fluitend naar phpmyadmin, zoek deze oude database op, selecteer de nieuwe jos_virtuemart tabellen en exporteer deze allemaal in 1 sql bestand naar mijn computer. Vervolgens ga ik naar de database (via phpmyadmin) van de nieuwe website en importeer dit sql bestand in de nieuwe database. Resultaat: nog steeds niets. Logisch.
  • Want jos_ is niet de tabel prefix van de nieuwe Joomla 2.5 installatie. Laten we zeggen dat die thgk_ is. Ik selecteer alle thgk_virtuemart_  tabellen, scroll naar beneden en kies voor “add prefix”. Die tabellen blijven nu bestaan maar worden voor de website niet gelezen. Ik selecteer vervolgens alle jos_virtuemart_ tabellen die ik heb geimporteerd en kies voor “change prefix” en verander jos_  in thgk_ ; resultaat? Alle categorieen en producten van de oude Joomla 1.5 website worden nu getoond in de nieuwe Joomla 2.5 website.
  • Nee, nu ben ik nog niet klaar. Belangrijk is om alle productafbeeldingen via Filezilla van de oude naar de nieuwe website te verplaatsen en dat binnen de mappen onder images/stories/virtuemart en vervolgens klik ik binnen Tools&migration op “synchroniseer alle media met Virtuemart”. En dan worden alle afbeeldingen ook netjes getoond.

Nawoord: Mooi, bijna te mooi om waar te zijn en eigenlijk makkelijker dan ik dacht. Maar: mijn oude website wilde ik niet weggooien en nog even gebruiken (www.cheap-web.nl) en de layout is aardig in de war gegooid. Ik heb nu twee opties: 1) alle Virtuemart 1.1 modules upgraden naar Virtuemart 2.0 modules en die activeren op de juiste plaats en 2) een backup terugplaatsen. Ik kies voor optie 1 en zo heb ik onverwacht, als neveneffect van mijn test, mijn oude website geupgrade naar Virtuemart 2.0. Dat ging niet vanzelf want een aantal belangrijke Virtuemart 1.1 modules kenden geen broertje in de 2.0 versie. Maar dat heeft mijn abonnement bij Joomlaxtc opgelost. Daar hadden ze de benodigde modules gelukkig wel.

Aanvulling: exporteren naar een andere Joomla 2.5 website

Deze strategie heb ik vandaag geprobeerd bij het exporteren van een groot aantal producten vanuit een Joomla 1.5 / virtuemart 1.1.3 naar een Joomla 2.5 / virtuemart 2.0 website. Daarvoor is deze optie te ingewikkeld. Het lijkt mogelijk te zijn om gewoon alle prefix_vm_tabellen van de oude Joomla 1.5 website te exporteren en direct te importeren in de nieuwe Joomla 2.5 website. Een upgrade van de virtuemart 1.1.3 naar 2.0 is daarbij niet nodig. Wel is upgrade naar 1.1.9 eerst aan te raden.

Joomla! E-commerce with VirtueMart
Joomla! E-commerce with VirtueMart (Photo credit: suhreed)