Я использую multitmerch 8 в opencart 2.3.0.2 с журналом 2 для своего мультивендорного магазина. Недавно я установил лучшее расширение ajax для оформления заказа от xtension.in. При оформлении заказа все выглядит нормально, но я заметил, что продавцы больше не получают уведомления о своих заказах на товары по электронной почте, поскольку раньше уведомления получали только покупатели и администратор.
Я считаю, что расширение внесло некоторые коррективы. изменения в файлах оформления заказа. Я не эксперт в Opencart. Пожалуйста, мне нужна помощь, как восстановить уведомление продавца.
Я вижу следующую ошибку в журнале:
Undefined index: seller_text in /home/public_html/vqmod/vqcache/vq2-system_storage_modification_catalog_view_theme_journal2_template_mail_order.tpl on line 93
Спасибо
Ниже приведен код контроллера xtension в \catalog\controller\extension\module\ xtensions\checkout\checkout.php
Два файла multimerch vqmods (я не уверен, какой из них здесь применим)
multimerch_core.xml
MultiMerch Digital Multivendor Marketplace Core
http://multimerch.com/
$this->registry = $registry;
$this->registry->set('MsLoader', \MsLoader::getInstance()->setRegistry($registry));
$this->registry->set('ms_events', new \MultiMerch\Event\EventCollection());
$this->registry->set('ms_event_manager', new \MultiMerch\Event\EventManager());
$this->registry->set('MsHooks', new \MultiMerch\Core\Hook());
$this->registry->set('MsEventManager', new \MultiMerch\Core\Event\EventManager());
$this->registry->set('ms_logger', new \MultiMerch\Logger\Logger());
has('action_pre_action')) {
]]>
get('db')->query("SELECT `value` FROM " . DB_PREFIX . "setting WHERE store_id = '0' AND `key`='msconf_config_seo_url_enable'");
$pre_actions = $config->get('action_pre_action');
foreach ($pre_actions as $key => $pre_action) {
if($pre_action == 'startup/seo_url' && $res->num_rows && $res->row['value'])
$pre_actions[$key] = 'startup/multimerch_seo_url';
}
$config->set('action_pre_action', $pre_actions);
]]>
get('MsEventManager')->setRegistry($registry);
$registry->get('MsHooks')->setRegistry($registry);
$registry->get('MsHooks')->registerDefaultHooks();
]]>
getRegistry()->get($key);
}
public function __set($key, $value) {
\MsLoader::getInstance()->getRegistry()->set($key, $value);
}
]]>
getRegistry()->get('config')->get('config_currency');
]]>
getRegistry()->get('config')->get('config_currency');
]]>
currencies[$currency])) {]]>
getRegistry()->get('config')->get('config_currency');
]]>
]]>
MsHelper->isInstalled()) { ?>
if (!window.console) console = {log: function() {}}; var msconf_account_pagination_limit = ''; var config_language = ; var msLanguageDefaults = { ms_account_product_shipping_elsewhere: ""}
]]>
MsHelper->isInstalled()) {
$data = array_merge(MsLoader::getInstance()->getRegistry()->get('load')->language('multiseller/multiseller'), isset($data) ? $data : array());
MsLoader::getInstance()->MsHelper->addStyle('multiseller');
// note: renamed catalog
$lang = "view/javascript/multimerch/datatables/lang/" . $this->config->get('config_language') . ".lng";
$data['dt_language'] = file_exists(DIR_APPLICATION . $lang) ? "'catalog/$lang'" : "undefined";
// Add complemented common.js
$this->document->addScript('catalog/view/javascript/ms-common.js');
$data['ms_seller_created'] = MsLoader::getInstance()->MsSeller->isCustomerSeller($this->customer->getId());
}
]]>
db->query("SELECT o.order_id, o.firstname, o.lastname, os.name as status, o.date_added, o.total, o.currency_code, o.currency_value FROM `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "order_status os ON (o.order_status_id = os.order_status_id) WHERE o.customer_id = '" . (int)$this->customer->getId() . "' AND o.order_status_id > '0' AND o.store_id = '" . (int)$this->config->get('config_store_id') . "' AND os.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY o.order_id DESC LIMIT " . (int)$start . "," . (int)$limit);
]]>
MsHelper->isInstalled()) {
$query = $this->db->query("SELECT o.order_id, o.firstname, o.lastname, os.name as status, os.order_status_id, o.date_added, o.total, o.currency_code, o.currency_value FROM `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "order_status os ON (o.order_status_id = os.order_status_id) WHERE o.customer_id = '" . (int)$this->customer->getId() . "' AND o.order_status_id > '0' AND o.store_id = '" . (int)$this->config->get('config_store_id') . "' AND os.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY o.order_id DESC LIMIT " . (int)$start . "," . (int)$limit);
} else {
$query = $this->db->query("SELECT o.order_id, o.firstname, o.lastname, os.name as status, o.date_added, o.total, o.currency_code, o.currency_value FROM `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "order_status os ON (o.order_status_id = os.order_status_id) WHERE o.customer_id = '" . (int)$this->customer->getId() . "' AND o.order_status_id > '0' AND o.store_id = '" . (int)$this->config->get('config_store_id') . "' AND os.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY o.order_id DESC LIMIT " . (int)$start . "," . (int)$limit);
}
]]>
db->query("SELECT * FROM `" . DB_PREFIX . "order` WHERE order_id = '" . (int)$order_id . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND order_status_id > '0'");
]]>
MsHelper->isInstalled()) {
if (empty($type)) {
$order_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "order` WHERE order_id = '" . (int)$order_id . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND order_status_id > '0'");
} elseif($type == 'seller') {
$order_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "order` AS o, `" . DB_PREFIX . "ms_order_product_data` AS m WHERE o.order_id = m.order_id AND o.order_id = " . (int)$order_id . " AND m.seller_id = " . (int)$this->customer->getId() . " AND o.order_status_id > '0'");
}
} else {
$order_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "order` WHERE order_id = '" . (int)$order_id . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND order_status_id > '0'");
}
]]>
db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");
]]>
MsHelper->isInstalled()) {
$query = $this->db->query("SELECT op.*, opd.* FROM " . DB_PREFIX . "order_product op LEFT JOIN " . DB_PREFIX . "ms_order_product_data opd ON (op.order_id = opd.order_id AND op.product_id = opd.product_id AND op.order_product_id = opd.order_product_id) WHERE op.order_id = '" . (int)$order_id . "'");
if(empty($query->rows)) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");
}
} else {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");
}
]]>
MsHelper->isInstalled()) {
$ms_order_product_data = $this->MsLoader->MsOrderData->getOrderData(array(
'product_id' => $product['product_id'],
'order_id' => $product['order_id'],
'order_product_id' => $product['order_product_id'],
'single' => 1
));
$this->load->language('multiseller/multiseller');
}
]]>
$reorder,
]]>
!empty($ms_order_product_data['shipping_method']) ? " (" . sprintf($this->language->get('mm_account_order_shipping_via'), $ms_order_product_data['shipping_method']) . ")" : '',
]]>
]]>
]]>
getRegistry()->get('load')->language('multiseller/multiseller'), isset($data) ? $data : array());
]]>
]]>
]]>
db->query("UPDATE " . DB_PREFIX . "product SET quantity = (quantity - " . (int)$order_product['quantity'] . ") WHERE product_id = '" . (int)$order_product['product_id'] . "' AND subtract = '1'");
]]>
MsHelper->isInstalled()) {
if ($this->config->get('msconf_disable_product_after_quantity_depleted')) {
$res = $this->db->query("SELECT quantity FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$order_product['product_id'] . "'");
if ((int)$res->row['quantity'] MsProduct->changeStatus((int)$order_product['product_id'], MsProduct::STATUS_DISABLED);
MsLoader::getInstance()->MsProduct->disapprove((int)$order_product['product_id']);
}
}
}
]]>
MsHelper->isInstalled()) {
$this->MsLoader->MsMail->sendOrderMails($order_id);
}
]]>
config->get('shipping_status') && $this->config->get('shipping_estimator') && $this->cart->hasShipping()) {
]]>
config->get('shipping_status') && $this->config->get('shipping_estimator') && $this->cart->hasShipping() && (MsLoader::getInstance()->MsHelper->isInstalled() ? (int)$this->config->get('msconf_shipping_type') !== 2 : true)) {
]]>
session->data['shipping_method'])) {
]]>
MsHelper->isInstalled() && (int)$this->config->get('msconf_shipping_type') == 2) {
foreach($this->cart->getProducts() as $product) {
if (!isset($this->session->data['ms_cart_product_shipping']['fixed'][$product['product_id']]) && !isset($this->session->data['ms_cart_product_shipping']['combined'][$product['product_id']]) && !isset($this->session->data['ms_cart_product_shipping']['free'][$product['product_id']])) {
$redirect = $this->url->link('checkout/checkout', '', true);
}
}
} else if (!isset($this->session->data['shipping_method'])) {
]]>
session->data['shipping_methods']);
]]>
session->data['ms_cart_product_shipping']))
unset($this->session->data['ms_cart_product_shipping']);
if(isset($this->session->data['ms_coupons']))
unset($this->session->data['ms_coupons']);
]]>
session->data['totals']);
]]>
session->data['ms_cart_product_shipping']))
unset($this->session->data['ms_cart_product_shipping']);
if(isset($this->session->data['ms_coupons']))
unset($this->session->data['ms_coupons']);
]]>
MsHelper->isInstalled()) {
if(isset($this->request->get['product_id'])) {
$this->session->data['return_product_id'] = $this->request->get['product_id'];
}
}
]]>
response->redirect($this->url->link('account/return/success', '', true));
]]>
MsHelper->isInstalled()) {
// get product seller's email
if(isset($this->session->data['return_product_id'])) {
$seller_id = MsLoader::getInstance()->MsProduct->getSellerId($this->session->data['return_product_id']);
unset($this->session->data['return_product_id']);
if($seller_id) {
$seller_email = MsLoader::getInstance()->MsSeller->getSellerEmail($seller_id);
if($seller_email) {
$this->load->language('multiseller/multiseller');
$serviceLocator = MsLoader::getInstance()->load('\MultiMerch\Module\MultiMerch')->getServiceLocator();
$mailTransport = $serviceLocator->get('MailTransport');
$mails = new \MultiMerch\Mail\Message\MessageCollection();
$MailProductReturned = $serviceLocator->get('MailProductReturned', false)
->setTo($seller_email)
->setData(array(
'product_name' => $this->request->post['product'],
'store_name' => $this->config->get('config_name')
));
$mails->add($MailProductReturned);
$mailTransport->sendMails($mails);
}
}
}
}
]]>
MsHelper->isInstalled()) {
$this->ms_events->add(new \MultiMerch\Event\Event(array(
'customer_id' => $this->customer->getId(),
'event_type' => \MultiMerch\Event\Event::CUSTOMER_CREATED,
'data' => array()
)));
if($this->ms_events->count()) {
$this->ms_event_manager->create($this->ms_events);
}
}
]]>
config->get($result['code'] . '_status')) {
]]>
и другой файл vqmod multimerch_core_transactions.xml
MultiMerch Core Transactions
http://multimerch.com/
MsHelper->isInstalled())
$this->MsLoader->MsTransaction->createMsOrderDataEntries($order_id);
]]>
db->query("UPDATE `" . DB_PREFIX . "order` SET order_status_id = '" . (int)$order_status_id . "', date_modified = NOW() WHERE order_id = '" . (int)$order_id . "'");
]]>
MsHelper->isInstalled())
$this->MsLoader->MsTransaction->createMsOrderBalanceEntries($order_id, $order_status_id);
]]>
config->get('config_processing_status')
]]>
MsHelper->isInstalled()) {
$event_exists = $this->ms_event_manager->getEvents(array(
'event_type' => \MultiMerch\Event\Event::ORDER_CREATED,
'data' => json_encode(array('order_id' => (int)$order_id)),
'single' => 1
));
if(empty($event_exists)) {
$this->ms_events->add(new \MultiMerch\Event\Event(array(
'customer_id' => $this->customer->getId(),
'event_type' => \MultiMerch\Event\Event::ORDER_CREATED,
'data' => array('order_id' => (int)$order_id)
)));
}
if($this->ms_events->count()) {
$this->ms_event_manager->create($this->ms_events);
}
}
]]>
model_checkout_order->editOrder($order_id, $order_data);
]]>
MsHelper->isInstalled())
$this->MsLoader->MsTransaction->adminUpdateMsOrderDataEntries($order_id);
]]>
model_checkout_order->addOrderHistory($order_id,
]]>
MsHelper->isInstalled()) {
$transactions = $this->MsLoader->MsTransaction->createMsOrderBalanceEntries($order_id, $this->request->post['order_status_id']);
$transaction_ids = [];
foreach($transactions as $transaction_id) {
if($transaction_id) $transaction_ids[] = $transaction_id;
}
$suborders = $this->MsLoader->MsSuborder->getSuborders(array(
'order_id' => $order_id
));
$sellers_suborders_info = array();
foreach($suborders as $suborder) {
$sellers_suborders_info[] = $suborder['seller'] . ' (#' . $order_id . '-' . $suborder['suborder_id']. ')';
}
$this->load->language('multiseller/multiseller');
$json['success'] = sprintf($this->language->get('ms_order_success_suborders_modified'), $order_id, implode(', ', $sellers_suborders_info));
if(!empty($transaction_ids)) {
$json['success'] .= ' ' . sprintf($this->language->get('ms_order_success_transactions_created'), implode(', ', $transaction_ids));
}
}
]]>
language->get('text_success');
]]>
MsHelper->isInstalled()) {
$json['success'] = $this->language->get('text_success');
}
]]>
MsHelper->isInstalled()) { ?>
]]>
MsHelper->isInstalled()) { ?>
]]>
MsHelper->isInstalled()) { ?>
]]>
response->addHeader
]]>
MsHelper->isInstalled()) {
if(isset($coupon_info["type"]) AND $coupon_info["type"] == "F"){
unset($json['redirect']);
unset($this->session->data['success']);
unset($this->session->data['coupon']);
$this->load->language('multiseller/multiseller');
$json['error'] = $this->language->get('ms_error_fixed_coupon_warning');
}
}
]]>
response->addHeader
]]>
MsHelper->isInstalled()) {
unset($json['redirect']);
unset($this->session->data['success']);
unset($this->session->data['voucher']);
$this->load->language('multiseller/multiseller');
$json['error'] = $this->language->get('ms_error_voucher_warning');
}
]]>
load->controller('extension/total/' . basename($file, '.php'));]]>
MsHelper->isInstalled() && $this->config->get('msconf_allow_seller_coupons') && (string)basename($file, '.php') === 'coupon') {
$ms_controller_path = 'multimerch/cart_coupon';
}
$result = $this->load->controller($ms_controller_path);
]]>
Подробнее здесь: https://stackoverflow.com/questions/618 ... y-checkout
Multimerch 8 не отправляет уведомление о заказе продавцу при сторонней оформлении заказа ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
WooCommerce, как проверить, отображаются ли способы доставки при оформлении заказа?
Anonymous » » в форуме Php - 0 Ответы
- 69 Просмотры
-
Последнее сообщение Anonymous
-