2012-04-10 14 views
1

opencartを使用してインターネットで金を販売する小売事業を設定しています。違いは、新しい暗号化通貨であるビットコイン(BTC)のみを受け入れるということです。スクリプトにしたがってOpenCartの価格を変更する

貴金属価格とBTC/GBP交換は非常に揮発性であるという問題があります。したがって、私はオープンカートの価格が、かなりの頻度で自動的に更新され、為替レートの変動や売れ行きを避けるために必要です。

私は、金、銀、プラチナの価格を引き上げ、価格をビットコインで表したスクリプトを作成しました。

ウェブサイトの各メタリックアイテムについては、カタログ内のすべての製品の価格が自動的に変更されるようにしたいと思います(15分ごとが理想的です)。

私の質問は次のとおりです。スクリプトに基づいてopencartデータベースの価格を更新するにはどうすればよいですか?

価格は、4つのものに基づいて変更する必要があります。 貴金属の品目に含まれています。 そのアイテムのマークアップの割合 アイテムに含まれる貴金属の重量。 アイテムのコインのタイプ。

私はこれらのことをopencart内で編集可能な属性にしたいと考えています。すべての項目について、4(エクストラ)

メタルタイプ =>ゴールド =>シルバー =>プラチナ =>ない金属(他の項目のために、それはすべての重量を無視し、価格変更属性が存在することになります) 割合マークアップ 割合(整数) 重量 整数 コインマークアップ 整数 」 それでは、私はクルーガーランド金貨タイプの四分の一オンス金貨を売ってるとしましょう:?

四半期オンスの金貨体重を計るsの7.77グラム、製品のページでその重量と一緒にリストされます。基本価格は7.77グラム*ゴールド価格(グラム単位)に設定されます(この数字は付属のPHPスクリプトを使用して取得されます)。

卸売ゴールド価格からの私のデフォルトマークアップは10%、「ベース」価格は10%増加します。これも商品ページに表示されます。

Krugerrandsは、歴史的な理由から、金の卸売価格以上の価値を含む傾向があります。コインマークアップは約5ビットコインになるので、これを反映するために価格が上昇するでしょう。 」は、これらの価格フィドルの いずれも買い手が見るべきではない、彼らは金価格の変動を反映するために、すべての製品の価格は変化するであろうこれらの

のすべての時間ごとを反映するために、価格の変更が表示されます、およびBTC GBPの為替レート。

以下は、金価格、シルバー価格、およびプラチナ価格を引き上げるためのビットレートの金属1グラムの価格を示すPHPスクリプトです。今までプログラムされていたので、少し冗長であるか、または指定された慣習に従わないかもしれません。答えは非常に複雑になる可能性が高いので、完全なものは期待していません。

<?php 
    /* This is a script that ultimately displays the price of gold in grams, denominated  in Bitcoins (BTC), a non fiat cryptographic currency. This is also the first thing I have ever programmed, so be nice */ 

// line break variable 
$br = "<br> <br>"; 


    // CURL begin 
//curl session 1: grab metal prices 
$ch1 = curl_init(); 
curl_setopt($ch1, CURLOPT_URL, 'http://drayah.no.de/metals/latest'); 
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1); 
$metalsdata = curl_exec($ch1); 


// curl session 2: Grab exchange rate for BTC/GBP 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'https://mtgox.com/api/1/BTCGBP/public/ticker'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1000); 
curl_setopt($ch, CURLOPT_USERAGENT, 'useragent'); 
$btcgbpdata = curl_exec($ch); 
curl_close($ch); 

// curl session 3: Grab British pounds to USD exchange rates 
$ch1 = curl_init(); 
curl_setopt($ch1, CURLOPT_URL, 'https://raw.github.com/currencybot/open-exchange-rates/master/latest.json'); 
curl_setopt($ch1, CURLOPT_Rcheck if my code isETURNTRANSFER, 1); 
$currencydata = curl_exec($ch1); 


//gold digest: turn JSON data into readable php, and extract the gold price 
$metals = json_decode($metalsdata, true, 512); 
$goldprice = $metals['gold']['quote']; 
$silverprice = $metals['silver']['quote']; 
$platprice = $metals['platinum']['quote']; 

//BTC digest of JSON 

$btcgbp = json_decode($btcgbpdata, true, 512); 
$btcgbpvwap = ($btcgbp['return']['vwap']['value']); 
echo "$btcgbpvwap pounds per BTC"; 
echo $br; 


//currency digest of JSON 
$currency = json_decode($currencydata, true, 512); 
$usdgbp = ($currency['rates']['GBP']); 
echo "$usdgbp pence per USD dollar"; 
echo $br; 
echo $br; 
// convert metals into price per ounce in pounds 

