2017-12-06 1 views
0

In magento 2.2.1 gibt es eine Funktion, die ich, dass hat eine Klasse als Parameter zu verwenden, versuchen:In PHP, wie ich eine Funktion, wo einer der Parameter verwenden Sie eine Klasse:

public function add($sku, \Magento\Catalog\Api\Data\ProductTierPriceInterface $tierPrice); 

Dies war früher nur haben 4 Parameter, die an sie übergeben wurden und wie unten verwendet:

$this->tierInterface->add($sku,$groupId,$price, '1'); 

nun aber der zweite Parameter anstelle dieser alten Parameter verwendet werden muss, wo \Magento\Catalog\Api\Data\ProductTierPriceInterface $tierPrice innerhalb der folgenden Methoden, die ich brauche, stattdessen verwenden:

  • public function setQty($qty);
  • public function setValue($value);
  • public function setCustomerGroupId($customerGroupId);

, wie ich diese neuen Methoden richtig verwenden können, um die Werte in die Funktion übergeben?

Antwort

1

In Magento 2 gibt es einen concrete implementation von ProductTierPriceInterface, den Sie verwenden sollten, der TierPrice genannt wird.

Ihr neuer Code würde wie folgt aussehen:

# Pretty sure dependency injection should be needed there. 
$tierPrice = new TierPrice(); 
$tierPrice->setQty(1); 
$tierPrice->setValue($price); 
$tierPrice->setCustomerGroupId($groupId); 

$this->tierInterface->add($sku, $tierPrice); 
+0

So um die Klasse zu meinem Konstrukt hinzufügen: \ Magento \ Catalog \ Api \ Data \ ProductTierPriceInterface $ tierPrice dann kann ich wie nutzen $ tierPrice = $ this-> $ tierPrice oder new $ this-> tierPrice und dann so setzen, wie Sie es vorgeschlagen haben? – harri

+0

Ok, dont worry denke ich habe es. Immer noch Probleme mit einem Produkt, das nicht funktioniert, aber danke. – harri

Verwandte Themen