Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

NEW! Complete Order Editing Tool!


jhilgeman

Recommended Posts

If you have no zones defined, you will get an error "errors on page" in your browser for order_editor (because something goes wrong in catalog\admin\order_editor\functions.php in function oe_js_zone_list, wrong code will be generated in this function)

Link to comment
Share on other sites

Hopefully someone here can help....

 

I have the most recent version of order editor and sppc installed ( sppc is enabled in the "order editor" configuration screen ) and I'm having some issues with tax exemption.

 

I have 2 types of customers defined: Retail and Wholesale. Wholesale customers are tax exempt. Retail are not. When retail customers order products from my site ( and live in my state ) they get charged tax. When a wholesale customer orders from the site, they do not get charged tax. That part works great!

 

The problem I'm having is when I enter a new order on behalf of a wholesale customer using order editor the Tax is added to the order, even though it shouldn't be.

 

Is this something that "order editor" does not handle yet, or is it possibly an installation error on my part ( sppc was installed manually after order editor ) I followed the sppc install instructions to a tee, and was careful to check for code continuity as I went but I could have done something wrong unknowingly.

Link to comment
Share on other sites

Hi there,

 

a small problem I have found. In my country list I changed the name of one of my countries, Mainland UK, to UK Mainland and now all orders I view through order editor have defaulted back to the first Country in the list (alphabetically) which is Andorra

 

This is particular to edit_orders as when the order is viewed through the standard order editor the information hasn't changed.

 

Any ideas how to rectify this?

 

Thanks

 

Dave

Link to comment
Share on other sites

I have additional information about my problem.

 

My code about the total without vat has only been placed recently; which means that most current orders are still without this total VAT excluded. However, if I try to edit one of those orders, order editor add a line "total vat excluded". So it means that it is recognized by order editor. But the problem of calculation remains.

Any idea?

Link to comment
Share on other sites

This is a great mod and I have been using it extensively.

 

I have noticed that in the email sent to the customer that in the information for Delivery and Billing the fields for City and Zip (postal) Code are incorrect. They are being populated with the City and Zip Code from the customer address information field. Please see below

 

I have tried to correct the issue without success.

 

Can anyone help me fix this issue?

 

I really appreciate it.

Taylor

 

 

Customer Address Field

Bob Smith

123 Main St.

Boston

Massachusetts

02101

 

 

Email sent to customer

 

Delivery Address

------------------------------------------------------

Jane Smith

200 Water St

Boston

Florida

02101

 

 

Billing Address

------------------------------------------------------

Bob Smith

PO Box 100

Boston

Rhode Island

02101

 

 

 

I am having the same issue, it appears when there is different billing and shipping, when the order confirmation is sent, they are the same. Is this happening with anyone else? Any ideas how to fix?

Link to comment
Share on other sites

I am having a similar problem:

 

Sub-Total: $146.95USD

HI TAX 4.166 + : $6.12USD

UPS Ground $13.00USD

Total: $166.61USD

 

The totals just don't match up. Im using Order Editor 5.0.6

 

Any help would be great

Mahalo in advanced!

Link to comment
Share on other sites

Hello everyone. I have the following problem.

 

I have installed the contribution aggregation of module Payment Type Charge v1.8 (..\catalog\includes\modules\order_total\ot_fixed_payment_chg.php) and works perfectly, but when publishing any information of prices in an order with order editor 5.0.63, I am not in the total amount asked for the amount reflected in the Payment Type Charge v1.8 box.

 

Any help? ...

Link to comment
Share on other sites

Hi all,

 

I have upgraded to v5.0.6 from v2.8.2 and everthing went without a hitch. Well, almost everything....

 

I have another mod installed, the "price breaks per quantity" mod, and the problem that I am having is that I cannot get this mod to work properly with the ajax part of the new version of the order editor mod.

 

Basically what should happen is this....

 

When the admin changes a quantity of an ordered product in the editor, all product prices and all totals need to be recalculated.

