Jump to content

Add item(s) to cart programmatically


Tom S.

Recommended Posts

Posted

I would like to be able to add an item to a users cart programmatically.

Is there a built in function that can add a specific store item to the cart session?

$_SESSION['cart']

For example, so I could create my own 'Add to cart' button outside of the product store page.

Posted

Take a look at IPS\nexus\Package\Product::addToCart().

	/**
	 * Add To Cart
	 *
	 * @param	\IPS\nexus\extensions\nexus\Item\Package	$item			The item
	 * @param	array										$values			Values from form
	 * @param	string										$memberCurrency	The currency being used
	 * @return	array	Additional items to add
	 */
	public function addToCart( \IPS\nexus\extensions\nexus\Item\Package $item, array $values, $memberCurrency )
	{
		if ( $this->subscription )
		{
			if ( $item->quantity > 1 )
			{
				\IPS\Output::i()->error( 'err_subscription_qty', '1X247/2', 403, '' );
			}
			
			if ( $this->_memberHasPurchasedSubscription( \IPS\Member::loggedIn() ) )
			{
				\IPS\Output::i()->error( 'err_subscription_bought', '1X247/1', 403, '' );
			}
			
			if ( isset( $_SESSION['cart'] ) )
			{
				foreach ( $_SESSION['cart'] as $_item )
				{
					if ( $_item->id === $this->id )
					{
						\IPS\Output::i()->error( 'err_subscription_in_cart', '1X247/3', 403, '' );
					}
				}
			}
		}
		
		return parent::addToCart( $item, $values, $memberCurrency );
	}

 

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...