Скрипт, представленный ниже, выполняет функцию импорта данных из магазина OpenCart в программу "Купеческая книга" (Sales Book). Скрипт модифицирует номера телефонов так, чтобы они всегда начинались с +7. Ведь бывает, что пользователи при заказе указывают свой номер телефона без "+семерки".

Скрипт применим только для Российских интернет-магазинов.

Чтобы им воспользоваться, нужно, выполнить следующее:

1. Создать на сервере файл с расширением PHP. Например, export-to-sales-book.php. В него скопировать следующий код (на разрывы не обращайте внимания - копируйте все, начиная с <?php, заканчивая ?>):

<?php

if (isset($_GET["limit"] and is_numeric($_GET["limit"]))  {$limit=$_GET["limit"];}

else {echo "Лимит задан неверно"; die();}

if (is_numeric($limit)==false or $limit<=0) $limit=10; 

function validationPhone($str) 

{
$phone = preg_replace('{\D}i', '', $str);
$len = strlen(trim($phone));
if ($len<=10) $phone="+7".$phone;
else {$phone="+".$phone;
$phone=str_replace("+8", "+7", $phone);}
return $phone;

}

header('Content-Type: text/xml');
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
echo "<xml_orders date=\"".date("Y-m-d H:i")."\">\n";
mysql_connect("localhost", "USER_NAME", PASSWORD") or die('server error');
mysql_select_db("DB_NAME") or die("database error");
$sql = "SELECT * FROM `oc_order` order by `order_id` desc limit $limit";
$res=mysql_query($sql);
while ($row=mysql_fetch_assoc($res))
{$order_id=$row["order_id"];
$order_date=$row["date_added"];
$order_amount=round($row["total"]);
$customer_name=$row["firstname"];
$customer_email=$row["email"];
$customer_region=$row["payment_zone"];
$customer_postalcode=$row["payment_postcode"];
$customer_city=$row["payment_city"];
$customer_address=$row["payment_address_1"];
$customer_phone=$row["telephone"];
$customer_phone=validationPhone($customer_phone);
echo "<order>\n";
echo "<order_id>$order_id</order_id>\n";
echo "<order_date>$order_date</order_date>\n";
echo "<order_amount>$order_amount</order_amount>\n";
echo "<customer_name>$customer_name</customer_name>\n";
echo "<customer_email>$customer_email</customer_email>\n";
echo "<customer_country>Россия</customer_country>\n";
echo "<customer_region>$customer_region</customer_region>\n";
echo "<customer_postalcode>$customer_postalcode</customer_postalcode>\n";
echo "<customer_city>$customer_city</customer_city>\n";
echo "<customer_address>$customer_address</customer_address>\n";
echo "<customer_phone>$customer_phone</customer_phone>\n";
echo "</order>\n";}
echo "</xml_orders>";
?>

То, что выделено желтым, заменить на свои данные - имя пользователя, пароль, имя базы данных. Они должны быть указаны в письме от хостинг-провайдера.

Проверяем скрипт, набирая в адресной строке: 

http://ваш-сайт.рф/export-to-sales-book.php

На экране должен отобразиться список из последних 10 заказов. Число заказов можно изменить, добавив к адресу ?limit=20, например так: 

http://ваш-сайт.рф/export-to-sales-book.php?limit=20

2. В настройках программы "Купеческая книга" указать в качестве источника импорта данных указанный выше адрес нашего файла. Вот и все! Должно работать! :)

p.s. Предвижу шквал издевательских комментариев относительно "стиля программирования". Я не ставил перед собой задач перфекционизма, нужно было просто создать код, который работает! Заказчик пользуется им уже пару лет и каждый раз вспоминает меня добрым словом. Этот код экономит огромное количество времени на заполнении почтовых квитанций.

p.p.s. Если вы вдруг воспользовались данным скриптом, оценили его удобство и решите меня отблагодарить, это можно сделать здесь.