обновить позицию заказа после получения заказа - PullRequest
0 голосов
/ 07 февраля 2019

Мой клиент работает на рынках и хочет начать продавать онлайн

Когда он получает заказ, он должен подтвердить, действительно ли товар есть в наличии и может ли он удовлетворить спрос.

update> У меня уже есть несколько обратных вызовов, которые проверяют наличие товаров в наличии или нет, но ... Мне действительно нужна какая-то двойная проверка ... (сначала по обратному вызову, который выполняется, а затемвручную ... Но я не знаю, как я могу отредактировать OrderItem как продавца ....

(Может случиться, что когда вы работаете на рынке, у вас нет времени для регистрацииВаши продажи или даже некоторые предметы могут быть украдены ... Так что это испортит запас)

update> Как мне отредактировать полученный заказ, если предмет отсутствует (имеется в видучто акция была неправильной)

Мои модели:

    Size 
        belongs_to :product

    Order
        has_many  :order_items 

    OrderItem
        belongs_to :order 
        belongs_to :product
        belongs_to :size    

    Product
        has_many :order_items
        has_many :sizes

Атрибуты OrderItem: :id, :quantity, :product_id, :user_id, :size_id, :order_id

Позволяет сказать, что заказ поступил:

    #here is how are orders are created

    order_1  = Order.create(
      payment: "{'stub','stripe'}", 
      created_at: 1.day.ago, 
      user_id: 1,  
      token: SecureRandom.hex(8), 
      status: 1, 
      shipping_fees: 5, 
      sub_total: [product_1.price + product_1.price].sum , 
      total: 135
    )
    order_item_1 = OrderItem.create(
      price: product_1.price, 
      order_id: order_1.id, 
      product_id: 10, 
      quantity: 1, 
      size_id: 3
    )
    order_item_2 = OrderItem.create(
      price: product_2.price, 
      order_id: order_1.id, 
      product_id: 42, 
      quantity: 2, 
      size_id: 8
    )

В order_item_2 клиенту нужны 2 товара, но мой клиентне могу понять, что у него остался только один ...

Мой клиент хотел бы что-то вроде контрольного списка, который говорит для каждого элемента:

  • да, это доступно
  • woops У меня остался только один
  • он больше не доступен

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

Каков наилучший способ сделать это?

Возможно ли управлять этим в контроллере заказов?или я должен создать контроллер счета?

Все предложения приветствуются.

1 Ответ

0 голосов
/ 07 февраля 2019

Заказ - это другой процесс для Счета-фактуры. Вы упомянули о трех вариантах: вы можете сделать это в Контроллере заказов, если считаете, что для одного контроллера требуется слишком много времени, вы можете создать Сервисы с системой PORO для управления процессом

, в основномидеальное состояние с полной автоматической проверкой наличия на складе, если ваш клиент выбирает / вводит название продукта, программное обеспечение автоматически проверяет доступный запас для продукта, и ваш клиент не может ввести значение больше, чем доступноВы можете использовать javascript, чтобы проверить, изменилось ли название продукта, тогда он запустит процесс проверки наличия на складе, и клиент не сможет сохранить заказ, если один из заказанных товаров больше, чем есть в наличии

второй вариант, который вы можете использоватьконечный автомат, например, aasm

  • первое состояние, клиент открывает заказ.
  • второе заявляет заказ, полученный вашим клиентом, и он должен дать одобрение, если все заказытовар доступен, если нет, то он переходит в
  • третье состояние, где заказ возвращается к клиенту и так далее, пока не достигнет последнего состояния, когда заказ готов к обработке

обычно бизнесобработка после подтверждения заказа создает другой процесс (заказ на поставку) после получения заказа на поставку клиентом, следующий процесс - создание счета-фактуры для клиента на основе утвержденного и полученного заказа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...