// Merge -> revision 7979

This commit is contained in:
rMalie
2011-08-10 08:36:17 +00:00
parent 894ee5e00b
commit 792ce71cd4
26 changed files with 262 additions and 55 deletions
+15 -4
View File
@@ -935,7 +935,7 @@ class eBayRequest
function getOrders($CreateTimeFrom, $CreateTimeTo)
function getOrders($CreateTimeFrom, $CreateTimeTo, $page)
{
// Check data
if (!$CreateTimeFrom || !$CreateTimeTo)
@@ -953,6 +953,11 @@ class eBayRequest
$requestXml .= ' <CreateTimeFrom>'.$CreateTimeFrom.'</CreateTimeFrom>'."\n";
$requestXml .= ' <CreateTimeTo>'.$CreateTimeTo.'</CreateTimeTo>'."\n";
$requestXml .= ' <OrderRole>Seller</OrderRole>'."\n";
$requestXml .= ' <OrderStatus>Completed</OrderStatus>'."\n";
$requestXml .= ' <Pagination>'."\n";
$requestXml .= ' <EntriesPerPage>100</EntriesPerPage>'."\n";
$requestXml .= ' <PageNumber>'.$page.'</PageNumber>'."\n";
$requestXml .= ' </Pagination>'."\n";
$requestXml .= ' <RequesterCredentials>'."\n";
$requestXml .= ' <eBayAuthToken>'.Configuration::get('EBAY_API_TOKEN').'</eBayAuthToken>'."\n";
$requestXml .= ' </RequesterCredentials>'."\n";
@@ -992,19 +997,25 @@ class eBayRequest
$transaction = $order->TransactionArray->Transaction[$i];
$id_product = 0;
$id_attribute = 0;
$id_product_attribute = 0;
$quantity = (string)$transaction->QuantityPurchased;
if (isset($transaction->item->SKU))
{
$tmp = explode('-', (string)$transaction->item->SKU);
if (isset($tmp[1]))
$id_product = $tmp[1];
}
if (isset($transaction->Variation->SKU))
{
$tmp = explode('-', (string)$transaction->Variation->SKU);
if (isset($tmp[1]))
$id_product = $tmp[1];
if (isset($tmp[2]))
$id_product_attribute = $tmp[2];
}
$id_product = (int)Db::getInstance()->getValue('SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `id_product` = '.(int)$id_product);
$id_product_attribute = (int)Db::getInstance()->getValue('SELECT `id_product_attribute` FROM `'._DB_PREFIX_.'product_attribute` WHERE `id_product` = '.(int)$id_product.' AND `id_product_attribute` = '.(int)$id_product_attribute);
if ($id_product > 0)
$itemList[] = array('id_product' => $id_product, 'id_product_attribute' => $id_product_attribute, 'quantity' => $quantity, 'price' => (string)$transaction->TransactionPrice);
else
@@ -1025,7 +1036,7 @@ class eBayRequest
SELECT `id_product` FROM `'._DB_PREFIX_.'product`
WHERE `reference` = \''.pSQL($reference).'\'');
if ((int)$id_product > 0)
$itemList[] = array('id_product' => $id_product, 'quantity' => $quantity, 'price' => (string)$transaction->TransactionPrice);
$itemList[] = array('id_product' => $id_product, 'id_product_attribute' => 0, 'quantity' => $quantity, 'price' => (string)$transaction->TransactionPrice);
else
{
$row = Db::getInstance()->getValue('
@@ -1057,7 +1068,7 @@ class eBayRequest
'shippingServiceCost' => (string)$order->ShippingServiceSelected->ShippingServiceCost,
'email' => (string)$order->TransactionArray->Transaction[0]->Buyer->Email,
'product_list' => $itemList,
'object' => $order
//'object' => $order
);
}
+21 -3
View File
@@ -318,7 +318,19 @@ class Ebay extends Module
if (Configuration::get('EBAY_ORDER_LAST_UPDATE') < date('Y-m-d', strtotime('-45 minutes')).'T'.date('H:i:s', strtotime('-45 minutes')).'.000Z')
{
$ebay = new eBayRequest();
$orderList = $ebay->getOrders(date('Y-m-d', strtotime('-30 days')).'T'.date('H:i:s', strtotime('-30 days')).'.000Z', $dateNew);
$page = 1;
$orderList = array();
$orderCount = 0;
$orderCountTmp = 100;
while ($orderCountTmp == 100 && $page < 10)
{
$orderListTmp = $ebay->getOrders(date('Y-m-d', strtotime('-30 days')).'T'.date('H:i:s', strtotime('-30 days')).'.000Z', $dateNew, $page);
$orderCountTmp = count($orderListTmp);
$orderList = array_merge((array)$orderList, (array)$orderListTmp);
$orderCount += $orderCountTmp;
$page++;
}
if ($orderList)
foreach ($orderList as $order)
@@ -377,12 +389,13 @@ class Ebay extends Module
{
if ((int)$product['id_product'] < 1 || !Db::getInstance()->getValue('SELECT `id_product` FROM `'._DB_PREFIX_.'product` WHERE `id_product` = '.(int)$product['id_product']))
$flag = 0;
if (isset($product['id_product_attribute']) && !Db::getInstance()->getValue('SELECT `id_product_attribute` FROM `'._DB_PREFIX_.'product_attribute` WHERE `id_product` = '.(int)$product['id_product'].' AND `id_product_attribute` = '.(int)$product['id_product_attribute']))
if (isset($product['id_product_attribute']) && $product['id_product_attribute'] > 0 && !Db::getInstance()->getValue('SELECT `id_product_attribute` FROM `'._DB_PREFIX_.'product_attribute` WHERE `id_product` = '.(int)$product['id_product'].' AND `id_product_attribute` = '.(int)$product['id_product_attribute']))
$flag = 0;
}
if ($flag == 1)
{
$cartNbProducts = 0;
$cartAdd = new Cart();
$cartAdd->id_customer = $id_customer;
$cartAdd->id_address_invoice = $id_address;
@@ -392,9 +405,13 @@ class Ebay extends Module
$cartAdd->id_currency = Currency::getIdByIsoCode('EUR');
$cartAdd->add();
foreach ($order['product_list'] as $product)
$cartAdd->updateQty((int)($product['quantity']), (int)($product['id_product']), (isset($product['id_product_attribute']) ? $product['id_product_attribute'] : NULL));
if ($cartAdd->updateQty((int)($product['quantity']), (int)($product['id_product']), ((isset($product['id_product_attribute']) && $product['id_product_attribute'] > 0) ? $product['id_product_attribute'] : NULL)))
$cartNbProducts++;
$cartAdd->update();
// Check number of products in the cart
if ($cartNbProducts > 0)
{
// Fix on sending e-mail
Db::getInstance()->autoExecute(_DB_PREFIX_.'customer', array('email' => 'NOSEND-EBAY'), 'UPDATE', '`id_customer` = '.(int)$id_customer);
$customerClear = new Customer();
@@ -427,6 +444,7 @@ class Ebay extends Module
}
}
}
}
Configuration::updateValue('EBAY_ORDER_LAST_UPDATE', $dateNew);
}