Magento 2: ¿Cuál es la forma correcta de cambiar el Id. De pedido predeterminado?

29

Magento 2. Después de una nueva instalación, la nueva identificación del pedido será 100000001, 100000002, etc.

¿Cuál es la forma correcta de cambiar esa identificación de incremento para que sea un número mayor? Por ejemplo 155555552, 155555553 y así sucesivamente. Cuando se cambia, se verá mucho mejor.

En Magento 1.9 Para editar el Id. Predeterminado para Pedidos, Factura o Envío, simplemente tuvimos que cambiar los valores en la base de datos en "eav_entity_store".

Magento 2 se ve muy diferente ...

Sé que hay algunos complementos que ofrecen hacer esto, pero quiero saber cómo hacerlo manualmente.

marca
fuente
Consulte mi pregunta aquí: magento.stackexchange.com/questions/279454/… Es posible que ShipWorks (y otros) no se usen increment_idcomo se supone que deben hacerlo.
Chris K

Respuestas:

31
  1. Abra su base de datos PHP Admin (probé en php 7)
  2. Busque y haga clic en la tabla llamada: secuencia_orden_1 (se encuentra en la base de datos en sí, no en el esquema de información)
  3. Haga clic en la pestaña "Operaciones" y en "AUTO_INCREMENTO" edite el número de pedido deseado.
marca
fuente
Pongo el número 100500400 en el campo AUTO_INCREMENT, hago clic en "Continuar". Luego hice una compra de prueba, pero las identificaciones de los pedidos siguen siendo 000000013, 00000014 ...
Luis Garcia
1
Encontré secuencia_orden_1 y en la pestaña de operación hay Auto_increment el valor es 5, entonces, ¿cuál es el valor correcto?
Ahmad Darwish
1) haga una copia de seguridad de su base de datos antes de realizar cambios. 2) en lugar de 5, establece el valor que desea para su ID de pedido, por ejemplo 1035327500. Su próximo pedido debe ser 1035327501
Marque el
¿De qué versión de magento estamos hablando?
Felix
@Felix Es para Magento 2
Kishan Patadia
25

Vaya a su base de datos desde phpmyadmin,

Aquí _1 se usa para la identificación de la tienda después de tablename.

Default Frontend store id is 1.Si tiene una tienda múltiple, debe configurar la consulta para cada tienda con el nombre de la tabla como secuencia_orden_2 hasta secuencia_orden _. *

Ingrese la consulta a continuación para la tabla secuencia_orden_1 se utiliza para la tienda predeterminada. Si tiene varias tiendas, debe establecer el nombre de la tabla según la identificación de la tienda en la consulta a continuación.

Esto solo se usa para pedidos realizados desde frontend.

secuencia_orden_1 se utiliza para la gestión de id de pedido en magento 2.

ALTER TABLE sequence_order_1 AUTO_INCREMENT=155555551;

El siguiente ID de pedido comienza desde 155555551.

A continuación, la consulta se define para FACTURA , si desea cambiar la identificación de la factura

ALTER TABLE sequence_invoice_1 AUTO_INCREMENT=155555551;

Para enviar ALTER TABLE sequence_shipment_1 AUTO_INCREMENT=155555551;

Rakesh Jesadiya
fuente
Esto no funciona de mí. Después de hacer algunas compras de prueba, los id de pedido siguen siendo 000000013, 00000014 ...
Luis Garcia
excelente respuesta!
huzefam
¿podría indicar la versión de magento para la cual esto es correcto?
Felix
cómo cambiar el primer dígito de la nueva identificación del pedido
Tirth Patel
16

Lo que estaba anteriormente eav_entity_storeahora está cubierto en sales_sequence_profiley sales_sequence_meta. La tabla sequence_order_1se llena cuando se realizan pedidos.

Kristof en Fooman
fuente
¿Podría indicar aproximadamente los números de versión de magento para los que esto es cierto y funciona?
Felix
No he encontrado ningún cambio en el comportamiento en esto, creo que esto se aplica desde 2.0.0 hasta la versión actual 2.2.1
Kristof en Fooman el
Sigue siendo el mismo en 2.2.4, solo lo probé.
Frank Groot
7

El formato para el nuevo ID de pedido se define de forma predeterminada por constante en

Magento \ SalesSequence \ Model \ Sequence:

const DEFAULT_PATTERN = "% s% '. 09d% s";

Es el patrón para la función sprintf () que crea una nueva identificación. Para eliminar los ceros iniciales, debe pasar su patrón al constructor de esta manera:

