AbanteCart v1.4.4 is released.
Do you like AbanteCart? Please rate AbanteCart or share your experience with other eCommerce entrepreneurs. Go to Softaculous rating page to add your rating or write a review
Quote from: Basara on May 21, 2026, 05:56:28 AMHello.
Products may also be missing from Admin if cache is outdated, or if the product is not assigned to the store view you are checking.
Those names are stored in the product description table. To check them in the database, use your own AbanteCart table prefix from system/config.php (DB_PREFIX) and runSELECT name
FROM prefix_product_descriptions
WHERE name LIKE '%( Copy )%';
but it is unsafe to delete only from product_descriptions, because products are linked across several tables.
SELECT name
FROM prefix_product_descriptions
WHERE name LIKE '%( Copy )%'; Quote from: Basara on May 20, 2026, 10:25:54 AMHello.
In AbanteCart admin, search for "( Copy )", select all, and remove. Direct database edits are strongly discouraged.
$this->session->data['fc'] = array_merge($order->data, $this->session->data['fc']);$this->session->data['fc'] = array_merge((array)$order->data, (array)$this->session->data['fc']); $order->buildOrderData($this->session->data['fc']);
$order->saveOrder();
}
} catch (Exception|Error $e) { $order->buildOrderData($this->session->data['fc']);
$order->saveOrder();
}
$confirmOrderId = (int)($orderId ?: $this->session->data['order_id']);
if ($confirmOrderId && $result->getId()) {
/** @var ModelCheckoutOrder $oMdl */
$oMdl = $this->loadModel('checkout/order');
$confirmedOrderInfo = $oMdl->getOrder($confirmOrderId);
$incompleteStatusId = (int)$this->order_status->getStatusByTextId('incomplete');
$currentStatusId = (int)($confirmedOrderInfo['order_status_id'] ?? 0);
if ($confirmedOrderInfo && (!$currentStatusId || $currentStatusId == $incompleteStatusId)) {
$settledStatusId = $this->config->get('paypal_commerce_transaction_type') == 'capture'
? $this->config->get('paypal_commerce_status_success_settled')
: $this->config->get('paypal_commerce_status_success_unsettled');
$oMdl->confirm(
$confirmOrderId,
$settledStatusId ?: $this->order_status->getStatusByTextId('pending')
);
}
if (!$mdl->getPaypalOrder($confirmOrderId)) {
$mdl->savePaypalOrder($confirmOrderId, [
'id' => $ppOrderId,
'transaction_id' => $result->getId(),
]);
}
}
} catch (Exception|Error $e) { $mdl->savePaypalCustomer($this->customer->getId(), $transactionDetails['payer']['payer_id']);
$mdl->savePaypalOrder(
$orderId,
[
'id' => $transactionDetails['id'],
'transaction_id' => $transactionDetails['id'],
]
); $mdl->savePaypalCustomer($this->customer->getId(), $transactionDetails['payer']['payer_id']);
if (!$mdl->getPaypalOrder($orderId)) {
$mdl->savePaypalOrder(
$orderId,
[
'id' => $transactionDetails['id'],
'transaction_id' => $transactionDetails['id'],
]
);
} /** @var ModelCheckoutOrder $oMdl */
$oMdl = $this->loadModel('checkout/order');
$oMdl->update(
$orderId,
$this->data['order_status_id'],
'Order updated by Paypal webhook request.'
);Replace with: /** @var ModelCheckoutOrder $oMdl */
$oMdl = $this->loadModel('checkout/order');
/** @var ModelExtensionPaypalCommerce $mdl */
$mdl = $this->loadModel('extension/paypal_commerce');
$webhookOrderInfo = $oMdl->getOrder($orderId);
$incompleteStatusId = (int)$this->order_status->getStatusByTextId('incomplete');
$currentStatusId = (int)($webhookOrderInfo['order_status_id'] ?? 0);
if ($webhookOrderInfo && (!$currentStatusId || $currentStatusId == $incompleteStatusId)) {
$oMdl->confirm($orderId, $this->data['order_status_id']);
if (!$mdl->getPaypalOrder($orderId)) {
$ppOrderId = $inData['parsed']['resource']['supplementary_data']['related_ids']['order_id'] ?? '';
$mdl->savePaypalOrder($orderId, [
'id' => $ppOrderId,
'transaction_id' => $inData['parsed']['resource']['id'] ?? '',
]);
}
} else {
$oMdl->update(
$orderId,
$this->data['order_status_id'],
'Order updated by Paypal webhook request.'
);
} $this->data['pp']['purchase_units'][0] = [
'reference_id' => $ppOrderData['data']['reference_id'] ? : $this->session->data['reference_id'],
'amount' => [Replace with: $this->data['pp']['purchase_units'][0] = [
'reference_id' => $ppOrderData['data']['reference_id'] ? : $this->session->data['reference_id'],
'custom_id' => (string) $orderId,
'amount' => [