本文整理匯總了PHP中Magento\Quote\Model\Quote::setCustomer方法的典型用法代碼示例。如果您正苦於以下問題:PHP Quote::setCustomer方法的具體用法?PHP Quote::setCustomer怎麽用?PHP Quote::setCustomer使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Magento\Quote\Model\Quote
的用法示例。
在下文中一共展示了Quote::setCustomer方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: prepareQuoteForNewCustomer
/**
* @param \Magento\Quote\Model\Quote $quote
* @return \Magento\Quote\Model\Quote
*/
public function prepareQuoteForNewCustomer(\Magento\Quote\Model\Quote $quote)
{
$billing = $quote->getBillingAddress();
$shipping = $quote->isVirtual() ? null : $quote->getShippingAddress();
$billing->setDefaultBilling(true);
if ($shipping && !$shipping->getSameAsBilling()) {
$shipping->setDefaultShipping(true);
$address = $shipping->exportCustomerAddress();
$shipping->setCustomerAddressData($address);
} elseif ($shipping) {
$billing->setDefaultShipping(true);
}
$address = $shipping->exportCustomerAddress();
$billing->setCustomerAddressData($address);
foreach (['customer_dob', 'customer_taxvat', 'customer_gender'] as $attribute) {
if ($quote->getData($attribute) && !$billing->getData($attribute)) {
$billing->setData($attribute, $quote->getData($attribute));
}
}
$customer = $this->customerFactory->create();
$this->dataObjectHelper->populateWithArray($customer, $this->copyObject->getDataFromFieldset('checkout_onepage_billing', 'to_customer', $billing), '\\Magento\\Customer\\Api\\Data\\CustomerInterface');
$customer->setEmail($quote->getCustomerEmail());
$customer->setPrefix($quote->getCustomerPrefix());
$customer->setFirstname($quote->getCustomerFirstname());
$customer->setMiddlename($quote->getCustomerMiddlename());
$customer->setLastname($quote->getCustomerLastname());
$customer->setSuffix($quote->getCustomerSuffix());
$quote->setCustomer($customer);
$quote->addCustomerAddress($billing->exportCustomerAddress());
if ($shipping->hasCustomerAddress()) {
$quote->addCustomerAddress($shipping->exportCustomerAddress());
}
return $quote;
}
示例2: testSameAsBillingWhenCustomerHasDefaultShippingAddress
/**
* same_as_billing must be equal 0 if customer has default shipping address that differs from default billing
*
* @magentoDbIsolation enabled
*/
public function testSameAsBillingWhenCustomerHasDefaultShippingAddress()
{
/** @var \Magento\Customer\Api\AddressRepositoryInterface $addressRepository */
$addressRepository = Bootstrap::getObjectManager()->create('Magento\\Customer\\Api\\AddressRepositoryInterface');
$this->_customer->setDefaultShipping(2)->setAddresses([$addressRepository->getById($this->_address->getId())]);
$this->_customer = $this->customerRepository->save($this->_customer);
// we should save the customer data in order to be able to use it
$this->_quote->setCustomer($this->_customer);
$sameAsBilling = $this->_quote->getShippingAddress()->getSameAsBilling();
$this->assertEquals(1, $sameAsBilling);
}
示例3: populateCustomerInfo
/**
* Populate customer model
*
* @param Quote $quote
* @return void
*/
public function populateCustomerInfo(QuoteEntity $quote)
{
$customer = $quote->getCustomer();
if (!$customer->getId()) {
$customer = $this->accountManagement->createAccountWithPasswordHash($customer, $quote->getPasswordHash());
$quote->setCustomer($customer);
} else {
$this->customerRepository->save($customer);
}
if (!$quote->getBillingAddress()->getId() && $customer->getDefaultBilling()) {
$quote->getBillingAddress()->importCustomerAddressData($this->customerAddressRepository->getById($customer->getDefaultBilling()));
$quote->getBillingAddress()->setCustomerAddressId($customer->getDefaultBilling());
}
if (!$quote->getShippingAddress()->getSameAsBilling() && !$quote->getBillingAddress()->getId() && $customer->getDefaultShipping()) {
$quote->getShippingAddress()->importCustomerAddressData($this->customerAddressRepository->getById($customer->getDefaultShipping()));
$quote->getShippingAddress()->setCustomerAddressId($customer->getDefaultShipping());
}
}