solidus icon indicating copy to clipboard operation
solidus copied to clipboard

RMA & Stock Location

Open fthobe opened this issue 1 year ago • 3 comments

Scope Shipping Labels of FedEX, DHL and other shipping companies have limited validity. Mandatory return periods in case of Warranty or change of purchase intend often extend beyond that limit.

An integration of: a return address for products or stores would allow to generate new labels automatically. Hereby it's interestng to notice that:

  • while a pickup needs to have a precise pickup address, a label does not neccessarily need an exact sender address, all major carriers allow pick up addresses that vary from the original sender address.
  • an interface to add an address to an RMA would never the less be of benefit.

Desired Behavior To automize RMA shipping label creation the following fields are missing: Stock Location:

  • Name
  • Address 1
  • Address 2
  • ZIP
  • City
  • Phone Number
  • email (optional?)

Product:

  • Return Stock Location

This allows upon authorization also to create a return shipping label.

fthobe avatar Nov 07 '24 11:11 fthobe

Stock Locations already have an address (maybe the email is missing, though).

Also, if I recall correctly during the process of creating a return, you can already specify which location to use, defaulting to the original stock location of the order.

Are you seeing anything different in the flow?

kennyadsl avatar Nov 07 '24 13:11 kennyadsl

Hey, I think I missed that, I saw plenty of code only containing country codes or a subset of the location, thank you :) I am coming from python and wrapping my head around the Rails is sometimes cumbersome. I am trying to also test out what I read in the documentation on Admin Demo, but most of the backend is currently broken so I am going file by file.

I saw that you are working a lot on the backend, is there any version currently considered stable (asking, not complaining:) to also test integrations.

Regarding desirable flow: I think an optional email address opens the RMA process up to workflows that are outside of direct integrations (eg many RMA outsourcing companies handle processes still via mail for small to midsized brands). In addition additional return_reasons would help (#5900). I made a small PR covering that.

Some questions: I saw the acceptance status can go from accepted to accepted on acceptance_status.rb, is there particular reason to refresh acceptance_status to trigger any particular action?

        module AcceptanceStatus
          extend ActiveSupport::Concern
          included do
            state_machine :acceptance_status, initial: :pending do
              event :attempt_accept do
                transition to: :accepted, from: :accepted
                transition to: :accepted, from: :pending, if: ->(return_item) { return_item.eligible_for_return? }
                transition to: :manual_intervention_required, from: :pending, if: ->(return_item) { return_item.requires_manual_intervention? }
                transition to: :rejected, from: :pending
              end

In addition the documentation on Returns talks about additional shipments in the section Reimbursements. To better understand semantics: whenever the documentation talks about shipments an internal stock movement is created, correct?

fthobe avatar Nov 07 '24 18:11 fthobe

Effectively all fields are there.

fthobe avatar Jan 08 '25 19:01 fthobe