Sipariş öğelerini siparişin içine alın


10

Sipariş döngüsünün içinde sipariş kalemi almam gerekiyor, bunu nasıl başaracağım, işte benim kodum

      $orderCollection = Mage::getModel("sales/order")->getCollection();





    foreach ($orderCollection as $order) {
        $orders['orders'][] = array(
            'id'            => $order->getIncrementId(),
            'store'         => 'magento',
            'status'        => $order->getStatus(),
            'name'          => $order->getCustomerName(),
            'email'         => $order->getCustomerEmail(),
            'telephone'     => $order->getShippingAddress()->getTelephone(),
            'street'        => $order->getShippingAddress()->getStreet(),
            'pincode'       => $order->getShippingAddress()->getPostcode(),
            'city'          => $order->getShippingAddress()->getCity(),
            'weight'        => $order->getWeight(),


        );




     foreach ($order->getAllItems() as $item) {
        $orders['items'][] = array(
            'id'            => $order->getIncrementId(),
            'name'          => $item->getName(),
            'sku'           => $item->getSku(),
            'Price'         => $item->getPrice(),
            'Ordered Qty'   => $item->getQtyOrdered(),


        );

     }

    }
    return $orders;
}

Aynı dizide görüntülenen sipariş ve sipariş öğesi ile tek bir dizide bu iki birleştirmek gerekiyor.


sipariş için 2 veri varsa foreach döngü üzerinden yineleme nasıl
user75563

Bu soruya bir cevap sağlamaz. Yeterli bir üne sahip olduğunuzda , herhangi bir yazı hakkında yorum yapabilirsiniz ; bunun yerine askerden açıklama gerektirmeyen cevaplar verin . - Yorumdan
Aasim Goriya

Yeni bir sorunuz varsa, lütfen Soru Sor düğmesini tıklayarak sorun . Bağlam sağlamaya yardımcı oluyorsa bu soruya bir bağlantı ekleyin. - Yorumdan
Murtuza Zabuawala

Yanıtlar:


16

Aşağıdaki kodu deneyin:

foreach ($orderCollection as $order) {
  $items=array();
  foreach ($order->getAllItems() as $item) {
        $items[] = array(
            'id'            => $order->getIncrementId(),
            'name'          => $item->getName(),
            'sku'           => $item->getSku(),
            'Price'         => $item->getPrice(),
            'Ordered Qty'   => $item->getQtyOrdered(),
        );
    }
    $orders['orders'][] = array(
        'id'            => $order->getIncrementId(),
        'store'         => 'magento',
        'status'        => $order->getStatus(),
        'name'          => $order->getCustomerName(),
        'email'         => $order->getCustomerEmail(),
        'telephone'     => $order->getShippingAddress()->getTelephone(),
        'street'        => $order->getShippingAddress()->getStreet(),
        'pincode'       => $order->getShippingAddress()->getPostcode(),
        'city'          => $order->getShippingAddress()->getCity(),
        'weight'        => $order->getWeight(),
        'items'        => $items,
    );
}

ilk kez tüm değerleri doğru yükler, ancak ikinci kez de ikinci sipariş kalemi miktarıyla birlikte ilk sipariş kalemi miktarını getirir
vellai durai 18:16

kodu güncelle benim hatam cevabı güncelleyin
Qaisar Satti

bu kod benim için herhangi bir çıktı göstermiyor @QaisarSatti
Shan Haider

@shan bu bir dizi yaratıyor
Qaisar Satti

bana bu soruya cevap verebilir misin ..? magento.stackexchange.com/questions/310297/… @QaisarSatti
Shan Haider

1

Aşağıdaki kodu kullanın:

 foreach ($orderCollection as $order) {
        $orders['orders'][] = array(
            'id'            => $order->getIncrementId(),
            'store'         => 'magento',
            'status'        => $order->getStatus(),
            'name'          => $order->getCustomerName(),
            'email'         => $order->getCustomerEmail(),
            'telephone'     => $order->getShippingAddress()->getTelephone(),
            'street'        => $order->getShippingAddress()->getStreet(),
            'pincode'       => $order->getShippingAddress()->getPostcode(),
            'city'          => $order->getShippingAddress()->getCity(),
            'weight'        => $order->getWeight(),


        );    

     foreach ($order->getAllItems() as $item) {
       $orders['orders']['items'][] = array(
            'id'            => $order->getIncrementId(),
            'name'          => $item->getName(),
            'sku'           => $item->getSku(),
            'Price'         => $item->getPrice(),
            'Ordered Qty'   => $item->getQtyOrdered(),


        );

    }
    }
// check array output
echo "<pre>"; print_r($orders);

Umarım size yardımcı olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.