Здравствуйте!
Ищу профессионала, хорошо разбирающегося в OpenCart.
Нужно выполнить для начала 2 задачи:
1) Модуль импорта товаров из XML поставщика
2) Модуль экспорта заказов в процессинг поставщика
Исходные данные для реализации задачи:
I API для получения XML товаров :Внимание ! Скрипт принимает только данные отправленные методом POST ! url (cp1251): http://www.kitcash.ru/partner_api_products.php url (utf8): http://www.kitcash.ru/partner_api_products_utf8.php обязательная переменная key со значением текущего XML ключа необязательная переменная id : возможные значения - коды товаров разделенные запятой необязательная переменная category : возможные значения - коды категорий разделенные запятой
api ключ - 85dac13939060a9f229e4de8db184706
Импорт должен проходить гладко, без сбоев, можно в фоновом режиме поэтапно, если время исполнения на сервере ограниченное
II API для экспорта заказов в процессинг :Внимание ! Скрипт принимает только данные отправленные методом POST в кодировке cp1251 ! url : http://www.kitcash.ru/order_partner_create_api.php обязательная переменная api_key со значением текущего XML ключа обязательная переменная partner_site со значением УРЛ партнерского магазина (site.ru) обязательная переменная order_product массив со значениями кодов товаров (kitai_id) обязательная переменная order_quantity массив со значениями количеств товаров обязательная переменная order_price массив со значениями цен товаров обязательная переменная order_urls массив со значениями урлов страниц описаний товаров обязательная переменная payment_type вид оплаты заказа (Наличные,Наложенный платёж) обязательная переменная shipping_type способ доставки заказа (Курьер,Самовывоз,ЕМS) обязательная переменная customer_email email покупателя обязательная переменная customer_phone номер телефона покупателя обязательная переменная customer_firstname имя покупателя обязательная переменная customer_lastname фамилия покупателя (только для заказов с доставкой ЕМS) обязательная переменная customer_otchestvo отчество покупателя (только для заказов с доставкой ЕМS) обязательная переменная shipping_city город доставки обязательная переменная shipping_state область/регион доставки (только для заказов с доставкой ЕМS) обязательная переменная shipping_zip почтовый индекс доставки (только для заказов с доставкой ЕМS) обязательная переменная shipping_address улица доставки обязательная переменная shipping_dom номер дома доставки (только для заказов с доставкой ЕМS) обязательная переменная shipping_korpus номер корпуса доставки (только для заказов с доставкой ЕМS) обязательная переменная shipping_podezd номер подъезда доставки (только для заказов с доставкой ЕМS) обязательная переменная shipping_kod код домофона доставки (только для заказов с доставкой ЕМS) обязательная переменная shipping_etaj этаж дома доставки (только для заказов с доставкой ЕМS) обязательная переменная shipping_kvartira номер квартиры доставки (только для заказов с доставкой ЕМS) обязательная переменная notify_client со значением "yes" - для оповещения покупателя по email о принятии заказа в обработку необязательная переменная comment для комментария покупателя к заказу
Пример :Для экспорта заказа со следующими исходными данными : ФИО покупателя = Иванов Иван Иванович Адрес покупателя = Приморский край, г. Владивосток, 690990, ул.Светланская 999, кв.777 Номер телефона = 423-999-88-77 Email =
[email protected] Вид оплаты = Наложенный платёж Способ доставки = ЕМS УРЛ партнерского магазина = site.ru XML ключ = abcdefgh123456789 Заказанные товары : Zopo ZP900S Leader - MTK6577 на Android 4.0.4 Черный (kitai_id=510) 2шт по 8990р за единицу, Карта памяти MicroSD 32GB (kitai_id=321) 3шт по 1990р за единицу
Необходимо создать следующий запрос в API :
function http_post ($url, $data) {
$data_url = http_build_query ($data);
$data_len = strlen ($data_url);
return array ('content'=>file_get_contents ($url, false,
stream_context_create (array ('http'=>array ('method'=>'POST',
'header'=>"Connection: close\r\nContent-Length: $data_len\r\n",
'content'=>$data_url))
)
),
'headers'=>$http_response_header );
}
$order_arr = array();
$order_product = array();
$order_quantity = array();
$order_price = array();
$order_urls = array();
$order_product[]="510";
$order_quantity[]="2";
$order_price[]="8990";
$order_urls[]="www.site.ru/product_510_url.html";
$order_product[]="321";
$order_quantity[]="3";
$order_price[]="1990";
$order_urls[]="www.site.ru/product_321_url.html";
$order_arr["order_product"] = $order_product;
$order_arr["order_quantity"] = $order_quantity;
$order_arr["order_price"] = $order_price;
$order_arr["order_urls"] = $order_urls;
$order_arr["payment_type"] = "Наложенный платёж";
$order_arr["shipping_type"] = "ЕМS";
$order_arr["shipping_city"] = "Владивосток";
$order_arr["shipping_state"] = "Приморский край";
$order_arr["shipping_zip"] = "690990";
$order_arr["shipping_address"] = "Светланская";
$order_arr["shipping_dom"] = "999";
$order_arr["shipping_korpus"] = "";
$order_arr["shipping_podezd"] = "";
$order_arr["shipping_kod"] = "";
$order_arr["shipping_etaj"] = "";
$order_arr["shipping_kvartira"] = "777";
$order_arr["customer_lastname"] = "Иванов";
$order_arr["customer_firstname"] = "Иван";
$order_arr["customer_otchestvo"] = "Иванович";
$order_arr["customer_phone"] = "423-999-88-77";
$order_arr["customer_email"] = "
[email protected]";
$order_arr["comment"] = "Тестовый заказ для проверки API";
$order_arr["partner_site"] = $_SERVER["HTTP_HOST"];
$order_arr["api_key"] = "abcdefgh123456789";
$order_arr["notify_client"] = "yes";
$url = "http://www.kitcash.ru/order_partner_create_api.php";
$verify = http_post($url,$order_arr);
$kitcash_order_id = substr($verify["content"],14,-2);
Для преобразования массива с данными по заказу из любой кодировки в необходимую, рекомендуем использовать следующую функцию:
function recursive_iconv($in_charset, $out_charset, $arr){
if (!is_array($arr)){
return iconv($in_charset, $out_charset, $arr);
}
$ret = $arr;
function array_iconv(&$val, $key, $userdata){
$val = iconv($userdata[0], $userdata[1], $val);
}
array_walk_recursive($ret, "array_iconv", array($in_charset, $out_charset));
return $ret;
}
$order_cp1251 = recursive_iconv('utf-8','cp1251',$order_arr);
Стоимость реализации и прочие дополнительыне вопросы готов обсуждать в личке или в почте.
Спасибо за отклики!