Zend certified PHP/Magento developer

When do you decide to add a custom order state in the Magento’s default order states cycle?

BNPL (Buy Now Pay Later) COD (Cash on Delivery)

BACKSTORY:

I want to add two new payment methods to my website called “BNPL COD (Pay in 2 Installments)” and “BNPL COD (Pay in 3 Installments)” and I want a totally separate order statuses journey in addition to two custom order states with the default Magento’s order states for these payment methods in the Magento 2 Admin.

TWO POSSIBLE ORDER STATES AND STATUSES JOURNEY:

Number One

Default order state[new] (order placed)

  1. BNPL Unverified (default status)
  2. BNPL Awaiting Documents
  3. BNPL Documents Received
  4. BNPL Case Approved
  5. BNPL Arranging Items
  6. BNPL Items Ready

Default order state[processing] (invoice created)

  1. BNPL In Process (default status)
  2. BNPL Dispatched

Default order state[complete] (shipment created)

  1. BNPL Complete (default status)
  2. BNPL Delivered

Custom order state[pending_installments] (custom action button “Begin Installments” clicked)

  1. BNPL 1st Installment Paid (default status)
  2. BNPL 2nd Installment Paid
  3. BNPL 2nd Installment Bounced
  4. BNPL 3rd Installment Bounced

Custom order state[complete_installments] (custom action button “End Installments” clicked)

  1. BNPL All Installments Paid (default status)

Number Two

Default order state[new] (order placed)

  1. BNPL Unverified (default status)
  2. BNPL Awaiting Documents
  3. BNPL Documents Received
  4. BNPL Case Approved
  5. BNPL Arranging Items
  6. BNPL Items Ready

Default order state[processing] (invoice created)

  1. BNPL In Process (default status)
  2. BNPL Dispatched

Default order state[complete] (shipment created)

  1. BNPL Complete (default status)
  2. BNPL Delivered
  3. BNPL 1st Installment Paid
  4. BNPL 2nd Installment Paid
  5. BNPL 2nd Installment Bounced
  6. BNPL 3rd Installment Bounced
  7. BNPL All Installments Paid

PROBLEM:

Now the problem is that I’m confused if I should go with “Number One” or “Number Two” order states and statuses journey approach. I personally want to implement the “Number One” approach because if you look at the statuses from number 11 to 15, technically, they do not sound relevant to the default “complete” state of the order in the “Number Two” approach. The installments part is an entirely different state of the order after it is delivered.

QUESTIONS:

  1. Which approach I should go for in this specific scenario and why?
  2. If I go with the “Number One” approach will I be able to create a Credit Memo (while the order is in the “pending_installments” custom state) to change the order to one of its default states i.e. “closed” to be able to mark the order status to “Refunded” or “Returned” etc?
  3. If I go with the “Number One” approach will there be any other problems?

Please let me know if I’m not making my point clear here and if I should provide any more details. Thanks for the help in advance 🙂