Вы здесь

Как в DC программно пересохранить заказ с новым ID?

0

Натолкнулся на проблему: необходимо программое пересохранение заказа с новым ID, либо создание нового с содержимым исходного заказа (перенос данных из заказа в заказ).

Подтолкните на мысли..

Версия Drupal: 
7.x
Связанные проекты: 
Drupal Commerce
Вопрос задан 03.11.2016 - 20:03

Ответы

0

Пересохранить никак. Надо создать новый заказ, новые line item-ы, транзакции и прочее.

Ответ дан 03.11.2016 - 23:11
Аватар пользователя xandeadx
xandeadx
1542

Ну, ок. А возможно скопировать line item'ы (остальное неважно) в новый заказ?

"Бодаюсь" со Сберовским эквайрингом.. При неудачной оплате повторно заказ с этим же номером (id) не принимается (Ошибка #1: Заказ с таким номером уже обработан). В ТП советуют создавать другой заказ... Есть мысль переписать модуль под order_number (который можно у заказа менять, и уже его отдавать в запросе) заместо order_id.

Комментарий оставлен 03.11.2016 - 23:52

line item-ы так же нужно создавать новые.
вариант с другим order_number конечно более логичный

Комментарий оставлен 04.11.2016 - 00:57

Все получилось использованием order_number (очень уж сырые решения у RBS Payment - даже банальные ошибки нашлись...). Правда, генерацию order_number сделал через:

<?php
$num = time(); $order->order_number = sprintf('%08d', $num);

Есть какие-то рекомендации или практики по формированию подобных номеров? Может лучше, что-то типа XXXX_YYYY (xxxx - id, yyyy - number)?

Комментарий оставлен 05.11.2016 - 21:57