<type name="Magento\SalesSequence\Model\Sequence">
    <arguments>
        <argument name="pattern" xsi:type="string">%s%s%s</argument>
    </arguments>
</type>

o extienda la clase de secuencia y cambie según lo necesite

mi nombre para mostrar
fuente
6

Aunque todas las respuestas anteriores son correctas total / parcialmente, pensé en escribir la respuesta ya que esto sería útil para futuros lectores. Esta respuesta abordará dos preguntas:

1) ¿Cómo cambiar el número de secuencia de pedido?

2) ¿Cómo agregar prefijo o sufijo a un número de pedido?

Antes de realizar cambios ciegos en la base de datos, debe comprender qué tabla de secuencia está asociada a qué. Puedes consultar esto desde la tablasales_sequence_meta

Ejecute la consulta select * from sales_sequence_meta;cada tienda tendrá una tabla de secuencia asociada a esa tienda. Tenga en cuenta el nombre de la tabla, a saber: orden, factura, tarjeta de crédito o envío.

Una vez hecho esto, vaya a la tabla, por ejemplo, si desea editar el número de pedido, ir a la tabla sequence_order_1y cambiar el AUTO_INCREMENTvalor

alter table sequence_order_1 AUTO_INCREMENT=617;

Esto es todo lo que se requiere para saltar la secuencia de orden.

Ahora, avanzando más si cava más y tiene un requisito donde desea agregar Prefijo / Sufijo al pedido, siga los pasos a continuación:

Ir a la tabla sales_sequence_profiley verificar los datos

select * from sales_sequence_profile;

Observará la columna prefixy el 'sufijo'. Inicialmente lo sería NULL. Puede agregar el valor allí de prefijo y sufijo para relevante meta_idque puede asignar desde la tablasales_sequence_meta

Esto cambiará el prefijo / sufijo de la orden para todas las órdenes.

Espero que esto ayude a todos !! Saludos !!

Diestro
fuente
4

Instalación
nueva : si está en Magento 2.2.0+ y está ejecutando una instalación nueva con varias tiendas habilitadas (esto está habilitado de forma predeterminada), simplemente puede ejecutar las siguientes consultas antes de realizar cualquier pedido a través del sitio:

ALTER TABLE `sequence_creditmemo_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_creditmemo_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_invoice_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_invoice_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_order_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_order_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_shipment_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_shipment_1` AUTO_INCREMENT=303;

Tenga en cuenta que ese 303es el número que elijo para nuestro sitio porque nuestra plataforma anterior se detuvo en el número de pedido 300 y quería algún tipo de coherencia. También tenga en cuenta que no necesita ninguna de las consultas que terminan con _1si habilitó el modo de almacenamiento único.

Instalación existente:
si ya está utilizando Magento 2.2.0+ (o actualizado a él) y simplemente desea aumentar los números, no alterar el relleno o agregar caracteres, simplemente verifique el valor actual de AUTO_INCREMENT en las siguientes tablas (suponiendo que sea multisitio ):

  • secuencia_crédito_0
  • secuencia_crédito_1
  • secuencia_factura_0
  • secuencia_factura_1
  • secuencia_orden_0
  • secuencia_orden_1
  • secuencia_envío_0
  • secuencia_envío_1

Y cámbielos usando las consultas de alteración que se muestran arriba, pero asegúrese de que el nuevo valor que usa sea mayor que el valor que obtiene al verificar el valor actual de AUTO_INCREMENT.

Si va a perder el tiempo con el relleno o agregar un patrón personalizado, necesita ver las otras respuestas aquí y revisar las siguientes tablas:

  • sales_sequence_meta
  • perfil_secuencia_ventas

Actualización: ¿Tiendas múltiples?
Para aquellos que no están familiarizados con las tiendas múltiples, esta es una característica que les permite ejecutar tiendas completamente separadas desde la misma instalación de Magento. Una razón común para hacer esto es admitir otros idiomas. En la parte posterior, esta es la razón por la que puede elegir la vista de la tienda que está mirando (si está activada la tienda múltiple) al actualizar la configuración y hacer otras cosas, por ejemplo.

