Суффикс/префикс в номере заказа (Commerce order number suffix)

Аватар пользователя shturmavik shturmavik 18 сентября 2017 в 22:11

Drupal 7. Commerce.
Уже загуглил и заяндексил первые 30 ссылок с различной комбинацией данного вопроса.
Как можно в конце номера заказа вставить суффикс. Например чтобы заказ был 100D или MG-100.
Больше интересует суффикс чем префикс.

Комментарии

Аватар пользователя alexsaab alexsaab 19 сентября 2017 в 11:31

Добрый день.

Можно это реализовать кастомным модулем. При этом префиксы и суфиксы будут какие вы захотите.

Как то я делал для нумерации заказа такой принцип:

1) Код страны (RU, KZ - например)
2) Код области (SAM например для Самары)
3) Код дня с начала года (73 например)
4) Номер заказа с начала дня (12 напрмер)

То есть код заказа выглядит вот так RU-SAM-73-12.

При этом конкуренты не смогут вычислить сколько у вас заказов за день , ну а менеджерам будет легко посмотреть откуда пришел заказ.

Если что: обращайтесь.

Аватар пользователя shturmavik shturmavik 20 сентября 2017 в 11:55

Я пошёл по жесткачу. Добавил 'D' в \sites\all\modules\contrib\commerce\modules\order\commerce_order.module
В код:

<?php/**
 * Implements hook_commerce_order_insert().
 */
function commerce_order_commerce_order_insert($order) {
  // Save the order number.
  // TODO: Provide token support for order number patterns.

    dbg($order);

  if (empty($order->order_number)) { 
    $order->order_number = $order->order_id.'D';  //в конец поставил D

    db_update('commerce_order')
      ->fields(array('order_number' => $order->order_number))
      ->condition('order_id', $order->order_id)
      ->execute();
    db_update('commerce_order_revision')
      ->fields(array('order_number' => $order->order_number))
      ->condition('order_id', $order->order_id)
      ->execute();
  }
}?>

И в представлениях (Views) добавил в поле вывода номера заказа чтобы D ставилась.
Я просто устал искать способ иной и сделал так. Получилось что всегда order_number теперь имеет на конце D.

Мне обращаться не к кому - я сам разработчик.
Иные варианты у меня не получились кроме выше описанного.