Merhabalar,
Kendi projem için yapmak istediğim veri çekme işleminde bir bölümü aşamıyorum, sorunumdan çok kısaca bahsedeceğim, kolay olması için sitenin dilini ingilizce yapınız.
https://www.bigc.co.th/home-applianc...s/tablets.html bu kategorideki ürünleri , adres bölgesine göre listeletmek istiyorum.
Enter a address shipping bölümünden posta koduna
10240, sub districtden "
hua mark" seçip onaylıyoruz. Şu an Hua Mak bölgesine ait ürünleri getiriyor.
Siteye ilk girdiğinizde tüm ürünler stokta var gözüküyor , bölge tanımlaması yapıldığında o bölgeye ait ürünler stok durumlarıyla birlikte listeleniyor.
Bölge seçtirip oluşturulan token değerini alabiliyorum fakat kullanacak bir bölüm bulamadım
Kategorideki ürünleri bölgeye göre listeletmek istediğimde sonuçlar doğru gelmiyor, stockta olmayan ürünler stokta gözüküyor çünkü bölge değeri girilmemiş olarak algılıyor.
Bir yeri atlıyorum ama tam olarak nedir anlayamadım.
Kod çalıştırdığınızda ürünleri getirmektedir fakat bölgeye göre gelmiyor , çünkü siteye girdiğinizde bölge tanımlaması yapılmadığı zaman tüm ürünler stokta var gözüküyor. Bu yüzden benim kodda da tüm ürünler stokta var gözükmektedir, postakodu 10240 yazıp hua mark bölgesini seçtiğiniz zaman sadece 2 ürünün stoğu var diğer ürünlerin stoğu yok. Teşekkürler
@coder63; üstadım musaitseniz bir bakarsanız memnun olurum, gecen sefer yardımcı olmustunuz. teşekkürler
KAYNAKTAKI KODU INDIRMEK ICIN TIKLAYIN
<?php
function curl_post_cookie($post_url,$navigate_url,$post_data,$post_data2){
ini_set('max_execution_time', 0);
$curl = curl_init();
curl_setopt($curl, CURLOPT_COOKIESESSION, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER,0);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36');
curl_setopt($curl, CURLOPT_NOBODY, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
curl_setopt($curl, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookie.txt');
curl_setopt($curl, CURLOPT_COOKIE, "cookiename=0");
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_URL, $post_url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));
$html = curl_exec($curl);
$set = json_decode($html,true);
$token = $set['result']['quote']['token'];
curl_setopt($curl, CURLOPT_URL, $navigate_url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data2));
$html = curl_exec($curl);
return json_decode($html,true);
}
function getCategoryProducts($postcode,$stock_id,$subdistrict_id,$category_id,$page_no){
$category_url = "xxxxx" //kategorideki urunlerin listelenmesi icin post edilen url
$service_url = "xxxxx"; //bolge tanımlaması icin post edilen url
//bolge tanımlama servisi icin post edilen degerler
$post_data =array();
$post_data['store_id'] = "1";
$post_data['type'] = "delivery";
$post_data['postcode'] = $postcode;
$post_data['stock'] = $stock_id;
$post_data['subdistrict_id'] = $subdistrict_id;
//kategori servisi icin post edilen degerler
$post_data2 = array(
'cate_id'=>$category_id,
'stock_id' => $stock_id,
'ignore_items'=>"",
'page_no'=>$page_no,
'page_size'=>100,
'selected_categories'=> "",
'selected_brands'=>"",
'sort_by'=>"bestsellers:desc",
'price_from'=>"",
'price_to'=>"",
'filter'=>array()
);
$data = curl_post_cookie($service_url,$category_url,$post_data,$post_data2);
return $data;
}
$postcode = '10240'; //BANGKOK POSTA KODU
$subdistrict_id = '50'; // HUAMAK
$category_id = '324'; // TABLET kategorisi
$page_no= 1;
$stock_id = 146; //SIPARIS MEVKI SECMININDE DONEN STOCK_ID DEGERI BU STOCK ID YE AIT URUNLERI LISTELEMEK ICIN KULLANILIYOR
echo "<pre>";
print_r(getCategoryProducts($postcode,$stock_id,$subdistrict_id,$category_id,$page_no));
echo "</pre>";Sorun
@geceyarisi; tarafından ücretli bir şekilde çözüldü.
Problem gönderilen post değerleriyle ilgiliymiş.