This commit is contained in:
2026-09-15 10:26:34 +08:00
commit ecf36afa56
10493 changed files with 1404888 additions and 0 deletions
@@ -0,0 +1,191 @@
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Api\Data;
use Magento\Framework\Api\ExtensibleDataInterface;
/**
* Customer address interface.
*/
interface FakeAddressInterface extends ExtensibleDataInterface
{
/**#@+
* Constants for keys of data array
*/
const ID = 'id';
const CUSTOMER_ID = 'customer_id';
const REGION = 'region';
const REGIONS = 'regions';
const COUNTRY_ID = 'country_id';
const STREET = 'street';
const COMPANY = 'company';
const TELEPHONE = 'telephone';
const FAX = 'fax';
const POSTCODE = 'postcode';
const CITY = 'city';
const FIRSTNAME = 'firstname';
const LASTNAME = 'lastname';
const MIDDLENAME = 'middlename';
const PREFIX = 'prefix';
const SUFFIX = 'suffix';
const VAT_ID = 'vat_id';
const DEFAULT_BILLING = 'default_billing';
const DEFAULT_SHIPPING = 'default_shipping';
/**#@-*/
/**
* Get ID
*
* @return int|null
*/
public function getId();
/**
* Get customer ID
*
* @return int|null
*/
public function getCustomerId();
/**
* Get region
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionInterface|null
*/
public function getRegion();
/**
* Get region
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionInterface[]|null
*/
public function getRegions();
/**
* Two-letter country code in ISO_3166-2 format
*
* @return string|null
*/
public function getCountryId();
/**
* Get street
*
* @return string[]|null
*/
public function getStreet();
/**
* Get company
*
* @return string|null
*/
public function getCompany();
/**
* Get telephone number
*
* @return string|null
*/
public function getTelephone();
/**
* Get fax number
*
* @return string|null
*/
public function getFax();
/**
* Get postcode
*
* @return string|null
*/
public function getPostcode();
/**
* Get city name
*
* @return string|null
*/
public function getCity();
/**
* Get first name
*
* @return string|null
*/
public function getFirstname();
/**
* Get last name
*
* @return string|null
*/
public function getLastname();
/**
* Get middle name
*
* @return string|null
*/
public function getMiddlename();
/**
* Get prefix
*
* @return string|null
*/
public function getPrefix();
/**
* Get suffix
*
* @return string|null
*/
public function getSuffix();
/**
* Get Vat id
*
* @return string|null
*/
public function getVatId();
/**
* Get if this address is default shipping address.
*
* @return bool|null
*/
public function isDefaultShipping();
/**
* Get if this address is default billing address
*
* @return bool|null
*/
public function isDefaultBilling();
/**
* Retrieve existing extension attributes object or create a new one.
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeAddressExtensionInterface|null
*/
public function getExtensionAttributes();
/**
* Set an extension attributes object.
*
* @param \Magento\TestModuleExtensionAttributes\Api\Data\FakeAddressExtensionInterface $extensionAttributes
* @return $this
*/
public function setExtensionAttributes(
\Magento\TestModuleExtensionAttributes\Api\Data\FakeAddressExtensionInterface $extensionAttributes
);
}
@@ -0,0 +1,68 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Api\Data;
/**
* Customer attribute metadata interface.
*/
interface FakeAttributeMetadataInterface extends \Magento\Framework\Api\MetadataObjectInterface
{
/**#@+
* Constants used as keys of data array
*/
const ATTRIBUTE_CODE = 'attribute_code';
const STORE_LABEL = 'store_label';
const FRONTEND_LABEL = 'frontend_label';
const NOTE = 'note';
/**#@-*/
/**
* Get label of the store.
*
* @return string
*/
public function getStoreLabel();
/**
* Set label of the store.
*
* @param string $storeLabel
* @return $this
*/
public function setStoreLabel($storeLabel);
/**
* Get label which supposed to be displayed on frontend.
*
* @return string
*/
public function getFrontendLabel();
/**
* Set label which supposed to be displayed on frontend.
*
* @param string $frontendLabel
* @return $this
*/
public function setFrontendLabel($frontendLabel);
/**
* Get the note attribute for the element.
*
* @return string
*/
public function getNote();
/**
* Set the note attribute for the element.
*
* @param string $note
* @return $this
*/
public function setNote($note);
}
@@ -0,0 +1,116 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Api\Data;
/**
* Customer interface.
*/
interface FakeCustomerInterface extends \Magento\Framework\Api\CustomAttributesDataInterface
{
/**#@+
* Constants defined for keys of the data array. Identical to the name of the getter in snake case
*/
const ID = 'id';
const EMAIL = 'email';
const FIRSTNAME = 'firstname';
const LASTNAME = 'lastname';
const PREFIX = 'prefix';
/**#@-*/
/**
* Get customer id
*
* @return int|null
*/
public function getId();
/**
* Set customer id
*
* @param int $id
* @return $this
*/
public function setId($id);
/**
* Get email address
*
* @return string
*/
public function getEmail();
/**
* Set email address
*
* @param string $email
* @return $this
*/
public function setEmail($email);
/**
* Get first name
*
* @return string
*/
public function getFirstname();
/**
* Set first name
*
* @param string $firstname
* @return $this
*/
public function setFirstname($firstname);
/**
* Get last name
*
* @return string
*/
public function getLastname();
/**
* Set last name
*
* @param string $lastname
* @return $this
*/
public function setLastname($lastname);
/**
* Get prefix
*
* @return string|null
*/
public function getPrefix();
/**
* Set prefix
*
* @param string $prefix
* @return $this
*/
public function setPrefix($prefix);
/**
* Retrieve existing extension attributes object or create a new one.
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeCustomerExtensionInterface|null
*/
public function getExtensionAttributes();
/**
* Set an extension attributes object.
*
* @param \Magento\TestModuleExtensionAttributes\Api\Data\FakeCustomerExtensionInterface $extensionAttributes
* @return $this
*/
public function setExtensionAttributes(
\Magento\TestModuleExtensionAttributes\Api\Data\FakeCustomerExtensionInterface $extensionAttributes
);
}
@@ -0,0 +1,19 @@
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Api\Data;
use Magento\Framework\Api\ExtensibleDataInterface;
/**
* Fake interface
* to test exception if the method 'getExtensionAttributes' is not overridden
*/
interface FakeExtensibleOneInterface extends ExtensibleDataInterface
{
}
@@ -0,0 +1,25 @@
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Api\Data;
use Magento\Framework\Api\ExtensibleDataInterface;
/**
* Fake interface
* to test exception if the method 'getExtensionAttributes' does not return concrete type
*/
interface FakeExtensibleTwoInterface extends ExtensibleDataInterface
{
/**
* test incorrect return type
*
* @return int
*/
public function getExtensionAttributes();
}
@@ -0,0 +1,63 @@
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Api\Data;
use Magento\Framework\Api\ExtensibleDataInterface;
/**
* Customer address region interface.
*/
interface FakeRegionInterface extends ExtensibleDataInterface
{
/**#@+
* Constants for keys of data array
*/
const REGION_CODE = 'region_code';
const REGION = 'region';
const REGION_ID = 'region_id';
/**#@-*/
/**
* Get region code
*
* @return string
*/
public function getRegionCode();
/**
* Get region
*
* @return string
*/
public function getRegion();
/**
* Get region id
*
* @return int
*/
public function getRegionId();
/**
* Retrieve existing extension attributes object or create a new one.
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionExtensionInterface|null
*/
public function getExtensionAttributes();
/**
* Set an extension attributes object.
*
* @param \Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionExtensionInterface $extensionAttributes
* @return $this
*/
public function setExtensionAttributes(
\Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionExtensionInterface $extensionAttributes
);
}
@@ -0,0 +1,227 @@
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Model\Data;
use Magento\Framework\Api\AbstractExtensibleObject;
use Magento\TestModuleExtensionAttributes\Api\Data\FakeAddressInterface;
class FakeAddress extends AbstractExtensibleObject implements FakeAddressInterface
{
/**
* Get ID
*
* @return int|null
*/
public function getId()
{
return $this->_get(self::ID);
}
/**
* Get customer ID
*
* @return int|null
*/
public function getCustomerId()
{
return $this->_get(self::CUSTOMER_ID);
}
/**
* Get region
*
* @return \Magento\TestModuleExtensionAttributes\Model\Data\FakeRegion|null
*/
public function getRegion()
{
return $this->_get(self::REGION);
}
/**
* Get region
*
* @return \Magento\TestModuleExtensionAttributes\Model\Data\FakeRegion[]|null
*/
public function getRegions()
{
return $this->_get(self::REGIONS);
}
/**
* Two-letter country code in ISO_3166-2 format
*
* @return string|null
*/
public function getCountryId()
{
return $this->_get(self::COUNTRY_ID);
}
/**
* Get street
*
* @return string[]|null
*/
public function getStreet()
{
return $this->_get(self::STREET);
}
/**
* Get company
*
* @return string|null
*/
public function getCompany()
{
return $this->_get(self::COMPANY);
}
/**
* Get telephone number
*
* @return string|null
*/
public function getTelephone()
{
return $this->_get(self::TELEPHONE);
}
/**
* Get fax number
*
* @return string|null
*/
public function getFax()
{
return $this->_get(self::FAX);
}
/**
* Get postcode
*
* @return string|null
*/
public function getPostcode()
{
return $this->_get(self::POSTCODE);
}
/**
* Get city name
*
* @return string|null
*/
public function getCity()
{
return $this->_get(self::CITY);
}
/**
* Get first name
*
* @return string|null
*/
public function getFirstname()
{
return $this->_get(self::FIRSTNAME);
}
/**
* Get last name
*
* @return string|null
*/
public function getLastname()
{
return $this->_get(self::LASTNAME);
}
/**
* Get middle name
*
* @return string|null
*/
public function getMiddlename()
{
return $this->_get(self::MIDDLENAME);
}
/**
* Get prefix
*
* @return string|null
*/
public function getPrefix()
{
return $this->_get(self::PREFIX);
}
/**
* Get suffix
*
* @return string|null
*/
public function getSuffix()
{
return $this->_get(self::SUFFIX);
}
/**
* Get Vat id
*
* @return string|null
*/
public function getVatId()
{
return $this->_get(self::VAT_ID);
}
/**
* Get if this address is default shipping address.
*
* @return bool|null
*/
public function isDefaultShipping()
{
return $this->_get(self::DEFAULT_SHIPPING);
}
/**
* {@inheritdoc}
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeAddressExtensionInterface|null
*/
public function getExtensionAttributes()
{
return $this->_getExtensionAttributes();
}
/**
* Get if this address is default billing address
*
* @return bool|null
*/
public function isDefaultBilling()
{
return $this->_get(self::DEFAULT_BILLING);
}
/**
* {@inheritdoc}
*
* @param \Magento\TestModuleExtensionAttributes\Api\Data\FakeAddressExtensionInterface $extensionAttributes
* @return $this
*/
public function setExtensionAttributes(
\Magento\TestModuleExtensionAttributes\Api\Data\FakeAddressExtensionInterface $extensionAttributes
) {
return $this->_setExtensionAttributes($extensionAttributes);
}
}
@@ -0,0 +1,91 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Model\Data;
/**
* Customer attribute metadata class.
*/
class FakeAttributeMetadata extends \Magento\Framework\Api\AbstractSimpleObject implements
\Magento\TestModuleExtensionAttributes\Api\Data\FakeAttributeMetadataInterface
{
/**
* {@inheritdoc}
*/
public function getAttributeCode()
{
return $this->_get(self::ATTRIBUTE_CODE);
}
/**
* {@inheritdoc}
*/
public function getStoreLabel()
{
return $this->_get(self::STORE_LABEL);
}
/**
* {@inheritdoc}
*/
public function getFrontendLabel()
{
return $this->_get(self::FRONTEND_LABEL);
}
/**
* {@inheritdoc}
*/
public function getNote()
{
return $this->_get(self::NOTE);
}
/**
* Set attribute code
*
* @param string $attributeCode
* @return $this
*/
public function setAttributeCode($attributeCode)
{
return $this->setData(self::ATTRIBUTE_CODE, $attributeCode);
}
/**
* Set label of the store.
*
* @param string $storeLabel
* @return $this
*/
public function setStoreLabel($storeLabel)
{
return $this->setData(self::STORE_LABEL, $storeLabel);
}
/**
* Set label which supposed to be displayed on frontend.
*
* @param string $frontendLabel
* @return $this
*/
public function setFrontendLabel($frontendLabel)
{
return $this->setData(self::FRONTEND_LABEL, $frontendLabel);
}
/**
* Set the note attribute for the element.
*
* @param string $note
* @return $this
*/
public function setNote($note)
{
return $this->setData(self::NOTE, $note);
}
}
@@ -0,0 +1,143 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Model\Data;
/**
* Class Customer
*
*/
class FakeCustomer extends \Magento\Framework\Api\AbstractExtensibleObject implements
\Magento\TestModuleExtensionAttributes\Api\Data\FakeCustomerInterface
{
/**
* Get email address
*
* @return string
*/
public function getEmail()
{
return $this->_get(self::EMAIL);
}
/**
* Get first name
*
* @return string
*/
public function getFirstname()
{
return $this->_get(self::FIRSTNAME);
}
/**
* Get customer id
*
* @return int|null
*/
public function getId()
{
return $this->_get(self::ID);
}
/**
* Get last name
*
* @return string
*/
public function getLastname()
{
return $this->_get(self::LASTNAME);
}
/**
* Set customer id
*
* @param int $id
* @return $this
*/
public function setId($id)
{
return $this->setData(self::ID, $id);
}
/**
* Set email address
*
* @param string $email
* @return $this
*/
public function setEmail($email)
{
return $this->setData(self::EMAIL, $email);
}
/**
* Set first name
*
* @param string $firstname
* @return $this
*/
public function setFirstname($firstname)
{
return $this->setData(self::FIRSTNAME, $firstname);
}
/**
* Set last name
*
* @param string $lastname
* @return string
*/
public function setLastname($lastname)
{
return $this->setData(self::LASTNAME, $lastname);
}
/**
* Get prefix
*
* @return string|null
*/
public function getPrefix()
{
return $this->_get(self::PREFIX);
}
/**
* Set prefix
*
* @param string $prefix
* @return $this
*/
public function setPrefix($prefix)
{
return $this->setData(self::PREFIX, $prefix);
}
/**
* {@inheritdoc}
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeCustomerExtensionInterface|null
*/
public function getExtensionAttributes()
{
return $this->_getExtensionAttributes();
}
/**
* {@inheritdoc}
*
* @param \Magento\TestModuleExtensionAttributes\Api\Data\FakeCustomerExtensionInterface $extensionAttributes
* @return $this
*/
public function setExtensionAttributes(
\Magento\TestModuleExtensionAttributes\Api\Data\FakeCustomerExtensionInterface $extensionAttributes
) {
return $this->_setExtensionAttributes($extensionAttributes);
}
}
@@ -0,0 +1,15 @@
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Model\Data;
use Magento\TestModuleExtensionAttributes\Api\Data\FakeExtensibleOneInterface;
class FakeExtensibleOne implements FakeExtensibleOneInterface
{
}
@@ -0,0 +1,23 @@
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Model\Data;
use Magento\Framework\Api\AbstractExtensibleObject;
use Magento\TestModuleExtensionAttributes\Api\Data\FakeExtensibleTwoInterface;
class FakeExtensibleTwo extends AbstractExtensibleObject implements FakeExtensibleTwoInterface
{
/**
* {@inheritdoc}
*/
public function getExtensionAttributes()
{
return $this->_getExtensionAttributes();
}
}
@@ -0,0 +1,78 @@
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Model\Data;
use Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionInterface;
use Magento\Framework\Api\AbstractExtensibleObject;
class FakeRegion extends AbstractExtensibleObject implements FakeRegionInterface
{
/**
* Get region
*
* @return string
*/
public function getRegion()
{
return $this->_get(self::REGION);
}
/**
* Get region code
*
* @return string
*/
public function getRegionCode()
{
return $this->_get(self::REGION_CODE);
}
/**
* Get region id
*
* @return int
*/
public function getRegionId()
{
return $this->_get(self::REGION_ID);
}
/**
* {@inheritdoc}
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionExtensionInterface|null
*/
public function getExtensionAttributes()
{
return $this->_getExtensionAttributes();
}
/**
* {@inheritdoc}
*
* @param \Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionExtensionInterface $extensionAttributes
* @return $this
*/
public function setExtensionAttributes(
\Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionExtensionInterface $extensionAttributes
) {
return $this->_setExtensionAttributes($extensionAttributes);
}
/**
* Set region code
*
* @param string $regionCode
* @return $this
*/
public function setRegionCode($regionCode)
{
return $this->setData(self::REGION_CODE, $regionCode);
}
}
@@ -0,0 +1,227 @@
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Model;
use Magento\Framework\Model\AbstractExtensibleModel;
use Magento\TestModuleExtensionAttributes\Api\Data\FakeAddressInterface;
class FakeAddress extends AbstractExtensibleModel implements FakeAddressInterface
{
/**
* Get ID
*
* @return int|null
*/
public function getId()
{
return $this->getData(self::ID);
}
/**
* Get customer ID
*
* @return int|null
*/
public function getCustomerId()
{
return $this->getData(self::CUSTOMER_ID);
}
/**
* Get region
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionInterface|null
*/
public function getRegion()
{
return $this->getData(self::REGION);
}
/**
* Get region
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionInterface[]|null
*/
public function getRegions()
{
return $this->getData(self::REGIONS);
}
/**
* Two-letter country code in ISO_3166-2 format
*
* @return string|null
*/
public function getCountryId()
{
return $this->getData(self::COUNTRY_ID);
}
/**
* Get street
*
* @return string[]|null
*/
public function getStreet()
{
return $this->getData(self::STREET);
}
/**
* Get company
*
* @return string|null
*/
public function getCompany()
{
return $this->getData(self::COMPANY);
}
/**
* Get telephone number
*
* @return string|null
*/
public function getTelephone()
{
return $this->getData(self::TELEPHONE);
}
/**
* Get fax number
*
* @return string|null
*/
public function getFax()
{
return $this->getData(self::FAX);
}
/**
* Get postcode
*
* @return string|null
*/
public function getPostcode()
{
return $this->getData(self::POSTCODE);
}
/**
* Get city name
*
* @return string|null
*/
public function getCity()
{
return $this->getData(self::CITY);
}
/**
* Get first name
*
* @return string|null
*/
public function getFirstname()
{
return $this->getData(self::FIRSTNAME);
}
/**
* Get last name
*
* @return string|null
*/
public function getLastname()
{
return $this->getData(self::LASTNAME);
}
/**
* Get middle name
*
* @return string|null
*/
public function getMiddlename()
{
return $this->getData(self::MIDDLENAME);
}
/**
* Get prefix
*
* @return string|null
*/
public function getPrefix()
{
return $this->getData(self::PREFIX);
}
/**
* Get suffix
*
* @return string|null
*/
public function getSuffix()
{
return $this->getData(self::SUFFIX);
}
/**
* Get Vat id
*
* @return string|null
*/
public function getVatId()
{
return $this->getData(self::VAT_ID);
}
/**
* Get if this address is default shipping address.
*
* @return bool|null
*/
public function isDefaultShipping()
{
return $this->getData(self::DEFAULT_SHIPPING);
}
/**
* Get if this address is default billing address
*
* @return bool|null
*/
public function isDefaultBilling()
{
return $this->getData(self::DEFAULT_BILLING);
}
/**
* {@inheritdoc}
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeAddressExtensionInterface|null
*/
public function getExtensionAttributes()
{
return $this->_getExtensionAttributes();
}
/**
* {@inheritdoc}
*
* @param \Magento\TestModuleExtensionAttributes\Api\Data\FakeAddressExtensionInterface $extensionAttributes
* @return $this
*/
public function setExtensionAttributes(
\Magento\TestModuleExtensionAttributes\Api\Data\FakeAddressExtensionInterface $extensionAttributes
) {
return $this->_setExtensionAttributes($extensionAttributes);
}
}
@@ -0,0 +1,91 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Api\Model;
/**
* Customer attribute metadata class.
*/
class FakeAttributeMetadata extends \Magento\Framework\Api\AbstractSimpleObject implements
\Magento\TestModuleExtensionAttributes\Api\Data\FakeAttributeMetadataInterface
{
/**
* {@inheritdoc}
*/
public function getAttributeCode()
{
return $this->_get(self::ATTRIBUTE_CODE);
}
/**
* {@inheritdoc}
*/
public function getStoreLabel()
{
return $this->_get(self::STORE_LABEL);
}
/**
* {@inheritdoc}
*/
public function getFrontendLabel()
{
return $this->_get(self::FRONTEND_LABEL);
}
/**
* {@inheritdoc}
*/
public function getNote()
{
return $this->_get(self::NOTE);
}
/**
* Set attribute code
*
* @param string $attributeCode
* @return $this
*/
public function setAttributeCode($attributeCode)
{
return $this->setData(self::ATTRIBUTE_CODE, $attributeCode);
}
/**
* Set label of the store.
*
* @param string $storeLabel
* @return $this
*/
public function setStoreLabel($storeLabel)
{
return $this->setData(self::STORE_LABEL, $storeLabel);
}
/**
* Set label which supposed to be displayed on frontend.
*
* @param string $frontendLabel
* @return $this
*/
public function setFrontendLabel($frontendLabel)
{
return $this->setData(self::FRONTEND_LABEL, $frontendLabel);
}
/**
* Set the note attribute for the element.
*
* @param string $note
* @return $this
*/
public function setNote($note)
{
return $this->setData(self::NOTE, $note);
}
}
@@ -0,0 +1,143 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Api\Model;
/**
* Class Customer
*
*/
class FakeCustomer extends \Magento\Framework\Api\AbstractExtensibleObject implements
\Magento\TestModuleExtensionAttributes\Api\Data\FakeCustomerInterface
{
/**
* Get customer id
*
* @return int|null
*/
public function getId()
{
return $this->_get(self::ID);
}
/**
* Get email address
*
* @return string
*/
public function getEmail()
{
return $this->_get(self::EMAIL);
}
/**
* Get first name
*
* @return string
*/
public function getFirstname()
{
return $this->_get(self::FIRSTNAME);
}
/**
* Get last name
*
* @return string
*/
public function getLastname()
{
return $this->_get(self::LASTNAME);
}
/**
* Get prefix
*
* @return string|null
*/
public function getPrefix()
{
return $this->_get(self::PREFIX);
}
/**
* Set customer id
*
* @param int $id
* @return $this
*/
public function setId($id)
{
return $this->setData(self::ID, $id);
}
/**
* Set email address
*
* @param string $email
* @return $this
*/
public function setEmail($email)
{
return $this->setData(self::EMAIL, $email);
}
/**
* Set first name
*
* @param string $firstname
* @return $this
*/
public function setFirstname($firstname)
{
return $this->setData(self::FIRSTNAME, $firstname);
}
/**
* Set last name
*
* @param string $lastname
* @return string
*/
public function setLastname($lastname)
{
return $this->setData(self::LASTNAME, $lastname);
}
/**
* Set prefix
*
* @param string $prefix
* @return $this
*/
public function setPrefix($prefix)
{
return $this->setData(self::PREFIX, $prefix);
}
/**
* {@inheritdoc}
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeCustomerExtensionInterface|null
*/
public function getExtensionAttributes()
{
return $this->_getExtensionAttributes();
}
/**
* {@inheritdoc}
*
* @param \Magento\TestModuleExtensionAttributes\Api\Data\FakeCustomerExtensionInterface $extensionAttributes
* @return $this
*/
public function setExtensionAttributes(
\Magento\TestModuleExtensionAttributes\Api\Data\FakeCustomerExtensionInterface $extensionAttributes
) {
return $this->_setExtensionAttributes($extensionAttributes);
}
}
@@ -0,0 +1,67 @@
<?php
/**
*
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\TestModuleExtensionAttributes\Model;
use Magento\Framework\Model\AbstractExtensibleModel;
use Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionInterface;
class FakeRegion extends AbstractExtensibleModel implements FakeRegionInterface
{
/**
* Get region
*
* @return string
*/
public function getRegion()
{
return $this->getData(self::REGION);
}
/**
* Get region code
*
* @return string
*/
public function getRegionCode()
{
return $this->getData(self::REGION_CODE);
}
/**
* Get region id
*
* @return int
*/
public function getRegionId()
{
return $this->getData(self::REGION_ID);
}
/**
* {@inheritdoc}
*
* @return \Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionExtensionInterface|null
*/
public function getExtensionAttributes()
{
return $this->_getExtensionAttributes();
}
/**
* {@inheritdoc}
*
* @param \Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionExtensionInterface $extensionAttributes
* @return $this
*/
public function setExtensionAttributes(
\Magento\TestModuleExtensionAttributes\Api\Data\FakeRegionExtensionInterface $extensionAttributes
) {
return $this->_setExtensionAttributes($extensionAttributes);
}
}
@@ -0,0 +1,97 @@
<?xml version="1.0"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:Api/etc/extension_attributes.xsd">
<extension_attributes for="Magento\Catalog\Api\Data\ProductInterface">
<attribute code="test_stock_item" type="Magento\CatalogInventory\Api\Data\StockItemInterface">
<resources>
<resource ref="Magento_CatalogInventory::cataloginventory"/>
</resources>
<join reference_table="cataloginventory_stock_item"
join_on_field="entity_id"
reference_field="product_id"
>
<field>qty</field>
<field>item_id</field>
</join>
</attribute>
<attribute code="test_stock_item_qty" type="string">
<resources>
<resource ref="Magento_CatalogInventory::cataloginventory"/>
</resources>
<join reference_table="cataloginventory_stock_item"
join_on_field="entity_id"
reference_field="product_id"
>
<field>qty</field>
</join>
</attribute>
</extension_attributes>
<extension_attributes for="Magento\TestModuleExtensionAttributes\Api\Data\FakeCustomerInterface">
<attribute code="test_group_code" type="string">
<join reference_table="customer_group"
join_on_field="group_id"
reference_field="customer_group_id"
>
<field>customer_group_code</field>
</join>
</attribute>
</extension_attributes>
<extension_attributes for="Magento\Customer\Api\Data\CustomerInterface">
<attribute code="test_group_code" type="string">
<join reference_table="customer_group"
join_on_field="group_id"
reference_field="customer_group_id"
>
<field>customer_group_code</field>
</join>
</attribute>
<attribute code="test_group" type="Magento\Customer\Api\Data\GroupInterface">
<join reference_table="customer_group"
join_on_field="group_id"
reference_field="customer_group_id"
>
<field>tax_class_id</field>
<field column="customer_group_code">code</field>
</join>
</attribute>
</extension_attributes>
<extension_attributes for="Magento\Customer\Api\Data\GroupInterface">
<attribute code="test_dummy_attribute" type="string">
<join reference_table="eav_attribute"
reference_field="attribute_id"
join_on_field="customer_group_id"
>
<field>attribute_code</field>
</join>
</attribute>
<attribute code="test_complex_dummy_attribute" type="Magento\Catalog\Api\Data\ProductAttributeInterface">
<join reference_table="admin_user"
reference_field="user_id"
join_on_field="customer_group_id"
>
<field column="username">attribute_code</field>
<field column="firstname">frontend_label</field>
</join>
</attribute>
</extension_attributes>
<extension_attributes for="Magento\Sales\Api\Data\InvoiceInterface">
<attribute code="test_dummy_attribute" type="string">
<join reference_table="eav_attribute"
reference_field="attribute_id"
join_on_field="entity_id"
>
<field>attribute_code</field>
</join>
</attribute>
</extension_attributes>
</config>
@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Magento_TestModuleExtensionAttributes" />
</config>
@@ -0,0 +1,13 @@
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
use Magento\Framework\Component\ComponentRegistrar;
$registrar = new ComponentRegistrar();
if ($registrar->getPath(ComponentRegistrar::MODULE, 'Magento_TestModuleExtensionAttributes') === null) {
ComponentRegistrar::register(ComponentRegistrar::MODULE, 'Magento_TestModuleExtensionAttributes', __DIR__);
}