WordCampNL 2010

VN:F [1.9.17_1161]
Rating: 0.0/5 (0 votes cast)

Net als vorig jaar heb ik dit jaar een presentatie gegeven over Shopp bij WordCampNL. Dit jaar gingen we meer in op de werking van Shopp en wat je er mee kunt.

Ik heb uiteindelijk niet alles kunnen behandelen (en ik was bang de 45min niet vol te krijgen… ;) ), maar een groot gedeelte wel. Waaronder code die je kunt gebruiken om je webshop extra functionaliteiten te geven. Ik had beloofd die hier op mijn blog te zetten en aangezien ik mijn beloftes nakom vind je die code in deze post :)

© Punkmedia - www.punkmedia.nl

De foto van mij tijdens mijn presentatie is gemaakt door Punkmedia.

Een extra item toevoegen aan de winkelwagen

Als je een webshop hebt kan het zo zijn dat je een extra item toe wilt voegen (in de winkelwagen) als de bezoeker/klant een item toevoegt aan de winkelwagen. Dit kan bijvoorbeeld een gratis product zijn, maar je kunt ook denken aan een PDF-versie van een boek (iets wat sitepoint.com volgens mij ook standaard doet) als je het boek zelf aan de winkelwagen toevoegt.

<?php

add_action('shopp_cart_add_item','add_extra_item',9);
function add_extra_item(&#038;$NewItem)
{
  #if (! shopp('customer','loggedin') ) return;

  $Order  =&#038; ShoppOrder();
  $Cart  =&#038; $Order->Cart;

  $Product        = new Product(9999);
  $ExtraItem      = new Item($Product,1000);
  $ExtraItem->name    = 'Extra item';
  $ExtraItem->unitprice   = 10.00;
  $ExtraItem->quantity   = 1;
  $ExtraItem->taxable  = true;

  if ($Cart->hasitem($ExtraItem) === false)
  {
    $Cart->contents[] = $ExtraItem;
    $Cart->changed(true);
  }
} // end add_extra_item

?>

Zoals ik in mijn presentatie zei is de code hierboven voor het toevoegen van het item. Uiteraard kun je de naam, prijs etc. aanpassen.

Nog een klein extraatje in de code hierboven; Als je de # voor de volgende regel weghaalt zorg je ervoor dat het extra item alleen wordt toegevoegd als de klant is ingelogd:

<?php #if (! shopp('customer','loggedin') ) return; ?>
<?php

add_action('shopp_cart_updated','update_extra_item',10);
function update_extra_item(&#038;$Cart)
{
  if ( count($Cart->contents) === 1 )
  {
    for ( $i=0; $i < count($Cart->contents); $i++ )
    {
      if ( array_search('Extra item', $Cart->contents[$i]) ) $key = $i;
    }

    $Cart->remove($key);
    $Cart->changed(true);
  }
} // end remove_extra_item

?>

De code hierboven is voor het verwijderen van het item als dat het enige item in de winkelwagen is. Het is immers niet de bedoeling dat – als het om een gratis extra item gaat – de klant de winkelwagen weer leeggooit en alleen het gratis product besteld.

Laatste bestelling kopiëren naar winkelwagen

Als tweede voorbeeld gaf ik het automatisch toevoegen van de laatste bestelling aan de winkelwagen. Met andere woorden: als een klant inlogt komt de laatste bestelling automatisch weer in de winkelwagen terecht.

Dit kun je bijvoorbeeld gebruiken als je de webshop voor een abonnementendienst gebruikt waarin de inhoud eigenlijk altijd hetzelfde is, maar waar wel in gewijzigd kan worden.

<?php

add_action('shopp_login','last_purchase_2_cart');
function last_purchase_2_cart()
{
  if ( shopp('customer','has-purchases') )
  {
    global $Shopp;
    $Order  =&#038; ShoppOrder();
    $Cart  =&#038; $Order->Cart;

    while ( shopp('customer','purchases') )
    {
      $Shopp->Purchase->load_purchased();
      if ( shopp('purchase','hasitems') )
      {
        while ( shopp('purchase','items') )
        {
          $Product        = new Product(shopp('purchase','item-product','return=true'));
          $NewProduct      = new Item($Product,shopp('purchase','item-product','return=true'));
          $NewProduct->name  = shopp('purchase','item-name','return=true');
          $NewProduct->unitprice  = shopp('purchase','item-unitprice','return=true');
          $NewProduct->quantity  = shopp('purchase','item-quantity','return=true');

          $Cart->contents[shopp('purchase','item-product','return=true')] = $NewProduct;
          $Cart->changed(true);
        } // end while | items
      } // end if | hasitems
    } // end while | purchases
  } // end if | has-purchases
} // end last_parchase_2_cart

?>

Verlanglijstje

Ik heb het in mijn presentatie ook snel genoemd: de Shopp Wishlist. Het verlanglijstje is een veelgevraagde functionaliteit voor Shopp, maar zit er dus nog niet in. Je kunt immers niet alles de hoogste prioriteit geven.

Afgelopen week bedacht ik me hoe dit gerealiseerd zou kunnen worden en zo gezegd, zo gedaan. Na overleg met Jonathan is het beschikbaar gekomen in de Extra’s en ze zullen de code bekijken om toe te voegen in de core :)

Zoals ik al zei in mijn presentatie: de versie die daar nu staat zitten bugs in, ik had Jonathan per ongeluk verkeerde bestand gestuurd. Ik zal de download op de site zsm aanpassen naar de juiste versie.

Site licentie voor Shopp

De afgelopen twee dagen had ik via Twitter al een site-license van Shopp weggegeven, bij mijn presentatie heb ik dit ook gedaan. De manier waarop heb ik afgekeken van Jeanet Bathoorn (bij Zaak&Vrouw); een doosje met mijn visitekaartjes (van mijn blog) liet ik rondgaan en daar konden de aanwezigen hun visitekaartje in doen. Aan het einde van de presentatie zou ik dan de winnaar trekken.

De winnaar van de licentie is Luuk Wilms van Corda geworden :)

