2011-02-08 21 views
6

Me pregunto cuál es la mejor manera de agregar algo de información a un pago en magento (1.4.1.1).Pago de Magento: additional_information or payment attribute?

Digamos que quiero agregar una información llamada "payment_duedate" que sería la fecha en que el cliente debe pagar su factura.

En realidad, hay un campo en sales_flat_order_payment llamado "additional_information" que contiene datos serializados establecidos por el método setAdditionalInformation ($ arg1, $ arg2); disponible en el modelo 'ventas/pago'. por lo que podría salvar mi fecha por:

$payment->setAdditionalInformation('payment_duedate',$myDate); 
$payment->save(); 

Pero también se podría optar por añadir un atributo de pago, lo que tendría como efecto crear una nueva columna llamada 'payment_duedate' en el 'sales_flat_order_payment' y luego salvar mi fecha haciendo:

$payment->setPaymentDuedate($myDate); 
$payment->save(); 

las principales diferencias son:

  • con el "método additional_information", datas más se efectúan en serie, y así, no preguntable fácilmente.
  • con el "método setPaymentDuedate()", datas más son consultables y un nuevo campo se crea en la tabla

Por lo tanto, en su opinión, ¿cuál de las dos formas es la mejor?

Gracias, Hugues.

Respuesta

5

El setAdditionalInformation() es más útil para atributos de solo lectura, como un mensaje para el usuario, como "Banco de transacciones: MyBank".

El setPaymentDuedate() personalizado es útil para procesar afters, como verificar un estado de pago donde Duedate > MMDDYY.

+0

sería bueno si agrega cómo obtenerlos más tarde del objeto 'payment' –

+0

http://magento.stackexchange.com/questions/97754/save-additional-order-metadata-while-processing-payment/157929 # 157929 –

1

Encuentro que la pregunta es subjetiva. Y dado que la segunda forma no es mucho más esfuerzo (ver my experiences) es difícil elegir cualquiera de los dos.

Cuestiones relacionadas