magento 2 Errore di sintassi o violazione di accesso: 1103 Nome tabella errato '', la query era: INSERT INTO `` () VALUES ()


9

Magento 2 quando l'ordine del posto dal negozio appena creato, dopo aver fatto clic sul pulsante dell'ordine del posto sotto l'errore è dispaly,

Errore di sintassi o violazione di accesso: 1103 Nome tabella errato '', la query era: INSERT INTO `` () VALUES ()

E interrompi la funzionalità dell'ordine.


Mi diresti per favore che sei migrato da Magento1.9 a Magento 2. Se sì, allora ho una soluzione per te.
Manish,

@Manish ho quindi qual è la soluzione?
Webninja,

@Webninja, segui la risposta Vu Anh (sotto), fai in modo che ci sia la voce per ogni negozio. Qui 1 | ordine | 0 | sequence_order_0 0 è l'ID negozio. Durante la migrazione, alcuni dei dati non vengono inseriti correttamente.
Manish,

Risposte:


7

se hai creato il tuo negozio a livello di codice, devi inviare un evento add_storecon il tuo store modelparametro in.

$this->eventManager->dispatch('store_add', ['store' => $storeModel]);

Se guardi \Magento\SalesSequence\Observer\SequenceCreatorObserver, questo osservatore viene chiamato per l' add_storeevento

Inserirà alcuni dati relativi al tuo negozio nella sales_sequence_metatabella


7

questi problemi si verificano quando si tenta di inserire una nuova riga in una relazione di spedizione per generare automaticamente la sequenza. per risolvere questo problema, vedi nella tabella "sales_sequence_meta" con "entity_type" = "order", controlla e assicurati che entity_type = "order" esista su tutti i tuoi negozi. Inserirne uno nuovo se si verifica che non è presente alcun ID negozio.

meta_id | entity_type | store_id | sequence_table

1 | ordine | 0 | sequence_order_0


2

In varie circostanze, Magento non crea tabelle delle sequenze di vendita per un negozio. Si tratta di tabelle in cui vengono creati ID incremento ordine, ID incremento spedizione, ecc. Pertanto, il checkout non riesce quando si tenta di assegnare un ID incremento a un nuovo ordine. Tabelle di esempio:

sequence_creditmemo_1
sequence_invoice_1
sequence_order_1
sequence_rma_1
sequence_shipment_1

Ecco un modulo per un comando CLI Magento che creerà le tabelle delle sequenze di vendita mancanti per un determinato negozio: https://github.com/joeshelton-wagento/fixsalessequence


2

L'errore precedente si verifica quando mancano tabelle per più negozi. Il motivo principale alla base del problema è quando la migrazione viene eseguita utilizzando qualsiasi estensione di terze parti non eseguita dallo strumento di migrazione dei dati.

NOTA : eseguire il backup del database prima di applicare qualsiasi modifica!

Noterai che potrebbero mancare le seguenti tabelle:

Presupposto : negozio 1, negozio 2 funziona correttamente, se negozio 3 non funziona correttamente.

Se il negozio 3 non funziona correttamente, è necessario creare queste tabelle:

sequence_creditmemo_3 sequence_invoice_3 sequence_order_3 sequence_shipment_3

NOTA: è possibile ottenere la struttura di queste tabelle da altre tabelle esistenti come sequence_creditmemo_1, sequence_invoice_1, sequence_order_1, sequence_shipment_1


NOTA : è necessario modificare l'ID negozio nel nome della tabella.

CREATE TABLE `sequence_creditmemo_3` (
  `sequence_value` int(10) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `sequence_invoice_3` (
  `sequence_value` int(10) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `sequence_order_3` (
  `sequence_value` int(10) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `sequence_shipment_3` (
  `sequence_value` int(10) UNSIGNED NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `sequence_creditmemo_3`
  ADD PRIMARY KEY (`sequence_value`);

ALTER TABLE `sequence_invoice_3`
  ADD PRIMARY KEY (`sequence_value`);

ALTER TABLE `sequence_order_3`
  ADD PRIMARY KEY (`sequence_value`);

ALTER TABLE `sequence_shipment_3`
  ADD PRIMARY KEY (`sequence_value`);

ALTER TABLE `sequence_creditmemo_3`
  MODIFY `sequence_value` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

ALTER TABLE `sequence_invoice_3`
  MODIFY `sequence_value` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

ALTER TABLE `sequence_order_3`
  MODIFY `sequence_value` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

ALTER TABLE `sequence_shipment_3`
  MODIFY `sequence_value` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;

Le seguenti tabelle devono essere aggiornate con le corrispondenti voci della tabella del profilo di sequenza:

sales_sequence_meta sales_sequence_profile

Nota : è necessario modificare l'ID negozio nelle query seguenti.

INSERT INTO `sales_sequence_meta` (`meta_id`, `entity_type`, `store_id`, `sequence_table`) VALUES
(NULL, 'order', 3, 'sequence_order_3'),
(NULL, 'invoice', 3, 'sequence_invoice_3'),
(NULL, 'creditmemo', 3, 'sequence_creditmemo_3'),
(NULL, 'shipment', 3, 'sequence_shipment_3');

Nota : modificare il prefisso come ID negozio per la query seguente.

INSERT INTO `sales_sequence_profile` (`profile_id`, `meta_id`, `prefix`, `suffix`, `start_value`, `step`, `max_value`, `warning_value`, `is_active`) VALUES
(NULL, 17, 3, NULL, 1, 1, 4294967295, 4294966295, 1),
(NULL, 18, 3, NULL, 1, 1, 4294967295, 4294966295, 1),
(NULL, 19, 3, NULL, 1, 1, 4294967295, 4294966295, 1),
(NULL, 20, 3, NULL, 1, 1, 4294967295, 4294966295, 1);

Si prega di applicare la soluzione sopra, spero che ti possa aiutare a risolvere il tuo problema.

NOTA : eseguire il backup del database prima di apportare qualsiasi modifica!


0

Penso che Magento 2 non sia installato correttamente. Quindi, se possibile, prova a reinstallare l'ultima versione aggiornata e, successivamente, svuota la cache e esegui l'indicizzazione. Funziona correttamente dal mio setup.


0

Ho eseguito il debug del problema. Nel mio caso, è stato dovuto un processo incompleto durante la creazione del negozio a causa di dati pesanti. Ho scoperto che manca una voce nella tabella 'sales_sequence_meta' per quel negozio. Ho provato aggiungendolo manualmente e in grado di effettuare correttamente l'ordine. Controlla l'ingresso per il negozio pertinente

Controlla l'ingresso per il negozio pertinente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.