Drupal Commerce 1.x - Installatie

Uit De Vliegende Brigade
Versie door Jeroen Strompf (overleg | bijdragen) op 25 mrt 2017 om 16:01 (→‎Casus voorjaar 2017)
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

Casus nov. 2015

  • Drupal binnenhengelen mbt. wget
  • Handmatig aan de praat krijgen
  • Modules, theme & blokken per script geïnstalleerd
  • Handmatig valuta instellen: Administration » Store » Configuration
  • fresh.css-bestand met groter lettertype voor de admin-balk: /themes/seven
  • Product toevoegen: Dat gaat recht-toe-recht-aan. Ik moet punten gebruiken als decimaalscheidingsteken, maar bij weergave wordt een komma gebruikt: Dat gaat automatisch want euro's

Casus Dec. 2015

  • Core, modules, theme en uitzetten van blokken met drush gedaan
  • Store » Configuration » Currency settings: Valuta → EUR
  • Store » Configuration » Payment methods: Bank transfer geactiveerd & geconfigureerd
  • Store » Configuration » Shipping: Flat rate geconfigureerd
  • Product toevoegen: Store » Products » Add a product - Simpel

Casus Jan. 2016

  • Core, modules, theme, fresh.css mbv. drush geconfigureerd
  • Verwijzing naar fresh.css ingevoegd in seven.info. Niet in at_commerce.info
  • Configuration » Administration menu: Collapse module groups on the Module page
  • Store » Configuration » Currency settings: Valuta → EUR aangezet, USD uitgezet
  • Store » Configuration » Taxes: 21% BTW als Sales tax geconfigureerd, want prijzen moeten ex. BTW-worden aangeprezen
  • Store » Product Types: Hernoemen en stamgegevens incorporeren in betreffende product-entiteit. Weergave: Alleen volgorde van velden aangepast

Casus feb. 2016

Highlights

  • Basisinstallatie middels drush-script
  • Verwijzing naar fresh.css toegevoegd aan seven.info
  • Configuration » Administration menu: Collapse module groups on the Module page
  • Store » Configuration » Currency settings: Valuta → EUR aangezet, USD uitgezet
  • Store » Configuration » Taxes: 21% BTW als Sales tax geconfigureerd, want prijzen moeten ex. BTW-worden aangeprezen
  • Product type gedefineerd. Zie projectdocument voor details
  • Content-type/display gedefineerd
  • Display voor default aangepast: Verdeeld over twee kolommen + productreferentie om te kunnen toevoegen aan winkelwagen
  • Permissies checkout aangepast, zodat ook anonieme bezoekers kunnen afrekenen

Losse acties

  • SMTP-module installeren om vanaf de externe testserver te kunnen emailen
  • Emailadressen toevoegen voor order-notificatie.

Casus mrt. 2016 (1)

Dit is een quick-&-dirty setup om faceted search te testen:

  • Basisinstallatie middels drush-script. Nieuwe modules: better_exposed_filters & module_filter
  • Verwijzing naar fresh.css toegevoegd aan seven.info en at_nogwat.info - Ik zie geen verschil
  • Store » Configuration » Currency settings: Valuta → EUR aangezet, USD uitgezet

Definitie producttype

  • Nieuw producttype aangemaakt
  • Zo veel mogelijk attributen ondergebracht in het producttype, en zo min mogelijk in displays
  • Producten zijn te zien via Store » Products - Dat vergat ik nogal eens.
Definitie van producttype Koolborstel: Zo veel mogelijk velden ondergebracht in het producttype. Prijs vind ik zelf de vreemde eend in de bijts, maar dat wordt door Drupal gedaan

Producten importeren met Feeds

Modules aanzetten (ondergebracht in script):

drush -y en entityreference_feeds	# ?
drush -y en feeds
drush -y en feeds_ui
drush -y en commerce_feeds		# Drupal Commerce-gerelateerd

Configureren van een Feeds importer:

  • Processor: Commerce Product processor
  • Commerce Product processor: Bundle: De naam van het betreffende producttype. Iets verderop ook nog het producttype specificeren
Feeds Importer » Processor: Commerce Product processor - Belangrijk!
Feeds Importer » Processor » Settings
Feeds Importer » Processor » Mapping

Display defineren & productreferentie

  • Weer: Met zo min mogelijk velden
  • Effectief alleen een product-referentie, en da's vaak al een wereld op zich:
  • Als je een productrefentie-veld aanmaakt, wil Drupal weten om welk producttype het gaat. Drupal vogelt zelf uit wat de primaire sleutel is van dat producttype
  • Widgets: Niet helemaal duidelijk wat de verschillende varianten precies inhouden, en ik ben niet de enige die het verwarrend vindt. Maar de oplossing is in het geheel niet warrig: Multiple values maar vooral Autocomplete text field bevallen goed. Single value bevalt niet
  • Als je Autcomplete text field kiest, vereenvoudigt dat aanzienlijk de overige instellingsmogelijkheden.
