$ENV
{
'DATAFINDER_HOME'
}
?
$ENV
{
'DATAFINDER_HOME'
}
:
$FindBin::Bin
);
my
%mws2datafiner
= (
'd_zip'
=>
sub
{
my
(
$x
) =
@_
;
my
(
$z
) =
split
(
'-'
,
$x
->{PostalCode});
return
$z
; },
'd_fulladdr'
=>
sub
{
my
(
$x
) =
@_
;
return
$x
->{AddressLine1} .
(
$x
->{AddressLine2} ?
' '
.
$x
->{AddressLine2} :
''
); },
'd_state'
=>
sub
{
my
(
$x
) =
@_
;
return
$x
->{StateOrRegion}; },
'd_city'
=>
sub
{
my
(
$x
) =
@_
;
return
$x
->{City}; },
'd_first'
=>
sub
{
my
(
$x
) =
@_
;
my
(
$n
) =
split
(/\s+/,
$x
->{BuyerName});
return
$n
; },
'd_last'
=>
sub
{
my
(
$x
) =
@_
;
my
@n
=
split
(/\s+/,
$x
->{BuyerName});
return
$n
[-1]; },
);
my
$df
= WWW::Datafinder->new( {
api_key
=>
'gmnglsc3koi5yzmtte5sss6i'
}) or
die
'Cannot create Datafinder object'
;
Readonly
my
$ORDERS_CACHE
=>
'../mws/orders.cache2'
;
my
$all_orders
= [];
if
(-s
$ORDERS_CACHE
) {
$all_orders
=
eval
{ retrieve(
$ORDERS_CACHE
); };
}
my
$count
= 0;
foreach
my
$x
(@{
$all_orders
}) {
$count
++;
next
if
$count
< 77;
print
Dumper(
$x
);
my
$data
= {};
$x
->{ShippingAddress}->{BuyerName} =
$x
->{BuyerName};
while
(
my
(
$field
,
$code
) =
each
%mws2datafiner
) {
my
$val
= &{
$code
}(
$x
->{ShippingAddress});
$data
->{
$field
} =
$val
if
$val
;
}
print
Dumper(
$data
);
my
$x
=
$df
->append_email(
$data
);
print
Dumper(
$x
->{datafinder})
if
$x
;
last
if
$count
> 90;
}