1. Главная
  2. Форумы
  3. Техподдержка Drupal
  4. Установка и настройка

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

Главные вкладки

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

Комментарии

Аватар пользователя sas@drupal.org sas@drupal.org 19 сентября 2017 в 8:25

Сам номер заказ не трогайте он уникален и целый, сделайте поле нужное Вам и выводите его в теме заказа вместо идера, полей много например уникальное https://www.drupal.org/project/unique_field

Аватар пользователя 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.

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

Логотип drupal.ru

Содержимое сайта публикуется на условиях CreativeCommons Attribution-ShareAlike 3.0 или более поздней версии. Программные коды в тексте статей — на условиях GNU GPL v2 или более поздней версии.

Документация по совместной работе с репозиторием drupal.ru – https://docs.drupal.ru/code

Drupal – торговая марка Дриса Бёйтарта

12+

AltStyle によって変換されたページ (->オリジナル) /