Definitie van display Koolborstel
Display: Velden
Product-referentie: Instellingen

Display-import

Import » Processor
Import » Processor: Settings
Import » Processor: Mapping

Faceted Search - Modules installeren

# Faceted Search
#################################################################
#
drush en -y search_api		   # Begin hier!
drush en -y search_api_facetapi    # De andere basismodule
drush en -y search_api_db	   # Gebruik de database als search-server
drush en -y search_api_views	   # ?

Faceted Search - Search-database instantiëren

Stelt nix voor.

Faceted Search - Indices initiëren

Stelt veel voor!

Facet-blocks aan de praat krijgen

Als je indices hebt gedefineerd, worden automatisch bijbehorende blocks aangemaakt, die luisteren naar namen als

Facet API: Search service: Koolborstel-producttype : Automatische stop

Na plaatsing verschijnen ze helaas niet vanzelf is mijn ervaring. je kunt ze configureren via

Configuration » Search and metadata » Search API » Index: Operations » Facets

Casus mrt. 2016 (2)

Opnieuw een poging om faceted search aan de praat te krijgen. Daarnaast als het even kan, in het geheel geen displays gebruiken: Ik ga toch gebruik maken van views:

  • Installatie Drupal Core, modules, theme & standaardblokken met dit script
  • Euro's als valuta ingesteld en dollars uitgezet
  • Producttype: Standaardtype Product verwijderd en nieuw type aangemaakt. Drie velden toegevoegd: Dim1, Dim2 en Dim3
  • Producttypes geïmporteerd
  • Module Commerce Back Office Products uitgezet ivm. bugs
  • View aangemaakt, Assortiment met alle producten (en dus geen display)

Search

  • Search - Settings: Niets bijzonders
  • Standaard database Db server: Alleen aangepast dat er ook naar delen van woorden gezocht kan worden

Conclusie

Zonder display is lastig, want geen zoekpagina, en die heb je nodig voor facetblokken. Ongetwijfeld zijn hier oplossingen voor, maar dat wordt me te lastig.

Casus mrt. 2016 (3)

Ik snap hoe je facetblokken aan de praat krijgt! Nu een prototype waarbij je kunt selecteren op drie dimensies. Ik maak gebruik van een eerdere site, waarvan ik de content, producttypes, displays en views heb verwijderd.

Basis

  • Producttype aangemaakt, met drie velden Dim1, Dim2 en Dim3
  • Mbv. Feed-module 1.952 producten geïmporteerd. Velden: SKU, Title, Dim1, Dim2, Dim3, SellPrice
  • Display aangemaakt:
    • Body - verwijderd
    • SKU - Product reference - Autocomplete text field → Max. 1 veld, verplicht
  • Configuratie import: SKU mapped op SKU: Product ID field (field_sku:sku)
  • 1.952 displays geïmporteerd

Search

  • Zoekserver gedefineerd: search-server
  • Index Koolborstel-index gedefineerd. Type: Node. Bundles: Koolborstel-display. Alles direct indexeren → Later kwam ik er achter dat je per se de default-index moet gebruiken. Gedaan, maar fouten bij indexeren → Verderop
  • Index - Add related fields: SKU toegevoegd. Nu zijn de velden uit het achterliggende producttype ook beschikbaar, waaronder de drie dimenensies die eerder genoemd werden. Deze drie velden worden als enige geïndexeerd
  • Index - Filters: --
  • Index - Facets: De drie dimensies enabled.

Backup gemaakt van de database.

  • View aangemaakt. Je blijt de default index te moeten gebruiken.

Fout bij indexeren

An AJAX HTTP error occurred. HTTP Result Code: 500 Debugging information follows. Path: /batch?id=26&op=do StatusText: 
Service unavailable (with message) ResponseText: EntityMetadataWrapperException: Unable to get the data property status 
as the parent data structure is not set. in EntityStructureWrapper->getPropertyValue() (line 438 of /var/www/example.com/
sites/all/modules/entity/includes/entity.wrapper.inc).
  • In my.cnf een paar maxima verhoogd van 16M naar 64M - Geen verschil
  • commerce_repair geïnstalleerd en uitgevoerd via Store » Configuration (nix aan in te stellen) - Geen verschil

