0

私はprestashopに取り組んでおり、Webサービスを実装しています。Web サービスを使用して prestashop に挿入したいデータの膨大なコレクションがあります。データのチャンクを送信しようとしましたが、すべてうまく機能しているように見えますが、実際のスクリプトを実際のデータで開始すると、何か問題が発生するので、説明します。すべての製品のすべての属性の組み合わせを挿入したいので、基本的に、次のような 2 つの属性の 2 つの ID があります。

color : 赤 (ID: 1300)

サイズ : XXL (ID:1934)

関連付けたい製品の ID も持っているので、たとえば17909. これらの情報はすべてデータベースから「直接」取得されるため、Web サービスがなくても、Web サービスに送信して、この製品にこの組み合わせを追加する必要があることを Web サービスに伝えたいと思います。呼び出しは次のようになります。

$webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
$opt = array('resource' => 'combinations'); 
$xml_ins = $webService->get(array('url' => PS_SHOP_PATH.'/api/combinations?schema=blank')); 
                                                    
$combinations = $xml_ins->children()->children();                                       
$combinations->id_product = $id_prodotto;                                       
$combinations->quantity = $quantita_combinazione;
$combinations->minimal_quantity = '1';
$combinations->default_on = '1';
                                                    
unset($combinations->associations->product_option_values->product_option_value);
$combinations->associations->product_option_values->addChild('product_option_value')->addChild('id', $id_colore);
$combinations->associations->product_option_values->addChild('product_option_value')->addChild('id', $id_taglia);                               
                                                    
                                                
$opt = array('resource' => 'combinations');
$opt['postXml'] = $xml_ins->asXML();        
$xml_ins = $webService->add($opt);

最後の行$xml_ins = $webService->add($opt);が正しい方法で実行されたかどうかを知る方法はありますか? 実際にはすべてを で囲みましたtry catchが、約 10 分の実行の後、数十を除くすべての組み合わせが挿入されました。エラーはなく、スクリプトは単純に...停止します...ネストされたループ内で開かれたtry catchが多すぎるのは少しmh...重く、それらのいくつかが欠落しているようです...

その呼び出しが非同期呼び出しであるかどうかを理解したいのですが...それとも「開いた」ままで、その後の他のすべての呼び出しとスタックできるものですか...私が何を意味するか知っていれば、一種のネストされたオープンオブジェクト呼び出しです。

4

0 に答える 0