No announcement yet.

Creating products and options using the runQuery API

  • Filter
  • Time
  • Show
Clear All
new posts

  • Creating products and options using the runQuery API

    Hello. I need to be able to create my products (and their options) by directly inserting them into the 3dcart database. I can insert a new product fine. THe problem is when I go to create the option headers in the prodfeatures table I don't know the value of the catalogid just created in the products table.

    I am trying to use the @@Identity function but it just returns 0. Here is the code to create a single product and option. Note the multiple queries sent to the server

    #!/usr/bin/php -q
    ini_set('display_errors', true);

    $client = new soapclient('', array('trace' => 1,'soap_version' => SOAP_1_1));

    $query = "INSERT IGNORE INTO products (id,name,price) VALUES ('BAG-CART MIZ AEROLIT','Mizuno Aerolite Cart Bag',220.00)|;;|SELECT @@Identity|;;|INSERT IGNORE INTO prodfeatures SET featurecaption = 'Colour',featuretype = 'Dropdown',featurerequired = 1,item_id = (SELECT @@Identity)";

    $param = array(
    'sqlStatement' => "$query",
    'callBackURL' => ""

    $result = $client->runQuery($param);
    echo $result->runQueryResult->any;

    The result I get is:
    <runQueryResponse xmlns=""><queryResult1>1 affected records</queryResult1><queryResult2><runQueryRecord><Expr10 00>0</Expr1000></runQueryRecord></queryResult2><queryResult3> affected records</queryResult3></runQueryResponse>

    The product inserts ok. Trying to retrieve @@Identity returns 0. Hence the 2nd Insert fails.

    I will have the same issue when I try and insert into the prodfeatures_options table as I will need to know the key value created.

    How can I find the record counter generated after an insert?