Fout bij indexeren - Oplossing

  • Alle search-gerelateerde modules uitgezet en daarna uninstalled - Bij uninstall wordt alle bijbehorende data verwijderd
  • Deze modules weer aangezet
  • Server geconfigureerd
  • Er was vanaf het begin al een (disabled) index aanwezig. Deze enabled
  • De standaard-geindexeerde velden zo gelaten
  • Melding dat er 3.171 te indexeren objecten waren → Laten indexeren → Gelukt!
  • Index: SKU toegevoegd → Drie dimensies achterliggende producttype toegevoegd → Opnieuw laten indexeren
  • View opnieuw moeten aanmaken. Tot m'n verbazing was er nu voor het eerst type Default node index, maar geen product display → Deze eerste gekozen
  • ...Werkt!

Backup gemaakt: kbo205.dvb-2016-03-15T19-27-07

Casus juli 2016

Deze casus betreft een registratie-site met slechts een handjevol producten

Grote stappen snel thuis

  • Basis-site met script geïnstalleerd, inclusef at_commerce-theme
  • Euro aangezet, dollars uitgezet
  • Product-definitie verzorgd: Naam Product behouden. Twee velden toegevoegd: field_p1_description & field_p1_image. Weinig spannends.
  • Eén product toegevoegd
  • Product-display toegevoegd: Product Display (product_display). Vanzelf werd een veld Body text & summary toegevoegd. die heb ik laten staan. Eén veld toegevoegd: p1_reference
  • Alle producten toegevoegd: Eerst op p1-niveau, daarna op p2-niveau (5 Producten in totaal). Onduidelijk waar ik bodytekst & -summary heb gedaan. Vermoedelijk op p2-niveau, want ik had vergeten aan te vinken dat alle p1-velden getoond moeten worden (boeit verder niet)

Afrekenprocedure

Eerste iteratie

Afrekenprocedure doorlopen terwijl ik ben ingelogd op de site:

  • Tot m'n verbazing gaat dat zonder fouten, ook al is er geen betaalmethode gespecificeerd: Hij zei dat betaling niet verplicht is. Op zich een logische keuze
  • Ook het shipping-scherm gaf geen fouten, ondanks gebrek aan configuratie
  • Alle shipping-gerelateerde modules uitgeschakeld.

Tweede iteratie

In browser waarin ik niet ben ingelogd. Ik kan nu niet afrekenen → Permissies aanpassen (instelling spreekt voor zich):

  • Hij vraagt nu alleen nog om billing address en niet meer om afleveradres. Terecht, want shipping is immers uitgeschakeld
  • Shipping-stap wordt overgeslagen
  • Weer: Payment not required. Gebruikers kunnen de hele procedure dus doorlopen. Goede zaak!

Derde iteratie

Configuratie-acties:

  • Alle modules rondom belasting uitgeschakeld
  • Module commerce_paypal geïnstalleerd + WPS geactiveerd + geconfigureerd (fluitje van een cent)
  • Order-email voor beheerder: Actie Send mail gekloond + aangepast (zie bestaande sites ter illustratie)
  • Test-product van € 0,05 toegevoegd.

Getest: Gelukt!

Overig

  • SMTP-module niet nodig - Waarschijnlijk omdat de email & de site, op hetzelfde domein zitten, omdat deze site ontwikkeld wordt op de externe productie-omgeving. Doorgaans is dit niet het geval. Overigens: Ik heb er geen centje pijn van, dat ik op de externe omgeving ontwikkel ipv. m'n eigen laptop.
  • Euro-symbool vóór het bedrag → Currency settings (bijbehorende module was al geactiveerd)

Casus voorjaar 2017

Dit betreft een webwinkel met zo'n 13 b2b-producten. Verkoop primair in NL, secundair in het Duits & Engels. Eerst D8/DC2 geprobeerd, maar dat brengt op dit moment te veel risico met zich mee wat complex en onduidelijk.

  • Basisinstallatie D7/DC2 via script
  • Huidige theme behouden
  • Currency settings: Alleen euro's
  • Product types: Velden p1_image en p1_body (of zoiets) toegevoegd

Feeds Importer

  • Feeds Importer geïnstalleerd & geconfigureerd: Ik heb geen zin om wéér alle producten handmatig in te voeren + gegevens zitten al in een rekenblad
  • Backup gemaakt: /home/strompf/drush-backups/archive-dump/20170325113616/example.com.20170325_113616.tar.gz
  • Mbv. Feeds Importer producten geïmporteerd - Goede keuze: Sneller dan handmatig + handiger ivm. hergebruik e.d.

BTW

  • BTW: Store » Configuration » Taxes: 21% BTW als Sales tax geconfigureerd, want prijzen moeten ex. BTW-worden aangeprezen

p2 - Content type & view mode

  • Content-type p2_product gedefineerd. Spreekt voor zich.
  • View mode: Ipv. een nieuwe mode te defineren, type Teaser aangepast: two-column stacked.

Zie ook

Bronnen

Commerce Bank Transfer-module

Drupal Commerce - Merchant User Guide

Fout bij indexeren