本文整理汇总了PHP中Mage_Sales_Model_Quote::setIsActive方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Quote::setIsActive方法的具体用法?PHP Mage_Sales_Model_Quote::setIsActive怎么用?PHP Mage_Sales_Model_Quote::setIsActive使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Sales_Model_Quote
的用法示例。
在下文中一共展示了Mage_Sales_Model_Quote::setIsActive方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _inactivateQuote
/**
* Inactivate quote
*
* @return Mage_Sales_Model_Service_Quote
*/
protected function _inactivateQuote()
{
if ($this->_shouldInactivateQuote) {
$this->_quote->setIsActive(false);
}
return $this;
}
示例2: reactivateQuote
/**
* @param Mage_Sales_Model_Quote $quote
*/
protected function reactivateQuote(Mage_Sales_Model_Quote $quote)
{
if ($quote->getId()) {
/* @note: Reset reserved_order_id, Magento up to and including version 1.7 has a bug in Mage_Sales_Model_Resource_Quote::isOrderIncrementIdUsed()
* They cast the orderIncrementId to (int), which breaks the checkout/cart for all non-numerical incrementIds
* (Causes Integrity Constraint Violation, because orderIncrementId already exists */
$quote->setIsActive(1)->setReservedOrderId(null)->save();
$oSession = Mage::getSingleton('checkout/session');
$oSession->replaceQuote($quote)->unsLastRealOrderId();
}
}
示例3: save
public function save()
{
$this->_order->setStoreId($this->_getStore()->getId());
$this->_order->createFromQuoteAddress($this->_quote->getShippingAddress());
$this->_order->validate();
$this->_order->setInitialStatus();
$this->_order->save();
$this->_order->setCreatedAt($this->_getRandomDate());
$this->_order->save();
$this->_quote->setIsActive(false);
$this->_quote->save();
return $this;
}
示例4: buildQuote
/**
* Build quote object
*
* @throws Exception
*/
public function buildQuote()
{
try {
// do not change invoke order
// --------------------
$this->initializeQuote();
$this->initializeCustomer();
$this->initializeAddresses();
$this->configureStore();
$this->initializeCurrency();
$this->initializeShippingMethodData();
$this->initializeQuoteItems();
$this->initializePaymentMethodData();
//$this->quote->setTotalsCollectedFlag(false);
$this->quote->collectTotals()->save();
$this->quote->reserveOrderId();
// --------------------
} catch (Exception $e) {
$this->quote->setIsActive(false)->save();
throw $e;
}
}
示例5: setIsActive
public function setIsActive($active)
{
if ($active || !$this->hasItemsCollection()) {
return parent::setIsActive($active);
}
//Change quote active state only then it contains only approved items,
//otherwise ignore it
$approvedItems = $this->getItemsCollection();
$this->setItemsCollection(null);
$allItemsNumber = count($this->getItemsCollection());
$approvedItemsNumber = count($approvedItems);
$this->setItemsCollection($approvedItems);
return $allItemsNumber == $approvedItemsNumber ? parent::setIsActive($active) : $this;
}
示例6: _resetOrderCreateInfo
protected function _resetOrderCreateInfo()
{
Mage::unregister('ebayShippingData');
Mage::unregister('ebayPaymentData');
if ($this->_quote != null) {
$this->_quote->setIsActive(false);
$this->_quote->save();
$this->_quote = null;
}
Mage::helper('M2ePro/Module')->getConfig()->deleteGroupValue('/synchronization/orders/', 'current_magento_order_id');
$this->_clearNotifyMessages();
$this->_webSiteId = null;
$this->_storeId = null;
$this->_orderCurrencyRate = 1;
$this->_shippingCurrencyRate = 1;
$this->_taxPercent = 0;
$this->_taxIncludesShipping = false;
$this->_productTaxClassId = null;
}
示例7: reactivateQuote
/**
* @param Mage_Sales_Model_Quote $quote
*/
protected function reactivateQuote(Mage_Sales_Model_Quote $quote)
{
if ($quote->getId()) {
/* @note: Reset reserved_order_id, Magento up to and including version 1.7 has a bug in Mage_Sales_Model_Resource_Quote::isOrderIncrementIdUsed()
* They cast the orderIncrementId to (int), which breaks the checkout/cart for all non-numerical incrementIds
* (Causes Integrity Constraint Violation, because orderIncrementId already exists */
$quote->setData('reserved_order_id', '');
$quote->setIsActive(true);
$quote->save();
}
}
示例8: restoreCart
/**
* Restore
*
* @param $quote Mage_Sales_Model_Quote
* @param $status string
* @return bool
*/
public function restoreCart(Mage_Sales_Model_Quote $quote, $status)
{
$storeId = $quote->getStoreId();
$gatewayMethod = $quote->getPayment()->getMethod();
$needRestore = false;
$statuses = array('canceled', 'expired', 'declined', 'void');
if (Mage::getStoreConfig('payment/msp/keep_cart', $storeId) || Mage::getStoreConfig('msp/settings/keep_cart', $storeId) || $gatewayMethod == 'msp_payafter') {
$needRestore = true;
}
if ($needRestore && in_array($status, $statuses)) {
$quote->setIsActive(true)->setReservedOrderId(null)->save();
return true;
}
return false;
}
示例9: _setQuoteCustomer
/**
* @param Mage_Sales_Model_Quote $quote
* @param ShopgateCartBase $order
*
* @return Mage_Sales_Model_Quote
* @throws ShopgateLibraryException
*/
protected function _setQuoteCustomer($quote, $order)
{
/* @var $customer Mage_Customer_Model_Customer */
$customer = Mage::getModel('customer/customer');
$externalCustomerId = $order->getExternalCustomerId();
if ($externalCustomerId) {
$this->log('external customer id: ' . $externalCustomerId, ShopgateLogger::LOGTYPE_DEBUG);
$customer->load($externalCustomerId);
if (!$customer->getId()) {
throw new ShopgateLibraryException(ShopgateLibraryException::UNKNOWN_ERROR_CODE, sprintf('customer with external id \'%s\' does not exist', $externalCustomerId));
} else {
$quote->setCustomer($customer);
// also set customer in session some 3rd party plugins rely on it
Mage::getSingleton('customer/session')->setCustomer($customer)->setCustomerId($customer->getId())->setCustomerGroupId($customer->getGroupId());
$this->log('external customer loaded', ShopgateLogger::LOGTYPE_DEBUG);
}
}
$invoiceAddress = $order->getInvoiceAddress();
if ($invoiceAddress) {
$this->log('invoice address start', ShopgateLogger::LOGTYPE_DEBUG);
$quote->getBillingAddress()->setShouldIgnoreValidation(true);
$billingAddressData = $this->_getSalesHelper()->createAddressData($order, $order->getInvoiceAddress(), true);
$billingAddress = $quote->getBillingAddress()->addData($billingAddressData);
$this->log('invoice address end', ShopgateLogger::LOGTYPE_DEBUG);
}
$deliveryAddress = $order->getDeliveryAddress();
if ($deliveryAddress) {
$this->log('delivery address start', ShopgateLogger::LOGTYPE_DEBUG);
$quote->getShippingAddress()->setShouldIgnoreValidation(true);
$shippingAddressData = $this->_getSalesHelper()->createAddressData($order, $order->getDeliveryAddress(), false);
$shippingAddress = $quote->getShippingAddress()->addData($shippingAddressData);
$this->_getHelper()->setShippingMethod($shippingAddress, $order);
$this->log('delivery address end', ShopgateLogger::LOGTYPE_DEBUG);
}
$quote->setCustomerEmail($order->getMail());
$this->log('customer email: ' . $order->getMail(), ShopgateLogger::LOGTYPE_DEBUG);
if ($invoiceAddress) {
$this->log('invoice address start (names)', ShopgateLogger::LOGTYPE_DEBUG);
$quote->setCustomerPrefix($quote->getShippingAddress()->getPrefix());
$quote->setCustomerFirstname($invoiceAddress->getFirstName());
$quote->setCustomerLastname($invoiceAddress->getLastName());
$this->log('invoice address end (names)', ShopgateLogger::LOGTYPE_DEBUG);
}
$externalCustomerId = $order->getExternalCustomerId();
if (empty($externalCustomerId)) {
$this->log('external customer number unavailable', ShopgateLogger::LOGTYPE_DEBUG);
$quote->setCustomerIsGuest(1);
$quote->getShippingAddress();
$quote->getBillingAddress();
} else {
$this->log('external customer number available', ShopgateLogger::LOGTYPE_DEBUG);
$quote->setCustomerIsGuest(0);
if ($invoiceAddress) {
$billingAddress->setCustomerAddressId($invoiceAddress->getId());
}
if ($deliveryAddress) {
$shippingAddress->setCustomerAddressId($deliveryAddress->getId());
}
}
Mage::register('rule_data', new Varien_Object(array('store_id' => Mage::app()->getStore()->getId(), 'website_id' => Mage::app()->getStore()->getWebsiteId(), 'customer_group_id' => $quote->getCustomerGroupId())));
$quote->setIsActive('0');
$quote->setRemoteIp('shopgate.com');
$quote->save();
if (empty($externalCustomerId)) {
$quote->getBillingAddress()->isObjectNew(false);
$quote->getShippingAddress()->isObjectNew(false);
}
return $quote;
}
示例10: _processOrder
/**
* Place the order
*
* @return bool
*/
protected function _processOrder()
{
if (!$this->_auth()) {
return false;
}
if (!$this->_validateQuote()) {
return false;
}
// Push address to the quote, set totals,
// Convert quote to the order,
// Set rakuten_order attribute to "1"
try {
// To avoid duplicates look for order with the same Rakuten order no
$orders = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('ext_order_id', (string) $this->_request->order_no);
if (count($orders)) {
$this->_debugData['reason'] = 'The same order already placed';
return false;
}
// Import addresses and other data to quote
$this->_quote->setIsActive(true)->reserveOrderId();
$storeId = $this->_quote->getStoreId();
Mage::app()->setCurrentStore(Mage::app()->getStore($storeId));
if ($this->_quote->getQuoteCurrencyCode() != $this->_quote->getBaseCurrencyCode()) {
Mage::app()->getStore()->setCurrentCurrencyCode($this->_quote->getQuoteCurrencyCode());
}
$billing = $this->_convertAddress('client');
$this->_quote->setBillingAddress($billing);
$shipping = $this->_convertAddress('delivery_address');
$this->_quote->setShippingAddress($shipping);
$this->_convertTotals($this->_quote->getShippingAddress());
$this->_quote->getPayment()->importData(array('method' => 'rakuten'));
/**
* Convert quote to order
*
* @var $convertQuote Mage_Sales_Model_Convert_Quote
*/
$convertQuote = Mage::getSingleton('sales/convert_quote');
/* @var $order Mage_Sales_Model_Order */
$order = $convertQuote->toOrder($this->_quote);
if ($this->_quote->isVirtual()) {
$convertQuote->addressToOrder($this->_quote->getBillingAddress(), $order);
} else {
$convertQuote->addressToOrder($this->_quote->getShippingAddress(), $order);
}
$order->setExtOrderId((string) $this->_request->order_no);
$order->setExtCustomerId((string) $this->_request->client->client_id);
if (!$order->getCustomerEmail()) {
$order->setCustomerEmail($billing->getEmail())->setCustomerPrefix($billing->getPrefix())->setCustomerFirstname($billing->getFirstname())->setCustomerMiddlename($billing->getMiddlename())->setCustomerLastname($billing->getLastname())->setCustomerSuffix($billing->getSuffix())->setCustomerIsGuest(1);
}
$order->setBillingAddress($convertQuote->addressToOrderAddress($this->_quote->getBillingAddress()));
if (!$this->_quote->isVirtual()) {
$order->setShippingAddress($convertQuote->addressToOrderAddress($this->_quote->getShippingAddress()));
}
/** @var $item Mage_Sales_Model_Quote_Item */
foreach ($this->_quote->getAllItems() as $item) {
$orderItem = $convertQuote->itemToOrderItem($item);
if ($item->getParentItem()) {
$orderItem->setParentItem($order->getItemByQuoteItemId($item->getParentItem()->getId()));
}
$order->addItem($orderItem);
}
/**
* Adding transaction for correct transaction information displaying on the order view in the admin.
* It has no influence on the API interaction logic.
*
* @var $payment Mage_Sales_Model_Order_Payment
*/
$payment = Mage::getModel('sales/order_payment');
$payment->setMethod('rakuten')->setTransactionId((string) $this->_request->order_no)->setIsTransactionClosed(false);
$order->setPayment($payment);
$payment->addTransaction(Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE);
$order->setCanShipPartiallyItem(false);
$message = '';
if (trim((string) $this->_request->comment_client) != '') {
$message .= $this->__('Customer\'s Comment: %s', '<strong>' . trim((string) $this->_request->comment_client) . '</strong><br />');
}
$message .= $this->__('Rakuten Order No: %s', '<strong>' . (string) $this->_request->order_no . '</strong><br />') . $this->__('Rakuten Client ID: %s', '<strong>' . (string) $this->_request->client->client_id . '</strong><br />');
$order->addStatusHistoryComment($message);
$order->setRakutenOrder(1);
// Custom attribute for fast filtering of orders placed via Rakuten Checkout
$order->place();
$order->save();
// $order->sendNewOrderEmail();
$this->_quote->setIsActive(false)->save();
Mage::dispatchEvent('checkout_submit_all_after', array('order' => $order, 'quote' => $this->_quote));
} catch (Exception $e) {
$this->_debugData['exception'] = $e->getMessage();
Mage::logException($e);
return false;
}
return true;
}