Posts tagged ‘virtuemart’

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.

Joomla! E-commerce with VirtueMart

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

php begrijpen en aanpassen.in Virtuemart categorie weergave

PHP is echt zo’n geheimtaal die duidelijk maakt dat woorden kracht in zich hebben. PHP taal zet zaken in beweging en daarom zijn webpagina’s die opgemaakt zijn met PHP “dynamische websites”. Een Joomla website dus ook en daarmee ook de Joomla component Virtuemart. Wat we zien binnen Virtuemart wordt bepaald door de PHP code. Vandaag heb ik binnen die code wat moeten aanpassen om gehoor te geven aan de wens van een klant.

De wens: bij de categorieweergave (alle producten binnen 1 categorie), openen de afbeeldingen zich in een lightbox popup. Onder elke afbeelding staat ook een link en daaronder een button en als je daar op klikt opent zich de product details pagina van het betreffende product. Teveel verschillende acties wat betreft de klant. De klant wil het omdraaien: bij klikken op een product afbeelding moet de klant doorverwezen worden naar de bijbehorende product details pagina en die link en button onder de afbeelding wil hij weghalen.

HTML ten opzichte van PHP: Hier wordt het grote verschil in karakter duidelijk wat betreft de taal “HTML” en de taal “PHP”. Binnen een HTML pagina zouden we gewoon een hyperlink plaatsen om de afbeelding heen en die link en button daaronder weghalen. Klaar. Dat lijkt simpel maar dat is niet simpel als je dit voor duizend artikelen handmatig moet doen. Daarvoor bestaat PHP. Je past 1 maal de PHP code aan en elke keer als een product categorie pagina wordt opgevraagd door de bezoeker, wordt die automatisch aangepast.

Maar hoe?
Originele PHP code (snippet) wat betreft het tonen van de miniatuurafbeelding en openen van de afbeelding in een lightbox popup:

<?php /** @todo make image popup */
echo $product->images[0]->displayMediaThumb (‘class=”browseProductImage” border=”0″ title=”‘ . $product->product_name . ‘” ‘, TRUE, ‘class=”modal”‘);
?>

Duidelijk: php is de taal, wordt die aangeroepen dan is de respons (de echo): “laat wat betreft het product ($product) een image zien en van die image alleen de verkleinde afbeelding (displayMediaThumb) en wel op deze manier (class): graag geen “border”, de titel is weggelaten maar kan worden ingevuld, met mogelijkheid het product ppnieuw te tonen maar nu ook de naam van het product en wel op deze manier (class):via een popup (gedefinieerd in css class “modal”). Deze mpgelijkheid kan je aanzetten (TRUE) of uitzetten (FALSE). Dus mijn eerste stap was om deze popup mogelijkheid op FALSE te zetten. Resultaat: nog steeds een overzicht van alle productafbeeldingen binnen een categorie maar achter de afbeelding zit nu geen link en geen popup mogelijkheid meer.

Maar ik wil wel een link achter de afbeeldingen en dat doe ik door de code aan te passen:
Nieuwe PHP code (snippet) wat betreft het tonen van de miniatuurafbeelding waarbij de bezoeker kan klikken op de afbeelding waarna de product details afbeelding van bijbehorend product geopend wordt:

<?php /** show image and link to product details page */
echo JHTML::link ($product->link, $product->images[0]->displayMediaThumb (‘class=”browseProductImage” border=”0″ title=”‘ . $product->product_name . ‘” ‘, FALSE, ‘class=”modal”‘));
?>

In gewoon Nederlands: de taal is php en bij opvragen is de respons (echo): maak een link (JHTML::link) en toon het product als zijnde een link ($product->link) maar ook de afbeeldingen op zo’n manier dat alle product afbeeldingen van een categorie als thumb worden afgebeeld. Belangrijk hierin zijn de “haakjes” (); De snippet moet hier afsluiten met een dubbele )) want het betreft een wens binnen een wens (of eerder een opdracht binnen een opdracht). De link die aangemaakt moet worden betreft alles wat tussen de haakjes staat terwijl de tweede set haakjes betrekking heeft op hoe de afbeelding die deze hyperlink omvat, getoond moet worden.

Afronding:
Vervolgens is het makkelijk om de bestaande link en button te verwijderen. Ik besluit de code tussen <!– en –> te zetten en daarmee te deactiveren. Zo kan die link en button makkelijk weer geactiveerd worden.
Vervolg:
Ik zal een aparte (WordPress) website opmaken waarin in alle “snippets” plaats die genoemd worden op dit blog zodat ze altijd makkelijk zijn terug te vinden. Nieuws volgt als die website online gaat. Groeten en stuur vragen op naar info@dewebmeester.nl
Meindert Jorna

p.s.: Inmiddels is de Snippet website aangemaakt en is te bekijken via www.decmsmeester.nl/snippets

p.s.: Snippets die genoemd worden binnen dit blog kunnen nu ook gevonden worden op www.kladblokje.tk of www.hetkladblok.tk

Snel producten plaatsen Joomla/Virtuemart via copy / dupliceren

Hieronder een video die aangeeft hoe vrij eenvoudig snel meerdere producten geplaatst kunnen worden binnen Virtuemart, een functie die duidelijk nog ontbreekt binnen Virtuemart. Mogelijk een beetje te simpele oplossing en “flauw” maar toch handig. Producten in een ecommerce webwinkel hebben altijd overeenkomsten. Dat is het uitgangspunt en dat moet het makkelijk maken om sneller producten te plaatsen binnen Virtuemart: plaats alle afbeeldingen betreffende 1 soort producten binnen 1 folder op de computer, maak en categorie aan binnen Virtuemart en plaats handmatig 1 product, inclusief beschrijving die ook past bij de andere producten binnen de categorie. Kopieer vervolgens dit product zovaak je wilt. (helaas, 1 voor 1……)

%d bloggers liken dit: