Почему мой генератор промокодов назначает один и тот же код нескольким клиентам?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Почему мой генератор промокодов назначает один и тот же код нескольким клиентам?

Сообщение Anonymous »

Я работаю над плагином для Shopware, который генерирует и назначает промокоды клиентам, оставляющим отзывы о продуктах. Однако я столкнулся с проблемой, когда два разных клиента получили один и тот же промокод. Вот краткое описание функциональности и проблемы:
  • Генерация кода. В моем методе купонов я использую uniqid для генерации уникального промокода и отправки его на клиент по электронной почте. Вот соответствующая часть метода:

Код: Выделить всё

public function coupon(Request $request, Context $context): Response {
try {
$orderEntity = $this->loadOrder($request->request->get('salesChannelId'), $context);
$this->mailHelper->sendVoucherMail($context, $orderEntity, strtoupper(uniqid('test-')), true);
} catch (Throwable $t) {
$this->loggerHelper->logThrowable($t);
}
return new Response(null, Response::HTTP_NO_CONTENT);
}

  • Присвоение кода заказу: у меня есть другой метод updatePromotionCode, который обновляет заказ сгенерированным промокодом:

Код: Выделить всё

public function updatePromotionCode(OrderEntity $orderEntity, Context $context, string $promotionCode): bool {
if ($promotionCode != '') {
try {
$customFields = [
OrderCustomFieldInstaller::CUSTOM_FIELD_PROMOTION_CODE => $promotionCode
];
return $this->updateOrder($orderEntity->getId(), $customFields, $context);
} catch (\Throwable $e) {
$this->loggerHelper->logThrowable($e);
return false;
}
} else {
$this->loggerHelper->addDirectRecord(Logger::WARNING, 'Promotion code not updated in order. Promotion code empty', ["promotionCode" => $promotionCode]);
return false;
}
}

Проблема:
Недавно клиент получил промокод, который уже использовался другим клиентом в заказе за август. В базе данных этот код указан как неиспользованный для нового покупателя, но в магазине в рекламных акциях, в списке кодов, используемых покупателями, отображается имя старого покупателя, который первоначально его активировал. Это поднимает несколько вопросов:

[*]Действительно ли плагин генерирует уникальные коды или может повторно использовать старые коды?
[*] Если плагин генерирует новые коды, как два разных клиента могут получить один и тот же код?
[*]Если плагин повторно использует старые коды, зачем ему назначать уже использованный код новому клиенту? ?


Подробнее здесь: https://stackoverflow.com/questions/791 ... -customers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»