Pregunta

He estado usando de identificación alfanumérico Valor mínimo de orden, ya ~ CE 1.1 -. Que está todo listo usando un carácter alfabético en el campo Prefijo de core_entity_store

En el momento no había documentación real, que rodea la instalación y configuración multi-tienda, por lo que hemos adoptado la práctica de que todos los ID de orden fueron precedidos de un Alfa que representaba la tienda. Los números de orden general parecían M000000003, PA000000004, etc.

Avance rápido 5 años para EE 1.11 y desde aproximadamente PE / EE 1.10 nos hemos dado cuenta de que las órdenes de regresar periódicamente un error de SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'PA00505156' for key 'UNQ_SALES_FLAT_ORDER_INCREMENT_ID' o algo similar. Es poco frecuente - pero mis me lleva a la investigación del hecho de que una carrera de condición reservándose la identificación de la orden podría ser debido al prefijo siendo alfa y no numérico

.

Sé que Ashley Schroder estaba trabajando en esto hace un tiempo, con una edición Pro de un módulo desarrolló - http://www.aschroder.com/2010/07/easily-set-a-custom- número de pedido-en-magento-con-mi-sin-setstartordernumber extensión / - Pero no parece que ha habido mucho movimiento ahí, ya que la versión Pro no está en Magento Conectar

Hay alguien más usando prefijos alfa? ¿Cómo se ha realizado para usted hasta ahora? ¿Ves los mismos errores?

¿Fue útil?

Solución

Sí, hemos tenido este problema también.

Solución rápida es la siguiente: ir en app\code\core\Mage\Sales\Model\Resource\Quote.php, en el isOrderIncrementIdUsed función de reemplazar la fila

$bind      = array(':increment_id' => (int)$orderIncrementId); 

con

$bind      = array(':increment_id' => $orderIncrementId);

Todo debería funcionar ahora.

Es una solución archivo central, pero es posible anular esta funcionalidad con la extensión (por desgracia, hasta ahora no hemos tenido tiempo para esto) ..

Saludos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top