Por esta razón, Magento agregará un guión bajo y un número al final de ciertas tablas para realizar un seguimiento de las diferentes vistas de la tienda. Notarás cómo las consultas que proporcioné parecen ser tablas duplicadas, pero terminan con números diferentes, 0 o 1 en este caso. Si tuviera varias tiendas / vistas, estos números seguirían incrementándose, _2 o _3, por ejemplo. Esto le permite administrar las identificaciones de cada tienda de manera diferente. Su cambio al sistema de identificación en una vista (tienda) no tiene que ser el mismo en otra.

Está fuera del alcance de esta publicación, pero este mismo sistema de numeración se aplica a otras tablas en la base de datos, lo que le permite tratar y afectar cada vista de la tienda de manera diferente. Podría tener un tema completamente diferente por tienda, por ejemplo.

Blizzardengle
fuente
¿Por qué sigues mencionando sobre las tiendas múltiples? ¿Qué sería diferente si tuviera habilitado el modo de tienda única?
Cóndor
1
Respondí que esta es la publicación: "... tenga en cuenta que no necesita ninguna de las consultas que terminan con _1 si habilitó el modo de almacenamiento único". Tenga en cuenta que las consultas que proporcioné llaman a lo que parecen tablas duplicadas, excepto que el final tiene un número, 0 o 1 en este caso. Si deshabilita la tienda múltiple, solo verá _0 nada con _1 o _2 o _3 y así sucesivamente. Agregué una actualización para aclarar esto.
Blizzardengle
2

Cambiar la secuencia Para cambiar el relleno del número de pedido, edite Sequence.php (creo que hay una mejor manera a través de un di.xml)

vendor/magento/module-sales-sequence/Model/Sequence.php

Edita esta línea

const DEFAULT_PATTERN  = "%s%'.09d%s";

Cambia el "9" al relleno deseado

Ejemplo

const DEFAULT_PATTERN  = "%s%'.05d%s";

Cambiar el prefijo

In admin > Stores > Sales > Order Number > 
Enter Desired prefix

Para mantener todo fácil, agregue el mismo número de factura de Fooman

Darren Sutherland
fuente
1
Es una mala idea editar el patrón de relleno en los archivos principales, debe usar el método 'mi nombre para mostrar para cambiar el patrón de relleno.
Timon de Groot
1
¿Qué magento es este? (admin> Tiendas> Ventas> Número de pedido) Uso MAG 2.2.2 pero el orden del menú parece haber cambiado.
Mohammed Joraid
1

Cambiar el ID de incremento de orden

  1. Abre tu administrador PHP
  2. Busque y haga clic en la tabla llamada: secuencia_orden_1
  3. Haga clic en la pestaña "Operaciones" y en "AUTO_INCREMENTO" edite el número de pedido deseado.

Para otra tienda, siga el mismo paso

  1. Busque y haga clic en la tabla llamada: secuencia_orden_2
  2. Haga clic en la pestaña "Operaciones" y en "AUTO_INCREMENTO" edite el número de pedido deseado.

Esto cambiará el número de pedido para las múltiples tiendas.

Divya
fuente
0

Para ajustar los números de factura a través de PHPMYADMIN

INSERTAR EN sequence_order_1( sequence_value) VALORES ('2000');

2000 será el nuevo número de inicio

Darren Sutherland
fuente
0

Puede hacer cambios al número de pedido directamente en la base de datos Magento 2 con este consejo

En primer lugar, debe abrir su base de datos PHP Admin. Luego busque y abra la tabla "sales_sequence_profile".

Después de eso, puede realizar cambios en el número de pedido predeterminado en su sitio web Magento 2:

a. ID de incremento de orden de cambio

si. Cambiar el prefijo del número de orden

do. Sufijo de número de orden de cambio

re. Número de orden de cambio Valor inicial

mi. Cambiar la longitud de la almohadilla

Veo el tutorial completo en este artículo: Guía tutorial completa para cambiar el número de orden en Magento 2

Jameslj
fuente
El nombre de la tabla es incorrecto. debería ser "sales_sequence_profile"
Dennis van Schaik
0

Para deshacerse permanentemente (o cambiar) los ceros adicionales, no debe anular los archivos principales. En su app/etc/di.xmlagregar lo siguiente y cambiar el "%s%'.09d%s"valor en consecuencia (en este ejemplo, dos 00 están rellenados):

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Framework\DB\Sequence\SequenceInterface">
        <arguments>
            <argument name="pattern" xsi:type="string">%s%'.02d%s</argument>
        </arguments>
    </type>
</config>

Las ediciones de la base de datos para los números de pedido y factura se describen perfectamente en la respuesta de Rakesh Jesadiya.

TheFrakes
fuente