Zabs
Zabs

Reputation: 14142

Convert a jQuery AJAX call to curl instead to put within a Magento observer

I have a Magento observer that I want to use some curl with - essentially I want to use the very same request as the jQuery AJAX call below but convert this into a cURL event within my observer function.

        $('#org_search_term').autocomplete({
        serviceUrl: '<?php echo $this->getUrl('rp/organisation/search', array('_secure' => true)) ?>',
        paramName:'term',
        minChars: 3,
        deferRequestBy: 500,
        dataType: 'json',
        transformResult: function (response) {
            var results = { suggestions:[] };

            if (!response.totalRecords)
                return false;

            $.each(response.items, function(i, item){
                results.suggestions.push({
                    value: item.organisation_name+', '+item.street+', '+item.town+', '+item.county+', '+item.postcode+', '+item.country,
                    data:  item.organisation_id
                });
            });

            return results;
        }
    });

Upvotes: 0

Views: 628

Answers (1)

Raggamuffin
Raggamuffin

Reputation: 1760

Will this work? I mean, I don't think there is anything special about your ajax request.

<?php

$opts = array(
  CURLOPT_CONNECTTIMEOUT => 10,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_TIMEOUT => 60,
  CURLOPT_USERAGENT => 'My-Magento-Observer',
  CURLOPT_SSL_VERIFYPEER => False,
  CURLOPT_HTTPHEADER => array(
    'Accept: application/json',
  ),
  CURLOPT_URL => $this->getUrl('rp/organisation/search', array('_secure' => true)),
  CURLOPT_POSTFIELDS = array(
    'paramName' => 'term',
  ),
);

$ch = curl_init();
curl_setopt_array($opts);
$result = curl_exec($ch);

if ($errno = curl_errno($ch)) {
  $error = curl_error($ch);
  echo $error;
}
else {
  echo $result;
}

curl_close($ch);

Upvotes: 1

Related Questions