Toegevoegd op 15 november 2010, 11:30:

PowerPoint presentatie

De PowerPoint presentatie die ik had gemaakt stelde niet zo heel veel voor (want: de presentatie zou voornamelijk een live demo zijn), maar heb ‘m wel op SlideShare gegooid en ik voeg ‘m hier ook meteen even toe:

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon
  • Add to favorites
  • Email
  • RSS

5 Responses to WordCampNL 2010
  1. Jeanet Bathoorn Beantwoorden

    He Hiranthi,

    Ik lees toevallig je blog over Wordcamp. Super! Zie ik ineens mijn naam staan. Leuk zeg! Ik doe het nog steeds zo. Bevalt me prima.

    Groeten, Jeanet

    VA:F [1.9.17_1161]
    Rating: 0 (from 0 votes)
  2. dazzonlineWP Beantwoorden

    Thanx Hiranthi, en zo snel joh!! :)

    grtz,
    dazz

    VA:F [1.9.17_1161]
    Rating: 0 (from 0 votes)
  3. Ronald Beantwoorden

    Dank voor dit leerzame bericht!

    VA:F [1.9.17_1161]
    Rating: 0 (from 0 votes)
  4. staxx Beantwoorden

    Smile! you’re on flickr:
    http://www.flickr.com/photos/eventbranche/5153939000/

    VA:F [1.9.17_1161]
    Rating: 0 (from 0 votes)
  5. [...] gaf dit jaar haar 2de presentatie op een Wordcamp NL. Dit jaar ging ze dieper in op de Shopp plugin waar... wordcampnl.org/2010/11/20/shopp-plugin-presentatie-van-hiranthi

Geef een reactie

Your email address will not be published. Please enter your name, email and a comment.

*

De volgende HTML tags en attributen zijn toegestaan: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <div align="" class="" dir="" id="" lang="" style="" xml:lang=""> <pre class="">

CommentLuv badge