0

Magento trough phpからデータを取得しようとしていますが、機能しますが、複数のコレクションを追加する必要があり、スタックします。私は初心者ですのでご容赦ください:-)

以下のコードを使用して顧客の詳細を取得していますが、これは問題なく機能します。次に、顧客/住所を追加して、住所の詳細を取得し、最後の列に郵便番号を入力する必要があります。これを行う方法を知っている人はいますか?

<?php
function getcustomers() {
    /* Magento's Mage.php path
     * Mage Enabler users may skip these lines
     */
    require_once ("app/Mage.php");
    umask(0);
    Mage::app("nl");
    /* Magento's Mage.php path */

    /* Get customer model, run a query */
  $collection = Mage::getModel('customer/customer')
    //$collection = Mage::getModel('customer/address')
                  ->getCollection()
                  ->addAttributeToSelect('*');

    $result = array();
    foreach ($collection as $customer) {
        $result[] = $customer->toArray();
    }

    return $result;
}
?>
<html>
<head>
<title>Customers</title>
<style>
table {
    border-collapse: collapse;
}
td {
    padding: 5px;
    border: 1px solid #000000;
}
</style>
</head>
<body>
<table>
<tr>
    <td>ID</td>
    <td>Lastname</td>
    <td>Firstname</td>
    <td>Email</td>
    <td>Is Active?</td>
    <td>Date Created</td>
    <td>Date Updated</td>
    <td>Website ID</td>
    <td>Store ID</td>
    <td>Zip Code</td>
</tr>
<?php
$result = getcustomers();
if(count($result) > 0){
    foreach($result as $key => $value){
        echo "<tr>";
            echo "<td>".$value['entity_id']."</td>";
            echo "<td>".$value['lastname']."</td>";
            echo "<td>".$value['firstname']."</td>";
            echo "<td>".$value['email']."</td>";
            echo "<td>";
            echo $value['is_active'] == 1 ? "Yes" : "No";
            echo "</td>";
            echo "<td>".$value['created_at']."</td>";
            echo "<td>".$value['updated_at']."</td>";
            echo "<td>".$value['website_id']."</td>";
            echo "<td>".$value['store_id']."</td>";
            echo "<td>".$value['zipcode']."</td>";
        echo "</tr>";
    }
}else{
    echo "<tr><td colspan=\"7\">No records found</td></tr>";
}
?>
</table>
</body>
</html>
4

1 に答える 1

2

私は現在Magentoを学んでいると言いたいので、私の答えは完全には機能しません!それがあなたを正しい方向に押し進めるのに役立つことを願っています。

注意点として$customer->getData()、配列を返すために使用できます。

次に、を使用$customer->getId()してIDを取得できます。その後、アドレスモデルに渡すことができます

foreach($collection as $customer){
  // You have an instance of the Customer already, so we can just use a magic get method
  $cid = $customer->getId();

  // Let's load this customers address, using a chain. Load the model (instantiate the class), then call load with the customer id
  // You might want to check the alias on 'customer' to ensure it has address. You can find this in /app/code/core/Mage/Customer/etc/config.xml ln.251
  $address = Mage::getModel('customer/address')->load($cid);
  // Maybe we should look in here just in case - for debugging
  var_dump($address); // or echo get_class($address);
  // Here I would try one of the magic setter methods, which map to set<Thing> so you can play with this to see if it'll work
  $address->setZipCode('12345');
  // Then we should be able to save it, I think, this bit I'm not sure on.
  $address->save();
}

私が言っているように、これは私が先週Magento Uビデオから学んだことです、それがうまくいくことを願っています!

于 2012-04-18T09:49:23.330 に答える