Podepnę się pod temat bo mam podobny problem.
Z tego co widzę kolega robi chyba coś podobnego i u mnie działa zarówno :
variant1 := apiShoper.call(s_session_id, 'producer.info', VarArrayOf([40])[0]);
jak i
variant1 := apiShoper.call(s_session_id, 'producer.info', '40');
Lub też
variant1 := apiShoper.call(s_session_id, 'producer.info', 40);
W variant1 po przeiterowaniu w pętli dostaję poprawne informacje o producencie.
Jednakże nie potrafię zmusić do działania funkcji opisanej tu:
http://www.shoper.pl/help/api/method/name/producer.create/m/producer
Jakbym nie próbował to rzucany jest wyjątek Invalid data container czyli,że niby dane nie są w formie tablicy.
Myślałem, że załatwię sprawę variantami ale niestety nic z tego :
var:
temp, temp2, temp3,temp4: Variant;
{...}
temp2 := VarArrayCreate([0, 2], varVariant);
temp3 := VarArrayCreate([0, 1], varOleStr);
temp4 := VarArrayCreate([0, 2], varVariant);
varArrayPut(temp4, 'gfx', [0]);
varArrayPut(temp3, 'file', [0]);
varArrayPut(temp3, '', [1]);
varArrayPut(temp4, temp3, [1]);
varArrayPut(temp3, 'content' , [0]);
varArrayPut(temp3, '', [1]);
varArrayPut(temp4, temp3, [2]);
varArrayPut(temp3, 'name', [0]);
varArrayPut(temp3, 'prod2', [1]);
varArrayPut(temp2, temp3, [1]);
varArrayPut(temp3, 'web', [0]);
varArrayPut(temp3, 'http://www.google.pl', [1]);
varArrayPut(temp2, temp3, [2]);
variant1 := apiShoper.call(s_session_id, 'producer.create', temp2);
Jakieś pomysły ? Już drugi dzień nad tym siedzę i nic.