So I have made some changes to the edit_orders_ajax.php file.... particularly in section #2 (see below):

 

  //-- 2. Update the orders_products table for qty, tax, name, or model -----------------------------------------------
 if ($action == 'update_product_field') {

if ($_GET['field'] == 'products_quantity') {
  $order_query = tep_db_query("SELECT products_id, products_quantity 
												FROM " . TABLE_ORDERS_PRODUCTS . "
												WHERE orders_id = '" . $_GET['oID'] . "'
												AND orders_products_id = '" . $_GET['pid'] . "'");
  $orders_product_info = tep_db_fetch_array($order_query);

  // update inventory quantities
  if ($_GET['new_value'] != $orders_product_info['products_quantity']){
	$quantity_difference = ($_GET['new_value'] - $orders_product_info['products_quantity']);
	if (STOCK_LIMITED == 'true'){
	  tep_db_query("UPDATE " . TABLE_PRODUCTS . "
							SET products_quantity = products_quantity - " . $quantity_difference . ", 
								  products_ordered = products_ordered + " . $quantity_difference . " 
							WHERE products_id = '" . $orders_product_info['products_id'] . "'");
	  }
	else {
	  tep_db_query("UPDATE " . TABLE_PRODUCTS . "
							SET products_ordered = products_ordered + " . $quantity_difference . "
							WHERE products_id = '" . $orders_product_info['products_id'] . "'");
	  }
	}

  //-- START price breaks per qty mod -- remo
  // this section sets the product prices correctly in the database if the quantity changes
  // but we need to update the input fields on the edit order as well.
  $pf->loadProduct((int)$orders_product_info['products_id'], $languages_id);
  $price_break = $pf->computePrice($_GET['new_value']);
  tep_db_query("UPDATE " . TABLE_ORDERS_PRODUCTS . "
						SET products_price = '" . oe_iconv($price_break) . "', final_price = '" . oe_iconv($price_break) . "'
						WHERE orders_products_id = '" . $_GET['pid'] . "' AND orders_id = '" . $_GET['oID'] . "'");
/*
?>
  <script language="JavaScript" type="text/javascript">
	var qty = '<?=$_GET['new_value']?>';
	var taxRate = document.getElementById("update_products[<?=$_GET['pid']?>][tax]").value;
	var attValue = getAttributesPrices(<?=$_GET['pid']?>);

	var priceValue = '<?=$price_break?>';
	var finalPriceValue = Number(attValue) + Number(priceValue);
	var priceInclValue = ( Number(attValue) + Number(priceValue) ) * ((taxRate / 100) + 1);
	var totalInclValue = ( Number(attValue) + Number(priceValue) ) * ((taxRate / 100) + 1) * qty;
	var totalExclValue = ( Number(attValue) + Number(priceValue) ) * qty;
	var taxValue = taxRate * finalPriceValue / 100 * qty;

	document.getElementById("update_products[<?=$_GET['pid']?>][price]").value = doFormat(priceValue, 4);
	document.getElementById("update_products[<?=$_GET['pid']?>][final_price]").value = doFormat(finalPriceValue, 4);
	document.getElementById("update_products[<?=$_GET['pid']?>][price_incl]").value = doFormat(priceInclValue, 4);
	document.getElementById("update_products[<?=$_GET['pid']?>][total_excl]").value = doFormat(totalExclValue, 4);
	document.getElementById("update_products[<?=$_GET['pid']?>][total_incl]").value = doFormat(totalInclValue, 4);
  </script>
<?php
*/
  //-- END price breaks per qty mod -- remo
  }

tep_db_query("UPDATE " . TABLE_ORDERS_PRODUCTS . "
					  SET " . $_GET['field'] . " = '" . oe_iconv($_GET['new_value']) . "'
					  WHERE orders_products_id = '" . $_GET['pid'] . "'
					  AND orders_id = '" . $_GET['oID'] . "'");
echo $_GET['field'];
}

 

So you can see that I can change the prices in the order_products table, without any problems, but I also need to change the values in the input fields on the order editor.

 

I attempted to take care of this problem with the javascript that is inserted there, but as you can see, it has been commented out because it does not work.

 

Does anyone else have these two mods installed in their cart? Or can anyone shed any light on this problem?

 

Thanks

 

Remo

Link to comment
Share on other sites

Hi again,

 

It seems that I have found a way to update the price fields in the order editor from the edit_order_ajax.php file.

So if anyone has the "price breaks per quantity" mod installed, here is a way you can make it work with the new version of the order editor.

 

Here is a quick rundown, and then I'll give you the code:

 

1. I simply removed the html tags from my code above and left just the javascript.

2. I created a js variable "theActualResponseText" which holds the actual response text.. (funny that?)

3. I modified the file /order_editor/javascript.php to evaluate the js code which gets sent back as the response.

 

 

FROM FILE: edit_orders_ajax.php

  //-- 2. Update the orders_products table for qty, tax, name, or model -----------------------------------------------
 if ($action == 'update_product_field') {

if ($_GET['field'] == 'products_quantity') {
  $order_query = tep_db_query("SELECT products_id, products_quantity 
												FROM " . TABLE_ORDERS_PRODUCTS . "
												WHERE orders_id = '" . $_GET['oID'] . "'
												AND orders_products_id = '" . $_GET['pid'] . "'");
  $orders_product_info = tep_db_fetch_array($order_query);

  // update inventory quantities
  if ($_GET['new_value'] != $orders_product_info['products_quantity']){
	$quantity_difference = ($_GET['new_value'] - $orders_product_info['products_quantity']);
	if (STOCK_LIMITED == 'true'){
	  tep_db_query("UPDATE " . TABLE_PRODUCTS . "
							SET products_quantity = products_quantity - " . $quantity_difference . ", 
								  products_ordered = products_ordered + " . $quantity_difference . " 
							WHERE products_id = '" . $orders_product_info['products_id'] . "'");
	  }
	else {
	  tep_db_query("UPDATE " . TABLE_PRODUCTS . "
							SET products_ordered = products_ordered + " . $quantity_difference . "
							WHERE products_id = '" . $orders_product_info['products_id'] . "'");
	  }
	}

  //-- START price breaks per qty mod -- remo
  // this section sets the product prices correctly in the database if the quantity changes
  // but we need to update the input fields on the edit order as well.
  $pf->loadProduct((int)$orders_product_info['products_id'], $languages_id);
  $price_break = $pf->computePrice($_GET['new_value']);
  tep_db_query("UPDATE " . TABLE_ORDERS_PRODUCTS . "
						SET products_price = '" . oe_iconv($price_break) . "', final_price = '" . oe_iconv($price_break) . "'
						WHERE orders_products_id = '" . $_GET['pid'] . "' AND orders_id = '" . $_GET['oID'] . "'");
?>

	var qty = '<?=$_GET['new_value']?>';
	var taxRate = document.getElementById("update_products[<?=$_GET['pid']?>][tax]").value;
	var attValue = getAttributesPrices(<?=$_GET['pid']?>);

	var priceValue = '<?=$price_break?>';
	var finalPriceValue = Number(attValue) + Number(priceValue);
	var priceInclValue = ( Number(attValue) + Number(priceValue) ) * ((taxRate / 100) + 1);
	var totalInclValue = ( Number(attValue) + Number(priceValue) ) * ((taxRate / 100) + 1) * qty;
	var totalExclValue = ( Number(attValue) + Number(priceValue) ) * qty;
	var taxValue = taxRate * finalPriceValue / 100 * qty;

	document.getElementById("update_products[<?=$_GET['pid']?>][price]").value = doFormat(priceValue, 4);
	document.getElementById("update_products[<?=$_GET['pid']?>][final_price]").value = doFormat(finalPriceValue, 4);
	document.getElementById("update_products[<?=$_GET['pid']?>][price_incl]").value = doFormat(priceInclValue, 4);
	document.getElementById("update_products[<?=$_GET['pid']?>][total_excl]").value = doFormat(totalExclValue, 4);
	document.getElementById("update_products[<?=$_GET['pid']?>][total_incl]").value = doFormat(totalInclValue, 4);

	var theActualResponseText = "<?=$_GET['field']?>";

<?php
  //-- END price breaks per qty mod -- remo
  }

tep_db_query("UPDATE " . TABLE_ORDERS_PRODUCTS . "
					  SET " . $_GET['field'] . " = '" . oe_iconv($_GET['new_value']) . "'
					  WHERE orders_products_id = '" . $_GET['pid'] . "'
					  AND orders_id = '" . $_GET['oID'] . "'");
//echo $_GET['field'];
}

 

FROM FILE: /order_editor/javascript.php

function updateProductsField(action, pid, field, value, info) {

  createRequest();

	if ( (action == 'update') || (action == 'reload1') ) {

	var url = "<?php echo FILENAME_ORDERS_EDIT_AJAX; ?>?action=update_product_field&oID=<?php echo $_GET['oID']; ?>&pid=" + pid + "&field=" + field + "&new_value=" + value;

	xmlHttp.open("GET", url, true);

		if (action == 'reload1') {

		//-- REMOVED for price breaks per quantity mod -- remo
		//	xmlHttp.onreadystatechange=
		//	  function(){if(xmlHttp.readyState!=4)return;if(xmlHttp.status==200){rewriteDiv(xmlHttp.responseText, 'products');obtainTotals();}};
		//
		//-- START price breaks per quantity mod -- remo
			xmlHttp.onreadystatechange=
			  function(){if(xmlHttp.readyState!=4)return;if(xmlHttp.status==200){eval(xmlHttp.responseText);rewriteDiv(theActualResponseText, 'products');obtainTotals();}};
		//-- END price breaks per quantity mod -- remo

		} else {//action == 'update'
			xmlHttp.onreadystatechange=
			  function(){if(xmlHttp.readyState!=4)return;if(xmlHttp.status==200){rewriteDiv(xmlHttp.responseText, 'products');}};
		}

	}//end if ( (action == 'update') || (action == 'reload1') ) {


	if (action == 'reload2') {

	var price = document.getElementById("update_products[" + pid + "][price]").value;
	var final_price = document.getElementById("update_products[" + pid + "][final_price]").value;

	var url = "<?php echo FILENAME_ORDERS_EDIT_AJAX; ?>?action=update_product_value_field&oID=<?php echo $_GET['oID']; ?>&pid=" + pid + "&price=" + price + "&final_price=" + final_price;

	xmlHttp.open("GET", url, true);

	xmlHttp.onreadystatechange=
			function(){if(xmlHttp.readyState!=4)return;if(xmlHttp.status==200){rewriteDiv(xmlHttp.responseText, 'products');obtainTotals();}};

	}//end if action == 'reload2'


	if ( (action == 'delete') && (field == 'delete') && (value == true) ){

	  if (confirm('<?php echo AJAX_CONFIRM_PRODUCT_DELETE; ?>')) {

	   var url = "<?php echo FILENAME_ORDERS_EDIT_AJAX; ?>?action=delete_product_field&oID=<?php echo $_GET['oID']; ?>&pid=" + pid + "&field=" + field + "&new_value=" + value;

	   xmlHttp.open("GET", url, true);

	   xmlHttp.onreadystatechange=
			   function(){if(xmlHttp.readyState!=4)return;if(xmlHttp.status==200){rewriteDiv(xmlHttp.responseText, 'products');deleteRow(info, 'productsTable');obtainTotals();}};

	   }

 }//end if (action == 'delete') {

 xmlHttp.send(null);

} //end function updateProductsField(action, pid, field, value) {

 

If anyone has a better way, please let me know and I will use it too.

 

Thanks.

 

Remo

Link to comment
Share on other sites

After my installation this error comes up.

 

//////create a pull down for all payment installed payment methods for Order Editor configuration // Get list of all payment modules available function tep_cfg_pull_down_payment_methods() { global $language; $enabled_payment = array(); $module_directory = DIR_FS_CATALOG_MODULES . 'payment/'; $file_extension = '.php'; if ($dir = @dir($module_directory)) { while ($file = $dir->read()) { if (!is_dir( $module_directory . $file)) { if (substr($file, strrpos($file, '.')) == $file_extension) { $directory_array[] = $file; } } } sort($directory_array); $dir->close(); } // For each available payment module, check if enabled for ($i=0, $n=sizeof($directory_array); $i<$n; $i++) { $file = $directory_array[$i]; include(DIR_FS_CATALOG_LANGUAGES . $language . '/modules/payment/' . $file); include($module_directory . $file); $class = substr($file, 0, strrpos($file, '.')); if (tep_class_exists($class)) { $module = new $class; if ($module->check() > 0) { // If module enabled create array of titles $enabled_payment[] = array('id' => $module->title, 'text' => $module->title); } } } $enabled_payment[] = array('id' => 'Other', 'text' => 'Other'); //draw the dropdown menu for payment methods and default to the order value return tep_draw_pull_down_menu('configuration_value', $enabled_payment, '', ''); } /////end payment method dropdown

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/texmood/public_html/catalog/admin/includes/functions/general.php:1359) in /home/texmood/public_html/catalog/admin/includes/functions/sessions.php on line 67

 

Does anyone know what might cause this session-start issue?

Link to comment
Share on other sites

Hi all,

 

I installed the Version Order Editor 5.0.6.3, perfect contrib .....great....

 

 

But I have two problems.

 

First

 

Normal Modus

 

- after add new Product, system goes back to login page. After relogin I got a message "no Order-ID select or not exist", but the new produkt already done at the order.

 

second

 

Ajax modus

 

Browser Firefox : all changes at each field goes back to login page.

Browser IE7 : ajax will made my changes, but it will not done work. ( I have to break this )

 

There are no changes at my order at all.

 

 

 

Please help me....

 

Markus0707

Link to comment
Share on other sites

I've installed - Order Editor 5.0 - then order maker 1.4.2.

 

Now I see - Manual payment for - Manual Order (Another Order Editor and Creator).

 

Manual Payment is exactly what I need. Can anyone tell me how to integrate the manual_payment.php file with Order Editor/Order Maker.

 

This would allow taking the Credit Card information right over the phone while in Order Editor. You wouldn't have to go to authorize.net and duplicate all the info to process a Credit Card.

Link to comment
Share on other sites

Hello.

This is a one of greatest contribution for me..

 

Installed your latest release(Order Editor 5.0.6.3) and it works great, only thing I noticed is that it interferes with negative values.

 

I am use Points Reward and when I edit the invoice it take the dollar value (let's say -$5.00) and upon opening the editor changes it to +$5.00 I didn't cath this right away, and some customers were emailing.

 

It also removes the formatting. With points reward the points are listed as such on the invoice

 

Redeemed Point -$5.00

 

After editting it appears as

 

Redeemed Point +$5.00

 

 

It's problem with kind of these things(ot_coupon (discount coupons), ot_gv (gift vouchers), ot_redemptions (Points) )

 

I found some tips from here bellow

http://www.oscommerce.com/forums/index.php?act...ints%2BRedeemed

 

but It's not for latest one.. so I can't apply it to my case..

 

Anybody can help me?? Please....

Link to comment
Share on other sites

I understand the argument about not changeing a Credit Card payment after the customer has ordered. However, with "Order Maker" new orders can be created.

 

Currently there is a contribution for authorize.net that is a .php file. It is added to the admin section. This contribution was created for "Manual Orders"

 

http://addons.oscommerce.com/info/4139

 

Is there anyone who could tweak this for "Order Editor/Order Creator". I believe the only issue is the sequence of the sql file. This would allow the creation of new orders and charge the credit card at the same time. I'm just not knowlageable enough on php/sql to impliment. But it would allow web sites to take orders over the phone!

 

Thanks for any help.

 

Ki

Link to comment
Share on other sites

Hi ive just installed the new version of order editor, my problem is when i click Add Product a pop up window displays the following repeatedly about 20 times

 

Warning: in_array() [function.in-array]: Wrong datatype for second argument in /*****/*****/*****/catalog/admin/includes/functions/general.php on line 186

 

ive search everywhere to find a solution but cant find one... pls help

 

 

thanks

 

Claire

I'm still having problems with this. Is there a fix??

Link to comment
Share on other sites

This contribution has proven one of the best I have installed and strongly suggest that everyone install it!

 

I was wondering if anyone could help me please.

 

We take alot of orders over the phone and we have a delayed order fullifment option.

 

For our online customers we use the Shipdate v0.1 contribution for customer to chose their shipping date.

http://addons.oscommerce.com/info/1393

 

What I need help with is adding that shipdate functionality to Order Editor ???

 

Has anyone or does anyone know how to do this??

 

My php is not that great. I have tired and I only get 50% to work correctly.

 

Any help is very greatly appreciated.

Link to comment
Share on other sites

I have the latest version of order editor installed and when I add a product to the order it is not adding the amount to the sub total. It is adding the product and the tax and the total is correct just the subtotal. Any ideas?

 

lildog

Link to comment
Share on other sites

Hello ;)

 

This contribution is great :D but I've a little bug with it. :(

 

Here the code of edit_orders.php and edit_orders_add_product.php

 

When I edit an order and I add a product, a popup opens (all is ok here) :

 

155.jpg

 

Popup's url :

 

156.jpg

 

When the first product have been added (green), the popup go to the beginning to add an other product and the url is :

 

157.jpg

 

And here is the bug :huh: . I can't open the combo box to add a new product. I have to close the popup and reopen it to add an other product. :blink:

 

 

Someone know what is the problem?

 

 

I think the problem is here but i'm not sure (edit_orders_add_product.php) :

 

		// Unset selected product & category
	$add_product_categories_id = 0;
	$add_product_products_id = 0;


	tep_redirect(tep_href_link(FILENAME_ORDERS_EDIT_ADD_PRODUCT, 'oID=' . $oID . '&step=1&submitForm=yes'));

	break;

}
 }

 

 

 

Thanks a lot for your help ;)

Link to comment
Share on other sites

  • 2 weeks later...

I have installed this add-on reading installation guide step by step, but something is wrong, because edit option will not work.

when I press edit, I got following error "Error: Order 16062008223025 does not exist."

I have unique order number addon installed and I think that could cause this problem, but could some one help me to solve this problem?

Edited by -Teme-
Link to comment
Share on other sites

I have installed this add-on reading installation guide step by step, but something is wrong, because edit option will not work.

when I press edit, I got following error "Error: Order 16062008223025 does not exist."

I have unique order number addon installed and I think that could cause this problem, but could some one help me to solve this problem?

Yeah, my assume got right.

I uninstalled that unique order number addon and edit button started to work.

Now anyway I would like to use both addons at same time ad I need some help for that

Link to comment
Share on other sites

Yeah, my assume got right.

I uninstalled that unique order number addon and edit button started to work.

Now anyway I would like to use both addons at same time ad I need some help for that

I got it to work.

to file edit_orders.php needed to make two change

to row's 613 and 614 need to change as follows

FROM:

		$oID = tep_db_prepare_input($GET['oID']);
	$orders_query = tep_db_query("select orders_id from " . TABLE_ORDERS . " where orders_id = '" . (int)$oID . "'");

 

TO:

		$oID = tep_db_prepare_input($HTTP_GET_VARS['oID']);
	$orders_query = tep_db_query("select orders_id from " . TABLE_ORDERS . " where orders_id = '" . $oID . "'");

Link to comment
Share on other sites

Hello, and great contribution - I have been using it for months without any major Hassles.

 

One annoying problem is that HTML code is shown in the Drop Down box feilds. See Pic Below.

Order_editor_problem.gif

 

Does any body know how to fix this.

 

I installed Version 3.0.1

 

Thanks in advance.

Edited by pingpongrob
Link to comment
Share on other sites

Hi... I have a problem with my SPPC (4.16) and my Order editor (5.0.3) ..... When I edit an order.... I choice my product.. (the price behind the product name is ok) but I the invoice... it's always the special price (retail price)..

 

Do you have an idea ??

 

thanos you very much !!

Link to comment
Share on other sites

Hi Guys,

 

I want to record any damage to a product within an order on a per product basis, i have managed to add in a check box so that you can tick each product within and order that might have arrived damaged, the part that I'm struggling on now is actually finding the place in code where i can take the information from the check box and write it to the orders_products table that i have now change.

 

Any help would be great.

 

Thanks, Tim.

Link to comment
Share on other sites

Hey all,

 

Anyone have any idea what issue the latest file upload to the contrib is supposed to address?

 

nocomply wrote:

Bugfix when update products quantity negative
on line 190 in edit_orders.php replace:
$quantity_difference = ($products_details['qty'] - $order['products_quantity']);
with:
$quantity_difference = ($products_details['qty'] - $order_products['products_quantity']);

 

I played around with the code and found that when editting an order, this line of code has no effect on the product quantity. The product quantity updates as normal either way.

 

I am just wondering what he means. I am currently using the AJAX version of order editor 5.0.6.

 

Chris

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...