Как я могу сохранить все данные о размещении заказа в пользовательской таблице вместе с таблицами Magento по умолчанию? - PullRequest
1 голос
/ 11 марта 2012

В Magento, как только Заказчик размещает Заказ, эти данные автоматически отправляются в таблицу Sales_flat_order или для информации, относящейся к элементу, идут в таблицу sales_flat_order_item и т. Д. Аналогичным образом я выбрал несколько столбцов в базе данных Magento и создал 1 пользовательскую таблицу в базе данных Magento.Теперь мое требование состоит в том, чтобы, как только заказчик разместил заказ, эти данные также должны быть скопированы в пользовательскую таблицу вместе с таблицей по умолчанию в Magento.

Итак, для этого я создал один запрос mysql через объединения, которые будут извлекать все мои необходимые данные.из таблиц Magento и вставьте его в свою таблицу Custom .... Теперь я планирую создать php-файл, который включает в себя мой запрос выше.

Я сомневаюсь, как и где я должен изменить мой код Magento, чтобы, как только клиент разместил заказ, я позвонил в этот файл, чтобы я мог скопировать данные в пользовательскую таблицу с помощью этого запроса.Я получаю некоторую ссылку: когда клиент размещает заказ, он использует функцию saveOrder в модели Onepage, которая находится по адресу Checkout / Model / Type / Onepage.php

Так что кто-нибудь может сказать мне, что именно мне нужно сделать в этом сценарии.... Любой, у кого есть такой сценарий или пример кода для того же самого ... Или у кого-то есть другая идея ...

Плз, направьте меня ...

Спасибо ..

Ответы [ 3 ]

1 голос
/ 12 марта 2012

Почему вы не используете MySQL Trigger?

# target table name target_table
# source table name Sales_flat_order table

DELIMITER $$
CREATE TRIGGER ON_INSERT_AFTER_SALES
AFTER INSERT ON Sales_flat_order
FOR EACH ROW
BEGIN
   INSERT INTO target_table VALUES(field_one,field_two,...);
END $$
DELIMITER;
1 голос
/ 11 марта 2012

Вы можете следовать моему совету по этому ответу , но наблюдая за событием checkout_type_onepage_save_order_after.

0 голосов
/ 21 февраля 2018

Вы можете использовать событие magento sales_order_place_after , создать для этого наблюдателя и ввести в него свой код.

...