$goldpounds = $goldprice * $usdgbp; 
$silverpounds = $silverprice * $usdgbp; 
$platpounds = $platprice * $usdgbp; 
echo "GBP $goldpounds per ounce of gold"; 
echo $br; 
echo "GBP $silverpounds per ounce of silver"; 
echo $br; 
echo "GBP $platpounds per ounce of platinum"; 
echo $br; 
echo $br; 

//metals prices in grams 
$goldpoundsgram = $goldpounds/31.1034768; 
$silverpoundsgram = $silverpounds/31.1034768; 
$platpoundsgram = $platpounds/31.1034768; 
echo "$goldpoundsgram pounds per gram of gold"; 
echo $br; 
echo "$silverpoundsgram pounds per gram of silver"; 
echo $br; 
echo "$platpoundsgram pounds per gram of platinum"; 
echo $br; 
echo $br; 
// metal prices denominated in BTC 
$btcgoldgram = ($goldpoundsgram/$btcgbpvwap); 
$btcsilvergram = ($silverpoundsgram/$btcgbpvwap); 
$btcplatgram = ($platpoundsgram/$btcgbpvwap); 
echo "<b>"; 
echo $btcgoldgram; 
echo " bitcoins per gram of gold"; 
echo $br; 
echo $btcsilvergram; 
echo " bitcoins per gram of silver"; 
echo $br; 
echo $btcplatgram; 
echo " bitcoins per gram of platinum"; 

?> 
+0

に役立ちます。あなたは実際に質問を指定していないだけで、あなたの目標を教えてくれました。フィールドを追加してopencartで使用する必要がある場合は、これを行うか、OpenCartのMVC構造を学んでそれを使用する専門家を雇う必要があります –

+0

親愛なるJay、私がどこで学ぶことができるか教えてくださいopencartのMVC構造体です。ドキュメンテーションは絶望的です。 – Joseph

+0

最も簡単な方法は、簡単なコントローラーファイルを使用して作業を始め、そこから作業することです。あなたがドキュメントが不足していると言うように、学ぶ唯一の方法は、それを離れて、小さな編集からあなたがそれに慣れるまで学ぶことです。 –

答えて

4

実際priceあなたはproduct_idに基づいて、単純な更新ステートメントでそれを更新することができ、テーブルproductにちょうど数値フィールドです。

同じテーブルに列costもあり、管理パネルで収入を報告するためにのみ使用されます。そのようなレポートに興味があれば、それを更新することもできます。

product_idをリカバリするには、product_descriptionの製品名を使用してください(名前はです)です。あなたのDBは、あなたの更新が

update product p,product_description d set price=$btcsilvergram 
where p.product_id=d.product_id and name='gram of silver' 

値は非課税です可能性が銀のグラムという名前の製品が含まれていますと言います。

+0

なぜあなたはとても素晴らしいですか? – Joseph

+0

upvoteまたはacceptに気軽に、我々はすべての評判のビットのために努力する! – CapelliC

+0

そして、重量などに応じて調整することができます セット価格=($ btcsilvergram * $ productweight)+ $ cointype – Joseph

0

私は似たようなものを見ています。私のサプライヤの価格はすべてUSDであるので(つまり、ビットコインはまだ受け入れられません)、OpenCartにその価格をハードコードしてから、Opencartの組み込みの為替レートコンバータを使用して、日。私の管理者とテーマの設定を調整することで、BTCのみで価格を表示し、訪問者がデフォルトの通貨(メニュー項目、モジュールなど)を変更できるようにすることができます。それから、OpencartのUSD-> BTCレートを定期的に更新するだけで、毎日、毎日4時間、毎時など、すべての製品価格が適切に更新されます。

Opencartデータベースには、適切な為替レート。

Bitcoinは通常BTC-USD(1ドル当たり$ XXusd)で表示されますが、私の価格は米ドルで保存されているため、USD-BTCレートが必要です。私はサンプルのビットコインの価格を逆転させ($ 1当たり$ 1/$ 4 => 0.25btc)、それをOpencartに保存しました。

CURRENCY: 
(4, 'Bitcoin', 'btc', 'B⃦', 'BTC', '2', 0.25000000, 1, '2012-04-10 12:13:45'), 
(2, 'US Dollar', 'USD', '$', '', '2', 1.00000000, 1, '2012-04-10 12:12:33'); 

ここで、必要に応じていつでも ".25000000"の値を更新するスクリプトを作成しました。私は、Opencartシステム全体を回避し、サーバ上でcronジョブをセットアップして、1日に1回値を更新するつもりです。私はビットコインの価格に大きなクラッシュがある場合、私に通知するために、別の場所に別のアラートを設定しています。極端な価格変動が起こった場合、私はOpencartにログインして料金を手動で調整することができます。

希望これは、あなたがこれを行うべきである方法を後にしていると、ステップバイステップガイド場合は、私はあなたが間違った場所にいる怖い:-)

関連する問題