Installatie Drupal Commerce 2.x - Casus begin 2017: verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
 
(46 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
Zie ook [[Composer]] & [[Drupal Console]].
+
Zie ook  
 +
 
 +
* [[Composer]]
 +
* [[Drupal Console]]
 +
* [[Installatie Drupal Commerce 2.x - Casus begin 2017 (2)]]
 +
* [[Installatie Drupal Commerce 2.x - Casus begin 2017 (3)]]
 +
* [[Installatie Drupal Commerce 2.x - Algemeen]]
  
 
Er is geen ontkomen aan: ''Drupal Commerce'' kun je alleen via ''Composer'' installeren [https://www.drupal.org/project/commerce], [https://www.youtube.com/watch?v=XOy0sR9NPxM]. Daarmee wordt het terminal-commando ''composer'' bedoeld, niet de Drupal-module. Je kunt Drupal Commerce 2.x dus waarschijnlijk alleen installeren als je terminal-toegang hebt.
 
Er is geen ontkomen aan: ''Drupal Commerce'' kun je alleen via ''Composer'' installeren [https://www.drupal.org/project/commerce], [https://www.youtube.com/watch?v=XOy0sR9NPxM]. Daarmee wordt het terminal-commando ''composer'' bedoeld, niet de Drupal-module. Je kunt Drupal Commerce 2.x dus waarschijnlijk alleen installeren als je terminal-toegang hebt.
Regel 9: Regel 15:
 
=== Composer ===
 
=== Composer ===
  
 +
Je hebt de command-line tool ''composer'' nodig. Niet de Drupal-module met dezelfde naam!
  
 
=== Drupal-modules ===
 
=== Drupal-modules ===
Regel 48: Regel 55:
 
=== Drupal Console ===
 
=== Drupal Console ===
  
[https://drupalconsole.com/ Drupal Commerce] wordt aangeraden.
+
[https://drupalconsole.com/ Drupal Console] wordt aangeraden.
  
== Casus - feb. 2017 ==
+
== Installatie Drupal Commerce ==
 
 
=== Installatie Drupal Commerce ===
 
  
 
* Basissite geïnstalleerd mbv. eigen script
 
* Basissite geïnstalleerd mbv. eigen script
Regel 94: Regel 99:
 
</pre>
 
</pre>
  
=== Updaten ===
+
== Updaten ==
 +
 
 +
=== Eerst Drupal Commerce updaten ===
  
 
Updaten van Drupal Commerce gaat via:
 
Updaten van Drupal Commerce gaat via:
  
 
  composer update drupal/commerce --with-dependencies
 
  composer update drupal/commerce --with-dependencies
 +
 +
=== Daarna de rest updaten ===
  
 
Updaten van de site-als-geheel via Drupal Console (''ná'' updaten Drupal Commerce!):
 
Updaten van de site-als-geheel via Drupal Console (''ná'' updaten Drupal Commerce!):
Regel 105: Regel 114:
 
  drupal update:execute
 
  drupal update:execute
  
=== Installatie additionele modules ===
+
== Installatie additionele modules ==
  
 
Dat gaat op de gebruikelijke manier, lijkt me. Alleen officiele Drupal Commerce modules gaan via Composer. Tot op dit moment nog geen additionele modules geïnstalleerd.
 
Dat gaat op de gebruikelijke manier, lijkt me. Alleen officiele Drupal Commerce modules gaan via Composer. Tot op dit moment nog geen additionele modules geïnstalleerd.
Regel 153: Regel 162:
 
En het probleem was verholpen.
 
En het probleem was verholpen.
  
== Configuratie Drupal Commerce ==
+
== Valuta & store ==
  
 
=== Valuta ===
 
=== Valuta ===
Regel 160: Regel 169:
 
* Alleen euro
 
* Alleen euro
  
=== Stores ===
+
=== Store ===
  
 
Je moet eerst een ''store'' configureren voordat je met producten aan de slag kunt
 
Je moet eerst een ''store'' configureren voordat je met producten aan de slag kunt
 +
 +
== Producten, variaties & representaties ==
 +
 +
Er een gelaagd systeem van producten en de weergave daarvan. Enkele termen die zoal een rol spelen:
 +
 +
* ''Product type'' - Waarschijnlijk wat ik P1 noem. Bv. t-shirts
 +
* ''Products'' of ''product variations'' - Bv. een fysiek t-shirt met een bepaalde kleur en maat
 +
* ''Product attributes'' - Bv. kleur (rood, zwart), en maat (S, M, L)
 +
* ''Purchasable entities'' - ?
 +
* ''Product fields'' - Los van product attributes, kun je producten opleuken met allerlei velden
 +
 +
Dit systeem heeft iets weg van dat voor DC1 [http://internetdevels.com/blog/the-commerce-2x-module-for-Drupal-8]:
 +
 +
* P1: ''Commerce Product'' → ''ProductVariation''
 +
* P2: ''Product display'' → ''Product''
  
 
=== Product attributes ===
 
=== Product attributes ===
  
''Product attributes'' heeft betrekking op variaties zoals bv. kleur of maat. Dat speelt hier niet.
+
Bij ''product attributes'' moet je denken aan bv. verschillende maten of kleuren. Definitie gaat via <code>Admin » Commerce » Product attributes</code>. Product attributes staan in dit stadium helemaal los van producten of wat dan ook. Ze moeten nog gekoppeld worden.
  
=== Products, displays, product variations, P1 & P2, etc. ===
+
{|
 +
|[[file:20170313-1556.png|thumb|'''Product attributes:''' <code>Admin » Commerce » Product attributes</code>: Geen ''product attributes'' gedefineerd: Alle producten in deze webwinkel zijn wat dat betreft uniform]]
 +
|}
  
Net als in DC 1.x, is er een onderscheid tussen achterliggende producten ('''P1''') en de representatie daarvan ('''P2'''). Alleen de termen zijn veranderd, of zoiets:
+
=== Product variation type ===
  
''' P1 '''
+
Door ''product attributes'' te associeren met ''producten'', krijg je ''product variation types''. Ook als je geen gebruik maakt van product attributes, schijn je tenminste één product variation type nodig (we gaan het zien). Je vindt ze onder [http://docs.drupalcommerce.org/v2/product/product-attributes.html]
  
* DC 1.x: ''Commerce Product'' (?)
+
Admin » Commerce » Configuration » Product variation types
* DC 2.x: ''Product''
 
  
''' P2 '''
+
{|
 +
|[[file:20170313-1557.png|thumb|'''Product variation type:''' <code>Admin » Commerce » Configuration » Product variation type</code>: Geen ''product variation'' gedefineerd: Ik ben benieuwd of dat geen probleem is]]
 +
|}
  
* DC 1.: ''Product display''
+
=== Product types ===
* DC 2.x: ''Product variation''
 
  
''' Geen zweet '''
+
Naast ''product variation types'' heb je ook nog ''product types''. Daar lijk je product variaties te associeren met kale producttypes, en niet bij ''product variation type'' ofzoiets. Voor nu geloof ik het wel.
  
Ahh: Als je geen gebruik wilt maken van ''product variations'' (bv. verschillende maten of kleuren), dan ben je gelijk klaar. Je hoef dus niet een of andere P2-entiteit te defineren, want die is er al, met de creatieve name ''default''.
+
=== Product Variants ===
 +
 
 +
De handleiding legt oa. [http://docs.drupalcommerce.org/v2/product/products.html hier] uit, dat je altijd minimaal één productvariant moet defineren.
 +
 
 +
{|
 +
|[[file:20170313-1639.png|thumb|'''Met product variant:''' [http://docs.drupalcommerce.org/v2/product/products.html Illustratie] dat je echt minimaal één product variant moet hebben, voor prijs en SKU]]
 +
|[[file:20170313-1558.png|thumb|'''Zonder product variant:''' <code>Commerce » Products</code>: ''Products'' zonder product variations of wat dan ook. Kaler dan dit krijg je 't waarschijnlijk niet. Maar zo zonder prijs is wel héél kaal]]
 +
|}
 +
 
 +
{|
 +
|[[file:20170313-1647.png|thumb|'''Met 'reguliere' product variant (1):''' In dit geval is er één veld toegevoegd, namelijk voor productafbeeldingen. Hier kun je zien dat ''productvarianten'' nog het beste overeenkomen met wat ik '''P2''' noemde in DC1: De presentatie van producten (al is presentatie nu niet meer een accurate benaming)]]
 +
|[[file:20170313-1648.png|thumb|'''Met 'reguliere' product variant (2):''' Nu kun je prijzen, SKU en afbeeldingen associëren met producten]]
 +
|}
  
 
=== P1-definitie aanpassen ===
 
=== P1-definitie aanpassen ===
  
Zo uit de does, is P1 nogal kaal. Onder andere is het wel geinig om 'm op te luisteren met een productafbeelding:
+
Zo uit de doos, is P1 nogal kaal. Onder andere is het wel geinig om 'm op te luisteren met een productafbeelding:
  
 
''' Productafbeeldingen '''
 
''' Productafbeeldingen '''
Regel 194: Regel 232:
 
* Naam: <code>p1_image</code>
 
* Naam: <code>p1_image</code>
 
* Aantal: Onbeperkt.
 
* Aantal: Onbeperkt.
 +
 +
P.s.: Ik weet niet meer waar ik dit heb gedaan.
 +
 +
=== Producten ===
 +
 +
Zo snel je een product type (of zoiets) hebt gedefineerd, kun je producten toevoegen:
 +
 +
Commerce » Products
 +
 +
=== Foutmelding: Field variations is unknown ===
 +
 +
Oh oh:
 +
 +
<pre>
 +
The website encountered an unexpected error. Please try again later.
 +
 +
InvalidArgumentException: Field variations is unknown.
 +
in Drupal\Core\Entity\ContentEntityBase->getTranslatedField()
 +
(line 471 of core/lib/Drupal/Core/Entity/ContentEntityBase.php).
 +
</pre>
 +
 +
Dit lijkt een bug te zijn op het snijvlak van Drupal Commerce en iets met talen. De producten worden wél opgeslagen, maar ik kan ze daarna niet 'gewoon' bekijken. Dus negeren is geen optie. Een mogelijke tijdelijke oplossing: Meertaligheid uitzetten → Producten invoeren → Dan pas iets met meertaligheid doen.
 +
 +
Desalniettemin: Voordat ik deze webshop ontdaan had van allerlei toeters en bellen, deed deze pagina 't wel. In het bijzonder: De handleiding zegt regelmatig (oa. [http://docs.drupalcommerce.org/v2/product/products.html hier] dat je minimaal één ''productvariant'' nodig hebt.
 +
 +
=== Manage display (P2) ===
 +
 +
De ''presentatie'' van producten noem ik '''P2''', vanwege de verwarrende naamgeving. Deze kun je op twee plekken aanpassen:
 +
 +
* <code>Admin » Commerce » Config » Product type</code>
 +
* <code>Admin » Commerce » Config » Product variation type</code>
  
 
=== Products » Add product ===
 
=== Products » Add product ===
Regel 204: Regel 273:
 
(line 113 of vendor/commerceguys/intl/src/Formatter/NumberFormatter.php).
 
(line 113 of vendor/commerceguys/intl/src/Formatter/NumberFormatter.php).
 
</pre>
 
</pre>
 +
 +
== Overig ==
 +
 +
* In DC2 kun je meerdere ''stores'' configureren. Daardoor schijn je ''marktplaatsen'' te kunnen bouwen [http://docs.drupalcommerce.org/v2/store.html]
  
 
== Bronnen ==
 
== Bronnen ==
  
* http://docs.drupalcommerce.org/v2/getting-started/install.html » Dit zijn de officiële installatie-instructies
 
 
* https://www.drupal.org/node/2351795 - Drupal Commerce 2.x Advanced Installation Instructions
 
* https://www.drupal.org/node/2351795 - Drupal Commerce 2.x Advanced Installation Instructions
 
* https://www.drupal.org/node/2405811 - Composer Manager for Drupal 8 » Bijzaak
 
* https://www.drupal.org/node/2405811 - Composer Manager for Drupal 8 » Bijzaak
Regel 213: Regel 285:
 
* https://www.youtube.com/watch?v=CrJrjgOuvSk - Commerce 2.x Download and Install on Drupal 8, Part 2 of 2 (june 2016)
 
* https://www.youtube.com/watch?v=CrJrjgOuvSk - Commerce 2.x Download and Install on Drupal 8, Part 2 of 2 (june 2016)
 
* https://pantheon.io/drupal-8/introduction-drush-and-drupal-console
 
* https://pantheon.io/drupal-8/introduction-drush-and-drupal-console
 +
* http://ckeditor.com/slides/ckeditor-in-drupal-8
 +
 +
''' Plugin not found-error '''
 +
 +
* https://www.drupal.org/node/2716785#comment-11964386 - Goed antwoord, van een leuke vent
 +
 +
''' Field variations-error '''
 +
 +
* https://www.drupal.org/node/2835576 - InvalidArgumentException: Field uuid is unknown
 +
* https://www.drupal.org/node/2837547 - Product creation failed
  
''' Configuratie '''
+
''' Configuratie Drupal Commerce '''
  
 
* http://internetdevels.com/blog/the-commerce-2x-module-for-Drupal-8 - Hele procedure: Aardig!
 
* http://internetdevels.com/blog/the-commerce-2x-module-for-Drupal-8 - Hele procedure: Aardig!
 
* http://docs.drupalcommerce.org/v2/currency.html
 
* http://docs.drupalcommerce.org/v2/currency.html
 
* https://www.drupal.org/node/2816739 - Unable to create New products, (Unexpected Error)
 
* https://www.drupal.org/node/2816739 - Unable to create New products, (Unexpected Error)
* http://ckeditor.com/slides/ckeditor-in-drupal-8
 
 
* http://docs.drupalcommerce.org/v2/product/index.html - Products, attributes, purchasable entities
 
* http://docs.drupalcommerce.org/v2/product/index.html - Products, attributes, purchasable entities
 
* http://docs.drupalcommerce.org/v2/product/product-attributes.html
 
* http://docs.drupalcommerce.org/v2/product/product-attributes.html
 
''' Plugin not found-error '''
 
 
* https://www.drupal.org/node/2716785#comment-11964386 - Goed antwoord, van een leuke vent
 

Huidige versie van 15 mrt 2017 om 22:48

Zie ook

Er is geen ontkomen aan: Drupal Commerce kun je alleen via Composer installeren [1], [2]. Daarmee wordt het terminal-commando composer bedoeld, niet de Drupal-module. Je kunt Drupal Commerce 2.x dus waarschijnlijk alleen installeren als je terminal-toegang hebt.

Requirements

Zie de casus hieronder voor details. Deze lijst is niet compleet. Ook is er niet aangegeven welke dingen je expliciet zelf moet regelen.

Composer

Je hebt de command-line tool composer nodig. Niet de Drupal-module met dezelfde naam!

Drupal-modules

  • Zie hieronder + [3]
  • Zie de casus hieronder voor meer afhankelijkheden.

PHP-libraries - Algemeen

php-bcmath

Deze module heb je al bij de installatie nodig, maar ook later tijdens aanmaak van producten. Deze installatie speelde zich af op een redelijk frisse LAMP-server. Oorspronkelijk probeerde ik php 7.1 te gebruiken, maar toen die moeilijk deed, ben ik overgestapt op php 7.0, althans dat dacht ik;

Oorspronkelijke installatie: sudo apt-get install php-bcmath. Dat bleek echter de php 7.1-versie te installatie. De php 7.0-versie geïnstalleerd middels sudo apt-get install php7.0-bcmath

php-gd

Installatie voor PHP 7.1:

sudo apt-get install gd

Installatie voor PHP 7.0:

sudo apt-get install php7.0-gd

PHP-libraries - Specifiek

Drupal Console

Drupal Console wordt aangeraden.

Installatie Drupal Commerce

  • Basissite geïnstalleerd mbv. eigen script
  • Composer geïnstalleerd middels sudo apt-get install composer
  • Vanuit de root van die installatie: composer config repositories.drupal composer https://packages.drupal.org/8 - Geen foutmeldingen
  • composer require "drupal/commerce 2.x-dev" gaf foutmelding:
Problem 1
    - easyrdf/easyrdf 0.9.1 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - easyrdf/easyrdf 0.9.1 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - easyrdf/easyrdf 0.9.1 requires ext-mbstring * -> the requested PHP extension mbstring is missing from your system.
    - Installation request for easyrdf/easyrdf == 0.9.1.0 -> satisfiable by easyrdf/easyrdf[0.9.1].
  • sudo apt-get install php-mbstring
  • composer require "drupal/commerce 2.x-dev". Gelukt zonder foutmelding, met veel output
  • drupal module:install commerce_product commerce_checkout commerce_cart commerce_tax geeft foutmelding: Commando drupal is niet bekend
  • Drupal Console Geïnstalleerd
  • drupal module:install commerce_product commerce_checkout commerce_cart commerce_tax - Opnieuw foutmelding: Je moet Drupal Console ook locaal installeren per instantie:
  • composer require drupal/console:~1.0 --prefer-dist --optimize-autoloader
  • composer update drupal/console --with-dependencies: Wat onduidelijke waarschuwingen over whitelisting, maar verder ok
  • drupal module:install commerce_product commerce_checkout commerce_cart commerce_tax - gelukt. Output:
One or more modules "commerce_tax" are not available, running download process to get those modules
 Getting releases for module "commerce_tax"
                                                                                                                        
 [ERROR] There aren't any releases for module "commerce_tax"                                                            
 [ERROR] Invalid module name: commerce_tax                                                                              

 Installing module(s) "commerce_product, commerce_checkout, commerce_cart, commerce, address, entity, inline_entity_form, commerce_price, commerce_store, commerce_order, entity_reference_revisions, profile, state_machine"
                                                                                                                        
 [OK] The following module(s) were installed successfully: "commerce_product, commerce_checkout, commerce_cart,         
      commerce, address, entity, inline_entity_form, commerce_price, commerce_store, commerce_order,                    
      entity_reference_revisions, profile, state_machine"                                                               

 // cache:rebuild
 Rebuilding cache(s), wait a moment please.
 [OK] Done clearing cache(s).

Updaten

Eerst Drupal Commerce updaten

Updaten van Drupal Commerce gaat via:

composer update drupal/commerce --with-dependencies

Daarna de rest updaten

Updaten van de site-als-geheel via Drupal Console ( updaten Drupal Commerce!):

drupal update:debug
drupal update:execute

Installatie additionele modules

Dat gaat op de gebruikelijke manier, lijkt me. Alleen officiele Drupal Commerce modules gaan via Composer. Tot op dit moment nog geen additionele modules geïnstalleerd.

Configuratie Drupal

CKEditor uitzetten

Administration » Configuration » Content authoring » Text format & Editors

Gelukkig: Er worden nu ook geen HTML-tags meer ongevraagd toegevoegd!

Full HTML als standaard instellen (voor admin)

Zelfde link als hierboven: De volgorde aanpassen van de formats.

'Powered by Drupal'-block verwijderen

Gewoon onder Strucure.

Plugin not found-error bij uploaden afbeelding

Foutmelding

Drupal\Component\Plugin\Exception\PluginNotFoundException: 
The "" plugin does not exist. 
in Drupal\Core\Plugin\DefaultPluginManager->doGetDefinition() 
(line 52 of core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php)

Installatie file_browser

Ik had de indruk dat de installatie van de dev-versie van file_browser zou kunnen helpen. Drie libraries en vijf moduled verder, bleek dat niet het geval te zijn → Al die zooi weer verwijderd.

Overig

  • Clearing cache hielp niet

Oplossing

Wéér had ik van een module de PHP 7.1-versie ipv. de PHP 7.0-versie.

sudo apt-get install php7.0-gd
sudo service apache2 restart

En het probleem was verholpen.

Valuta & store

Valuta

  • Eerst valuta, dan stores
  • Alleen euro

Store

Je moet eerst een store configureren voordat je met producten aan de slag kunt

Producten, variaties & representaties

Er een gelaagd systeem van producten en de weergave daarvan. Enkele termen die zoal een rol spelen:

  • Product type - Waarschijnlijk wat ik P1 noem. Bv. t-shirts
  • Products of product variations - Bv. een fysiek t-shirt met een bepaalde kleur en maat
  • Product attributes - Bv. kleur (rood, zwart), en maat (S, M, L)
  • Purchasable entities - ?
  • Product fields - Los van product attributes, kun je producten opleuken met allerlei velden

Dit systeem heeft iets weg van dat voor DC1 [4]:

  • P1: Commerce ProductProductVariation
  • P2: Product displayProduct

Product attributes

Bij product attributes moet je denken aan bv. verschillende maten of kleuren. Definitie gaat via Admin » Commerce » Product attributes. Product attributes staan in dit stadium helemaal los van producten of wat dan ook. Ze moeten nog gekoppeld worden.

Product attributes: Admin » Commerce » Product attributes: Geen product attributes gedefineerd: Alle producten in deze webwinkel zijn wat dat betreft uniform

Product variation type

Door product attributes te associeren met producten, krijg je product variation types. Ook als je geen gebruik maakt van product attributes, schijn je tenminste één product variation type nodig (we gaan het zien). Je vindt ze onder [5]

Admin » Commerce » Configuration » Product variation types
Product variation type: Admin » Commerce » Configuration » Product variation type: Geen product variation gedefineerd: Ik ben benieuwd of dat geen probleem is

Product types

Naast product variation types heb je ook nog product types. Daar lijk je product variaties te associeren met kale producttypes, en niet bij product variation type ofzoiets. Voor nu geloof ik het wel.

Product Variants

De handleiding legt oa. hier uit, dat je altijd minimaal één productvariant moet defineren.

Met product variant: Illustratie dat je echt minimaal één product variant moet hebben, voor prijs en SKU
Zonder product variant: Commerce » Products: Products zonder product variations of wat dan ook. Kaler dan dit krijg je 't waarschijnlijk niet. Maar zo zonder prijs is wel héél kaal
Met 'reguliere' product variant (1): In dit geval is er één veld toegevoegd, namelijk voor productafbeeldingen. Hier kun je zien dat productvarianten nog het beste overeenkomen met wat ik P2 noemde in DC1: De presentatie van producten (al is presentatie nu niet meer een accurate benaming)
Met 'reguliere' product variant (2): Nu kun je prijzen, SKU en afbeeldingen associëren met producten

P1-definitie aanpassen

Zo uit de doos, is P1 nogal kaal. Onder andere is het wel geinig om 'm op te luisteren met een productafbeelding:

Productafbeeldingen

  • Naam: p1_image
  • Aantal: Onbeperkt.

P.s.: Ik weet niet meer waar ik dit heb gedaan.

Producten

Zo snel je een product type (of zoiets) hebt gedefineerd, kun je producten toevoegen:

Commerce » Products

Foutmelding: Field variations is unknown

Oh oh:

The website encountered an unexpected error. Please try again later.

InvalidArgumentException: Field variations is unknown. 
in Drupal\Core\Entity\ContentEntityBase->getTranslatedField() 
(line 471 of core/lib/Drupal/Core/Entity/ContentEntityBase.php).

Dit lijkt een bug te zijn op het snijvlak van Drupal Commerce en iets met talen. De producten worden wél opgeslagen, maar ik kan ze daarna niet 'gewoon' bekijken. Dus negeren is geen optie. Een mogelijke tijdelijke oplossing: Meertaligheid uitzetten → Producten invoeren → Dan pas iets met meertaligheid doen.

Desalniettemin: Voordat ik deze webshop ontdaan had van allerlei toeters en bellen, deed deze pagina 't wel. In het bijzonder: De handleiding zegt regelmatig (oa. hier dat je minimaal één productvariant nodig hebt.

Manage display (P2)

De presentatie van producten noem ik P2, vanwege de verwarrende naamgeving. Deze kun je op twee plekken aanpassen:

  • Admin » Commerce » Config » Product type
  • Admin » Commerce » Config » Product variation type

Products » Add product

Foutmelding:

RuntimeException: The bcmath extension is required by NumberFormatter. 
in CommerceGuys\Intl\Formatter\NumberFormatter->__construct() 
(line 113 of vendor/commerceguys/intl/src/Formatter/NumberFormatter.php).

Overig

  • In DC2 kun je meerdere stores configureren. Daardoor schijn je marktplaatsen te kunnen bouwen [6]

Bronnen

Plugin not found-error

Field variations-error

Configuratie Drupal Commerce