2016-08-06 17 views
1

Ich verwende eine Magento-Erweiterung, die Sendungen automatisch an meinen Träger sendet. Jetzt möchte ich, dass das 'custom_id'-Feld eine kommagetrennte Liste der Produktskus in der Sendung ist.

Der erste Teil des Codes:Magento, php foreach zu string

$items = $myParcelShipment->getOrder()->getAllItems(); 
      foreach($items as $item) { 
       $sku= $item->getSku(); 
      } 
$CUSTOMLIST = [HERE A COMMA SEPARATED LIST OF PRODUCT SKU'S] 

Zweiter Teil:

$data = array(
     'ToAddress'  => array(
      'name'   => trim($shippingAddress->getName()), 
      'postcode'  => trim($shippingAddress->getPostcode()), 
      'street'   => trim($streetData['streetname']), 
      'house_number' => trim($streetData['housenumber']), 
      'town'   => $shippingAddress->getCity(), 
     ), 
     'ProductCode' => $this->_getProductCodeData($myParcelShipment), 
     'custom_id'  => $CUSTOMLIST, 
    ); 

Vorschläge, wie die foreach-Schleife in eine kommagetrennte Zeichenfolge zu transformieren werden als 'custom_id'?

Antwort

0

Verwenden Sie folgenden Code

$skus = array(); 
    $items = $myParcelShipment->getOrder()->getAllItems(); 
       foreach($items as $item) { 
        $skus[] = $item->getSku(); 
       } 
    $CUSTOMLIST = implode(',', $skus); 
+0

Danke, wirkt wie ein Zauber! Jetzt versuche ich, die SKU durch ein anderes benutzerdefiniertes Attribut zu ersetzen. ** Also habe ich geändert: ** $ sku = $ item-> getSku(); ** Into: ** $ sku = $ item-> getAttributeText ("afkorting"); Aber es scheint nicht zu funktionieren. Der Attributtyp ist ein Textfeld, und ich möchte den eingegebenen Text für jedes Element abrufen. Ist das möglich? – Koen

+0

versuchen $ item-> getProduct() -> getAttributeText ("afkorting"); und bitte akzeptieren Sie die Antwort, wenn es für Sie funktioniert. –