How to programmatically add a product variation to the cart in Drupal commerce 2.x (Drupal 8)

Playing a bit with Drupal commerce in Drupal 8, we notice that several functions that we used to use in the past with D7 are gone in D8, or they've had several changes, dued to the new API.

Drupal commerce has lots of changes. The new concept give us more flexibility and features (for example, we don't need a content type to display our products, because they have now their own display page, the product variations are now in commerce core, or the Store concept.).

An user pays credits for publishing a post

Paying credits for doing actions on a site makes it necessary to check user credits before performing the action. So I use an "Before saving content" event and a "Entity has credits" action to do so.

To avoid publishing the post we send the user back to the add content form using a custom "Execute custom PHP code" action. In order to allow PHP snippets you have to activate core module "PHP filter".

The first rule looks like that:

An user earns credits for publishing a post

After creating Credit Types at admin/commerce/credits/types (see README.txt for details) you are ready to use credits account. They are linked to users, so adding and removing credits must be related to an user entity.

Here a simple rule which adds 1 credit to users who write a blog post:

Drupal core deprecation policy

Why we deprecate

In Drupal 8, minor updates can introduce new APIs and features. When a new API is added, the old API will be deprecated in favor of the new one. We cannot remove the old API in a minor release because Drupal 8 makes a backwards compatibility promise, but it will usually be removed in the next major version (Drupal 9).

Drupal 8 Release

Viewfield 8.x-3.x

The Viewfield module defines an entity reference field type to display a view. Viewfield enables an administrator or content author to integrate a views display into any fieldable entity, such as content, users or paragraphs. In addition, through the use of the Always use default value setting, the same view(s) may automatically be placed into all entities in a bundle. Viewfield has considerable theming support, making it easy to customize presentation.

Pages

Subscribe with RSS Subscribe to RSS - Intermediate