Drupal Commerce & Sisow-foutmelding

Uit De Vliegende Brigade
Versie door Jeroen Strompf (overleg | bijdragen) op 1 dec 2017 om 19:21 (→‎Acties)
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

In december 2017 heb ik voor een webwinkel de Sisow-betaalmodules bijgewerkt. Bij het testen van de iDeal-module kreeg ik na klikken op de knop "afrekenen" deze foutmelding:

EntityMetadataWrapperException: Unknown data property commerce_product. 
in EntityStructureWrapper->getPropertyInfo() 
(line 354 of ... sites/all/modules/entity/includes/entity.wrapper.inc).
It died so beautifully

Aanvullende gegevens

  • Drupal Commerce is up-to-date. De bijbehorende Sisow-module ook. Overige modules ook (alleen theme is outdated, maar dat boeit niet)
  • Deze foutmelding vond plaats op zowel m'n ontwikkelomgeving (laptop, Linux Mint) en op de externe testomgeving (VPS, Ubuntu Server). Deze hebben verschillende versies van MySQL en PHP, dus de fout is nogal consistent.

Aanwijzingen & bronnen

Dit is de code in entity.wrapper.inc waar de fout optreedt. De betreffende regel uit-commentariseren, werkt niet:

  /**
   * Gets the info about the given property.
   *
   * @param $name
   *   The name of the property. If not given, info about all properties will
   *   be returned.
   * @throws EntityMetadataWrapperException
   *   If there is no such property.
   * @return
   *   An array of info about the property.
   */
  public function getPropertyInfo($name = NULL) {
    $this->spotInfo();
    if (!isset($name)) {
      return $this->propertyInfo['properties'];
    }
    if (!isset($this->propertyInfo['properties'][$name])) {
		throw new EntityMetadataWrapperException('Unknown data property ' . check_plain($name) . '.');  ← EXCEPTION THROWN HERE - DIT IS DE FOUTMELDING
    }
	return $this->propertyInfo['properties'][$name] + $this->info['property defaults'] + $this->propertyInfoDefaults;
  }

Mogelijke oorzaken + oplossingen

  • Incomplete database? → Er was toch een Drush-commando om fouten te fixen?
  • Module was geïnstalleerd terwijl er al een gevulde winkelwagen is. Wat gebeurt er als je opnieuw gaat winkelen?
  • Some users found that this error occurs when the commerce_product field is missing on the Line Item Type called Product. We're not sure what causes this field to go missing yet but recreating the field fixes the problem. [1]

Oplossingen

  • Terug naar de oude versie van Sisow

Acties

  • Met leeg winkelwagentjes beginnen → Geen verschil
  • Clear all cashes → Geen verschil
  • drush en -y commerce_line_item && drush php-eval "commerce_line_item_configure_line_item_types();" - Geen verschil [2]
  • Drupal database update → Geen verschil
  • Commerce Repair-module geïnstalleerd & uitgevoerd → Geen verschil.

Bronnen