Exemplo n.º 1
0
 /**
  * Return company data
  * @param  int   $company_id
  * @return array
  */
 protected function getCompany($company_id)
 {
     if (!isset(static::$companies[$company_id])) {
         static::$companies[$company_id] = fn_get_company_placement_info($company_id);
     }
     return static::$companies[$company_id];
 }
Exemplo n.º 2
0
function fn_rma_print_packing_slips($return_ids, $auth, $area = AREA)
{
    $view = Registry::get('view');
    $passed = false;
    if (!is_array($return_ids)) {
        $return_ids = array($return_ids);
    }
    $view->assign('reasons', fn_get_rma_properties(RMA_REASON));
    $view->assign('actions', fn_get_rma_properties(RMA_ACTION));
    $view->assign('order_status_descr', fn_get_simple_statuses(STATUSES_RETURN));
    foreach ($return_ids as $return_id) {
        $return_info = fn_get_return_info($return_id);
        if (empty($return_info) || $area == 'C' && $return_info['user_id'] != $auth['user_id']) {
            continue;
        }
        $order_info = fn_get_order_info($return_info['order_id']);
        if (empty($order_info)) {
            continue;
        }
        $passed = true;
        $view->assign('return_info', $return_info);
        $view->assign('order_info', $order_info);
        $view->assign('company_data', fn_get_company_placement_info($order_info['company_id']));
        $view->displayMail('addons/rma/print_slip.tpl', true, $area, $order_info['company_id']);
        if ($return_id != end($return_ids)) {
            echo "<div style='page-break-before: always;'>&nbsp;</div>";
        }
    }
    return $passed;
}
     }
 }
 if (!empty($products)) {
     Registry::get('view')->assign('products', $products);
     $products_block = Registry::get('view')->fetch('addons/orders_feedback/components/products.tpl');
 } else {
     $products_block = '';
 }
 $letter['body'] = str_replace("%" . __("products_block") . "%", $products_block, $letter['body']);
 $letter['body'] = str_replace("%" . __("feedback_customer_firstname") . "%", $order_info['firstname'], $letter['body']);
 $letter['subject'] = str_replace("%" . __("feedback_customer_firstname") . "%", $order_info['firstname'], $letter['subject']);
 $letter['body'] = str_replace("%" . __("feedback_customer_lastname") . "%", $order_info['lastname'], $letter['body']);
 $letter['subject'] = str_replace("%" . __("feedback_customer_lastname") . "%", $order_info['lastname'], $letter['subject']);
 $letter['body'] = str_replace("%" . __("feedback_order_id") . "%", __("order") . ' #' . $order_info['order_id'], $letter['body']);
 $letter['subject'] = str_replace("%" . __("feedback_order_id") . "%", __("order") . ' #' . $order_info['order_id'], $letter['subject']);
 $company_data = fn_get_company_placement_info($order_info['company_id'], $order_info['lang_code']);
 $letter['body'] = str_replace("%" . __("feedback_company_name") . "%", $company_data['company_name'], $letter['body']);
 $letter['subject'] = str_replace("%" . __("feedback_company_name") . "%", $company_data['company_name'], $letter['subject']);
 $letter['body'] = str_replace("%" . __("feedback_company_phone") . "%", $company_data['company_phone'], $letter['body']);
 $letter['subject'] = str_replace("%" . __("feedback_company_phone") . "%", $company_data['company_phone'], $letter['subject']);
 $address = $company_data['company_address'];
 if (!empty($company_data['company_city'])) {
     $address .= ' ' . $company_data['company_city'];
 }
 if (!empty($company_data['company_state_descr'])) {
     $address .= ', ' . $company_data['company_state_descr'];
 }
 if (!empty($company_data['company_zipcode'])) {
     $address .= ', ' . $company_data['company_zipcode'];
 }
 if (!empty($company_data['company_country_descr'])) {
Exemplo n.º 4
0
    private function _getBaseItemData($product, $template, $images_data)
    {
        $currency = CART_PRIMARY_CURRENCY;
        $shippings = $this->prepareShipping($product, $template);
        $company = fn_get_company_placement_info(Registry::get('runtime.company_id'));
        $price = fn_format_price($product['price']);
        $picture_details = '';
        if ($product['override'] == "Y") {
            $title = substr(strip_tags($product['ebay_title']), 0, 80);
            $description = !empty($product['ebay_description']) ? $product['ebay_description'] : $product['full_description'];
        } else {
            $title = substr(strip_tags($product['product']), 0, 80);
            $description = $product['full_description'];
        }
        $payments = '<PaymentMethods>' . implode("</PaymentMethods>\n<PaymentMethods>", $template['payment_methods']) . '</PaymentMethods>';
        if (in_array('PayPal', $template['payment_methods'])) {
            $payments .= "\n<PayPalEmailAddress>{$template['paypal_email']}</PayPalEmailAddress>";
        }
        if (!empty($product['main_pair']) && !empty($product['main_pair']['detailed']) && !empty($product['main_pair']['detailed']['http_image_path']) && $images_data[md5($product['main_pair']['detailed']['http_image_path'])]) {
            $image_url = $images_data[md5($product['main_pair']['detailed']['http_image_path'])];
            $picture_details .= "<PictureURL>{$image_url}</PictureURL>\n";
        }
        if ($product['image_pairs']) {
            foreach ($product['image_pairs'] as $image_pair) {
                if (!empty($images_data[md5($image_pair['detailed']['http_image_path'])])) {
                    $image_url = $images_data[md5($image_pair['detailed']['http_image_path'])];
                    $picture_details .= "<PictureURL>{$image_url}</PictureURL>\n";
                }
            }
        }
        $picture_details = empty($picture_details) ? '' : "<PictureDetails>\n{$picture_details}</PictureDetails>";
        $product_features = '';
        if (!empty($product['product_features'])) {
            $product_features = '<ItemSpecifics>' . fn_prepare_xml_product_features($product['product_features']) . '</ItemSpecifics>';
        }
        $product_options = '';
        $start_price = '';
        $product_quantity = '';
        $inventory_combinations = db_get_array("SELECT combination FROM ?:product_options_inventory WHERE product_id = ?i AND amount > 0 AND combination != ''", $product['product_id']);
        if (!empty($product['product_options']) && !empty($inventory_combinations)) {
            $params = array('page' => 1, 'product_id' => $product['product_id']);
            $product_options = '<Variations>' . fn_prepare_xml_product_options($params, $product, $images_data) . '</Variations>';
        }
        if (empty($product_options)) {
            $start_price = '<StartPrice currencyID="' . $currency . '">' . $price . '</StartPrice>';
            $product_quantity = '<Quantity>' . $product['amount'] . '</Quantity>';
        }
        $location = fn_get_country_name($company['company_country']);
        $xml = <<<EOT
<ItemID>{$product['ebay_item_id']}</ItemID>
<Site>{$template['site']}</Site>
<ListingType>FixedPriceItem</ListingType>
<Currency>{$currency}</Currency>
<PrimaryCategory>
<CategoryID>{$template['category']}</CategoryID>
</PrimaryCategory>
<SecondaryCategory>
<CategoryID>{$template['sec_category']}</CategoryID>
</SecondaryCategory>
<ConditionID>{$template['condition_id']}</ConditionID>
<CategoryMappingAllowed>true</CategoryMappingAllowed>
<Country>{$company['company_country']}</Country>
<PostalCode>{$company['company_zipcode']}</PostalCode>
<Location>{$location}</Location>
<Title><![CDATA[{$title}]]></Title>
<Description><![CDATA[{$description}]]></Description>
{$payments}
<ListingDuration>{$template['ebay_duration']}</ListingDuration>
<DispatchTimeMax>{$template['dispatch_days']}</DispatchTimeMax>
{$shippings}
{$picture_details}
{$product_features}
{$product_options}
{$start_price}
{$product_quantity}
EOT;
        return $xml;
    }
Exemplo n.º 5
0
 public static function sendMail($params, $area = AREA, $lang_code = CART_LANGUAGE)
 {
     if (empty($params['to']) || empty($params['from']) || empty($params['tpl']) && empty($params['body'])) {
         return false;
     }
     fn_disable_live_editor_mode();
     $from = array('email' => '', 'name' => '');
     $to = array();
     $reply_to = array();
     $cc = array();
     $mailer = self::instance(!empty($params['mailer_settings']) ? $params['mailer_settings'] : array());
     fn_set_hook('send_mail_pre', $mailer, $params, $area, $lang_code);
     $mailer->ClearReplyTos();
     $mailer->ClearCCs();
     $mailer->ClearAttachments();
     $mailer->Sender = '';
     $params['company_id'] = !empty($params['company_id']) ? $params['company_id'] : 0;
     $company_data = fn_get_company_placement_info($params['company_id'], $lang_code);
     foreach (array('reply_to', 'to', 'cc') as $way) {
         if (!empty($params[$way])) {
             if (!is_array($params[$way])) {
                 ${$way}[] = !empty($company_data[$params[$way]]) ? $company_data[$params[$way]] : $params[$way];
             } else {
                 foreach ($params[$way] as $way_ar) {
                     ${$way}[] = !empty($company_data[$way_ar]) ? $company_data[$way_ar] : $way_ar;
                 }
             }
         }
     }
     if (!empty($reply_to)) {
         $reply_to = $mailer->formatEmails($reply_to);
         foreach ($reply_to as $rep_to) {
             $mailer->AddReplyTo($rep_to);
         }
     }
     if (!empty($cc)) {
         $cc = $mailer->formatEmails($cc);
         foreach ($cc as $c) {
             $mailer->AddCC($c);
         }
     }
     if (!is_array($params['from'])) {
         if (!empty($company_data[$params['from']])) {
             $from['email'] = $company_data[$params['from']];
             $from['name'] = strstr($params['from'], 'default_') ? $company_data['default_company_name'] : $company_data['company_name'];
         } elseif (self::ValidateAddress($params['from'])) {
             $from['email'] = $params['from'];
         }
     } else {
         if (!empty($params['from']['email'])) {
             if (!empty($company_data[$params['from']['email']])) {
                 $from['email'] = $company_data[$params['from']['email']];
                 if (empty($params['from']['name'])) {
                     $params['from']['name'] = strstr($params['from']['email'], 'default_') ? $company_data['default_company_name'] : $company_data['company_name'];
                 }
             } else {
                 $from['email'] = $params['from']['email'];
             }
             $from['name'] = !empty($company_data[$params['from']['name']]) ? $company_data[$params['from']['name']] : $params['from']['name'];
         }
     }
     if (empty($to) || empty($from['email'])) {
         return false;
     }
     $mailer->SetFrom($from['email'], $from['name']);
     $mailer->IsHTML(isset($params['is_html']) ? $params['is_html'] : true);
     $mailer->CharSet = CHARSET;
     // Pass data to template
     foreach ($params['data'] as $k => $v) {
         Registry::get('view')->assign($k, $v);
     }
     Registry::get('view')->assign('company_data', $company_data);
     $company_id = isset($params['company_id']) ? $params['company_id'] : null;
     if (!empty($params['tpl'])) {
         // Get template name for subject and render it
         $tpl_ext = fn_get_file_ext($params['tpl']);
         $subj_tpl = str_replace('.' . $tpl_ext, '_subj.' . $tpl_ext, $params['tpl']);
         $subject = Registry::get('view')->displayMail($subj_tpl, false, $area, $company_id, $lang_code);
         // Render template for body
         $body = Registry::get('view')->displayMail($params['tpl'], false, $area, $company_id, $lang_code);
     } else {
         $subject = $params['subj'];
         $body = $params['body'];
     }
     $mailer->Body = $mailer->attachImages($body);
     $mailer->Subject = trim($subject);
     if (!empty($params['attachments'])) {
         foreach ($params['attachments'] as $name => $file) {
             $mailer->AddAttachment($file, $name);
         }
     }
     $to = $mailer->formatEmails($to);
     foreach ($to as $v) {
         $mailer->ClearAddresses();
         $mailer->AddAddress($v, '');
         $result = $mailer->Send();
         if (!$result) {
             fn_set_notification('E', __('error'), __('error_message_not_sent') . ' ' . $mailer->ErrorInfo);
         }
         fn_set_hook('send_mail', $mailer);
     }
     return $result;
 }
Exemplo n.º 6
0
function fn_print_order_invoices($order_ids, $pdf = false, $area = AREA, $lang_code = CART_LANGUAGE)
{
    $view = Registry::get('view');
    $html = array();
    $view->assign('order_status_descr', fn_get_simple_statuses(STATUSES_ORDER, true, true));
    $view->assign('profile_fields', fn_get_profile_fields('I'));
    if (!is_array($order_ids)) {
        $order_ids = array($order_ids);
    }
    foreach ($order_ids as $order_id) {
        $order_info = fn_get_order_info($order_id, false, true, false, true);
        if (empty($order_info)) {
            continue;
        }
        if (fn_allowed_for('MULTIVENDOR')) {
            $view->assign('take_surcharge_from_vendor', fn_take_payment_surcharge_from_vendor($order_info['products']));
        }
        list($shipments) = fn_get_shipments_info(array('order_id' => $order_info['order_id'], 'advanced_info' => true));
        $use_shipments = !fn_one_full_shipped($shipments);
        $view->assign('order_info', $order_info);
        $view->assign('shipments', $shipments);
        $view->assign('use_shipments', $use_shipments);
        $view->assign('payment_method', fn_get_payment_data(!empty($order_info['payment_method']['payment_id']) ? $order_info['payment_method']['payment_id'] : 0, $order_info['order_id'], $lang_code));
        $view->assign('order_status', fn_get_status_data($order_info['status'], STATUSES_ORDER, $order_info['order_id'], $lang_code, $order_info['company_id']));
        $view->assign('status_settings', fn_get_status_params($order_info['status']));
        $view->assign('company_data', fn_get_company_placement_info($order_info['company_id'], $lang_code));
        if ($pdf == true) {
            fn_disable_live_editor_mode();
            $html[] = $view->displayMail('orders/print_invoice.tpl', false, $area, $order_info['company_id'], $lang_code);
        } else {
            $view->displayMail('orders/print_invoice.tpl', true, $area, $order_info['company_id'], $lang_code);
            if ($order_id != end($order_ids)) {
                echo "<div style='page-break-before: always;'>&nbsp;</div>";
            }
        }
    }
    if ($pdf == true) {
        Pdf::render($html, __('invoices') . '-' . implode('-', $order_ids));
    }
    return true;
}
 $url_params = json_encode($url_params);
 $url_params = base64_encode($url_params);
 $url = fn_url('abandoned_cart_reminder.cart?hash=' . urlencode($url_params), 'C', 'http');
 $url = '<a href="' . $url . '">' . __("view_cart") . '</a>';
 $text_header = str_replace("%cart_link%", $url, $text_header);
 $subject = str_replace("%customer_firstname%", $user_data['firstname'], $subject);
 $text_header = str_replace("%customer_firstname%", $user_data['firstname'], $text_header);
 foreach ($products as &$product) {
     $product['short_description'] = db_get_field('SELECT short_description FROM ?:product_descriptions WHERE product_id = ?i AND lang_code = ?s', $product['product_id'], $recipient_data['lang_code']);
 }
 Registry::get('view')->assign('products', $products);
 $products_block = Registry::get('view')->fetch('addons/abandoned_cart_reminder/components/products.tpl');
 $text_header = str_replace("%products_block%", $products_block, $text_header);
 $subject = str_replace("%customer_lastname%", $user_data['lastname'], $subject);
 $text_header = str_replace("%customer_lastname%", $user_data['lastname'], $text_header);
 $company_data = fn_get_company_placement_info($company_id, $recipient_data['lang_code']);
 $subject = str_replace("%company_name%", $company_data['company_name'], $subject);
 $text_header = str_replace("%company_name%", $company_data['company_name'], $text_header);
 $text_header = str_replace("%company_phone%", $company_data['company_phone'], $text_header);
 $address = $company_data['company_address'];
 if (!empty($company_data['company_city'])) {
     $address .= ' ' . $company_data['company_city'];
 }
 if (!empty($company_data['company_state_descr'])) {
     $address .= ', ' . $company_data['company_state_descr'];
 }
 if (!empty($company_data['company_zipcode'])) {
     $address .= ', ' . $company_data['company_zipcode'];
 }
 if (!empty($company_data['company_country_descr'])) {
     $address .= ', ' . $company_data['company_country_descr'];
 $url = '<a href="' . $url . '">' . __("view_cart") . '</a>';
 $text_header = str_replace("%cart_link%", $url, $text_header);
 $subject = str_replace("%customer_firstname%", $user_data['firstname'], $subject);
 $text_header = str_replace("%customer_firstname%", $user_data['firstname'], $text_header);
 $user_products = db_get_array('SELECT * FROM ?:user_session_products WHERE user_id=?i AND user_type=?s AND type=?s', $_REQUEST['customer_id'], 'R', 'C');
 if (!empty($user_products)) {
     foreach ($user_products as $product) {
         $_products_list[] = unserialize($product['extra']);
     }
 }
 Registry::get('view')->assign('products', $_products_list);
 $products_block = Registry::get('view')->fetch('addons/abandoned_cart_reminder/components/products.tpl');
 $text_header = str_replace("%products_block%", $products_block, $text_header);
 $subject = str_replace("%customer_lastname%", $user_data['lastname'], $subject);
 $text_header = str_replace("%customer_lastname%", $user_data['lastname'], $text_header);
 $company_data = fn_get_company_placement_info($company_id, $lang_code);
 $subject = str_replace("%company_name%", $company_data['company_name'], $subject);
 $text_header = str_replace("%company_name%", $company_data['company_name'], $text_header);
 $text_header = str_replace("%company_phone%", $company_data['company_phone'], $text_header);
 $address = $company_data['company_address'];
 if (!empty($company_data['company_city'])) {
     $address .= ' ' . $company_data['company_city'];
 }
 if (!empty($company_data['company_state_descr'])) {
     $address .= ', ' . $company_data['company_state_descr'];
 }
 if (!empty($company_data['company_zipcode'])) {
     $address .= ', ' . $company_data['company_zipcode'];
 }
 if (!empty($company_data['company_country_descr'])) {
     $address .= ', ' . $company_data['company_country_descr'];
Exemplo n.º 9
0
function fn_qwintry_save_order_invoice($order_id, $area = AREA, $lang_code = CART_LANGUAGE)
{
    $view = Tygh::$app['view'];
    $html = array();
    $view->assign('order_status_descr', fn_get_simple_statuses(STATUSES_ORDER, true, true));
    $view->assign('profile_fields', fn_get_profile_fields('I'));
    $order_info = fn_get_order_info($order_id, false, true, false, true);
    if (empty($order_info)) {
        return;
    }
    if (fn_allowed_for('MULTIVENDOR')) {
        $view->assign('take_surcharge_from_vendor', fn_take_payment_surcharge_from_vendor($order_info['products']));
    }
    list($shipments) = fn_get_shipments_info(array('order_id' => $order_info['order_id'], 'advanced_info' => true));
    $use_shipments = !fn_one_full_shipped($shipments);
    $view->assign('order_info', $order_info);
    $view->assign('shipments', $shipments);
    $view->assign('use_shipments', $use_shipments);
    $view->assign('payment_method', fn_get_payment_data(!empty($order_info['payment_method']['payment_id']) ? $order_info['payment_method']['payment_id'] : 0, $order_info['order_id'], $lang_code));
    $view->assign('order_status', fn_get_status_data($order_info['status'], STATUSES_ORDER, $order_info['order_id'], $lang_code, $order_info['company_id']));
    $view->assign('status_settings', fn_get_status_params($order_info['status']));
    $view->assign('company_data', fn_get_company_placement_info($order_info['company_id'], $lang_code));
    fn_disable_live_editor_mode();
    $html[] = $view->displayMail('orders/print_invoice.tpl', false, $area, $order_info['company_id'], $lang_code);
    $filename = QWINTRY_DIR_INVOICES . $order_id . '.pdf';
    if (Pdf::render($html, $filename, true)) {
        return $filename;
    }
    return false;
}