ec_email_order_shipped shipment_idWhat it does:
Use this to send out the "Order Shipped" email after a shipment is made (full or partial order).Defined in: /web/philip/tcl/ecommerce-email.tcl
Source code:
set db [ns_db gethandle subquery] set selection [ns_db 1row $db "select u.email, u.user_id, s.shipment_date, s.address_id, o.order_state, o.order_id from ec_orders o, users u, ec_shipments s where o.user_id = u.user_id and o.order_id = s.order_id and s.shipment_id=$shipment_id"] set_variables_after_query set shipped_date [util_AnsiDatetoPrettyDate $shipment_date] # get item_summary set selection [ns_db select $db "select p.product_name, p.one_line_description, p.product_id, i.price_charged, i.price_name, count(*) as quantity from ec_items i, ec_products p where i.product_id=p.product_id and i.shipment_id=$shipment_id group by p.product_name, p.one_line_description, p.product_id, i.price_charged, i.price_name"] set item_list [list] while { [ns_db getrow $db $selection] } { set_variables_after_query lappend item_list "Quantity $quantity: $product_name; $price_name: [ec_pretty_price $price_charged]" } set item_summary [join $item_list "\n"] set address [ec_pretty_mailing_address_from_ec_addresses $db $address_id] # see whether this completes the order if { $order_state == "fulfilled" } { set order_completion_sentence "This completes your order." } else { set order_completion_sentence "There is still more to come. We will let you know when\nthe rest of your order ships." } set customer_service_signature [ec_customer_service_signature] set system_url "[ec_insecure_url]" # have to get rid of ampersands in above variables because they # mess up regsubs regsub -all "&" $item_summary {\\&} item_summary regsub -all "&" $address {\\&} address regsub -all "&" $order_completion_sentence {\\&} order_completion_sentence regsub -all "&" $customer_service_signature {\\&} customer_service_signature regsub -all "&" $system_url {\\&} system_url # Note: template #2 is defined to be the "Order Shipped" email set selection [ns_db 1row $db "select subject as email_subject, message as email_body, issue_type_list from ec_email_templates where email_template_id=2"] set_variables_after_query # and get rid of ctrl-M's in the body regsub -all "\r" $email_body "" email_body regsub -all "shipped_date_here" $email_body $shipped_date email_body regsub -all "item_summary_here" $email_body $item_summary email_body regsub -all "address_here" $email_body $address email_body regsub -all "sentence_about_whether_this_completes_the_order_here" $email_body $order_completion_sentence email_body regsub -all "customer_service_signature_here" $email_body $customer_service_signature email_body regsub -all "system_url_here" $email_body $system_url email_body ns_db dml $db "begin transaction" # create a customer service issue/interaction/action set user_identification_and_issue_id [ec_customer_service_simple_issue $db "" "automatic" "email" "[DoubleApos "To: $email\nFrom: [ad_parameter CustomerServiceEmailAddress ecommerce]\nSubject: $email_subject"]" $order_id $issue_type_list $email_body $user_id] set user_identification_id [lindex $user_identification_and_issue_id 0] set issue_id [lindex $user_identification_and_issue_id 1] # add a row to the automatic email log ns_db dml $db "insert into ec_automatic_email_log (user_identification_id, email_template_id, order_id, shipment_id, date_sent) values ($user_identification_id, 2, $order_id, $shipment_id, sysdate) " ns_db dml $db "end transaction" set email_from [ec_customer_service_email_address $user_identification_id $issue_id] ec_sendmail_from_service "$email" "$email_from" "$email_subject" "$email_body" ns_db releasehandle $db