Has the Simulacrum spell changed since 2nd edition AD&D?

I’ve been idly scrolling through the questions on Simulacrum (it’s not my fault, there’s nothing on TV) & find myself suffering from some serious confusion, from the answers given it doesn’t appear to be the same spell at all.

As an example questions like “does it have a soul” are clearly answered within the spells description in both the 1st & 2nd editions spell descriptions (essentially the same rules with a cosmetic make over & a few post 1st edition publishing date supplements slid in).

So what’s different, isn’t it the same (sort of three part) spell it used to be.

Simulacrum only got you the physical form with none of the originals memories & no mind of it’s own that could only follow instructions such as you might give an animated skeleton (so that was short simple instructions of no more than one or two dozen words).

To provide it with a any sort of “mind” & “will” of its own so that it could follow any more complex instructions (such as those requiring any sort of judgement or decision making ability) you had to cast Reincarnation on it (until you did any intelligence or wisdom it had was essentially useless).

To provide it with any of the memories of the original creature you had to cast Limited Wish.

Both the questions asked & answers given for all of the questions I’ve read about simulacrum tonight appear to be entirely absent of any awareness of any of this detail, which prompts the question.

Has some of this stuff somehow been left out of newer editions or has the spell changed completely?

I want to modify the “Add to Cart” button of the products of certain type of store

In a custom module for Drupal Commerce, I want to modify the “Add to Cart” button of the products of certain type of store.

  • I want to replace the text of the button “Add to cart” by “Subscribe” on the products belonging to the type of store “online” (“online” is the machine name of my type of store).
  • I want to disable and replace the text of the button “Add to cart” by “Offline sales” on the products belonging to the store type “personnel” (“personnel” is the machine name of my store type).
  • I want to disable and replace the text of the button “Add to cart” by “Offline sales” on the products belonging to the store type “professionnel”, if the owner of the store does not have the “marchand_premium” (“professionnel” is the machine name of my store type).

How to apply the code to certain type of store ?

https://www.drupal.org/project/commerce/issues/3017257

https://docs.drupalcommerce.org/commerce2/developer-guide/stores/create-store-type

Here is the code of my custom module :

<?php  /**  * @file  * Hook implementations of commerce_marketplace_premium_merchant module.  */  use Drupal\commerce_store\Entity\StoreType; use Drupal\commerce_product\Entity\ProductType; use Drupal\commerce_product\Entity\ProductVariationType; use Drupal\Core\Entity\Display\EntityViewDisplayInterface; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Url;  /**  * Store professionnel.  */ function commerce_marketplace_premium_merchant_form_commerce_order_item_add_to_cart_form_alter(&$  form, \Drupal\Core\Form\FormStateInterface $  form_state, $  form_id) {   $  current_store = \Drupal::service('commerce_store.current_store');   $  store_type = $  current_store->\Drupal\commerce_store\Entity\StoreType::load('professionnel');   $  owner = $  current_store->getStore()->getOwner();   if ($  store_type) {     if (!$  owner->hasRole('marchand_premium')) {       if (isset($  form["#attributes"]["class"]) && in_array("commerce-order-item-add-to-cart-form", $  form["#attributes"]["class"])) {         $  selectedVariationId = $  form_state->get('selected_variation');         $  selectedVariation = \Drupal\commerce_product\Entity\ProductVariation::load($  selectedVariationId);         $  form['actions']['submit']['#value'] = t('Offline sales');         $  form['actions']['submit']['#attributes']['class'] = array('button--add-to-cart', 'button button--primary', 'js-form-submit', 'form-submit', 'is-disabled', 'btn-warning', 'btn');         $  form['actions']['submit']['#disabled'] = TRUE;       }     }   } }  /**  * Store personnel.  */ function commerce_marketplace_premium_merchant_form_commerce_order_item_add_to_cart_form_alter(&$  form, \Drupal\Core\Form\FormStateInterface $  form_state, $  form_id) {   $  current_store = \Drupal::service('commerce_store.current_store');   $  store_type = $  current_store->\Drupal\commerce_store\Entity\StoreType::load('personnel');   if ($  store_type) {     if (isset($  form["#attributes"]["class"]) && in_array("commerce-order-item-add-to-cart-form", $  form["#attributes"]["class"])) {       $  selectedVariationId = $  form_state->get('selected_variation');       $  selectedVariation = \Drupal\commerce_product\Entity\ProductVariation::load($  selectedVariationId);       $  form['actions']['submit']['#value'] = t('Offline sales');       $  form['actions']['submit']['#attributes']['class'] = array('button--add-to-cart', 'button button--primary', 'js-form-submit', 'form-submit', 'is-disabled', 'btn-warning', 'btn');       $  form['actions']['submit']['#disabled'] = TRUE;     }   } }  /**  * Store online.  */ function commerce_marketplace_premium_merchant_form_commerce_order_item_add_to_cart_form_alter(&$  form, \Drupal\Core\Form\FormStateInterface $  form_state, $  form_id) {   $  current_store = \Drupal::service('commerce_store.current_store');   $  store_type = $  current_store->\Drupal\commerce_store\Entity\StoreType::load('online');   if ($  store_type) {     if (isset($  form["#attributes"]["class"]) && in_array("commerce-order-item-add-to-cart-form", $  form["#attributes"]["class"])) {       $  selectedVariationId = $  form_state->get('selected_variation');       $  selectedVariation = \Drupal\commerce_product\Entity\ProductVariation::load($  selectedVariationId);       $  form['actions']['submit']['#value'] = t('Subscribe');     }   } }