function process() { if (!$this->valid_cfg) { return; } global $order, $insert_id; $OSCOM_Db = Registry::get('Db'); $orderId = $insert_id; // just to make it obvious. $debug_email = ''; if ($this->debug) { $debug_email .= '------------[New Order ' . $orderId . ']-----------------' . "\n" . '$order =' . "\n" . print_r($order, true) . '$_COOKIE =' . "\n" . print_r($_COOKIE, true); } if (!isset($_COOKIE['mailchimp_campaign_id']) || !isset($_COOKIE['mailchimp_email_id'])) { return; } if ($this->debug) { $debug_email .= date('Y-m-d H:i:s') . ' current ids:' . "\n" . date('Y-m-d H:i:s') . ' eid =' . $_COOKIE['mailchimp_email_id'] . "\n" . date('Y-m-d H:i:s') . ' cid =' . $_COOKIE['mailchimp_campaign_id'] . "\n"; } $Qorder = $OSCOM_Db->get('orders', 'orders_id', ['customers_id' => $_SESSION['customer_id']], 'date_purchased desc', 1); $totals_array = array(); $Qtotals = $OSCOM_Db->get('orders_total', ['value', 'class'], ['orders_id' => $Qorder->valueInt('orders_id')]); while ($Qtotals->fetch()) { $totals_array[$Qtotals->value('class')] = $Qtotals->value('value'); } $products_array = array(); $Qproducts = $OSCOM_Db->get('orders_products', ['products_id', 'products_model', 'products_name', 'products_tax', 'products_quantity', 'final_price'], ['orders_id' => $Qorder->valueInt('orders_id')]); while ($Qproducts->fetch()) { $products_array[] = array('id' => $Qproducts->valueInt('products_id'), 'name' => $Qproducts->value('products_name'), 'model' => $Qproducts->value('products_model'), 'qty' => $Qproducts->value('products_quantity'), 'final_price' => $Qproducts->value('final_price')); $totals_array['ot_tax'] += $Qproducts->value('product_tax'); } $mcorder = array('id' => $Qorder->valueInt('orders_id'), 'total' => $totals_array['ot_total'], 'shipping' => $totals_array['ot_shipping'], 'tax' => $totals_array['ot_tax'], 'items' => array(), 'store_id' => $this->store_id, 'store_name' => $_SERVER['SERVER_NAME'], 'campaign_id' => $_COOKIE['mailchimp_campaign_id'], 'email_id' => $_COOKIE['mailchimp_email_id'], 'plugin_id' => 1216); foreach ($products_array as $product) { $item = array(); $item['line_num'] = $line; $item['product_id'] = $product['id']; $item['product_name'] = $product['name']; $item['sku'] = $product['model']; $item['qty'] = $product['qty']; $item['cost'] = $product['final_price']; //All this to get a silly category name from here $Qcat = $OSCOM_Db->get('products_to_categories', 'categories_id', ['products_id' => $product['id']], null, 1); $cat_id = $Qcat->valueInt('categories_id'); $item['category_id'] = $cat_id; $cat_name == ''; $continue = true; while ($continue) { //now recurse up the categories tree... $Qcat = $OSCOM_Db->prepare('select c.categories_id, c.parent_id, cd.categories_name from :table_categories c inner join :table_categories_description cd on c.categories_id = cd.categories_id where c.categories_id = :categories_id'); $Qcat->bindInt(':categories_id', $cat_id); $Qcat->execute(); if ($cat_name == '') { $cat_name = $Qcat->value('categories_name'); } else { $cat_name = $Qcat->value('categories_name') . ' - ' . $cat_name; } $cat_id = $Qcat->valueInt('parent_id'); if ($cat_id == 0) { $continue = false; } } $item['category_name'] = $cat_name; $mcorder['items'][] = $item; } $GLOBALS["mc_api_key"] = $this->apikey; $api = new MCAPI('notused', 'notused'); $res = $api->campaignEcommAddOrder($mcorder); if ($api->errorMessage != '') { if ($this->debug) { $debug_email .= 'Error:' . "\n" . $api->errorMessage . "\n"; } } else { //nothing } // send!() if ($this->debug && !empty($debug_email)) { $debugEmail = new Mail(MODULE_HEADER_TAGS_MAILCHIMP_360_DEBUG_EMAIL, null, STORE_OWNER_EMAIL_ADDRESS, STORE_OWNER, 'MailChimp Debug E-Mail'); $debugEmail->setBody($debug_email); $debugEmail->send(); } }
function process() { if (!$this->valid_cfg) { return; } global $order, $insert_id; $orderId = $insert_id; // just to make it obvious. $debug_email = ''; if ($this->debug) { $debug_email .= '------------[New Order ' . $orderId . ']-----------------' . "\n" . '$order =' . "\n" . print_r($order, true) . '$_COOKIE =' . "\n" . print_r($_COOKIE, true); } if (!isset($_COOKIE['mailchimp_campaign_id']) || !isset($_COOKIE['mailchimp_email_id'])) { return; } if ($this->debug) { $debug_email .= date('Y-m-d H:i:s') . ' current ids:' . "\n" . date('Y-m-d H:i:s') . ' eid =' . $_COOKIE['mailchimp_email_id'] . "\n" . date('Y-m-d H:i:s') . ' cid =' . $_COOKIE['mailchimp_campaign_id'] . "\n"; } $customer_id = $_SESSION['customer_id']; $orders_query = tep_db_query("select orders_id from " . TABLE_ORDERS . " where customers_id = '" . (int) $customer_id . "' order by date_purchased desc limit 1"); $orders = tep_db_fetch_array($orders_query); $totals_array = array(); $totals_query = tep_db_query("select value, class from " . TABLE_ORDERS_TOTAL . " where orders_id = " . (int) $orders['orders_id']); while ($totals = tep_db_fetch_array($totals_query)) { $totals_array[$totals['class']] = $totals['value']; } $products_array = array(); $products_query = tep_db_query("select products_id, products_model, products_name, products_tax, products_quantity, final_price from " . TABLE_ORDERS_PRODUCTS . " where orders_id = " . (int) $orders['orders_id']); while ($products = tep_db_fetch_array($products_query)) { $products_array[] = array('id' => $products['products_id'], 'name' => $products['products_name'], 'model' => $products['products_model'], 'qty' => $products['products_quantity'], 'final_price' => $products['final_price']); $totals_array['ot_tax'] += $products['product_tax']; } $mcorder = array('id' => $orders['orders_id'], 'total' => $totals_array['ot_total'], 'shipping' => $totals_array['ot_shipping'], 'tax' => $totals_array['ot_tax'], 'items' => array(), 'store_id' => $this->store_id, 'store_name' => $_SERVER['SERVER_NAME'], 'campaign_id' => $_COOKIE['mailchimp_campaign_id'], 'email_id' => $_COOKIE['mailchimp_email_id'], 'plugin_id' => 1216); foreach ($products_array as $product) { $item = array(); $item['line_num'] = $line; $item['product_id'] = $product['id']; $item['product_name'] = $product['name']; $item['sku'] = $product['model']; $item['qty'] = $product['qty']; $item['cost'] = $product['final_price']; //All this to get a silly category name from here $cat_qry = tep_db_query("select categories_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = " . (int) $product['id'] . " limit 1"); $cats = tep_db_fetch_array($cat_qry); $cat_id = $cats['categories_id']; $item['category_id'] = $cat_id; $cat_name == ''; $continue = true; while ($continue) { //now recurse up the categories tree... $cat_qry = tep_db_query("select c.categories_id, c.parent_id, cd.categories_name from " . TABLE_CATEGORIES . " c inner join " . TABLE_CATEGORIES_DESCRIPTION . " cd on c.categories_id = cd.categories_id where c.categories_id =" . $cat_id); $cats = tep_db_fetch_array($cat_qry); if ($cat_name == '') { $cat_name = $cats['categories_name']; } else { $cat_name = $cats['categories_name'] . ' - ' . $cat_name; } $cat_id = $cats['parent_id']; if ($cat_id == 0) { $continue = false; } } $item['category_name'] = $cat_name; $mcorder['items'][] = $item; } $GLOBALS["mc_api_key"] = $this->apikey; $api = new MCAPI('notused', 'notused'); $res = $api->campaignEcommAddOrder($mcorder); if ($api->errorMessage != '') { if ($this->debug) { $debug_email .= 'Error:' . "\n" . $api->errorMessage . "\n"; } } else { //nothing } // send!() if ($this->debug && !empty($debug_email)) { tep_mail('', MODULE_HEADER_TAGS_MAILCHIMP_360_DEBUG_EMAIL, 'MailChimp Debug E-Mail', $debug_email, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS); } }