¿Cuáles son las definiciones de los estados de los pedidos? O: ¿Dónde debo integrar el estado de mi pedido?

25

Quiero definir algunos estados de pedido como "pago con tarjeta de crédito recibido", la pregunta es a qué estados pertenecen. ¿Existe una definición para cada uno de los estados incorporados?

Editar: Parece que mezclé "estado" y "estado", espero que se aclare del contexto de todos modos. Culpo a la traducción alemana de Magento (Estado => Estado, Estado => Zustand)

Fabian Schmengler
fuente

Respuestas:

42

De acuerdo con "La Guía definitiva para Magento" [1] , los estados de los pedidos se definen de la siguiente manera:

  • Pendiente: los pedidos pendientes son pedidos nuevos que no se han procesado. Por lo general, estos pedidos deben facturarse y enviarse.
  • PayPal pendiente: los pedidos pendientes de PayPal son pedidos nuevos que no han sido aprobados por PayPal. [...]
  • Procesamiento: Procesamiento significa que los pedidos se han facturado o enviado, pero no ambos.
  • Completo: los pedidos marcados como completos se han facturado y enviado.
  • Cancelado: los pedidos cancelados deben usarse si los pedidos se cancelan o si los pedidos no se han pagado.
  • Cerrado: los pedidos cerrados son pedidos a los que se les ha asignado una nota de crédito y el cliente ha sido reembolsado por su pedido.
  • En espera: los pedidos colocados en espera deben retirarse antes de continuar con cualquier otra acción.

Por lo tanto, pertenecería a un "pago con tarjeta de crédito recibido" del estado processing, siempre que el pedido aún no se haya enviado.


Aligent Consulting [2] creó un diagrama de flujo para los estados de pedido:

flujo de estado de orden de magento


Fuentes:

  1. Adam McCombs y Robert Banh: "La guía definitiva para Magento", Apress, 2009 (ISBN 1430272287, 9781430272281)
  2. https://twitter.com/aligent/status/509487359172177921/photo/1
Fabian Schmengler
fuente
Estoy a favor de las preguntas con respuesta propia, pero esto parece una siembra de baja calidad. Una respuesta copiar + pegar que de otro modo podría encontrarse fácilmente en línea no agrega realmente mucho valor a este sitio.
Ben Lessani - Sonassi
44
@sonassi: Respeto su opinión y no afirmaría que la pregunta sea de alta calidad, pero busqué por un tiempo esto y aún no encontré preguntas relacionadas aquí o en SO, por lo que podría ayudar a alguien más en el futuro.
Fabian Schmengler
Encontré esto súper útil. a veces encuentras cosas más fácilmente en la pila que en google, ya que la pila está prefiltrada, en comparación con google, por así decirlo. y si está sembrando, que así sea. Aportaron valor. Estoy totalmente de acuerdo con la siembra.
ahnbizcad
2

Los diferentes estados de orden se definen en Mage_Sales_Model_Order:

const STATE_NEW             = 'new';
const STATE_PENDING_PAYMENT = 'pending_payment';
const STATE_PROCESSING      = 'processing';
const STATE_COMPLETE        = 'complete';
const STATE_CLOSED          = 'closed';
const STATE_CANCELED        = 'canceled';
const STATE_HOLDED          = 'holded';
const STATE_PAYMENT_REVIEW  = 'payment_review';
Stefan
fuente
+1 ¿Es esto invalidable? ¿Hay alguna manera de obtener esto del resto de la API? por ejemplo / config / sales / possibleStatusList?
Mzn
1
¿Sobrescribir las constantes? ¿Por qué quieres sobrescribirlos? Puede definir nuevos estados de pedido en el back-end (Sistema> Estados de pedido). Si quiere decir 'cambiar el estado de las órdenes', sí, esto es posible. Y sí, también puede obtener el estado del pedido de la API (método sales_order.info o método sales_order.list)
Stefan
Sí, me refería a cambiar la lista, no las constantes. ¿sabes cómo puedo acceder a sales_order.info en rest api? ¿Cuál es el punto final? intenté / salesorders / info URL relativa
Mzn
No debería ser difícil, consulte aquí para acceder en general: magento.stackexchange.com/a/33187/6291 e información sobre sales_order.info aquí: devdocs.magento.com/guides/m1x/api/soap/sales/salesOrder/ ... Buena suerte!
Stefan
Gracias por la respuesta, pero la API SOAP es realmente diferente de la API REST. Por alguna razón, no encuentro que hables en los documentos de la API de REST: devdocs.magento.com/swagger/index.html ¿Puedes verlo allí? ¿Quizás no está incluido en la API REST?
Mzn
1

En realidad, dado que los estados de pedido 1.5 se pueden definir en la sección Admin y xml no es la forma preferida de agregar / cambiar estados o estados. Haga una diferencia entre estado y estado. El estado es "procesamiento", el estado es "pago con tarjeta de crédito recibido"

Actualización : los estados de los pedidos se pueden crear y modificar en admin / sales_order_status /, no es necesario hacer nada en XML. Puede asignar un estado solo si el pedido está en el estado apropiado. Por defecto, el pedido pasa al estado de procesamiento cuando se factura o se envía.

Petar Dzhambazov
fuente
¿Fue esto como un comentario sobre la respuesta de Sebastian Lind? En cuanto a los estados y estados, parece que los mezclé (de nuevo ...), gracias por la corrección.
Fabian Schmengler
-1

Puede conectar su nuevo estado a los estados de pedidos existentes, o puede crear completamente nuevo. Simplemente modifique el archivo de configuración del módulo de ventas de la siguiente manera (app \ code \ core \ Mage \ Sales \ etc \ config.xml) con su nuevo estado:

<?xml version="1.0"?>
<config>
  <!-- ... -->
  <global>
    <sales>
      <order>
        <statuses>
          <new_status>
            <label>New Status</label>
            <description>Your Description here</description>
          </new_status>
        </statuses>
        <states>
          <new>
            <label>New</label>
            <statuses>
              <new_status/>
            </statuses>
            <visible_on_front/>
          </new>
        </states>
      </order>
    </sales>
  </global>
</config>

Actualice el caché, hecho.

Sebastian Lind
fuente
2
Nada sobre esta respuesta es apropiado, me temo.
puntos de referencia del
1
No edite el núcleo de Magento. Más bien cree una configuración en su propio módulo. Magento fusionará los suyos y los archivos de configuración del núcleo.
Jacques